@realsee/five 5.0.0-alpha.67 → 5.0.0-alpha.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/docs/assets/js/search.js +1 -1
  2. package/docs/classes/five.AnimationFrameLoop.html +4 -4
  3. package/docs/classes/five.BVH.html +4 -4
  4. package/docs/classes/five.BVHNode.html +4 -4
  5. package/docs/classes/five.BVHVector3.html +4 -4
  6. package/docs/classes/five.Camera.html +4 -4
  7. package/docs/classes/five.Five.html +25 -25
  8. package/docs/classes/five.InternalWebGLRenderer.html +4 -4
  9. package/docs/classes/five.Model.html +7 -7
  10. package/docs/classes/five.NetworkSubscribe.html +4 -4
  11. package/docs/classes/five.PBMContainer.html +7 -7
  12. package/docs/classes/five.PBMGroup.html +7 -7
  13. package/docs/classes/five.PBMMaterial.html +11 -31
  14. package/docs/classes/five.PBMMesh.html +4 -4
  15. package/docs/classes/five.Scene.html +4 -4
  16. package/docs/classes/five.Subscribe.html +4 -4
  17. package/docs/classes/five.Work.html +4 -4
  18. package/docs/classes/gltf_loader.GLTFLoader.html +4 -4
  19. package/docs/classes/gltf_loader.GLTFObject.html +4 -4
  20. package/docs/classes/line.Line.html +4 -4
  21. package/docs/classes/line.LineGeometry.html +4 -4
  22. package/docs/classes/line.LineMaterial.html +4 -4
  23. package/docs/classes/line.LineSegmentsGeometry.html +4 -4
  24. package/docs/classes/line.THREE_Line2.html +4 -4
  25. package/docs/classes/line.THREE_LineSegments2.html +4 -4
  26. package/docs/classes/react.Store.html +4 -4
  27. package/docs/classes/server.BVH.html +4 -4
  28. package/docs/classes/server.BVHNode.html +4 -4
  29. package/docs/classes/server.BVHVector3.html +4 -4
  30. package/docs/classes/server.Model.html +4 -4
  31. package/docs/classes/server.PBMGroup.html +4 -4
  32. package/docs/classes/server.PBMMesh.html +4 -4
  33. package/docs/classes/sticker.Sticker.html +4 -4
  34. package/docs/index.html +4 -4
  35. package/docs/interfaces/five.AddableObject.html +4 -4
  36. package/docs/interfaces/five.AnimationFrame.html +4 -4
  37. package/docs/interfaces/five.BVHIntersect.html +4 -4
  38. package/docs/interfaces/five.CameraPose.html +4 -4
  39. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +4 -4
  40. package/docs/interfaces/five.EventCallback.html +4 -4
  41. package/docs/interfaces/five.FiveInitArgs.html +4 -4
  42. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +4 -4
  43. package/docs/interfaces/five.ImageOptions.html +4 -4
  44. package/docs/interfaces/five.ImageURLOptions.html +4 -4
  45. package/docs/interfaces/five.IntersectMeshInterface.html +4 -4
  46. package/docs/interfaces/five.Intersection.html +4 -4
  47. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +4 -4
  48. package/docs/interfaces/five.ModelEventCallback.html +4 -4
  49. package/docs/interfaces/five.MovePanoOptions.html +4 -4
  50. package/docs/interfaces/five.PBMPanoPicture.html +4 -4
  51. package/docs/interfaces/five.PBMParameters.html +11 -30
  52. package/docs/interfaces/five.PanoCircleMeshInterface.html +4 -4
  53. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +8 -8
  54. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +4 -4
  55. package/docs/interfaces/five.Pose.html +4 -4
  56. package/docs/interfaces/five.Scissor.html +4 -4
  57. package/docs/interfaces/five.State.html +4 -4
  58. package/docs/interfaces/five.SubscribeMixinType.emit.html +4 -4
  59. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +4 -4
  60. package/docs/interfaces/five.SubscribeMixinType.off.html +4 -4
  61. package/docs/interfaces/five.SubscribeMixinType.on.html +4 -4
  62. package/docs/interfaces/five.SubscribeMixinType.once.html +4 -4
  63. package/docs/interfaces/five.TextureOptions.html +4 -4
  64. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +4 -4
  65. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +8 -8
  66. package/docs/interfaces/five.WorkCubeImage.html +4 -4
  67. package/docs/interfaces/five.WorkImage.html +4 -4
  68. package/docs/interfaces/five.WorkInitial.html +4 -4
  69. package/docs/interfaces/five.WorkModel.html +4 -4
  70. package/docs/interfaces/five.WorkObserver.html +4 -4
  71. package/docs/interfaces/five.WorkTile.html +4 -4
  72. package/docs/interfaces/five.WorkVideo.html +4 -4
  73. package/docs/interfaces/gltf_loader.GLTF.html +4 -4
  74. package/docs/interfaces/react.FiveActionReactCallbacks.html +4 -4
  75. package/docs/interfaces/react.FiveInjectionTypes.html +4 -4
  76. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +4 -4
  77. package/docs/interfaces/server.BVHIntersect.html +4 -4
  78. package/docs/interfaces/server.Intersection.html +4 -4
  79. package/docs/interfaces/server.ModelEventCallback.html +4 -4
  80. package/docs/interfaces/sticker.IntersectionLike.html +4 -4
  81. package/docs/modules/five.SubscribeMixinType.html +4 -4
  82. package/docs/modules/five.html +4 -8
  83. package/docs/modules/gltf_loader.html +4 -4
  84. package/docs/modules/line.html +4 -4
  85. package/docs/modules/react.html +4 -4
  86. package/docs/modules/server.html +4 -4
  87. package/docs/modules/sticker.html +4 -4
  88. package/docs/modules.html +4 -4
  89. package/five/index.d.ts +0 -15
  90. package/five/index.js +7 -7
  91. package/gltf-loader/index.js +2 -2
  92. package/line/index.js +2 -2
  93. package/package.json +1 -1
  94. package/react/index.js +2 -2
  95. package/server/index.js +2 -2
  96. package/sticker/index.js +2 -2
  97. package/umd/five.js +1 -1
  98. package/docs/interfaces/five.PBMPanoVideo.html +0 -238
package/five/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @realsee/five
3
3
  *
4
- * Generated: 2021-12-11
5
- * Version: 5.0.0-alpha.67
4
+ * Generated: 2021-12-14
5
+ * Version: 5.0.0-alpha.71
6
6
  *
7
7
  * Terms:
8
8
  * Realsee SDK License Agreement
@@ -359,17 +359,17 @@ c.lang={extend:function(e,t,i){if(!t||!e)throw new Error("YAHOO.lang.extend fail
359
359
  function(){var e=d();return this.copyTo(e),e},h.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},h.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24},h.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},h.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},h.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var i,n=this.DB-e*this.DB%8,r=0;if(e-- >0)for(n<this.DB&&(i=this[e]>>n)!=(this.s&this.DM)>>n&&(t[r++]=i|this.s<<this.DB-n);e>=0;)n<8?(i=(this[e]&(1<<n)-1)<<8-n,i|=this[--e]>>(n+=this.DB-8)):(i=this[e]>>(n-=8)&255,n<=0&&(n+=this.DB,--e)),0!=(128&i)&&(i|=-256),0==r&&(128&this.s)!=(128&i)&&++r,(r>0||i!=this.s)&&(t[r++]=i);return t},h.prototype.equals=function(e){return 0==this.compareTo(e)},h.prototype.min=function(e){return this.compareTo(e)<0?this:e},h.prototype.max=function(e){return this.compareTo(e)>0?this:e},h.prototype.and=function(e){var t=d();return this.bitwiseTo(e,D,t),t},h.prototype.or=function(e){var t=d();return this.bitwiseTo(e,w,t),t},h.prototype.xor=function(e){var t=d();return this.bitwiseTo(e,T,t),t},h.prototype.andNot=function(e){var t=d();return this.bitwiseTo(e,x,t),t},h.prototype.not=function(){for(var e=d(),t=0;t<this.t;++t)e[t]=this.DM&~this[t];return e.t=this.t,e.s=~this.s,e},h.prototype.shiftLeft=function(e){var t=d();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t},h.prototype.shiftRight=function(e){var t=d();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t},h.prototype.getLowestSetBit=function(){for(var e=0;e<this.t;++e)if(0!=this[e])return e*this.DB+E(this[e]);return this.s<0?this.t*this.DB:-1},h.prototype.bitCount=function(){for(var e=0,t=this.s&this.DM,i=0;i<this.t;++i)e+=j(this[i]^t);return e},h.prototype.testBit=function(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this[t]&1<<e%this.DB)},h.prototype.setBit=function(e){return this.changeBit(e,w)},h.prototype.clearBit=function(e){return this.changeBit(e,x)},h.prototype.flipBit=function(e){return this.changeBit(e,T)},h.prototype.add=function(e){var t=d();return this.addTo(e,t),t},h.prototype.subtract=function(e){var t=d();return this.subTo(e,t),t},h.prototype.multiply=function(e){var t=d();return this.multiplyTo(e,t),t},h.prototype.divide=function(e){var t=d();return this.divRemTo(e,t,null),t},h.prototype.remainder=function(e){var t=d();return this.divRemTo(e,null,t),t},h.prototype.divideAndRemainder=function(e){var t=d(),i=d();return this.divRemTo(e,t,i),new Array(t,i)},h.prototype.modPow=function(e,t){var i,n,r=e.bitLength(),o=y(1);if(r<=0)return o;i=r<18?1:r<48?3:r<144?4:r<768?5:6,n=r<8?new v(t):t.isEven()?new b(t):new N(t);var s=new Array,a=3,u=i-1,c=(1<<i)-1;if(s[1]=n.convert(this),i>1){var l=d();for(n.sqrTo(s[1],l);a<=c;)s[a]=d(),n.mulTo(l,s[a-2],s[a]),a+=2}var h,p,A=e.t-1,f=!0,M=d();for(r=m(e[A])-1;A>=0;){for(r>=u?h=e[A]>>r-u&c:(h=(e[A]&(1<<r+1)-1)<<u-r,A>0&&(h|=e[A-1]>>this.DB+r-u)),a=i;0==(1&h);)h>>=1,--a;if((r-=a)<0&&(r+=this.DB,--A),f)s[h].copyTo(o),f=!1;else{for(;a>1;)n.sqrTo(o,M),n.sqrTo(M,o),a-=2;a>0?n.sqrTo(o,M):(p=o,o=M,M=p),n.mulTo(M,s[h],o)}for(;A>=0&&0==(e[A]&1<<r);)n.sqrTo(o,M),p=o,o=M,M=p,--r<0&&(r=this.DB-1,--A)}return n.revert(o)},h.prototype.modInverse=function(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return h.ZERO;for(var i=e.clone(),n=this.clone(),r=y(1),o=y(0),s=y(0),a=y(1);0!=i.signum();){for(;i.isEven();)i.rShiftTo(1,i),t?(r.isEven()&&o.isEven()||(r.addTo(this,r),o.subTo(e,o)),r.rShiftTo(1,r)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),t?(s.isEven()&&a.isEven()||(s.addTo(this,s),a.subTo(e,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);i.compareTo(n)>=0?(i.subTo(n,i),t&&r.subTo(s,r),o.subTo(a,o)):(n.subTo(i,n),t&&s.subTo(r,s),a.subTo(o,a))}return 0!=n.compareTo(h.ONE)?h.ZERO:a.compareTo(e)>=0?a.subtract(e):a.signum()<0?(a.addTo(e,a),a.signum()<0?a.add(e):a):a},h.prototype.pow=function(e){return this.exp(e,new z)},h.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),i=e.s<0?e.negate():e.clone();if(t.compareTo(i)<0){var n=t;t=i,i=n}var r=t.getLowestSetBit(),o=i.getLowestSetBit();if(o<0)return t;for(r<o&&(o=r),o>0&&(t.rShiftTo(o,t),i.rShiftTo(o,i));t.signum()>0;)(r=t.getLowestSetBit())>0&&t.rShiftTo(r,t),(r=i.getLowestSetBit())>0&&i.rShiftTo(r,i),t.compareTo(i)>=0?(t.subTo(i,t),t.rShiftTo(1,t)):(i.subTo(t,i),i.rShiftTo(1,i));return o>0&&i.lShiftTo(o,i),i},h.prototype.isProbablePrime=function(e){var t,i=this.abs();if(1==i.t&&i[0]<=O[O.length-1]){for(t=0;t<O.length;++t)if(i[0]==O[t])return!0;return!1}if(i.isEven())return!1;for(t=1;t<O.length;){for(var n=O[t],r=t+1;r<O.length&&n<S;)n*=O[r++];for(n=i.modInt(n);t<r;)if(n%O[t++]==0)return!1}return i.millerRabin(e)},h.prototype.square=function(){var e=d();return this.squareTo(e),e};
360
360
  /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
361
361
  var L="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function k(e){var t,i,n="";for(t=0;t+3<=e.length;t+=3)i=parseInt(e.substring(t,t+3),16),n+=L.charAt(i>>6)+L.charAt(63&i);for(t+1==e.length?(i=parseInt(e.substring(t,t+1),16),n+=L.charAt(i<<2)):t+2==e.length&&(i=parseInt(e.substring(t,t+2),16),n+=L.charAt(i>>2)+L.charAt((3&i)<<4));(3&n.length)>0;)n+="=";return n}function C(e){var t,i,n,r="",o=0;for(t=0;t<e.length&&"="!=e.charAt(t);++t)(n=L.indexOf(e.charAt(t)))<0||(0==o?(r+=M(n>>2),i=3&n,o=1):1==o?(r+=M(i<<2|n>>4),i=15&n,o=2):2==o?(r+=M(i),r+=M(n>>2),i=3&n,o=3):(r+=M(i<<2|n>>4),r+=M(15&n),o=0));return 1==o&&(r+=M(i<<2)),r}
362
- /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */function P(){this.i=0,this.j=0,this.S=new Array}P.prototype.init=function(e){var t,i,n;for(t=0;t<256;++t)this.S[t]=t;for(i=0,t=0;t<256;++t)i=i+this.S[t]+e[t%e.length]&255,n=this.S[t],this.S[t]=this.S[i],this.S[i]=n;this.i=0,this.j=0},P.prototype.next=function(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]};var B,_,U;
363
- /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */function R(){var e;e=(new Date).getTime(),_[U++]^=255&e,_[U++]^=e>>8&255,_[U++]^=e>>16&255,_[U++]^=e>>24&255,U>=256&&(U-=256)}if(null==_){var Q;if(_=new Array,U=0,"undefined"!=typeof window&&(void 0!==window.crypto||void 0!==window.msCrypto)){var Y=window.crypto||window.msCrypto;if(Y.getRandomValues){var F=new Uint8Array(32);for(Y.getRandomValues(F),Q=0;Q<32;++Q)_[U++]=F[Q]}else if("undefined"!=typeof navigator&&"Netscape"==navigator.appName&&navigator.appVersion<"5"){var V=window.crypto.random(32);for(Q=0;Q<V.length;++Q)_[U++]=255&V.charCodeAt(Q)}}for(;U<256;)Q=Math.floor(65536*Math.random()),_[U++]=Q>>>8,_[U++]=255&Q;U=0,R()}function H(){if(null==B){for(R(),(B=new P).init(_),U=0;U<_.length;++U)_[U]=0;U=0}return B.next()}function G(){}
362
+ /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */function P(){this.i=0,this.j=0,this.S=new Array}P.prototype.init=function(e){var t,i,n;for(t=0;t<256;++t)this.S[t]=t;for(i=0,t=0;t<256;++t)i=i+this.S[t]+e[t%e.length]&255,n=this.S[t],this.S[t]=this.S[i],this.S[i]=n;this.i=0,this.j=0},P.prototype.next=function(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]};var _,B,U;
363
+ /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */function R(){var e;e=(new Date).getTime(),B[U++]^=255&e,B[U++]^=e>>8&255,B[U++]^=e>>16&255,B[U++]^=e>>24&255,U>=256&&(U-=256)}if(null==B){var Q;if(B=new Array,U=0,"undefined"!=typeof window&&(void 0!==window.crypto||void 0!==window.msCrypto)){var Y=window.crypto||window.msCrypto;if(Y.getRandomValues){var F=new Uint8Array(32);for(Y.getRandomValues(F),Q=0;Q<32;++Q)B[U++]=F[Q]}else if("undefined"!=typeof navigator&&"Netscape"==navigator.appName&&navigator.appVersion<"5"){var V=window.crypto.random(32);for(Q=0;Q<V.length;++Q)B[U++]=255&V.charCodeAt(Q)}}for(;U<256;)Q=Math.floor(65536*Math.random()),B[U++]=Q>>>8,B[U++]=255&Q;U=0,R()}function H(){if(null==_){for(R(),(_=new P).init(B),U=0;U<B.length;++U)B[U]=0;U=0}return _.next()}function G(){}
364
364
  /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
365
365
  function W(e,t){return new h(e,t)}function q(e,t,i){for(var n="",r=0;n.length<t;)n+=i(String.fromCharCode.apply(String,e.concat([(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r]))),r+=1;return n}function K(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}function Z(e,t,i){for(var n="",r=0;n.length<t;)n+=i(e+String.fromCharCode.apply(String,[(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r])),r+=1;return n}function X(e){for(var t="",i=0;i<e.length;i++){var n=e[i].toString(16);1==n.length&&(n="0"+n),t+=n}return t}function J(e){return X(function(e){for(var t=new Array,i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}(e))}function $(e){return e.length%4==2?e+="==":e.length%4==3&&(e+="="),e=(e=e.replace(/-/g,"+")).replace(/_/g,"/")}function ee(e){return e.length%2==1&&(e="0"+e),function(e){return(e=(e=e.replace(/\=/g,"")).replace(/\+/g,"-")).replace(/\//g,"_")}(k(e))}function te(e){return C($(e))}function ie(e){return function(e){return e.replace(/%/g,"")}(function(e){for(var t=encodeURIComponent(e),i="",n=0;n<t.length;n++)"%"==t[n]?(i+=t.substr(n,3),n+=2):i=i+"%"+J(t[n]);return i}(e))}function ne(e){return decodeURIComponent(function(e){return e.replace(/(..)/g,"%$1")}(e))}function re(e){for(var t="",i=0;i<e.length-1;i+=2)t+=String.fromCharCode(parseInt(e.substr(i,2),16));return t}function oe(e){for(var t="",i=0;i<e.length;i++)t+=("0"+e.charCodeAt(i).toString(16)).slice(-2);return t}function se(e){var t=function(e){return k(e)}(e).replace(/(.{64})/g,"$1\r\n");return t=t.replace(/\r\n$/,"")}function ae(e,t){return"-----BEGIN "+t+"-----\r\n"+se(e)+"\r\n-----END "+t+"-----\r\n"}function ue(e,t){if(-1==e.indexOf("-----BEGIN "))throw"can't find PEM header: "+t;return function(e){return C(e.replace(/[^0-9A-Za-z\/+=]*/g,""))}(e=void 0!==t?(e=e.replace(new RegExp("^[^]*-----BEGIN "+t+"-----"),"")).replace(new RegExp("-----END "+t+"-----[^]*$"),""):(e=e.replace(/^[^]*-----BEGIN [^-]+-----/,"")).replace(/-----END [^-]+-----[^]*$/,""))}function ce(e){var t="malformed hex value";if(!e.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw t;if(8!=e.length)return 32==e.length?function(e){if(!e.match(/^[0-9A-Fa-f]{32}$/))throw"malformed IPv6 address octet";for(var t=(e=e.toLowerCase()).match(/.{1,4}/g),i=0;i<8;i++)t[i]=t[i].replace(/^0+/,""),""==t[i]&&(t[i]="0");var n=(e=":"+t.join(":")+":").match(/:(0:){2,}/g);if(null===n)return e.slice(1,-1);var r="";for(i=0;i<n.length;i++)n[i].length>r.length&&(r=n[i]);return(e=e.replace(r,"::")).slice(1,-1)}(e):e;try{return parseInt(e.substr(0,2),16)+"."+parseInt(e.substr(2,2),16)+"."+parseInt(e.substr(4,2),16)+"."+parseInt(e.substr(6,2),16)}catch(e){throw t}}function le(e){return e.match(/.{4}/g).map((function(e){var t=parseInt(e.substr(0,2),16),i=parseInt(e.substr(2),16);if(0==t&i<128)return String.fromCharCode(i);if(t<8){var n=128|63&i;return ne((192|(7&t)<<3|(192&i)>>6).toString(16)+n.toString(16))}n=128|(15&t)<<2|(192&i)>>6;var r=128|63&i;return ne((224|(240&t)>>4).toString(16)+n.toString(16)+r.toString(16))})).join("")}function he(e){return!(e.length%2!=0||!e.match(/^[0-9a-f]+$/)&&!e.match(/^[0-9A-F]+$/))}function de(e){return e.length%2==1?"0"+e:e.substr(0,1)>"7"?"00"+e:e}G.prototype.nextBytes=function(e){var t;for(t=0;t<e.length;++t)e[t]=H()},K.prototype.doPublic=function(e){return e.modPowInt(this.e,this.n)},K.prototype.setPublic=function(e,t){if(this.isPublic=!0,this.isPrivate=!1,"string"!=typeof e)this.n=e,this.e=t;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA public key";this.n=W(e,16),this.e=parseInt(t,16)}},K.prototype.encrypt=function(e){var t=function(e,t){if(t<e.length+11)throw"Message too long for RSA";for(var i=new Array,n=e.length-1;n>=0&&t>0;){var r=e.charCodeAt(n--);r<128?i[--t]=r:r>127&&r<2048?(i[--t]=63&r|128,i[--t]=r>>6|192):(i[--t]=63&r|128,i[--t]=r>>6&63|128,i[--t]=r>>12|224)}i[--t]=0;for(var o=new G,s=new Array;t>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);i[--t]=s[0]}return i[--t]=2,i[--t]=0,new h(i)}(e,this.n.bitLength()+7>>3);if(null==t)return null;var i=this.doPublic(t);if(null==i)return null;var n=i.toString(16);return 0==(1&n.length)?n:"0"+n},K.prototype.encryptOAEP=function(e,t,i){var n=function(e,t,i,n){var r=u.crypto.MessageDigest,o=u.crypto.Util,s=null;if(i||(i="sha1"),"string"==typeof i&&(s=r.getCanonicalAlgName(i),n=r.getHashLength(s),i=function(e){return re(o.hashHex(oe(e),s))}),e.length+2*n+2>t)throw"Message too long for RSA";var a,c="";for(a=0;a<t-e.length-2*n-2;a+=1)c+="\0";var l=i("")+c+""+e,d=new Array(n);(new G).nextBytes(d);var p=q(d,l.length,i),A=[];for(a=0;a<l.length;a+=1)A[a]=l.charCodeAt(a)^p.charCodeAt(a);var f=q(A,d.length,i),M=[0];for(a=0;a<d.length;a+=1)M[a+1]=d[a]^f.charCodeAt(a);return new h(M.concat(A))}(e,this.n.bitLength()+7>>3,t,i);if(null==n)return null;var r=this.doPublic(n);if(null==r)return null;var o=r.toString(16);return 0==(1&o.length)?o:"0"+o},K.prototype.type="RSA",K.prototype.doPrivate=function(e){if(null==this.p||null==this.q)return e.modPow(this.d,this.n);for(var t=e.mod(this.p).modPow(this.dmp1,this.p),i=e.mod(this.q).modPow(this.dmq1,this.q);t.compareTo(i)<0;)t=t.add(this.p);return t.subtract(i).multiply(this.coeff).mod(this.p).multiply(this.q).add(i)},K.prototype.setPrivate=function(e,t,i){if(this.isPrivate=!0,"string"!=typeof e)this.n=e,this.e=t,this.d=i;else{if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key";this.n=W(e,16),this.e=parseInt(t,16),this.d=W(i,16)}},K.prototype.setPrivateEx=function(e,t,i,n,r,o,s,a){if(this.isPrivate=!0,this.isPublic=!1,null==e)throw"RSASetPrivateEx N == null";if(null==t)throw"RSASetPrivateEx E == null";if(0==e.length)throw"RSASetPrivateEx N.length == 0";if(0==t.length)throw"RSASetPrivateEx E.length == 0";if(!(null!=e&&null!=t&&e.length>0&&t.length>0))throw"Invalid RSA private key in RSASetPrivateEx";this.n=W(e,16),this.e=parseInt(t,16),this.d=W(i,16),this.p=W(n,16),this.q=W(r,16),this.dmp1=W(o,16),this.dmq1=W(s,16),this.coeff=W(a,16)},K.prototype.generate=function(e,t){var i=new G,n=e>>1;this.e=parseInt(t,16);for(var r=new h(t,16);;){for(;this.p=new h(e-n,1,i),0!=this.p.subtract(h.ONE).gcd(r).compareTo(h.ONE)||!this.p.isProbablePrime(10););for(;this.q=new h(n,1,i),0!=this.q.subtract(h.ONE).gcd(r).compareTo(h.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var o=this.p;this.p=this.q,this.q=o}var s=this.p.subtract(h.ONE),a=this.q.subtract(h.ONE),u=s.multiply(a);if(0==u.gcd(r).compareTo(h.ONE)&&(this.n=this.p.multiply(this.q),this.n.bitLength()==e)){this.d=r.modInverse(u),this.dmp1=this.d.mod(s),this.dmq1=this.d.mod(a),this.coeff=this.q.modInverse(this.p);break}}this.isPrivate=!0},K.prototype.decrypt=function(e){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var t=W(e,16),i=this.doPrivate(t);return null==i?null:
366
366
  /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
367
- function(e,t){for(var i=e.toByteArray(),n=0;n<i.length&&0==i[n];)++n;if(i.length-n!=t-1||2!=i[n])return null;for(++n;0!=i[n];)if(++n>=i.length)return null;for(var r="";++n<i.length;){var o=255&i[n];o<128?r+=String.fromCharCode(o):o>191&&o<224?(r+=String.fromCharCode((31&o)<<6|63&i[n+1]),++n):(r+=String.fromCharCode((15&o)<<12|(63&i[n+1])<<6|63&i[n+2]),n+=2)}return r}(i,this.n.bitLength()+7>>3)},K.prototype.decryptOAEP=function(e,t,i){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var n=W(e,16),r=this.doPrivate(n);return null==r?null:function(e,t,i,n){var r=u.crypto.MessageDigest,o=u.crypto.Util,s=null;for(i||(i="sha1"),"string"==typeof i&&(s=r.getCanonicalAlgName(i),n=r.getHashLength(s),i=function(e){return re(o.hashHex(oe(e),s))}),e=e.toByteArray(),a=0;a<e.length;a+=1)e[a]&=255;for(;e.length<t;)e.unshift(0);if((e=String.fromCharCode.apply(String,e)).length<2*n+2)throw"Cipher too short";var a,c=e.substr(1,n),l=e.substr(n+1),h=Z(l,n,i),d=[];for(a=0;a<c.length;a+=1)d[a]=c.charCodeAt(a)^h.charCodeAt(a);var p=Z(String.fromCharCode.apply(String,d),e.length-n,i),A=[];for(a=0;a<l.length;a+=1)A[a]=l.charCodeAt(a)^p.charCodeAt(a);if((A=String.fromCharCode.apply(String,A)).substr(0,n)!==i(""))throw"Hash mismatch";var f=(A=A.substr(n)).indexOf("");if((-1!=f?A.substr(0,f).lastIndexOf("\0"):-1)+1!=f)throw"Malformed data";return A.substr(f+1)}(r,this.n.bitLength()+7>>3,t,i)},void 0!==u.lang&&u.lang||(u.lang={}),u.lang.String=function(){},u.lang.String.isInteger=function(e){return!!e.match(/^[0-9]+$/)||!!e.match(/^-[0-9]+$/)},u.lang.String.isHex=function(e){return he(e)},u.lang.String.isBase64=function(e){return!(!(e=e.replace(/\s+/g,"")).match(/^[0-9A-Za-z+\/]+={0,3}$/)||e.length%4!=0)},u.lang.String.isBase64URL=function(e){return!e.match(/[+/=]/)&&(e=$(e),u.lang.String.isBase64(e))},u.lang.String.isIntegerArray=function(e){return!!(e=e.replace(/\s+/g,"")).match(/^\[[0-9,]+\]$/)},u.lang.String.isPrintable=function(e){return null!==e.match(/^[0-9A-Za-z '()+,-./:=?]*$/)},u.lang.String.isIA5=function(e){return null!==e.match(/^[\x20-\x21\x23-\x7f]*$/)},u.lang.String.isMail=function(e){return null!==e.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var pe=function(e,t,i){return null==i&&(i="0"),e.length>=t?e:new Array(t-e.length+1).join(i)+e};function Ae(e,t){var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e,e.superclass=t.prototype,t.prototype.constructor==Object.prototype.constructor&&(t.prototype.constructor=t)}void 0!==u.crypto&&u.crypto||(u.crypto={}),u.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:l.algo.MD5,sha1:l.algo.SHA1,sha224:l.algo.SHA224,sha256:l.algo.SHA256,sha384:l.algo.SHA384,sha512:l.algo.SHA512,ripemd160:l.algo.RIPEMD160},this.getDigestInfoHex=function(e,t){if(void 0===this.DIGESTINFOHEAD[t])throw"alg not supported in Util.DIGESTINFOHEAD: "+t;return this.DIGESTINFOHEAD[t]+e},this.getPaddedDigestInfoHex=function(e,t,i){var n=this.getDigestInfoHex(e,t),r=i/4;if(n.length+22>r)throw"key is too short for SigAlg: keylen="+i+","+t;for(var o="0001",s="00"+n,a="",u=r-o.length-s.length,c=0;c<u;c+=2)a+="ff";return o+a+s},this.hashString=function(e,t){return new u.crypto.MessageDigest({alg:t}).digestString(e)},this.hashHex=function(e,t){return new u.crypto.MessageDigest({alg:t}).digestHex(e)},this.sha1=function(e){return this.hashString(e,"sha1")},this.sha256=function(e){return this.hashString(e,"sha256")},this.sha256Hex=function(e){return this.hashHex(e,"sha256")},this.sha512=function(e){return this.hashString(e,"sha512")},this.sha512Hex=function(e){return this.hashHex(e,"sha512")},this.isKey=function(e){return e instanceof K||e instanceof u.crypto.DSA||e instanceof u.crypto.ECDSA}},u.crypto.Util.md5=function(e){return new u.crypto.MessageDigest({alg:"md5",prov:"cryptojs"}).digestString(e)},u.crypto.Util.ripemd160=function(e){return new u.crypto.MessageDigest({alg:"ripemd160",prov:"cryptojs"}).digestString(e)},u.crypto.Util.SECURERANDOMGEN=new G,u.crypto.Util.getRandomHexOfNbytes=function(e){var t=new Array(e);return u.crypto.Util.SECURERANDOMGEN.nextBytes(t),X(t)},u.crypto.Util.getRandomBigIntegerOfNbytes=function(e){return new h(u.crypto.Util.getRandomHexOfNbytes(e),16)},u.crypto.Util.getRandomHexOfNbits=function(e){var t=e%8,i=new Array((e-t)/8+1);return u.crypto.Util.SECURERANDOMGEN.nextBytes(i),i[0]=(255<<t&255^255)&i[0],X(i)},u.crypto.Util.getRandomBigIntegerOfNbits=function(e){return new h(u.crypto.Util.getRandomHexOfNbits(e),16)},u.crypto.Util.getRandomBigIntegerZeroToMax=function(e){for(var t=e.bitLength();;){var i=u.crypto.Util.getRandomBigIntegerOfNbits(t);if(-1!=e.compareTo(i))return i}},u.crypto.Util.getRandomBigIntegerMinToMax=function(e,t){var i=e.compareTo(t);if(1==i)throw"biMin is greater than biMax";if(0==i)return e;var n=t.subtract(e);return u.crypto.Util.getRandomBigIntegerZeroToMax(n).add(e)},u.crypto.MessageDigest=function(e){this.setAlgAndProvider=function(e,t){if(null!==(e=u.crypto.MessageDigest.getCanonicalAlgName(e))&&void 0===t&&(t=u.crypto.Util.DEFAULTPROVIDER[e]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(e)&&"cryptojs"==t){try{this.md=u.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[e].create()}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=l.enc.Hex.parse(e);this.md.update(t)},this.digest=function(){return this.md.finalize().toString(l.enc.Hex)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}if(-1!=":sha256:".indexOf(e)&&"sjcl"==t){try{this.md=new sjcl.hash.sha256}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=sjcl.codec.hex.toBits(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return sjcl.codec.hex.fromBits(e)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digest=function(){throw"digest() not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==e&&void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=u.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},u.crypto.MessageDigest.getCanonicalAlgName=function(e){return"string"==typeof e&&(e=(e=e.toLowerCase()).replace(/-/,"")),e},u.crypto.MessageDigest.getHashLength=function(e){var t=u.crypto.MessageDigest,i=t.getCanonicalAlgName(e);if(void 0===t.HASHLENGTH[i])throw"not supported algorithm: "+e;return t.HASHLENGTH[i]},u.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},u.crypto.Mac=function(e){this.setAlgAndProvider=function(e,t){if(null==(e=e.toLowerCase())&&(e="hmacsha1"),"hmac"!=(e=e.toLowerCase()).substr(0,4))throw"setAlgAndProvider unsupported HMAC alg: "+e;void 0===t&&(t=u.crypto.Util.DEFAULTPROVIDER[e]),this.algProv=e+"/"+t;var i=e.substr(4);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(i)&&"cryptojs"==t){try{var n=u.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[i];this.mac=l.algo.HMAC.create(n,this.pass)}catch(e){throw"setAlgAndProvider hash alg set fail hashAlg="+i+"/"+e}this.updateString=function(e){this.mac.update(e)},this.updateHex=function(e){var t=l.enc.Hex.parse(e);this.mac.update(t)},this.doFinal=function(){return this.mac.finalize().toString(l.enc.Hex)},this.doFinalString=function(e){return this.updateString(e),this.doFinal()},this.doFinalHex=function(e){return this.updateHex(e),this.doFinal()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algProv},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algProv},this.doFinal=function(){throw"digest() not supported for this alg/prov: "+this.algProv},this.doFinalString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algProv},this.doFinalHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algProv},this.setPassword=function(e){if("string"==typeof e){var t=e;return e.length%2!=1&&e.match(/^[0-9A-Fa-f]+$/)||(t=oe(e)),void(this.pass=l.enc.Hex.parse(t))}if("object"!=typeof e)throw"KJUR.crypto.Mac unsupported password type: "+e;t=null;if(void 0!==e.hex){if(e.hex.length%2!=0||!e.hex.match(/^[0-9A-Fa-f]+$/))throw"Mac: wrong hex password: "+e.hex;t=e.hex}if(void 0!==e.utf8&&(t=ie(e.utf8)),void 0!==e.rstr&&(t=oe(e.rstr)),void 0!==e.b64&&(t=C(e.b64)),void 0!==e.b64u&&(t=te(e.b64u)),null==t)throw"KJUR.crypto.Mac unsupported password type: "+e;this.pass=l.enc.Hex.parse(t)},void 0!==e&&(void 0!==e.pass&&this.setPassword(e.pass),void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=u.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName)))},u.crypto.Signature=function(e){var t=null;if(this._setAlgNames=function(){var e=this.algName.match(/^(.+)with(.+)$/);e&&(this.mdAlgName=e[1].toLowerCase(),this.pubkeyAlgName=e[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(e,t){for(var i="",n=t/4-e.length,r=0;r<n;r++)i+="0";return i+e},this.setAlgAndProvider=function(e,t){if(this._setAlgNames(),"cryptojs/jsrsa"!=t)throw new Error("provider not supported: "+t);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new u.crypto.MessageDigest({alg:this.mdAlgName})}catch(e){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+e)}this.init=function(e,t){var i=null;try{i=void 0===t?we.getKey(e):we.getKey(e,t)}catch(e){throw"init failed:"+e}if(!0===i.isPrivate)this.prvKey=i,this.state="SIGN";else{if(!0!==i.isPublic)throw"init failed.:"+i;this.pubKey=i,this.state="VERIFY"}},this.updateString=function(e){this.md.updateString(e)},this.updateHex=function(e){this.md.updateHex(e)},this.sign=function(){if(this.sHashHex=this.md.digest(),void 0===this.prvKey&&void 0!==this.ecprvhex&&void 0!==this.eccurvename&&void 0!==u.crypto.ECDSA&&(this.prvKey=new u.crypto.ECDSA({curve:this.eccurvename,prv:this.ecprvhex})),this.prvKey instanceof K&&"rsaandmgf1"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHashPSS(this.sHashHex,this.mdAlgName,this.pssSaltLen);else if(this.prvKey instanceof K&&"rsa"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex,this.mdAlgName);else if(this.prvKey instanceof u.crypto.ECDSA)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex);else{if(!(this.prvKey instanceof u.crypto.DSA))throw"Signature: unsupported private key alg: "+this.pubkeyAlgName;this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}return this.hSign},this.signString=function(e){return this.updateString(e),this.sign()},this.signHex=function(e){return this.updateHex(e),this.sign()},this.verify=function(e){if(this.sHashHex=this.md.digest(),void 0===this.pubKey&&void 0!==this.ecpubhex&&void 0!==this.eccurvename&&void 0!==u.crypto.ECDSA&&(this.pubKey=new u.crypto.ECDSA({curve:this.eccurvename,pub:this.ecpubhex})),this.pubKey instanceof K&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,e,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof K&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==u.crypto.ECDSA&&this.pubKey instanceof u.crypto.ECDSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==u.crypto.DSA&&this.pubKey instanceof u.crypto.DSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(e,t){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(e){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.sign=function(){throw"sign() not supported for this alg:prov="+this.algProvName},this.signString=function(e){throw"digestString(str) not supported for this alg:prov="+this.algProvName},this.signHex=function(e){throw"digestHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(e){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=e,void 0!==e&&(void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov?this.provName=u.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=e.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==e.psssaltlen&&(this.pssSaltLen=e.psssaltlen),void 0!==e.prvkeypem)){if(void 0!==e.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{t=we.getKey(e.prvkeypem);this.init(t)}catch(e){throw"fatal error to load pem private key: "+e}}},u.crypto.Cipher=function(e){},u.crypto.Cipher.encrypt=function(e,t,i){if(t instanceof K&&t.isPublic){var n=u.crypto.Cipher.getAlgByKeyAndName(t,i);if("RSA"===n)return t.encrypt(e);if("RSAOAEP"===n)return t.encryptOAEP(e,"sha1");var r=n.match(/^RSAOAEP(\d+)$/);if(null!==r)return t.encryptOAEP(e,"sha"+r[1]);throw"Cipher.encrypt: unsupported algorithm for RSAKey: "+i}throw"Cipher.encrypt: unsupported key or algorithm"},u.crypto.Cipher.decrypt=function(e,t,i){if(t instanceof K&&t.isPrivate){var n=u.crypto.Cipher.getAlgByKeyAndName(t,i);if("RSA"===n)return t.decrypt(e);if("RSAOAEP"===n)return t.decryptOAEP(e,"sha1");var r=n.match(/^RSAOAEP(\d+)$/);if(null!==r)return t.decryptOAEP(e,"sha"+r[1]);throw"Cipher.decrypt: unsupported algorithm for RSAKey: "+i}throw"Cipher.decrypt: unsupported key or algorithm"},u.crypto.Cipher.getAlgByKeyAndName=function(e,t){if(e instanceof K){if(-1!=":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:".indexOf(t))return t;if(null==t)return"RSA";throw"getAlgByKeyAndName: not supported algorithm name for RSAKey: "+t}throw"getAlgByKeyAndName: not supported algorithm name: "+t},u.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040023":"secp521r1","2b81040022":"secp384r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}};var fe,Me,ge,ye,me,ve,Ne,De,we=(fe=function(e,t,i){return Me(l.AES,e,t,i)},Me=function(e,t,i,n){var r=l.enc.Hex.parse(t),o=l.enc.Hex.parse(i),s=l.enc.Hex.parse(n),a={};a.key=o,a.iv=s,a.ciphertext=r;var u=e.decrypt(a,o,{iv:s});return l.enc.Hex.stringify(u)},ge=function(e,t,i){return ye(l.AES,e,t,i)},ye=function(e,t,i,n){var r=l.enc.Hex.parse(t),o=l.enc.Hex.parse(i),s=l.enc.Hex.parse(n),a=e.encrypt(r,o,{iv:s}),u=l.enc.Hex.parse(a.toString());return l.enc.Base64.stringify(u)},me={"AES-256-CBC":{proc:fe,eproc:ge,keylen:32,ivlen:16},"AES-192-CBC":{proc:fe,eproc:ge,keylen:24,ivlen:16},"AES-128-CBC":{proc:fe,eproc:ge,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:function(e,t,i){return Me(l.TripleDES,e,t,i)},eproc:function(e,t,i){return ye(l.TripleDES,e,t,i)},keylen:24,ivlen:8},"DES-CBC":{proc:function(e,t,i){return Me(l.DES,e,t,i)},eproc:function(e,t,i){return ye(l.DES,e,t,i)},keylen:8,ivlen:8}},ve=function(e){var t={},i=e.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));i&&(t.cipher=i[1],t.ivsalt=i[2]);var n=e.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));n&&(t.type=n[1]);var r=-1,o=0;-1!=e.indexOf("\r\n\r\n")&&(r=e.indexOf("\r\n\r\n"),o=2),-1!=e.indexOf("\n\n")&&(r=e.indexOf("\n\n"),o=1);var s=e.indexOf("-----END");if(-1!=r&&-1!=s){var a=e.substring(r+2*o,s-o);a=a.replace(/\s+/g,""),t.data=a}return t},Ne=function(e,t,i){for(var n=i.substring(0,16),r=l.enc.Hex.parse(n),o=l.enc.Utf8.parse(t),s=me[e].keylen+me[e].ivlen,a="",u=null;;){var c=l.algo.MD5.create();if(null!=u&&c.update(u),c.update(o),c.update(r),u=c.finalize(),(a+=l.enc.Hex.stringify(u)).length>=2*s)break}var h={};return h.keyhex=a.substr(0,2*me[e].keylen),h.ivhex=a.substr(2*me[e].keylen,2*me[e].ivlen),h},De=function(e,t,i,n){var r=l.enc.Base64.parse(e),o=l.enc.Hex.stringify(r);return(0,me[t].proc)(o,i,n)},{version:"1.0.0",parsePKCS5PEM:function(e){return ve(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(e,t,i){return Ne(e,t,i)},decryptKeyB64:function(e,t,i,n){return De(e,t,i,n)},getDecryptedKeyHex:function(e,t){var i=ve(e);i.type;var n=i.cipher,r=i.ivsalt,o=i.data,s=Ne(n,t,r).keyhex;return De(o,n,s,r)},getEncryptedPKCS5PEMFromPrvKeyHex:function(e,t,i,n,r){var o="";if(void 0!==n&&null!=n||(n="AES-256-CBC"),void 0===me[n])throw"KEYUTIL unsupported algorithm: "+n;void 0!==r&&null!=r||(r=function(e){var t=l.lib.WordArray.random(e);return l.enc.Hex.stringify(t)}(me[n].ivlen).toUpperCase());var s=function(e,t,i,n){return(0,me[t].eproc)(e,i,n)}(t,n,Ne(n,i,r).keyhex,r);return o="-----BEGIN "+e+" PRIVATE KEY-----\r\n",o+="Proc-Type: 4,ENCRYPTED\r\n",o+="DEK-Info: "+n+","+r+"\r\n",o+="\r\n",o+=s.replace(/(.{64})/g,"$1\r\n"),o+="\r\n-----END "+e+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(e){var t=Te,i=t.getChildIdx,n=t.getV,r={},o=i(e,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;r.ciphertext=n(e,o[1]);var s=i(e,o[0]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+s.length;if("2a864886f70d01050d"!=n(e,s[0]))throw"this only supports pkcs5PBES2";var a=i(e,s[1]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=i(e,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=n(e,u[0]))throw"this only supports TripleDES";r.encryptionSchemeAlg="TripleDES",r.encryptionSchemeIV=n(e,u[1]);var c=i(e,a[0]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length;if("2a864886f70d01050c"!=n(e,c[0]))throw"this only supports pkcs5PBKDF2";var l=i(e,c[1]);if(l.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+l.length;r.pbkdf2Salt=n(e,l[0]);var h=n(e,l[1]);try{r.pbkdf2Iter=parseInt(h,16)}catch(e){throw"malformed format pbkdf2Iter: "+h}return r},getPBKDF2KeyHexFromParam:function(e,t){var i=l.enc.Hex.parse(e.pbkdf2Salt),n=e.pbkdf2Iter,r=l.PBKDF2(t,i,{keySize:6,iterations:n});return l.enc.Hex.stringify(r)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(e,t){var i=ue(e,"ENCRYPTED PRIVATE KEY"),n=this.parseHexOfEncryptedPKCS8(i),r=we.getPBKDF2KeyHexFromParam(n,t),o={};o.ciphertext=l.enc.Hex.parse(n.ciphertext);var s=l.enc.Hex.parse(r),a=l.enc.Hex.parse(n.encryptionSchemeIV),u=l.TripleDES.decrypt(o,s,{iv:a});return l.enc.Hex.stringify(u)},getKeyFromEncryptedPKCS8PEM:function(e,t){var i=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,t);return this.getKeyFromPlainPrivatePKCS8Hex(i)},parsePlainPrivatePKCS8Hex:function(e){var t=Te,i=t.getChildIdx,n=t.getV,r={algparam:null};if("30"!=e.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var o=i(e,0);if(o.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=e.substr(o[1],2))throw new Error("malformed PKCS8 private key(code:003)");var s=i(e,o[1]);if(2!=s.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=e.substr(s[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(r.algoid=n(e,s[0]),"06"==e.substr(s[1],2)&&(r.algparam=n(e,s[1])),"04"!=e.substr(o[2],2))throw new Error("malformed PKCS8 private key(code:006)");return r.keyidx=t.getVidx(e,o[2]),r},getKeyFromPlainPrivatePKCS8PEM:function(e){var t=ue(e,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(t)},getKeyFromPlainPrivatePKCS8Hex:function(e){var t,i=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==i.algoid)t=new K;else if("2a8648ce380401"==i.algoid)t=new u.crypto.DSA;else{if("2a8648ce3d0201"!=i.algoid)throw"unsupported private key algorithm";t=new u.crypto.ECDSA}return t.readPKCS8PrvKeyHex(e),t},_getKeyFromPublicPKCS8Hex:function(e){var t,i=Te.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===i)t=new K;else if("2a8648ce380401"===i)t=new u.crypto.DSA;else{if("2a8648ce3d0201"!==i)throw"unsupported PKCS#8 public key hex";t=new u.crypto.ECDSA}return t.readPKCS8PubKeyHex(e),t},parsePublicRawRSAKeyHex:function(e){var t=Te,i=t.getChildIdx,n=t.getV,r={};if("30"!=e.substr(0,2))throw"malformed RSA key(code:001)";var o=i(e,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=e.substr(o[0],2))throw"malformed RSA key(code:003)";if(r.n=n(e,o[0]),"02"!=e.substr(o[1],2))throw"malformed RSA key(code:004)";return r.e=n(e,o[1]),r},parsePublicPKCS8Hex:function(e){var t=Te,i=t.getChildIdx,n=t.getV,r={algparam:null},o=i(e,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var s=o[0];if("30"!=e.substr(s,2))throw"malformed PKCS8 public key(code:001)";var a=i(e,s);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=e.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(r.algoid=n(e,a[0]),"06"==e.substr(a[1],2)?r.algparam=n(e,a[1]):"30"==e.substr(a[1],2)&&(r.algparam={},r.algparam.p=t.getVbyList(e,a[1],[0],"02"),r.algparam.q=t.getVbyList(e,a[1],[1],"02"),r.algparam.g=t.getVbyList(e,a[1],[2],"02")),"03"!=e.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return r.key=n(e,o[1]).substr(2),r}});we.getKey=function(e,t,i){var n=(y=Te).getChildIdx;y.getV;var r=y.getVbyList,o=u.crypto,s=o.ECDSA,a=o.DSA,c=K,l=ue,d=we;if(void 0!==c&&e instanceof c)return e;if(void 0!==s&&e instanceof s)return e;if(void 0!==a&&e instanceof a)return e;if(void 0!==e.curve&&void 0!==e.xy&&void 0===e.d)return new s({pub:e.xy,curve:e.curve});if(void 0!==e.curve&&void 0!==e.d)return new s({prv:e.d,curve:e.curve});if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(I=new c).setPublic(e.n,e.e),I;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.co&&void 0===e.qi)return(I=new c).setPrivateEx(e.n,e.e,e.d,e.p,e.q,e.dp,e.dq,e.co),I;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0===e.p)return(I=new c).setPrivate(e.n,e.e,e.d),I;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0===e.x)return(I=new a).setPublic(e.p,e.q,e.g,e.y),I;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0!==e.x)return(I=new a).setPrivate(e.p,e.q,e.g,e.y,e.x),I;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(I=new c).setPublic(te(e.n),te(e.e)),I;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.qi)return(I=new c).setPrivateEx(te(e.n),te(e.e),te(e.d),te(e.p),te(e.q),te(e.dp),te(e.dq),te(e.qi)),I;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d)return(I=new c).setPrivate(te(e.n),te(e.e),te(e.d)),I;if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0===e.d){var p=(z=new s({curve:e.crv})).ecparams.keylen/4,A="04"+("0000000000"+te(e.x)).slice(-p)+("0000000000"+te(e.y)).slice(-p);return z.setPublicKeyHex(A),z}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0!==e.d){p=(z=new s({curve:e.crv})).ecparams.keylen/4,A="04"+("0000000000"+te(e.x)).slice(-p)+("0000000000"+te(e.y)).slice(-p);var f=("0000000000"+te(e.d)).slice(-p);return z.setPublicKeyHex(A),z.setPrivateKeyHex(f),z}if("pkcs5prv"===i){var M,g=e,y=Te;if(9===(M=n(g,0)).length)(I=new c).readPKCS5PrvKeyHex(g);else if(6===M.length)(I=new a).readPKCS5PrvKeyHex(g);else{if(!(M.length>2&&"04"===g.substr(M[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(I=new s).readPKCS5PrvKeyHex(g)}return I}if("pkcs8prv"===i)return I=d.getKeyFromPlainPrivatePKCS8Hex(e);if("pkcs8pub"===i)return d._getKeyFromPublicPKCS8Hex(e);if("x509pub"===i)return ze.getPublicKeyFromCertHex(e);if(-1!=e.indexOf("-END CERTIFICATE-",0)||-1!=e.indexOf("-END X509 CERTIFICATE-",0)||-1!=e.indexOf("-END TRUSTED CERTIFICATE-",0))return ze.getPublicKeyFromCertPEM(e);if(-1!=e.indexOf("-END PUBLIC KEY-")){var m=ue(e,"PUBLIC KEY");return d._getKeyFromPublicPKCS8Hex(m)}if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var v=l(e,"RSA PRIVATE KEY");return d.getKey(v,null,"pkcs5prv")}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var N=r(S=l(e,"DSA PRIVATE KEY"),0,[1],"02"),D=r(S,0,[2],"02"),w=r(S,0,[3],"02"),T=r(S,0,[4],"02"),x=r(S,0,[5],"02");return(I=new a).setPrivate(new h(N,16),new h(D,16),new h(w,16),new h(T,16),new h(x,16)),I}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){v=l(e,"EC PRIVATE KEY");return d.getKey(v,null,"pkcs5prv")}if(-1!=e.indexOf("-END PRIVATE KEY-"))return d.getKeyFromPlainPrivatePKCS8PEM(e);if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var E=d.getDecryptedKeyHex(e,t),j=new K;return j.readPKCS5PrvKeyHex(E),j}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var z,I=r(S=d.getDecryptedKeyHex(e,t),0,[1],"04"),b=r(S,0,[2,0],"06"),O=r(S,0,[3,0],"03").substr(2);if(void 0===u.crypto.OID.oidhex2name[b])throw"undefined OID(hex) in KJUR.crypto.OID: "+b;return(z=new s({curve:u.crypto.OID.oidhex2name[b]})).setPublicKeyHex(O),z.setPrivateKeyHex(I),z.isPublic=!1,z}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var S;N=r(S=d.getDecryptedKeyHex(e,t),0,[1],"02"),D=r(S,0,[2],"02"),w=r(S,0,[3],"02"),T=r(S,0,[4],"02"),x=r(S,0,[5],"02");return(I=new a).setPrivate(new h(N,16),new h(D,16),new h(w,16),new h(T,16),new h(x,16)),I}if(-1!=e.indexOf("-END ENCRYPTED PRIVATE KEY-"))return d.getKeyFromEncryptedPKCS8PEM(e,t);throw new Error("not supported argument")},we.generateKeypair=function(e,t){if("RSA"==e){var i=t;(s=new K).generate(i,"10001"),s.isPrivate=!0,s.isPublic=!0;var n=new K,r=s.n.toString(16),o=s.e.toString(16);return n.setPublic(r,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if("EC"==e){var s,a,c=t,l=new u.crypto.ECDSA({curve:c}).generateKeyPairHex();return(s=new u.crypto.ECDSA({curve:c})).setPublicKeyHex(l.ecpubhex),s.setPrivateKeyHex(l.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new u.crypto.ECDSA({curve:c})).setPublicKeyHex(l.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw"unknown algorithm: "+e},we.getPEM=function(e,t,i,n,r,o){var s=u,a=s.asn1,c=a.DERObjectIdentifier,h=a.DERInteger,d=a.ASN1Util.newObject,p=a.x509.SubjectPublicKeyInfo,A=s.crypto,f=A.DSA,M=A.ECDSA,g=K;function y(e){return d({seq:[{int:0},{int:{bigint:e.n}},{int:e.e},{int:{bigint:e.d}},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.dmp1}},{int:{bigint:e.dmq1}},{int:{bigint:e.coeff}}]})}function m(e){return d({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a0",!0,{oid:{name:e.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]})}function v(e){return d({seq:[{int:0},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}},{int:{bigint:e.y}},{int:{bigint:e.x}}]})}if((void 0!==g&&e instanceof g||void 0!==f&&e instanceof f||void 0!==M&&e instanceof M)&&1==e.isPublic&&(void 0===t||"PKCS8PUB"==t))return ae(T=new p(e).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==t&&void 0!==g&&e instanceof g&&(void 0===i||null==i)&&1==e.isPrivate)return ae(T=y(e).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==t&&void 0!==M&&e instanceof M&&(void 0===i||null==i)&&1==e.isPrivate){var N=new c({name:e.curveName}).getEncodedHex(),D=m(e).getEncodedHex(),w="";return w+=ae(N,"EC PARAMETERS"),w+=ae(D,"EC PRIVATE KEY")}if("PKCS1PRV"==t&&void 0!==f&&e instanceof f&&(void 0===i||null==i)&&1==e.isPrivate)return ae(T=v(e).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==t&&void 0!==g&&e instanceof g&&void 0!==i&&null!=i&&1==e.isPrivate){var T=y(e).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",T,i,n,o)}if("PKCS5PRV"==t&&void 0!==M&&e instanceof M&&void 0!==i&&null!=i&&1==e.isPrivate){T=m(e).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",T,i,n,o)}if("PKCS5PRV"==t&&void 0!==f&&e instanceof f&&void 0!==i&&null!=i&&1==e.isPrivate){T=v(e).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",T,i,n,o)}var x=function(e,t){var i=E(e,t);return new d({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:i.pbkdf2Salt}},{int:i.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:i.encryptionSchemeIV}}]}]}]},{octstr:{hex:i.ciphertext}}]}).getEncodedHex()},E=function(e,t){var i=l.lib.WordArray.random(8),n=l.lib.WordArray.random(8),r=l.PBKDF2(t,i,{keySize:6,iterations:100}),o=l.enc.Hex.parse(e),s=l.TripleDES.encrypt(o,r,{iv:n})+"",a={};return a.ciphertext=s,a.pbkdf2Salt=l.enc.Hex.stringify(i),a.pbkdf2Iter=100,a.encryptionSchemeAlg="DES-EDE3-CBC",a.encryptionSchemeIV=l.enc.Hex.stringify(n),a};if("PKCS8PRV"==t&&null!=g&&e instanceof g&&1==e.isPrivate){var j=y(e).getEncodedHex();T=d({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:j}}]}).getEncodedHex();return void 0===i||null==i?ae(T,"PRIVATE KEY"):ae(D=x(T,i),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==t&&void 0!==M&&e instanceof M&&1==e.isPrivate){j=new d({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]}).getEncodedHex(),T=d({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:e.curveName}}]},{octstr:{hex:j}}]}).getEncodedHex();return void 0===i||null==i?ae(T,"PRIVATE KEY"):ae(D=x(T,i),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==t&&void 0!==f&&e instanceof f&&1==e.isPrivate){j=new h({bigint:e.x}).getEncodedHex(),T=d({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]}]},{octstr:{hex:j}}]}).getEncodedHex();return void 0===i||null==i?ae(T,"PRIVATE KEY"):ae(D=x(T,i),"ENCRYPTED PRIVATE KEY")}throw new Error("unsupported object nor format")},we.getKeyFromCSRPEM=function(e){var t=ue(e,"CERTIFICATE REQUEST");return we.getKeyFromCSRHex(t)},we.getKeyFromCSRHex=function(e){var t=we.parseCSRHex(e);return we.getKey(t.p8pubkeyhex,null,"pkcs8pub")},we.parseCSRHex=function(e){var t=Te,i=t.getChildIdx,n=t.getTLV,r={},o=e;if("30"!=o.substr(0,2))throw"malformed CSR(code:001)";var s=i(o,0);if(s.length<1)throw"malformed CSR(code:002)";if("30"!=o.substr(s[0],2))throw"malformed CSR(code:003)";var a=i(o,s[0]);if(a.length<3)throw"malformed CSR(code:004)";return r.p8pubkeyhex=n(o,a[2]),r},we.getKeyID=function(e){var t=we,i=Te;"string"==typeof e&&-1!=e.indexOf("BEGIN ")&&(e=t.getKey(e));var n=ue(t.getPEM(e)),r=i.getIdxbyList(n,0,[1]),o=i.getV(n,r).substring(2);return u.crypto.Util.hashHex(o,"sha1")},we.getJWKFromKey=function(e){var t={};if(e instanceof K&&e.isPrivate)return t.kty="RSA",t.n=ee(e.n.toString(16)),t.e=ee(e.e.toString(16)),t.d=ee(e.d.toString(16)),t.p=ee(e.p.toString(16)),t.q=ee(e.q.toString(16)),t.dp=ee(e.dmp1.toString(16)),t.dq=ee(e.dmq1.toString(16)),t.qi=ee(e.coeff.toString(16)),t;if(e instanceof K&&e.isPublic)return t.kty="RSA",t.n=ee(e.n.toString(16)),t.e=ee(e.e.toString(16)),t;if(e instanceof u.crypto.ECDSA&&e.isPrivate){if("P-256"!==(n=e.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var i=e.getPublicKeyXYHex();return t.kty="EC",t.crv=n,t.x=ee(i.x),t.y=ee(i.y),t.d=ee(e.prvKeyHex),t}if(e instanceof u.crypto.ECDSA&&e.isPublic){var n;if("P-256"!==(n=e.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;i=e.getPublicKeyXYHex();return t.kty="EC",t.crv=n,t.x=ee(i.x),t.y=ee(i.y),t}throw"not supported key object"},void 0!==u.asn1&&u.asn1||(u.asn1={}),u.asn1.ASN1Util=new function(){this.integerToByteHex=function(e){var t=e.toString(16);return t.length%2==1&&(t="0"+t),t},this.bigIntToMinTwosComplementsHex=function(e){var t=e.toString(16);if("-"!=t.substr(0,1))t.length%2==1?t="0"+t:t.match(/^[0-7]/)||(t="00"+t);else{var i=t.substr(1).length;i%2==1?i+=1:t.match(/^[0-7]/)||(i+=2);for(var n="",r=0;r<i;r++)n+="f";t=new h(n,16).xor(e).add(h.ONE).toString(16).replace(/^-/,"")}return t},this.getPEMStringFromHex=function(e,t){return ae(e,t)},this.newObject=function(e){var t=u.asn1,i=t.ASN1Object,n=t.DERBoolean,r=t.DERInteger,o=t.DERBitString,s=t.DEROctetString,a=t.DERNull,c=t.DERObjectIdentifier,l=t.DEREnumerated,h=t.DERUTF8String,d=t.DERNumericString,p=t.DERPrintableString,A=t.DERTeletexString,f=t.DERIA5String,M=t.DERUTCTime,g=t.DERGeneralizedTime,y=t.DERVisibleString,m=t.DERBMPString,v=t.DERSequence,N=t.DERSet,D=t.DERTaggedObject,w=t.ASN1Util.newObject;if(e instanceof t.ASN1Object)return e;var T=Object.keys(e);if(1!=T.length)throw new Error("key of param shall be only one.");var x=T[0];if(-1==":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:".indexOf(":"+x+":"))throw new Error("undefined key: "+x);if("bool"==x)return new n(e[x]);if("int"==x)return new r(e[x]);if("bitstr"==x)return new o(e[x]);if("octstr"==x)return new s(e[x]);if("null"==x)return new a(e[x]);if("oid"==x)return new c(e[x]);if("enum"==x)return new l(e[x]);if("utf8str"==x)return new h(e[x]);if("numstr"==x)return new d(e[x]);if("prnstr"==x)return new p(e[x]);if("telstr"==x)return new A(e[x]);if("ia5str"==x)return new f(e[x]);if("utctime"==x)return new M(e[x]);if("gentime"==x)return new g(e[x]);if("visstr"==x)return new y(e[x]);if("bmpstr"==x)return new m(e[x]);if("asn1"==x)return new i(e[x]);if("seq"==x){for(var E=e[x],j=[],z=0;z<E.length;z++){var I=w(E[z]);j.push(I)}return new v({array:j})}if("set"==x){for(E=e[x],j=[],z=0;z<E.length;z++){I=w(E[z]);j.push(I)}return new N({array:j})}if("tag"==x){var b=e[x];if("[object Array]"===Object.prototype.toString.call(b)&&3==b.length){var O=w(b[2]);return new D({tag:b[0],explicit:b[1],obj:O})}return new D(b)}},this.jsonToASN1HEX=function(e){return this.newObject(e).getEncodedHex()}},u.asn1.ASN1Util.oidHexToInt=function(e){for(var t="",i=parseInt(e.substr(0,2),16),n=(t=Math.floor(i/40)+"."+i%40,""),r=2;r<e.length;r+=2){var o=("00000000"+parseInt(e.substr(r,2),16).toString(2)).slice(-8);if(n+=o.substr(1,7),"0"==o.substr(0,1))t=t+"."+new h(n,2).toString(10),n=""}return t},u.asn1.ASN1Util.oidIntToHex=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},i=function(e){var i="",n=new h(e,10).toString(2),r=7-n.length%7;7==r&&(r=0);for(var o="",s=0;s<r;s++)o+="0";n=o+n;for(s=0;s<n.length-1;s+=7){var a=n.substr(s,7);s!=n.length-7&&(a="1"+a),i+=t(parseInt(a,2))}return i};if(!e.match(/^[0-9.]+$/))throw"malformed oid string: "+e;var n="",r=e.split("."),o=40*parseInt(r[0])+parseInt(r[1]);n+=t(o),r.splice(0,2);for(var s=0;s<r.length;s++)n+=i(r[s]);return n},u.asn1.ASN1Object=function(e){this.params=null,this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw new Error("this.hV is null or undefined");if(this.hV.length%2==1)throw new Error("value hex must be even length: n="+"".length+",v="+this.hV);var e=this.hV.length/2,t=e.toString(16);if(t.length%2==1&&(t="0"+t),e<128)return t;var i=t.length/2;if(i>15)throw"ASN.1 length too long to represent by 8x: n = "+e.toString(16);return(128+i).toString(16)+t},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(e){this.params=e},null!=e&&null!=e.tlv&&(this.hTLV=e.tlv,this.isModified=!1)},u.asn1.DERAbstractString=function(e){u.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=ie(this.s).toLowerCase()},this.setStringHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&("string"==typeof e?this.setString(e):void 0!==e.str?this.setString(e.str):void 0!==e.hex&&this.setStringHex(e.hex))},c.lang.extend(u.asn1.DERAbstractString,u.asn1.ASN1Object),u.asn1.DERAbstractTime=function(e){u.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(e){var t=e.getTime()+6e4*e.getTimezoneOffset();return new Date(t)},this.formatDate=function(e,t,i){var n=this.zeroPadding,r=this.localDateToUTC(e),o=String(r.getFullYear());"utc"==t&&(o=o.substr(2,2));var s=o+n(String(r.getMonth()+1),2)+n(String(r.getDate()),2)+n(String(r.getHours()),2)+n(String(r.getMinutes()),2)+n(String(r.getSeconds()),2);if(!0===i){var a=r.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+"."+(u=u.replace(/[0]+$/,""))}}return s+"Z"},this.zeroPadding=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=J(e)},this.setByDateValue=function(e,t,i,n,r,o){var s=new Date(Date.UTC(e,t-1,i,n,r,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},c.lang.extend(u.asn1.DERAbstractTime,u.asn1.ASN1Object),u.asn1.DERAbstractStructured=function(e){u.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array=e},this.appendASN1Object=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array.push(e)},this.asn1Array=new Array,void 0!==e&&void 0!==e.array&&(this.asn1Array=e.array)},c.lang.extend(u.asn1.DERAbstractStructured,u.asn1.ASN1Object),u.asn1.DERBoolean=function(e){u.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==e?"010100":"0101ff"},c.lang.extend(u.asn1.DERBoolean,u.asn1.ASN1Object),u.asn1.DERInteger=function(e){u.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=u.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new h(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&(void 0!==e.bigint?this.setByBigInteger(e.bigint):void 0!==e.int?this.setByInteger(e.int):"number"==typeof e?this.setByInteger(e):void 0!==e.hex&&this.setValueHex(e.hex))},c.lang.extend(u.asn1.DERInteger,u.asn1.ASN1Object),u.asn1.DERBitString=function(e){if(void 0!==e&&void 0!==e.obj){var t=u.asn1.ASN1Util.newObject(e.obj);e.hex="00"+t.getEncodedHex()}u.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(e){this.hTLV=null,this.isModified=!0,this.hV=e},this.setUnusedBitsAndHexValue=function(e,t){if(e<0||7<e)throw"unused bits shall be from 0 to 7: u = "+e;var i="0"+e;this.hTLV=null,this.isModified=!0,this.hV=i+t},this.setByBinaryString=function(e){var t=8-(e=e.replace(/0+$/,"")).length%8;8==t&&(t=0);for(var i=0;i<=t;i++)e+="0";var n="";for(i=0;i<e.length-1;i+=8){var r=e.substr(i,8),o=parseInt(r,2).toString(16);1==o.length&&(o="0"+o),n+=o}this.hTLV=null,this.isModified=!0,this.hV="0"+t+n},this.setByBooleanArray=function(e){for(var t="",i=0;i<e.length;i++)1==e[i]?t+="1":t+="0";this.setByBinaryString(t)},this.newFalseArray=function(e){for(var t=new Array(e),i=0;i<e;i++)t[i]=!1;return t},this.getFreshValueHex=function(){return this.hV},void 0!==e&&("string"==typeof e&&e.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(e):void 0!==e.hex?this.setHexValueIncludingUnusedBits(e.hex):void 0!==e.bin?this.setByBinaryString(e.bin):void 0!==e.array&&this.setByBooleanArray(e.array))},c.lang.extend(u.asn1.DERBitString,u.asn1.ASN1Object),u.asn1.DEROctetString=function(e){if(void 0!==e&&void 0!==e.obj){var t=u.asn1.ASN1Util.newObject(e.obj);e.hex=t.getEncodedHex()}u.asn1.DEROctetString.superclass.constructor.call(this,e),this.hT="04"},c.lang.extend(u.asn1.DEROctetString,u.asn1.DERAbstractString),u.asn1.DERNull=function(){u.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"},c.lang.extend(u.asn1.DERNull,u.asn1.ASN1Object),u.asn1.DERObjectIdentifier=function(e){u.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueOidString=function(e){var t=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},i=function(e){var i="",n=parseInt(e,10).toString(2),r=7-n.length%7;7==r&&(r=0);for(var o="",s=0;s<r;s++)o+="0";for(n=o+n,s=0;s<n.length-1;s+=7){var a=n.substr(s,7);s!=n.length-7&&(a="1"+a),i+=t(parseInt(a,2))}return i};try{if(!e.match(/^[0-9.]+$/))return null;var n="",r=e.split("."),o=40*parseInt(r[0],10)+parseInt(r[1],10);n+=t(o),r.splice(0,2);for(var s=0;s<r.length;s++)n+=i(r[s]);return n}catch(e){return null}}(e);if(null==t)throw new Error("malformed oid string: "+e);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueName=function(e){var t=u.asn1.x509.OID.name2oid(e);if(""===t)throw new Error("DERObjectIdentifier oidName undefined: "+e);this.setValueOidString(t)},this.setValueNameOrOid=function(e){e.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(e):this.setValueName(e)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){"string"==typeof e?this.setValueNameOrOid(e):void 0!==e.oid?this.setValueNameOrOid(e.oid):void 0!==e.name?this.setValueNameOrOid(e.name):void 0!==e.hex&&this.setValueHex(e.hex)},void 0!==e&&this.setByParam(e)},c.lang.extend(u.asn1.DERObjectIdentifier,u.asn1.ASN1Object),u.asn1.DEREnumerated=function(e){u.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=u.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new h(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&(void 0!==e.int?this.setByInteger(e.int):"number"==typeof e?this.setByInteger(e):void 0!==e.hex&&this.setValueHex(e.hex))},c.lang.extend(u.asn1.DEREnumerated,u.asn1.ASN1Object),u.asn1.DERUTF8String=function(e){u.asn1.DERUTF8String.superclass.constructor.call(this,e),this.hT="0c"},c.lang.extend(u.asn1.DERUTF8String,u.asn1.DERAbstractString),u.asn1.DERNumericString=function(e){u.asn1.DERNumericString.superclass.constructor.call(this,e),this.hT="12"},c.lang.extend(u.asn1.DERNumericString,u.asn1.DERAbstractString),u.asn1.DERPrintableString=function(e){u.asn1.DERPrintableString.superclass.constructor.call(this,e),this.hT="13"},c.lang.extend(u.asn1.DERPrintableString,u.asn1.DERAbstractString),u.asn1.DERTeletexString=function(e){u.asn1.DERTeletexString.superclass.constructor.call(this,e),this.hT="14"},c.lang.extend(u.asn1.DERTeletexString,u.asn1.DERAbstractString),u.asn1.DERIA5String=function(e){u.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="16"},c.lang.extend(u.asn1.DERIA5String,u.asn1.DERAbstractString),u.asn1.DERVisibleString=function(e){u.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="1a"},c.lang.extend(u.asn1.DERVisibleString,u.asn1.DERAbstractString),u.asn1.DERBMPString=function(e){u.asn1.DERBMPString.superclass.constructor.call(this,e),this.hT="1e"},c.lang.extend(u.asn1.DERBMPString,u.asn1.DERAbstractString),u.asn1.DERUTCTime=function(e){u.asn1.DERUTCTime.superclass.constructor.call(this,e),this.hT="17",this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"utc"),this.hV=J(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=J(this.s)),this.hV},void 0!==e&&(void 0!==e.str?this.setString(e.str):"string"==typeof e&&e.match(/^[0-9]{12}Z$/)?this.setString(e):void 0!==e.hex?this.setStringHex(e.hex):void 0!==e.date&&this.setByDate(e.date))},c.lang.extend(u.asn1.DERUTCTime,u.asn1.DERAbstractTime),u.asn1.DERGeneralizedTime=function(e){u.asn1.DERGeneralizedTime.superclass.constructor.call(this,e),this.hT="18",this.withMillis=!1,this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=J(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=J(this.s)),this.hV},void 0!==e&&(void 0!==e.str?this.setString(e.str):"string"==typeof e&&e.match(/^[0-9]{14}Z$/)?this.setString(e):void 0!==e.hex?this.setStringHex(e.hex):void 0!==e.date&&this.setByDate(e.date),!0===e.millis&&(this.withMillis=!0))},c.lang.extend(u.asn1.DERGeneralizedTime,u.asn1.DERAbstractTime),u.asn1.DERSequence=function(e){u.asn1.DERSequence.superclass.constructor.call(this,e),this.hT="30",this.getFreshValueHex=function(){for(var e="",t=0;t<this.asn1Array.length;t++){e+=this.asn1Array[t].getEncodedHex()}return this.hV=e,this.hV}},c.lang.extend(u.asn1.DERSequence,u.asn1.DERAbstractStructured),u.asn1.DERSet=function(e){u.asn1.DERSet.superclass.constructor.call(this,e),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var e=new Array,t=0;t<this.asn1Array.length;t++){var i=this.asn1Array[t];e.push(i.getEncodedHex())}return 1==this.sortFlag&&e.sort(),this.hV=e.join(""),this.hV},void 0!==e&&void 0!==e.sortflag&&0==e.sortflag&&(this.sortFlag=!1)},c.lang.extend(u.asn1.DERSet,u.asn1.DERAbstractStructured),u.asn1.DERTaggedObject=function(e){u.asn1.DERTaggedObject.superclass.constructor.call(this);var t=u.asn1;this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(e,t,i){this.hT=t,this.isExplicit=e,this.asn1Object=i,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=i.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,t),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){null!=e.tag&&(this.hT=e.tag),null!=e.explicit&&(this.isExplicit=e.explicit),null!=e.tage&&(this.hT=e.tage,this.isExplicit=!0),null!=e.tagi&&(this.hT=e.tagi,this.isExplicit=!1),null!=e.obj&&(e.obj instanceof t.ASN1Object?(this.asn1Object=e.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)):"object"==typeof e.obj&&(this.asn1Object=t.ASN1Util.newObject(e.obj),this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},null!=e&&this.setByParam(e)},c.lang.extend(u.asn1.DERTaggedObject,u.asn1.ASN1Object);var Te=new function(){};function xe(e,t){for(var i="",n=t/4-e.length,r=0;r<n;r++)i+="0";return i+e}function Ee(e,t,i){for(var n="",r=0;n.length<t;)n+=re(i(oe(e+String.fromCharCode.apply(String,[(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r])))),r+=1;return n}function je(e){for(var t in u.crypto.Util.DIGESTINFOHEAD){var i=u.crypto.Util.DIGESTINFOHEAD[t],n=i.length;if(e.substring(0,n)==i)return[t,e.substring(n)]}return[]}function ze(e){var t,i=Te,n=i.getChildIdx,r=i.getV,o=i.getTLV,s=i.getVbyList,a=i.getVbyListEx,c=i.getTLVbyList,l=i.getTLVbyListEx,h=i.getIdxbyList,d=i.getIdxbyListEx,p=i.getVidx,A=i.getInt,f=i.oidname,M=i.hextooidstr,g=ue;try{t=u.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(e){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var e=c(this.hex,0,[0,0]);if("a0"==e.substr(0,2)){var t=c(e,0,[0]),i=A(t,0);if(i<0||2<i)throw new Error("malformed version field");return this.version=i+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var e=l(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(e)},this.getAlgorithmIdentifierName=function(e){for(var i in t)if(e===t[i])return i;return f(a(e,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return c(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return c(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var e=s(this.hex,0,[0,4+this.foffset,0]);return e=e.replace(/(..)/g,"%$1"),e=decodeURIComponent(e)},this.getNotAfter=function(){var e=s(this.hex,0,[0,4+this.foffset,1]);return e=e.replace(/(..)/g,"%$1"),e=decodeURIComponent(e)},this.getPublicKeyHex=function(){return i.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var e=this.getPublicKeyIdx();return h(this.hex,e,[1,0],"30")},this.getPublicKey=function(){return we.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var e=c(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(e)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),i=this.getSignatureValueHex(),n=c(this.hex,0,[0],"30"),r=new u.crypto.Signature({alg:t});return r.init(e),r.updateHex(n),r.verify(i)},this.parseExt=function(e){var t,o,a;if(void 0===e){if(a=this.hex,3!==this.version)return-1;t=h(a,0,[0,7,0],"30"),o=n(a,t)}else{a=ue(e);var u=h(a,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=r(a,u))return void(this.aExtInfo=new Array);t=h(a,0,[0,3,0,1,0],"30"),o=n(a,t),this.hex=a}this.aExtInfo=new Array;for(var c=0;c<o.length;c++){var l={critical:!1},d=0;3===n(a,o[c]).length&&(l.critical=!0,d=1),l.oid=i.hextooidstr(s(a,o[c],[0],"06"));var A=h(a,o[c],[1+d]);l.vidx=p(a,A),this.aExtInfo.push(l)}},this.getExtInfo=function(e){var t=this.aExtInfo,i=e;if(e.match(/^[0-9.]+$/)||(i=u.asn1.x509.OID.name2oid(e)),""!==i)for(var n=0;n<t.length;n++)if(t[n].oid===i)return t[n]},this.getExtBasicConstraints=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("basicConstraints");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"basicConstraints"};if(t&&(n.critical=!0),"3000"===e)return n;if("30030101ff"===e)return n.cA=!0,n;if("30060101ff02"===e.substr(0,12)){var s=r(e,10),a=parseInt(s,16);return n.cA=!0,n.pathLen=a,n}throw new Error("hExtV parse error: "+e)},this.getExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("keyUsage");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"keyUsage"};return t&&(n.critical=!0),n.names=this.getExtKeyUsageString(e).split(","),n},this.getExtKeyUsageBin=function(e){if(void 0===e){var t=this.getExtInfo("keyUsage");if(void 0===t)return"";e=o(this.hex,t.vidx)}if(8!=e.length&&10!=e.length)throw new Error("malformed key usage value: "+e);var i="000000000000000"+parseInt(e.substr(6),16).toString(2);return 8==e.length&&(i=i.slice(-8)),10==e.length&&(i=i.slice(-16)),""==(i=i.replace(/0+$/,""))&&(i="0"),i},this.getExtKeyUsageString=function(e){for(var t=this.getExtKeyUsageBin(e),i=new Array,n=0;n<t.length;n++)"1"==t.substr(n,1)&&i.push(ze.KEYUSAGE_NAME[n]);return i.join(",")},this.getExtSubjectKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("subjectKeyIdentifier");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"subjectKeyIdentifier"};t&&(n.critical=!0);var s=r(e,0);return n.kid={hex:s},n},this.getExtAuthorityKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("authorityKeyIdentifier");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var s={extname:"authorityKeyIdentifier"};t&&(s.critical=!0);for(var a=n(e,0),u=0;u<a.length;u++){var c=e.substr(a[u],2);if("80"===c&&(s.kid={hex:r(e,a[u])}),"a1"===c){var l=o(e,a[u]),h=this.getGeneralNames(l);s.issuer=h[0].dn}"82"===c&&(s.sn={hex:r(e,a[u])})}return s},this.getExtExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("extKeyUsage");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var s={extname:"extKeyUsage",array:[]};t&&(s.critical=!0);for(var a=n(e,0),u=0;u<a.length;u++)s.array.push(f(r(e,a[u])));return s},this.getExtExtKeyUsageName=function(){var e=this.getExtInfo("extKeyUsage");if(void 0===e)return e;var t=new Array,i=o(this.hex,e.vidx);if(""===i)return t;for(var s=n(i,0),a=0;a<s.length;a++)t.push(f(r(i,s[a])));return t},this.getExtSubjectAltName=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("subjectAltName");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"subjectAltName",array:[]};return t&&(n.critical=!0),n.array=this.getGeneralNames(e),n},this.getExtIssuerAltName=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("issuerAltName");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"issuerAltName",array:[]};return t&&(n.critical=!0),n.array=this.getGeneralNames(e),n},this.getGeneralNames=function(e){for(var t=n(e,0),i=[],r=0;r<t.length;r++){var s=this.getGeneralName(o(e,t[r]));void 0!==s&&i.push(s)}return i},this.getGeneralName=function(e){var t=e.substr(0,2),i=r(e,0),n=re(i);return"81"==t?{rfc822:n}:"82"==t?{dns:n}:"86"==t?{uri:n}:"87"==t?{ip:ce(i)}:"a4"==t?{dn:this.getX500Name(i)}:void 0},this.getExtSubjectAltName2=function(){var e,t,i,s=this.getExtInfo("subjectAltName");if(void 0===s)return s;for(var a=new Array,u=o(this.hex,s.vidx),c=n(u,0),l=0;l<c.length;l++)i=u.substr(c[l],2),e=r(u,c[l]),"81"===i&&(t=ne(e),a.push(["MAIL",t])),"82"===i&&(t=ne(e),a.push(["DNS",t])),"84"===i&&(t=ze.hex2dn(e,0),a.push(["DN",t])),"86"===i&&(t=ne(e),a.push(["URI",t])),"87"===i&&(t=ce(e),a.push(["IP",t]));return a},this.getExtCRLDistributionPoints=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("cRLDistributionPoints");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"cRLDistributionPoints",array:[]};t&&(r.critical=!0);for(var s=n(e,0),a=0;a<s.length;a++){var u=o(e,s[a]);r.array.push(this.getDistributionPoint(u))}return r},this.getDistributionPoint=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var s=e.substr(i[r],2),a=o(e,i[r]);"a0"==s&&(t.dpname=this.getDistributionPointName(a))}return t},this.getDistributionPointName=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var s=e.substr(i[r],2),a=o(e,i[r]);"a0"==s&&(t.full=this.getGeneralNames(a))}return t},this.getExtCRLDistributionPointsURI=function(){var e=this.getExtInfo("cRLDistributionPoints");if(void 0===e)return e;for(var t=new Array,i=n(this.hex,e.vidx),r=0;r<i.length;r++)try{var o=ne(s(this.hex,i[r],[0,0,0],"86"));t.push(o)}catch(e){}return t},this.getExtAIAInfo=function(){var e=this.getExtInfo("authorityInfoAccess");if(void 0===e)return e;for(var t={ocsp:[],caissuer:[]},i=n(this.hex,e.vidx),r=0;r<i.length;r++){var o=s(this.hex,i[r],[0],"06"),a=s(this.hex,i[r],[1],"86");"2b06010505073001"===o&&t.ocsp.push(ne(a)),"2b06010505073002"===o&&t.caissuer.push(ne(a))}return t},this.getExtAuthorityInfoAccess=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("authorityInfoAccess");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"authorityInfoAccess",array:[]};t&&(r.critical=!0);for(var u=n(e,0),c=0;c<u.length;c++){var l=a(e,u[c],[0],"06"),h=ne(s(e,u[c],[1],"86"));if("2b06010505073001"==l)r.array.push({ocsp:h});else{if("2b06010505073002"!=l)throw new Error("unknown method: "+l);r.array.push({caissuer:h})}}return r},this.getExtCertificatePolicies=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("certificatePolicies");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"certificatePolicies",array:[]};t&&(r.critical=!0);for(var s=n(e,0),a=0;a<s.length;a++){var u=o(e,s[a]),c=this.getPolicyInformation(u);r.array.push(c)}return r},this.getPolicyInformation=function(e){var t={},i=s(e,0,[0],"06");t.policyoid=f(i);var r=d(e,0,[1],"30");if(-1!=r){t.array=[];for(var a=n(e,r),u=0;u<a.length;u++){var c=o(e,a[u]),l=this.getPolicyQualifierInfo(c);t.array.push(l)}}return t},this.getPolicyQualifierInfo=function(e){var t={},i=s(e,0,[0],"06");if("2b06010505070201"===i){var n=a(e,0,[1],"16");t.cps=re(n)}else if("2b06010505070202"===i){var r=c(e,0,[1],"30");t.unotice=this.getUserNotice(r)}return t},this.getUserNotice=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var s=o(e,i[r]);"30"!=s.substr(0,2)&&(t.exptext=this.getDisplayText(s))}return t},this.getDisplayText=function(e){var t={};return t.type={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"}[e.substr(0,2)],t.str=re(r(e,0)),t},this.getExtCRLNumber=function(e,t){var i={extname:"cRLNumber"};if(t&&(i.critical=!0),"02"==e.substr(0,2))return i.num={hex:r(e,0)},i;throw new Error("hExtV parse error: "+e)},this.getExtCRLReason=function(e,t){var i={extname:"cRLReason"};if(t&&(i.critical=!0),"0a"==e.substr(0,2))return i.code=parseInt(r(e,0),16),i;throw new Error("hExtV parse error: "+e)},this.getExtOcspNonce=function(e,t){var i={extname:"ocspNonce"};t&&(i.critical=!0);var n=r(e,0);return i.hex=n,i},this.getExtOcspNoCheck=function(e,t){var i={extname:"ocspNoCheck"};return t&&(i.critical=!0),i},this.getExtAdobeTimeStamp=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("adobeTimeStamp");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"adobeTimeStamp"};t&&(r.critical=!0);var s=n(e,0);if(s.length>1){var a=o(e,s[1]),u=this.getGeneralName(a);null!=u.uri&&(r.uri=u.uri)}if(s.length>2){var c=o(e,s[2]);"0101ff"==c&&(r.reqauth=!0),"010100"==c&&(r.reqauth=!1)}return r},this.getX500NameRule=function(e){for(var t=null,i=[],n=0;n<e.length;n++)for(var r=e[n],o=0;o<r.length;o++)i.push(r[o]);for(n=0;n<i.length;n++){var s=i[n],a=s.ds,c=s.value,l=s.type;if("prn"!=a&&"utf8"!=a&&"ia5"!=a)return"mixed";if("ia5"==a){if("CN"!=l)return"mixed";if(u.lang.String.isMail(c))continue;return"mixed"}if("C"==l){if("prn"==a)continue;return"mixed"}if(null==t)t=a;else if(t!==a)return"mixed"}return null==t?"prn":t},this.getX500Name=function(e){var t=this.getX500NameArray(e);return{array:t,str:this.dnarraytostr(t)}},this.getX500NameArray=function(e){for(var t=[],i=n(e,0),r=0;r<i.length;r++)t.push(this.getRDN(o(e,i[r])));return t},this.getRDN=function(e){for(var t=[],i=n(e,0),r=0;r<i.length;r++)t.push(this.getAttrTypeAndValue(o(e,i[r])));return t},this.getAttrTypeAndValue=function(e){var t={type:null,value:null,ds:null},i=n(e,0),r=s(e,i[0],[],"06"),o=s(e,i[1],[]),a=u.asn1.ASN1Util.oidHexToInt(r);return t.type=u.asn1.x509.OID.oid2atype(a),t.ds=this.HEX2STAG[e.substr(i[1],2)],"bmp"!=t.ds?t.value=ne(o):t.value=le(o),t},this.readCertPEM=function(e){this.readCertHex(g(e))},this.readCertHex=function(e){this.hex=e,this.getVersion();try{h(this.hex,0,[0,7],"a3"),this.parseExt()}catch(e){}},this.getParam=function(){var e={};return e.version=this.getVersion(),e.serial={hex:this.getSerialNumberHex()},e.sigalg=this.getSignatureAlgorithmField(),e.issuer=this.getIssuer(),e.notbefore=this.getNotBefore(),e.notafter=this.getNotAfter(),e.subject=this.getSubject(),e.sbjpubkey=ae(this.getPublicKeyHex(),"PUBLIC KEY"),this.aExtInfo.length>0&&(e.ext=this.getExtParamArray()),e.sighex=this.getSignatureValueHex(),e},this.getExtParamArray=function(e){null==e&&(-1!=d(this.hex,0,[0,"[3]"])&&(e=l(this.hex,0,[0,"[3]",0],"30")));for(var t=[],i=n(e,0),r=0;r<i.length;r++){var s=o(e,i[r]),a=this.getExtParam(s);null!=a&&t.push(a)}return t},this.getExtParam=function(e){var t=n(e,0).length;if(2!=t&&3!=t)throw new Error("wrong number elements in Extension: "+t+" "+e);var i=M(s(e,0,[0],"06")),r=!1;3==t&&"0101ff"==c(e,0,[1])&&(r=!0);var o=c(e,0,[t-1,0]),a=void 0;if("2.5.29.14"==i?a=this.getExtSubjectKeyIdentifier(o,r):"2.5.29.15"==i?a=this.getExtKeyUsage(o,r):"2.5.29.17"==i?a=this.getExtSubjectAltName(o,r):"2.5.29.18"==i?a=this.getExtIssuerAltName(o,r):"2.5.29.19"==i?a=this.getExtBasicConstraints(o,r):"2.5.29.31"==i?a=this.getExtCRLDistributionPoints(o,r):"2.5.29.32"==i?a=this.getExtCertificatePolicies(o,r):"2.5.29.35"==i?a=this.getExtAuthorityKeyIdentifier(o,r):"2.5.29.37"==i?a=this.getExtExtKeyUsage(o,r):"1.3.6.1.5.5.7.1.1"==i?a=this.getExtAuthorityInfoAccess(o,r):"2.5.29.20"==i?a=this.getExtCRLNumber(o,r):"2.5.29.21"==i?a=this.getExtCRLReason(o,r):"1.3.6.1.5.5.7.48.1.2"==i?a=this.getExtOcspNonce(o,r):"1.3.6.1.5.5.7.48.1.5"==i?a=this.getExtOcspNoCheck(o,r):"1.2.840.113583.1.1.9.1"==i&&(a=this.getExtAdobeTimeStamp(o,r)),null!=a)return a;var u={extname:i,extn:o};return r&&(u.critical=!0),u},this.findExt=function(e,t){for(var i=0;i<e.length;i++)if(e[i].extname==t)return e[i];return null},this.updateExtCDPFullURI=function(e,t){var i=this.findExt(e,"cRLDistributionPoints");if(null!=i&&null!=i.array)for(var n=i.array,r=0;r<n.length;r++)if(null!=n[r].dpname&&null!=n[r].dpname.full)for(var o=n[r].dpname.full,s=0;s<o.length;s++){var a=o[r];null!=a.uri&&(a.uri=t)}},this.updateExtAIAOCSP=function(e,t){var i=this.findExt(e,"authorityInfoAccess");if(null!=i&&null!=i.array)for(var n=i.array,r=0;r<n.length;r++)null!=n[r].ocsp&&(n[r].ocsp=t)},this.updateExtAIACAIssuer=function(e,t){var i=this.findExt(e,"authorityInfoAccess");if(null!=i&&null!=i.array)for(var n=i.array,r=0;r<n.length;r++)null!=n[r].caissuer&&(n[r].caissuer=t)},this.dnarraytostr=function(e){return"/"+e.map((function(e){return function(e){return e.map((function(e){return function(e){return e.type+"="+e.value}(e).replace(/\+/,"\\+")})).join("+")}(e).replace(/\//,"\\/")})).join("/")},this.getInfo=function(){var e,t,i,n,r=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];if(t+=" policy oid: "+r.policyoid+"\n",void 0!==r.array)for(var o=0;o<r.array.length;o++){var s=r.array[o];void 0!==s.cps&&(t+=" cps: "+s.cps+"\n")}}return t},o=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];try{void 0!==r.dpname.full[0].uri&&(t+=" "+r.dpname.full[0].uri+"\n")}catch(e){}try{void 0!==r.dname.full[0].dn.hex&&(t+=" "+ze.hex2dn(r.dpname.full[0].dn.hex)+"\n")}catch(e){}}return t},s=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];void 0!==r.caissuer&&(t+=" caissuer: "+r.caissuer+"\n"),void 0!==r.ocsp&&(t+=" ocsp: "+r.ocsp+"\n")}return t};if(e="Basic Fields\n",e+=" serial number: "+this.getSerialNumberHex()+"\n",e+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",e+=" issuer: "+this.getIssuerString()+"\n",e+=" notBefore: "+this.getNotBefore()+"\n",e+=" notAfter: "+this.getNotAfter()+"\n",e+=" subject: "+this.getSubjectString()+"\n",e+=" subject public key info: \n",e+=" key algorithm: "+(t=this.getPublicKey()).type+"\n","RSA"===t.type&&(e+=" n="+de(t.n.toString(16)).substr(0,16)+"...\n",e+=" e="+de(t.e.toString(16))+"\n"),null!=(i=this.aExtInfo)){e+="X509v3 Extensions:\n";for(var a=0;a<i.length;a++){var c=i[a],l=u.asn1.x509.OID.oid2name(c.oid);""===l&&(l=c.oid);var h="";if(!0===c.critical&&(h="CRITICAL"),e+=" "+l+" "+h+":\n","basicConstraints"===l){var d=this.getExtBasicConstraints();void 0===d.cA?e+=" {}\n":(e+=" cA=true",void 0!==d.pathLen&&(e+=", pathLen="+d.pathLen),e+="\n")}else if("keyUsage"===l)e+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"===l)e+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"===l){var p=this.getExtAuthorityKeyIdentifier();void 0!==p.kid&&(e+=" kid="+p.kid.hex+"\n")}else{if("extKeyUsage"===l)e+=" "+this.getExtExtKeyUsage().array.join(", ")+"\n";else if("subjectAltName"===l)e+=" "+(n=this.getExtSubjectAltName(),JSON.stringify(n.array).replace(/[\[\]\{\}\"]/g,""))+"\n";else if("cRLDistributionPoints"===l)e+=o(this.getExtCRLDistributionPoints());else if("authorityInfoAccess"===l)e+=s(this.getExtAuthorityInfoAccess());else"certificatePolicies"===l&&(e+=r(this.getExtCertificatePolicies()))}}}return e+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n",e+="signature: "+this.getSignatureValueHex().substr(0,16)+"...\n"},"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?this.readCertPEM(e):u.lang.String.isHex(e)&&this.readCertHex(e))}function Ie(e){return l.SHA256(e).toString()}Te.getLblen=function(e,t){if("8"!=e.substr(t+2,1))return 1;var i=parseInt(e.substr(t+3,1));return 0==i?-1:0<i&&i<10?i+1:-2},Te.getL=function(e,t){var i=Te.getLblen(e,t);return i<1?"":e.substr(t+2,2*i)},Te.getVblen=function(e,t){var i;return""==(i=Te.getL(e,t))?-1:("8"===i.substr(0,1)?new h(i.substr(2),16):new h(i,16)).intValue()},Te.getVidx=function(e,t){var i=Te.getLblen(e,t);return i<0?i:t+2*(i+1)},Te.getV=function(e,t){var i=Te.getVidx(e,t),n=Te.getVblen(e,t);return e.substr(i,2*n)},Te.getTLV=function(e,t){return e.substr(t,2)+Te.getL(e,t)+Te.getV(e,t)},Te.getTLVblen=function(e,t){return 2+2*Te.getLblen(e,t)+2*Te.getVblen(e,t)},Te.getNextSiblingIdx=function(e,t){return Te.getVidx(e,t)+2*Te.getVblen(e,t)},Te.getChildIdx=function(e,t){var i,n,r,o=Te,s=[];i=o.getVidx(e,t),n=2*o.getVblen(e,t),"03"==e.substr(t,2)&&(i+=2,n-=2),r=0;for(var a=i;r<=n;){var u=o.getTLVblen(e,a);if((r+=u)<=n&&s.push(a),a+=u,r>=n)break}return s},Te.getNthChildIdx=function(e,t,i){return Te.getChildIdx(e,t)[i]},Te.getIdxbyList=function(e,t,i,n){var r,o,s=Te;return 0==i.length?void 0!==n&&e.substr(t,2)!==n?-1:t:(r=i.shift())>=(o=s.getChildIdx(e,t)).length?-1:s.getIdxbyList(e,o[r],i,n)},Te.getIdxbyListEx=function(e,t,i,n){var r,o,s=Te;if(0==i.length)return void 0!==n&&e.substr(t,2)!==n?-1:t;r=i.shift(),o=s.getChildIdx(e,t);for(var a=0,u=0;u<o.length;u++){var c=e.substr(o[u],2);if("number"==typeof r&&!s.isContextTag(c)&&a==r||"string"==typeof r&&s.isContextTag(c,r))return s.getIdxbyListEx(e,o[u],i,n);s.isContextTag(c)||a++}return-1},Te.getTLVbyList=function(e,t,i,n){var r=Te,o=r.getIdxbyList(e,t,i,n);return-1==o||o>=e.length?null:r.getTLV(e,o)},Te.getTLVbyListEx=function(e,t,i,n){var r=Te,o=r.getIdxbyListEx(e,t,i,n);return-1==o?null:r.getTLV(e,o)},Te.getVbyList=function(e,t,i,n,r){var o,s,a=Te;return-1==(o=a.getIdxbyList(e,t,i,n))||o>=e.length?null:(s=a.getV(e,o),!0===r&&(s=s.substr(2)),s)},Te.getVbyListEx=function(e,t,i,n,r){var o,s,a=Te;return-1==(o=a.getIdxbyListEx(e,t,i,n))?null:(s=a.getV(e,o),"03"==e.substr(o,2)&&!1!==r&&(s=s.substr(2)),s)},Te.getInt=function(e,t,i){null==i&&(i=-1);try{var n=e.substr(t,2);if("02"!=n&&"03"!=n)return i;var r=Te.getV(e,t);return"02"==n?parseInt(r,16):function(e){try{var t=e.substr(0,2);if("00"==t)return parseInt(e.substr(2),16);var i=parseInt(t,16),n=e.substr(2),r=parseInt(n,16).toString(2);return"0"==r&&(r="00000000"),r=r.slice(0,0-i),parseInt(r,2)}catch(e){return-1}}(r)}catch(e){return i}},Te.getOID=function(e,t,i){null==i&&(i=null);try{return"06"!=e.substr(t,2)?i:function(e){if(!he(e))return null;try{var t=[],i=e.substr(0,2),n=parseInt(i,16);t[0]=new String(Math.floor(n/40)),t[1]=new String(n%40);for(var r=e.substr(2),o=[],s=0;s<r.length/2;s++)o.push(parseInt(r.substr(2*s,2),16));var a=[],u="";for(s=0;s<o.length;s++)128&o[s]?u+=pe((127&o[s]).toString(2),7):(u+=pe((127&o[s]).toString(2),7),a.push(new String(parseInt(u,2))),u="");var c=t.join(".");return a.length>0&&(c=c+"."+a.join(".")),c}catch(e){return null}}(Te.getV(e,t))}catch(e){return i}},Te.getOIDName=function(e,t,i){null==i&&(i=null);try{var n=Te.getOID(e,t,i);if(n==i)return i;var r=u.asn1.x509.OID.oid2name(n);return""==r?n:r}catch(e){return i}},Te.getString=function(e,t,i){null==i&&(i=null);try{return re(Te.getV(e,t))}catch(e){return i}},Te.hextooidstr=function(e){var t=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},i=[],n=e.substr(0,2),r=parseInt(n,16);i[0]=new String(Math.floor(r/40)),i[1]=new String(r%40);for(var o=e.substr(2),s=[],a=0;a<o.length/2;a++)s.push(parseInt(o.substr(2*a,2),16));var u=[],c="";for(a=0;a<s.length;a++)128&s[a]?c+=t((127&s[a]).toString(2),7):(c+=t((127&s[a]).toString(2),7),u.push(new String(parseInt(c,2))),c="");var l=i.join(".");return u.length>0&&(l=l+"."+u.join(".")),l},Te.dump=function(e,t,i,n){var r=Te,o=r.getV,s=r.dump,a=r.getChildIdx,c=e;e instanceof u.asn1.ASN1Object&&(c=e.getEncodedHex());var l=function(e,t){return e.length<=2*t?e:e.substr(0,t)+"..(total "+e.length/2+"bytes).."+e.substr(e.length-t,t)};void 0===t&&(t={ommit_long_octet:32}),void 0===i&&(i=0),void 0===n&&(n="");var h,d=t.ommit_long_octet;if("01"==(h=c.substr(i,2)))return"00"==(p=o(c,i))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==h)return n+"INTEGER "+l(p=o(c,i),d)+"\n";if("03"==h){var p=o(c,i);if(r.isASN1HEX(p.substr(2))){var A=n+"BITSTRING, encapsulates\n";return A+=s(p.substr(2),t,0,n+" ")}return n+"BITSTRING "+l(p,d)+"\n"}if("04"==h){p=o(c,i);if(r.isASN1HEX(p)){A=n+"OCTETSTRING, encapsulates\n";return A+=s(p,t,0,n+" ")}return n+"OCTETSTRING "+l(p,d)+"\n"}if("05"==h)return n+"NULL\n";if("06"==h){var f=o(c,i),M=u.asn1.ASN1Util.oidHexToInt(f),g=u.asn1.x509.OID.oid2name(M),y=M.replace(/\./g," ");return""!=g?n+"ObjectIdentifier "+g+" ("+y+")\n":n+"ObjectIdentifier ("+y+")\n"}if("0a"==h)return n+"ENUMERATED "+parseInt(o(c,i))+"\n";if("0c"==h)return n+"UTF8String '"+ne(o(c,i))+"'\n";if("13"==h)return n+"PrintableString '"+ne(o(c,i))+"'\n";if("14"==h)return n+"TeletexString '"+ne(o(c,i))+"'\n";if("16"==h)return n+"IA5String '"+ne(o(c,i))+"'\n";if("17"==h)return n+"UTCTime "+ne(o(c,i))+"\n";if("18"==h)return n+"GeneralizedTime "+ne(o(c,i))+"\n";if("1a"==h)return n+"VisualString '"+ne(o(c,i))+"'\n";if("1e"==h)return n+"BMPString '"+le(o(c,i))+"'\n";if("30"==h){if("3000"==c.substr(i,4))return n+"SEQUENCE {}\n";A=n+"SEQUENCE\n";var m=t;if((2==(D=a(c,i)).length||3==D.length)&&"06"==c.substr(D[0],2)&&"04"==c.substr(D[D.length-1],2)){g=r.oidname(o(c,D[0]));var v=JSON.parse(JSON.stringify(t));v.x509ExtName=g,m=v}for(var N=0;N<D.length;N++)A+=s(c,m,D[N],n+" ");return A}if("31"==h){A=n+"SET\n";var D=a(c,i);for(N=0;N<D.length;N++)A+=s(c,t,D[N],n+" ");return A}if(0!=(128&(h=parseInt(h,16)))){var w=31&h;if(0!=(32&h)){for(A=n+"["+w+"]\n",D=a(c,i),N=0;N<D.length;N++)A+=s(c,t,D[N],n+" ");return A}p=o(c,i);if(Te.isASN1HEX(p)){var A=n+"["+w+"]\n";return A+=s(p,t,0,n+" ")}return("68747470"==p.substr(0,8)||"subjectAltName"===t.x509ExtName&&2==w)&&(p=ne(p)),A=n+"["+w+"] "+p+"\n"}return n+"UNKNOWN("+h+") "+o(c,i)+"\n"},Te.isContextTag=function(e,t){var i,n;e=e.toLowerCase();try{i=parseInt(e,16)}catch(e){return-1}if(void 0===t)return 128==(192&i);try{return null!=t.match(/^\[[0-9]+\]$/)&&(!((n=parseInt(t.substr(1,t.length-1),10))>31)&&(128==(192&i)&&(31&i)==n))}catch(e){return!1}},Te.isASN1HEX=function(e){var t=Te;if(e.length%2==1)return!1;var i=t.getVblen(e,0),n=e.substr(0,2),r=t.getL(e,0);return e.length-n.length-r.length==2*i},Te.checkStrictDER=function(e,t,i,n,r){var o=Te;if(void 0===i){if("string"!=typeof e)throw new Error("not hex string");if(e=e.toLowerCase(),!u.lang.String.isHex(e))throw new Error("not hex string");i=e.length,r=(n=e.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(e,t).length>2*r)throw new Error("L of TLV too long: idx="+t);var s=o.getVblen(e,t);if(s>n)throw new Error("value of L too long than hex: idx="+t);var a=o.getTLV(e,t),c=a.length-2-o.getL(e,t).length;if(c!==2*s)throw new Error("V string length and L's value not the same:"+c+"/"+2*s);if(0===t&&e.length!=a.length)throw new Error("total length and TLV length unmatch:"+e.length+"!="+a.length);var l=e.substr(t,2);if("02"===l){var h=o.getVidx(e,t);if("00"==e.substr(h,2)&&e.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(l,16)){for(var d=o.getVblen(e,t),p=0,A=o.getChildIdx(e,t),f=0;f<A.length;f++){p+=o.getTLV(e,A[f]).length,o.checkStrictDER(e,A[f],i,n,r)}if(2*d!=p)throw new Error("sum of children's TLV length and L unmatch: "+2*d+"!="+p)}},Te.oidname=function(e){var t=u.asn1;u.lang.String.isHex(e)&&(e=t.ASN1Util.oidHexToInt(e));var i=t.x509.OID.oid2name(e);return""===i&&(i=e),i},void 0!==u.asn1&&u.asn1||(u.asn1={}),void 0!==u.asn1.x509&&u.asn1.x509||(u.asn1.x509={}),u.asn1.x509.Certificate=function(e){u.asn1.x509.Certificate.superclass.constructor.call(this);var t=u.asn1,i=t.DERBitString,n=t.DERSequence,r=t.x509,o=r.TBSCertificate,s=r.AlgorithmIdentifier;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=this.params,t=e.sigalg;null!=e.sigalg.name&&(t=e.sigalg.name);var i=e.tbsobj.getEncodedHex(),n=new u.crypto.Signature({alg:t});n.init(e.cakey),n.updateHex(i),e.sighex=n.sign()},this.getPEM=function(){return ae(this.getEncodedHex(),"CERTIFICATE")},this.getEncodedHex=function(){var e=this.params;if(null!=e.tbsobj&&null!=e.tbsobj||(e.tbsobj=new o(e)),null==e.sighex&&null!=e.cakey&&this.sign(),null==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];return t.push(e.tbsobj),t.push(new s({name:e.sigalg})),t.push(new i({hex:"00"+e.sighex})),new n({array:t}).getEncodedHex()},null!=e&&(this.params=e)},Ae(u.asn1.x509.Certificate,u.asn1.ASN1Object),u.asn1.x509.TBSCertificate=function(e){u.asn1.x509.TBSCertificate.superclass.constructor.call(this);var t=u.asn1,i=t.x509,n=t.DERTaggedObject,r=t.DERInteger,o=t.DERSequence,s=i.AlgorithmIdentifier,a=i.Time,c=i.X500Name,l=i.Extensions,h=i.SubjectPublicKeyInfo;this.params=null,this.setByParam=function(e){this.params=e},this.getEncodedHex=function(){var e=[],t=this.params;if(null!=t.version||1!=t.version){var i=2;null!=t.version&&(i=t.version-1);var d=new n({obj:new r({int:i})});e.push(d)}return e.push(new r(t.serial)),e.push(new s({name:t.sigalg})),e.push(new c(t.issuer)),e.push(new o({array:[new a(t.notbefore),new a(t.notafter)]})),e.push(new c(t.subject)),e.push(new h(we.getKey(t.sbjpubkey))),void 0!==t.ext&&t.ext.length>0&&e.push(new n({tag:"a3",obj:new l(t.ext)})),new u.asn1.DERSequence({array:e}).getEncodedHex()},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.TBSCertificate,u.asn1.ASN1Object),u.asn1.x509.Extensions=function(e){u.asn1.x509.Extensions.superclass.constructor.call(this);var t=u.asn1,i=t.DERSequence,n=t.x509;this.aParam=[],this.setByParam=function(e){this.aParam=e},this.getEncodedHex=function(){for(var e=[],t=0;t<this.aParam.length;t++){var r=this.aParam[t],o=r.extname,s=null;if(null!=r.extn)s=new n.PrivateExtension(r);else if("subjectKeyIdentifier"==o)s=new n.SubjectKeyIdentifier(r);else if("keyUsage"==o)s=new n.KeyUsage(r);else if("subjectAltName"==o)s=new n.SubjectAltName(r);else if("issuerAltName"==o)s=new n.IssuerAltName(r);else if("basicConstraints"==o)s=new n.BasicConstraints(r);else if("cRLDistributionPoints"==o)s=new n.CRLDistributionPoints(r);else if("certificatePolicies"==o)s=new n.CertificatePolicies(r);else if("authorityKeyIdentifier"==o)s=new n.AuthorityKeyIdentifier(r);else if("extKeyUsage"==o)s=new n.ExtKeyUsage(r);else if("authorityInfoAccess"==o)s=new n.AuthorityInfoAccess(r);else if("cRLNumber"==o)s=new n.CRLNumber(r);else if("cRLReason"==o)s=new n.CRLReason(r);else if("ocspNonce"==o)s=new n.OCSPNonce(r);else if("ocspNoCheck"==o)s=new n.OCSPNoCheck(r);else if("adobeTimeStamp"==o)s=new n.AdobeTimeStamp(r);else{if("subjectDirectoryAttributes"!=o)throw new Error("extension not supported:"+JSON.stringify(r));s=new n.SubjectDirectoryAttributes(r)}null!=s&&e.push(s)}return new i({array:e}).getEncodedHex()},null!=e&&this.setByParam(e)},Ae(u.asn1.x509.Extensions,u.asn1.ASN1Object),u.asn1.x509.Extension=function(e){u.asn1.x509.Extension.superclass.constructor.call(this);var t=u.asn1,i=t.DERObjectIdentifier,n=t.DEROctetString;t.DERBitString;var r=t.DERBoolean,o=t.DERSequence;this.getEncodedHex=function(){var e=new i({oid:this.oid}),t=new n({hex:this.getExtnValueHex()}),s=new Array;return s.push(e),this.critical&&s.push(new r),s.push(t),new o({array:s}).getEncodedHex()},this.critical=!1,void 0!==e&&void 0!==e.critical&&(this.critical=e.critical)},Ae(u.asn1.x509.Extension,u.asn1.ASN1Object),u.asn1.x509.KeyUsage=function(e){u.asn1.x509.KeyUsage.superclass.constructor.call(this,e);var t=ze.KEYUSAGE_NAME;if(this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.15",void 0!==e&&(void 0!==e.bin&&(this.asn1ExtnValue=new u.asn1.DERBitString(e)),void 0!==e.names&&void 0!==e.names.length)){for(var i=e.names,n="000000000",r=0;r<i.length;r++)for(var o=0;o<t.length;o++)i[r]===t[o]&&(n=n.substring(0,o)+"1"+n.substring(o+1,n.length));this.asn1ExtnValue=new u.asn1.DERBitString({bin:n})}},Ae(u.asn1.x509.KeyUsage,u.asn1.x509.Extension),u.asn1.x509.BasicConstraints=function(e){u.asn1.x509.BasicConstraints.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERBoolean,n=t.DERInteger,r=t.DERSequence;this.getExtnValueHex=function(){var e=new Array;this.cA&&e.push(new i),this.pathLen>-1&&e.push(new n({int:this.pathLen}));var t=new r({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.19",this.cA=!1,this.pathLen=-1,void 0!==e&&(void 0!==e.cA&&(this.cA=e.cA),void 0!==e.pathLen&&(this.pathLen=e.pathLen))},Ae(u.asn1.x509.BasicConstraints,u.asn1.x509.Extension),u.asn1.x509.CRLDistributionPoints=function(e){u.asn1.x509.CRLDistributionPoints.superclass.constructor.call(this,e);var t=u.asn1,i=t.x509;this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.setByDPArray=function(e){for(var n=[],r=0;r<e.length;r++)if(e[r]instanceof u.asn1.ASN1Object)n.push(e[r]);else{var o=new i.DistributionPoint(e[r]);n.push(o)}this.asn1ExtnValue=new t.DERSequence({array:n})},this.setByOneURI=function(e){var t=new i.DistributionPoint({fulluri:e});this.setByDPArray([t])},this.oid="2.5.29.31",void 0!==e&&(void 0!==e.array?this.setByDPArray(e.array):void 0!==e.uri&&this.setByOneURI(e.uri))},Ae(u.asn1.x509.CRLDistributionPoints,u.asn1.x509.Extension),u.asn1.x509.DistributionPoint=function(e){u.asn1.x509.DistributionPoint.superclass.constructor.call(this);var t=u.asn1,i=t.x509.DistributionPointName;this.getEncodedHex=function(){var e=new t.DERSequence;if(null!=this.asn1DP){var i=new t.DERTaggedObject({explicit:!0,tag:"a0",obj:this.asn1DP});e.appendASN1Object(i)}return this.hTLV=e.getEncodedHex(),this.hTLV},void 0!==e&&(void 0!==e.dpobj?this.asn1DP=e.dpobj:void 0!==e.dpname?this.asn1DP=new i(e.dpname):void 0!==e.fulluri&&(this.asn1DP=new i({full:[{uri:e.fulluri}]})))},Ae(u.asn1.x509.DistributionPoint,u.asn1.ASN1Object),u.asn1.x509.DistributionPointName=function(e){u.asn1.x509.DistributionPointName.superclass.constructor.call(this);var t=u.asn1,i=t.DERTaggedObject;if(this.getEncodedHex=function(){if("full"!=this.type)throw new Error("currently type shall be 'full': "+this.type);return this.asn1Obj=new i({explicit:!1,tag:this.tag,obj:this.asn1V}),this.hTLV=this.asn1Obj.getEncodedHex(),this.hTLV},void 0!==e)if(t.x509.GeneralNames.prototype.isPrototypeOf(e))this.type="full",this.tag="a0",this.asn1V=e;else{if(void 0===e.full)throw new Error("This class supports GeneralNames only as argument");this.type="full",this.tag="a0",this.asn1V=new t.x509.GeneralNames(e.full)}},Ae(u.asn1.x509.DistributionPointName,u.asn1.ASN1Object),u.asn1.x509.CertificatePolicies=function(e){u.asn1.x509.CertificatePolicies.superclass.constructor.call(this,e);var t=u.asn1,i=t.x509,n=t.DERSequence,r=i.PolicyInformation;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++)e.push(new r(this.params.array[t]));var i=new n({array:e});return this.asn1ExtnValue=i,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.32",void 0!==e&&(this.params=e)},Ae(u.asn1.x509.CertificatePolicies,u.asn1.x509.Extension),u.asn1.x509.PolicyInformation=function(e){u.asn1.x509.PolicyInformation.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERSequence,n=t.DERObjectIdentifier,r=t.x509.PolicyQualifierInfo;this.params=null,this.getEncodedHex=function(){if(void 0===this.params.policyoid&&void 0===this.params.array)throw new Error("parameter oid and array missing");var e=[new n(this.params.policyoid)];if(void 0!==this.params.array){for(var t=[],o=0;o<this.params.array.length;o++)t.push(new r(this.params.array[o]));t.length>0&&e.push(new i({array:t}))}return new i({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},Ae(u.asn1.x509.PolicyInformation,u.asn1.ASN1Object),u.asn1.x509.PolicyQualifierInfo=function(e){u.asn1.x509.PolicyQualifierInfo.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERSequence,n=t.DERIA5String,r=t.DERObjectIdentifier,o=t.x509.UserNotice;this.params=null,this.getEncodedHex=function(){return void 0!==this.params.cps?new i({array:[new r({oid:"1.3.6.1.5.5.7.2.1"}),new n({str:this.params.cps})]}).getEncodedHex():null!=this.params.unotice?new i({array:[new r({oid:"1.3.6.1.5.5.7.2.2"}),new o(this.params.unotice)]}).getEncodedHex():void 0},void 0!==e&&(this.params=e)},Ae(u.asn1.x509.PolicyQualifierInfo,u.asn1.ASN1Object),u.asn1.x509.UserNotice=function(e){u.asn1.x509.UserNotice.superclass.constructor.call(this,e);var t=u.asn1.DERSequence;u.asn1.DERInteger;var i=u.asn1.x509.DisplayText,n=u.asn1.x509.NoticeReference;this.params=null,this.getEncodedHex=function(){var e=[];return void 0!==this.params.noticeref&&e.push(new n(this.params.noticeref)),void 0!==this.params.exptext&&e.push(new i(this.params.exptext)),new t({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},Ae(u.asn1.x509.UserNotice,u.asn1.ASN1Object),u.asn1.x509.NoticeReference=function(e){u.asn1.x509.NoticeReference.superclass.constructor.call(this,e);var t=u.asn1.DERSequence,i=u.asn1.DERInteger,n=u.asn1.x509.DisplayText;this.params=null,this.getEncodedHex=function(){var e=[];if(void 0!==this.params.org&&e.push(new n(this.params.org)),void 0!==this.params.noticenum){for(var r=[],o=this.params.noticenum,s=0;s<o.length;s++)r.push(new i(o[s]));e.push(new t({array:r}))}if(0==e.length)throw new Error("parameter is empty");return new t({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},Ae(u.asn1.x509.NoticeReference,u.asn1.ASN1Object),u.asn1.x509.DisplayText=function(e){u.asn1.x509.DisplayText.superclass.constructor.call(this,e),this.hT="0c",void 0!==e&&("ia5"===e.type?this.hT="16":"vis"===e.type?this.hT="1a":"bmp"===e.type&&(this.hT="1e"))},Ae(u.asn1.x509.DisplayText,u.asn1.DERAbstractString),u.asn1.x509.ExtKeyUsage=function(e){u.asn1.x509.ExtKeyUsage.superclass.constructor.call(this,e);var t=u.asn1;this.setPurposeArray=function(e){this.asn1ExtnValue=new t.DERSequence;for(var i=0;i<e.length;i++){var n=new t.DERObjectIdentifier(e[i]);this.asn1ExtnValue.appendASN1Object(n)}},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.37",void 0!==e&&void 0!==e.array&&this.setPurposeArray(e.array)},Ae(u.asn1.x509.ExtKeyUsage,u.asn1.x509.Extension),u.asn1.x509.AuthorityKeyIdentifier=function(e){u.asn1.x509.AuthorityKeyIdentifier.superclass.constructor.call(this,e);var t=u,i=t.asn1,n=i.DERTaggedObject,r=i.x509.GeneralNames;t.crypto.Util.isKey,this.asn1KID=null,this.asn1CertIssuer=null,this.asn1CertSN=null,this.getExtnValueHex=function(){var e=new Array;this.asn1KID&&e.push(new n({explicit:!1,tag:"80",obj:this.asn1KID})),this.asn1CertIssuer&&e.push(new n({explicit:!1,tag:"a1",obj:new r([{dn:this.asn1CertIssuer}])})),this.asn1CertSN&&e.push(new n({explicit:!1,tag:"82",obj:this.asn1CertSN}));var t=new i.DERSequence({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.getEncodedHex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new u.asn1.DEROctetString(e);else if("object"==typeof e&&u.crypto.Util.isKey(e)||"string"==typeof e&&-1!=e.indexOf("BEGIN ")){var t=e;"string"==typeof e&&(t=we.getKey(e));var i=we.getKeyID(t);this.asn1KID=new u.asn1.DEROctetString({hex:i})}},this.setCertIssuerByParam=function(e){void 0!==e.str||void 0!==e.ldapstr||void 0!==e.hex||void 0!==e.certsubject||void 0!==e.certissuer?this.asn1CertIssuer=new u.asn1.x509.X500Name(e):"string"==typeof e&&-1!=e.indexOf("BEGIN ")&&-1!=e.indexOf("CERTIFICATE")&&(this.asn1CertIssuer=new u.asn1.x509.X500Name({certissuer:e}))},this.setCertSNByParam=function(e){if(void 0!==e.str||void 0!==e.bigint||void 0!==e.hex)this.asn1CertSN=new u.asn1.DERInteger(e);else if("string"==typeof e&&-1!=e.indexOf("BEGIN ")&&e.indexOf("CERTIFICATE")){var t=new ze;t.readCertPEM(e);var i=t.getSerialNumberHex();this.asn1CertSN=new u.asn1.DERInteger({hex:i})}},this.oid="2.5.29.35",void 0!==e&&(void 0!==e.kid&&this.setKIDByParam(e.kid),void 0!==e.issuer&&this.setCertIssuerByParam(e.issuer),void 0!==e.sn&&this.setCertSNByParam(e.sn),void 0!==e.issuersn&&"string"==typeof e.issuersn&&-1!=e.issuersn.indexOf("BEGIN ")&&e.issuersn.indexOf("CERTIFICATE")&&(this.setCertSNByParam(e.issuersn),this.setCertIssuerByParam(e.issuersn)))},Ae(u.asn1.x509.AuthorityKeyIdentifier,u.asn1.x509.Extension),u.asn1.x509.SubjectKeyIdentifier=function(e){u.asn1.x509.SubjectKeyIdentifier.superclass.constructor.call(this,e);var t=u.asn1.DEROctetString;this.asn1KID=null,this.getExtnValueHex=function(){return this.asn1ExtnValue=this.asn1KID,this.asn1ExtnValue.getEncodedHex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new t(e);else if("object"==typeof e&&u.crypto.Util.isKey(e)||"string"==typeof e&&-1!=e.indexOf("BEGIN")){var i=e;"string"==typeof e&&(i=we.getKey(e));var n=we.getKeyID(i);this.asn1KID=new u.asn1.DEROctetString({hex:n})}},this.oid="2.5.29.14",void 0!==e&&void 0!==e.kid&&this.setKIDByParam(e.kid)},Ae(u.asn1.x509.SubjectKeyIdentifier,u.asn1.x509.Extension),u.asn1.x509.AuthorityInfoAccess=function(e){u.asn1.x509.AuthorityInfoAccess.superclass.constructor.call(this,e),this.setAccessDescriptionArray=function(e){for(var t=new Array,i=u.asn1,n=i.DERSequence,r=i.DERObjectIdentifier,o=i.x509.GeneralName,s=0;s<e.length;s++){var a,c=e[s];if(void 0!==c.ocsp)a=new n({array:[new r({oid:"1.3.6.1.5.5.7.48.1"}),new o({uri:c.ocsp})]});else{if(void 0===c.caissuer)throw new Error("unknown AccessMethod parameter: "+JSON.stringify(c));a=new n({array:[new r({oid:"1.3.6.1.5.5.7.48.2"}),new o({uri:c.caissuer})]})}t.push(a)}this.asn1ExtnValue=new n({array:t})},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.1.1",void 0!==e&&void 0!==e.array&&this.setAccessDescriptionArray(e.array)},Ae(u.asn1.x509.AuthorityInfoAccess,u.asn1.x509.Extension),u.asn1.x509.SubjectAltName=function(e){u.asn1.x509.SubjectAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new u.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.17",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},Ae(u.asn1.x509.SubjectAltName,u.asn1.x509.Extension),u.asn1.x509.IssuerAltName=function(e){u.asn1.x509.IssuerAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new u.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.18",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},Ae(u.asn1.x509.IssuerAltName,u.asn1.x509.Extension),u.asn1.x509.SubjectDirectoryAttributes=function(e){u.asn1.x509.SubjectDirectoryAttributes.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERSequence,n=t.ASN1Util.newObject,r=t.x509.OID.name2oid;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++){var o=this.params.array[t],s={seq:[{oid:"1.2.3.4"},{set:[{utf8str:"DE"}]}]};if("dateOfBirth"==o.attr)s.seq[0].oid=r(o.attr),s.seq[1].set[0]={gentime:o.str};else if("placeOfBirth"==o.attr)s.seq[0].oid=r(o.attr),s.seq[1].set[0]={utf8str:o.str};else if("gender"==o.attr)s.seq[0].oid=r(o.attr),s.seq[1].set[0]={prnstr:o.str};else if("countryOfCitizenship"==o.attr)s.seq[0].oid=r(o.attr),s.seq[1].set[0]={prnstr:o.str};else{if("countryOfResidence"!=o.attr)throw new Error("unsupported attribute: "+o.attr);s.seq[0].oid=r(o.attr),s.seq[1].set[0]={prnstr:o.str}}e.push(new n(s))}var a=new i({array:e});return this.asn1ExtnValue=a,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.9",void 0!==e&&(this.params=e)},Ae(u.asn1.x509.SubjectDirectoryAttributes,u.asn1.x509.Extension),u.asn1.x509.PrivateExtension=function(e){u.asn1.x509.PrivateExtension.superclass.constructor.call(this,e);var t=u,i=t.lang.String.isHex,n=t.asn1,r=n.x509.OID.name2oid,o=n.ASN1Util.newObject;this.params=null,this.setByParam=function(e){this.oid=r(e.extname),this.params=e},this.getExtnValueHex=function(){if(null==this.params.extname||null==this.params.extn)throw new Error("extname or extnhex not specified");var e=this.params.extn;if("string"==typeof e&&i(e))return e;if("object"==typeof e)try{return o(e).getEncodedHex()}catch(e){}throw new Error("unsupported extn value")},null!=e&&this.setByParam(e)},Ae(u.asn1.x509.PrivateExtension,u.asn1.x509.Extension),u.asn1.x509.CRL=function(e){u.asn1.x509.CRL.superclass.constructor.call(this);var t=u.asn1,i=t.DERSequence,n=t.DERBitString,r=t.x509,o=r.AlgorithmIdentifier,s=r.TBSCertList;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=new s(this.params).getEncodedHex(),t=new u.crypto.Signature({alg:this.params.sigalg});t.init(this.params.cakey),t.updateHex(e);var i=t.sign();this.params.sighex=i},this.getPEM=function(){return ae(this.getEncodedHex(),"X509 CRL")},this.getEncodedHex=function(){var e=this.params;if(null==e.tbsobj&&(e.tbsobj=new s(e)),null==e.sighex&&null!=e.cakey&&this.sign(),null==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];return t.push(e.tbsobj),t.push(new o({name:e.sigalg})),t.push(new n({hex:"00"+e.sighex})),new i({array:t}).getEncodedHex()},null!=e&&(this.params=e)},Ae(u.asn1.x509.CRL,u.asn1.ASN1Object),u.asn1.x509.TBSCertList=function(e){u.asn1.x509.TBSCertList.superclass.constructor.call(this);var t=u.asn1,i=t.DERInteger,n=t.DERSequence,r=t.DERTaggedObject;t.DERObjectIdentifier;var o=t.x509,s=o.AlgorithmIdentifier,a=o.Time,c=o.Extensions,l=o.X500Name;this.params=null,this.setByParam=function(e){this.params=e},this.getRevCertSequence=function(){for(var e=[],t=this.params.revcert,r=0;r<t.length;r++){var o=[new i(t[r].sn),new a(t[r].date)];null!=t[r].ext&&o.push(new c(t[r].ext)),e.push(new n({array:o}))}return new n({array:e})},this.getEncodedHex=function(){var e=[],t=this.params;if(null!=t.version){var o=t.version-1,u=new i({int:o});e.push(u)}if(e.push(new s({name:t.sigalg})),e.push(new l(t.issuer)),e.push(new a(t.thisupdate)),null!=t.nextupdate&&e.push(new a(t.nextupdate)),null!=t.revcert&&e.push(this.getRevCertSequence()),null!=t.ext){var h=new c(t.ext);e.push(new r({tag:"a0",explicit:!0,obj:h}))}return new n({array:e}).getEncodedHex()},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.TBSCertList,u.asn1.ASN1Object),u.asn1.x509.CRLEntry=function(e){u.asn1.x509.CRLEntry.superclass.constructor.call(this);var t=u.asn1;this.setCertSerial=function(e){this.sn=new t.DERInteger(e)},this.setRevocationDate=function(e){this.time=new t.x509.Time(e)},this.getEncodedHex=function(){var e=new t.DERSequence({array:[this.sn,this.time]});return this.TLV=e.getEncodedHex(),this.TLV},void 0!==e&&(void 0!==e.time&&this.setRevocationDate(e.time),void 0!==e.sn&&this.setCertSerial(e.sn))},Ae(u.asn1.x509.CRLEntry,u.asn1.ASN1Object),u.asn1.x509.CRLNumber=function(e){u.asn1.x509.CRLNumber.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new u.asn1.DERInteger(this.params.num),this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.20",null!=e&&(this.params=e)},Ae(u.asn1.x509.CRLNumber,u.asn1.x509.Extension),u.asn1.x509.CRLReason=function(e){u.asn1.x509.CRLReason.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new u.asn1.DEREnumerated(this.params.code),this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.21",null!=e&&(this.params=e)},Ae(u.asn1.x509.CRLReason,u.asn1.x509.Extension),u.asn1.x509.OCSPNonce=function(e){u.asn1.x509.OCSPNonce.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new u.asn1.DEROctetString(this.params),this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.48.1.2",null!=e&&(this.params=e)},Ae(u.asn1.x509.OCSPNonce,u.asn1.x509.Extension),u.asn1.x509.OCSPNoCheck=function(e){u.asn1.x509.OCSPNoCheck.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new u.asn1.DERNull,this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.48.1.5",null!=e&&(this.params=e)},Ae(u.asn1.x509.OCSPNoCheck,u.asn1.x509.Extension),u.asn1.x509.AdobeTimeStamp=function(e){u.asn1.x509.AdobeTimeStamp.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERInteger,n=t.DERBoolean,r=t.DERSequence,o=t.x509.GeneralName;this.params=null,this.getExtnValueHex=function(){var e=this.params,t=[new i(1)];return t.push(new o({uri:e.uri})),null!=e.reqauth&&t.push(new n(e.reqauth)),this.asn1ExtnValue=new r({array:t}),this.asn1ExtnValue.getEncodedHex()},this.oid="1.2.840.113583.1.1.9.1",void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.AdobeTimeStamp,u.asn1.x509.Extension),u.asn1.x509.X500Name=function(e){u.asn1.x509.X500Name.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=u.asn1,i=t.x509,n=i.RDN;this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var i=e.split("/");i.shift();for(var r=[],o=0;o<i.length;o++)if(i[o].match(/^[^=]+=.+$/))r.push(i[o]);else{var s=r.length-1;r[s]=r[s]+"/"+i[o]}for(o=0;o<r.length;o++)this.asn1Array.push(new n({str:r[o],rule:this.sRule}))},this.setByLdapString=function(e,t){void 0!==t&&(this.sRule=t);var n=i.X500Name.ldapToCompat(e);this.setByString(n,t)},this.setByObject=function(e,t){for(var i in void 0!==t&&(this.sRule=t),e)if(e.hasOwnProperty(i)){var r=new n({str:i+"="+e[i],rule:this.sRule});this.asn1Array?this.asn1Array.push(r):this.asn1Array=[r]}},this.setByParam=function(e){var t;(void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.array)?this.paramArray=e.array:void 0!==e.str?this.setByString(e.str):void 0!==e.ldapstr?this.setByLdapString(e.ldapstr):void 0!==e.hex?this.hTLV=e.hex:void 0!==e.certissuer?((t=new ze).readCertPEM(e.certissuer),this.hTLV=t.getIssuerHex()):void 0!==e.certsubject?((t=new ze).readCertPEM(e.certsubject),this.hTLV=t.getSubjectHex()):"object"==typeof e&&void 0===e.certsubject&&void 0===e.certissuer&&this.setByObject(e)},this.getEncodedHex=function(){if("string"==typeof this.hTLV)return this.hTLV;if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var i={array:this.paramArray[e]};"utf8"!=this.sRule&&(i.rule=this.sRule);var r=new n(i);this.asn1Array.push(r)}var o=new t.DERSequence({array:this.asn1Array});return this.hTLV=o.getEncodedHex(),this.hTLV},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.X500Name,u.asn1.ASN1Object),u.asn1.x509.X500Name.compatToLDAP=function(e){if("/"!==e.substr(0,1))throw"malformed input";var t=(e=e.substr(1)).split("/");return t.reverse(),(t=t.map((function(e){return e.replace(/,/,"\\,")}))).join(",")},u.asn1.x509.X500Name.onelineToLDAP=function(e){return u.asn1.x509.X500Name.compatToLDAP(e)},u.asn1.x509.X500Name.ldapToCompat=function(e){for(var t=e.split(","),i=!1,n=[],r=0;t.length>0;r++){var o=t.shift();if(!0===i){var s=(n.pop()+","+o).replace(/\\,/g,",");n.push(s),i=!1}else n.push(o);"\\"===o.substr(-1,1)&&(i=!0)}return(n=n.map((function(e){return e.replace("/","\\/")}))).reverse(),"/"+n.join("/")},u.asn1.x509.X500Name.ldapToOneline=function(e){return u.asn1.x509.X500Name.ldapToCompat(e)},u.asn1.x509.RDN=function(e){u.asn1.x509.RDN.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=u.asn1.x509.AttributeTypeAndValue;this.setByParam=function(e){void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.str&&this.addByMultiValuedString(e.str),void 0!==e.array&&(this.paramArray=e.array)},this.addByString=function(e){this.asn1Array.push(new u.asn1.x509.AttributeTypeAndValue({str:e,rule:this.sRule}))},this.addByMultiValuedString=function(e){for(var t=u.asn1.x509.RDN.parseString(e),i=0;i<t.length;i++)this.addByString(t[i])},this.getEncodedHex=function(){if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var i=this.paramArray[e];void 0!==i.rule&&"utf8"!=this.sRule&&(i.rule=this.sRule);var n=new t(i);this.asn1Array.push(n)}var r=new u.asn1.DERSet({array:this.asn1Array});return this.TLV=r.getEncodedHex(),this.TLV},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.RDN,u.asn1.ASN1Object),u.asn1.x509.RDN.parseString=function(e){for(var t=e.split(/\+/),i=!1,n=[],r=0;t.length>0;r++){var o=t.shift();if(!0===i){var s=(n.pop()+"+"+o).replace(/\\\+/g,"+");n.push(s),i=!1}else n.push(o);"\\"===o.substr(-1,1)&&(i=!0)}var a=!1,u=[];for(r=0;n.length>0;r++){o=n.shift();if(!0===a){var c=u.pop();if(o.match(/"$/)){s=(c+"+"+o).replace(/^([^=]+)="(.*)"$/,"$1=$2");u.push(s),a=!1}else u.push(c+"+"+o)}else u.push(o);o.match(/^[^=]+="/)&&(a=!0)}return u},u.asn1.x509.AttributeTypeAndValue=function(e){u.asn1.x509.AttributeTypeAndValue.superclass.constructor.call(this),this.sRule="utf8",this.sType=null,this.sValue=null,this.dsType=null;var t=u,i=t.asn1,n=i.DERSequence,r=i.DERUTF8String,o=i.DERPrintableString,s=i.DERTeletexString,a=i.DERIA5String,c=i.DERVisibleString,l=i.DERBMPString,h=t.lang.String.isMail,d=t.lang.String.isPrintable;this.setByParam=function(e){if(void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.ds&&(this.dsType=e.ds),void 0===e.value&&void 0!==e.str){var t=e.str.match(/^([^=]+)=(.+)$/);if(!t)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.sType=t[1],this.sValue=t[2]}else this.sType=e.type,this.sValue=e.value},this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var i=e.match(/^([^=]+)=(.+)$/);if(!i)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.setByAttrTypeAndValueStr(i[1],i[2])},this._getDsType=function(){var e=this.sType,t=this.sValue,i=this.sRule;return"prn"===i?"CN"==e&&h(t)?"ia5":d(t)?"prn":"utf8":"utf8"===i?"CN"==e&&h(t)?"ia5":"C"==e?"prn":"utf8":"utf8"},this.setByAttrTypeAndValueStr=function(e,t,i){void 0!==i&&(this.sRule=i),this.sType=e,this.sValue=t},this.getValueObj=function(e,t){if("utf8"==e)return new r({str:t});if("prn"==e)return new o({str:t});if("tel"==e)return new s({str:t});if("ia5"==e)return new a({str:t});if("vis"==e)return new c({str:t});if("bmp"==e)return new l({str:t});throw new Error("unsupported directory string type: type="+e+" value="+t)},this.getEncodedHex=function(){null==this.dsType&&(this.dsType=this._getDsType());var e=u.asn1.x509.OID.atype2obj(this.sType),t=this.getValueObj(this.dsType,this.sValue),i=new n({array:[e,t]});return this.TLV=i.getEncodedHex(),this.TLV},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.AttributeTypeAndValue,u.asn1.ASN1Object),u.asn1.x509.SubjectPublicKeyInfo=function(e){u.asn1.x509.SubjectPublicKeyInfo.superclass.constructor.call(this);var t=u,i=t.asn1,n=i.DERInteger,r=i.DERBitString,o=i.DERObjectIdentifier,s=i.DERSequence,a=i.ASN1Util.newObject,c=i.x509.AlgorithmIdentifier,l=t.crypto;l.ECDSA,l.DSA,this.getASN1Object=function(){if(null==this.asn1AlgId||null==this.asn1SubjPKey)throw"algId and/or subjPubKey not set";return new s({array:[this.asn1AlgId,this.asn1SubjPKey]})},this.getEncodedHex=function(){var e=this.getASN1Object();return this.hTLV=e.getEncodedHex(),this.hTLV},this.setPubKey=function(e){try{if(e instanceof K){var t=a({seq:[{int:{bigint:e.n}},{int:{int:e.e}}]}).getEncodedHex();this.asn1AlgId=new c({name:"rsaEncryption"}),this.asn1SubjPKey=new r({hex:"00"+t})}}catch(e){}try{if(e instanceof u.crypto.ECDSA){var i=new o({name:e.curveName});this.asn1AlgId=new c({name:"ecPublicKey",asn1params:i}),this.asn1SubjPKey=new r({hex:"00"+e.pubKeyHex})}}catch(e){}try{if(e instanceof u.crypto.DSA){i=new a({seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]});this.asn1AlgId=new c({name:"dsa",asn1params:i});var s=new n({bigint:e.y});this.asn1SubjPKey=new r({hex:"00"+s.getEncodedHex()})}}catch(e){}},void 0!==e&&this.setPubKey(e)},Ae(u.asn1.x509.SubjectPublicKeyInfo,u.asn1.ASN1Object),u.asn1.x509.Time=function(e){u.asn1.x509.Time.superclass.constructor.call(this);var t=u.asn1,i=t.DERUTCTime,n=t.DERGeneralizedTime;this.setTimeParams=function(e){this.timeParams=e},this.getEncodedHex=function(){var e=null;return e=null!=this.timeParams?"utc"==this.type?new i(this.timeParams):new n(this.timeParams):"utc"==this.type?new i:new n,this.TLV=e.getEncodedHex(),this.TLV},this.type="utc",void 0!==e&&(void 0!==e.type?this.type=e.type:void 0!==e.str&&(e.str.match(/^[0-9]{12}Z$/)&&(this.type="utc"),e.str.match(/^[0-9]{14}Z$/)&&(this.type="gen")),this.timeParams=e)},Ae(u.asn1.x509.Time,u.asn1.ASN1Object),u.asn1.x509.AlgorithmIdentifier=function(e){u.asn1.x509.AlgorithmIdentifier.superclass.constructor.call(this),this.nameAlg=null,this.asn1Alg=null,this.asn1Params=null,this.paramEmpty=!1;var t=u.asn1,i=t.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;if(this.getEncodedHex=function(){if(null===this.nameAlg&&null===this.asn1Alg)throw new Error("algorithm not specified");if(null!==this.nameAlg){var e=null;for(var n in i)n===this.nameAlg&&(e=i[n]);if(null!==e)return this.hTLV=e,this.hTLV}null!==this.nameAlg&&null===this.asn1Alg&&(this.asn1Alg=t.x509.OID.name2obj(this.nameAlg));var r=[this.asn1Alg];null!==this.asn1Params&&r.push(this.asn1Params);var o=new t.DERSequence({array:r});return this.hTLV=o.getEncodedHex(),this.hTLV},void 0!==e&&(void 0!==e.name&&(this.nameAlg=e.name),void 0!==e.asn1params&&(this.asn1Params=e.asn1params),void 0!==e.paramempty&&(this.paramEmpty=e.paramempty)),null===this.asn1Params&&!1===this.paramEmpty&&null!==this.nameAlg){void 0!==this.nameAlg.name&&(this.nameAlg=this.nameAlg.name);var n=this.nameAlg.toLowerCase();"withdsa"!==n.substr(-7,7)&&"withecdsa"!==n.substr(-9,9)&&(this.asn1Params=new t.DERNull)}},Ae(u.asn1.x509.AlgorithmIdentifier,u.asn1.ASN1Object),u.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},u.asn1.x509.GeneralName=function(e){u.asn1.x509.GeneralName.superclass.constructor.call(this);var t={rfc822:"81",dns:"82",dn:"a4",uri:"86",ip:"87"},i=u.asn1;i.DERSequence;var n=i.DEROctetString,r=i.DERIA5String,o=i.DERTaggedObject,s=i.ASN1Object,a=i.x509.X500Name,c=ue;this.explicit=!1,this.setByParam=function(e){var i=null;if(void 0!==e){if(void 0!==e.rfc822&&(this.type="rfc822",i=new r({str:e[this.type]})),void 0!==e.dns&&(this.type="dns",i=new r({str:e[this.type]})),void 0!==e.uri&&(this.type="uri",i=new r({str:e[this.type]})),void 0!==e.dn&&(this.type="dn",this.explicit=!0,i="string"==typeof e.dn?new a({str:e.dn}):e.dn instanceof u.asn1.x509.X500Name?e.dn:new a(e.dn)),void 0!==e.ldapdn&&(this.type="dn",this.explicit=!0,i=new a({ldapstr:e.ldapdn})),void 0!==e.certissuer){this.type="dn",this.explicit=!0;var l=null;if((d=e.certissuer).match(/^[0-9A-Fa-f]+$/),-1!=d.indexOf("-----BEGIN ")&&(l=c(d)),null==l)throw"certissuer param not cert";(p=new ze).hex=l;var h=p.getIssuerHex();(i=new s).hTLV=h}if(void 0!==e.certsubj){this.type="dn",this.explicit=!0;var d,p;l=null;if((d=e.certsubj).match(/^[0-9A-Fa-f]+$/),-1!=d.indexOf("-----BEGIN ")&&(l=c(d)),null==l)throw"certsubj param not cert";(p=new ze).hex=l;h=p.getSubjectHex();(i=new s).hTLV=h}if(void 0!==e.ip){this.type="ip",this.explicit=!1;var A,f=e.ip,M="malformed IP address";if(f.match(/^[0-9.]+[.][0-9.]+$/)){if(8!==(A=function(e){e=(e=(e=e.replace(/^\s*\[\s*/,"")).replace(/\s*\]\s*$/,"")).replace(/\s*/g,"");try{return e.split(/,/).map((function(e,t,i){var n=parseInt(e);if(n<0||255<n)throw"integer not in range 0-255";return("00"+n.toString(16)).slice(-2)})).join("")}catch(e){throw"malformed integer array string: "+e}}("["+f.split(".").join(",")+"]")).length)throw M}else if(f.match(/^[0-9A-Fa-f:]+:[0-9A-Fa-f:]+$/))A=function(e){var t="malformed IPv6 address";if(!e.match(/^[0-9A-Fa-f:]+$/))throw t;var i=(e=e.toLowerCase()).split(":").length-1;if(i<2)throw t;var n=":".repeat(7-i+2),r=(e=e.replace("::",n)).split(":");if(8!=r.length)throw t;for(var o=0;o<8;o++)r[o]=("0000"+r[o]).slice(-4);return r.join("")}(f);else{if(!f.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw M;A=f}i=new n({hex:A})}if(null==this.type)throw"unsupported type in params="+e;this.asn1Obj=new o({explicit:this.explicit,tag:t[this.type],obj:i})}},this.getEncodedHex=function(){return this.asn1Obj.getEncodedHex()},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.GeneralName,u.asn1.ASN1Object),u.asn1.x509.GeneralNames=function(e){u.asn1.x509.GeneralNames.superclass.constructor.call(this);var t=u.asn1;this.setByParamArray=function(e){for(var i=0;i<e.length;i++){var n=new t.x509.GeneralName(e[i]);this.asn1Array.push(n)}},this.getEncodedHex=function(){return new t.DERSequence({array:this.asn1Array}).getEncodedHex()},this.asn1Array=new Array,void 0!==e&&this.setByParamArray(e)},Ae(u.asn1.x509.GeneralNames,u.asn1.ASN1Object),u.asn1.x509.OID=new function(e){this.atype2oidList={CN:"2.5.4.3",L:"2.5.4.7",ST:"2.5.4.8",O:"2.5.4.10",OU:"2.5.4.11",C:"2.5.4.6",STREET:"2.5.4.9",DC:"0.9.2342.19200300.100.1.25",UID:"0.9.2342.19200300.100.1.1",SN:"2.5.4.4",T:"2.5.4.12",DN:"2.5.4.49",E:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",serialNumber:"2.5.4.5",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3"},this.name2oidList={sha1:"1.3.14.3.2.26",sha256:"2.16.840.1.101.3.4.2.1",sha384:"2.16.840.1.101.3.4.2.2",sha512:"2.16.840.1.101.3.4.2.3",sha224:"2.16.840.1.101.3.4.2.4",md5:"1.2.840.113549.2.5",md2:"1.3.14.7.2.2.1",ripemd160:"1.3.36.3.2.1",MD2withRSA:"1.2.840.113549.1.1.2",MD4withRSA:"1.2.840.113549.1.1.3",MD5withRSA:"1.2.840.113549.1.1.4",SHA1withRSA:"1.2.840.113549.1.1.5","pkcs1-MGF":"1.2.840.113549.1.1.8",rsaPSS:"1.2.840.113549.1.1.10",SHA224withRSA:"1.2.840.113549.1.1.14",SHA256withRSA:"1.2.840.113549.1.1.11",SHA384withRSA:"1.2.840.113549.1.1.12",SHA512withRSA:"1.2.840.113549.1.1.13",SHA1withECDSA:"1.2.840.10045.4.1",SHA224withECDSA:"1.2.840.10045.4.3.1",SHA256withECDSA:"1.2.840.10045.4.3.2",SHA384withECDSA:"1.2.840.10045.4.3.3",SHA512withECDSA:"1.2.840.10045.4.3.4",dsa:"1.2.840.10040.4.1",SHA1withDSA:"1.2.840.10040.4.3",SHA224withDSA:"2.16.840.1.101.3.4.3.1",SHA256withDSA:"2.16.840.1.101.3.4.3.2",rsaEncryption:"1.2.840.113549.1.1.1",commonName:"2.5.4.3",countryName:"2.5.4.6",localityName:"2.5.4.7",stateOrProvinceName:"2.5.4.8",streetAddress:"2.5.4.9",organizationName:"2.5.4.10",organizationalUnitName:"2.5.4.11",domainComponent:"0.9.2342.19200300.100.1.25",userId:"0.9.2342.19200300.100.1.1",surname:"2.5.4.4",givenName:"2.5.4.42",title:"2.5.4.12",distinguishedName:"2.5.4.49",emailAddress:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3",subjectDirectoryAttributes:"2.5.29.9",subjectKeyIdentifier:"2.5.29.14",keyUsage:"2.5.29.15",subjectAltName:"2.5.29.17",issuerAltName:"2.5.29.18",basicConstraints:"2.5.29.19",cRLNumber:"2.5.29.20",cRLReason:"2.5.29.21",nameConstraints:"2.5.29.30",cRLDistributionPoints:"2.5.29.31",certificatePolicies:"2.5.29.32",anyPolicy:"2.5.29.32.0",authorityKeyIdentifier:"2.5.29.35",policyConstraints:"2.5.29.36",extKeyUsage:"2.5.29.37",authorityInfoAccess:"1.3.6.1.5.5.7.1.1",ocsp:"1.3.6.1.5.5.7.48.1",ocspBasic:"1.3.6.1.5.5.7.48.1.1",ocspNonce:"1.3.6.1.5.5.7.48.1.2",ocspNoCheck:"1.3.6.1.5.5.7.48.1.5",caIssuers:"1.3.6.1.5.5.7.48.2",anyExtendedKeyUsage:"2.5.29.37.0",serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",emailProtection:"1.3.6.1.5.5.7.3.4",timeStamping:"1.3.6.1.5.5.7.3.8",ocspSigning:"1.3.6.1.5.5.7.3.9",dateOfBirth:"1.3.6.1.5.5.7.9.1",placeOfBirth:"1.3.6.1.5.5.7.9.2",gender:"1.3.6.1.5.5.7.9.3",countryOfCitizenship:"1.3.6.1.5.5.7.9.4",countryOfResidence:"1.3.6.1.5.5.7.9.5",ecPublicKey:"1.2.840.10045.2.1","P-256":"1.2.840.10045.3.1.7",secp256r1:"1.2.840.10045.3.1.7",secp256k1:"1.3.132.0.10",secp384r1:"1.3.132.0.34",pkcs5PBES2:"1.2.840.113549.1.5.13",pkcs5PBKDF2:"1.2.840.113549.1.5.12","des-EDE3-CBC":"1.2.840.113549.3.7",data:"1.2.840.113549.1.7.1","signed-data":"1.2.840.113549.1.7.2","enveloped-data":"1.2.840.113549.1.7.3","digested-data":"1.2.840.113549.1.7.5","encrypted-data":"1.2.840.113549.1.7.6","authenticated-data":"1.2.840.113549.1.9.16.1.2",tstinfo:"1.2.840.113549.1.9.16.1.4",signingCertificate:"1.2.840.113549.1.9.16.2.12",timeStampToken:"1.2.840.113549.1.9.16.2.14",signaturePolicyIdentifier:"1.2.840.113549.1.9.16.2.15",etsArchiveTimeStamp:"1.2.840.113549.1.9.16.2.27",signingCertificateV2:"1.2.840.113549.1.9.16.2.47",etsArchiveTimeStampV2:"1.2.840.113549.1.9.16.2.48",extensionRequest:"1.2.840.113549.1.9.14",contentType:"1.2.840.113549.1.9.3",messageDigest:"1.2.840.113549.1.9.4",signingTime:"1.2.840.113549.1.9.5",counterSignature:"1.2.840.113549.1.9.6",archiveTimeStampV3:"0.4.0.1733.2.4",pdfRevocationInfoArchival:"1.2.840.113583.1.1.8",adobeTimeStamp:"1.2.840.113583.1.1.9.1"},this.objCache={},this.name2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];if(void 0===this.name2oidList[e])throw"Name of ObjectIdentifier not defined: "+e;var t=this.name2oidList[e],i=new u.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=i,i},this.atype2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];var t;if(e.match(/^\d+\.\d+\.[0-9.]+$/))t=e;else if(void 0!==this.atype2oidList[e])t=this.atype2oidList[e];else{if(void 0===this.name2oidList[e])throw"AttributeType name undefined: "+e;t=this.name2oidList[e]}var i=new u.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=i,i}},u.asn1.x509.OID.oid2name=function(e){var t=u.asn1.x509.OID.name2oidList;for(var i in t)if(t[i]==e)return i;return""},u.asn1.x509.OID.oid2atype=function(e){var t=u.asn1.x509.OID.atype2oidList;for(var i in t)if(t[i]==e)return i;return e},u.asn1.x509.OID.name2oid=function(e){if(e.match(/^[0-9.]+$/))return e;var t=u.asn1.x509.OID.name2oidList;return void 0===t[e]?"":t[e]},u.asn1.x509.X509Util={},u.asn1.x509.X509Util.newCertPEM=function(e){var t=u.asn1.x509;return t.TBSCertificate,new(0,t.Certificate)(e).getPEM()},K.getPosArrayOfChildrenFromHex=function(e){return Te.getChildIdx(e,0)},K.getHexValueArrayOfChildrenFromHex=function(e){var t,i=Te.getV,n=i(e,(t=K.getPosArrayOfChildrenFromHex(e))[0]),r=i(e,t[1]),o=i(e,t[2]),s=i(e,t[3]),a=i(e,t[4]),u=i(e,t[5]),c=i(e,t[6]),l=i(e,t[7]),h=i(e,t[8]);return(t=new Array).push(n,r,o,s,a,u,c,l,h),t},K.prototype.readPrivateKeyFromPEMString=function(e){var t=ue(e),i=K.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8])},K.prototype.readPKCS5PrvKeyHex=function(e){var t=K.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},K.prototype.readPKCS8PrvKeyHex=function(e){var t,i,n,r,o,s,a,u,c=Te,l=c.getVbyListEx;if(!1===c.isASN1HEX(e))throw new Error("not ASN.1 hex string");try{t=l(e,0,[2,0,1],"02"),i=l(e,0,[2,0,2],"02"),n=l(e,0,[2,0,3],"02"),r=l(e,0,[2,0,4],"02"),o=l(e,0,[2,0,5],"02"),s=l(e,0,[2,0,6],"02"),a=l(e,0,[2,0,7],"02"),u=l(e,0,[2,0,8],"02")}catch(e){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(t,i,n,r,o,s,a,u)},K.prototype.readPKCS5PubKeyHex=function(e){var t=Te,i=t.getV;if(!1===t.isASN1HEX(e))throw new Error("keyHex is not ASN.1 hex string");var n=t.getChildIdx(e,0);if(2!==n.length||"02"!==e.substr(n[0],2)||"02"!==e.substr(n[1],2))throw new Error("wrong hex for PKCS#5 public key");var r=i(e,n[0]),o=i(e,n[1]);this.setPublic(r,o)},K.prototype.readPKCS8PubKeyHex=function(e){var t=Te;if(!1===t.isASN1HEX(e))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==t.getTLVbyListEx(e,0,[0,0]))throw new Error("not PKCS8 RSA public key");var i=t.getTLVbyListEx(e,0,[1,0]);this.readPKCS5PubKeyHex(i)},K.prototype.readCertPubKeyHex=function(e,t){var i,n;(i=new ze).readCertHex(e),n=i.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)},K.prototype.sign=function(e,t){var i,n=(i=e,u.crypto.Util.hashString(i,t));return this.signWithMessageHash(n,t)},K.prototype.signWithMessageHash=function(e,t){var i=W(u.crypto.Util.getPaddedDigestInfoHex(e,t,this.n.bitLength()),16);return xe(this.doPrivate(i).toString(16),this.n.bitLength())},K.prototype.signPSS=function(e,t,i){var n,r=(n=oe(e),u.crypto.Util.hashHex(n,t));return void 0===i&&(i=-1),this.signWithMessageHashPSS(r,t,i)},K.prototype.signWithMessageHashPSS=function(e,t,i){var n,r=re(e),o=r.length,s=this.n.bitLength()-1,a=Math.ceil(s/8),c=function(e){return u.crypto.Util.hashHex(e,t)};if(-1===i||void 0===i)i=o;else if(-2===i)i=a-o-2;else if(i<-2)throw new Error("invalid salt length");if(a<o+i+2)throw new Error("data too long");var l="";i>0&&(l=new Array(i),(new G).nextBytes(l),l=String.fromCharCode.apply(String,l));var d=re(c(oe("\0\0\0\0\0\0\0\0"+r+l))),p=[];for(n=0;n<a-i-o-2;n+=1)p[n]=0;var A=String.fromCharCode.apply(String,p)+""+l,f=Ee(d,A.length,c),M=[];for(n=0;n<A.length;n+=1)M[n]=A.charCodeAt(n)^f.charCodeAt(n);var g=65280>>8*a-s&255;for(M[0]&=~g,n=0;n<o;n++)M.push(d.charCodeAt(n));return M.push(188),xe(this.doPrivate(new h(M)).toString(16),this.n.bitLength())},K.prototype.verify=function(e,t){if(null==(t=t.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var i=W(t,16),n=this.n.bitLength();if(i.bitLength()>n)return!1;var r=this.doPublic(i).toString(16);if(r.length+3!=n/4)return!1;var o=je(r.replace(/^1f+00/,""));if(0==o.length)return!1;var s,a=o[0];return o[1]==(s=e,u.crypto.Util.hashString(s,a))},K.prototype.verifyWithMessageHash=function(e,t){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var i=W(t,16);if(i.bitLength()>this.n.bitLength())return 0;var n=je(this.doPublic(i).toString(16).replace(/^1f+00/,""));return 0!=n.length&&(n[0],n[1]==e)},K.prototype.verifyPSS=function(e,t,i,n){var r=function(e){return u.crypto.Util.hashHex(e,i)}(oe(e));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(r,t,i,n)},K.prototype.verifyWithMessageHashPSS=function(e,t,i,n){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var r,o=new h(t,16),s=function(e){return u.crypto.Util.hashHex(e,i)},a=re(e),c=a.length,l=this.n.bitLength()-1,d=Math.ceil(l/8);if(-1===n||void 0===n)n=c;else if(-2===n)n=d-c-2;else if(n<-2)throw new Error("invalid salt length");if(d<c+n+2)throw new Error("data too long");var p=this.doPublic(o).toByteArray();for(r=0;r<p.length;r+=1)p[r]&=255;for(;p.length<d;)p.unshift(0);if(188!==p[d-1])throw new Error("encoded message does not end in 0xbc");var A=(p=String.fromCharCode.apply(String,p)).substr(0,d-c-1),f=p.substr(A.length,c),M=65280>>8*d-l&255;if(0!=(A.charCodeAt(0)&M))throw new Error("bits beyond keysize not zero");var g=Ee(f,A.length,s),y=[];for(r=0;r<A.length;r+=1)y[r]=A.charCodeAt(r)^g.charCodeAt(r);y[0]&=~M;var m=d-c-n-2;for(r=0;r<m;r+=1)if(0!==y[r])throw new Error("leftmost octets not zero");if(1!==y[m])throw new Error("0x01 marker not found");return f===re(s(oe("\0\0\0\0\0\0\0\0"+a+String.fromCharCode.apply(String,y.slice(-n)))))},K.SALT_LEN_HLEN=-1,K.SALT_LEN_MAX=-2,K.SALT_LEN_RECOVER=-2,ze.hex2dn=function(e,t){void 0===t&&(t=0);var i=new ze;return Te.getTLV(e,t),i.getX500Name(e).str},ze.hex2rdn=function(e,t){if(void 0===t&&(t=0),"31"!==e.substr(t,2))throw new Error("malformed RDN");for(var i=new Array,n=Te.getChildIdx(e,t),r=0;r<n.length;r++)i.push(ze.hex2attrTypeValue(e,n[r]));return(i=i.map((function(e){return e.replace("+","\\+")}))).join("+")},ze.hex2attrTypeValue=function(e,t){var i=Te,n=i.getV;if(void 0===t&&(t=0),"30"!==e.substr(t,2))throw new Error("malformed attribute type and value");var r=i.getChildIdx(e,t);2!==r.length||e.substr(r[0],2);var o=n(e,r[0]),s=u.asn1.ASN1Util.oidHexToInt(o);return u.asn1.x509.OID.oid2atype(s)+"="+re(n(e,r[1]))},ze.getPublicKeyFromCertHex=function(e){var t=new ze;return t.readCertHex(e),t.getPublicKey()},ze.getPublicKeyFromCertPEM=function(e){var t=new ze;return t.readCertPEM(e),t.getPublicKey()},ze.getPublicKeyInfoPropOfCertPEM=function(e){var t,i,n=Te.getVbyList,r={};return r.algparam=null,(t=new ze).readCertPEM(e),i=t.getPublicKeyHex(),r.keyhex=n(i,0,[1],"03").substr(2),r.algoid=n(i,0,[0,0],"06"),"2a8648ce3d0201"===r.algoid&&(r.algparam=n(i,0,[0,1],"06")),r},ze.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var be,Oe=[(be=new ze,be.readCertPEM(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVS@\tPPNErtNVONtVWNZR}@]nU\0ZaZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\\QN>Z\tN\\Q^B[QqnS=\b\\QN>Zwp\\Q^B[QqnZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaPPNvVQ^fWX|gVup[N^ROO^NQttV]NQPPNt|PttVONZU|C\b\\@@e^Xv{[vTtd8`nyO@ebN[bqx=ng?\tS^w@|XAz|qUTwfzn]Bu<qs_ae\\y<}u`eRAoE`_\\s\0r|b{rp_o<oC@o=x\bw_cUUZPApQevD\\FxFoFgE=<sq[p<coqyn>TEpP@aSC_YDU8\0|8TB?c>r\\=rp`pcwP}c\0PP_\\RS\\EPVSy8x`\0?R|NP\tP>}A^VP}Ex\bUZa=syDw}>Ya8wPp[pRnn\brU^dE8U?a\bcW|<FEbbupn^`ZNr\tsof[wA}e{\\z}w[YDQ|dt=wC\tNvbRZ@@U|ZAYpFsabCBB\\`wrqxsYW8uFyWdaWezeUeA_8VoVupvY[TD[OYdpO\bC[wX\\O]=[QRpV\0d`N\0RXt^Z}vEpdC=\bY?=V}?^W\bad|qN@Ww>@PycaqANE]asPcE^OB_VA?>wzeftac\tZ\tguf\bF]DCP?znNYf\tuaYu[`=b|v]Bp=RAS``\\PRDW]_`UXdUg=SuqwVFDeB\tD8{B>\\sPYbEU\tFQXz\0@`zsqgfD\0[WY\bPeZc}\t\0bx?Rfed}BUe|Uo\0y?\bsSXZOSBCgbFqf\0Bs?b?d<VE\\Zzns\\d@?dPvf\\{}_\0Sd[<q_YBY`Ffg=sY>{t<fu]xrFNtZONNTwbQO\\ZO=TN>bqQt^dOOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNZOt[cU_ZROaNQN^U<ZN=TP`\0T`Vo@Q^ROPbNNAVPN^P\0{y\0Bs\\8\0R[z]w??qZP?NpgdenSuvv?>|f_?UpYPcQ\\gCb8zxtSvsOQNg>[\\\0\bx\b_o@8\0g`Z<PyUE`8yu}\\g{@`s`zUgErRtve{YdCvoO@>WFDtABNp\0feUWszpQaEYNAc]^xB[@]BDAN8\b}XA=EnO}Pud8TA\t?yPrVv{\\>E]o`BO^RE^X[W[rEU?x\bf>V\tOUwY=>X[\\E`tW[8}VwpFBQcnrPF}yUtd8<Doe_\b[oOVUep@pYY\0cegY{r\t?\bAbq?ff8}UaXoN_D]_X_8yozYFT`N{`\\{zvu?\bDWT}=_<StX\tNx\0\b\t\0aT=c@ucnWfR[vf>RFxAFV}{N`dN^\\<eawBPxx}quT=|{T_R@Fp^Y<ZevRsWaZ]V\tCVrRVtAAc[\tQp|d|tqoQ=T|XX\t=u\\N8XNCx\\aU>wz\tX<e@Vc?dy\\|^FEq|=p`pBdF@bs^d<]vp\\^TZ\tP\bZ\b\\YNNSZ_\\w^|TsD8db\t_\tY\\o^Cw>Z\0x\\^aN]wWf\bA}\tC^d_{ZC@\by]gY@E\tBFY?OsaqbDcVgQbZeFc\tovtucxnq|<TnuyXRveYFOegCpAs{YTe|>bE<OXsSqCBWD_SVepfvCCUg]z\tZvQ[\0s|U>pFz\b=OwT``fNJJ:::::R[Q-PR_aVSVPNaR:::::")),be)];function Se(e,t){var i=e.getIssuerHex();if(i===e.getSubjectHex())return e.verifySignature(e.getPublicKey());var n=function(e,t){for(var i=0,n=t;i<n.length;i++){var r=n[i];if(r.getSubjectHex()===e)return r}}(i,t);return!!n&&(!1!==e.verifySignature(n.getPublicKey())&&Se(n,t))}function Le(e){return e.getIssuerHex()!==e.getSubjectHex()&&Se(e,Oe)}!function(e){var t=new ze;"string"==typeof e?t.readCertPEM(e):t.readCertHex(e.hex);var i=Le(t);Oe.push(t)}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVTU\tPPONrtNVONtVWNW=_SVw\tVE=ZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\bZQNAZaN\\aZ\t[QSnS=\b[aNBZQZ\\aZ\t[QSnZVTaZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tRbZOVTN>bRPtYoTyuoz}}f`Bwo?=RQN\\Ot[cONZO>Wyfd\tgdbRaN]Ot[cONZZPRuupz_@feWyZ`bVfWX|gVup[N^xOSugnec|fdyndB{^T}fdB\0ndRf?FZVVPVwN[Otx\0uxvTF=ON^RSNN\\PNtENZVVPPtXPNtRN?=?]q[VD|{\\oyo`oOu}F\tSAe`tn[t\tu\b8^a]qx\bE_^ZN?[QC\0yuOpybY8r\\RPAS=8rUq\0E8>xean^e\bf]Y`XO}{C[Ur^?\0x[SRXvVQ\\CFr}QnAPRQFO=Yw\0_TePCOFV@|N>ROXcDrT<>bW<ssO?NOT{^s]uU\0gS\bBffsfE\0AfDyQEZR`]XBo|Qw}yYdwwTvOFcBndUz^\\{]\tb=^yQYSTQ`]\0?tR{WRUun\\\0bVe_E|VWWV|r\tAo\0\tF`fdzCnRtq\br\t\b8eBp=Z\\TRaadc}@Eub`quuNqAdF\0aUay{}x>tgVz`\t_YBFwu_q?egt8v[o\x008\twTQcrA\t<z{DZoEE^rZTrpaZQzqpBY]^zt8[bQv}yEWw\tXDYQB\0QB\bx_^X]|uEDtPf[n[r_bpB[bE}?ung|bnU|NYOoedY_tvXySZfYPdWV]OE^\bOFwA}<uXoO}_NDz8aonzWOfcv@?>snfqu@FeEx^\\\bVfuO`\\\0tSg]zDU}QrAT|\tOZV|OvpVD<sN@z`<_cSrNCW>?=Au?g_8v{|}}WF>Sr>QBxO\td_D}eBb?Uq^b\t[y}x]}{?P|BQtecTB[pQBW>|p|nfv\0zUxOO}WqwE=<PURZy@X8r\\]u=<pPNRNNn\\OtaO<ZOETPdPT`NTT8RVOQ^^`SuO`gdSp?cyVRg\bo?B=VR[OZO=TN>bqQt^dOO`FyWadZcAD\tpeXybcW@}Qf\\QNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aN]Ot[cU_ZONsEROaNQN^U<ZNTN>bqQ^RNVOOwN[Otx\0uxvTF=ON^SNN\\PNtRNrx\ta[}tP_g8FbD\0^\0qt<f88ufuN]^}]gp\bqYudF88Fas_Ef`\t?^x>X}esa{>\\r?eE]CC_cZ[vQs\t\t>gX[szONg=^pn=<e]nbSz\bZvac\b[w^nA_`vP|@8w[}nQobe=??oRYf{vpRxcC}yCd>8[NDx{Ne\\t8oou=guC>>gvb}ACd\t``Ntq\0yC[Q{|ynpNQqSqzxF<_PFDw<]Bnnu>F<XgU_Zf\\\\A=gu\\codOwQ]oQ<f>gv_pwozwC}xX>C`c]suEdfW?cbeo\b`BbyR@eFTUwSud=t]sS\\onc\tXSq\t{\0DvAVBbnTqEE[QzDyqF`bF}R=Q?VeDo<Vzb\0w}D}NZ\0t}^?OyFP\bVaVNrTNYqe?[NRYTSQby@yzWvT`wQo}y]c_WgxBYCy\tRNRg@NZCaaq8?`\t^`?ryD\t=obzw?E]Ou]n@>bVzqAQT?@_zo@}CxWVTUsAYdNd?{APQr8{P]]AZ>aR\0[D<z?Tr@`u@X|YDwd_<p<>zWE>]\0=X`\b@uucp|^_Qb@uZouTX^o\0\\{PCq{ug8^f[YQAWad8FNqxFQE?ZOo\t}RnO\bsQc\txyccn=nxvs>bDBf\b\bW\\TuTnvAO^U\0QXC>xx8FxRFf<tJ:::::R[Q-PR_aVSVPNaR:::::"));var ke=2*Math.PI,Ce=Math.PI/2;function Pe(e){return e>0&&e<=ke?e:(e%ke+ke)%ke}var Be=function(e){function i(t){var i=e.call(this,t,1,.1,1e3)||this;return i.pose={longitude:0,latitude:0,fov:t,distance:0,offset:new r.Vector3},i.computePose(),i}return t.__extends(i,e),i.prototype.computePose=function(){var e=this.getWorldDirection(new r.Vector3);return this.pose.longitude=Pe(-Math.atan2(e.x,-e.z)),this.pose.latitude=-Math.asin(e.y/1),this.pose.fov=this.fov,this.pose.distance=0,this.pose.offset.copy(this.position),this},i.prototype.setFromPose=function(e){var t,i,n,o,s,a=Pe(null!==(t=e.longitude)&&void 0!==t?t:this.pose.longitude),u=Math.max(1e-4-Ce,Math.min(Ce-1e-4,null!==(i=e.latitude)&&void 0!==i?i:this.pose.latitude)),c=null!==(n=e.fov)&&void 0!==n?n:this.pose.fov,l=null!==(o=e.distance)&&void 0!==o?o:this.pose.distance,h=null!==(s=e.offset)&&void 0!==s?s:this.pose.offset,d=function(e){var t=Math.abs(Math.cos(e.latitude));return new r.Vector3(-Math.sin(e.longitude)*t,-Math.sin(e.latitude),-Math.cos(e.longitude)*t)}({longitude:a,latitude:u}).normalize();return this.position.set(0,0,0),this.lookAt(d),this.position.add(h).sub(d.clone().setLength(l)),this.fov!==c&&(this.fov=c,this.updateProjectionMatrix()),this.updateMatrixWorld(),this.pose.longitude=a,this.pose.latitude=u,this.pose.fov=c,this.pose.distance=l,this.pose.offset.copy(h),this},i.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,distance:this.pose.distance,offset:this.pose.offset.clone()}},i}(r.PerspectiveCamera),_e=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return t.__extends(i,e),i.prototype.add=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return e.prototype.add.apply(this,t)},i.prototype.remove=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return e.prototype.remove.apply(this,t)},i}(r.Scene),Ue=function(e){function i(t){var i=t.preserveDrawingBuffer,n=void 0===i||i,o=t.backgroundColor,s=void 0===o?1579548:o,a=t.backgroundAlpha,u=void 0===a?1:a,c=t.pixelRatio,l=void 0===c?1:c,h=t.antialias,d=void 0!==h&&h,p=e.call(this,{antialias:d,preserveDrawingBuffer:n,alpha:u<1})||this;return p.setPixelRatio(l),p.setClearColor(s,u),p.outputEncoding=r.sRGBEncoding,p.autoClear=!0,p}return t.__extends(i,e),i}(r.WebGLRenderer);function Re(e){return null==e}function Qe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}function Ye(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function Fe(){return(Ye()+Ye()+"-"+Ye()+"-4"+Ye().substr(0,3)+"-"+Ye()+"-"+Ye()+Ye()+Ye()).toLowerCase()}var Ve="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),He="undefined"!=typeof performance?function(){return Ve+performance.now()}:function(){return Date.now()},Ge=function(){if("undefined"!=typeof window){var e=window;return e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||e.msRequestAnimationFrame||function(e){return setTimeout(e,16)}}return function(e){return setTimeout(e,16)}}(),We=function(){function e(){this.frames=[],this.stoped=!1,this.time=He(),this.loop=this.loop.bind(this),this.loop()}return Object.defineProperty(e,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new e),this.sharedInstance},enumerable:!1,configurable:!0}),e.prototype.loop=function(){if(!this.stoped){var e=He(),t=e-this.time;this.time=e;for(var i=[],n=0,r=this.frames;n<r.length;n++){var o=r[n];if(o.delay>0)o.delay=o.delay-1;else{try{o.callback(e,t)}catch(e){console.error(e)}o.once&&i.push(o)}}i.length>0&&(this.frames=this.frames.filter((function(e){return-1===i.indexOf(e)}))),Ge(this.loop)}},e.prototype.remove=function(e){var t=this.frames.indexOf(e);t>=0&&this.frames.splice(t,1)},e.prototype.add=function(e,t,i,n){var r=this;void 0===t&&(t=!1),void 0===i&&(i=0),void 0===n&&(n=5);var o={callback:e,once:t,delay:i,order:n};return this.frames.push(o),this.frames.sort((function(e,t){return e.order-t.order})),function(){return r.remove(o)}},e.prototype.disponse=function(){this.stoped=!0,this.frames.length=0},e.prototype.getFrameTime=function(e){return this.add((function(t,i){return e(i)}),!0,0,0)},e}(),qe=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return t.__extends(i,e),i}(r.Mesh),Ke=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.needsRender=!0,t.enableTransparent=!0,t}return t.__extends(i,e),i.prototype.getTransparent=function(){return this.enableTransparent},i.prototype.setTransparent=function(e){this.enableTransparent=e,this.traverse((function(t){t instanceof qe&&t.material.forEach((function(t){t.transparent=e}))}))},i.prototype.getMaterial=function(){var e=null;return this.traverse((function(t){if(null===e&&t instanceof qe){var i=t.material[0];e={pano0:i.pano0,pano1:i.pano1,modelAlpha:i.modelAlpha,progress:i.progress,useBlackTransition:i.useBlackTransition,perspToOrtho:i.perspToOrtho,opacity:i.opacity,panoVideo:i.panoVideo}}})),e},i.prototype.setMaterial=function(e){this.traverse((function(t){t instanceof qe&&t.material.forEach((function(t){void 0!==e.pano0&&(t.pano0=e.pano0),void 0!==e.pano1&&(t.pano1=e.pano1),void 0!==e.modelAlpha&&(t.modelAlpha=e.modelAlpha),void 0!==e.progress&&(t.progress=e.progress),void 0!==e.useBlackTransition&&(t.useBlackTransition=e.useBlackTransition),void 0!==e.perspToOrtho&&(t.perspToOrtho=e.perspToOrtho),void 0!==e.opacity&&(t.opacity=e.opacity),void 0!==e.panoVideo&&(t.panoVideo=e.panoVideo)}))}))},i.prototype.disposeMaterial=function(){this.traverse((function(e){if(e instanceof qe){var t=[];e.material.forEach((function(e){var i=e.uniforms;Object.keys(i).map((function(e){if(["pano0DepthMap"].indexOf(e)>=0)i[e].value=null;else{var n=i[e].value;n&&"function"==typeof n.dispose&&-1===t.indexOf(n)&&(i[e].value=null,t.push(n))}})),e.dispose()})),t.forEach((function(e){return e.dispose()}))}}))},i.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof qe&&e.geometry.dispose()}))},i}(r.Group),Ze=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t}return t.__extends(i,e),i}(Ke),Xe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("{vs|z-rp@-z|qryPr{rH{vs|z-sy|n-}r}a|\\u|Hn\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{Hn\bv{t-rp@-|yq]|vv|{H0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:z]|vv|{;\b\tH--|yq]|vv|{-J-5z|qryZnv-7-n{s|zrq6;\b\tH--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--<<-修正正交相机模拟--rp@-pnzrn[|zny-J-5z|qrycvrZnv-7-rpA5=;=9-=;=9->;=9-=;=66;\b\tH--sy|n-|u|Qvn{pr-J-zn5=;=>9-q|5pnzrn[|zny9-z|qryPr{r-:-pnzrn]|vv|{66H--tyl]|vv|{;-J-zv5-tyl]|vv|{;9-tyl]|vv|{;-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H--tyl]|vv|{;\b-J-zv5-tyl]|vv|{;\b9-tyl]|vv|{;\b-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H\f"),Je=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=60qrsv{r-aNb-C;?E@>EB?0vs-qrsv{rq5b`RlYbZV[N[PR6p-]n{|]vpr-\n--nz}yrPor-zn}H--nz}yrPor-yzv{n{prZn}H--znA-znvH\fH0ryrp-]n{|]vpr-\n--nz}yrPor-zn}H--znA-znvH\fH0r{qvsp-]n{|cvqr|-\n--rp?-v\trH--znA-znvH--sy|n-ny}unH--nz}yr?Q-zn}H\fH{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH{vs|z-]n{|]vpr-}n{|=H{vs|z-]n{|]vpr-}n{|>H0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6--{vs|z-]n{|cvqr|-}n{|cvqr|H0r{qvsn\bv{t-rp@-|yq]|vv|{H0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{Krp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-qvssrP|y|-J-rpA5qvssr;to9-|}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rp@-}n{|=a|crr-J-5|yq]|vv|{-:-}n{|=;znvh@j;\b\t6-7-zn@5}n{|=;znv6H--rp@-}n{|>a|crr-J-5|yq]|vv|{-:-}n{|>;znvh@j;\b\t6-7-zn@5}n{|>;znv6H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=;zn}9-}n{|=a|crr6H--rpA-}n{|>P|y|-J-rrPor5}n{|>;zn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-rrPor5}n{|=;yzv{n{prZn}9-}n{|=a|crr6;H----}n{|>P|y|;n-J->;=-:-rrPor5}n{|>;yzv{n{prZn}9-}n{|>a|crr6;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6----rp@-pnzrna|crr-J-|yq]|vv|{-:-pnzrn]|vv|{H----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|;znvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|;v\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|;v\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|;zn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|;ny}un6H--0r{qvs--tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H--tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H\f");function $e(){return"undefined"==typeof document?{}:document.createElementNS("http://www.w3.org/1999/xhtml","img")}var et=$e();et.width=et.height=8;var tt=new r.Texture(et);tt.name="EMPTY_TEXTURE";var it=new r.CubeTexture([et,et,et,et,et,et]);it.name="EMPTY_CUBE_TEXTURE",tt.dispose=it.dispose=function(){};var nt=Object.assign({modelAlpha:new r.Uniform(0),progress:new r.Uniform(0),pano0:new r.Uniform({map:it,luminanceMap:null,matrix:new r.Matrix4}),pano1:new r.Uniform({map:it,luminanceMap:null,matrix:new r.Matrix4}),pano0DepthMap:new r.Uniform(null),panoVideo:new r.Uniform(null),modelCenter:new r.Uniform(new r.Vector3),perspToOrtho:new r.Uniform(0)},{exposure:new r.Uniform(1),emissive:new r.Uniform(new r.Color(0)),emissiveMap:new r.Uniform(null),specular:new r.Uniform(new r.Color(1118481)),specularMap:new r.Uniform(null),normalMap:new r.Uniform(null),bumpMap:new r.Uniform(null),shininess:new r.Uniform(30)},r.UniformsLib.common,r.UniformsLib.lights),rt=function(e){function i(t){var i,n,o,s,a,u,c,l;void 0===t&&(t={});var h=e.call(this,{vertexShader:Xe,fragmentShader:Je,uniforms:r.UniformsUtils.clone(nt),defines:{USE_MAP:!0,USE_UV:!0,USE_LUMINANCE:!1,USE_BLACK_TRANSITION:!1,USE_PANO_VIDEO:!1},blending:r.NoBlending,lights:!0})||this;return Object.defineProperties(h,{pano0:{get:function(){var e=this.uniforms.pano0.value;return e.map===it?null:{map:e.map,luminanceMap:e.luminanceMap,matrix:e.matrix.clone()}},set:function(e){this.uniforms.pano0.value=null===e?{map:it,luminanceMap:null,matrix:new r.Matrix4}:{map:e.map,luminanceMap:e.luminanceMap,matrix:e.matrix.clone()};var t=null!==this.uniforms.pano0.value.luminanceMap&&null!==this.uniforms.pano1.value.luminanceMap;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},pano1:{get:function(){var e=this.uniforms.pano1.value;return e.map===it?null:{map:e.map,luminanceMap:e.luminanceMap,matrix:e.matrix.clone()}},set:function(e){this.uniforms.pano1.value=null===e?{map:it,luminanceMap:null,matrix:new r.Matrix4}:{map:e.map,luminanceMap:e.luminanceMap,matrix:e.matrix.clone()};var t=null!==this.uniforms.pano0.value.luminanceMap&&null!==this.uniforms.pano1.value.luminanceMap;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(e){this.uniforms.modelAlpha.value=e}},progress:{get:function(){return this.uniforms.progress.value},set:function(e){this.uniforms.progress.value=e}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(e){this.defines.USE_BLACK_TRANSITION!==e&&(this.defines.USE_BLACK_TRANSITION=e,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e,this.blending=e<1?r.NormalBlending:r.NoBlending}},perspToOrtho:{get:function(){return this.uniforms.perspToOrtho.value},set:function(e){this.uniforms.perspToOrtho.value=e}},panoVideo:{get:function(){return this.uniforms.panoVideo.value},set:function(e){this.uniforms.panoVideo.value=e;var t=null!==e;t!==this.defines.USE_PANO_VIDEO&&(this.defines.USE_PANO_VIDEO=t,this.needsUpdate=!0)}}}),h.pano0=null!==(i=t.pano0)&&void 0!==i?i:null,h.pano1=null!==(n=t.pano1)&&void 0!==n?n:null,h.modelAlpha=null!==(o=t.modelAlpha)&&void 0!==o?o:1,h.progress=null!==(s=t.progress)&&void 0!==s?s:0,h.useBlackTransition=null!==(a=t.useBlackTransition)&&void 0!==a&&a,h.perspToOrtho=null!==(u=t.perspToOrtho)&&void 0!==u?u:0,h.opacity=null!==(c=t.opacity)&&void 0!==c?c:1,h.panoVideo=null!==(l=t.panoVideo)&&void 0!==l?l:null,h.originOpacity=1,h}return t.__extends(i,e),i}(r.ShaderMaterial),ot=new r.Vector3(0,0,0),st=function(e){function i(t,i){void 0===i&&(i=ot);var n=e.call(this)||this,o=new r.BoxBufferGeometry(t.max.x-t.min.x+2*i.x,t.max.y-t.min.y+2*i.y,t.max.z-t.min.z+2*i.z,1,1);o.groups.length=0,o.groups.push({start:0,count:36,materialIndex:0}),o.applyMatrix4((new r.Matrix4).makeScale(-1,1,1));var s=new rt;s.defines.USE_MAP=!1,s.defines.USE_UV=!1,s.uniforms.diffuse.value=new r.Color(16777215);var a=new qe(o,[s]);return a.floorIndex=-1,a.position.copy(t.getCenter(new r.Vector3)),a.frustumCulled=!1,n.renderOrder=-1,n.add(a),n.boundingBox=new r.Box3,n.computeBoundingBox(),n}return t.__extends(i,e),i.prototype.computeBoundingBox=function(){this.boundingBox.setFromObject(this)},i.prototype.dispose=function(){this.disposeMaterial(),this.disposeGeometry()},i}(Ze);function at(e,t){return void 0===t&&(t=ot),new st(e,t)}var ut,ct,lt,ht,dt=function(){function e(e,t,i){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),this.x=e,this.y=t,this.z=i}return e.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},e.prototype.set=function(e,t,i){return this.x=e,this.y=t,this.z=i,this},e.prototype.fromArray=function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},e.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},e.prototype.multiplyScalar=function(e){return this.x*=e,this.y*=e,this.z*=e,this},e.prototype.subVectors=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},e.prototype.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z},e.prototype.cross=function(e){var t=this.x,i=this.y,n=this.z;return this.x=i*e.z-n*e.y,this.y=n*e.x-t*e.z,this.z=t*e.y-i*e.x,this},e.prototype.crossVectors=function(e,t){var i=e.x,n=e.y,r=e.z,o=t.x,s=t.y,a=t.z;return this.x=n*a-r*s,this.y=r*o-i*a,this.z=i*s-n*o,this},e.prototype.clone=function(){return new e(this.x,this.y,this.z)},e}(),pt=function(){function e(e,t,i,n,r){this._extentsMin=e,this._extentsMax=t,this._startIndex=i,this._endIndex=n,this._level=r,this._node0=null,this._node1=null,this.elementCount=n-i,this.center=[(e.x+t.x)/2,(e.y+t.y)/2,(e.z+t.z)/2];var o,s=this.size=[t.x-e.x,t.y-e.y,t.z-e.z];o=s[0]>s[1]?s[1]>s[2]?[2,1,0]:s[0]>s[2]?[1,2,0]:[1,0,2]:s[1]>s[2]?s[0]>s[2]?[2,0,1]:[0,2,1]:[0,1,2],this.order=o}return e.prototype.clearShapes=function(){this._startIndex=-1,this._endIndex=-1,this.elementCount=0},e}(),At=(ut=new dt,ct=new dt,lt=new dt,ht=new dt,function(e,t,i,n,r,o){ct.subVectors(t,e),lt.subVectors(i,e),ht.crossVectors(ct,lt);var s,a=r.dot(ht);if(a>0){if(o)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ut.subVectors(n,e);var u=s*r.dot(lt.crossVectors(ut,lt));if(u<0)return null;var c=s*r.dot(ct.cross(ut));if(c<0)return null;if(u+c>a)return null;var l=-s*ut.dot(ht);if(l<0)return null;var h=l/a;return(new dt).copy(r).multiplyScalar(h).add(n)});function ft(e,t,i){var n={min:0,max:0};t.x>=0?(n.min=(i._extentsMin.x-e.x)*t.x,n.max=(i._extentsMax.x-e.x)*t.x):(n.min=(i._extentsMax.x-e.x)*t.x,n.max=(i._extentsMin.x-e.x)*t.x);var r={min:0,max:0};if(t.y>=0?(r.min=(i._extentsMin.y-e.y)*t.y,r.max=(i._extentsMax.y-e.y)*t.y):(r.min=(i._extentsMax.y-e.y)*t.y,r.max=(i._extentsMin.y-e.y)*t.y),n.min>r.max||r.min>n.max)return!1;r.min>n.min&&(n.min=r.min),r.max<n.max&&(n.max=r.max);var o={min:0,max:0};return t.z>=0?(o.min=(i._extentsMin.z-e.z)*t.z,o.max=(i._extentsMax.z-e.z)*t.z):(o.min=(i._extentsMax.z-e.z)*t.z,o.max=(i._extentsMin.z-e.z)*t.z),!(n.min>o.max||o.min>n.max)&&(o.min>n.min&&(n.min=o.min),o.max<n.max&&(n.max=o.max),!(n.max<0))}var Mt=function(){function e(e,t){void 0===t&&(t=10),this._trianglesArray=e,this._maxTrianglesPerNode=t,this._bboxArray=this.calcBoundingBoxes(e),this._bboxHelper=new Float32Array(this._bboxArray.length),this._bboxHelper.set(this._bboxArray);var i=e.length/9,n=this.calcExtents(0,i,1e-6);this._rootNode=new pt(n[0],n[1],0,i,0),this._nodesToSplit=[this._rootNode],this.splitNode()}return e.prototype.calcBoundingBoxes=function(e){for(var t,i,n,r,o,s,a,u,c,l,h,d,p,A,f,M=e.length/9,g=new Float32Array(7*M),y=0,m=0,v=0;v<M;y+=9,m+=7,v++)t=e[y],i=e[y+1],n=e[y+2],r=e[y+3],o=e[y+4],s=e[y+5],r<(l=t)&&(l=r),(a=e[y+6])<l&&(l=a),o<(h=i)&&(h=o),(u=e[y+7])<h&&(h=u),s<(d=n)&&(d=s),(c=e[y+8])<d&&(d=c),r>(p=t)&&(p=r),a>p&&(p=a),o>(A=i)&&(A=o),u>A&&(A=u),s>(f=n)&&(f=s),c>f&&(f=c),g[m]=v,g[m+1]=l,g[m+2]=h,g[m+3]=d,g[m+4]=p,g[m+5]=A,g[m+6]=f;return g},e.prototype.splitNode=function(){if(this._rootNode)for(this._splitNode(this._rootNode);this._nodesToSplit.length>0;)this._splitNode(this._nodesToSplit.pop())},e.prototype._splitNode=function(e){if(!(e.elementCount<=this._maxTrianglesPerNode||0===e.elementCount)){for(var t=e._startIndex,i=e._endIndex,n=[[],[],[]],r=[[],[],[]],o=e.center,s=7*(v=t);v<i;v++,s+=7)for(var a=0;a<3;a++)(this._bboxArray[s+1+a]+this._bboxArray[s+4+a])/2<o[a]?n[a][n[a].length]=v:r[a][r[a].length]=v;var u=[!(n[0].length&r[0].length),!(n[1].length&r[1].length),!(n[2].length&r[2].length)];if(!(u[0]&u[1]&u[2])){var c,l,h=e.order;for(a=0;a<3;a++){var d=h[a];if(!u[d]){c=n[d],l=r[d];break}}for(var p,A=t,f=A+c.length,M=f,g=i,y=e._startIndex,m=c.concat(l),v=0;v<m.length;v++)p=m[v],this._bboxHelper[7*y]=this._bboxArray[7*p],this._bboxHelper[7*y+1]=this._bboxArray[7*p+1],this._bboxHelper[7*y+2]=this._bboxArray[7*p+2],this._bboxHelper[7*y+3]=this._bboxArray[7*p+3],this._bboxHelper[7*y+4]=this._bboxArray[7*p+4],this._bboxHelper[7*y+5]=this._bboxArray[7*p+5],this._bboxHelper[7*y+6]=this._bboxArray[7*p+6],y++;var N=this._bboxHelper.subarray(7*e._startIndex,7*e._endIndex);this._bboxArray.set(N,7*e._startIndex);var D=this.calcExtents(A,f,1e-6),w=this.calcExtents(M,g,1e-6),T=new pt(D[0],D[1],A,f,e._level+1),x=new pt(w[0],w[1],M,g,e._level+1);e._node0=T,e._node1=x,e.clearShapes(),this._nodesToSplit.push(T,x)}}},e.prototype.calcExtents=function(e,t,i){if(e>=t)return[{x:0,y:0,z:0},{x:0,y:0,z:0}];var n,r=7*e,o=7*t+1,s=this._bboxArray[r+1],a=this._bboxArray[r+2],u=this._bboxArray[r+3],c=this._bboxArray[r+4],l=this._bboxArray[r+5],h=this._bboxArray[r+6],d=this._bboxArray;for(r+=7;r<o;r+=7)(n=d[r+1])<s&&(s=n),(n=d[r+2])<a&&(a=n),(n=d[r+3])<u&&(u=n),(n=d[r+4])>c&&(c=n),(n=d[r+5])>l&&(l=n),(n=d[r+6])>h&&(h=n);return[{x:s-i,y:a-i,z:u-i},{x:c+i,y:l+i,z:h+i}]},e.prototype.intersectRay=function(e,t,i){for(var n=[this._rootNode],r=[],o=[],s=new dt(1/t.x,1/t.y,1/t.z);n.length>0;){var a=n.pop();if(ft(e,s,a)){a._node0&&n.push(a._node0),a._node1&&n.push(a._node1);for(var u=a._startIndex;u<a._endIndex;u++)r.push(this._bboxArray[7*u])}}var c=new dt,l=new dt,h=new dt,d=new dt(e.x,e.y,e.z),p=new dt(t.x,t.y,t.z);for(u=0;u<r.length;u++){var A=r[u];c.fromArray(this._trianglesArray,9*A),l.fromArray(this._trianglesArray,9*A+3),h.fromArray(this._trianglesArray,9*A+6);var f=At(c,l,h,d,p,i);f&&o.push({triangle:[c.clone(),l.clone(),h.clone()],triangleIndex:A,intersectionPoint:f})}return o},e.prototype.dispose=function(){this._trianglesArray=new Float32Array,this._bboxArray=new Float32Array,this._bboxHelper=new Float32Array,this._rootNode=null,this._nodesToSplit.length=0},e}();var gt,yt=(gt="$$FIVE_EVENT$$","undefined"==typeof Symbol?"$Symbol<"+gt+">$":Symbol(gt));function mt(e){return e[yt]||(e[yt]={}),e[yt]}var vt=function(){function e(){}return e.prototype.hasListener=function(e){var t=mt(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,i){var n=this,r=mt(this);return r[e]||(r[e]=[]),r[e].push([t,i||!1]),function(){return n.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var i,n=mt(this);if(n[e]||(n[e]=[]),void 0!==t){for(var r=0;r<n[e].length&&n[e][r][0]!==t;r++);r<n[e].length&&n[e].splice(r,1)}else n[e].length=0}else(i=this)[yt]||delete i[yt]},e.prototype.emit=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];for(var n=!1,r=mt(this),o=r[e]||[],s=0,a=o.slice();s<a.length;s++){var u=a[s],c=u[0],l=u[1],h=void 0!==l&&l,d=c.apply(void 0,t);h&&this.off(e,c),!1===d&&(n=!0)}return n},e}();function Nt(e){Object.freeze(e);var t="function"==typeof e,i=Object.prototype.hasOwnProperty;return Object.getOwnPropertyNames(e).forEach((function(n){!i.call(e,n)||t&&("caller"===n||"callee"===n||"arguments"===n)||null===e[n]||"object"!=typeof e[n]&&"function"!=typeof e[n]||Object.isFrozen(e[n])||Nt(e[n])})),e}var Dt=/^([^.]+)(\.([^.]+))*$/;function wt(e){return/^(([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.(?!$)|$)){4}$/.test(e)}function Tt(e,t){return Dt.test(e)&&Dt.test(t)&&function(e,t){if("*"===e)return!0;var i=e.split(".").reverse(),n=t.split(".").reverse();if(i.length<=1)return e===t;for(var r=0;r<i.length;r++)if(i[r]!==n[r])return!1;return!0}(e,t)}var xt=[/\.([0-9a-z]+)\.jsonp([\?\#].*)?$/i,/jsonp_([0-9a-z]+)([\?\#].*)?$/i],Et=Nt(JSON.parse(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("h-/y|pnyu|/9-/xr;p|z/9-/yvn{wvn;p|z/9-/rnyrr;p|z/9-/rnyrr;p{/9-/uv;p|z/9-/uv;p{/9-/ywpq{;p|z/9-/pnyp{|qr;vr/-j"))),jt=function(e){function i(t,i,n){return e.call(this,"[NETWORK]: response error(type: "+i+", reason: "+n+"): "+t)||this}return t.__extends(i,e),i}(Error),zt=function(e){function i(t,i,n){var r=e.call(this,"[NETWORK]: response error(type: "+i+", status: "+n+"): "+t)||this;return r.httpStatus=n,r}return t.__extends(i,e),i}(Error);!function(e){function i(t,i){return e.call(this,"[NETWORK]: request abort(type: "+i+"): "+t)||this}t.__extends(i,e)}(Error);var It=function(e){function i(t,i,n){return e.call(this,"[NETWORK]: request timeout(type: "+i+", timeout: "+n+"ms): "+t)||this}return t.__extends(i,e),i}(Error);function bt(e){for(var t=0,i=xt;t<i.length;t++){var n=i[t],r=e.match(n);if(r)return"jsonp_"+r[1]}return null}function Ot(e){return null!==bt(e)}function St(e){return xt.reduce((function(e,t){return e.replace(t,"")}),e)}function Lt(e){var t=e.match(/^[0-9a-z]+\:\/\/(([^:/?#]*)(?::[0-9]+)?)/);return t?t[2]:location.hostname}!function(e){function i(t,i,n){return e.call(this,"[NETWORK]: request forbidden(type: "+i+", reason: "+n+"): "+t)||this}t.__extends(i,e)}(Error);var kt=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return t.__extends(i,e),i}(vt);function Ct(e,t,i,n,r){return void 0===t&&(t={}),void 0===i&&(i=Qe),void 0===n&&(n=Qe),void 0===r&&(r=Qe),new Promise((function(o,s){var a,u=t.allowHosts?Et.concat(t.allowHosts):Et.slice(),c=Lt(e),l=bt(e);if(0!==location.hostname.length&&!wt(location.hostname)&&0===Et.filter((function(e){return Tt(e,location.hostname)})).length&&!wt(c)&&0===u.filter((function(e){return Tt(e,c)})).length){var h=l?"Script":"XMLHttpRequest",d=new jt(e,h,"request host("+c+") is not allowed");return n(d),s(d),void(null===(a=t.networkSubscribe)||void 0===a||a.emit("network",e,h,"forbidden",d.message))}if(l){var p=window,A=null,f=!1,M=He(),g=document.createElement("script");p[l]=function(r){var a,u,c=He(),h=c-M;if(delete p[l],g.parentNode&&g.parentNode.removeChild(g),null!==A&&(window.clearTimeout(A),A=null),!0!==f){if(0!==r.indexOf("data:")){var d=new zt(e,"Script",500);return n(d),s(d),void(null===(a=t.networkSubscribe)||void 0===a||a.emit("network",e,"Script","error",d.message))}var y=r.split(","),m=(y[0].match(/:(.*?);/)||[])[1],v=y[1];if("arraybuffer"===t.responseType||"blob"===t.responseType){for(var N=atob(y[1]),D=N.length,w=new Uint8Array(D),T=0;T<D;T++)w[T]=N.charCodeAt(T);v="arraybuffer"===t.responseType?w.buffer:new Blob([w],{type:m})}var x={body:v,meta:{source:e,requestTime:M,responseTime:c,costs:h,headers:{}}};i(x),o(x),null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,"Script","ok",JSON.stringify(x.meta)),f=!0}},g.src=e,document.body.appendChild(g),"number"==typeof t.timeout&&(A=window.setTimeout((function(){var i;if(A=null,!0!==f){f=!0;var r=new It(e,"Script",t.timeout||NaN);n(r),s(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Script","timeout",r.message)}}),t.timeout))}else{var y=He(),m=!1,v=new XMLHttpRequest,N=function(){v&&(v.removeEventListener("timeout",D,!1),v.removeEventListener("progress",w,!1),v.removeEventListener("load",T,!1),v.removeEventListener("error",x,!1)),v=null,N=Qe},D=function(){var i;if(!0!==m){m=!0,N();var r=new It(e,"XMLHttpRequest",t.timeout||NaN);n(r),s(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"XMLHttpRequest","timeout",r.message)}},w=function(e){if(!0!==m&&e.lengthComputable){var t=e.loaded,i=e.total;r(t/i)}},T=function(n){var r;if(!0!==m){m=!0,N();var s=He(),a=s-y,u=function(e){if(!e)return{};for(var t={},i=e.trim().split("\n"),n=0;n<i.length;n++){var r=i[n],o=r.indexOf(":"),s=r.slice(0,o).trim().toLowerCase(),a=r.slice(o+1).trim();a&&(t[s]?t[s]+=", "+a:t[s]=a)}return t}(this.getAllResponseHeaders()),c=n.total,l={body:this.response,meta:{source:e,requestTime:y,responseTime:s,costs:a,headers:u,size:c}};i(l),o(l),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"XMLHttpRequest","ok",JSON.stringify(l.meta))}},x=function(){var i;if(!0!==m){m=!0,N();var r=new zt(e,"XMLHttpRequest",this.status);n(r),s(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"XMLHttpRequest","error",r.message)}};v.addEventListener("timeout",D,!1),v.addEventListener("progress",w,!1),v.addEventListener("load",T,!1),v.addEventListener("error",x,!1),t.responseType&&(v.responseType=t.responseType),"number"==typeof t.timeout&&(v.timeout=t.timeout),v.open("GET",e,!0),v.send(null)}}))}var Pt={};function Bt(e,t,i,n,r,o){return void 0===t&&(t={}),void 0===i&&(i=Qe),void 0===n&&(n=Qe),void 0===r&&(r=Qe),new Promise((function(s,a){var u,c=t.allowHosts?Et.concat(t.allowHosts):Et.slice(),l=Lt(e);if(0!==location.hostname.length&&!wt(location.hostname)&&0===Et.filter((function(e){return Tt(e,location.hostname)})).length&&!wt(l)&&0===c.filter((function(e){return Tt(e,l)})).length){var h=new jt(e,"Image","request host("+l+") is not allowed");return n(h),a(h),void(null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,"Image","forbidden",h.message))}var d=null!=o?o:new Image,p=He(),A=!1,f=null,M=function(){var n;if(d.removeEventListener("load",M,!1),d.removeEventListener("error",g,!1),null!==f&&(clearTimeout(f),f=null),!0!==A){var o=He();A=!0;var a={body:d,meta:{headers:{},source:e,requestTime:p,responseTime:o,costs:o-p}};r(1),i(a),s(a),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Image","ok",JSON.stringify(a.meta))}},g=function(i){var r;if(d.removeEventListener("load",M,!1),d.removeEventListener("error",g,!1),null!==f&&(clearTimeout(f),f=null),!0!==A){A=!0;var o=new zt(e,"Image",0);n(o),a(o),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"Image","ok",o.message)}};"number"==typeof t.timeout&&(f=window.setTimeout((function(){var i;if(d.removeEventListener("load",M,!1),d.removeEventListener("error",g,!1),f=null,!0!==A){A=!0;var r=new It(e,"Image",t.timeout);n(r),a(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Image","timeout",r.message)}}),t.timeout)),d.addEventListener("load",M,!1),d.addEventListener("error",g,!1),r(0),d.src=e}))}var _t=null,Ut=!1,Rt=[];function Qt(e){if(void 0===e&&(e=!1),e||!Ut)if(_t)Ut=!1;else{Ut=!0;var t=Rt.shift();if(t){try{t()}catch(e){}We.shared.add((function(){return Qt(!0)}),!0,2)}else Ut=!1}}function Yt(){_t=null,Qt()}function Ft(e){return new Promise((function(t,i){Rt.push((function(){try{t(e())}catch(e){i(e)}})),Qt()}))}var Vt={OutWindow:function(){this._windowSize=0}};Vt.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},Vt.OutWindow.prototype.flush=function(){var e=this._pos-this._streamPos;if(0!==e){for(;e--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},Vt.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},Vt.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},Vt.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},Vt.OutWindow.prototype.copyBlock=function(e,t){var i=this._pos-e-1;for(i<0&&(i+=this._windowSize);t--;)i>=this._windowSize&&(i=0),this._buffer[this._pos++]=this._buffer[i++],this._pos>=this._windowSize&&this.flush()},Vt.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},Vt.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},Vt.RangeDecoder=function(){},Vt.RangeDecoder.prototype.setStream=function(e){this._stream=e},Vt.RangeDecoder.prototype.releaseStream=function(){this._stream=null},Vt.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},Vt.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,i=0,n=e;n--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,i=i<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return i},Vt.RangeDecoder.prototype.decodeBit=function(e,t){var i=e[t],n=(this._range>>>11)*i;return(2147483648^this._code)<(2147483648^n)?(this._range=n,e[t]+=2048-i>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=n,this._code-=n,e[t]-=i>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},Vt.initBitModels=function(e,t){for(;t--;)e[t]=1024},Vt.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},Vt.BitTreeDecoder.prototype.init=function(){Vt.initBitModels(this._models,1<<this._numBitLevels)},Vt.BitTreeDecoder.prototype.decode=function(e){for(var t=1,i=this._numBitLevels;i--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},Vt.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,i=1,n=0,r=0;r<this._numBitLevels;++r)i=i<<1|(t=e.decodeBit(this._models,i)),n|=t<<r;return n},Vt.reverseDecode2=function(e,t,i,n){for(var r,o=1,s=0,a=0;a<n;++a)o=o<<1|(r=i.decodeBit(e,t+o)),s|=r<<a;return s},Vt.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new Vt.BitTreeDecoder(8),this._numPosStates=0},Vt.LenDecoder.prototype.create=function(e){for(;this._numPosStates<e;++this._numPosStates)this._lowCoder[this._numPosStates]=new Vt.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new Vt.BitTreeDecoder(3)},Vt.LenDecoder.prototype.init=function(){var e=this._numPosStates;for(Vt.initBitModels(this._choice,2);e--;)this._lowCoder[e].init(),this._midCoder[e].init();this._highCoder.init()},Vt.LenDecoder.prototype.decode=function(e,t){return 0===e.decodeBit(this._choice,0)?this._lowCoder[t].decode(e):0===e.decodeBit(this._choice,1)?8+this._midCoder[t].decode(e):16+this._highCoder.decode(e)},Vt.Decoder2=function(){this._decoders=[]},Vt.Decoder2.prototype.init=function(){Vt.initBitModels(this._decoders,768)},Vt.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},Vt.Decoder2.prototype.decodeWithMatchByte=function(e,t){var i,n,r=1;do{if(i=t>>7&1,t<<=1,r=r<<1|(n=e.decodeBit(this._decoders,(1+i<<8)+r)),i!==n){for(;r<256;)r=r<<1|e.decodeBit(this._decoders,r);break}}while(r<256);return 255&r},Vt.LiteralDecoder=function(){},Vt.LiteralDecoder.prototype.create=function(e,t){var i;if(!this._coders||this._numPrevBits!==t||this._numPosBits!==e)for(this._numPosBits=e,this._posMask=(1<<e)-1,this._numPrevBits=t,this._coders=[],i=1<<this._numPrevBits+this._numPosBits;i--;)this._coders[i]=new Vt.Decoder2},Vt.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},Vt.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},Vt.Decoder=function(){this._outWindow=new Vt.OutWindow,this._rangeDecoder=new Vt.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new Vt.BitTreeDecoder(4),this._lenDecoder=new Vt.LenDecoder,this._repLenDecoder=new Vt.LenDecoder,this._literalDecoder=new Vt.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new Vt.BitTreeDecoder(6),this._posSlotDecoder[1]=new Vt.BitTreeDecoder(6),this._posSlotDecoder[2]=new Vt.BitTreeDecoder(6),this._posSlotDecoder[3]=new Vt.BitTreeDecoder(6)},Vt.Decoder.prototype.setDictionarySize=function(e){return!(e<0)&&(this._dictionarySize!==e&&(this._dictionarySize=e,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},Vt.Decoder.prototype.setLcLpPb=function(e,t,i){var n=1<<i;return!(e>8||t>4||i>4)&&(this._literalDecoder.create(t,e),this._lenDecoder.create(n),this._repLenDecoder.create(n),this._posStateMask=n-1,!0)},Vt.Decoder.prototype.init=function(){var e=4;for(this._outWindow.init(!1),Vt.initBitModels(this._isMatchDecoders,192),Vt.initBitModels(this._isRep0LongDecoders,192),Vt.initBitModels(this._isRepDecoders,12),Vt.initBitModels(this._isRepG0Decoders,12),Vt.initBitModels(this._isRepG1Decoders,12),Vt.initBitModels(this._isRepG2Decoders,12),Vt.initBitModels(this._posDecoders,114),this._literalDecoder.init();e--;)this._posSlotDecoder[e].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},Vt.Decoder.prototype.decode=function(e,t,i){var n,r,o,s,a,u,c=0,l=0,h=0,d=0,p=0,A=0,f=0;for(this._rangeDecoder.setStream(e),this._outWindow.setStream(t),this.init();i<0||A<i;)if(n=A&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(c<<4)+n))r=this._literalDecoder.getDecoder(A++,f),f=c>=7?r.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(l)):r.decodeNormal(this._rangeDecoder),this._outWindow.putByte(f),c=c<4?0:c-(c<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,c))o=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,c)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(c<<4)+n)&&(c=c<7?9:11,o=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,c)?s=h:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,c)?s=d:(s=p,p=d),d=h),h=l,l=s),0===o&&(o=2+this._repLenDecoder.decode(this._rangeDecoder,n),c=c<7?8:11);else if(p=d,d=h,h=l,o=2+this._lenDecoder.decode(this._rangeDecoder,n),c=c<7?7:10,(a=this._posSlotDecoder[o<=5?o-2:3].decode(this._rangeDecoder))>=4){if(l=(2|1&a)<<(u=(a>>1)-1),a<14)l+=Vt.reverseDecode2(this._posDecoders,l-a-1,this._rangeDecoder,u);else if(l+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(l+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===l)break;return!1}}else l=a;if(l>=A||l>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(l,o),A+=o,f=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},Vt.Decoder.prototype.setDecoderProperties=function(e){var t,i,n,r,o;return!(e.size<5)&&(i=(t=e.readByte())%9,n=(t=~~(t/9))%5,r=~~(t/5),!!this.setLcLpPb(i,n,r)&&(o=e.readByte(),o|=e.readByte()<<8,o|=e.readByte()<<16,o+=16777216*e.readByte(),this.setDictionarySize(o)))},Vt.decompress=function(e,t,i,n){var r=new Vt.Decoder;if(!r.setDecoderProperties(e))throw"Incorrect stream properties";if(!r.decode(t,i,n))throw"Error in data stream";return!0},Vt.decompressFile=function(e,t){var i,n=new Vt.Decoder;if(!n.setDecoderProperties(e))throw"Incorrect stream properties";if(i=e.readByte(),i|=e.readByte()<<8,i|=e.readByte()<<16,i+=16777216*e.readByte(),e.readByte(),e.readByte(),e.readByte(),e.readByte(),!n.decode(e,t,i))throw"Error in data stream";return!0};var Ht="undefined"!=typeof Worker&&"undefined"!=typeof Blob,Gt="";if(Ht)try{var Wt=new Blob(['\n self.onmessage = function (event) {\n var Packet = event.data;\n var Result = null;\n try {\n if (!Packet.PacketID) {\n throw new Error(\'No incoming id.\');\n }\n if (!Packet.Data) {\n throw new Error(\'No input data.\');\n }\n if (Packet.Type == \'compress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n // C: encoding data\n Result = Util.compressFile(Packet.Data, null, Packet.Level, null);\n } else if (Packet.Type == \'decompress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n var inStream = {\n data: Packet.Data,\n offset: 0,\n readByte () {\n return this.data[this.offset++];\n }\n };\n var partLength = inStream.data.length;\n var outStream = {\n data: [],\n offset: 0,\n writeByte (value) {\n var partIndex = Math.floor(this.offset / partLength);\n if (!this.data[partIndex]) {\n this.data[partIndex] = new Uint8Array(partLength);\n }\n this.data[partIndex][this.offset % partLength] = value;\n this.offset++;\n }\n }\n // C: decoding data\n\n LZMA.decompressFile(inStream, outStream);\n Result = new Uint8Array(outStream.offset)\n for (var i = 0; i < outStream.offset; i++) {\n Result[i] = outStream.data[Math.floor(i / partLength)][i % partLength];\n }\n }\n postMessage({ PacketID: Packet.PacketID, Result, Error: null }, [Result.buffer]);\n } catch (error) {\n postMessage({ PacketID: Packet.PacketID, Error: error.toString() });\n }\n };\n\n\n /*\n Copyright (c) 2011 Juan Mellado\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the "Software"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n /*\n References:\n - "LZMA SDK" by Igor Pavlov\n http://www.7-zip.org/sdk.html\n */\n\n var LZMA = LZMA || {};\n\n LZMA.OutWindow = function(){\n this._windowSize = 0;\n };\n\n LZMA.OutWindow.prototype.create = function(windowSize){\n if ( (!this._buffer) || (this._windowSize !== windowSize) ){\n this._buffer = [];\n }\n this._windowSize = windowSize;\n this._pos = 0;\n this._streamPos = 0;\n };\n\n LZMA.OutWindow.prototype.flush = function(){\n var size = this._pos - this._streamPos;\n if (size !== 0){\n while(size --){\n this._stream.writeByte(this._buffer[this._streamPos ++]);\n }\n if (this._pos >= this._windowSize){\n this._pos = 0;\n }\n this._streamPos = this._pos;\n }\n };\n\n LZMA.OutWindow.prototype.releaseStream = function(){\n this.flush();\n this._stream = null;\n };\n\n LZMA.OutWindow.prototype.setStream = function(stream){\n this.releaseStream();\n this._stream = stream;\n };\n\n LZMA.OutWindow.prototype.init = function(solid){\n if (!solid){\n this._streamPos = 0;\n this._pos = 0;\n }\n };\n\n LZMA.OutWindow.prototype.copyBlock = function(distance, len){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n while(len --){\n if (pos >= this._windowSize){\n pos = 0;\n }\n this._buffer[this._pos ++] = this._buffer[pos ++];\n if (this._pos >= this._windowSize){\n this.flush();\n }\n }\n };\n\n LZMA.OutWindow.prototype.putByte = function(b){\n this._buffer[this._pos ++] = b;\n if (this._pos >= this._windowSize){\n this.flush();\n }\n };\n\n LZMA.OutWindow.prototype.getByte = function(distance){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n return this._buffer[pos];\n };\n\n LZMA.RangeDecoder = function(){\n };\n\n LZMA.RangeDecoder.prototype.setStream = function(stream){\n this._stream = stream;\n };\n\n LZMA.RangeDecoder.prototype.releaseStream = function(){\n this._stream = null;\n };\n\n LZMA.RangeDecoder.prototype.init = function(){\n var i = 5;\n\n this._code = 0;\n this._range = -1;\n\n while(i --){\n this._code = (this._code << 8) | this._stream.readByte();\n }\n };\n\n LZMA.RangeDecoder.prototype.decodeDirectBits = function(numTotalBits){\n var result = 0, i = numTotalBits, t;\n\n while(i --){\n this._range >>>= 1;\n t = (this._code - this._range) >>> 31;\n this._code -= this._range & (t - 1);\n result = (result << 1) | (1 - t);\n\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n }\n\n return result;\n };\n\n LZMA.RangeDecoder.prototype.decodeBit = function(probs, index){\n var prob = probs[index],\n newBound = (this._range >>> 11) * prob;\n\n if ( (this._code ^ 0x80000000) < (newBound ^ 0x80000000) ){\n this._range = newBound;\n probs[index] += (2048 - prob) >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 0;\n }\n\n this._range -= newBound;\n this._code -= newBound;\n probs[index] -= prob >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 1;\n };\n\n LZMA.initBitModels = function(probs, len){\n while(len --){\n probs[len] = 1024;\n }\n };\n\n LZMA.BitTreeDecoder = function(numBitLevels){\n this._models = [];\n this._numBitLevels = numBitLevels;\n };\n\n LZMA.BitTreeDecoder.prototype.init = function(){\n LZMA.initBitModels(this._models, 1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.decode = function(rangeDecoder){\n var m = 1, i = this._numBitLevels;\n\n while(i --){\n m = (m << 1) | rangeDecoder.decodeBit(this._models, m);\n }\n return m - (1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.reverseDecode = function(rangeDecoder){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < this._numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(this._models, m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.reverseDecode2 = function(models, startIndex, rangeDecoder, numBitLevels){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(models, startIndex + m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.LenDecoder = function(){\n this._choice = [];\n this._lowCoder = [];\n this._midCoder = [];\n this._highCoder = new LZMA.BitTreeDecoder(8);\n this._numPosStates = 0;\n };\n\n LZMA.LenDecoder.prototype.create = function(numPosStates){\n for (; this._numPosStates < numPosStates; ++ this._numPosStates){\n this._lowCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n this._midCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n }\n };\n\n LZMA.LenDecoder.prototype.init = function(){\n var i = this._numPosStates;\n LZMA.initBitModels(this._choice, 2);\n while(i --){\n this._lowCoder[i].init();\n this._midCoder[i].init();\n }\n this._highCoder.init();\n };\n\n LZMA.LenDecoder.prototype.decode = function(rangeDecoder, posState){\n if (rangeDecoder.decodeBit(this._choice, 0) === 0){\n return this._lowCoder[posState].decode(rangeDecoder);\n }\n if (rangeDecoder.decodeBit(this._choice, 1) === 0){\n return 8 + this._midCoder[posState].decode(rangeDecoder);\n }\n return 16 + this._highCoder.decode(rangeDecoder);\n };\n\n LZMA.Decoder2 = function(){\n this._decoders = [];\n };\n\n LZMA.Decoder2.prototype.init = function(){\n LZMA.initBitModels(this._decoders, 0x300);\n };\n\n LZMA.Decoder2.prototype.decodeNormal = function(rangeDecoder){\n var symbol = 1;\n\n do{\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.Decoder2.prototype.decodeWithMatchByte = function(rangeDecoder, matchByte){\n var symbol = 1, matchBit, bit;\n\n do{\n matchBit = (matchByte >> 7) & 1;\n matchByte <<= 1;\n bit = rangeDecoder.decodeBit(this._decoders, ( (1 + matchBit) << 8) + symbol);\n symbol = (symbol << 1) | bit;\n if (matchBit !== bit){\n while(symbol < 0x100){\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }\n break;\n }\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.LiteralDecoder = function(){\n };\n\n LZMA.LiteralDecoder.prototype.create = function(numPosBits, numPrevBits){\n var i;\n\n if (this._coders\n && (this._numPrevBits === numPrevBits)\n && (this._numPosBits === numPosBits) ){\n return;\n }\n this._numPosBits = numPosBits;\n this._posMask = (1 << numPosBits) - 1;\n this._numPrevBits = numPrevBits;\n\n this._coders = [];\n\n i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i] = new LZMA.Decoder2();\n }\n };\n\n LZMA.LiteralDecoder.prototype.init = function(){\n var i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i].init();\n }\n };\n\n LZMA.LiteralDecoder.prototype.getDecoder = function(pos, prevByte){\n return this._coders[( (pos & this._posMask) << this._numPrevBits)\n + ( (prevByte & 0xff) >>> (8 - this._numPrevBits) )];\n };\n\n LZMA.Decoder = function(){\n this._outWindow = new LZMA.OutWindow();\n this._rangeDecoder = new LZMA.RangeDecoder();\n this._isMatchDecoders = [];\n this._isRepDecoders = [];\n this._isRepG0Decoders = [];\n this._isRepG1Decoders = [];\n this._isRepG2Decoders = [];\n this._isRep0LongDecoders = [];\n this._posSlotDecoder = [];\n this._posDecoders = [];\n this._posAlignDecoder = new LZMA.BitTreeDecoder(4);\n this._lenDecoder = new LZMA.LenDecoder();\n this._repLenDecoder = new LZMA.LenDecoder();\n this._literalDecoder = new LZMA.LiteralDecoder();\n this._dictionarySize = -1;\n this._dictionarySizeCheck = -1;\n\n this._posSlotDecoder[0] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[1] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[2] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[3] = new LZMA.BitTreeDecoder(6);\n };\n\n LZMA.Decoder.prototype.setDictionarySize = function(dictionarySize){\n if (dictionarySize < 0){\n return false;\n }\n if (this._dictionarySize !== dictionarySize){\n this._dictionarySize = dictionarySize;\n this._dictionarySizeCheck = Math.max(this._dictionarySize, 1);\n this._outWindow.create( Math.max(this._dictionarySizeCheck, 4096) );\n }\n return true;\n };\n\n LZMA.Decoder.prototype.setLcLpPb = function(lc, lp, pb){\n var numPosStates = 1 << pb;\n\n if (lc > 8 || lp > 4 || pb > 4){\n return false;\n }\n\n this._literalDecoder.create(lp, lc);\n\n this._lenDecoder.create(numPosStates);\n this._repLenDecoder.create(numPosStates);\n this._posStateMask = numPosStates - 1;\n\n return true;\n };\n\n LZMA.Decoder.prototype.init = function(){\n var i = 4;\n\n this._outWindow.init(false);\n\n LZMA.initBitModels(this._isMatchDecoders, 192);\n LZMA.initBitModels(this._isRep0LongDecoders, 192);\n LZMA.initBitModels(this._isRepDecoders, 12);\n LZMA.initBitModels(this._isRepG0Decoders, 12);\n LZMA.initBitModels(this._isRepG1Decoders, 12);\n LZMA.initBitModels(this._isRepG2Decoders, 12);\n LZMA.initBitModels(this._posDecoders, 114);\n\n this._literalDecoder.init();\n\n while(i --){\n this._posSlotDecoder[i].init();\n }\n\n this._lenDecoder.init();\n this._repLenDecoder.init();\n this._posAlignDecoder.init();\n this._rangeDecoder.init();\n };\n\n LZMA.Decoder.prototype.decode = function(inStream, outStream, outSize){\n var state = 0, rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0, nowPos64 = 0, prevByte = 0,\n posState, decoder2, len, distance, posSlot, numDirectBits;\n\n this._rangeDecoder.setStream(inStream);\n this._outWindow.setStream(outStream);\n\n this.init();\n\n while(outSize < 0 || nowPos64 < outSize){\n posState = nowPos64 & this._posStateMask;\n\n if (this._rangeDecoder.decodeBit(this._isMatchDecoders, (state << 4) + posState) === 0){\n decoder2 = this._literalDecoder.getDecoder(nowPos64 ++, prevByte);\n\n if (state >= 7){\n prevByte = decoder2.decodeWithMatchByte(this._rangeDecoder, this._outWindow.getByte(rep0) );\n }else{\n prevByte = decoder2.decodeNormal(this._rangeDecoder);\n }\n this._outWindow.putByte(prevByte);\n\n state = state < 4? 0: state - (state < 10? 3: 6);\n\n }else{\n\n if (this._rangeDecoder.decodeBit(this._isRepDecoders, state) === 1){\n len = 0;\n if (this._rangeDecoder.decodeBit(this._isRepG0Decoders, state) === 0){\n if (this._rangeDecoder.decodeBit(this._isRep0LongDecoders, (state << 4) + posState) === 0){\n state = state < 7? 9: 11;\n len = 1;\n }\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG1Decoders, state) === 0){\n distance = rep1;\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG2Decoders, state) === 0){\n distance = rep2;\n }else{\n distance = rep3;\n rep3 = rep2;\n }\n rep2 = rep1;\n }\n rep1 = rep0;\n rep0 = distance;\n }\n if (len === 0){\n len = 2 + this._repLenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 8: 11;\n }\n }else{\n rep3 = rep2;\n rep2 = rep1;\n rep1 = rep0;\n\n len = 2 + this._lenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 7: 10;\n\n posSlot = this._posSlotDecoder[len <= 5? len - 2: 3].decode(this._rangeDecoder);\n if (posSlot >= 4){\n\n numDirectBits = (posSlot >> 1) - 1;\n rep0 = (2 | (posSlot & 1) ) << numDirectBits;\n\n if (posSlot < 14){\n rep0 += LZMA.reverseDecode2(this._posDecoders,\n rep0 - posSlot - 1, this._rangeDecoder, numDirectBits);\n }else{\n rep0 += this._rangeDecoder.decodeDirectBits(numDirectBits - 4) << 4;\n rep0 += this._posAlignDecoder.reverseDecode(this._rangeDecoder);\n if (rep0 < 0){\n if (rep0 === -1){\n break;\n }\n return false;\n }\n }\n }else{\n rep0 = posSlot;\n }\n }\n\n if (rep0 >= nowPos64 || rep0 >= this._dictionarySizeCheck){\n return false;\n }\n\n this._outWindow.copyBlock(rep0, len);\n nowPos64 += len;\n prevByte = this._outWindow.getByte(0);\n }\n }\n\n this._outWindow.flush();\n this._outWindow.releaseStream();\n this._rangeDecoder.releaseStream();\n\n return true;\n };\n\n LZMA.Decoder.prototype.setDecoderProperties = function(properties){\n var value, lc, lp, pb, dictionarySize;\n\n if (properties.size < 5){\n return false;\n }\n\n value = properties.readByte();\n lc = value % 9;\n value = ~~(value / 9);\n lp = value % 5;\n pb = ~~(value / 5);\n\n if ( !this.setLcLpPb(lc, lp, pb) ){\n return false;\n }\n\n dictionarySize = properties.readByte();\n dictionarySize |= properties.readByte() << 8;\n dictionarySize |= properties.readByte() << 16;\n dictionarySize += properties.readByte() * 16777216;\n\n return this.setDictionarySize(dictionarySize);\n };\n\n LZMA.decompress = function(properties, inStream, outStream, outSize){\n var decoder = new LZMA.Decoder();\n\n if ( !decoder.setDecoderProperties(properties) ){\n throw "Incorrect stream properties";\n }\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n\n LZMA.decompressFile = function(inStream, outStream){\n var decoder = new LZMA.Decoder(), outSize;\n\n if ( !decoder.setDecoderProperties(inStream) ){\n throw "Incorrect stream properties";\n }\n\n outSize = inStream.readByte();\n outSize |= inStream.readByte() << 8;\n outSize |= inStream.readByte() << 16;\n outSize += inStream.readByte() * 16777216;\n\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n'],{type:"text/javascript"});Gt=URL.createObjectURL(Wt)}catch(e){}var qt=function(){function e(){var e=this;if(this.callCounter=0,this.requests=[],!Ht)throw new Error("LZMACaller cannot work in this broswer.");var t=this.worker=new Worker(Gt);t.onmessage=function(t){var i,n,r=t.data,o=r.PacketID,s=r.Result,a=r.Error;a?null===(n=e.requests[o])||void 0===n||n.onCompleteCallback(new Error(a)):null===(i=e.requests[o])||void 0===i||i.onCompleteCallback(null,s),delete e.requests[o]},t.onerror=function(e){return console.error(e)}}return e.prototype.compress=function(e,t,i){var n=++this.callCounter;this.requests[n]={onCompleteCallback:i},this.worker.postMessage({Type:"compress",PacketID:n,Data:e,Level:t},[e.buffer])},e.prototype.decompress=function(e,t){var i=++this.callCounter;this.requests[i]={onCompleteCallback:t},this.worker.postMessage({Type:"decompress",PacketID:i,Data:e},[e.buffer])},e.prototype.terminate=function(){this.worker.terminate()},e.support=Ht,e}();function Kt(e){return Array.prototype.reduce.call(e,(function(e,t,i){return e|t<<8*i}),0)}function Zt(e){for(var t=new Uint8Array(e),i=Kt(t.slice(0,4)),n=[],r=[],o=4+4*i,s=0;s<i;s++)r[s]=Kt(t.slice(4+4*s,8+4*s)),n[s]=s===i-1?t.subarray(o,o+r[s]):t.slice(o,o+r[s]),o+=r[s];return qt.support?function(e){for(var t=[],i=e.length,n=function(i){t.push(new Promise((function(t,n){var r=new qt;r.decompress(e[i],(function(e,i){if(r.terminate(),e)return n(e);t(i)}))})))},r=0;r<i;r++)n(r);return Promise.all(t)}(n):Promise.resolve(function(e){for(var t,i=[],n=e.length,r=function(n){var r={data:e[n],offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,s={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/o);this.data[t]||(this.data[t]=new Uint8Array(o)),this.data[t][this.offset%o]=e,this.offset++}};Vt.decompressFile(r,s),t=new Uint8Array(s.offset);for(var a=0;a<s.offset;a++)t[a]=s.data[Math.floor(a/o)][a%o];i.push(t)},o=0;o<n;o++)r(o);return i}(n))}function Xt(e,t){for(var i={},n=0,r=t;n<r.length;n++){var o=r[n];o in e&&(i[o]=e[o])}return i}var Jt="//vrlab-public.ljcdn.com/",$t="//vrlab-image[1-4].ljcdn.com/";function ei(e,t){var i,n=e.split("?")[0],r=n.split(".").pop();if("jpeg"===r&&(r="jpg"),"png"!==r&&"jpg"!==r)return e;var o="";if(void 0!==t.format&&t.format!==r&&(o+="/format/"+t.format),void 0!==t.cut&&(o+="/cut/"+t.cut[2]+"x"+t.cut[3]+"x"+t.cut[0]+"x"+t.cut[1]),void 0!==t.size&&(o+="/thumbnail/"+t.size+"x"),void 0!==t.quality){var s=null!==(i=t.format)&&void 0!==i?i:r;s&&["jpg","webp","tpg","heif","avif"].indexOf(s)>=0&&(o+="/quality/"+t.quality)}return o.length&&(o="?imageMogr2"+o),n+o}function ti(e,t){return e.indexOf(Jt)>=0?(/\.basis(\?|$)/.test(e)&&!0!==t.basisLoaderInitialized&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),ei(function(e,t){var i=t.split("."),n=i[0],r=i.slice(1);if("texture"===n)return e.replace(Jt,$t.replace("[1-4]","3"));if("pano"===n||"pano_luminance"===n)switch(r[0],r[1]){case"front":case"left":case"up":return e.replace(Jt,$t.replace("[1-4]","1"));case"down":case"right":case"back":return e.replace(Jt,$t.replace("[1-4]","2"))}else if("pano_tile"===n||"pano_tile_luminance"===n){r[0],r[1];var o=r[2],s=r[3],a=r[4],u=Math.pow(2,Number(o))*Number(s)+Number(a);if(!isNaN(u))return e.replace(Jt,"//vr-tile-[1-2].realsee-cdn.com/".replace("[1-2]",String(u%2+1)))}return e.replace(Jt,$t.replace("[1-4]","3"))}(e,t.key),t)):e.indexOf("//test-vr-public.realsee-cdn.com/")>=0?(/\.basis(\?|$)/.test(e)&&!0!==t.basisLoaderInitialized&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),ei(e.replace("//test-vr-public.realsee-cdn.com/","//test-vr-image.realsee-cdn.com/"),t)):e}var ii=!1;try{ii="undefined"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(e){}var ni=[],ri=[];function oi(){var e=this;/^blob\:/.test(this.src)&&URL.revokeObjectURL(this.src),this.onerror=this.onload=Qe,this.removeAttribute("src"),We.shared.add((function(){ni.push(e)}),!0,1)}function si(){ri.push(this)}function ai(){var e;return null!==(e=ni.shift())&&void 0!==e?e:Object.assign(new Image,{crossOrigin:"",close:oi})}function ui(e){return new Promise((function(t,i){var n=ai(),r=function(){n.removeEventListener("load",r,!1),n.removeEventListener("error",o,!1),t(n)},o=function(){n.removeEventListener("load",r,!1),n.removeEventListener("error",o,!1),i(new Error("image load error: "+n.src)),n.close()};n.addEventListener("load",r,!1),n.addEventListener("error",o,!1),n.src=URL.createObjectURL(e)}))}function ci(e,t){if(t&&(e.width>t.width||e.height>t.height)){var i=function(e,t){var i=ri.shift();if(i)return i.width=e,i.height=t,i;if(ii){var n=new OffscreenCanvas(e,t);return Object.assign(n,{close:si})}return n=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),Object.assign(n,{close:si})}(Math.min(e.width,t.width),Math.min(e.height,t.height));i.getContext("2d").drawImage(e,0,0,i.width,i.height),e.close();var n=new r.Texture(i);n.needsUpdate=!0,n.flipY=!0;var o=n.dispose;return n.dispose=function(){i.close(),o.call(n)},n}var s=new r.Texture(e);s.needsUpdate=!0,s.flipY=!0;var a=s.dispose;return s.dispose=function(){e.close(),a.call(s)},s}var li=new r.WebGLRenderTarget(1,1),hi=new r.OrthographicCamera(-1,1,1,-1,0,1),di=new r.BufferGeometry;di.setAttribute("position",new r.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),di.setAttribute("uv",new r.Float32BufferAttribute([0,2,0,0,2,0],2));var pi=new r.Mesh(di),Ai=new r.Scene;Ai.add(pi);var fi,Mi=new r.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform sampler2D map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0));\n }\n "}),gi=new r.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform samplerCube map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0, 0));\n }\n "});function yi(e,t,i){return void 0!==t.flipY&&(e.flipY=t.flipY),void 0!==t.format&&(e.format=t.format),void 0!==t.encoding&&(e.encoding=t.encoding),void 0!==t.minFilter&&(e.minFilter=t.minFilter),void 0!==t.magFilter&&(e.magFilter=t.magFilter),i?new Promise((function(t){We.shared.add((function(){try{var n=i.getRenderTarget();i.setRenderTarget(li),e instanceof r.CubeTexture?(pi.material=gi,gi.uniforms.map.value=e,i.render(Ai,hi),gi.uniforms.map.value=null):(pi.material=Mi,Mi.uniforms.map.value=e,i.render(Ai,hi),gi.uniforms.map.value=null),i.setRenderTarget(n),t(e)}catch(i){t(e)}}),!0,1,1e3)})):Promise.resolve(e)}var mi='\nvar config, transcoderPending, _BasisFile;\nself.onmessage = function(e) {\n var message = e.data;\n switch (message.type) {\n case "init":\n config = message.config;\n init(message.transcoderBinary);\n break;\n case "transcode":\n transcoderPending.then(function() {\n try {\n var result = transcode(message.buffer);\n var width = result.width;\n var height = result.height;\n var hasAlpha = result.hasAlpha;\n var mipmaps = result.mipmaps;\n var format = result.format;\n var buffers = [];\n for (var i = 0; i < mipmaps.length; ++i) {\n buffers.push(mipmaps[i].data.buffer);\n }\n self.postMessage({ type: "transcode", id: message.id, width, height, hasAlpha, mipmaps, format }, buffers);\n } catch (error) {\n console.error(error);\n self.postMessage({ type: "error", id: message.id, error: error.message });\n }\n });\n break;\n default: break;\n }\n};\n\nfunction init(wasmBinary) {\n var BasisModule;\n transcoderPending = new Promise(function(resolve) {\n BasisModule = { wasmBinary, onRuntimeInitialized: resolve };\n BASIS(BasisModule); // eslint-disable-line no-undef\n }).then(function() {\n _BasisFile = BasisModule.BasisFile;\n BasisModule.initializeBasis();\n self.postMessage({ type: "initialized" });\n });\n}\n\nfunction transcode(buffer) {\n var basisFile = new _BasisFile(new Uint8Array(buffer));\n var width = basisFile.getImageWidth(0, 0);\n var height = basisFile.getImageHeight(0, 0);\n var levels = basisFile.getNumLevels(0);\n var hasAlpha = basisFile.getHasAlpha();\n function cleanup() {\n basisFile.close();\n basisFile.delete();\n }\n if (!hasAlpha) {\n switch (config.format) {\n case 9: // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA\n config.format = 8; // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;\n break;\n default: break;\n }\n }\n if (!width || !height || !levels) {\n cleanup();\n throw new Error("BasisTextureLoader: Invalid .basis file");\n }\n if (!basisFile.startTranscoding()) {\n cleanup();\n throw new Error("BasisTextureLoader: .startTranscoding failed");\n }\n var mipmaps = [];\n for (var mip = 0; mip < levels; mip++) {\n var mipWidth = basisFile.getImageWidth(0, mip);\n var mipHeight = basisFile.getImageHeight(0, mip);\n var dst = new Uint8Array(basisFile.getImageTranscodedSizeInBytes(0, mip, config.format));\n var status = basisFile.transcodeImage(dst, 0, mip, config.format, 0, hasAlpha);\n if (!status) {\n cleanup();\n throw new Error("BasisTextureLoader: .transcodeImage failed.");\n }\n mipmaps.push({ data: dst, width: mipWidth, height: mipHeight });\n }\n cleanup();\n return { width, height, hasAlpha, mipmaps, format: config.format };\n}\n',vi={cTFETC1:0,cTFETC2:1,cTFBC1:2,cTFBC3:3,cTFBC4:4,cTFBC5:5,cTFBC7_M6_OPAQUE_ONLY:6,cTFBC7_M5:7,cTFPVRTC1_4_RGB:8,cTFPVRTC1_4_RGBA:9,cTFASTC_4x4:10,cTFATC_RGB:11,cTFATC_RGBA_INTERPOLATED_ALPHA:12,cTFRGBA32:13,cTFRGB565:14,cTFBGR565:15,cTFRGBA4444:16},Ni={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779},Di=((fi={})[vi.cTFBC1]=Ni.COMPRESSED_RGB_S3TC_DXT1_EXT,fi[vi.cTFBC3]=Ni.COMPRESSED_RGBA_S3TC_DXT5_EXT,fi),wi=function(){function e(){}return e.setTranscoderPath=function(e){return this.transcoderPath=e,this},e.setWorkerLimit=function(e){return this.workerLimit=e,this},e.isInitialized=function(){return 0!==this.workerPool.filter((function(e){return e._initialized})).length},e.detectSupport=function(t){var i=this.workerConfig;if(i.astcSupported=!!t.extensions.get("WEBGL_compressed_texture_astc"),i.bptcSupported=!!t.extensions.get("EXT_texture_compression_bptc"),i.etcSupported=!!t.extensions.get("WEBGL_compressed_texture_etc1"),i.dxtSupported=!!t.extensions.get("WEBGL_compressed_texture_s3tc"),i.pvrtcSupported=!!t.extensions.get("WEBGL_compressed_texture_pvrtc")||!!t.extensions.get("WEBKIT_WEBGL_compressed_texture_pvrtc"),i.astcSupported)i.format=e.BASIS_FORMAT.cTFASTC_4x4;else if(i.bptcSupported)i.format=e.BASIS_FORMAT.cTFBC7_M5;else if(i.dxtSupported)i.format=e.BASIS_FORMAT.cTFBC3;else if(i.pvrtcSupported)i.format=e.BASIS_FORMAT.cTFPVRTC1_4_RGBA;else{if(!i.etcSupported)throw new Error("BasisTextureLoader: No suitable compressed texture format found.");i.format=e.BASIS_FORMAT.cTFETC1}return this},e.createTexture=function(e){var t,i,n=this,o=e.byteLength,s=this._allocateWorker(o).then((function(r){return t=r,i=n.workerNextTaskID++,new Promise((function(n,r){t._callbacks[i]={resolve:n,reject:r},t.postMessage({type:"transcode",id:i,buffer:e},[e])}))})).then((function(e){var t,i=n.workerConfig,o=e.width,s=e.height,a=e.mipmaps;switch(e.format){case vi.cTFASTC_4x4:t=new r.CompressedTexture(a,o,s,r.RGBA_ASTC_4x4_Format);break;case vi.cTFBC1:case vi.cTFBC3:t=new r.CompressedTexture(a,o,s,Di[i.format],r.UnsignedByteType);break;case vi.cTFETC1:t=new r.CompressedTexture(a,o,s,r.RGB_ETC1_Format);break;case vi.cTFPVRTC1_4_RGB:t=new r.CompressedTexture(a,o,s,r.RGB_PVRTC_4BPPV1_Format);break;case vi.cTFPVRTC1_4_RGBA:t=new r.CompressedTexture(a,o,s,r.RGBA_PVRTC_4BPPV1_Format);break;default:throw new Error("BasisTextureLoader: No supported format available.")}return t.minFilter=1===a.length?r.LinearFilter:r.LinearMipmapLinearFilter,t.magFilter=r.LinearFilter,t.generateMipmaps=!1,t.needsUpdate=!0,t}));return s.catch((function(){return!0})).then((function(){t&&i&&(t._taskLoad-=o,delete t._callbacks[i])})),s},e._initTranscoder=function(){var e=this;if(!this.transcoderPending){var t=new r.FileLoader;t.setPath(this.transcoderPath);var i=new Promise((function(e,i){t.load("basis_transcoder.js",e,void 0,i)})),n=new r.FileLoader;n.setPath(this.transcoderPath),n.setResponseType("arraybuffer");var o=new Promise((function(e,t){n.load("basis_transcoder.wasm",e,void 0,t)}));this.transcoderPending=Promise.all([i,o]).then((function(t){var i=t[0],n=t[1],r=["/* basis_transcoder.js */",i,"/* worker */",mi].join("\n");e.workerSourceURL=URL.createObjectURL(new Blob([r])),e.transcoderBinary=n}))}return this.transcoderPending},e._allocateWorker=function(e){var t=this;return this._initTranscoder().then((function(){if(t.workerPool.length<t.workerLimit){var i=function(e){var t=new Worker(e);return Object.assign(t,{_callbacks:{},_initialized:!1,_taskLoad:0})}(t.workerSourceURL);i._callbacks={},i._initialized=!1,i._taskLoad=0,i.postMessage({type:"init",config:t.workerConfig,transcoderBinary:t.transcoderBinary}),i.onmessage=function(e){var t=e.data;switch(t.type){case"initialized":i._initialized=!0,console.info("BasisTextureLoader: basis loader initialized");break;case"transcode":i._callbacks[t.id].resolve(t);break;case"error":i._callbacks[t.id].reject(t);break;default:console.error('BasisTextureLoader: Unexpected message, "'+t.type+'"')}},t.workerPool.push(i)}else t.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));var n=t.workerPool[t.workerPool.length-1];return n._taskLoad+=e,n}))},e.prototype.dispose=function(){for(var t=0;t<e.workerPool.length;t++)e.workerPool[t].terminate();return e.workerPool.length=0,this},e.BASIS_FORMAT=vi,e.DXT_FORMAT=Ni,e.DXT_FORMAT_MAP=Di,e.transcoderPath="https://vrlab-public.ljcdn.com/release/static/image/release/five/basis/",e.transcoderBinary=null,e.transcoderPending=null,e.workerLimit=1,e.workerPool=[],e.workerNextTaskID=1,e.workerSourceURL="",e.workerConfig={format:null,astcSupported:!1,bptcSupported:!1,etcSupported:!1,dxtSupported:!1,pvrtcSupported:!1},e}();function Ti(e){var t=e.match(/^([0-9a-z]+\:)\/\/(([^:/?#]*)(?::[0-9]+)?)/);return t?t[1]:location.protocol}var xi=function(){function e(e){this.timeout=e.timeout,this.allowHosts=e.allowHosts,this.networkSubscribe=e.networkSubscribe}return e.prototype.setAllowHosts=function(e){this.allowHosts=e},e.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e},e.prototype.load=function(e,i,n,o,s,a){void 0===i&&(i={}),void 0===n&&(n=Qe),void 0===o&&(o=Qe),void 0===s&&(s=Qe);var u=Ti(e),c={timeout:this.timeout,allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe};if(/^https?:$/.test(u)||Ot(e)){if(/\.basis$/.test(St(e).split("?")[0])){var l=null,h="arraybuffer";return!0===i.flipY?Promise.reject(new Error(".basis cannnot set flipY: true.")):Ct(e,t.__assign(t.__assign({},c),{responseType:h}),void 0,void 0,s).then((function(e){return l=e.meta,wi.createTexture(e.body)})).then((function(e){return!1!==i.preInit?yi(e,t.__assign({flipY:!1,encoding:r.sRGBEncoding},Xt(i,["wrapS","wrapT"])),a):e})).then((function(e){var t={meta:l,body:e};return n(t),t})).catch((function(e){return o(e),Promise.reject(e)}))}h="blob";return Ct(e,t.__assign(t.__assign({},c),{responseType:h}),void 0,void 0,s).then((function(e){return ui(e.body)})).then((function(e){return ci(e,i.maxSize)})).then((function(e){return!1!==i.preInit?yi(e,t.__assign({flipY:!0,encoding:r.sRGBEncoding},i),a):e})).then((function(e){var t={meta:null,body:e};return n(t),t})).catch((function(e){return o(e),Promise.reject(e)}))}var d=null,p=ai();return Bt(e,c,void 0,void 0,s,p).then((function(e){return d=e.meta,ci(e.body,i.maxSize)})).then((function(e){return!1!==i.preInit?yi(e,t.__assign({flipY:!0,encoding:r.sRGBEncoding},i),a):e})).then((function(e){var t={meta:d,body:e};return n(t),t})).catch((function(e){return p.close(),o(e),Promise.reject(e)}))},e.prototype.loadCube=function(e,i,n,o,s,a){void 0===i&&(i={}),void 0===n&&(n=Qe),void 0===o&&(o=Qe),void 0===s&&(s=Qe),Array.isArray(e)||(e=[e.right,e.left,e.up,e.down,e.front,e.back]);for(var u={timeout:this.timeout,allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe},c=[],l=[0,0,0,0,0,0],h=[],d=function(i){var n=e[i],r=Ti(n),o=function(e){l[i]=e,s(l.reduce((function(e,t){return e+t}),0)/6)};if(/^https?\:$/.test(r)||Ot(n))if(/\.basis$/.test(St(n).split("?")[0])){var a="arraybuffer",d=Ct(n,t.__assign(t.__assign({},u),{responseType:a}),void 0,void 0,o).then((function(e){return h[i]=e.meta,wi.createTexture(e.body)}));c.push(d)}else{a="blob",d=Ct(n,t.__assign(t.__assign({},u),{responseType:a}),void 0,void 0,o).then((function(e){return h[i]=e.meta,ui(e.body)}));c.push(d)}else{var p=ai();d=Bt(n,u,void 0,void 0,o,p).then((function(e){return h[i]=e.meta,e.body})).catch((function(e){return p.close(),Promise.reject(e)}));c.push(d)}},p=0;p<6;p++)d(p);return Promise.all(c).then((function(e){return e[0]instanceof r.CompressedTexture?function(e){var t=new r.CubeTexture(e);t.needsUpdate=!0;var i=t.dispose;return t.dispose=function(){for(var n=0,r=e;n<r.length;n++)r[n].dispose();i.call(t)},t.isCompressedTexture=!0,t.format=e[0].format,t.minFilter=e[0].minFilter,t.magFilter=e[0].magFilter,t}(e):function(e){var t=new r.CubeTexture(e);t.needsUpdate=!0,t.flipY=!1;var i=t.dispose;return t.dispose=function(){for(var n=0,r=e;n<r.length;n++)r[n].close();i.call(t)},t}(e)})).then((function(e){return!1!==i.preInit?e.isCompressedTexture?yi(e,t.__assign({flipY:!1,encoding:r.sRGBEncoding},Xt(i,["wrapS","wrapT"])),a):yi(e,t.__assign({flipY:!1,encoding:r.sRGBEncoding},i),a):e})).then((function(e){var t={body:e,meta:h};return n(t),t})).catch((function(e){for(var t=0,i=c;t<i.length;t++){i[t].then((function(e){e instanceof r.Texture?e.dispose():e.close()})).catch(Qe)}return o(e),Promise.reject(e)}))},e}(),Ei={computeTangents:function(e){var t=e.index,i=e.attributes;if(null!==t&&void 0!==i.position&&void 0!==i.normal&&void 0!==i.uv){var n=t.array,o=i.position.array,s=i.normal.array,a=i.uv.array,u=o.length/3;void 0===i.tangent&&e.setAttribute("tangent",new r.BufferAttribute(new Float32Array(4*u),4));for(var c=i.tangent.array,l=[],h=[],d=0;d<u;d++)l[d]=new r.Vector3,h[d]=new r.Vector3;var p=new r.Vector3,A=new r.Vector3,f=new r.Vector3,M=new r.Vector2,g=new r.Vector2,y=new r.Vector2,m=new r.Vector3,v=new r.Vector3,N=e.groups;0===N.length&&(N=[{start:0,count:n.length}]);d=0;for(var D=N.length;d<D;++d)for(var w=L=(S=N[d]).start,T=L+S.count;w<T;w+=3)k(n[w+0],n[w+1],n[w+2]);var x,E,j,z=new r.Vector3,I=new r.Vector3,b=new r.Vector3,O=new r.Vector3;for(d=0,D=N.length;d<D;++d){var S,L;for(w=L=(S=N[d]).start,T=L+S.count;w<T;w+=3)C(n[w+0]),C(n[w+1]),C(n[w+2])}}else console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");function k(e,t,i){p.fromArray(o,3*e),A.fromArray(o,3*t),f.fromArray(o,3*i),M.fromArray(a,2*e),g.fromArray(a,2*t),y.fromArray(a,2*i);var n=A.x-p.x,r=f.x-p.x,s=A.y-p.y,u=f.y-p.y,c=A.z-p.z,d=f.z-p.z,N=g.x-M.x,D=y.x-M.x,w=g.y-M.y,T=y.y-M.y,x=1/(N*T-D*w);m.set((T*n-w*r)*x,(T*s-w*u)*x,(T*c-w*d)*x),v.set((N*r-D*n)*x,(N*u-D*s)*x,(N*d-D*c)*x),l[e].add(m),l[t].add(m),l[i].add(m),h[e].add(v),h[t].add(v),h[i].add(v)}function C(e){b.fromArray(s,3*e),O.copy(b),E=l[e],z.copy(E),z.sub(b.multiplyScalar(b.dot(E))).normalize(),I.crossVectors(O,E),j=I.dot(h[e]),x=j<0?-1:1,c[4*e]=z.x,c[4*e+1]=z.y,c[4*e+2]=z.z,c[4*e+3]=x}},mergeBufferGeometries:function(e,t){for(var i=null!==e[0].index,n=new Set(Object.keys(e[0].attributes)),o=new Set(Object.keys(e[0].morphAttributes)),s={},a={},u=new r.BufferGeometry,c=0,l=0;l<e.length;++l){var h=e[l];if(i!==(null!==h.index))return null;for(var d in h.attributes){if(!n.has(d))return null;void 0===s[d]&&(s[d]=[]),s[d].push(h.attributes[d])}for(var d in h.morphAttributes){if(!o.has(d))return null;void 0===a[d]&&(a[d]=[]),a[d].push(h.morphAttributes[d])}if(u.userData.mergedUserData=u.userData.mergedUserData||[],u.userData.mergedUserData.push(h.userData),t){var p;if(i)p=h.index.count;else{if(void 0===h.attributes.position)return null;p=h.attributes.position.count}u.addGroup(c,p,l),c+=p}}if(i){var A=0,f=[];for(l=0;l<e.length;++l){for(var M=e[l].index,g=0;g<M.count;++g)f.push(M.getX(g)+A);A+=e[l].attributes.position.count}u.setIndex(f)}for(var d in s){var y=this.mergeBufferAttributes(s[d]);if(!y)return null;u.setAttribute(d,y)}for(var d in a){var m=a[d][0].length;if(0===m)break;u.morphAttributes=u.morphAttributes||{},u.morphAttributes[d]=[];for(l=0;l<m;++l){var v=[];for(g=0;g<a[d].length;++g)v.push(a[d][g][l]);var N=this.mergeBufferAttributes(v);if(!N)return null;u.morphAttributes[d].push(N)}}return u},mergeBufferAttributes:function(e){for(var t,i,n,o=0,s=0;s<e.length;++s){var a=e[s];if(a.isInterleavedBufferAttribute)return null;if(void 0===t&&(t=a.array.constructor),t!==a.array.constructor)return null;if(void 0===i&&(i=a.itemSize),i!==a.itemSize)return null;if(void 0===n&&(n=a.normalized),n!==a.normalized)return null;o+=a.array.length}var u=new t(o),c=0;for(s=0;s<e.length;++s)u.set(e[s].array,c),c+=e[s].array.length;return new r.BufferAttribute(u,i,n)},interleaveAttributes:function(e){for(var t,i=0,n=0,o=0,s=e.length;o<s;++o){var a=e[o];if(void 0===t&&(t=a.array.constructor),t!==a.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;i+=a.array.length,n+=a.itemSize}var u=new r.InterleavedBuffer(new t(i),n),c=0,l=[],h=["getX","getY","getZ","getW"],d=["setX","setY","setZ","setW"],p=0;for(s=e.length;p<s;p++){var A=(a=e[p]).itemSize,f=a.count,M=new r.InterleavedBufferAttribute(u,A,c,a.normalized);l.push(M),c+=A;for(var g=0;g<f;g++)for(var y=0;y<A;y++)M[d[y]](g,a[h[y]](g))}return l},estimateBytesUsed:function(e){var t=0;for(var i in e.attributes){var n=e.getAttribute(i);t+=n.count*n.itemSize*n.array.BYTES_PER_ELEMENT}var r=e.getIndex();return t+=r?r.count*r.itemSize*r.array.BYTES_PER_ELEMENT:0},mergeVertices:function(e,t){void 0===t&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var i={},n=e.getIndex(),o=e.getAttribute("position"),s=n?n.count:o.count,a=0,u=Object.keys(e.attributes),c={},l={},h=[],d=["getX","getY","getZ","getW"],p=0,A=u.length;p<A;p++){c[v=u[p]]=[],(T=e.morphAttributes[v])&&(l[v]=new Array(T.length).fill().map((function(){return[]})))}var f=Math.log10(1/t),M=Math.pow(10,f);for(p=0;p<s;p++){var g=n?n.getX(p):p,y="",m=0;for(A=u.length;m<A;m++)for(var v=u[m],N=(w=e.getAttribute(v)).itemSize,D=0;D<N;D++)y+=~~(w[d[D]](g)*M)+",";if(y in i)h.push(i[y]);else{for(m=0,A=u.length;m<A;m++){v=u[m];var w=e.getAttribute(v),T=e.morphAttributes[v],x=(N=w.itemSize,c[v]),E=l[v];for(D=0;D<N;D++){var j=d[D];if(x.push(w[j](g)),T)for(var z=0,I=T.length;z<I;z++)E[z].push(T[z][j](g))}}i[y]=a,h.push(a),a++}}var b=e.clone();for(p=0,A=u.length;p<A;p++){v=u[p];var O=e.getAttribute(v),S=new O.array.constructor(c[v]);w=new r.BufferAttribute(S,O.itemSize,O.normalized);if(b.setAttribute(v,w),v in l)for(m=0;m<l[v].length;m++){var L=e.morphAttributes[v][m],k=(S=new L.array.constructor(l[v][m]),new r.BufferAttribute(S,L.itemSize,L.normalized));b.morphAttributes[v][m]=k}}return b.setIndex(h),b}};const ji=o.Reader,zi=o.Writer,Ii=o.util,bi=o.roots["@REALSEE/FIVE:1"]||(o.roots["@REALSEE/FIVE:1"]={}),Oi=bi.Model=(()=>{function e(e){if(this.chunks=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.chunks=Ii.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=zi.create()),null!=e.chunks&&e.chunks.length)for(let i=0;i<e.chunks.length;++i)bi.Chunk.encode(e.chunks[i],t.uint32(10).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof ji||(e=ji.create(e));let i=void 0===t?e.len:e.pos+t,n=new bi.Model;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.chunks&&n.chunks.length||(n.chunks=[]),n.chunks.push(bi.Chunk.decode(e,e.uint32()));break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof ji||(e=new ji(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.chunks&&e.hasOwnProperty("chunks")){if(!Array.isArray(e.chunks))return"chunks: array expected";for(let t=0;t<e.chunks.length;++t){let i=bi.Chunk.verify(e.chunks[t]);if(i)return"chunks."+i}}return null},e.fromObject=function(e){if(e instanceof bi.Model)return e;let t=new bi.Model;if(e.chunks){if(!Array.isArray(e.chunks))throw TypeError(".Model.chunks: array expected");t.chunks=[];for(let i=0;i<e.chunks.length;++i){if("object"!=typeof e.chunks[i])throw TypeError(".Model.chunks: object expected");t.chunks[i]=bi.Chunk.fromObject(e.chunks[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.chunks=[]),e.chunks&&e.chunks.length){i.chunks=[];for(let n=0;n<e.chunks.length;++n)i.chunks[n]=bi.Chunk.toObject(e.chunks[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})();bi.Chunk=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.vertices=null,e.prototype.faces=null,e.prototype.name="",e.prototype.texture="",e.create=function(t){return new e(t)},e.encode=function(e,t){return t||(t=zi.create()),bi.Vertices.encode(e.vertices,t.uint32(10).fork()).ldelim(),bi.Faces.encode(e.faces,t.uint32(18).fork()).ldelim(),t.uint32(26).string(e.name),null!=e.texture&&Object.hasOwnProperty.call(e,"texture")&&t.uint32(34).string(e.texture),t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof ji||(e=ji.create(e));let i=void 0===t?e.len:e.pos+t,n=new bi.Chunk;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.vertices=bi.Vertices.decode(e,e.uint32());break;case 2:n.faces=bi.Faces.decode(e,e.uint32());break;case 3:n.name=e.string();break;case 4:n.texture=e.string();break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("vertices"))throw Ii.ProtocolError("missing required 'vertices'",{instance:n});if(!n.hasOwnProperty("faces"))throw Ii.ProtocolError("missing required 'faces'",{instance:n});if(!n.hasOwnProperty("name"))throw Ii.ProtocolError("missing required 'name'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof ji||(e=new ji(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";{let t=bi.Vertices.verify(e.vertices);if(t)return"vertices."+t}{let t=bi.Faces.verify(e.faces);if(t)return"faces."+t}return Ii.isString(e.name)?null!=e.texture&&e.hasOwnProperty("texture")&&!Ii.isString(e.texture)?"texture: string expected":null:"name: string expected"},e.fromObject=function(e){if(e instanceof bi.Chunk)return e;let t=new bi.Chunk;if(null!=e.vertices){if("object"!=typeof e.vertices)throw TypeError(".Chunk.vertices: object expected");t.vertices=bi.Vertices.fromObject(e.vertices)}if(null!=e.faces){if("object"!=typeof e.faces)throw TypeError(".Chunk.faces: object expected");t.faces=bi.Faces.fromObject(e.faces)}return null!=e.name&&(t.name=String(e.name)),null!=e.texture&&(t.texture=String(e.texture)),t},e.toObject=function(e,t){t||(t={});let i={};return t.defaults&&(i.vertices=null,i.faces=null,i.name="",i.texture=""),null!=e.vertices&&e.hasOwnProperty("vertices")&&(i.vertices=bi.Vertices.toObject(e.vertices,t)),null!=e.faces&&e.hasOwnProperty("faces")&&(i.faces=bi.Faces.toObject(e.faces,t)),null!=e.name&&e.hasOwnProperty("name")&&(i.name=e.name),null!=e.texture&&e.hasOwnProperty("texture")&&(i.texture=e.texture),i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),bi.Vertices=(()=>{function e(e){if(this.xyz=[],this.uvs=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.xyz=Ii.emptyArray,e.prototype.uvs=Ii.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=zi.create()),null!=e.xyz&&e.xyz.length){t.uint32(10).fork();for(let i=0;i<e.xyz.length;++i)t.float(e.xyz[i]);t.ldelim()}if(null!=e.uvs&&e.uvs.length){t.uint32(18).fork();for(let i=0;i<e.uvs.length;++i)t.float(e.uvs[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof ji||(e=ji.create(e));let i=void 0===t?e.len:e.pos+t,n=new bi.Vertices;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.xyz&&n.xyz.length||(n.xyz=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.xyz.push(e.float())}else n.xyz.push(e.float());break;case 2:if(n.uvs&&n.uvs.length||(n.uvs=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.uvs.push(e.float())}else n.uvs.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof ji||(e=new ji(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.xyz&&e.hasOwnProperty("xyz")){if(!Array.isArray(e.xyz))return"xyz: array expected";for(let t=0;t<e.xyz.length;++t)if("number"!=typeof e.xyz[t])return"xyz: number[] expected"}if(null!=e.uvs&&e.hasOwnProperty("uvs")){if(!Array.isArray(e.uvs))return"uvs: array expected";for(let t=0;t<e.uvs.length;++t)if("number"!=typeof e.uvs[t])return"uvs: number[] expected"}return null},e.fromObject=function(e){if(e instanceof bi.Vertices)return e;let t=new bi.Vertices;if(e.xyz){if(!Array.isArray(e.xyz))throw TypeError(".Vertices.xyz: array expected");t.xyz=[];for(let i=0;i<e.xyz.length;++i)t.xyz[i]=Number(e.xyz[i])}if(e.uvs){if(!Array.isArray(e.uvs))throw TypeError(".Vertices.uvs: array expected");t.uvs=[];for(let i=0;i<e.uvs.length;++i)t.uvs[i]=Number(e.uvs[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.xyz=[],i.uvs=[]),e.xyz&&e.xyz.length){i.xyz=[];for(let n=0;n<e.xyz.length;++n)i.xyz[n]=t.json&&!isFinite(e.xyz[n])?String(e.xyz[n]):e.xyz[n]}if(e.uvs&&e.uvs.length){i.uvs=[];for(let n=0;n<e.uvs.length;++n)i.uvs[n]=t.json&&!isFinite(e.uvs[n])?String(e.uvs[n]):e.uvs[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),bi.Faces=(()=>{function e(e){if(this.indices=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.indices=Ii.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=zi.create()),null!=e.indices&&e.indices.length){t.uint32(10).fork();for(let i=0;i<e.indices.length;++i)t.uint32(e.indices[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof ji||(e=ji.create(e));let i=void 0===t?e.len:e.pos+t,n=new bi.Faces;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.indices&&n.indices.length||(n.indices=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.indices.push(e.uint32())}else n.indices.push(e.uint32());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof ji||(e=new ji(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.indices&&e.hasOwnProperty("indices")){if(!Array.isArray(e.indices))return"indices: array expected";for(let t=0;t<e.indices.length;++t)if(!Ii.isInteger(e.indices[t]))return"indices: integer[] expected"}return null},e.fromObject=function(e){if(e instanceof bi.Faces)return e;let t=new bi.Faces;if(e.indices){if(!Array.isArray(e.indices))throw TypeError(".Faces.indices: array expected");t.indices=[];for(let i=0;i<e.indices.length;++i)t.indices[i]=e.indices[i]>>>0}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.indices=[]),e.indices&&e.indices.length){i.indices=[];for(let t=0;t<e.indices.length;++t)i.indices[t]=e.indices[t]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})();var Si=(new r.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1);function Li(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function ki(e){var t=e.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function Ci(e){var t=e.indices,i=e.vertices,n=e.uvs,o=new r.BufferGeometry;o.setIndex(new r.BufferAttribute(new Uint32Array(t),1)),o.setAttribute("position",new r.BufferAttribute(new Float32Array(i),3)),o.attributes.position.applyMatrix4(Si),Re(n)||o.setAttribute("uv",new r.BufferAttribute(new Float32Array(n),2));for(var s=new Float32Array(i.length),a=new r.Vector3,u=new r.Vector3,c=new r.Vector3,l=new r.Vector3,h=new r.Vector3,d=new r.Vector3,p=0,A=o.index.array.length,f=void 0,M=void 0,g=void 0;p<A;p+=3)f=3*t[p+0],M=3*t[p+1],g=3*t[p+2],a.x=i[f],a.y=i[f+1],a.z=i[f+2],u.x=i[M],u.y=i[M+1],u.z=i[M+2],c.x=i[g],c.y=i[g+1],c.z=i[g+2],l.x=c.x-u.x,l.y=c.y-u.y,l.z=c.z-u.z,h.x=a.x-u.x,h.y=a.y-u.y,h.z=a.z-u.z,d.x=l.y*h.z-l.z*h.y,d.y=l.z*h.x-l.x*h.z,d.z=l.x*h.y-l.y*h.x,s[f]+=d.x,s[f+1]+=d.y,s[f+2]+=d.z,s[M]+=d.x,s[M+1]+=d.y,s[M+2]+=d.z,s[g]+=d.x,s[g+1]+=d.y,s[g+2]+=d.z;return o.setAttribute("normal",new r.BufferAttribute(s,3)),o}function Pi(e,i,n,o){var s=t.__assign({key:"texture.pbm",basisLoaderInitialized:wi.isInitialized()},Xt(i,["format","quality","size"]));return e=i.transform?i.transform(e,s):ti(e,s),new xi({allowHosts:n,networkSubscribe:o}).load(e,{wrapS:r.ClampToEdgeWrapping,wrapT:r.ClampToEdgeWrapping,minFilter:r.LinearFilter,maxSize:new r.Vector2(1024,1024)}).then((function(e){var t=e.body;return t.needsUpdate=!0,t}))}function Bi(e){var t=new rt;return e.catch((function(){return null})).then((function(e){t.uniforms.map.value=e,t.uniforms.exposure.value=3.3})),t}function _i(e,t,i,n,o,s,a){void 0===o&&(o={});for(var u=0,c=e;u<c.length;u++){var l=c[u];l.chunkName=ki(l.name),l.floorName=Li(l.name),l.texture&&(l.texture=i[l.chunkName]=i[l.chunkName]||t+l.texture)}e.sort((function(e,t){return 1e3*e.floorName+e.chunkName-(1e3*t.floorName+t.chunkName)}));var h=[],d=[],p=Promise.resolve();return(p=(p=p.then((function(){return Ft((function(){for(var t=e.length,i=0;i<t;i++){var u=e[i],c=Li(u.name),l=h[c]=h[c]||{geometries:[],materials:[]},d=Ci({vertices:u.vertices.xyz,uvs:u.vertices.uvs,indices:u.faces.indices});if(d.name="model_geo_chunk_"+i,l.geometries.push(d),u.texture){(p=Bi(u.texture in o?o[u.texture]:o[u.texture]=Pi(u.texture,n,s,a))).name="model_mtl_chunk_"+i,l.materials.push(p)}else{var p;(p=new rt).defines.USE_MAP=!1,p.uniforms.color.value=new r.Color(16777215),p.name="model_mtl_chunk_"+i,l.materials.push(p)}}}))}))).then((function(){return Ft((function(){for(var e=0;e<h.length;e++){var t=h[e];if(t){var i=Ei.mergeBufferGeometries(t.geometries,!0);t.geometries.forEach((function(e){return e.dispose()}));var n=new qe(i,t.materials);n.floorIndex=e,n.name="model_floor_"+e,d.push(n)}}}))}))).then((function(){var e=Object.keys(o).map((function(e){return o[e].catch((function(){}))}));return Promise.all(e).then((function(){return d}))}))}function Ui(e,t){return!1!==(e=Object.assign({},e)).autoResize&&(e.size=t>96?Math.min(e.size||1/0,100):t>48?Math.min(e.size||1/0,200):t>24?Math.min(e.size||1/0,400):t>12?Math.min(e.size||1/0,800):Math.min(e.size||1/0,1024)),e}function Ri(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:\/\//i.test(e)}const Qi=o.Reader,Yi=o.Writer,Fi=o.util,Vi=o.roots["@REALSEE/FIVE:0"]||(o.roots["@REALSEE/FIVE:0"]={}),Hi=Vi.Model=(()=>{function e(e){if(this.meshes=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.meshes=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.meshes&&e.meshes.length)for(let i=0;i<e.meshes.length;++i)Vi.Mesh.encode(e.meshes[i],t.uint32(10).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Model;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.meshes&&n.meshes.length||(n.meshes=[]),n.meshes.push(Vi.Mesh.decode(e,e.uint32()));break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.meshes&&e.hasOwnProperty("meshes")){if(!Array.isArray(e.meshes))return"meshes: array expected";for(let t=0;t<e.meshes.length;++t){let i=Vi.Mesh.verify(e.meshes[t]);if(i)return"meshes."+i}}return null},e.fromObject=function(e){if(e instanceof Vi.Model)return e;let t=new Vi.Model;if(e.meshes){if(!Array.isArray(e.meshes))throw TypeError(".Model.meshes: array expected");t.meshes=[];for(let i=0;i<e.meshes.length;++i){if("object"!=typeof e.meshes[i])throw TypeError(".Model.meshes: object expected");t.meshes[i]=Vi.Mesh.fromObject(e.meshes[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.meshes=[]),e.meshes&&e.meshes.length){i.meshes=[];for(let n=0;n<e.meshes.length;++n)i.meshes[n]=Vi.Mesh.toObject(e.meshes[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})();Vi.Mesh=(()=>{function e(e){if(this.chunks=[],this.matrix=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.name="",e.prototype.chunks=Fi.emptyArray,e.prototype.matrix=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),t.uint32(10).string(e.name),null!=e.chunks&&e.chunks.length)for(let i=0;i<e.chunks.length;++i)Vi.Chunk.encode(e.chunks[i],t.uint32(18).fork()).ldelim();if(null!=e.matrix&&e.matrix.length)for(let i=0;i<e.matrix.length;++i)Vi.Matrix.encode(e.matrix[i],t.uint32(26).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Mesh;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.name=e.string();break;case 2:n.chunks&&n.chunks.length||(n.chunks=[]),n.chunks.push(Vi.Chunk.decode(e,e.uint32()));break;case 3:n.matrix&&n.matrix.length||(n.matrix=[]),n.matrix.push(Vi.Matrix.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("name"))throw Fi.ProtocolError("missing required 'name'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!Fi.isString(e.name))return"name: string expected";if(null!=e.chunks&&e.hasOwnProperty("chunks")){if(!Array.isArray(e.chunks))return"chunks: array expected";for(let t=0;t<e.chunks.length;++t){let i=Vi.Chunk.verify(e.chunks[t]);if(i)return"chunks."+i}}if(null!=e.matrix&&e.hasOwnProperty("matrix")){if(!Array.isArray(e.matrix))return"matrix: array expected";for(let t=0;t<e.matrix.length;++t){let i=Vi.Matrix.verify(e.matrix[t]);if(i)return"matrix."+i}}return null},e.fromObject=function(e){if(e instanceof Vi.Mesh)return e;let t=new Vi.Mesh;if(null!=e.name&&(t.name=String(e.name)),e.chunks){if(!Array.isArray(e.chunks))throw TypeError(".Mesh.chunks: array expected");t.chunks=[];for(let i=0;i<e.chunks.length;++i){if("object"!=typeof e.chunks[i])throw TypeError(".Mesh.chunks: object expected");t.chunks[i]=Vi.Chunk.fromObject(e.chunks[i])}}if(e.matrix){if(!Array.isArray(e.matrix))throw TypeError(".Mesh.matrix: array expected");t.matrix=[];for(let i=0;i<e.matrix.length;++i){if("object"!=typeof e.matrix[i])throw TypeError(".Mesh.matrix: object expected");t.matrix[i]=Vi.Matrix.fromObject(e.matrix[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.chunks=[],i.matrix=[]),t.defaults&&(i.name=""),null!=e.name&&e.hasOwnProperty("name")&&(i.name=e.name),e.chunks&&e.chunks.length){i.chunks=[];for(let n=0;n<e.chunks.length;++n)i.chunks[n]=Vi.Chunk.toObject(e.chunks[n],t)}if(e.matrix&&e.matrix.length){i.matrix=[];for(let n=0;n<e.matrix.length;++n)i.matrix[n]=Vi.Matrix.toObject(e.matrix[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Matrix=(()=>{function e(e){if(this.elements=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.elements=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.elements&&e.elements.length)for(let i=0;i<e.elements.length;++i)t.uint32(13).float(e.elements[i]);return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Matrix;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.elements&&n.elements.length||(n.elements=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.elements.push(e.float())}else n.elements.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.elements&&e.hasOwnProperty("elements")){if(!Array.isArray(e.elements))return"elements: array expected";for(let t=0;t<e.elements.length;++t)if("number"!=typeof e.elements[t])return"elements: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.Matrix)return e;let t=new Vi.Matrix;if(e.elements){if(!Array.isArray(e.elements))throw TypeError(".Matrix.elements: array expected");t.elements=[];for(let i=0;i<e.elements.length;++i)t.elements[i]=Number(e.elements[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.elements=[]),e.elements&&e.elements.length){i.elements=[];for(let n=0;n<e.elements.length;++n)i.elements[n]=t.json&&!isFinite(e.elements[n])?String(e.elements[n]):e.elements[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Chunk=(()=>{function e(e){if(this.material=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.geometry=null,e.prototype.material=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),Vi.Geometry.encode(e.geometry,t.uint32(18).fork()).ldelim(),null!=e.material&&e.material.length)for(let i=0;i<e.material.length;++i)Vi.Material.encode(e.material[i],t.uint32(26).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Chunk;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 2:n.geometry=Vi.Geometry.decode(e,e.uint32());break;case 3:n.material&&n.material.length||(n.material=[]),n.material.push(Vi.Material.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("geometry"))throw Fi.ProtocolError("missing required 'geometry'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";{let t=Vi.Geometry.verify(e.geometry);if(t)return"geometry."+t}if(null!=e.material&&e.hasOwnProperty("material")){if(!Array.isArray(e.material))return"material: array expected";for(let t=0;t<e.material.length;++t){let i=Vi.Material.verify(e.material[t]);if(i)return"material."+i}}return null},e.fromObject=function(e){if(e instanceof Vi.Chunk)return e;let t=new Vi.Chunk;if(null!=e.geometry){if("object"!=typeof e.geometry)throw TypeError(".Chunk.geometry: object expected");t.geometry=Vi.Geometry.fromObject(e.geometry)}if(e.material){if(!Array.isArray(e.material))throw TypeError(".Chunk.material: array expected");t.material=[];for(let i=0;i<e.material.length;++i){if("object"!=typeof e.material[i])throw TypeError(".Chunk.material: object expected");t.material[i]=Vi.Material.fromObject(e.material[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.material=[]),t.defaults&&(i.geometry=null),null!=e.geometry&&e.hasOwnProperty("geometry")&&(i.geometry=Vi.Geometry.toObject(e.geometry,t)),e.material&&e.material.length){i.material=[];for(let n=0;n<e.material.length;++n)i.material[n]=Vi.Material.toObject(e.material[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Geometry=(()=>{function e(e){if(this.groups=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.position=null,e.prototype.uv=null,e.prototype.uv2=null,e.prototype.normal=null,e.prototype.groups=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),Vi.Position.encode(e.position,t.uint32(10).fork()).ldelim(),null!=e.uv&&Object.hasOwnProperty.call(e,"uv")&&Vi.UV.encode(e.uv,t.uint32(18).fork()).ldelim(),null!=e.uv2&&Object.hasOwnProperty.call(e,"uv2")&&Vi.UV.encode(e.uv2,t.uint32(26).fork()).ldelim(),Vi.Normal.encode(e.normal,t.uint32(34).fork()).ldelim(),null!=e.groups&&e.groups.length)for(let i=0;i<e.groups.length;++i)Vi.Group.encode(e.groups[i],t.uint32(42).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Geometry;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.position=Vi.Position.decode(e,e.uint32());break;case 2:n.uv=Vi.UV.decode(e,e.uint32());break;case 3:n.uv2=Vi.UV.decode(e,e.uint32());break;case 4:n.normal=Vi.Normal.decode(e,e.uint32());break;case 5:n.groups&&n.groups.length||(n.groups=[]),n.groups.push(Vi.Group.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("position"))throw Fi.ProtocolError("missing required 'position'",{instance:n});if(!n.hasOwnProperty("normal"))throw Fi.ProtocolError("missing required 'normal'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";{let t=Vi.Position.verify(e.position);if(t)return"position."+t}if(null!=e.uv&&e.hasOwnProperty("uv")){let t=Vi.UV.verify(e.uv);if(t)return"uv."+t}if(null!=e.uv2&&e.hasOwnProperty("uv2")){let t=Vi.UV.verify(e.uv2);if(t)return"uv2."+t}{let t=Vi.Normal.verify(e.normal);if(t)return"normal."+t}if(null!=e.groups&&e.hasOwnProperty("groups")){if(!Array.isArray(e.groups))return"groups: array expected";for(let t=0;t<e.groups.length;++t){let i=Vi.Group.verify(e.groups[t]);if(i)return"groups."+i}}return null},e.fromObject=function(e){if(e instanceof Vi.Geometry)return e;let t=new Vi.Geometry;if(null!=e.position){if("object"!=typeof e.position)throw TypeError(".Geometry.position: object expected");t.position=Vi.Position.fromObject(e.position)}if(null!=e.uv){if("object"!=typeof e.uv)throw TypeError(".Geometry.uv: object expected");t.uv=Vi.UV.fromObject(e.uv)}if(null!=e.uv2){if("object"!=typeof e.uv2)throw TypeError(".Geometry.uv2: object expected");t.uv2=Vi.UV.fromObject(e.uv2)}if(null!=e.normal){if("object"!=typeof e.normal)throw TypeError(".Geometry.normal: object expected");t.normal=Vi.Normal.fromObject(e.normal)}if(e.groups){if(!Array.isArray(e.groups))throw TypeError(".Geometry.groups: array expected");t.groups=[];for(let i=0;i<e.groups.length;++i){if("object"!=typeof e.groups[i])throw TypeError(".Geometry.groups: object expected");t.groups[i]=Vi.Group.fromObject(e.groups[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.groups=[]),t.defaults&&(i.position=null,i.uv=null,i.uv2=null,i.normal=null),null!=e.position&&e.hasOwnProperty("position")&&(i.position=Vi.Position.toObject(e.position,t)),null!=e.uv&&e.hasOwnProperty("uv")&&(i.uv=Vi.UV.toObject(e.uv,t)),null!=e.uv2&&e.hasOwnProperty("uv2")&&(i.uv2=Vi.UV.toObject(e.uv2,t)),null!=e.normal&&e.hasOwnProperty("normal")&&(i.normal=Vi.Normal.toObject(e.normal,t)),e.groups&&e.groups.length){i.groups=[];for(let n=0;n<e.groups.length;++n)i.groups[n]=Vi.Group.toObject(e.groups[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Position=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.array&&e.array.length){t.uint32(10).fork();for(let i=0;i<e.array.length;++i)t.float(e.array[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Position;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.array&&e.hasOwnProperty("array")){if(!Array.isArray(e.array))return"array: array expected";for(let t=0;t<e.array.length;++t)if("number"!=typeof e.array[t])return"array: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.Position)return e;let t=new Vi.Position;if(e.array){if(!Array.isArray(e.array))throw TypeError(".Position.array: array expected");t.array=[];for(let i=0;i<e.array.length;++i)t.array[i]=Number(e.array[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.array=[]),e.array&&e.array.length){i.array=[];for(let n=0;n<e.array.length;++n)i.array[n]=t.json&&!isFinite(e.array[n])?String(e.array[n]):e.array[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.UV=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.array&&e.array.length){t.uint32(10).fork();for(let i=0;i<e.array.length;++i)t.float(e.array[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.UV;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.array&&e.hasOwnProperty("array")){if(!Array.isArray(e.array))return"array: array expected";for(let t=0;t<e.array.length;++t)if("number"!=typeof e.array[t])return"array: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.UV)return e;let t=new Vi.UV;if(e.array){if(!Array.isArray(e.array))throw TypeError(".UV.array: array expected");t.array=[];for(let i=0;i<e.array.length;++i)t.array[i]=Number(e.array[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.array=[]),e.array&&e.array.length){i.array=[];for(let n=0;n<e.array.length;++n)i.array[n]=t.json&&!isFinite(e.array[n])?String(e.array[n]):e.array[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Normal=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.array&&e.array.length){t.uint32(10).fork();for(let i=0;i<e.array.length;++i)t.float(e.array[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Normal;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.array&&e.hasOwnProperty("array")){if(!Array.isArray(e.array))return"array: array expected";for(let t=0;t<e.array.length;++t)if("number"!=typeof e.array[t])return"array: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.Normal)return e;let t=new Vi.Normal;if(e.array){if(!Array.isArray(e.array))throw TypeError(".Normal.array: array expected");t.array=[];for(let i=0;i<e.array.length;++i)t.array[i]=Number(e.array[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.array=[]),e.array&&e.array.length){i.array=[];for(let n=0;n<e.array.length;++n)i.array[n]=t.json&&!isFinite(e.array[n])?String(e.array[n]):e.array[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Group=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.start=0,e.prototype.count=0,e.prototype.materialIndex=0,e.create=function(t){return new e(t)},e.encode=function(e,t){return t||(t=Yi.create()),t.uint32(8).uint32(e.start),t.uint32(16).uint32(e.count),t.uint32(24).uint32(e.materialIndex),t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Group;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.start=e.uint32();break;case 2:n.count=e.uint32();break;case 3:n.materialIndex=e.uint32();break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("start"))throw Fi.ProtocolError("missing required 'start'",{instance:n});if(!n.hasOwnProperty("count"))throw Fi.ProtocolError("missing required 'count'",{instance:n});if(!n.hasOwnProperty("materialIndex"))throw Fi.ProtocolError("missing required 'materialIndex'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":Fi.isInteger(e.start)?Fi.isInteger(e.count)?Fi.isInteger(e.materialIndex)?null:"materialIndex: integer expected":"count: integer expected":"start: integer expected"},e.fromObject=function(e){if(e instanceof Vi.Group)return e;let t=new Vi.Group;return null!=e.start&&(t.start=e.start>>>0),null!=e.count&&(t.count=e.count>>>0),null!=e.materialIndex&&(t.materialIndex=e.materialIndex>>>0),t},e.toObject=function(e,t){t||(t={});let i={};return t.defaults&&(i.start=0,i.count=0,i.materialIndex=0),null!=e.start&&e.hasOwnProperty("start")&&(i.start=e.start),null!=e.count&&e.hasOwnProperty("count")&&(i.count=e.count),null!=e.materialIndex&&e.hasOwnProperty("materialIndex")&&(i.materialIndex=e.materialIndex),i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Material=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.kd=null,e.prototype.ks=null,e.prototype.ke=null,e.prototype.mapkd="",e.prototype.mapks="",e.prototype.mapke="",e.prototype.norm="",e.prototype.mapbump="",e.prototype.bump="",e.prototype.mapd="",e.prototype.ns=0,e.prototype.d=0,e.prototype.tr=0,e.prototype.mapkdrepeat="",e.create=function(t){return new e(t)},e.encode=function(e,t){return t||(t=Yi.create()),null!=e.kd&&Object.hasOwnProperty.call(e,"kd")&&Vi.Color.encode(e.kd,t.uint32(10).fork()).ldelim(),null!=e.ks&&Object.hasOwnProperty.call(e,"ks")&&Vi.Color.encode(e.ks,t.uint32(18).fork()).ldelim(),null!=e.ke&&Object.hasOwnProperty.call(e,"ke")&&Vi.Color.encode(e.ke,t.uint32(26).fork()).ldelim(),null!=e.mapkd&&Object.hasOwnProperty.call(e,"mapkd")&&t.uint32(34).string(e.mapkd),null!=e.mapks&&Object.hasOwnProperty.call(e,"mapks")&&t.uint32(42).string(e.mapks),null!=e.mapke&&Object.hasOwnProperty.call(e,"mapke")&&t.uint32(50).string(e.mapke),null!=e.norm&&Object.hasOwnProperty.call(e,"norm")&&t.uint32(58).string(e.norm),null!=e.mapbump&&Object.hasOwnProperty.call(e,"mapbump")&&t.uint32(66).string(e.mapbump),null!=e.bump&&Object.hasOwnProperty.call(e,"bump")&&t.uint32(74).string(e.bump),null!=e.mapd&&Object.hasOwnProperty.call(e,"mapd")&&t.uint32(82).string(e.mapd),null!=e.ns&&Object.hasOwnProperty.call(e,"ns")&&t.uint32(93).float(e.ns),null!=e.d&&Object.hasOwnProperty.call(e,"d")&&t.uint32(101).float(e.d),null!=e.tr&&Object.hasOwnProperty.call(e,"tr")&&t.uint32(109).float(e.tr),null!=e.mapkdrepeat&&Object.hasOwnProperty.call(e,"mapkdrepeat")&&t.uint32(114).string(e.mapkdrepeat),t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Material;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.kd=Vi.Color.decode(e,e.uint32());break;case 2:n.ks=Vi.Color.decode(e,e.uint32());break;case 3:n.ke=Vi.Color.decode(e,e.uint32());break;case 4:n.mapkd=e.string();break;case 5:n.mapks=e.string();break;case 6:n.mapke=e.string();break;case 7:n.norm=e.string();break;case 8:n.mapbump=e.string();break;case 9:n.bump=e.string();break;case 10:n.mapd=e.string();break;case 11:n.ns=e.float();break;case 12:n.d=e.float();break;case 13:n.tr=e.float();break;case 14:n.mapkdrepeat=e.string();break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.kd&&e.hasOwnProperty("kd")){let t=Vi.Color.verify(e.kd);if(t)return"kd."+t}if(null!=e.ks&&e.hasOwnProperty("ks")){let t=Vi.Color.verify(e.ks);if(t)return"ks."+t}if(null!=e.ke&&e.hasOwnProperty("ke")){let t=Vi.Color.verify(e.ke);if(t)return"ke."+t}return null!=e.mapkd&&e.hasOwnProperty("mapkd")&&!Fi.isString(e.mapkd)?"mapkd: string expected":null!=e.mapks&&e.hasOwnProperty("mapks")&&!Fi.isString(e.mapks)?"mapks: string expected":null!=e.mapke&&e.hasOwnProperty("mapke")&&!Fi.isString(e.mapke)?"mapke: string expected":null!=e.norm&&e.hasOwnProperty("norm")&&!Fi.isString(e.norm)?"norm: string expected":null!=e.mapbump&&e.hasOwnProperty("mapbump")&&!Fi.isString(e.mapbump)?"mapbump: string expected":null!=e.bump&&e.hasOwnProperty("bump")&&!Fi.isString(e.bump)?"bump: string expected":null!=e.mapd&&e.hasOwnProperty("mapd")&&!Fi.isString(e.mapd)?"mapd: string expected":null!=e.ns&&e.hasOwnProperty("ns")&&"number"!=typeof e.ns?"ns: number expected":null!=e.d&&e.hasOwnProperty("d")&&"number"!=typeof e.d?"d: number expected":null!=e.tr&&e.hasOwnProperty("tr")&&"number"!=typeof e.tr?"tr: number expected":null!=e.mapkdrepeat&&e.hasOwnProperty("mapkdrepeat")&&!Fi.isString(e.mapkdrepeat)?"mapkdrepeat: string expected":null},e.fromObject=function(e){if(e instanceof Vi.Material)return e;let t=new Vi.Material;if(null!=e.kd){if("object"!=typeof e.kd)throw TypeError(".Material.kd: object expected");t.kd=Vi.Color.fromObject(e.kd)}if(null!=e.ks){if("object"!=typeof e.ks)throw TypeError(".Material.ks: object expected");t.ks=Vi.Color.fromObject(e.ks)}if(null!=e.ke){if("object"!=typeof e.ke)throw TypeError(".Material.ke: object expected");t.ke=Vi.Color.fromObject(e.ke)}return null!=e.mapkd&&(t.mapkd=String(e.mapkd)),null!=e.mapks&&(t.mapks=String(e.mapks)),null!=e.mapke&&(t.mapke=String(e.mapke)),null!=e.norm&&(t.norm=String(e.norm)),null!=e.mapbump&&(t.mapbump=String(e.mapbump)),null!=e.bump&&(t.bump=String(e.bump)),null!=e.mapd&&(t.mapd=String(e.mapd)),null!=e.ns&&(t.ns=Number(e.ns)),null!=e.d&&(t.d=Number(e.d)),null!=e.tr&&(t.tr=Number(e.tr)),null!=e.mapkdrepeat&&(t.mapkdrepeat=String(e.mapkdrepeat)),t},e.toObject=function(e,t){t||(t={});let i={};return t.defaults&&(i.kd=null,i.ks=null,i.ke=null,i.mapkd="",i.mapks="",i.mapke="",i.norm="",i.mapbump="",i.bump="",i.mapd="",i.ns=0,i.d=0,i.tr=0,i.mapkdrepeat=""),null!=e.kd&&e.hasOwnProperty("kd")&&(i.kd=Vi.Color.toObject(e.kd,t)),null!=e.ks&&e.hasOwnProperty("ks")&&(i.ks=Vi.Color.toObject(e.ks,t)),null!=e.ke&&e.hasOwnProperty("ke")&&(i.ke=Vi.Color.toObject(e.ke,t)),null!=e.mapkd&&e.hasOwnProperty("mapkd")&&(i.mapkd=e.mapkd),null!=e.mapks&&e.hasOwnProperty("mapks")&&(i.mapks=e.mapks),null!=e.mapke&&e.hasOwnProperty("mapke")&&(i.mapke=e.mapke),null!=e.norm&&e.hasOwnProperty("norm")&&(i.norm=e.norm),null!=e.mapbump&&e.hasOwnProperty("mapbump")&&(i.mapbump=e.mapbump),null!=e.bump&&e.hasOwnProperty("bump")&&(i.bump=e.bump),null!=e.mapd&&e.hasOwnProperty("mapd")&&(i.mapd=e.mapd),null!=e.ns&&e.hasOwnProperty("ns")&&(i.ns=t.json&&!isFinite(e.ns)?String(e.ns):e.ns),null!=e.d&&e.hasOwnProperty("d")&&(i.d=t.json&&!isFinite(e.d)?String(e.d):e.d),null!=e.tr&&e.hasOwnProperty("tr")&&(i.tr=t.json&&!isFinite(e.tr)?String(e.tr):e.tr),null!=e.mapkdrepeat&&e.hasOwnProperty("mapkdrepeat")&&(i.mapkdrepeat=e.mapkdrepeat),i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Color=(()=>{function e(e){if(this.rgb=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.rgb=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.rgb&&e.rgb.length)for(let i=0;i<e.rgb.length;++i)t.uint32(13).float(e.rgb[i]);return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Color;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.rgb&&n.rgb.length||(n.rgb=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.rgb.push(e.float())}else n.rgb.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.rgb&&e.hasOwnProperty("rgb")){if(!Array.isArray(e.rgb))return"rgb: array expected";for(let t=0;t<e.rgb.length;++t)if("number"!=typeof e.rgb[t])return"rgb: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.Color)return e;let t=new Vi.Color;if(e.rgb){if(!Array.isArray(e.rgb))throw TypeError(".Color.rgb: array expected");t.rgb=[];for(let i=0;i<e.rgb.length;++i)t.rgb[i]=Number(e.rgb[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.rgb=[]),e.rgb&&e.rgb.length){i.rgb=[];for(let n=0;n<e.rgb.length;++n)i.rgb[n]=t.json&&!isFinite(e.rgb[n])?String(e.rgb[n]):e.rgb[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})();var Gi={};function Wi(e,i,n,o,s){var a,u=[],c=[];function l(e,a,u){var l=function(e){var t=e.position,i=e.normal,n=e.uv,o=e.uv2,s=e.groups,a=new r.BufferGeometry;return a.setAttribute("position",new r.BufferAttribute(new Float32Array(t.array),3)),i&&a.setAttribute("normal",new r.BufferAttribute(new Float32Array(i.array),3)),n&&a.setAttribute("uv",new r.BufferAttribute(new Float32Array(n.array),2)),o&&a.setAttribute("uv2",new r.BufferAttribute(new Float32Array(o.array),2)),s.forEach((function(e){return a.addGroup(e.start,e.count,e.materialIndex)})),a}(e);l.applyMatrix4(u);var h=new r.Vector3,d=new r.Quaternion,p=new r.Vector3;u.decompose(h,d,p),p.x*p.y*p.z<0&&l.attributes.normal&&l.attributes.position&&l.attributes.uv&&function(e){for(var t=[0,0,0],i=0;i<e.attributes.normal.array.length/9;i++)t[0]=e.attributes.normal.array[9*i],t[1]=e.attributes.normal.array[9*i+1],t[2]=e.attributes.normal.array[9*i+2],e.attributes.normal.array[9*i]=e.attributes.normal.array[9*i+6],e.attributes.normal.array[9*i+1]=e.attributes.normal.array[9*i+7],e.attributes.normal.array[9*i+2]=e.attributes.normal.array[9*i+8],e.attributes.normal.array[9*i+6]=t[0],e.attributes.normal.array[9*i+7]=t[1],e.attributes.normal.array[9*i+8]=t[2];for(i=0;i<e.attributes.position.array.length/9;i++)t[0]=e.attributes.position.array[9*i],t[1]=e.attributes.position.array[9*i+1],t[2]=e.attributes.position.array[9*i+2],e.attributes.position.array[9*i]=e.attributes.position.array[9*i+6],e.attributes.position.array[9*i+1]=e.attributes.position.array[9*i+7],e.attributes.position.array[9*i+2]=e.attributes.position.array[9*i+8],e.attributes.position.array[9*i+6]=t[0],e.attributes.position.array[9*i+7]=t[1],e.attributes.position.array[9*i+8]=t[2];for(i=0;i<e.attributes.uv.array.length/6;i++)t[0]=e.attributes.uv.array[6*i],t[1]=e.attributes.uv.array[6*i+1],e.attributes.uv.array[6*i]=e.attributes.uv.array[6*i+4],e.attributes.uv.array[6*i+1]=e.attributes.uv.array[6*i+5],e.attributes.uv.array[6*i+4]=t[0],e.attributes.uv.array[6*i+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}(l);var A=a.map((function(e){var a=function(e,i,n,o,s){function a(e,a){if(Gi[e])return Promise.resolve(Gi[e]);var u=new xi({allowHosts:o,networkSubscribe:s});Ri(e)||(e=i+e),-1!==(e=(e=e.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/")).split("?")[0]).indexOf(".png")&&(e=e.split(".png")[0]+".png"),-1!==e.indexOf(".jpg")&&(e=e.split(".jpg")[0]+".jpg"),0===e.indexOf("//")&&(e="https:"+e);var c=t.__assign({key:"texture.dome",size:64,basisLoaderInitialized:wi.isInitialized()},Xt(n,["quality","format"]));return e=n.transform?n.transform(e,c):ti(e,c),u.load(e,{wrapS:r.RepeatWrapping,wrapT:r.RepeatWrapping}).then((function(t){var i=t.body;return a&&i.repeat.copy(a),i.needsUpdate=!0,i.updateMatrix(),Gi[e]=i,i}))}var u=[],c=new rt,l=c.uniforms;l.exposure.value=4.3;var h,d=c.defines;if(d.USE_MAP=!1,d.USE_UV=!1,e.hasOwnProperty("kd")&&(l.diffuse.value=(new r.Color).fromArray(e.kd.rgb)),e.hasOwnProperty("mapkd")){var p=void 0;if(e.mapkdrepeat){var A=e.mapkdrepeat.split(/\s+/).map((function(e){return Number(e)})),f=A[0],M=A[1];p=new r.Vector2(f,M)}u.push(a(e.mapkd,p).then((function(e){d.USE_MAP=!0,d.USE_UV=!0,l.map.value=e,l.uvTransform.value=e.matrix})).catch((function(e){})))}return e.hasOwnProperty("ks")&&(l.specular.value=(new r.Color).fromArray(e.ks.rgb)),e.hasOwnProperty("mapks")&&u.push(a(e.mapks).then((function(e){l.specularMap.value=e})).catch((function(e){}))),e.hasOwnProperty("ke")&&(l.emissive.value=(new r.Color).fromArray(e.ke.rgb)),e.hasOwnProperty("mapke")&&u.push(a(e.mapke).then((function(e){l.emissiveMap.value=e})).catch((function(e){}))),e.hasOwnProperty("norm")&&u.push(a(e.norm).then((function(e){l.normalMap.value=e})).catch((function(e){}))),e.hasOwnProperty("mapbump")&&u.push(a(e.mapbump).then((function(e){l.bumpMap.value=e})).catch((function(e){}))),e.hasOwnProperty("bump")&&u.push(a(e.bump).then((function(e){l.bumpMap.value=e})).catch((function(e){}))),e.hasOwnProperty("ns")&&(l.shininess.value=e.ns),e.hasOwnProperty("d")&&(h=e.d)>=0&&h<1&&(c.originOpacity=h,c.opacity=h),e.hasOwnProperty("tr")&&(h=1-e.tr)>=0&&h<1&&(c.originOpacity=h,c.opacity=h),{material:c,textureReady:Promise.all(u).then((function(){}))}}(e,i,n,o,s),u=a.material,l=a.textureReady;return c.push(l),u}));return new qe(l,A)}return(a=e,Hi.decode(a).meshes).forEach((function(e){var t=e.name,i=e.chunks,n=e.matrix;"Ceiling"!==t&&"CeilingDrop"!==t&&n.map((function(e){var n,o=new r.Matrix4;if(o.elements=e.elements,1===i.length){var s=i[0],a=s.geometry,c=s.material;n=l(a,c,o)}else(n=new Ze).renderOrder=-2,i.forEach((function(e,t){var i=l(e.geometry,e.material,o);i.name="chunk"+t,n.add(i)}));n.floorIndex=0,n.name=t,u.push(n)}))})),Promise.all(c).catch((function(){})).then((function(){return u}))}function qi(){Object.keys(Gi).forEach((function(e){Gi[e].dispose(),delete Gi[e]}))}function Ki(e){var i;return new((i=r.Triangle).bind.apply(i,t.__spreadArray([void 0],e.map((function(e){return new r.Vector3(e.x,e.y,e.z)})),!1)))}var Zi={at3d:function(e,t){for(var i=Ui(t.textureOptions,e.textures.length),n={},r=0,o=e.textures;r<o.length;r++){var s=o[r];n[s]=Pi(s,i,t.allowHosts,t.networkSubscribe)}return Promise.resolve().then((function(){return Ct(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe})})).then((function(e){return Zt(e.body)})).then((function(e){return Ft((function(){for(var t=[],i=0,n=e;i<n.length;i++){var r=n[i];try{var o=Oi.decode(r);t.push.apply(t,o.chunks)}catch(e){console.error(e)}}return t}))})).then((function(r){return Ft((function(){return _i(r,e.textureBase,e.textures.slice(),i,n,t.allowHosts,t.networkSubscribe)}))}))},pbm:function(e,t){for(var i=Ui(t.textureOptions,e.textures.length),n={},r=0,o=e.textures;r<o.length;r++){var s=o[r];n[s]=Pi(s,i,t.allowHosts,t.networkSubscribe)}return Promise.resolve().then((function(){return Ct(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe})})).then((function(e){return Ft((function(){var t=new Uint8Array(e.body),i=Oi.decode(t);return[].concat(i.chunks)}))})).then((function(r){return Ft((function(){return _i(r,e.textureBase,e.textures.slice(),i,n,t.allowHosts,t.networkSubscribe)}))}))},dome:function(e,t){return Promise.resolve().then((function(){return qi()})).then((function(){return Ct(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe})})).then((function(i){return Wi(new Uint8Array(i.body),e.textureBase,t.textureOptions,t.allowHosts,t.networkSubscribe)}))},domez:function(e,t){return Promise.resolve().then((function(){return qi()})).then((function(){return Ct(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe})})).then((function(e){return Zt(e.body)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),i=new Uint8Array(t),n=0;return e.forEach((function(e){i.set(e,n),n+=e.length})),i})).then((function(i){return Wi(i,e.textureBase,t.textureOptions,t.allowHosts,t.networkSubscribe)}))}},Xi=function(e){function i(t){void 0===t&&(t={});var i=e.call(this)||this;return i.empty=!1,i.name="model",i.loaded=!1,i.bvhs=Object.assign([],{loaded:!1}),i.bounding=new r.Box3,i.shownFloor=null,i.floorLength=0,i.networkSubscribe=t.networkSubscribe,i.allowHosts=t.allowHosts,i.renderOrder=-2,i}return t.__extends(i,e),Object.defineProperty(i.prototype,"shownfloor",{get:function(){return this.shownFloor},enumerable:!1,configurable:!0}),i.prototype.getEdges=function(e){var t;void 0===e&&(e=30/180*Math.PI);for(var i=Math.cos(e),n=[],o=0,s=this.children;o<s.length;o++){var a=s[o];if(a instanceof qe){for(var u={},c=["a","b","c"],l=Ei.mergeVertices(a.geometry),h=l.getAttribute("position").array,d=(null===(t=l.getIndex())||void 0===t?void 0:t.array)||[],p=[],A=[],f=0,M=h.length;f<M;f+=3)p.push(new r.Vector3(h[f],h[f+1],h[f+2]));for(f=0,M=d.length;f<M;f+=3){var g=d[f],y=d[f+1],m=d[f+2],v=(new r.Vector3).crossVectors(p[y].clone().sub(p[g]),p[m].clone().sub(p[g])).normalize();A.push({a:g,b:y,c:m,normal:v})}for(f=0,M=A.length;f<M;f++)for(var N=A[f],D=0;D<3;D++){var w=N[c[D]],T=N[c[(D+1)%3]],x=[Math.min(w,T),Math.max(w,T)];void 0===u[E=x[0]+"-"+x[1]]?u[E]={index1:x[0],index2:x[1],face1:f}:u[E].face2=f}for(var E in u){var j=u[E];if(void 0===j.face2||A[j.face1].normal.dot(A[j.face2].normal)<=i){var z=p[j.index1],I=p[j.index2];n.push(new r.Line3(z,I))}}l.dispose(),p.length=0,A.length=0}}return n},i.prototype.hasFloors=function(){return this.hasFloors_()},i.prototype.hasFloors_=function(){var e=[];return this.traverse((function(t){t instanceof qe&&(e[t.floorIndex]=!0)})),e.length},i.prototype.show=function(){for(var e,t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];var n=this.shownFloor,r=null,o=1,s=null!==(e=t[1])&&void 0!==e?e:.1,a=0!==t.length;this.shownFloor=r=a?t[0]:null,this.traverse((function(e){e instanceof qe&&e.material.forEach((function(t){null===r||r===e.floorIndex?t.opacity=t.originOpacity*o:t.opacity=t.originOpacity*s}))})),n!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0},i.prototype.intersectRaycaster=function(e,t){var i=e.ray,n=i.origin,o=i.direction;if(Re(t))if(Re(this.shownFloor)){var s=this.floorLength;t=[];for(var a=0;a<s;a++)t.push(a)}else t=[this.shownFloor];var u=[],c=[];Array.isArray(t)?c.push.apply(c,t):c.push(t);for(var l=function(t){var i=h.bvhs&&h.bvhs[t];if(i){var s=new dt(n.x,n.y,n.z),a=new dt(o.x,o.y,o.z);(c=i.intersectRay(s,a,!0).map((function(e){var t=e.intersectionPoint,i=e.triangle,o=new r.Vector3(t.x,t.y,t.z);return{point:o,face:{normal:Ki(i).getNormal(new r.Vector3)},distance:n.distanceTo(o)}}))).length&&u.push.apply(u,c)}else{var c,l=[];h.traverse((function(e){e instanceof qe&&e.floorIndex===t&&l.push(e)})),(c=e.intersectObjects(l).map((function(e){var t=e.face?{normal:e.face.normal}:void 0;return{point:e.point,face:t,distance:e.distance}}))).length&&u.push.apply(u,c)}},h=this,d=0,p=c;d<p.length;d++){l(p[d])}return u.filter((function(t){var i=t.distance;return i<=e.far&&i>=e.near})).sort((function(e,t){return e.distance-t.distance}))},i.prototype.buildBVH=function(){var e,t=[];this.traverse((function(e){e instanceof qe&&(t[e.floorIndex]=t[e.floorIndex]||[],t[e.floorIndex].push(e.geometry))}));var i=t.map((function(e){var t=e.reduce((function(e,t){return e+(t.index?t.index.array.length:t.attributes.position.array.length)}),0),i=new Float32Array(3*t);return e.reduce((function(e,t){for(var n=t.index?t.index.array:null,r=t.attributes.position.array,o=n?n.length:r.length/3,s=0;s<o;s++){var a=3*(e+s),u=n?3*n[s]:3*s;i[a+0]=r[u+0],i[a+1]=r[u+1],i[a+2]=r[u+2]}return e+o}),0),new Mt(i,10)}));this.bvhs.length=0,(e=this.bvhs).push.apply(e,i),this.bvhs.loaded=!0,this.emit("bvhLoaded")},i.prototype.load=function(e,t){var i=this;if(void 0===t&&(t={}),!0===this.loaded)throw new Error("[MODEL LOAD ERROR]: model cannot load twice.");var n=function(e,t){void 0===t&&(t=[]);var i=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(e);if(!i)return"";for(var n=0,r=String(i[1]).trim().split(".").slice(1).reverse();n<r.length;n++){var o=r[n],s=t.indexOf(o);if(s>=0)return t[s]}return""}(e.file,Object.keys(Zi)),o=Zi[n];if(!o)throw new Error("[MODEL LOAD ERROR]: file type("+n+") does not support.");return o(e,{textureOptions:t,allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe}).then((function(e){for(var t=[],n=0,o=e;n<o.length;n++){(c=o[n]).traverse((function(e){e instanceof qe&&(e.geometry.computeBoundingBox(),e.geometry.computeBoundingSphere(),t.push(e.geometry.boundingBox))})),i.add(c)}i.floorLength=i.hasFloors_(),i.bounding=function(e){for(var t=new r.Box3,i=0,n=e;i<n.length;i++){var o=n[i];t.union(o)}return t}(t);for(var s=i.bounding.getCenter(new r.Vector3),a=0,u=e;a<u.length;a++){var c;(c=u[a]).traverse((function(e){e instanceof qe&&e.material.forEach((function(e){e.uniforms.modelCenter.value=s}))}))}t.length=0,i.emit("geometryLoaded"),i.emit("materialLoaded"),i.loaded=!0,We.shared.add((function(){return i.emit("loaded")}),!0)})).catch((function(e){return i.emit("error",e),Promise.reject(e)}))},i.prototype.dispose=function(){for(this.off(),this.disposeGeometry(),this.disposeMaterial();this.children.length;)this.remove(this.children[0]);this.bvhs.length=0,this.bvhs.loaded=!1},i}(Ke);function Ji(e){switch(e.getError()){case e.INVALID_ENUM:return new Error("webgl error: INVALID_ENUM");case e.INVALID_VALUE:return new Error("webgl error: INVALID_VALUE");case e.INVALID_OPERATION:return new Error("webgl error: INVALID_OPERATION");case e.INVALID_FRAMEBUFFER_OPERATION:return new Error("webgl error: INVALID_FRAMEBUFFER_OPERATION");case e.OUT_OF_MEMORY:return new Error("webgl error: OUT_OF_MEMORY");case e.CONTEXT_LOST_WEBGL:return new Error("webgl error: CONTEXT_LOST_WEBGL");default:return null}}Object.assign(Xi.prototype,{on:vt.prototype.on,once:vt.prototype.once,off:vt.prototype.off,emit:vt.prototype.emit,hasListener:vt.prototype.hasListener});var $i=2*Math.PI;function en(e){return(e%$i+$i)%$i}var tn=Math.PI,nn=2*tn;function rn(e,t,i){if(e===t)return t;var n=t-e;return Math.abs(n)<=i?t:e+(n>0?1:-1)*i}var on=function(){function e(){this.name="",this.workCode="",this.expire=new Date,this.allowHosts=[],this.initial={mode:"Panorama",latitude:0,longitude:0,panoIndex:0,fov:80},this.observers=[],this.issuer="none",this.raw={work:null,option:{}}}return e.prototype.toJSON=function(){return this.raw.work},e}();function sn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=[];e=e.map((function(e){return e.trim()})).filter((function(e){return e.length>0&&!/^\/+$/.test(e)}));for(var n=0;n<e.length;n++){var r=0===n,o=n===e.length-1,s=e[n];r||(s=s.replace(/^\/+/,"")),o||(s=s.replace(/\/+$/,"")),i.push(s)}return i.join("/")}function an(e){return e instanceof Error}function un(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var i,n,r;if(Array.isArray(e)){if((i=e.length)!=t.length)return!1;for(n=i;0!=n--;)if(!un(e[n],t[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((i=(r=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(n=i;0!=n--;)if(!Object.prototype.hasOwnProperty.call(t,r[n]))return!1;for(n=i;0!=n--;){var o=r[n];if(!un(e[o],t[o]))return!1}return!0}return e!=e&&t!=t}function cn(e){return"number"==typeof e}function ln(e){return 0==(e&e-1)&&0!==e}function hn(e,t){void 0===t&&(t=!1);var i=typeof e;if("string"===i)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var n="[",r=e.length-1,o=0;o<r;o++)n+=hn(e[o],!1)+",";return r>-1&&(n+=hn(e[o],!1)),n+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return hn(e.toJSON(),t);var s=Object.keys(e).sort(),a=s.length;for(n="",o=0;o<a;){var u=s[o],c=hn(e[u],!0);void 0!==c&&(o&&""!==n&&(n+=","),n+=JSON.stringify(u)+":"+c),o++}return"{"+n+"}"}switch(i){case"function":case"undefined":return t?void 0:null;case"number":return 0;default:return isFinite(e)?e:null}}function dn(e){return String(hn(e,!1))}function pn(e){var t,i,n,r=JSON.parse(e),o="undefined"!=typeof location?location.hostname:"",s=Date.now();if("object"!=typeof r)return new Error("input is not an object");if(0===o.length||wt(o)||Et.filter((function(e){return Tt(e,o)})).length>0){var a=String(null!==(t=r.certificate)&&void 0!==t?t:"");if(a){var u=new ze;return u.readCertPEM(a),{issuer:u.getSubjectString()}}return{issuer:"none"}}var c=String(null!==(i=r.certificate)&&void 0!==i?i:"");if(!c)return new Error("certificate is not existed.");var l=new ze;l.readCertPEM(c);var h=String(null!==(n=r._signature)&&void 0!==n?n:"");if(!h)return new Error("signature is not existed.");if(!1===function(e,t,i){var n=new ze;if("string"==typeof i?n.readCertPEM(i):n.readCertHex(i.hex),!1===Le(n))return!1;var r=new K;return r.readCertPubKeyHex(n.hex,6),!!r.verify(e,C(t))}(dn(function(e,t){for(var i={},n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];-1===t.indexOf(o)&&(i[o]=e[o])}return i}(r,["_signature"])),h,l))return new Error("signature verify failed.");var d=new Date("string"==typeof r.expire_at&&/^\d+$/.test(r.expire_at)?Number(r.expire_at):r.expire_at);return s<d.getTime()?0===(Array.isArray(r.allow_hosts)?r.allow_hosts:[]).filter((function(e){return Tt(e,o)})).length?function(e){return new Error("host("+JSON.stringify(e)+") is not allowed.")}(o):{issuer:l.getSubjectString()}:function(e){return new Error("date("+e.toString()+") expired.")}(d)}var An=new WeakMap;function fn(e,t,i){var n,o=JSON.stringify(t),s=JSON.stringify(e),a=pn(s);e=JSON.parse(s),t=JSON.parse(o);var u=new on;u.issuer=a instanceof Error?"none":a.issuer,u.raw={work:e,options:t};var c=null!==(n=e.base_url)&&void 0!==n?n:"";c&&"/"!==c[c.length-1]&&(c+="/");var l=function(e,n){var r,o=e;!0===t.jsonp&&(o=(o=e.replace(/([\?\#].*)?$/i,""))+"."+Ie(""+o).slice(0,7)+".jsonp");if(!0===t.shortPath){var s=o.replace(c,"").split("."),a=null!==(r=s.shift())&&void 0!==r?r:"",u=s.join(".");o=sn(c,Ie(a))+(u?"."+u:"")}var l=o.replace(c,"");return t.baseURL&&(o=sn(t.baseURL,l)),i&&i(e,o,l,n),o},h=function(t,i){var n,r,o,s,a,u,h=t;if(!Ri(t)){var d=null!==(u=null!==(s=null!==(r=null===(n=e.panorama)||void 0===n?void 0:n.pano_high_cube_base_url)&&void 0!==r?r:null===(o=e.panorama)||void 0===o?void 0:o.pano_cube_base_url)&&void 0!==s?s:null===(a=e.panorama)||void 0===a?void 0:a.base_url)&&void 0!==u?u:"";d&&(d=sn(d,String(i))),h=sn(d,h)}return Ri(h)||(h=sn(c,h)),l(h,"panorama")},d=function(e){var t=e;return Ri(t)||(t=sn(c,e)),l(t,"model")},p=function(e,t){void 0===t&&(t="");var i=e;return Ri(i)||(i=sn(t,i)),Ri(i)||(i=sn(c,i)),l(i,"texture")};if(u.workCode=String(e.work_code||e.code||e.vr_code||e.workCode),u.name=String(e.name),u.expire=new Date("string"==typeof e.expire_at&&/^\d+$/.test(e.expire_at)?Number(e.expire_at):e.expire_at),u.allowHosts=e.allow_hosts||[],an(a))return a;if(e.initial&&("Floorplan"!==e.initial.mode&&"Topview"!==e.initial.mode&&"Panorama"!==e.initial.mode&&"VRPanorama"!==e.initial.mode&&"Model"!==e.initial.mode&&"DepthPanorama"!==e.initial.mode||(u.initial.mode=e.initial.mode),cn(e.initial.latitude)&&(u.initial.latitude=e.initial.latitude),cn(e.initial.longitude)?u.initial.longitude=e.initial.longitude:cn(e.initial.heading)&&(u.initial.longitude=-(360*(e.initial.heading-.25)+90)/180*Math.PI),cn(e.initial.fov)&&(u.initial.fov=e.initial.fov),cn(e.initial.panoIndex)?u.initial.panoIndex=e.initial.panoIndex:cn(e.initial.pano_index)?u.initial.panoIndex=e.initial.pano_index:cn(e.initial.pano)&&(u.initial.panoIndex=e.initial.pano)),an(a))return a;if(e.model){var A={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof t.modelBvh?A.bvh=t.modelBvh:"boolean"==typeof e.model.bvh?A.bvh=e.model.bvh:"boolean"==typeof e.bvh&&(A.bvh=e.bvh),t.modelAsync,A.async=t.modelAsync,e.model.file?A.file=d(e.model.file):e.model.file_url&&(A.file=d(e.model.file_url)),e.model.textureBase?A.textureBase=e.model.textureBase:e.model.material_base_url&&(A.textureBase=e.model.material_base_url),Array.isArray(e.model.textures)?A.textures=e.model.textures.map((function(e){return p(e,A.textureBase)})):Array.isArray(e.model.material_textures)&&(A.textures=e.model.material_textures.map((function(e){return p(e,A.textureBase)}))),A.file&&(u.model=A)}if(an(a))return a;if(e.observers&&Array.isArray(e.observers)){var f=[];e.panorama&&(Array.isArray(e.panorama)?f=e.panorama:Array.isArray(e.panorama.list)?f=e.panorama.list:Array.isArray(e.panorama.info)&&(f=e.panorama.info));for(var M=0;M<e.observers.length;M++){var g={},y=e.observers[M];if(!y)break;var m=f[M]||{};y=Object.assign({},y,m,{active:!1!==y.active&&!1!==m.active}),g.panoIndex=M,g.active=!1!==y.active,g.loadable=!0===y.loadable,g.images={up:h(y.images?y.images.up:y.up,M),down:h(y.images?y.images.down:y.down,M),right:h(y.images?y.images.right:y.right,M),left:h(y.images?y.images.left:y.left,M),front:h(y.images?y.images.front:y.front,M),back:h(y.images?y.images.back:y.back,M)};var v=y.images?y.images.depth:y.depth;v&&(g.images.depth=h(v,M));var N=y.images?y.images.luminance:y.luminance;N&&(g.images.luminance={up:h(N.up,M),down:h(N.down,M),right:h(N.right,M),left:h(N.left,M),front:h(N.front,M),back:h(N.back,M)});var D=y.images?y.images.tiles:y.tiles;if(D){for(var w=[],T=function(e){var t=e.match(/\/cube_(\d+)\//);if(t){var i=Number(t[1]);if(ln(i))return i}return!1},x=function(e,t){return e.replace(/\/cube_(\d+)\//,(function(){return"/cube_"+t+"/"}))},E=0,j=D;E<j.length;E++){var z=j[E];if("number"==typeof z){var I=z,b=T(g.images.front);if(!1===b)continue;if((B=Math.max(b,512*Math.pow(2,I)))>2048){var O=x(g.images.up,B),S=x(g.images.down,B),L=x(g.images.right,B),k=x(g.images.left,B),C=x(g.images.front,B),P=x(g.images.back,B);w.push({level:I,size:B,up:O,down:S,right:L,left:k,front:C,back:P})}else{O=g.images.up,S=g.images.down,L=g.images.right,k=g.images.left,C=g.images.front,P=g.images.back;w.push({level:I,size:B,up:O,down:S,right:L,left:k,front:C,back:P})}}else{var B;if("number"!=typeof(I=z.level))continue;if("number"!=typeof(B=z.size))continue;O=h(z.up,M),S=h(z.down,M),L=h(z.right,M),k=h(z.left,M),C=h(z.front,M),P=h(z.back,M);w.push({level:I,size:B,up:O,down:S,right:L,left:k,front:C,back:P})}}w.sort((function(e,t){return e.level-t.level})),g.images.tiles=w}if(y.position instanceof r.Vector3)g.position=y.position.clone();else{if(!Array.isArray(y.position))break;g.position=(new r.Vector3).fromArray(y.position)}if(y.standingPosition instanceof r.Vector3)g.standingPosition=y.standingPosition.clone();else if(Array.isArray(y.standingPosition))g.standingPosition=(new r.Vector3).fromArray(y.standingPosition);else if(y.standing_position instanceof r.Vector3)g.standingPosition=y.standing_position.clone();else{if(!Array.isArray(y.standing_position))break;g.standingPosition=(new r.Vector3).fromArray(y.standing_position)}if(y.quaternion instanceof r.Quaternion)g.quaternion=y.quaternion.clone();else if(Array.isArray(y.quaternion))g.quaternion=(new r.Quaternion).fromArray(y.quaternion);else{if(!y.quaternion)break;var _=y.quaternion,U=_.x,R=_.y,Q=_.z,Y=_.w;g.quaternion=new r.Quaternion(U,R,Q,Y)}if(Array.isArray(y.accessibleNodes)?g.accessibleNodes=y.accessibleNodes.slice():Array.isArray(y.accessible_nodes)&&(g.accessibleNodes=y.accessible_nodes.slice()),Array.isArray(y.visibleNodes)?g.visibleNodes=y.visibleNodes.slice():Array.isArray(y.visible_nodes)&&(g.visibleNodes=y.visible_nodes.slice()),cn(y.floorIndex)?g.floorIndex=y.floorIndex:cn(y.floor_index)?g.floorIndex=y.floor_index:g.floorIndex=0,y.video){var F={};"string"==typeof y.video.source&&(F.source=y.video.source),y.video.matrix instanceof r.Matrix4?F.matrix=y.video.matrix.clone():Array.isArray(y.video.matrix)&&(F.matrix=(new r.Matrix4).fromArray(y.video.matrix)),y.video.size instanceof r.Vector2?F.size=y.video.size.clone():Array.isArray(y.video.size)&&(F.size=(new r.Vector2).fromArray(y.video.size)),F.source&&F.matrix&&F.size&&(g.video=F)}u.observers[M]=g}}if(an(a))return a;for(var V=0,H=u.observers;V<H.length;V++){if(!(g=H[V]).accessibleNodes){g.accessibleNodes=[];for(var G=0;G<u.observers.length;G++)u.observers[G]!==g&&g.accessibleNodes.push(G)}if(!g.visibleNodes){g.visibleNodes=[];for(G=0;G<u.observers.length;G++)u.observers[G]!==g&&g.visibleNodes.push(G)}}if(an(a))return a;var W=Nt(u);return An.set(W,{work:s,options:o}),W}function Mn(e,t,i){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var n=An.get(e);if(n){if(t&&!un(JSON.parse(n.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return e}var r=fn(e,null!=t?t:{},i);if(an(r))throw new Error("[PARSE FAILED]: "+r.message);return r}function gn(e,t,i){var n=Math.abs(e-t);return n<.001||void 0!==i&&Math.abs(i-n)<.001}function yn(e,t,i){return!gn(e,t,i)}function mn(e,t){return e.distanceTo(t)<.001}function vn(e,t){return!mn(e,t)}function Nn(e,t){e.mode=t.mode,e.panoIndex=t.panoIndex,e.longitude=t.longitude,e.latitude=t.latitude,e.fov=t.fov,e.offset.copy(t.offset)}function Dn(e,t){return e.panoIndex===t.panoIndex&&e.mode===t.mode&&gn(e.longitude,t.longitude,2*Math.PI)&&gn(e.latitude,t.latitude)&&gn(e.fov,t.fov)&&mn(e.offset,t.offset)}var wn=function(e){return Number(e)};function Tn(e,t,i){var n;void 0===t&&(t=wn),void 0===i&&(i=!1);for(var r,o=1/0,s=0,a=e;s<a.length;s++){var u=a[s],c=t(u);c<=o&&(r=(n=[u,c])[0],o=n[1])}return i?[r,o]:r}function xn(e,t,i){return Math.max(t,Math.min(i,e))}function En(e){for(var t in e)return!1;return!0}function jn(e){return{longitude:e.longitude,latitude:e.latitude,fov:e.fov,offset:e.offset.clone()}}
367
+ function(e,t){for(var i=e.toByteArray(),n=0;n<i.length&&0==i[n];)++n;if(i.length-n!=t-1||2!=i[n])return null;for(++n;0!=i[n];)if(++n>=i.length)return null;for(var r="";++n<i.length;){var o=255&i[n];o<128?r+=String.fromCharCode(o):o>191&&o<224?(r+=String.fromCharCode((31&o)<<6|63&i[n+1]),++n):(r+=String.fromCharCode((15&o)<<12|(63&i[n+1])<<6|63&i[n+2]),n+=2)}return r}(i,this.n.bitLength()+7>>3)},K.prototype.decryptOAEP=function(e,t,i){if(e.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var n=W(e,16),r=this.doPrivate(n);return null==r?null:function(e,t,i,n){var r=u.crypto.MessageDigest,o=u.crypto.Util,s=null;for(i||(i="sha1"),"string"==typeof i&&(s=r.getCanonicalAlgName(i),n=r.getHashLength(s),i=function(e){return re(o.hashHex(oe(e),s))}),e=e.toByteArray(),a=0;a<e.length;a+=1)e[a]&=255;for(;e.length<t;)e.unshift(0);if((e=String.fromCharCode.apply(String,e)).length<2*n+2)throw"Cipher too short";var a,c=e.substr(1,n),l=e.substr(n+1),h=Z(l,n,i),d=[];for(a=0;a<c.length;a+=1)d[a]=c.charCodeAt(a)^h.charCodeAt(a);var p=Z(String.fromCharCode.apply(String,d),e.length-n,i),A=[];for(a=0;a<l.length;a+=1)A[a]=l.charCodeAt(a)^p.charCodeAt(a);if((A=String.fromCharCode.apply(String,A)).substr(0,n)!==i(""))throw"Hash mismatch";var f=(A=A.substr(n)).indexOf("");if((-1!=f?A.substr(0,f).lastIndexOf("\0"):-1)+1!=f)throw"Malformed data";return A.substr(f+1)}(r,this.n.bitLength()+7>>3,t,i)},void 0!==u.lang&&u.lang||(u.lang={}),u.lang.String=function(){},u.lang.String.isInteger=function(e){return!!e.match(/^[0-9]+$/)||!!e.match(/^-[0-9]+$/)},u.lang.String.isHex=function(e){return he(e)},u.lang.String.isBase64=function(e){return!(!(e=e.replace(/\s+/g,"")).match(/^[0-9A-Za-z+\/]+={0,3}$/)||e.length%4!=0)},u.lang.String.isBase64URL=function(e){return!e.match(/[+/=]/)&&(e=$(e),u.lang.String.isBase64(e))},u.lang.String.isIntegerArray=function(e){return!!(e=e.replace(/\s+/g,"")).match(/^\[[0-9,]+\]$/)},u.lang.String.isPrintable=function(e){return null!==e.match(/^[0-9A-Za-z '()+,-./:=?]*$/)},u.lang.String.isIA5=function(e){return null!==e.match(/^[\x20-\x21\x23-\x7f]*$/)},u.lang.String.isMail=function(e){return null!==e.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var pe=function(e,t,i){return null==i&&(i="0"),e.length>=t?e:new Array(t-e.length+1).join(i)+e};function Ae(e,t){var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e,e.superclass=t.prototype,t.prototype.constructor==Object.prototype.constructor&&(t.prototype.constructor=t)}void 0!==u.crypto&&u.crypto||(u.crypto={}),u.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:l.algo.MD5,sha1:l.algo.SHA1,sha224:l.algo.SHA224,sha256:l.algo.SHA256,sha384:l.algo.SHA384,sha512:l.algo.SHA512,ripemd160:l.algo.RIPEMD160},this.getDigestInfoHex=function(e,t){if(void 0===this.DIGESTINFOHEAD[t])throw"alg not supported in Util.DIGESTINFOHEAD: "+t;return this.DIGESTINFOHEAD[t]+e},this.getPaddedDigestInfoHex=function(e,t,i){var n=this.getDigestInfoHex(e,t),r=i/4;if(n.length+22>r)throw"key is too short for SigAlg: keylen="+i+","+t;for(var o="0001",s="00"+n,a="",u=r-o.length-s.length,c=0;c<u;c+=2)a+="ff";return o+a+s},this.hashString=function(e,t){return new u.crypto.MessageDigest({alg:t}).digestString(e)},this.hashHex=function(e,t){return new u.crypto.MessageDigest({alg:t}).digestHex(e)},this.sha1=function(e){return this.hashString(e,"sha1")},this.sha256=function(e){return this.hashString(e,"sha256")},this.sha256Hex=function(e){return this.hashHex(e,"sha256")},this.sha512=function(e){return this.hashString(e,"sha512")},this.sha512Hex=function(e){return this.hashHex(e,"sha512")},this.isKey=function(e){return e instanceof K||e instanceof u.crypto.DSA||e instanceof u.crypto.ECDSA}},u.crypto.Util.md5=function(e){return new u.crypto.MessageDigest({alg:"md5",prov:"cryptojs"}).digestString(e)},u.crypto.Util.ripemd160=function(e){return new u.crypto.MessageDigest({alg:"ripemd160",prov:"cryptojs"}).digestString(e)},u.crypto.Util.SECURERANDOMGEN=new G,u.crypto.Util.getRandomHexOfNbytes=function(e){var t=new Array(e);return u.crypto.Util.SECURERANDOMGEN.nextBytes(t),X(t)},u.crypto.Util.getRandomBigIntegerOfNbytes=function(e){return new h(u.crypto.Util.getRandomHexOfNbytes(e),16)},u.crypto.Util.getRandomHexOfNbits=function(e){var t=e%8,i=new Array((e-t)/8+1);return u.crypto.Util.SECURERANDOMGEN.nextBytes(i),i[0]=(255<<t&255^255)&i[0],X(i)},u.crypto.Util.getRandomBigIntegerOfNbits=function(e){return new h(u.crypto.Util.getRandomHexOfNbits(e),16)},u.crypto.Util.getRandomBigIntegerZeroToMax=function(e){for(var t=e.bitLength();;){var i=u.crypto.Util.getRandomBigIntegerOfNbits(t);if(-1!=e.compareTo(i))return i}},u.crypto.Util.getRandomBigIntegerMinToMax=function(e,t){var i=e.compareTo(t);if(1==i)throw"biMin is greater than biMax";if(0==i)return e;var n=t.subtract(e);return u.crypto.Util.getRandomBigIntegerZeroToMax(n).add(e)},u.crypto.MessageDigest=function(e){this.setAlgAndProvider=function(e,t){if(null!==(e=u.crypto.MessageDigest.getCanonicalAlgName(e))&&void 0===t&&(t=u.crypto.Util.DEFAULTPROVIDER[e]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(e)&&"cryptojs"==t){try{this.md=u.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[e].create()}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=l.enc.Hex.parse(e);this.md.update(t)},this.digest=function(){return this.md.finalize().toString(l.enc.Hex)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}if(-1!=":sha256:".indexOf(e)&&"sjcl"==t){try{this.md=new sjcl.hash.sha256}catch(t){throw"setAlgAndProvider hash alg set fail alg="+e+"/"+t}this.updateString=function(e){this.md.update(e)},this.updateHex=function(e){var t=sjcl.codec.hex.toBits(e);this.md.update(t)},this.digest=function(){var e=this.md.finalize();return sjcl.codec.hex.fromBits(e)},this.digestString=function(e){return this.updateString(e),this.digest()},this.digestHex=function(e){return this.updateHex(e),this.digest()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digest=function(){throw"digest() not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==e&&void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=u.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},u.crypto.MessageDigest.getCanonicalAlgName=function(e){return"string"==typeof e&&(e=(e=e.toLowerCase()).replace(/-/,"")),e},u.crypto.MessageDigest.getHashLength=function(e){var t=u.crypto.MessageDigest,i=t.getCanonicalAlgName(e);if(void 0===t.HASHLENGTH[i])throw"not supported algorithm: "+e;return t.HASHLENGTH[i]},u.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},u.crypto.Mac=function(e){this.setAlgAndProvider=function(e,t){if(null==(e=e.toLowerCase())&&(e="hmacsha1"),"hmac"!=(e=e.toLowerCase()).substr(0,4))throw"setAlgAndProvider unsupported HMAC alg: "+e;void 0===t&&(t=u.crypto.Util.DEFAULTPROVIDER[e]),this.algProv=e+"/"+t;var i=e.substr(4);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(i)&&"cryptojs"==t){try{var n=u.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[i];this.mac=l.algo.HMAC.create(n,this.pass)}catch(e){throw"setAlgAndProvider hash alg set fail hashAlg="+i+"/"+e}this.updateString=function(e){this.mac.update(e)},this.updateHex=function(e){var t=l.enc.Hex.parse(e);this.mac.update(t)},this.doFinal=function(){return this.mac.finalize().toString(l.enc.Hex)},this.doFinalString=function(e){return this.updateString(e),this.doFinal()},this.doFinalHex=function(e){return this.updateHex(e),this.doFinal()}}},this.updateString=function(e){throw"updateString(str) not supported for this alg/prov: "+this.algProv},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg/prov: "+this.algProv},this.doFinal=function(){throw"digest() not supported for this alg/prov: "+this.algProv},this.doFinalString=function(e){throw"digestString(str) not supported for this alg/prov: "+this.algProv},this.doFinalHex=function(e){throw"digestHex(hex) not supported for this alg/prov: "+this.algProv},this.setPassword=function(e){if("string"==typeof e){var t=e;return e.length%2!=1&&e.match(/^[0-9A-Fa-f]+$/)||(t=oe(e)),void(this.pass=l.enc.Hex.parse(t))}if("object"!=typeof e)throw"KJUR.crypto.Mac unsupported password type: "+e;t=null;if(void 0!==e.hex){if(e.hex.length%2!=0||!e.hex.match(/^[0-9A-Fa-f]+$/))throw"Mac: wrong hex password: "+e.hex;t=e.hex}if(void 0!==e.utf8&&(t=ie(e.utf8)),void 0!==e.rstr&&(t=oe(e.rstr)),void 0!==e.b64&&(t=C(e.b64)),void 0!==e.b64u&&(t=te(e.b64u)),null==t)throw"KJUR.crypto.Mac unsupported password type: "+e;this.pass=l.enc.Hex.parse(t)},void 0!==e&&(void 0!==e.pass&&this.setPassword(e.pass),void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov&&(this.provName=u.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName)))},u.crypto.Signature=function(e){var t=null;if(this._setAlgNames=function(){var e=this.algName.match(/^(.+)with(.+)$/);e&&(this.mdAlgName=e[1].toLowerCase(),this.pubkeyAlgName=e[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(e,t){for(var i="",n=t/4-e.length,r=0;r<n;r++)i+="0";return i+e},this.setAlgAndProvider=function(e,t){if(this._setAlgNames(),"cryptojs/jsrsa"!=t)throw new Error("provider not supported: "+t);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new u.crypto.MessageDigest({alg:this.mdAlgName})}catch(e){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+e)}this.init=function(e,t){var i=null;try{i=void 0===t?we.getKey(e):we.getKey(e,t)}catch(e){throw"init failed:"+e}if(!0===i.isPrivate)this.prvKey=i,this.state="SIGN";else{if(!0!==i.isPublic)throw"init failed.:"+i;this.pubKey=i,this.state="VERIFY"}},this.updateString=function(e){this.md.updateString(e)},this.updateHex=function(e){this.md.updateHex(e)},this.sign=function(){if(this.sHashHex=this.md.digest(),void 0===this.prvKey&&void 0!==this.ecprvhex&&void 0!==this.eccurvename&&void 0!==u.crypto.ECDSA&&(this.prvKey=new u.crypto.ECDSA({curve:this.eccurvename,prv:this.ecprvhex})),this.prvKey instanceof K&&"rsaandmgf1"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHashPSS(this.sHashHex,this.mdAlgName,this.pssSaltLen);else if(this.prvKey instanceof K&&"rsa"===this.pubkeyAlgName)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex,this.mdAlgName);else if(this.prvKey instanceof u.crypto.ECDSA)this.hSign=this.prvKey.signWithMessageHash(this.sHashHex);else{if(!(this.prvKey instanceof u.crypto.DSA))throw"Signature: unsupported private key alg: "+this.pubkeyAlgName;this.hSign=this.prvKey.signWithMessageHash(this.sHashHex)}return this.hSign},this.signString=function(e){return this.updateString(e),this.sign()},this.signHex=function(e){return this.updateHex(e),this.sign()},this.verify=function(e){if(this.sHashHex=this.md.digest(),void 0===this.pubKey&&void 0!==this.ecpubhex&&void 0!==this.eccurvename&&void 0!==u.crypto.ECDSA&&(this.pubKey=new u.crypto.ECDSA({curve:this.eccurvename,pub:this.ecpubhex})),this.pubKey instanceof K&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,e,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof K&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==u.crypto.ECDSA&&this.pubKey instanceof u.crypto.ECDSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);if(void 0!==u.crypto.DSA&&this.pubKey instanceof u.crypto.DSA)return this.pubKey.verifyWithMessageHash(this.sHashHex,e);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(e,t){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(e){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(e){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.sign=function(){throw"sign() not supported for this alg:prov="+this.algProvName},this.signString=function(e){throw"digestString(str) not supported for this alg:prov="+this.algProvName},this.signHex=function(e){throw"digestHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(e){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=e,void 0!==e&&(void 0!==e.alg&&(this.algName=e.alg,void 0===e.prov?this.provName=u.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=e.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==e.psssaltlen&&(this.pssSaltLen=e.psssaltlen),void 0!==e.prvkeypem)){if(void 0!==e.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{t=we.getKey(e.prvkeypem);this.init(t)}catch(e){throw"fatal error to load pem private key: "+e}}},u.crypto.Cipher=function(e){},u.crypto.Cipher.encrypt=function(e,t,i){if(t instanceof K&&t.isPublic){var n=u.crypto.Cipher.getAlgByKeyAndName(t,i);if("RSA"===n)return t.encrypt(e);if("RSAOAEP"===n)return t.encryptOAEP(e,"sha1");var r=n.match(/^RSAOAEP(\d+)$/);if(null!==r)return t.encryptOAEP(e,"sha"+r[1]);throw"Cipher.encrypt: unsupported algorithm for RSAKey: "+i}throw"Cipher.encrypt: unsupported key or algorithm"},u.crypto.Cipher.decrypt=function(e,t,i){if(t instanceof K&&t.isPrivate){var n=u.crypto.Cipher.getAlgByKeyAndName(t,i);if("RSA"===n)return t.decrypt(e);if("RSAOAEP"===n)return t.decryptOAEP(e,"sha1");var r=n.match(/^RSAOAEP(\d+)$/);if(null!==r)return t.decryptOAEP(e,"sha"+r[1]);throw"Cipher.decrypt: unsupported algorithm for RSAKey: "+i}throw"Cipher.decrypt: unsupported key or algorithm"},u.crypto.Cipher.getAlgByKeyAndName=function(e,t){if(e instanceof K){if(-1!=":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:".indexOf(t))return t;if(null==t)return"RSA";throw"getAlgByKeyAndName: not supported algorithm name for RSAKey: "+t}throw"getAlgByKeyAndName: not supported algorithm name: "+t},u.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040023":"secp521r1","2b81040022":"secp384r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}};var fe,Me,ge,ye,me,ve,Ne,De,we=(fe=function(e,t,i){return Me(l.AES,e,t,i)},Me=function(e,t,i,n){var r=l.enc.Hex.parse(t),o=l.enc.Hex.parse(i),s=l.enc.Hex.parse(n),a={};a.key=o,a.iv=s,a.ciphertext=r;var u=e.decrypt(a,o,{iv:s});return l.enc.Hex.stringify(u)},ge=function(e,t,i){return ye(l.AES,e,t,i)},ye=function(e,t,i,n){var r=l.enc.Hex.parse(t),o=l.enc.Hex.parse(i),s=l.enc.Hex.parse(n),a=e.encrypt(r,o,{iv:s}),u=l.enc.Hex.parse(a.toString());return l.enc.Base64.stringify(u)},me={"AES-256-CBC":{proc:fe,eproc:ge,keylen:32,ivlen:16},"AES-192-CBC":{proc:fe,eproc:ge,keylen:24,ivlen:16},"AES-128-CBC":{proc:fe,eproc:ge,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:function(e,t,i){return Me(l.TripleDES,e,t,i)},eproc:function(e,t,i){return ye(l.TripleDES,e,t,i)},keylen:24,ivlen:8},"DES-CBC":{proc:function(e,t,i){return Me(l.DES,e,t,i)},eproc:function(e,t,i){return ye(l.DES,e,t,i)},keylen:8,ivlen:8}},ve=function(e){var t={},i=e.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));i&&(t.cipher=i[1],t.ivsalt=i[2]);var n=e.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));n&&(t.type=n[1]);var r=-1,o=0;-1!=e.indexOf("\r\n\r\n")&&(r=e.indexOf("\r\n\r\n"),o=2),-1!=e.indexOf("\n\n")&&(r=e.indexOf("\n\n"),o=1);var s=e.indexOf("-----END");if(-1!=r&&-1!=s){var a=e.substring(r+2*o,s-o);a=a.replace(/\s+/g,""),t.data=a}return t},Ne=function(e,t,i){for(var n=i.substring(0,16),r=l.enc.Hex.parse(n),o=l.enc.Utf8.parse(t),s=me[e].keylen+me[e].ivlen,a="",u=null;;){var c=l.algo.MD5.create();if(null!=u&&c.update(u),c.update(o),c.update(r),u=c.finalize(),(a+=l.enc.Hex.stringify(u)).length>=2*s)break}var h={};return h.keyhex=a.substr(0,2*me[e].keylen),h.ivhex=a.substr(2*me[e].keylen,2*me[e].ivlen),h},De=function(e,t,i,n){var r=l.enc.Base64.parse(e),o=l.enc.Hex.stringify(r);return(0,me[t].proc)(o,i,n)},{version:"1.0.0",parsePKCS5PEM:function(e){return ve(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(e,t,i){return Ne(e,t,i)},decryptKeyB64:function(e,t,i,n){return De(e,t,i,n)},getDecryptedKeyHex:function(e,t){var i=ve(e);i.type;var n=i.cipher,r=i.ivsalt,o=i.data,s=Ne(n,t,r).keyhex;return De(o,n,s,r)},getEncryptedPKCS5PEMFromPrvKeyHex:function(e,t,i,n,r){var o="";if(void 0!==n&&null!=n||(n="AES-256-CBC"),void 0===me[n])throw"KEYUTIL unsupported algorithm: "+n;void 0!==r&&null!=r||(r=function(e){var t=l.lib.WordArray.random(e);return l.enc.Hex.stringify(t)}(me[n].ivlen).toUpperCase());var s=function(e,t,i,n){return(0,me[t].eproc)(e,i,n)}(t,n,Ne(n,i,r).keyhex,r);return o="-----BEGIN "+e+" PRIVATE KEY-----\r\n",o+="Proc-Type: 4,ENCRYPTED\r\n",o+="DEK-Info: "+n+","+r+"\r\n",o+="\r\n",o+=s.replace(/(.{64})/g,"$1\r\n"),o+="\r\n-----END "+e+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(e){var t=Te,i=t.getChildIdx,n=t.getV,r={},o=i(e,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;r.ciphertext=n(e,o[1]);var s=i(e,o[0]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+s.length;if("2a864886f70d01050d"!=n(e,s[0]))throw"this only supports pkcs5PBES2";var a=i(e,s[1]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=i(e,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=n(e,u[0]))throw"this only supports TripleDES";r.encryptionSchemeAlg="TripleDES",r.encryptionSchemeIV=n(e,u[1]);var c=i(e,a[0]);if(2!=c.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+c.length;if("2a864886f70d01050c"!=n(e,c[0]))throw"this only supports pkcs5PBKDF2";var l=i(e,c[1]);if(l.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+l.length;r.pbkdf2Salt=n(e,l[0]);var h=n(e,l[1]);try{r.pbkdf2Iter=parseInt(h,16)}catch(e){throw"malformed format pbkdf2Iter: "+h}return r},getPBKDF2KeyHexFromParam:function(e,t){var i=l.enc.Hex.parse(e.pbkdf2Salt),n=e.pbkdf2Iter,r=l.PBKDF2(t,i,{keySize:6,iterations:n});return l.enc.Hex.stringify(r)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(e,t){var i=ue(e,"ENCRYPTED PRIVATE KEY"),n=this.parseHexOfEncryptedPKCS8(i),r=we.getPBKDF2KeyHexFromParam(n,t),o={};o.ciphertext=l.enc.Hex.parse(n.ciphertext);var s=l.enc.Hex.parse(r),a=l.enc.Hex.parse(n.encryptionSchemeIV),u=l.TripleDES.decrypt(o,s,{iv:a});return l.enc.Hex.stringify(u)},getKeyFromEncryptedPKCS8PEM:function(e,t){var i=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,t);return this.getKeyFromPlainPrivatePKCS8Hex(i)},parsePlainPrivatePKCS8Hex:function(e){var t=Te,i=t.getChildIdx,n=t.getV,r={algparam:null};if("30"!=e.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var o=i(e,0);if(o.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=e.substr(o[1],2))throw new Error("malformed PKCS8 private key(code:003)");var s=i(e,o[1]);if(2!=s.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=e.substr(s[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(r.algoid=n(e,s[0]),"06"==e.substr(s[1],2)&&(r.algparam=n(e,s[1])),"04"!=e.substr(o[2],2))throw new Error("malformed PKCS8 private key(code:006)");return r.keyidx=t.getVidx(e,o[2]),r},getKeyFromPlainPrivatePKCS8PEM:function(e){var t=ue(e,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(t)},getKeyFromPlainPrivatePKCS8Hex:function(e){var t,i=this.parsePlainPrivatePKCS8Hex(e);if("2a864886f70d010101"==i.algoid)t=new K;else if("2a8648ce380401"==i.algoid)t=new u.crypto.DSA;else{if("2a8648ce3d0201"!=i.algoid)throw"unsupported private key algorithm";t=new u.crypto.ECDSA}return t.readPKCS8PrvKeyHex(e),t},_getKeyFromPublicPKCS8Hex:function(e){var t,i=Te.getVbyList(e,0,[0,0],"06");if("2a864886f70d010101"===i)t=new K;else if("2a8648ce380401"===i)t=new u.crypto.DSA;else{if("2a8648ce3d0201"!==i)throw"unsupported PKCS#8 public key hex";t=new u.crypto.ECDSA}return t.readPKCS8PubKeyHex(e),t},parsePublicRawRSAKeyHex:function(e){var t=Te,i=t.getChildIdx,n=t.getV,r={};if("30"!=e.substr(0,2))throw"malformed RSA key(code:001)";var o=i(e,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=e.substr(o[0],2))throw"malformed RSA key(code:003)";if(r.n=n(e,o[0]),"02"!=e.substr(o[1],2))throw"malformed RSA key(code:004)";return r.e=n(e,o[1]),r},parsePublicPKCS8Hex:function(e){var t=Te,i=t.getChildIdx,n=t.getV,r={algparam:null},o=i(e,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var s=o[0];if("30"!=e.substr(s,2))throw"malformed PKCS8 public key(code:001)";var a=i(e,s);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=e.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(r.algoid=n(e,a[0]),"06"==e.substr(a[1],2)?r.algparam=n(e,a[1]):"30"==e.substr(a[1],2)&&(r.algparam={},r.algparam.p=t.getVbyList(e,a[1],[0],"02"),r.algparam.q=t.getVbyList(e,a[1],[1],"02"),r.algparam.g=t.getVbyList(e,a[1],[2],"02")),"03"!=e.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return r.key=n(e,o[1]).substr(2),r}});we.getKey=function(e,t,i){var n=(y=Te).getChildIdx;y.getV;var r=y.getVbyList,o=u.crypto,s=o.ECDSA,a=o.DSA,c=K,l=ue,d=we;if(void 0!==c&&e instanceof c)return e;if(void 0!==s&&e instanceof s)return e;if(void 0!==a&&e instanceof a)return e;if(void 0!==e.curve&&void 0!==e.xy&&void 0===e.d)return new s({pub:e.xy,curve:e.curve});if(void 0!==e.curve&&void 0!==e.d)return new s({prv:e.d,curve:e.curve});if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(I=new c).setPublic(e.n,e.e),I;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.co&&void 0===e.qi)return(I=new c).setPrivateEx(e.n,e.e,e.d,e.p,e.q,e.dp,e.dq,e.co),I;if(void 0===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0===e.p)return(I=new c).setPrivate(e.n,e.e,e.d),I;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0===e.x)return(I=new a).setPublic(e.p,e.q,e.g,e.y),I;if(void 0!==e.p&&void 0!==e.q&&void 0!==e.g&&void 0!==e.y&&void 0!==e.x)return(I=new a).setPrivate(e.p,e.q,e.g,e.y,e.x),I;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0===e.d)return(I=new c).setPublic(te(e.n),te(e.e)),I;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d&&void 0!==e.p&&void 0!==e.q&&void 0!==e.dp&&void 0!==e.dq&&void 0!==e.qi)return(I=new c).setPrivateEx(te(e.n),te(e.e),te(e.d),te(e.p),te(e.q),te(e.dp),te(e.dq),te(e.qi)),I;if("RSA"===e.kty&&void 0!==e.n&&void 0!==e.e&&void 0!==e.d)return(I=new c).setPrivate(te(e.n),te(e.e),te(e.d)),I;if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0===e.d){var p=(z=new s({curve:e.crv})).ecparams.keylen/4,A="04"+("0000000000"+te(e.x)).slice(-p)+("0000000000"+te(e.y)).slice(-p);return z.setPublicKeyHex(A),z}if("EC"===e.kty&&void 0!==e.crv&&void 0!==e.x&&void 0!==e.y&&void 0!==e.d){p=(z=new s({curve:e.crv})).ecparams.keylen/4,A="04"+("0000000000"+te(e.x)).slice(-p)+("0000000000"+te(e.y)).slice(-p);var f=("0000000000"+te(e.d)).slice(-p);return z.setPublicKeyHex(A),z.setPrivateKeyHex(f),z}if("pkcs5prv"===i){var M,g=e,y=Te;if(9===(M=n(g,0)).length)(I=new c).readPKCS5PrvKeyHex(g);else if(6===M.length)(I=new a).readPKCS5PrvKeyHex(g);else{if(!(M.length>2&&"04"===g.substr(M[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(I=new s).readPKCS5PrvKeyHex(g)}return I}if("pkcs8prv"===i)return I=d.getKeyFromPlainPrivatePKCS8Hex(e);if("pkcs8pub"===i)return d._getKeyFromPublicPKCS8Hex(e);if("x509pub"===i)return ze.getPublicKeyFromCertHex(e);if(-1!=e.indexOf("-END CERTIFICATE-",0)||-1!=e.indexOf("-END X509 CERTIFICATE-",0)||-1!=e.indexOf("-END TRUSTED CERTIFICATE-",0))return ze.getPublicKeyFromCertPEM(e);if(-1!=e.indexOf("-END PUBLIC KEY-")){var m=ue(e,"PUBLIC KEY");return d._getKeyFromPublicPKCS8Hex(m)}if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var v=l(e,"RSA PRIVATE KEY");return d.getKey(v,null,"pkcs5prv")}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){var N=r(S=l(e,"DSA PRIVATE KEY"),0,[1],"02"),D=r(S,0,[2],"02"),w=r(S,0,[3],"02"),T=r(S,0,[4],"02"),x=r(S,0,[5],"02");return(I=new a).setPrivate(new h(N,16),new h(D,16),new h(w,16),new h(T,16),new h(x,16)),I}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1==e.indexOf("4,ENCRYPTED")){v=l(e,"EC PRIVATE KEY");return d.getKey(v,null,"pkcs5prv")}if(-1!=e.indexOf("-END PRIVATE KEY-"))return d.getKeyFromPlainPrivatePKCS8PEM(e);if(-1!=e.indexOf("-END RSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var E=d.getDecryptedKeyHex(e,t),j=new K;return j.readPKCS5PrvKeyHex(E),j}if(-1!=e.indexOf("-END EC PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var z,I=r(S=d.getDecryptedKeyHex(e,t),0,[1],"04"),b=r(S,0,[2,0],"06"),O=r(S,0,[3,0],"03").substr(2);if(void 0===u.crypto.OID.oidhex2name[b])throw"undefined OID(hex) in KJUR.crypto.OID: "+b;return(z=new s({curve:u.crypto.OID.oidhex2name[b]})).setPublicKeyHex(O),z.setPrivateKeyHex(I),z.isPublic=!1,z}if(-1!=e.indexOf("-END DSA PRIVATE KEY-")&&-1!=e.indexOf("4,ENCRYPTED")){var S;N=r(S=d.getDecryptedKeyHex(e,t),0,[1],"02"),D=r(S,0,[2],"02"),w=r(S,0,[3],"02"),T=r(S,0,[4],"02"),x=r(S,0,[5],"02");return(I=new a).setPrivate(new h(N,16),new h(D,16),new h(w,16),new h(T,16),new h(x,16)),I}if(-1!=e.indexOf("-END ENCRYPTED PRIVATE KEY-"))return d.getKeyFromEncryptedPKCS8PEM(e,t);throw new Error("not supported argument")},we.generateKeypair=function(e,t){if("RSA"==e){var i=t;(s=new K).generate(i,"10001"),s.isPrivate=!0,s.isPublic=!0;var n=new K,r=s.n.toString(16),o=s.e.toString(16);return n.setPublic(r,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if("EC"==e){var s,a,c=t,l=new u.crypto.ECDSA({curve:c}).generateKeyPairHex();return(s=new u.crypto.ECDSA({curve:c})).setPublicKeyHex(l.ecpubhex),s.setPrivateKeyHex(l.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new u.crypto.ECDSA({curve:c})).setPublicKeyHex(l.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw"unknown algorithm: "+e},we.getPEM=function(e,t,i,n,r,o){var s=u,a=s.asn1,c=a.DERObjectIdentifier,h=a.DERInteger,d=a.ASN1Util.newObject,p=a.x509.SubjectPublicKeyInfo,A=s.crypto,f=A.DSA,M=A.ECDSA,g=K;function y(e){return d({seq:[{int:0},{int:{bigint:e.n}},{int:e.e},{int:{bigint:e.d}},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.dmp1}},{int:{bigint:e.dmq1}},{int:{bigint:e.coeff}}]})}function m(e){return d({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a0",!0,{oid:{name:e.curveName}}]},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]})}function v(e){return d({seq:[{int:0},{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}},{int:{bigint:e.y}},{int:{bigint:e.x}}]})}if((void 0!==g&&e instanceof g||void 0!==f&&e instanceof f||void 0!==M&&e instanceof M)&&1==e.isPublic&&(void 0===t||"PKCS8PUB"==t))return ae(T=new p(e).getEncodedHex(),"PUBLIC KEY");if("PKCS1PRV"==t&&void 0!==g&&e instanceof g&&(void 0===i||null==i)&&1==e.isPrivate)return ae(T=y(e).getEncodedHex(),"RSA PRIVATE KEY");if("PKCS1PRV"==t&&void 0!==M&&e instanceof M&&(void 0===i||null==i)&&1==e.isPrivate){var N=new c({name:e.curveName}).getEncodedHex(),D=m(e).getEncodedHex(),w="";return w+=ae(N,"EC PARAMETERS"),w+=ae(D,"EC PRIVATE KEY")}if("PKCS1PRV"==t&&void 0!==f&&e instanceof f&&(void 0===i||null==i)&&1==e.isPrivate)return ae(T=v(e).getEncodedHex(),"DSA PRIVATE KEY");if("PKCS5PRV"==t&&void 0!==g&&e instanceof g&&void 0!==i&&null!=i&&1==e.isPrivate){var T=y(e).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("RSA",T,i,n,o)}if("PKCS5PRV"==t&&void 0!==M&&e instanceof M&&void 0!==i&&null!=i&&1==e.isPrivate){T=m(e).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("EC",T,i,n,o)}if("PKCS5PRV"==t&&void 0!==f&&e instanceof f&&void 0!==i&&null!=i&&1==e.isPrivate){T=v(e).getEncodedHex();return void 0===n&&(n="DES-EDE3-CBC"),this.getEncryptedPKCS5PEMFromPrvKeyHex("DSA",T,i,n,o)}var x=function(e,t){var i=E(e,t);return new d({seq:[{seq:[{oid:{name:"pkcs5PBES2"}},{seq:[{seq:[{oid:{name:"pkcs5PBKDF2"}},{seq:[{octstr:{hex:i.pbkdf2Salt}},{int:i.pbkdf2Iter}]}]},{seq:[{oid:{name:"des-EDE3-CBC"}},{octstr:{hex:i.encryptionSchemeIV}}]}]}]},{octstr:{hex:i.ciphertext}}]}).getEncodedHex()},E=function(e,t){var i=l.lib.WordArray.random(8),n=l.lib.WordArray.random(8),r=l.PBKDF2(t,i,{keySize:6,iterations:100}),o=l.enc.Hex.parse(e),s=l.TripleDES.encrypt(o,r,{iv:n})+"",a={};return a.ciphertext=s,a.pbkdf2Salt=l.enc.Hex.stringify(i),a.pbkdf2Iter=100,a.encryptionSchemeAlg="DES-EDE3-CBC",a.encryptionSchemeIV=l.enc.Hex.stringify(n),a};if("PKCS8PRV"==t&&null!=g&&e instanceof g&&1==e.isPrivate){var j=y(e).getEncodedHex();T=d({seq:[{int:0},{seq:[{oid:{name:"rsaEncryption"}},{null:!0}]},{octstr:{hex:j}}]}).getEncodedHex();return void 0===i||null==i?ae(T,"PRIVATE KEY"):ae(D=x(T,i),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==t&&void 0!==M&&e instanceof M&&1==e.isPrivate){j=new d({seq:[{int:1},{octstr:{hex:e.prvKeyHex}},{tag:["a1",!0,{bitstr:{hex:"00"+e.pubKeyHex}}]}]}).getEncodedHex(),T=d({seq:[{int:0},{seq:[{oid:{name:"ecPublicKey"}},{oid:{name:e.curveName}}]},{octstr:{hex:j}}]}).getEncodedHex();return void 0===i||null==i?ae(T,"PRIVATE KEY"):ae(D=x(T,i),"ENCRYPTED PRIVATE KEY")}if("PKCS8PRV"==t&&void 0!==f&&e instanceof f&&1==e.isPrivate){j=new h({bigint:e.x}).getEncodedHex(),T=d({seq:[{int:0},{seq:[{oid:{name:"dsa"}},{seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]}]},{octstr:{hex:j}}]}).getEncodedHex();return void 0===i||null==i?ae(T,"PRIVATE KEY"):ae(D=x(T,i),"ENCRYPTED PRIVATE KEY")}throw new Error("unsupported object nor format")},we.getKeyFromCSRPEM=function(e){var t=ue(e,"CERTIFICATE REQUEST");return we.getKeyFromCSRHex(t)},we.getKeyFromCSRHex=function(e){var t=we.parseCSRHex(e);return we.getKey(t.p8pubkeyhex,null,"pkcs8pub")},we.parseCSRHex=function(e){var t=Te,i=t.getChildIdx,n=t.getTLV,r={},o=e;if("30"!=o.substr(0,2))throw"malformed CSR(code:001)";var s=i(o,0);if(s.length<1)throw"malformed CSR(code:002)";if("30"!=o.substr(s[0],2))throw"malformed CSR(code:003)";var a=i(o,s[0]);if(a.length<3)throw"malformed CSR(code:004)";return r.p8pubkeyhex=n(o,a[2]),r},we.getKeyID=function(e){var t=we,i=Te;"string"==typeof e&&-1!=e.indexOf("BEGIN ")&&(e=t.getKey(e));var n=ue(t.getPEM(e)),r=i.getIdxbyList(n,0,[1]),o=i.getV(n,r).substring(2);return u.crypto.Util.hashHex(o,"sha1")},we.getJWKFromKey=function(e){var t={};if(e instanceof K&&e.isPrivate)return t.kty="RSA",t.n=ee(e.n.toString(16)),t.e=ee(e.e.toString(16)),t.d=ee(e.d.toString(16)),t.p=ee(e.p.toString(16)),t.q=ee(e.q.toString(16)),t.dp=ee(e.dmp1.toString(16)),t.dq=ee(e.dmq1.toString(16)),t.qi=ee(e.coeff.toString(16)),t;if(e instanceof K&&e.isPublic)return t.kty="RSA",t.n=ee(e.n.toString(16)),t.e=ee(e.e.toString(16)),t;if(e instanceof u.crypto.ECDSA&&e.isPrivate){if("P-256"!==(n=e.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;var i=e.getPublicKeyXYHex();return t.kty="EC",t.crv=n,t.x=ee(i.x),t.y=ee(i.y),t.d=ee(e.prvKeyHex),t}if(e instanceof u.crypto.ECDSA&&e.isPublic){var n;if("P-256"!==(n=e.getShortNISTPCurveName())&&"P-384"!==n)throw"unsupported curve name for JWT: "+n;i=e.getPublicKeyXYHex();return t.kty="EC",t.crv=n,t.x=ee(i.x),t.y=ee(i.y),t}throw"not supported key object"},void 0!==u.asn1&&u.asn1||(u.asn1={}),u.asn1.ASN1Util=new function(){this.integerToByteHex=function(e){var t=e.toString(16);return t.length%2==1&&(t="0"+t),t},this.bigIntToMinTwosComplementsHex=function(e){var t=e.toString(16);if("-"!=t.substr(0,1))t.length%2==1?t="0"+t:t.match(/^[0-7]/)||(t="00"+t);else{var i=t.substr(1).length;i%2==1?i+=1:t.match(/^[0-7]/)||(i+=2);for(var n="",r=0;r<i;r++)n+="f";t=new h(n,16).xor(e).add(h.ONE).toString(16).replace(/^-/,"")}return t},this.getPEMStringFromHex=function(e,t){return ae(e,t)},this.newObject=function(e){var t=u.asn1,i=t.ASN1Object,n=t.DERBoolean,r=t.DERInteger,o=t.DERBitString,s=t.DEROctetString,a=t.DERNull,c=t.DERObjectIdentifier,l=t.DEREnumerated,h=t.DERUTF8String,d=t.DERNumericString,p=t.DERPrintableString,A=t.DERTeletexString,f=t.DERIA5String,M=t.DERUTCTime,g=t.DERGeneralizedTime,y=t.DERVisibleString,m=t.DERBMPString,v=t.DERSequence,N=t.DERSet,D=t.DERTaggedObject,w=t.ASN1Util.newObject;if(e instanceof t.ASN1Object)return e;var T=Object.keys(e);if(1!=T.length)throw new Error("key of param shall be only one.");var x=T[0];if(-1==":asn1:bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:visstr:bmpstr:seq:set:tag:".indexOf(":"+x+":"))throw new Error("undefined key: "+x);if("bool"==x)return new n(e[x]);if("int"==x)return new r(e[x]);if("bitstr"==x)return new o(e[x]);if("octstr"==x)return new s(e[x]);if("null"==x)return new a(e[x]);if("oid"==x)return new c(e[x]);if("enum"==x)return new l(e[x]);if("utf8str"==x)return new h(e[x]);if("numstr"==x)return new d(e[x]);if("prnstr"==x)return new p(e[x]);if("telstr"==x)return new A(e[x]);if("ia5str"==x)return new f(e[x]);if("utctime"==x)return new M(e[x]);if("gentime"==x)return new g(e[x]);if("visstr"==x)return new y(e[x]);if("bmpstr"==x)return new m(e[x]);if("asn1"==x)return new i(e[x]);if("seq"==x){for(var E=e[x],j=[],z=0;z<E.length;z++){var I=w(E[z]);j.push(I)}return new v({array:j})}if("set"==x){for(E=e[x],j=[],z=0;z<E.length;z++){I=w(E[z]);j.push(I)}return new N({array:j})}if("tag"==x){var b=e[x];if("[object Array]"===Object.prototype.toString.call(b)&&3==b.length){var O=w(b[2]);return new D({tag:b[0],explicit:b[1],obj:O})}return new D(b)}},this.jsonToASN1HEX=function(e){return this.newObject(e).getEncodedHex()}},u.asn1.ASN1Util.oidHexToInt=function(e){for(var t="",i=parseInt(e.substr(0,2),16),n=(t=Math.floor(i/40)+"."+i%40,""),r=2;r<e.length;r+=2){var o=("00000000"+parseInt(e.substr(r,2),16).toString(2)).slice(-8);if(n+=o.substr(1,7),"0"==o.substr(0,1))t=t+"."+new h(n,2).toString(10),n=""}return t},u.asn1.ASN1Util.oidIntToHex=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},i=function(e){var i="",n=new h(e,10).toString(2),r=7-n.length%7;7==r&&(r=0);for(var o="",s=0;s<r;s++)o+="0";n=o+n;for(s=0;s<n.length-1;s+=7){var a=n.substr(s,7);s!=n.length-7&&(a="1"+a),i+=t(parseInt(a,2))}return i};if(!e.match(/^[0-9.]+$/))throw"malformed oid string: "+e;var n="",r=e.split("."),o=40*parseInt(r[0])+parseInt(r[1]);n+=t(o),r.splice(0,2);for(var s=0;s<r.length;s++)n+=i(r[s]);return n},u.asn1.ASN1Object=function(e){this.params=null,this.getLengthHexFromValue=function(){if(void 0===this.hV||null==this.hV)throw new Error("this.hV is null or undefined");if(this.hV.length%2==1)throw new Error("value hex must be even length: n="+"".length+",v="+this.hV);var e=this.hV.length/2,t=e.toString(16);if(t.length%2==1&&(t="0"+t),e<128)return t;var i=t.length/2;if(i>15)throw"ASN.1 length too long to represent by 8x: n = "+e.toString(16);return(128+i).toString(16)+t},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""},this.setByParam=function(e){this.params=e},null!=e&&null!=e.tlv&&(this.hTLV=e.tlv,this.isModified=!1)},u.asn1.DERAbstractString=function(e){u.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=ie(this.s).toLowerCase()},this.setStringHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&("string"==typeof e?this.setString(e):void 0!==e.str?this.setString(e.str):void 0!==e.hex&&this.setStringHex(e.hex))},c.lang.extend(u.asn1.DERAbstractString,u.asn1.ASN1Object),u.asn1.DERAbstractTime=function(e){u.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(e){var t=e.getTime()+6e4*e.getTimezoneOffset();return new Date(t)},this.formatDate=function(e,t,i){var n=this.zeroPadding,r=this.localDateToUTC(e),o=String(r.getFullYear());"utc"==t&&(o=o.substr(2,2));var s=o+n(String(r.getMonth()+1),2)+n(String(r.getDate()),2)+n(String(r.getHours()),2)+n(String(r.getMinutes()),2)+n(String(r.getSeconds()),2);if(!0===i){var a=r.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+"."+(u=u.replace(/[0]+$/,""))}}return s+"Z"},this.zeroPadding=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=J(e)},this.setByDateValue=function(e,t,i,n,r,o){var s=new Date(Date.UTC(e,t-1,i,n,r,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},c.lang.extend(u.asn1.DERAbstractTime,u.asn1.ASN1Object),u.asn1.DERAbstractStructured=function(e){u.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array=e},this.appendASN1Object=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array.push(e)},this.asn1Array=new Array,void 0!==e&&void 0!==e.array&&(this.asn1Array=e.array)},c.lang.extend(u.asn1.DERAbstractStructured,u.asn1.ASN1Object),u.asn1.DERBoolean=function(e){u.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV=0==e?"010100":"0101ff"},c.lang.extend(u.asn1.DERBoolean,u.asn1.ASN1Object),u.asn1.DERInteger=function(e){u.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=u.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new h(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&(void 0!==e.bigint?this.setByBigInteger(e.bigint):void 0!==e.int?this.setByInteger(e.int):"number"==typeof e?this.setByInteger(e):void 0!==e.hex&&this.setValueHex(e.hex))},c.lang.extend(u.asn1.DERInteger,u.asn1.ASN1Object),u.asn1.DERBitString=function(e){if(void 0!==e&&void 0!==e.obj){var t=u.asn1.ASN1Util.newObject(e.obj);e.hex="00"+t.getEncodedHex()}u.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(e){this.hTLV=null,this.isModified=!0,this.hV=e},this.setUnusedBitsAndHexValue=function(e,t){if(e<0||7<e)throw"unused bits shall be from 0 to 7: u = "+e;var i="0"+e;this.hTLV=null,this.isModified=!0,this.hV=i+t},this.setByBinaryString=function(e){var t=8-(e=e.replace(/0+$/,"")).length%8;8==t&&(t=0);for(var i=0;i<=t;i++)e+="0";var n="";for(i=0;i<e.length-1;i+=8){var r=e.substr(i,8),o=parseInt(r,2).toString(16);1==o.length&&(o="0"+o),n+=o}this.hTLV=null,this.isModified=!0,this.hV="0"+t+n},this.setByBooleanArray=function(e){for(var t="",i=0;i<e.length;i++)1==e[i]?t+="1":t+="0";this.setByBinaryString(t)},this.newFalseArray=function(e){for(var t=new Array(e),i=0;i<e;i++)t[i]=!1;return t},this.getFreshValueHex=function(){return this.hV},void 0!==e&&("string"==typeof e&&e.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(e):void 0!==e.hex?this.setHexValueIncludingUnusedBits(e.hex):void 0!==e.bin?this.setByBinaryString(e.bin):void 0!==e.array&&this.setByBooleanArray(e.array))},c.lang.extend(u.asn1.DERBitString,u.asn1.ASN1Object),u.asn1.DEROctetString=function(e){if(void 0!==e&&void 0!==e.obj){var t=u.asn1.ASN1Util.newObject(e.obj);e.hex=t.getEncodedHex()}u.asn1.DEROctetString.superclass.constructor.call(this,e),this.hT="04"},c.lang.extend(u.asn1.DEROctetString,u.asn1.DERAbstractString),u.asn1.DERNull=function(){u.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"},c.lang.extend(u.asn1.DERNull,u.asn1.ASN1Object),u.asn1.DERObjectIdentifier=function(e){u.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.setValueOidString=function(e){var t=function(e){var t=function(e){var t=e.toString(16);return 1==t.length&&(t="0"+t),t},i=function(e){var i="",n=parseInt(e,10).toString(2),r=7-n.length%7;7==r&&(r=0);for(var o="",s=0;s<r;s++)o+="0";for(n=o+n,s=0;s<n.length-1;s+=7){var a=n.substr(s,7);s!=n.length-7&&(a="1"+a),i+=t(parseInt(a,2))}return i};try{if(!e.match(/^[0-9.]+$/))return null;var n="",r=e.split("."),o=40*parseInt(r[0],10)+parseInt(r[1],10);n+=t(o),r.splice(0,2);for(var s=0;s<r.length;s++)n+=i(r[s]);return n}catch(e){return null}}(e);if(null==t)throw new Error("malformed oid string: "+e);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.setValueName=function(e){var t=u.asn1.x509.OID.name2oid(e);if(""===t)throw new Error("DERObjectIdentifier oidName undefined: "+e);this.setValueOidString(t)},this.setValueNameOrOid=function(e){e.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(e):this.setValueName(e)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){"string"==typeof e?this.setValueNameOrOid(e):void 0!==e.oid?this.setValueNameOrOid(e.oid):void 0!==e.name?this.setValueNameOrOid(e.name):void 0!==e.hex&&this.setValueHex(e.hex)},void 0!==e&&this.setByParam(e)},c.lang.extend(u.asn1.DERObjectIdentifier,u.asn1.ASN1Object),u.asn1.DEREnumerated=function(e){u.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=u.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new h(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},void 0!==e&&(void 0!==e.int?this.setByInteger(e.int):"number"==typeof e?this.setByInteger(e):void 0!==e.hex&&this.setValueHex(e.hex))},c.lang.extend(u.asn1.DEREnumerated,u.asn1.ASN1Object),u.asn1.DERUTF8String=function(e){u.asn1.DERUTF8String.superclass.constructor.call(this,e),this.hT="0c"},c.lang.extend(u.asn1.DERUTF8String,u.asn1.DERAbstractString),u.asn1.DERNumericString=function(e){u.asn1.DERNumericString.superclass.constructor.call(this,e),this.hT="12"},c.lang.extend(u.asn1.DERNumericString,u.asn1.DERAbstractString),u.asn1.DERPrintableString=function(e){u.asn1.DERPrintableString.superclass.constructor.call(this,e),this.hT="13"},c.lang.extend(u.asn1.DERPrintableString,u.asn1.DERAbstractString),u.asn1.DERTeletexString=function(e){u.asn1.DERTeletexString.superclass.constructor.call(this,e),this.hT="14"},c.lang.extend(u.asn1.DERTeletexString,u.asn1.DERAbstractString),u.asn1.DERIA5String=function(e){u.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="16"},c.lang.extend(u.asn1.DERIA5String,u.asn1.DERAbstractString),u.asn1.DERVisibleString=function(e){u.asn1.DERIA5String.superclass.constructor.call(this,e),this.hT="1a"},c.lang.extend(u.asn1.DERVisibleString,u.asn1.DERAbstractString),u.asn1.DERBMPString=function(e){u.asn1.DERBMPString.superclass.constructor.call(this,e),this.hT="1e"},c.lang.extend(u.asn1.DERBMPString,u.asn1.DERAbstractString),u.asn1.DERUTCTime=function(e){u.asn1.DERUTCTime.superclass.constructor.call(this,e),this.hT="17",this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"utc"),this.hV=J(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=J(this.s)),this.hV},void 0!==e&&(void 0!==e.str?this.setString(e.str):"string"==typeof e&&e.match(/^[0-9]{12}Z$/)?this.setString(e):void 0!==e.hex?this.setStringHex(e.hex):void 0!==e.date&&this.setByDate(e.date))},c.lang.extend(u.asn1.DERUTCTime,u.asn1.DERAbstractTime),u.asn1.DERGeneralizedTime=function(e){u.asn1.DERGeneralizedTime.superclass.constructor.call(this,e),this.hT="18",this.withMillis=!1,this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=J(this.s)},this.getFreshValueHex=function(){return void 0===this.date&&void 0===this.s&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=J(this.s)),this.hV},void 0!==e&&(void 0!==e.str?this.setString(e.str):"string"==typeof e&&e.match(/^[0-9]{14}Z$/)?this.setString(e):void 0!==e.hex?this.setStringHex(e.hex):void 0!==e.date&&this.setByDate(e.date),!0===e.millis&&(this.withMillis=!0))},c.lang.extend(u.asn1.DERGeneralizedTime,u.asn1.DERAbstractTime),u.asn1.DERSequence=function(e){u.asn1.DERSequence.superclass.constructor.call(this,e),this.hT="30",this.getFreshValueHex=function(){for(var e="",t=0;t<this.asn1Array.length;t++){e+=this.asn1Array[t].getEncodedHex()}return this.hV=e,this.hV}},c.lang.extend(u.asn1.DERSequence,u.asn1.DERAbstractStructured),u.asn1.DERSet=function(e){u.asn1.DERSet.superclass.constructor.call(this,e),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var e=new Array,t=0;t<this.asn1Array.length;t++){var i=this.asn1Array[t];e.push(i.getEncodedHex())}return 1==this.sortFlag&&e.sort(),this.hV=e.join(""),this.hV},void 0!==e&&void 0!==e.sortflag&&0==e.sortflag&&(this.sortFlag=!1)},c.lang.extend(u.asn1.DERSet,u.asn1.DERAbstractStructured),u.asn1.DERTaggedObject=function(e){u.asn1.DERTaggedObject.superclass.constructor.call(this);var t=u.asn1;this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(e,t,i){this.hT=t,this.isExplicit=e,this.asn1Object=i,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=i.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,t),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},this.setByParam=function(e){null!=e.tag&&(this.hT=e.tag),null!=e.explicit&&(this.isExplicit=e.explicit),null!=e.tage&&(this.hT=e.tage,this.isExplicit=!0),null!=e.tagi&&(this.hT=e.tagi,this.isExplicit=!1),null!=e.obj&&(e.obj instanceof t.ASN1Object?(this.asn1Object=e.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)):"object"==typeof e.obj&&(this.asn1Object=t.ASN1Util.newObject(e.obj),this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))},null!=e&&this.setByParam(e)},c.lang.extend(u.asn1.DERTaggedObject,u.asn1.ASN1Object);var Te=new function(){};function xe(e,t){for(var i="",n=t/4-e.length,r=0;r<n;r++)i+="0";return i+e}function Ee(e,t,i){for(var n="",r=0;n.length<t;)n+=re(i(oe(e+String.fromCharCode.apply(String,[(4278190080&r)>>24,(16711680&r)>>16,(65280&r)>>8,255&r])))),r+=1;return n}function je(e){for(var t in u.crypto.Util.DIGESTINFOHEAD){var i=u.crypto.Util.DIGESTINFOHEAD[t],n=i.length;if(e.substring(0,n)==i)return[t,e.substring(n)]}return[]}function ze(e){var t,i=Te,n=i.getChildIdx,r=i.getV,o=i.getTLV,s=i.getVbyList,a=i.getVbyListEx,c=i.getTLVbyList,l=i.getTLVbyListEx,h=i.getIdxbyList,d=i.getIdxbyListEx,p=i.getVidx,A=i.getInt,f=i.oidname,M=i.hextooidstr,g=ue;try{t=u.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(e){}this.HEX2STAG={"0c":"utf8",13:"prn",16:"ia5","1a":"vis","1e":"bmp"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){if(null===this.hex||0!==this.version)return this.version;var e=c(this.hex,0,[0,0]);if("a0"==e.substr(0,2)){var t=c(e,0,[0]),i=A(t,0);if(i<0||2<i)throw new Error("malformed version field");return this.version=i+1,this.version}return this.version=1,this.foffset=-1,1},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],"02")},this.getSignatureAlgorithmField=function(){var e=l(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(e)},this.getAlgorithmIdentifierName=function(e){for(var i in t)if(e===t[i])return i;return f(a(e,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return c(this.hex,0,[0,3+this.foffset],"30")},this.getIssuerString=function(){return this.getIssuer().str},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return c(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var e=s(this.hex,0,[0,4+this.foffset,0]);return e=e.replace(/(..)/g,"%$1"),e=decodeURIComponent(e)},this.getNotAfter=function(){var e=s(this.hex,0,[0,4+this.foffset,1]);return e=e.replace(/(..)/g,"%$1"),e=decodeURIComponent(e)},this.getPublicKeyHex=function(){return i.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var e=this.getPublicKeyIdx();return h(this.hex,e,[1,0],"30")},this.getPublicKey=function(){return we.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var e=c(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(e)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],"03",!0)},this.verifySignature=function(e){var t=this.getSignatureAlgorithmField(),i=this.getSignatureValueHex(),n=c(this.hex,0,[0],"30"),r=new u.crypto.Signature({alg:t});return r.init(e),r.updateHex(n),r.verify(i)},this.parseExt=function(e){var t,o,a;if(void 0===e){if(a=this.hex,3!==this.version)return-1;t=h(a,0,[0,7,0],"30"),o=n(a,t)}else{a=ue(e);var u=h(a,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=r(a,u))return void(this.aExtInfo=new Array);t=h(a,0,[0,3,0,1,0],"30"),o=n(a,t),this.hex=a}this.aExtInfo=new Array;for(var c=0;c<o.length;c++){var l={critical:!1},d=0;3===n(a,o[c]).length&&(l.critical=!0,d=1),l.oid=i.hextooidstr(s(a,o[c],[0],"06"));var A=h(a,o[c],[1+d]);l.vidx=p(a,A),this.aExtInfo.push(l)}},this.getExtInfo=function(e){var t=this.aExtInfo,i=e;if(e.match(/^[0-9.]+$/)||(i=u.asn1.x509.OID.name2oid(e)),""!==i)for(var n=0;n<t.length;n++)if(t[n].oid===i)return t[n]},this.getExtBasicConstraints=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("basicConstraints");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"basicConstraints"};if(t&&(n.critical=!0),"3000"===e)return n;if("30030101ff"===e)return n.cA=!0,n;if("30060101ff02"===e.substr(0,12)){var s=r(e,10),a=parseInt(s,16);return n.cA=!0,n.pathLen=a,n}throw new Error("hExtV parse error: "+e)},this.getExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("keyUsage");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"keyUsage"};return t&&(n.critical=!0),n.names=this.getExtKeyUsageString(e).split(","),n},this.getExtKeyUsageBin=function(e){if(void 0===e){var t=this.getExtInfo("keyUsage");if(void 0===t)return"";e=o(this.hex,t.vidx)}if(8!=e.length&&10!=e.length)throw new Error("malformed key usage value: "+e);var i="000000000000000"+parseInt(e.substr(6),16).toString(2);return 8==e.length&&(i=i.slice(-8)),10==e.length&&(i=i.slice(-16)),""==(i=i.replace(/0+$/,""))&&(i="0"),i},this.getExtKeyUsageString=function(e){for(var t=this.getExtKeyUsageBin(e),i=new Array,n=0;n<t.length;n++)"1"==t.substr(n,1)&&i.push(ze.KEYUSAGE_NAME[n]);return i.join(",")},this.getExtSubjectKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("subjectKeyIdentifier");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"subjectKeyIdentifier"};t&&(n.critical=!0);var s=r(e,0);return n.kid={hex:s},n},this.getExtAuthorityKeyIdentifier=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("authorityKeyIdentifier");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var s={extname:"authorityKeyIdentifier"};t&&(s.critical=!0);for(var a=n(e,0),u=0;u<a.length;u++){var c=e.substr(a[u],2);if("80"===c&&(s.kid={hex:r(e,a[u])}),"a1"===c){var l=o(e,a[u]),h=this.getGeneralNames(l);s.issuer=h[0].dn}"82"===c&&(s.sn={hex:r(e,a[u])})}return s},this.getExtExtKeyUsage=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("extKeyUsage");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var s={extname:"extKeyUsage",array:[]};t&&(s.critical=!0);for(var a=n(e,0),u=0;u<a.length;u++)s.array.push(f(r(e,a[u])));return s},this.getExtExtKeyUsageName=function(){var e=this.getExtInfo("extKeyUsage");if(void 0===e)return e;var t=new Array,i=o(this.hex,e.vidx);if(""===i)return t;for(var s=n(i,0),a=0;a<s.length;a++)t.push(f(r(i,s[a])));return t},this.getExtSubjectAltName=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("subjectAltName");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"subjectAltName",array:[]};return t&&(n.critical=!0),n.array=this.getGeneralNames(e),n},this.getExtIssuerAltName=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("issuerAltName");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var n={extname:"issuerAltName",array:[]};return t&&(n.critical=!0),n.array=this.getGeneralNames(e),n},this.getGeneralNames=function(e){for(var t=n(e,0),i=[],r=0;r<t.length;r++){var s=this.getGeneralName(o(e,t[r]));void 0!==s&&i.push(s)}return i},this.getGeneralName=function(e){var t=e.substr(0,2),i=r(e,0),n=re(i);return"81"==t?{rfc822:n}:"82"==t?{dns:n}:"86"==t?{uri:n}:"87"==t?{ip:ce(i)}:"a4"==t?{dn:this.getX500Name(i)}:void 0},this.getExtSubjectAltName2=function(){var e,t,i,s=this.getExtInfo("subjectAltName");if(void 0===s)return s;for(var a=new Array,u=o(this.hex,s.vidx),c=n(u,0),l=0;l<c.length;l++)i=u.substr(c[l],2),e=r(u,c[l]),"81"===i&&(t=ne(e),a.push(["MAIL",t])),"82"===i&&(t=ne(e),a.push(["DNS",t])),"84"===i&&(t=ze.hex2dn(e,0),a.push(["DN",t])),"86"===i&&(t=ne(e),a.push(["URI",t])),"87"===i&&(t=ce(e),a.push(["IP",t]));return a},this.getExtCRLDistributionPoints=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("cRLDistributionPoints");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"cRLDistributionPoints",array:[]};t&&(r.critical=!0);for(var s=n(e,0),a=0;a<s.length;a++){var u=o(e,s[a]);r.array.push(this.getDistributionPoint(u))}return r},this.getDistributionPoint=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var s=e.substr(i[r],2),a=o(e,i[r]);"a0"==s&&(t.dpname=this.getDistributionPointName(a))}return t},this.getDistributionPointName=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var s=e.substr(i[r],2),a=o(e,i[r]);"a0"==s&&(t.full=this.getGeneralNames(a))}return t},this.getExtCRLDistributionPointsURI=function(){var e=this.getExtInfo("cRLDistributionPoints");if(void 0===e)return e;for(var t=new Array,i=n(this.hex,e.vidx),r=0;r<i.length;r++)try{var o=ne(s(this.hex,i[r],[0,0,0],"86"));t.push(o)}catch(e){}return t},this.getExtAIAInfo=function(){var e=this.getExtInfo("authorityInfoAccess");if(void 0===e)return e;for(var t={ocsp:[],caissuer:[]},i=n(this.hex,e.vidx),r=0;r<i.length;r++){var o=s(this.hex,i[r],[0],"06"),a=s(this.hex,i[r],[1],"86");"2b06010505073001"===o&&t.ocsp.push(ne(a)),"2b06010505073002"===o&&t.caissuer.push(ne(a))}return t},this.getExtAuthorityInfoAccess=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("authorityInfoAccess");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"authorityInfoAccess",array:[]};t&&(r.critical=!0);for(var u=n(e,0),c=0;c<u.length;c++){var l=a(e,u[c],[0],"06"),h=ne(s(e,u[c],[1],"86"));if("2b06010505073001"==l)r.array.push({ocsp:h});else{if("2b06010505073002"!=l)throw new Error("unknown method: "+l);r.array.push({caissuer:h})}}return r},this.getExtCertificatePolicies=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("certificatePolicies");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"certificatePolicies",array:[]};t&&(r.critical=!0);for(var s=n(e,0),a=0;a<s.length;a++){var u=o(e,s[a]),c=this.getPolicyInformation(u);r.array.push(c)}return r},this.getPolicyInformation=function(e){var t={},i=s(e,0,[0],"06");t.policyoid=f(i);var r=d(e,0,[1],"30");if(-1!=r){t.array=[];for(var a=n(e,r),u=0;u<a.length;u++){var c=o(e,a[u]),l=this.getPolicyQualifierInfo(c);t.array.push(l)}}return t},this.getPolicyQualifierInfo=function(e){var t={},i=s(e,0,[0],"06");if("2b06010505070201"===i){var n=a(e,0,[1],"16");t.cps=re(n)}else if("2b06010505070202"===i){var r=c(e,0,[1],"30");t.unotice=this.getUserNotice(r)}return t},this.getUserNotice=function(e){for(var t={},i=n(e,0),r=0;r<i.length;r++){var s=o(e,i[r]);"30"!=s.substr(0,2)&&(t.exptext=this.getDisplayText(s))}return t},this.getDisplayText=function(e){var t={};return t.type={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"}[e.substr(0,2)],t.str=re(r(e,0)),t},this.getExtCRLNumber=function(e,t){var i={extname:"cRLNumber"};if(t&&(i.critical=!0),"02"==e.substr(0,2))return i.num={hex:r(e,0)},i;throw new Error("hExtV parse error: "+e)},this.getExtCRLReason=function(e,t){var i={extname:"cRLReason"};if(t&&(i.critical=!0),"0a"==e.substr(0,2))return i.code=parseInt(r(e,0),16),i;throw new Error("hExtV parse error: "+e)},this.getExtOcspNonce=function(e,t){var i={extname:"ocspNonce"};t&&(i.critical=!0);var n=r(e,0);return i.hex=n,i},this.getExtOcspNoCheck=function(e,t){var i={extname:"ocspNoCheck"};return t&&(i.critical=!0),i},this.getExtAdobeTimeStamp=function(e,t){if(void 0===e&&void 0===t){var i=this.getExtInfo("adobeTimeStamp");if(void 0===i)return;e=o(this.hex,i.vidx),t=i.critical}var r={extname:"adobeTimeStamp"};t&&(r.critical=!0);var s=n(e,0);if(s.length>1){var a=o(e,s[1]),u=this.getGeneralName(a);null!=u.uri&&(r.uri=u.uri)}if(s.length>2){var c=o(e,s[2]);"0101ff"==c&&(r.reqauth=!0),"010100"==c&&(r.reqauth=!1)}return r},this.getX500NameRule=function(e){for(var t=null,i=[],n=0;n<e.length;n++)for(var r=e[n],o=0;o<r.length;o++)i.push(r[o]);for(n=0;n<i.length;n++){var s=i[n],a=s.ds,c=s.value,l=s.type;if("prn"!=a&&"utf8"!=a&&"ia5"!=a)return"mixed";if("ia5"==a){if("CN"!=l)return"mixed";if(u.lang.String.isMail(c))continue;return"mixed"}if("C"==l){if("prn"==a)continue;return"mixed"}if(null==t)t=a;else if(t!==a)return"mixed"}return null==t?"prn":t},this.getX500Name=function(e){var t=this.getX500NameArray(e);return{array:t,str:this.dnarraytostr(t)}},this.getX500NameArray=function(e){for(var t=[],i=n(e,0),r=0;r<i.length;r++)t.push(this.getRDN(o(e,i[r])));return t},this.getRDN=function(e){for(var t=[],i=n(e,0),r=0;r<i.length;r++)t.push(this.getAttrTypeAndValue(o(e,i[r])));return t},this.getAttrTypeAndValue=function(e){var t={type:null,value:null,ds:null},i=n(e,0),r=s(e,i[0],[],"06"),o=s(e,i[1],[]),a=u.asn1.ASN1Util.oidHexToInt(r);return t.type=u.asn1.x509.OID.oid2atype(a),t.ds=this.HEX2STAG[e.substr(i[1],2)],"bmp"!=t.ds?t.value=ne(o):t.value=le(o),t},this.readCertPEM=function(e){this.readCertHex(g(e))},this.readCertHex=function(e){this.hex=e,this.getVersion();try{h(this.hex,0,[0,7],"a3"),this.parseExt()}catch(e){}},this.getParam=function(){var e={};return e.version=this.getVersion(),e.serial={hex:this.getSerialNumberHex()},e.sigalg=this.getSignatureAlgorithmField(),e.issuer=this.getIssuer(),e.notbefore=this.getNotBefore(),e.notafter=this.getNotAfter(),e.subject=this.getSubject(),e.sbjpubkey=ae(this.getPublicKeyHex(),"PUBLIC KEY"),this.aExtInfo.length>0&&(e.ext=this.getExtParamArray()),e.sighex=this.getSignatureValueHex(),e},this.getExtParamArray=function(e){null==e&&(-1!=d(this.hex,0,[0,"[3]"])&&(e=l(this.hex,0,[0,"[3]",0],"30")));for(var t=[],i=n(e,0),r=0;r<i.length;r++){var s=o(e,i[r]),a=this.getExtParam(s);null!=a&&t.push(a)}return t},this.getExtParam=function(e){var t=n(e,0).length;if(2!=t&&3!=t)throw new Error("wrong number elements in Extension: "+t+" "+e);var i=M(s(e,0,[0],"06")),r=!1;3==t&&"0101ff"==c(e,0,[1])&&(r=!0);var o=c(e,0,[t-1,0]),a=void 0;if("2.5.29.14"==i?a=this.getExtSubjectKeyIdentifier(o,r):"2.5.29.15"==i?a=this.getExtKeyUsage(o,r):"2.5.29.17"==i?a=this.getExtSubjectAltName(o,r):"2.5.29.18"==i?a=this.getExtIssuerAltName(o,r):"2.5.29.19"==i?a=this.getExtBasicConstraints(o,r):"2.5.29.31"==i?a=this.getExtCRLDistributionPoints(o,r):"2.5.29.32"==i?a=this.getExtCertificatePolicies(o,r):"2.5.29.35"==i?a=this.getExtAuthorityKeyIdentifier(o,r):"2.5.29.37"==i?a=this.getExtExtKeyUsage(o,r):"1.3.6.1.5.5.7.1.1"==i?a=this.getExtAuthorityInfoAccess(o,r):"2.5.29.20"==i?a=this.getExtCRLNumber(o,r):"2.5.29.21"==i?a=this.getExtCRLReason(o,r):"1.3.6.1.5.5.7.48.1.2"==i?a=this.getExtOcspNonce(o,r):"1.3.6.1.5.5.7.48.1.5"==i?a=this.getExtOcspNoCheck(o,r):"1.2.840.113583.1.1.9.1"==i&&(a=this.getExtAdobeTimeStamp(o,r)),null!=a)return a;var u={extname:i,extn:o};return r&&(u.critical=!0),u},this.findExt=function(e,t){for(var i=0;i<e.length;i++)if(e[i].extname==t)return e[i];return null},this.updateExtCDPFullURI=function(e,t){var i=this.findExt(e,"cRLDistributionPoints");if(null!=i&&null!=i.array)for(var n=i.array,r=0;r<n.length;r++)if(null!=n[r].dpname&&null!=n[r].dpname.full)for(var o=n[r].dpname.full,s=0;s<o.length;s++){var a=o[r];null!=a.uri&&(a.uri=t)}},this.updateExtAIAOCSP=function(e,t){var i=this.findExt(e,"authorityInfoAccess");if(null!=i&&null!=i.array)for(var n=i.array,r=0;r<n.length;r++)null!=n[r].ocsp&&(n[r].ocsp=t)},this.updateExtAIACAIssuer=function(e,t){var i=this.findExt(e,"authorityInfoAccess");if(null!=i&&null!=i.array)for(var n=i.array,r=0;r<n.length;r++)null!=n[r].caissuer&&(n[r].caissuer=t)},this.dnarraytostr=function(e){return"/"+e.map((function(e){return function(e){return e.map((function(e){return function(e){return e.type+"="+e.value}(e).replace(/\+/,"\\+")})).join("+")}(e).replace(/\//,"\\/")})).join("/")},this.getInfo=function(){var e,t,i,n,r=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];if(t+=" policy oid: "+r.policyoid+"\n",void 0!==r.array)for(var o=0;o<r.array.length;o++){var s=r.array[o];void 0!==s.cps&&(t+=" cps: "+s.cps+"\n")}}return t},o=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];try{void 0!==r.dpname.full[0].uri&&(t+=" "+r.dpname.full[0].uri+"\n")}catch(e){}try{void 0!==r.dname.full[0].dn.hex&&(t+=" "+ze.hex2dn(r.dpname.full[0].dn.hex)+"\n")}catch(e){}}return t},s=function(e){for(var t="",i=e.array,n=0;n<i.length;n++){var r=i[n];void 0!==r.caissuer&&(t+=" caissuer: "+r.caissuer+"\n"),void 0!==r.ocsp&&(t+=" ocsp: "+r.ocsp+"\n")}return t};if(e="Basic Fields\n",e+=" serial number: "+this.getSerialNumberHex()+"\n",e+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",e+=" issuer: "+this.getIssuerString()+"\n",e+=" notBefore: "+this.getNotBefore()+"\n",e+=" notAfter: "+this.getNotAfter()+"\n",e+=" subject: "+this.getSubjectString()+"\n",e+=" subject public key info: \n",e+=" key algorithm: "+(t=this.getPublicKey()).type+"\n","RSA"===t.type&&(e+=" n="+de(t.n.toString(16)).substr(0,16)+"...\n",e+=" e="+de(t.e.toString(16))+"\n"),null!=(i=this.aExtInfo)){e+="X509v3 Extensions:\n";for(var a=0;a<i.length;a++){var c=i[a],l=u.asn1.x509.OID.oid2name(c.oid);""===l&&(l=c.oid);var h="";if(!0===c.critical&&(h="CRITICAL"),e+=" "+l+" "+h+":\n","basicConstraints"===l){var d=this.getExtBasicConstraints();void 0===d.cA?e+=" {}\n":(e+=" cA=true",void 0!==d.pathLen&&(e+=", pathLen="+d.pathLen),e+="\n")}else if("keyUsage"===l)e+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"===l)e+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"===l){var p=this.getExtAuthorityKeyIdentifier();void 0!==p.kid&&(e+=" kid="+p.kid.hex+"\n")}else{if("extKeyUsage"===l)e+=" "+this.getExtExtKeyUsage().array.join(", ")+"\n";else if("subjectAltName"===l)e+=" "+(n=this.getExtSubjectAltName(),JSON.stringify(n.array).replace(/[\[\]\{\}\"]/g,""))+"\n";else if("cRLDistributionPoints"===l)e+=o(this.getExtCRLDistributionPoints());else if("authorityInfoAccess"===l)e+=s(this.getExtAuthorityInfoAccess());else"certificatePolicies"===l&&(e+=r(this.getExtCertificatePolicies()))}}}return e+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n",e+="signature: "+this.getSignatureValueHex().substr(0,16)+"...\n"},"string"==typeof e&&(-1!=e.indexOf("-----BEGIN")?this.readCertPEM(e):u.lang.String.isHex(e)&&this.readCertHex(e))}function Ie(e){return l.SHA256(e).toString()}Te.getLblen=function(e,t){if("8"!=e.substr(t+2,1))return 1;var i=parseInt(e.substr(t+3,1));return 0==i?-1:0<i&&i<10?i+1:-2},Te.getL=function(e,t){var i=Te.getLblen(e,t);return i<1?"":e.substr(t+2,2*i)},Te.getVblen=function(e,t){var i;return""==(i=Te.getL(e,t))?-1:("8"===i.substr(0,1)?new h(i.substr(2),16):new h(i,16)).intValue()},Te.getVidx=function(e,t){var i=Te.getLblen(e,t);return i<0?i:t+2*(i+1)},Te.getV=function(e,t){var i=Te.getVidx(e,t),n=Te.getVblen(e,t);return e.substr(i,2*n)},Te.getTLV=function(e,t){return e.substr(t,2)+Te.getL(e,t)+Te.getV(e,t)},Te.getTLVblen=function(e,t){return 2+2*Te.getLblen(e,t)+2*Te.getVblen(e,t)},Te.getNextSiblingIdx=function(e,t){return Te.getVidx(e,t)+2*Te.getVblen(e,t)},Te.getChildIdx=function(e,t){var i,n,r,o=Te,s=[];i=o.getVidx(e,t),n=2*o.getVblen(e,t),"03"==e.substr(t,2)&&(i+=2,n-=2),r=0;for(var a=i;r<=n;){var u=o.getTLVblen(e,a);if((r+=u)<=n&&s.push(a),a+=u,r>=n)break}return s},Te.getNthChildIdx=function(e,t,i){return Te.getChildIdx(e,t)[i]},Te.getIdxbyList=function(e,t,i,n){var r,o,s=Te;return 0==i.length?void 0!==n&&e.substr(t,2)!==n?-1:t:(r=i.shift())>=(o=s.getChildIdx(e,t)).length?-1:s.getIdxbyList(e,o[r],i,n)},Te.getIdxbyListEx=function(e,t,i,n){var r,o,s=Te;if(0==i.length)return void 0!==n&&e.substr(t,2)!==n?-1:t;r=i.shift(),o=s.getChildIdx(e,t);for(var a=0,u=0;u<o.length;u++){var c=e.substr(o[u],2);if("number"==typeof r&&!s.isContextTag(c)&&a==r||"string"==typeof r&&s.isContextTag(c,r))return s.getIdxbyListEx(e,o[u],i,n);s.isContextTag(c)||a++}return-1},Te.getTLVbyList=function(e,t,i,n){var r=Te,o=r.getIdxbyList(e,t,i,n);return-1==o||o>=e.length?null:r.getTLV(e,o)},Te.getTLVbyListEx=function(e,t,i,n){var r=Te,o=r.getIdxbyListEx(e,t,i,n);return-1==o?null:r.getTLV(e,o)},Te.getVbyList=function(e,t,i,n,r){var o,s,a=Te;return-1==(o=a.getIdxbyList(e,t,i,n))||o>=e.length?null:(s=a.getV(e,o),!0===r&&(s=s.substr(2)),s)},Te.getVbyListEx=function(e,t,i,n,r){var o,s,a=Te;return-1==(o=a.getIdxbyListEx(e,t,i,n))?null:(s=a.getV(e,o),"03"==e.substr(o,2)&&!1!==r&&(s=s.substr(2)),s)},Te.getInt=function(e,t,i){null==i&&(i=-1);try{var n=e.substr(t,2);if("02"!=n&&"03"!=n)return i;var r=Te.getV(e,t);return"02"==n?parseInt(r,16):function(e){try{var t=e.substr(0,2);if("00"==t)return parseInt(e.substr(2),16);var i=parseInt(t,16),n=e.substr(2),r=parseInt(n,16).toString(2);return"0"==r&&(r="00000000"),r=r.slice(0,0-i),parseInt(r,2)}catch(e){return-1}}(r)}catch(e){return i}},Te.getOID=function(e,t,i){null==i&&(i=null);try{return"06"!=e.substr(t,2)?i:function(e){if(!he(e))return null;try{var t=[],i=e.substr(0,2),n=parseInt(i,16);t[0]=new String(Math.floor(n/40)),t[1]=new String(n%40);for(var r=e.substr(2),o=[],s=0;s<r.length/2;s++)o.push(parseInt(r.substr(2*s,2),16));var a=[],u="";for(s=0;s<o.length;s++)128&o[s]?u+=pe((127&o[s]).toString(2),7):(u+=pe((127&o[s]).toString(2),7),a.push(new String(parseInt(u,2))),u="");var c=t.join(".");return a.length>0&&(c=c+"."+a.join(".")),c}catch(e){return null}}(Te.getV(e,t))}catch(e){return i}},Te.getOIDName=function(e,t,i){null==i&&(i=null);try{var n=Te.getOID(e,t,i);if(n==i)return i;var r=u.asn1.x509.OID.oid2name(n);return""==r?n:r}catch(e){return i}},Te.getString=function(e,t,i){null==i&&(i=null);try{return re(Te.getV(e,t))}catch(e){return i}},Te.hextooidstr=function(e){var t=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},i=[],n=e.substr(0,2),r=parseInt(n,16);i[0]=new String(Math.floor(r/40)),i[1]=new String(r%40);for(var o=e.substr(2),s=[],a=0;a<o.length/2;a++)s.push(parseInt(o.substr(2*a,2),16));var u=[],c="";for(a=0;a<s.length;a++)128&s[a]?c+=t((127&s[a]).toString(2),7):(c+=t((127&s[a]).toString(2),7),u.push(new String(parseInt(c,2))),c="");var l=i.join(".");return u.length>0&&(l=l+"."+u.join(".")),l},Te.dump=function(e,t,i,n){var r=Te,o=r.getV,s=r.dump,a=r.getChildIdx,c=e;e instanceof u.asn1.ASN1Object&&(c=e.getEncodedHex());var l=function(e,t){return e.length<=2*t?e:e.substr(0,t)+"..(total "+e.length/2+"bytes).."+e.substr(e.length-t,t)};void 0===t&&(t={ommit_long_octet:32}),void 0===i&&(i=0),void 0===n&&(n="");var h,d=t.ommit_long_octet;if("01"==(h=c.substr(i,2)))return"00"==(p=o(c,i))?n+"BOOLEAN FALSE\n":n+"BOOLEAN TRUE\n";if("02"==h)return n+"INTEGER "+l(p=o(c,i),d)+"\n";if("03"==h){var p=o(c,i);if(r.isASN1HEX(p.substr(2))){var A=n+"BITSTRING, encapsulates\n";return A+=s(p.substr(2),t,0,n+" ")}return n+"BITSTRING "+l(p,d)+"\n"}if("04"==h){p=o(c,i);if(r.isASN1HEX(p)){A=n+"OCTETSTRING, encapsulates\n";return A+=s(p,t,0,n+" ")}return n+"OCTETSTRING "+l(p,d)+"\n"}if("05"==h)return n+"NULL\n";if("06"==h){var f=o(c,i),M=u.asn1.ASN1Util.oidHexToInt(f),g=u.asn1.x509.OID.oid2name(M),y=M.replace(/\./g," ");return""!=g?n+"ObjectIdentifier "+g+" ("+y+")\n":n+"ObjectIdentifier ("+y+")\n"}if("0a"==h)return n+"ENUMERATED "+parseInt(o(c,i))+"\n";if("0c"==h)return n+"UTF8String '"+ne(o(c,i))+"'\n";if("13"==h)return n+"PrintableString '"+ne(o(c,i))+"'\n";if("14"==h)return n+"TeletexString '"+ne(o(c,i))+"'\n";if("16"==h)return n+"IA5String '"+ne(o(c,i))+"'\n";if("17"==h)return n+"UTCTime "+ne(o(c,i))+"\n";if("18"==h)return n+"GeneralizedTime "+ne(o(c,i))+"\n";if("1a"==h)return n+"VisualString '"+ne(o(c,i))+"'\n";if("1e"==h)return n+"BMPString '"+le(o(c,i))+"'\n";if("30"==h){if("3000"==c.substr(i,4))return n+"SEQUENCE {}\n";A=n+"SEQUENCE\n";var m=t;if((2==(D=a(c,i)).length||3==D.length)&&"06"==c.substr(D[0],2)&&"04"==c.substr(D[D.length-1],2)){g=r.oidname(o(c,D[0]));var v=JSON.parse(JSON.stringify(t));v.x509ExtName=g,m=v}for(var N=0;N<D.length;N++)A+=s(c,m,D[N],n+" ");return A}if("31"==h){A=n+"SET\n";var D=a(c,i);for(N=0;N<D.length;N++)A+=s(c,t,D[N],n+" ");return A}if(0!=(128&(h=parseInt(h,16)))){var w=31&h;if(0!=(32&h)){for(A=n+"["+w+"]\n",D=a(c,i),N=0;N<D.length;N++)A+=s(c,t,D[N],n+" ");return A}p=o(c,i);if(Te.isASN1HEX(p)){var A=n+"["+w+"]\n";return A+=s(p,t,0,n+" ")}return("68747470"==p.substr(0,8)||"subjectAltName"===t.x509ExtName&&2==w)&&(p=ne(p)),A=n+"["+w+"] "+p+"\n"}return n+"UNKNOWN("+h+") "+o(c,i)+"\n"},Te.isContextTag=function(e,t){var i,n;e=e.toLowerCase();try{i=parseInt(e,16)}catch(e){return-1}if(void 0===t)return 128==(192&i);try{return null!=t.match(/^\[[0-9]+\]$/)&&(!((n=parseInt(t.substr(1,t.length-1),10))>31)&&(128==(192&i)&&(31&i)==n))}catch(e){return!1}},Te.isASN1HEX=function(e){var t=Te;if(e.length%2==1)return!1;var i=t.getVblen(e,0),n=e.substr(0,2),r=t.getL(e,0);return e.length-n.length-r.length==2*i},Te.checkStrictDER=function(e,t,i,n,r){var o=Te;if(void 0===i){if("string"!=typeof e)throw new Error("not hex string");if(e=e.toLowerCase(),!u.lang.String.isHex(e))throw new Error("not hex string");i=e.length,r=(n=e.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(e,t).length>2*r)throw new Error("L of TLV too long: idx="+t);var s=o.getVblen(e,t);if(s>n)throw new Error("value of L too long than hex: idx="+t);var a=o.getTLV(e,t),c=a.length-2-o.getL(e,t).length;if(c!==2*s)throw new Error("V string length and L's value not the same:"+c+"/"+2*s);if(0===t&&e.length!=a.length)throw new Error("total length and TLV length unmatch:"+e.length+"!="+a.length);var l=e.substr(t,2);if("02"===l){var h=o.getVidx(e,t);if("00"==e.substr(h,2)&&e.charCodeAt(h+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(l,16)){for(var d=o.getVblen(e,t),p=0,A=o.getChildIdx(e,t),f=0;f<A.length;f++){p+=o.getTLV(e,A[f]).length,o.checkStrictDER(e,A[f],i,n,r)}if(2*d!=p)throw new Error("sum of children's TLV length and L unmatch: "+2*d+"!="+p)}},Te.oidname=function(e){var t=u.asn1;u.lang.String.isHex(e)&&(e=t.ASN1Util.oidHexToInt(e));var i=t.x509.OID.oid2name(e);return""===i&&(i=e),i},void 0!==u.asn1&&u.asn1||(u.asn1={}),void 0!==u.asn1.x509&&u.asn1.x509||(u.asn1.x509={}),u.asn1.x509.Certificate=function(e){u.asn1.x509.Certificate.superclass.constructor.call(this);var t=u.asn1,i=t.DERBitString,n=t.DERSequence,r=t.x509,o=r.TBSCertificate,s=r.AlgorithmIdentifier;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=this.params,t=e.sigalg;null!=e.sigalg.name&&(t=e.sigalg.name);var i=e.tbsobj.getEncodedHex(),n=new u.crypto.Signature({alg:t});n.init(e.cakey),n.updateHex(i),e.sighex=n.sign()},this.getPEM=function(){return ae(this.getEncodedHex(),"CERTIFICATE")},this.getEncodedHex=function(){var e=this.params;if(null!=e.tbsobj&&null!=e.tbsobj||(e.tbsobj=new o(e)),null==e.sighex&&null!=e.cakey&&this.sign(),null==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];return t.push(e.tbsobj),t.push(new s({name:e.sigalg})),t.push(new i({hex:"00"+e.sighex})),new n({array:t}).getEncodedHex()},null!=e&&(this.params=e)},Ae(u.asn1.x509.Certificate,u.asn1.ASN1Object),u.asn1.x509.TBSCertificate=function(e){u.asn1.x509.TBSCertificate.superclass.constructor.call(this);var t=u.asn1,i=t.x509,n=t.DERTaggedObject,r=t.DERInteger,o=t.DERSequence,s=i.AlgorithmIdentifier,a=i.Time,c=i.X500Name,l=i.Extensions,h=i.SubjectPublicKeyInfo;this.params=null,this.setByParam=function(e){this.params=e},this.getEncodedHex=function(){var e=[],t=this.params;if(null!=t.version||1!=t.version){var i=2;null!=t.version&&(i=t.version-1);var d=new n({obj:new r({int:i})});e.push(d)}return e.push(new r(t.serial)),e.push(new s({name:t.sigalg})),e.push(new c(t.issuer)),e.push(new o({array:[new a(t.notbefore),new a(t.notafter)]})),e.push(new c(t.subject)),e.push(new h(we.getKey(t.sbjpubkey))),void 0!==t.ext&&t.ext.length>0&&e.push(new n({tag:"a3",obj:new l(t.ext)})),new u.asn1.DERSequence({array:e}).getEncodedHex()},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.TBSCertificate,u.asn1.ASN1Object),u.asn1.x509.Extensions=function(e){u.asn1.x509.Extensions.superclass.constructor.call(this);var t=u.asn1,i=t.DERSequence,n=t.x509;this.aParam=[],this.setByParam=function(e){this.aParam=e},this.getEncodedHex=function(){for(var e=[],t=0;t<this.aParam.length;t++){var r=this.aParam[t],o=r.extname,s=null;if(null!=r.extn)s=new n.PrivateExtension(r);else if("subjectKeyIdentifier"==o)s=new n.SubjectKeyIdentifier(r);else if("keyUsage"==o)s=new n.KeyUsage(r);else if("subjectAltName"==o)s=new n.SubjectAltName(r);else if("issuerAltName"==o)s=new n.IssuerAltName(r);else if("basicConstraints"==o)s=new n.BasicConstraints(r);else if("cRLDistributionPoints"==o)s=new n.CRLDistributionPoints(r);else if("certificatePolicies"==o)s=new n.CertificatePolicies(r);else if("authorityKeyIdentifier"==o)s=new n.AuthorityKeyIdentifier(r);else if("extKeyUsage"==o)s=new n.ExtKeyUsage(r);else if("authorityInfoAccess"==o)s=new n.AuthorityInfoAccess(r);else if("cRLNumber"==o)s=new n.CRLNumber(r);else if("cRLReason"==o)s=new n.CRLReason(r);else if("ocspNonce"==o)s=new n.OCSPNonce(r);else if("ocspNoCheck"==o)s=new n.OCSPNoCheck(r);else if("adobeTimeStamp"==o)s=new n.AdobeTimeStamp(r);else{if("subjectDirectoryAttributes"!=o)throw new Error("extension not supported:"+JSON.stringify(r));s=new n.SubjectDirectoryAttributes(r)}null!=s&&e.push(s)}return new i({array:e}).getEncodedHex()},null!=e&&this.setByParam(e)},Ae(u.asn1.x509.Extensions,u.asn1.ASN1Object),u.asn1.x509.Extension=function(e){u.asn1.x509.Extension.superclass.constructor.call(this);var t=u.asn1,i=t.DERObjectIdentifier,n=t.DEROctetString;t.DERBitString;var r=t.DERBoolean,o=t.DERSequence;this.getEncodedHex=function(){var e=new i({oid:this.oid}),t=new n({hex:this.getExtnValueHex()}),s=new Array;return s.push(e),this.critical&&s.push(new r),s.push(t),new o({array:s}).getEncodedHex()},this.critical=!1,void 0!==e&&void 0!==e.critical&&(this.critical=e.critical)},Ae(u.asn1.x509.Extension,u.asn1.ASN1Object),u.asn1.x509.KeyUsage=function(e){u.asn1.x509.KeyUsage.superclass.constructor.call(this,e);var t=ze.KEYUSAGE_NAME;if(this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.15",void 0!==e&&(void 0!==e.bin&&(this.asn1ExtnValue=new u.asn1.DERBitString(e)),void 0!==e.names&&void 0!==e.names.length)){for(var i=e.names,n="000000000",r=0;r<i.length;r++)for(var o=0;o<t.length;o++)i[r]===t[o]&&(n=n.substring(0,o)+"1"+n.substring(o+1,n.length));this.asn1ExtnValue=new u.asn1.DERBitString({bin:n})}},Ae(u.asn1.x509.KeyUsage,u.asn1.x509.Extension),u.asn1.x509.BasicConstraints=function(e){u.asn1.x509.BasicConstraints.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERBoolean,n=t.DERInteger,r=t.DERSequence;this.getExtnValueHex=function(){var e=new Array;this.cA&&e.push(new i),this.pathLen>-1&&e.push(new n({int:this.pathLen}));var t=new r({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.19",this.cA=!1,this.pathLen=-1,void 0!==e&&(void 0!==e.cA&&(this.cA=e.cA),void 0!==e.pathLen&&(this.pathLen=e.pathLen))},Ae(u.asn1.x509.BasicConstraints,u.asn1.x509.Extension),u.asn1.x509.CRLDistributionPoints=function(e){u.asn1.x509.CRLDistributionPoints.superclass.constructor.call(this,e);var t=u.asn1,i=t.x509;this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.setByDPArray=function(e){for(var n=[],r=0;r<e.length;r++)if(e[r]instanceof u.asn1.ASN1Object)n.push(e[r]);else{var o=new i.DistributionPoint(e[r]);n.push(o)}this.asn1ExtnValue=new t.DERSequence({array:n})},this.setByOneURI=function(e){var t=new i.DistributionPoint({fulluri:e});this.setByDPArray([t])},this.oid="2.5.29.31",void 0!==e&&(void 0!==e.array?this.setByDPArray(e.array):void 0!==e.uri&&this.setByOneURI(e.uri))},Ae(u.asn1.x509.CRLDistributionPoints,u.asn1.x509.Extension),u.asn1.x509.DistributionPoint=function(e){u.asn1.x509.DistributionPoint.superclass.constructor.call(this);var t=u.asn1,i=t.x509.DistributionPointName;this.getEncodedHex=function(){var e=new t.DERSequence;if(null!=this.asn1DP){var i=new t.DERTaggedObject({explicit:!0,tag:"a0",obj:this.asn1DP});e.appendASN1Object(i)}return this.hTLV=e.getEncodedHex(),this.hTLV},void 0!==e&&(void 0!==e.dpobj?this.asn1DP=e.dpobj:void 0!==e.dpname?this.asn1DP=new i(e.dpname):void 0!==e.fulluri&&(this.asn1DP=new i({full:[{uri:e.fulluri}]})))},Ae(u.asn1.x509.DistributionPoint,u.asn1.ASN1Object),u.asn1.x509.DistributionPointName=function(e){u.asn1.x509.DistributionPointName.superclass.constructor.call(this);var t=u.asn1,i=t.DERTaggedObject;if(this.getEncodedHex=function(){if("full"!=this.type)throw new Error("currently type shall be 'full': "+this.type);return this.asn1Obj=new i({explicit:!1,tag:this.tag,obj:this.asn1V}),this.hTLV=this.asn1Obj.getEncodedHex(),this.hTLV},void 0!==e)if(t.x509.GeneralNames.prototype.isPrototypeOf(e))this.type="full",this.tag="a0",this.asn1V=e;else{if(void 0===e.full)throw new Error("This class supports GeneralNames only as argument");this.type="full",this.tag="a0",this.asn1V=new t.x509.GeneralNames(e.full)}},Ae(u.asn1.x509.DistributionPointName,u.asn1.ASN1Object),u.asn1.x509.CertificatePolicies=function(e){u.asn1.x509.CertificatePolicies.superclass.constructor.call(this,e);var t=u.asn1,i=t.x509,n=t.DERSequence,r=i.PolicyInformation;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++)e.push(new r(this.params.array[t]));var i=new n({array:e});return this.asn1ExtnValue=i,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.32",void 0!==e&&(this.params=e)},Ae(u.asn1.x509.CertificatePolicies,u.asn1.x509.Extension),u.asn1.x509.PolicyInformation=function(e){u.asn1.x509.PolicyInformation.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERSequence,n=t.DERObjectIdentifier,r=t.x509.PolicyQualifierInfo;this.params=null,this.getEncodedHex=function(){if(void 0===this.params.policyoid&&void 0===this.params.array)throw new Error("parameter oid and array missing");var e=[new n(this.params.policyoid)];if(void 0!==this.params.array){for(var t=[],o=0;o<this.params.array.length;o++)t.push(new r(this.params.array[o]));t.length>0&&e.push(new i({array:t}))}return new i({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},Ae(u.asn1.x509.PolicyInformation,u.asn1.ASN1Object),u.asn1.x509.PolicyQualifierInfo=function(e){u.asn1.x509.PolicyQualifierInfo.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERSequence,n=t.DERIA5String,r=t.DERObjectIdentifier,o=t.x509.UserNotice;this.params=null,this.getEncodedHex=function(){return void 0!==this.params.cps?new i({array:[new r({oid:"1.3.6.1.5.5.7.2.1"}),new n({str:this.params.cps})]}).getEncodedHex():null!=this.params.unotice?new i({array:[new r({oid:"1.3.6.1.5.5.7.2.2"}),new o(this.params.unotice)]}).getEncodedHex():void 0},void 0!==e&&(this.params=e)},Ae(u.asn1.x509.PolicyQualifierInfo,u.asn1.ASN1Object),u.asn1.x509.UserNotice=function(e){u.asn1.x509.UserNotice.superclass.constructor.call(this,e);var t=u.asn1.DERSequence;u.asn1.DERInteger;var i=u.asn1.x509.DisplayText,n=u.asn1.x509.NoticeReference;this.params=null,this.getEncodedHex=function(){var e=[];return void 0!==this.params.noticeref&&e.push(new n(this.params.noticeref)),void 0!==this.params.exptext&&e.push(new i(this.params.exptext)),new t({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},Ae(u.asn1.x509.UserNotice,u.asn1.ASN1Object),u.asn1.x509.NoticeReference=function(e){u.asn1.x509.NoticeReference.superclass.constructor.call(this,e);var t=u.asn1.DERSequence,i=u.asn1.DERInteger,n=u.asn1.x509.DisplayText;this.params=null,this.getEncodedHex=function(){var e=[];if(void 0!==this.params.org&&e.push(new n(this.params.org)),void 0!==this.params.noticenum){for(var r=[],o=this.params.noticenum,s=0;s<o.length;s++)r.push(new i(o[s]));e.push(new t({array:r}))}if(0==e.length)throw new Error("parameter is empty");return new t({array:e}).getEncodedHex()},void 0!==e&&(this.params=e)},Ae(u.asn1.x509.NoticeReference,u.asn1.ASN1Object),u.asn1.x509.DisplayText=function(e){u.asn1.x509.DisplayText.superclass.constructor.call(this,e),this.hT="0c",void 0!==e&&("ia5"===e.type?this.hT="16":"vis"===e.type?this.hT="1a":"bmp"===e.type&&(this.hT="1e"))},Ae(u.asn1.x509.DisplayText,u.asn1.DERAbstractString),u.asn1.x509.ExtKeyUsage=function(e){u.asn1.x509.ExtKeyUsage.superclass.constructor.call(this,e);var t=u.asn1;this.setPurposeArray=function(e){this.asn1ExtnValue=new t.DERSequence;for(var i=0;i<e.length;i++){var n=new t.DERObjectIdentifier(e[i]);this.asn1ExtnValue.appendASN1Object(n)}},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.37",void 0!==e&&void 0!==e.array&&this.setPurposeArray(e.array)},Ae(u.asn1.x509.ExtKeyUsage,u.asn1.x509.Extension),u.asn1.x509.AuthorityKeyIdentifier=function(e){u.asn1.x509.AuthorityKeyIdentifier.superclass.constructor.call(this,e);var t=u,i=t.asn1,n=i.DERTaggedObject,r=i.x509.GeneralNames;t.crypto.Util.isKey,this.asn1KID=null,this.asn1CertIssuer=null,this.asn1CertSN=null,this.getExtnValueHex=function(){var e=new Array;this.asn1KID&&e.push(new n({explicit:!1,tag:"80",obj:this.asn1KID})),this.asn1CertIssuer&&e.push(new n({explicit:!1,tag:"a1",obj:new r([{dn:this.asn1CertIssuer}])})),this.asn1CertSN&&e.push(new n({explicit:!1,tag:"82",obj:this.asn1CertSN}));var t=new i.DERSequence({array:e});return this.asn1ExtnValue=t,this.asn1ExtnValue.getEncodedHex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new u.asn1.DEROctetString(e);else if("object"==typeof e&&u.crypto.Util.isKey(e)||"string"==typeof e&&-1!=e.indexOf("BEGIN ")){var t=e;"string"==typeof e&&(t=we.getKey(e));var i=we.getKeyID(t);this.asn1KID=new u.asn1.DEROctetString({hex:i})}},this.setCertIssuerByParam=function(e){void 0!==e.str||void 0!==e.ldapstr||void 0!==e.hex||void 0!==e.certsubject||void 0!==e.certissuer?this.asn1CertIssuer=new u.asn1.x509.X500Name(e):"string"==typeof e&&-1!=e.indexOf("BEGIN ")&&-1!=e.indexOf("CERTIFICATE")&&(this.asn1CertIssuer=new u.asn1.x509.X500Name({certissuer:e}))},this.setCertSNByParam=function(e){if(void 0!==e.str||void 0!==e.bigint||void 0!==e.hex)this.asn1CertSN=new u.asn1.DERInteger(e);else if("string"==typeof e&&-1!=e.indexOf("BEGIN ")&&e.indexOf("CERTIFICATE")){var t=new ze;t.readCertPEM(e);var i=t.getSerialNumberHex();this.asn1CertSN=new u.asn1.DERInteger({hex:i})}},this.oid="2.5.29.35",void 0!==e&&(void 0!==e.kid&&this.setKIDByParam(e.kid),void 0!==e.issuer&&this.setCertIssuerByParam(e.issuer),void 0!==e.sn&&this.setCertSNByParam(e.sn),void 0!==e.issuersn&&"string"==typeof e.issuersn&&-1!=e.issuersn.indexOf("BEGIN ")&&e.issuersn.indexOf("CERTIFICATE")&&(this.setCertSNByParam(e.issuersn),this.setCertIssuerByParam(e.issuersn)))},Ae(u.asn1.x509.AuthorityKeyIdentifier,u.asn1.x509.Extension),u.asn1.x509.SubjectKeyIdentifier=function(e){u.asn1.x509.SubjectKeyIdentifier.superclass.constructor.call(this,e);var t=u.asn1.DEROctetString;this.asn1KID=null,this.getExtnValueHex=function(){return this.asn1ExtnValue=this.asn1KID,this.asn1ExtnValue.getEncodedHex()},this.setKIDByParam=function(e){if(void 0!==e.str||void 0!==e.hex)this.asn1KID=new t(e);else if("object"==typeof e&&u.crypto.Util.isKey(e)||"string"==typeof e&&-1!=e.indexOf("BEGIN")){var i=e;"string"==typeof e&&(i=we.getKey(e));var n=we.getKeyID(i);this.asn1KID=new u.asn1.DEROctetString({hex:n})}},this.oid="2.5.29.14",void 0!==e&&void 0!==e.kid&&this.setKIDByParam(e.kid)},Ae(u.asn1.x509.SubjectKeyIdentifier,u.asn1.x509.Extension),u.asn1.x509.AuthorityInfoAccess=function(e){u.asn1.x509.AuthorityInfoAccess.superclass.constructor.call(this,e),this.setAccessDescriptionArray=function(e){for(var t=new Array,i=u.asn1,n=i.DERSequence,r=i.DERObjectIdentifier,o=i.x509.GeneralName,s=0;s<e.length;s++){var a,c=e[s];if(void 0!==c.ocsp)a=new n({array:[new r({oid:"1.3.6.1.5.5.7.48.1"}),new o({uri:c.ocsp})]});else{if(void 0===c.caissuer)throw new Error("unknown AccessMethod parameter: "+JSON.stringify(c));a=new n({array:[new r({oid:"1.3.6.1.5.5.7.48.2"}),new o({uri:c.caissuer})]})}t.push(a)}this.asn1ExtnValue=new n({array:t})},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.1.1",void 0!==e&&void 0!==e.array&&this.setAccessDescriptionArray(e.array)},Ae(u.asn1.x509.AuthorityInfoAccess,u.asn1.x509.Extension),u.asn1.x509.SubjectAltName=function(e){u.asn1.x509.SubjectAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new u.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.17",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},Ae(u.asn1.x509.SubjectAltName,u.asn1.x509.Extension),u.asn1.x509.IssuerAltName=function(e){u.asn1.x509.IssuerAltName.superclass.constructor.call(this,e),this.setNameArray=function(e){this.asn1ExtnValue=new u.asn1.x509.GeneralNames(e)},this.getExtnValueHex=function(){return this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.18",void 0!==e&&void 0!==e.array&&this.setNameArray(e.array)},Ae(u.asn1.x509.IssuerAltName,u.asn1.x509.Extension),u.asn1.x509.SubjectDirectoryAttributes=function(e){u.asn1.x509.SubjectDirectoryAttributes.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERSequence,n=t.ASN1Util.newObject,r=t.x509.OID.name2oid;this.params=null,this.getExtnValueHex=function(){for(var e=[],t=0;t<this.params.array.length;t++){var o=this.params.array[t],s={seq:[{oid:"1.2.3.4"},{set:[{utf8str:"DE"}]}]};if("dateOfBirth"==o.attr)s.seq[0].oid=r(o.attr),s.seq[1].set[0]={gentime:o.str};else if("placeOfBirth"==o.attr)s.seq[0].oid=r(o.attr),s.seq[1].set[0]={utf8str:o.str};else if("gender"==o.attr)s.seq[0].oid=r(o.attr),s.seq[1].set[0]={prnstr:o.str};else if("countryOfCitizenship"==o.attr)s.seq[0].oid=r(o.attr),s.seq[1].set[0]={prnstr:o.str};else{if("countryOfResidence"!=o.attr)throw new Error("unsupported attribute: "+o.attr);s.seq[0].oid=r(o.attr),s.seq[1].set[0]={prnstr:o.str}}e.push(new n(s))}var a=new i({array:e});return this.asn1ExtnValue=a,this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.9",void 0!==e&&(this.params=e)},Ae(u.asn1.x509.SubjectDirectoryAttributes,u.asn1.x509.Extension),u.asn1.x509.PrivateExtension=function(e){u.asn1.x509.PrivateExtension.superclass.constructor.call(this,e);var t=u,i=t.lang.String.isHex,n=t.asn1,r=n.x509.OID.name2oid,o=n.ASN1Util.newObject;this.params=null,this.setByParam=function(e){this.oid=r(e.extname),this.params=e},this.getExtnValueHex=function(){if(null==this.params.extname||null==this.params.extn)throw new Error("extname or extnhex not specified");var e=this.params.extn;if("string"==typeof e&&i(e))return e;if("object"==typeof e)try{return o(e).getEncodedHex()}catch(e){}throw new Error("unsupported extn value")},null!=e&&this.setByParam(e)},Ae(u.asn1.x509.PrivateExtension,u.asn1.x509.Extension),u.asn1.x509.CRL=function(e){u.asn1.x509.CRL.superclass.constructor.call(this);var t=u.asn1,i=t.DERSequence,n=t.DERBitString,r=t.x509,o=r.AlgorithmIdentifier,s=r.TBSCertList;this.params=void 0,this.setByParam=function(e){this.params=e},this.sign=function(){var e=new s(this.params).getEncodedHex(),t=new u.crypto.Signature({alg:this.params.sigalg});t.init(this.params.cakey),t.updateHex(e);var i=t.sign();this.params.sighex=i},this.getPEM=function(){return ae(this.getEncodedHex(),"X509 CRL")},this.getEncodedHex=function(){var e=this.params;if(null==e.tbsobj&&(e.tbsobj=new s(e)),null==e.sighex&&null!=e.cakey&&this.sign(),null==e.sighex)throw new Error("sighex or cakey parameter not defined");var t=[];return t.push(e.tbsobj),t.push(new o({name:e.sigalg})),t.push(new n({hex:"00"+e.sighex})),new i({array:t}).getEncodedHex()},null!=e&&(this.params=e)},Ae(u.asn1.x509.CRL,u.asn1.ASN1Object),u.asn1.x509.TBSCertList=function(e){u.asn1.x509.TBSCertList.superclass.constructor.call(this);var t=u.asn1,i=t.DERInteger,n=t.DERSequence,r=t.DERTaggedObject;t.DERObjectIdentifier;var o=t.x509,s=o.AlgorithmIdentifier,a=o.Time,c=o.Extensions,l=o.X500Name;this.params=null,this.setByParam=function(e){this.params=e},this.getRevCertSequence=function(){for(var e=[],t=this.params.revcert,r=0;r<t.length;r++){var o=[new i(t[r].sn),new a(t[r].date)];null!=t[r].ext&&o.push(new c(t[r].ext)),e.push(new n({array:o}))}return new n({array:e})},this.getEncodedHex=function(){var e=[],t=this.params;if(null!=t.version){var o=t.version-1,u=new i({int:o});e.push(u)}if(e.push(new s({name:t.sigalg})),e.push(new l(t.issuer)),e.push(new a(t.thisupdate)),null!=t.nextupdate&&e.push(new a(t.nextupdate)),null!=t.revcert&&e.push(this.getRevCertSequence()),null!=t.ext){var h=new c(t.ext);e.push(new r({tag:"a0",explicit:!0,obj:h}))}return new n({array:e}).getEncodedHex()},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.TBSCertList,u.asn1.ASN1Object),u.asn1.x509.CRLEntry=function(e){u.asn1.x509.CRLEntry.superclass.constructor.call(this);var t=u.asn1;this.setCertSerial=function(e){this.sn=new t.DERInteger(e)},this.setRevocationDate=function(e){this.time=new t.x509.Time(e)},this.getEncodedHex=function(){var e=new t.DERSequence({array:[this.sn,this.time]});return this.TLV=e.getEncodedHex(),this.TLV},void 0!==e&&(void 0!==e.time&&this.setRevocationDate(e.time),void 0!==e.sn&&this.setCertSerial(e.sn))},Ae(u.asn1.x509.CRLEntry,u.asn1.ASN1Object),u.asn1.x509.CRLNumber=function(e){u.asn1.x509.CRLNumber.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new u.asn1.DERInteger(this.params.num),this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.20",null!=e&&(this.params=e)},Ae(u.asn1.x509.CRLNumber,u.asn1.x509.Extension),u.asn1.x509.CRLReason=function(e){u.asn1.x509.CRLReason.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new u.asn1.DEREnumerated(this.params.code),this.asn1ExtnValue.getEncodedHex()},this.oid="2.5.29.21",null!=e&&(this.params=e)},Ae(u.asn1.x509.CRLReason,u.asn1.x509.Extension),u.asn1.x509.OCSPNonce=function(e){u.asn1.x509.OCSPNonce.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new u.asn1.DEROctetString(this.params),this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.48.1.2",null!=e&&(this.params=e)},Ae(u.asn1.x509.OCSPNonce,u.asn1.x509.Extension),u.asn1.x509.OCSPNoCheck=function(e){u.asn1.x509.OCSPNoCheck.superclass.constructor.call(this,e),this.params=void 0,this.getExtnValueHex=function(){return this.asn1ExtnValue=new u.asn1.DERNull,this.asn1ExtnValue.getEncodedHex()},this.oid="1.3.6.1.5.5.7.48.1.5",null!=e&&(this.params=e)},Ae(u.asn1.x509.OCSPNoCheck,u.asn1.x509.Extension),u.asn1.x509.AdobeTimeStamp=function(e){u.asn1.x509.AdobeTimeStamp.superclass.constructor.call(this,e);var t=u.asn1,i=t.DERInteger,n=t.DERBoolean,r=t.DERSequence,o=t.x509.GeneralName;this.params=null,this.getExtnValueHex=function(){var e=this.params,t=[new i(1)];return t.push(new o({uri:e.uri})),null!=e.reqauth&&t.push(new n(e.reqauth)),this.asn1ExtnValue=new r({array:t}),this.asn1ExtnValue.getEncodedHex()},this.oid="1.2.840.113583.1.1.9.1",void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.AdobeTimeStamp,u.asn1.x509.Extension),u.asn1.x509.X500Name=function(e){u.asn1.x509.X500Name.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=u.asn1,i=t.x509,n=i.RDN;this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var i=e.split("/");i.shift();for(var r=[],o=0;o<i.length;o++)if(i[o].match(/^[^=]+=.+$/))r.push(i[o]);else{var s=r.length-1;r[s]=r[s]+"/"+i[o]}for(o=0;o<r.length;o++)this.asn1Array.push(new n({str:r[o],rule:this.sRule}))},this.setByLdapString=function(e,t){void 0!==t&&(this.sRule=t);var n=i.X500Name.ldapToCompat(e);this.setByString(n,t)},this.setByObject=function(e,t){for(var i in void 0!==t&&(this.sRule=t),e)if(e.hasOwnProperty(i)){var r=new n({str:i+"="+e[i],rule:this.sRule});this.asn1Array?this.asn1Array.push(r):this.asn1Array=[r]}},this.setByParam=function(e){var t;(void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.array)?this.paramArray=e.array:void 0!==e.str?this.setByString(e.str):void 0!==e.ldapstr?this.setByLdapString(e.ldapstr):void 0!==e.hex?this.hTLV=e.hex:void 0!==e.certissuer?((t=new ze).readCertPEM(e.certissuer),this.hTLV=t.getIssuerHex()):void 0!==e.certsubject?((t=new ze).readCertPEM(e.certsubject),this.hTLV=t.getSubjectHex()):"object"==typeof e&&void 0===e.certsubject&&void 0===e.certissuer&&this.setByObject(e)},this.getEncodedHex=function(){if("string"==typeof this.hTLV)return this.hTLV;if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var i={array:this.paramArray[e]};"utf8"!=this.sRule&&(i.rule=this.sRule);var r=new n(i);this.asn1Array.push(r)}var o=new t.DERSequence({array:this.asn1Array});return this.hTLV=o.getEncodedHex(),this.hTLV},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.X500Name,u.asn1.ASN1Object),u.asn1.x509.X500Name.compatToLDAP=function(e){if("/"!==e.substr(0,1))throw"malformed input";var t=(e=e.substr(1)).split("/");return t.reverse(),(t=t.map((function(e){return e.replace(/,/,"\\,")}))).join(",")},u.asn1.x509.X500Name.onelineToLDAP=function(e){return u.asn1.x509.X500Name.compatToLDAP(e)},u.asn1.x509.X500Name.ldapToCompat=function(e){for(var t=e.split(","),i=!1,n=[],r=0;t.length>0;r++){var o=t.shift();if(!0===i){var s=(n.pop()+","+o).replace(/\\,/g,",");n.push(s),i=!1}else n.push(o);"\\"===o.substr(-1,1)&&(i=!0)}return(n=n.map((function(e){return e.replace("/","\\/")}))).reverse(),"/"+n.join("/")},u.asn1.x509.X500Name.ldapToOneline=function(e){return u.asn1.x509.X500Name.ldapToCompat(e)},u.asn1.x509.RDN=function(e){u.asn1.x509.RDN.superclass.constructor.call(this),this.asn1Array=[],this.paramArray=[],this.sRule="utf8";var t=u.asn1.x509.AttributeTypeAndValue;this.setByParam=function(e){void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.str&&this.addByMultiValuedString(e.str),void 0!==e.array&&(this.paramArray=e.array)},this.addByString=function(e){this.asn1Array.push(new u.asn1.x509.AttributeTypeAndValue({str:e,rule:this.sRule}))},this.addByMultiValuedString=function(e){for(var t=u.asn1.x509.RDN.parseString(e),i=0;i<t.length;i++)this.addByString(t[i])},this.getEncodedHex=function(){if(0==this.asn1Array.length&&this.paramArray.length>0)for(var e=0;e<this.paramArray.length;e++){var i=this.paramArray[e];void 0!==i.rule&&"utf8"!=this.sRule&&(i.rule=this.sRule);var n=new t(i);this.asn1Array.push(n)}var r=new u.asn1.DERSet({array:this.asn1Array});return this.TLV=r.getEncodedHex(),this.TLV},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.RDN,u.asn1.ASN1Object),u.asn1.x509.RDN.parseString=function(e){for(var t=e.split(/\+/),i=!1,n=[],r=0;t.length>0;r++){var o=t.shift();if(!0===i){var s=(n.pop()+"+"+o).replace(/\\\+/g,"+");n.push(s),i=!1}else n.push(o);"\\"===o.substr(-1,1)&&(i=!0)}var a=!1,u=[];for(r=0;n.length>0;r++){o=n.shift();if(!0===a){var c=u.pop();if(o.match(/"$/)){s=(c+"+"+o).replace(/^([^=]+)="(.*)"$/,"$1=$2");u.push(s),a=!1}else u.push(c+"+"+o)}else u.push(o);o.match(/^[^=]+="/)&&(a=!0)}return u},u.asn1.x509.AttributeTypeAndValue=function(e){u.asn1.x509.AttributeTypeAndValue.superclass.constructor.call(this),this.sRule="utf8",this.sType=null,this.sValue=null,this.dsType=null;var t=u,i=t.asn1,n=i.DERSequence,r=i.DERUTF8String,o=i.DERPrintableString,s=i.DERTeletexString,a=i.DERIA5String,c=i.DERVisibleString,l=i.DERBMPString,h=t.lang.String.isMail,d=t.lang.String.isPrintable;this.setByParam=function(e){if(void 0!==e.rule&&(this.sRule=e.rule),void 0!==e.ds&&(this.dsType=e.ds),void 0===e.value&&void 0!==e.str){var t=e.str.match(/^([^=]+)=(.+)$/);if(!t)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.sType=t[1],this.sValue=t[2]}else this.sType=e.type,this.sValue=e.value},this.setByString=function(e,t){void 0!==t&&(this.sRule=t);var i=e.match(/^([^=]+)=(.+)$/);if(!i)throw new Error("malformed attrTypeAndValueStr: "+attrTypeAndValueStr);this.setByAttrTypeAndValueStr(i[1],i[2])},this._getDsType=function(){var e=this.sType,t=this.sValue,i=this.sRule;return"prn"===i?"CN"==e&&h(t)?"ia5":d(t)?"prn":"utf8":"utf8"===i?"CN"==e&&h(t)?"ia5":"C"==e?"prn":"utf8":"utf8"},this.setByAttrTypeAndValueStr=function(e,t,i){void 0!==i&&(this.sRule=i),this.sType=e,this.sValue=t},this.getValueObj=function(e,t){if("utf8"==e)return new r({str:t});if("prn"==e)return new o({str:t});if("tel"==e)return new s({str:t});if("ia5"==e)return new a({str:t});if("vis"==e)return new c({str:t});if("bmp"==e)return new l({str:t});throw new Error("unsupported directory string type: type="+e+" value="+t)},this.getEncodedHex=function(){null==this.dsType&&(this.dsType=this._getDsType());var e=u.asn1.x509.OID.atype2obj(this.sType),t=this.getValueObj(this.dsType,this.sValue),i=new n({array:[e,t]});return this.TLV=i.getEncodedHex(),this.TLV},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.AttributeTypeAndValue,u.asn1.ASN1Object),u.asn1.x509.SubjectPublicKeyInfo=function(e){u.asn1.x509.SubjectPublicKeyInfo.superclass.constructor.call(this);var t=u,i=t.asn1,n=i.DERInteger,r=i.DERBitString,o=i.DERObjectIdentifier,s=i.DERSequence,a=i.ASN1Util.newObject,c=i.x509.AlgorithmIdentifier,l=t.crypto;l.ECDSA,l.DSA,this.getASN1Object=function(){if(null==this.asn1AlgId||null==this.asn1SubjPKey)throw"algId and/or subjPubKey not set";return new s({array:[this.asn1AlgId,this.asn1SubjPKey]})},this.getEncodedHex=function(){var e=this.getASN1Object();return this.hTLV=e.getEncodedHex(),this.hTLV},this.setPubKey=function(e){try{if(e instanceof K){var t=a({seq:[{int:{bigint:e.n}},{int:{int:e.e}}]}).getEncodedHex();this.asn1AlgId=new c({name:"rsaEncryption"}),this.asn1SubjPKey=new r({hex:"00"+t})}}catch(e){}try{if(e instanceof u.crypto.ECDSA){var i=new o({name:e.curveName});this.asn1AlgId=new c({name:"ecPublicKey",asn1params:i}),this.asn1SubjPKey=new r({hex:"00"+e.pubKeyHex})}}catch(e){}try{if(e instanceof u.crypto.DSA){i=new a({seq:[{int:{bigint:e.p}},{int:{bigint:e.q}},{int:{bigint:e.g}}]});this.asn1AlgId=new c({name:"dsa",asn1params:i});var s=new n({bigint:e.y});this.asn1SubjPKey=new r({hex:"00"+s.getEncodedHex()})}}catch(e){}},void 0!==e&&this.setPubKey(e)},Ae(u.asn1.x509.SubjectPublicKeyInfo,u.asn1.ASN1Object),u.asn1.x509.Time=function(e){u.asn1.x509.Time.superclass.constructor.call(this);var t=u.asn1,i=t.DERUTCTime,n=t.DERGeneralizedTime;this.setTimeParams=function(e){this.timeParams=e},this.getEncodedHex=function(){var e=null;return e=null!=this.timeParams?"utc"==this.type?new i(this.timeParams):new n(this.timeParams):"utc"==this.type?new i:new n,this.TLV=e.getEncodedHex(),this.TLV},this.type="utc",void 0!==e&&(void 0!==e.type?this.type=e.type:void 0!==e.str&&(e.str.match(/^[0-9]{12}Z$/)&&(this.type="utc"),e.str.match(/^[0-9]{14}Z$/)&&(this.type="gen")),this.timeParams=e)},Ae(u.asn1.x509.Time,u.asn1.ASN1Object),u.asn1.x509.AlgorithmIdentifier=function(e){u.asn1.x509.AlgorithmIdentifier.superclass.constructor.call(this),this.nameAlg=null,this.asn1Alg=null,this.asn1Params=null,this.paramEmpty=!1;var t=u.asn1,i=t.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV;if(this.getEncodedHex=function(){if(null===this.nameAlg&&null===this.asn1Alg)throw new Error("algorithm not specified");if(null!==this.nameAlg){var e=null;for(var n in i)n===this.nameAlg&&(e=i[n]);if(null!==e)return this.hTLV=e,this.hTLV}null!==this.nameAlg&&null===this.asn1Alg&&(this.asn1Alg=t.x509.OID.name2obj(this.nameAlg));var r=[this.asn1Alg];null!==this.asn1Params&&r.push(this.asn1Params);var o=new t.DERSequence({array:r});return this.hTLV=o.getEncodedHex(),this.hTLV},void 0!==e&&(void 0!==e.name&&(this.nameAlg=e.name),void 0!==e.asn1params&&(this.asn1Params=e.asn1params),void 0!==e.paramempty&&(this.paramEmpty=e.paramempty)),null===this.asn1Params&&!1===this.paramEmpty&&null!==this.nameAlg){void 0!==this.nameAlg.name&&(this.nameAlg=this.nameAlg.name);var n=this.nameAlg.toLowerCase();"withdsa"!==n.substr(-7,7)&&"withecdsa"!==n.substr(-9,9)&&(this.asn1Params=new t.DERNull)}},Ae(u.asn1.x509.AlgorithmIdentifier,u.asn1.ASN1Object),u.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},u.asn1.x509.GeneralName=function(e){u.asn1.x509.GeneralName.superclass.constructor.call(this);var t={rfc822:"81",dns:"82",dn:"a4",uri:"86",ip:"87"},i=u.asn1;i.DERSequence;var n=i.DEROctetString,r=i.DERIA5String,o=i.DERTaggedObject,s=i.ASN1Object,a=i.x509.X500Name,c=ue;this.explicit=!1,this.setByParam=function(e){var i=null;if(void 0!==e){if(void 0!==e.rfc822&&(this.type="rfc822",i=new r({str:e[this.type]})),void 0!==e.dns&&(this.type="dns",i=new r({str:e[this.type]})),void 0!==e.uri&&(this.type="uri",i=new r({str:e[this.type]})),void 0!==e.dn&&(this.type="dn",this.explicit=!0,i="string"==typeof e.dn?new a({str:e.dn}):e.dn instanceof u.asn1.x509.X500Name?e.dn:new a(e.dn)),void 0!==e.ldapdn&&(this.type="dn",this.explicit=!0,i=new a({ldapstr:e.ldapdn})),void 0!==e.certissuer){this.type="dn",this.explicit=!0;var l=null;if((d=e.certissuer).match(/^[0-9A-Fa-f]+$/),-1!=d.indexOf("-----BEGIN ")&&(l=c(d)),null==l)throw"certissuer param not cert";(p=new ze).hex=l;var h=p.getIssuerHex();(i=new s).hTLV=h}if(void 0!==e.certsubj){this.type="dn",this.explicit=!0;var d,p;l=null;if((d=e.certsubj).match(/^[0-9A-Fa-f]+$/),-1!=d.indexOf("-----BEGIN ")&&(l=c(d)),null==l)throw"certsubj param not cert";(p=new ze).hex=l;h=p.getSubjectHex();(i=new s).hTLV=h}if(void 0!==e.ip){this.type="ip",this.explicit=!1;var A,f=e.ip,M="malformed IP address";if(f.match(/^[0-9.]+[.][0-9.]+$/)){if(8!==(A=function(e){e=(e=(e=e.replace(/^\s*\[\s*/,"")).replace(/\s*\]\s*$/,"")).replace(/\s*/g,"");try{return e.split(/,/).map((function(e,t,i){var n=parseInt(e);if(n<0||255<n)throw"integer not in range 0-255";return("00"+n.toString(16)).slice(-2)})).join("")}catch(e){throw"malformed integer array string: "+e}}("["+f.split(".").join(",")+"]")).length)throw M}else if(f.match(/^[0-9A-Fa-f:]+:[0-9A-Fa-f:]+$/))A=function(e){var t="malformed IPv6 address";if(!e.match(/^[0-9A-Fa-f:]+$/))throw t;var i=(e=e.toLowerCase()).split(":").length-1;if(i<2)throw t;var n=":".repeat(7-i+2),r=(e=e.replace("::",n)).split(":");if(8!=r.length)throw t;for(var o=0;o<8;o++)r[o]=("0000"+r[o]).slice(-4);return r.join("")}(f);else{if(!f.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw M;A=f}i=new n({hex:A})}if(null==this.type)throw"unsupported type in params="+e;this.asn1Obj=new o({explicit:this.explicit,tag:t[this.type],obj:i})}},this.getEncodedHex=function(){return this.asn1Obj.getEncodedHex()},void 0!==e&&this.setByParam(e)},Ae(u.asn1.x509.GeneralName,u.asn1.ASN1Object),u.asn1.x509.GeneralNames=function(e){u.asn1.x509.GeneralNames.superclass.constructor.call(this);var t=u.asn1;this.setByParamArray=function(e){for(var i=0;i<e.length;i++){var n=new t.x509.GeneralName(e[i]);this.asn1Array.push(n)}},this.getEncodedHex=function(){return new t.DERSequence({array:this.asn1Array}).getEncodedHex()},this.asn1Array=new Array,void 0!==e&&this.setByParamArray(e)},Ae(u.asn1.x509.GeneralNames,u.asn1.ASN1Object),u.asn1.x509.OID=new function(e){this.atype2oidList={CN:"2.5.4.3",L:"2.5.4.7",ST:"2.5.4.8",O:"2.5.4.10",OU:"2.5.4.11",C:"2.5.4.6",STREET:"2.5.4.9",DC:"0.9.2342.19200300.100.1.25",UID:"0.9.2342.19200300.100.1.1",SN:"2.5.4.4",T:"2.5.4.12",DN:"2.5.4.49",E:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",serialNumber:"2.5.4.5",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3"},this.name2oidList={sha1:"1.3.14.3.2.26",sha256:"2.16.840.1.101.3.4.2.1",sha384:"2.16.840.1.101.3.4.2.2",sha512:"2.16.840.1.101.3.4.2.3",sha224:"2.16.840.1.101.3.4.2.4",md5:"1.2.840.113549.2.5",md2:"1.3.14.7.2.2.1",ripemd160:"1.3.36.3.2.1",MD2withRSA:"1.2.840.113549.1.1.2",MD4withRSA:"1.2.840.113549.1.1.3",MD5withRSA:"1.2.840.113549.1.1.4",SHA1withRSA:"1.2.840.113549.1.1.5","pkcs1-MGF":"1.2.840.113549.1.1.8",rsaPSS:"1.2.840.113549.1.1.10",SHA224withRSA:"1.2.840.113549.1.1.14",SHA256withRSA:"1.2.840.113549.1.1.11",SHA384withRSA:"1.2.840.113549.1.1.12",SHA512withRSA:"1.2.840.113549.1.1.13",SHA1withECDSA:"1.2.840.10045.4.1",SHA224withECDSA:"1.2.840.10045.4.3.1",SHA256withECDSA:"1.2.840.10045.4.3.2",SHA384withECDSA:"1.2.840.10045.4.3.3",SHA512withECDSA:"1.2.840.10045.4.3.4",dsa:"1.2.840.10040.4.1",SHA1withDSA:"1.2.840.10040.4.3",SHA224withDSA:"2.16.840.1.101.3.4.3.1",SHA256withDSA:"2.16.840.1.101.3.4.3.2",rsaEncryption:"1.2.840.113549.1.1.1",commonName:"2.5.4.3",countryName:"2.5.4.6",localityName:"2.5.4.7",stateOrProvinceName:"2.5.4.8",streetAddress:"2.5.4.9",organizationName:"2.5.4.10",organizationalUnitName:"2.5.4.11",domainComponent:"0.9.2342.19200300.100.1.25",userId:"0.9.2342.19200300.100.1.1",surname:"2.5.4.4",givenName:"2.5.4.42",title:"2.5.4.12",distinguishedName:"2.5.4.49",emailAddress:"1.2.840.113549.1.9.1",description:"2.5.4.13",businessCategory:"2.5.4.15",postalCode:"2.5.4.17",uniqueIdentifier:"2.5.4.45",organizationIdentifier:"2.5.4.97",jurisdictionOfIncorporationL:"1.3.6.1.4.1.311.60.2.1.1",jurisdictionOfIncorporationSP:"1.3.6.1.4.1.311.60.2.1.2",jurisdictionOfIncorporationC:"1.3.6.1.4.1.311.60.2.1.3",subjectDirectoryAttributes:"2.5.29.9",subjectKeyIdentifier:"2.5.29.14",keyUsage:"2.5.29.15",subjectAltName:"2.5.29.17",issuerAltName:"2.5.29.18",basicConstraints:"2.5.29.19",cRLNumber:"2.5.29.20",cRLReason:"2.5.29.21",nameConstraints:"2.5.29.30",cRLDistributionPoints:"2.5.29.31",certificatePolicies:"2.5.29.32",anyPolicy:"2.5.29.32.0",authorityKeyIdentifier:"2.5.29.35",policyConstraints:"2.5.29.36",extKeyUsage:"2.5.29.37",authorityInfoAccess:"1.3.6.1.5.5.7.1.1",ocsp:"1.3.6.1.5.5.7.48.1",ocspBasic:"1.3.6.1.5.5.7.48.1.1",ocspNonce:"1.3.6.1.5.5.7.48.1.2",ocspNoCheck:"1.3.6.1.5.5.7.48.1.5",caIssuers:"1.3.6.1.5.5.7.48.2",anyExtendedKeyUsage:"2.5.29.37.0",serverAuth:"1.3.6.1.5.5.7.3.1",clientAuth:"1.3.6.1.5.5.7.3.2",codeSigning:"1.3.6.1.5.5.7.3.3",emailProtection:"1.3.6.1.5.5.7.3.4",timeStamping:"1.3.6.1.5.5.7.3.8",ocspSigning:"1.3.6.1.5.5.7.3.9",dateOfBirth:"1.3.6.1.5.5.7.9.1",placeOfBirth:"1.3.6.1.5.5.7.9.2",gender:"1.3.6.1.5.5.7.9.3",countryOfCitizenship:"1.3.6.1.5.5.7.9.4",countryOfResidence:"1.3.6.1.5.5.7.9.5",ecPublicKey:"1.2.840.10045.2.1","P-256":"1.2.840.10045.3.1.7",secp256r1:"1.2.840.10045.3.1.7",secp256k1:"1.3.132.0.10",secp384r1:"1.3.132.0.34",pkcs5PBES2:"1.2.840.113549.1.5.13",pkcs5PBKDF2:"1.2.840.113549.1.5.12","des-EDE3-CBC":"1.2.840.113549.3.7",data:"1.2.840.113549.1.7.1","signed-data":"1.2.840.113549.1.7.2","enveloped-data":"1.2.840.113549.1.7.3","digested-data":"1.2.840.113549.1.7.5","encrypted-data":"1.2.840.113549.1.7.6","authenticated-data":"1.2.840.113549.1.9.16.1.2",tstinfo:"1.2.840.113549.1.9.16.1.4",signingCertificate:"1.2.840.113549.1.9.16.2.12",timeStampToken:"1.2.840.113549.1.9.16.2.14",signaturePolicyIdentifier:"1.2.840.113549.1.9.16.2.15",etsArchiveTimeStamp:"1.2.840.113549.1.9.16.2.27",signingCertificateV2:"1.2.840.113549.1.9.16.2.47",etsArchiveTimeStampV2:"1.2.840.113549.1.9.16.2.48",extensionRequest:"1.2.840.113549.1.9.14",contentType:"1.2.840.113549.1.9.3",messageDigest:"1.2.840.113549.1.9.4",signingTime:"1.2.840.113549.1.9.5",counterSignature:"1.2.840.113549.1.9.6",archiveTimeStampV3:"0.4.0.1733.2.4",pdfRevocationInfoArchival:"1.2.840.113583.1.1.8",adobeTimeStamp:"1.2.840.113583.1.1.9.1"},this.objCache={},this.name2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];if(void 0===this.name2oidList[e])throw"Name of ObjectIdentifier not defined: "+e;var t=this.name2oidList[e],i=new u.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=i,i},this.atype2obj=function(e){if(void 0!==this.objCache[e])return this.objCache[e];var t;if(e.match(/^\d+\.\d+\.[0-9.]+$/))t=e;else if(void 0!==this.atype2oidList[e])t=this.atype2oidList[e];else{if(void 0===this.name2oidList[e])throw"AttributeType name undefined: "+e;t=this.name2oidList[e]}var i=new u.asn1.DERObjectIdentifier({oid:t});return this.objCache[e]=i,i}},u.asn1.x509.OID.oid2name=function(e){var t=u.asn1.x509.OID.name2oidList;for(var i in t)if(t[i]==e)return i;return""},u.asn1.x509.OID.oid2atype=function(e){var t=u.asn1.x509.OID.atype2oidList;for(var i in t)if(t[i]==e)return i;return e},u.asn1.x509.OID.name2oid=function(e){if(e.match(/^[0-9.]+$/))return e;var t=u.asn1.x509.OID.name2oidList;return void 0===t[e]?"":t[e]},u.asn1.x509.X509Util={},u.asn1.x509.X509Util.newCertPEM=function(e){var t=u.asn1.x509;return t.TBSCertificate,new(0,t.Certificate)(e).getPEM()},K.getPosArrayOfChildrenFromHex=function(e){return Te.getChildIdx(e,0)},K.getHexValueArrayOfChildrenFromHex=function(e){var t,i=Te.getV,n=i(e,(t=K.getPosArrayOfChildrenFromHex(e))[0]),r=i(e,t[1]),o=i(e,t[2]),s=i(e,t[3]),a=i(e,t[4]),u=i(e,t[5]),c=i(e,t[6]),l=i(e,t[7]),h=i(e,t[8]);return(t=new Array).push(n,r,o,s,a,u,c,l,h),t},K.prototype.readPrivateKeyFromPEMString=function(e){var t=ue(e),i=K.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8])},K.prototype.readPKCS5PrvKeyHex=function(e){var t=K.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},K.prototype.readPKCS8PrvKeyHex=function(e){var t,i,n,r,o,s,a,u,c=Te,l=c.getVbyListEx;if(!1===c.isASN1HEX(e))throw new Error("not ASN.1 hex string");try{t=l(e,0,[2,0,1],"02"),i=l(e,0,[2,0,2],"02"),n=l(e,0,[2,0,3],"02"),r=l(e,0,[2,0,4],"02"),o=l(e,0,[2,0,5],"02"),s=l(e,0,[2,0,6],"02"),a=l(e,0,[2,0,7],"02"),u=l(e,0,[2,0,8],"02")}catch(e){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(t,i,n,r,o,s,a,u)},K.prototype.readPKCS5PubKeyHex=function(e){var t=Te,i=t.getV;if(!1===t.isASN1HEX(e))throw new Error("keyHex is not ASN.1 hex string");var n=t.getChildIdx(e,0);if(2!==n.length||"02"!==e.substr(n[0],2)||"02"!==e.substr(n[1],2))throw new Error("wrong hex for PKCS#5 public key");var r=i(e,n[0]),o=i(e,n[1]);this.setPublic(r,o)},K.prototype.readPKCS8PubKeyHex=function(e){var t=Te;if(!1===t.isASN1HEX(e))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==t.getTLVbyListEx(e,0,[0,0]))throw new Error("not PKCS8 RSA public key");var i=t.getTLVbyListEx(e,0,[1,0]);this.readPKCS5PubKeyHex(i)},K.prototype.readCertPubKeyHex=function(e,t){var i,n;(i=new ze).readCertHex(e),n=i.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)},K.prototype.sign=function(e,t){var i,n=(i=e,u.crypto.Util.hashString(i,t));return this.signWithMessageHash(n,t)},K.prototype.signWithMessageHash=function(e,t){var i=W(u.crypto.Util.getPaddedDigestInfoHex(e,t,this.n.bitLength()),16);return xe(this.doPrivate(i).toString(16),this.n.bitLength())},K.prototype.signPSS=function(e,t,i){var n,r=(n=oe(e),u.crypto.Util.hashHex(n,t));return void 0===i&&(i=-1),this.signWithMessageHashPSS(r,t,i)},K.prototype.signWithMessageHashPSS=function(e,t,i){var n,r=re(e),o=r.length,s=this.n.bitLength()-1,a=Math.ceil(s/8),c=function(e){return u.crypto.Util.hashHex(e,t)};if(-1===i||void 0===i)i=o;else if(-2===i)i=a-o-2;else if(i<-2)throw new Error("invalid salt length");if(a<o+i+2)throw new Error("data too long");var l="";i>0&&(l=new Array(i),(new G).nextBytes(l),l=String.fromCharCode.apply(String,l));var d=re(c(oe("\0\0\0\0\0\0\0\0"+r+l))),p=[];for(n=0;n<a-i-o-2;n+=1)p[n]=0;var A=String.fromCharCode.apply(String,p)+""+l,f=Ee(d,A.length,c),M=[];for(n=0;n<A.length;n+=1)M[n]=A.charCodeAt(n)^f.charCodeAt(n);var g=65280>>8*a-s&255;for(M[0]&=~g,n=0;n<o;n++)M.push(d.charCodeAt(n));return M.push(188),xe(this.doPrivate(new h(M)).toString(16),this.n.bitLength())},K.prototype.verify=function(e,t){if(null==(t=t.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var i=W(t,16),n=this.n.bitLength();if(i.bitLength()>n)return!1;var r=this.doPublic(i).toString(16);if(r.length+3!=n/4)return!1;var o=je(r.replace(/^1f+00/,""));if(0==o.length)return!1;var s,a=o[0];return o[1]==(s=e,u.crypto.Util.hashString(s,a))},K.prototype.verifyWithMessageHash=function(e,t){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var i=W(t,16);if(i.bitLength()>this.n.bitLength())return 0;var n=je(this.doPublic(i).toString(16).replace(/^1f+00/,""));return 0!=n.length&&(n[0],n[1]==e)},K.prototype.verifyPSS=function(e,t,i,n){var r=function(e){return u.crypto.Util.hashHex(e,i)}(oe(e));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(r,t,i,n)},K.prototype.verifyWithMessageHashPSS=function(e,t,i,n){if(t.length!=Math.ceil(this.n.bitLength()/4))return!1;var r,o=new h(t,16),s=function(e){return u.crypto.Util.hashHex(e,i)},a=re(e),c=a.length,l=this.n.bitLength()-1,d=Math.ceil(l/8);if(-1===n||void 0===n)n=c;else if(-2===n)n=d-c-2;else if(n<-2)throw new Error("invalid salt length");if(d<c+n+2)throw new Error("data too long");var p=this.doPublic(o).toByteArray();for(r=0;r<p.length;r+=1)p[r]&=255;for(;p.length<d;)p.unshift(0);if(188!==p[d-1])throw new Error("encoded message does not end in 0xbc");var A=(p=String.fromCharCode.apply(String,p)).substr(0,d-c-1),f=p.substr(A.length,c),M=65280>>8*d-l&255;if(0!=(A.charCodeAt(0)&M))throw new Error("bits beyond keysize not zero");var g=Ee(f,A.length,s),y=[];for(r=0;r<A.length;r+=1)y[r]=A.charCodeAt(r)^g.charCodeAt(r);y[0]&=~M;var m=d-c-n-2;for(r=0;r<m;r+=1)if(0!==y[r])throw new Error("leftmost octets not zero");if(1!==y[m])throw new Error("0x01 marker not found");return f===re(s(oe("\0\0\0\0\0\0\0\0"+a+String.fromCharCode.apply(String,y.slice(-n)))))},K.SALT_LEN_HLEN=-1,K.SALT_LEN_MAX=-2,K.SALT_LEN_RECOVER=-2,ze.hex2dn=function(e,t){void 0===t&&(t=0);var i=new ze;return Te.getTLV(e,t),i.getX500Name(e).str},ze.hex2rdn=function(e,t){if(void 0===t&&(t=0),"31"!==e.substr(t,2))throw new Error("malformed RDN");for(var i=new Array,n=Te.getChildIdx(e,t),r=0;r<n.length;r++)i.push(ze.hex2attrTypeValue(e,n[r]));return(i=i.map((function(e){return e.replace("+","\\+")}))).join("+")},ze.hex2attrTypeValue=function(e,t){var i=Te,n=i.getV;if(void 0===t&&(t=0),"30"!==e.substr(t,2))throw new Error("malformed attribute type and value");var r=i.getChildIdx(e,t);2!==r.length||e.substr(r[0],2);var o=n(e,r[0]),s=u.asn1.ASN1Util.oidHexToInt(o);return u.asn1.x509.OID.oid2atype(s)+"="+re(n(e,r[1]))},ze.getPublicKeyFromCertHex=function(e){var t=new ze;return t.readCertHex(e),t.getPublicKey()},ze.getPublicKeyFromCertPEM=function(e){var t=new ze;return t.readCertPEM(e),t.getPublicKey()},ze.getPublicKeyInfoPropOfCertPEM=function(e){var t,i,n=Te.getVbyList,r={};return r.algparam=null,(t=new ze).readCertPEM(e),i=t.getPublicKeyHex(),r.keyhex=n(i,0,[1],"03").substr(2),r.algoid=n(i,0,[0,0],"06"),"2a8648ce3d0201"===r.algoid&&(r.algparam=n(i,0,[0,1],"06")),r},ze.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var be,Oe=[(be=new ze,be.readCertPEM(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVS@\tPPNErtNVONtVWNZR}@]nU\0ZaZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\\QN>Z\tN\\Q^B[QqnS=\b\\QN>Zwp\\Q^B[QqnZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaPPNvVQ^fWX|gVup[N^ROO^NQttV]NQPPNt|PttVONZU|C\b\\@@e^Xv{[vTtd8`nyO@ebN[bqx=ng?\tS^w@|XAz|qUTwfzn]Bu<qs_ae\\y<}u`eRAoE`_\\s\0r|b{rp_o<oC@o=x\bw_cUUZPApQevD\\FxFoFgE=<sq[p<coqyn>TEpP@aSC_YDU8\0|8TB?c>r\\=rp`pcwP}c\0PP_\\RS\\EPVSy8x`\0?R|NP\tP>}A^VP}Ex\bUZa=syDw}>Ya8wPp[pRnn\brU^dE8U?a\bcW|<FEbbupn^`ZNr\tsof[wA}e{\\z}w[YDQ|dt=wC\tNvbRZ@@U|ZAYpFsabCBB\\`wrqxsYW8uFyWdaWezeUeA_8VoVupvY[TD[OYdpO\bC[wX\\O]=[QRpV\0d`N\0RXt^Z}vEpdC=\bY?=V}?^W\bad|qN@Ww>@PycaqANE]asPcE^OB_VA?>wzeftac\tZ\tguf\bF]DCP?znNYf\tuaYu[`=b|v]Bp=RAS``\\PRDW]_`UXdUg=SuqwVFDeB\tD8{B>\\sPYbEU\tFQXz\0@`zsqgfD\0[WY\bPeZc}\t\0bx?Rfed}BUe|Uo\0y?\bsSXZOSBCgbFqf\0Bs?b?d<VE\\Zzns\\d@?dPvf\\{}_\0Sd[<q_YBY`Ffg=sY>{t<fu]xrFNtZONNTwbQO\\ZO=TN>bqQt^dOOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aNZOt[cU_ZROaNQN^U<ZN=TP`\0T`Vo@Q^ROPbNNAVPN^P\0{y\0Bs\\8\0R[z]w??qZP?NpgdenSuvv?>|f_?UpYPcQ\\gCb8zxtSvsOQNg>[\\\0\bx\b_o@8\0g`Z<PyUE`8yu}\\g{@`s`zUgErRtve{YdCvoO@>WFDtABNp\0feUWszpQaEYNAc]^xB[@]BDAN8\b}XA=EnO}Pud8TA\t?yPrVv{\\>E]o`BO^RE^X[W[rEU?x\bf>V\tOUwY=>X[\\E`tW[8}VwpFBQcnrPF}yUtd8<Doe_\b[oOVUep@pYY\0cegY{r\t?\bAbq?ff8}UaXoN_D]_X_8yozYFT`N{`\\{zvu?\bDWT}=_<StX\tNx\0\b\t\0aT=c@ucnWfR[vf>RFxAFV}{N`dN^\\<eawBPxx}quT=|{T_R@Fp^Y<ZevRsWaZ]V\tCVrRVtAAc[\tQp|d|tqoQ=T|XX\t=u\\N8XNCx\\aU>wz\tX<e@Vc?dy\\|^FEq|=p`pBdF@bs^d<]vp\\^TZ\tP\bZ\b\\YNNSZ_\\w^|TsD8db\t_\tY\\o^Cw>Z\0x\\^aN]wWf\bA}\tC^d_{ZC@\by]gY@E\tBFY?OsaqbDcVgQbZeFc\tovtucxnq|<TnuyXRveYFOegCpAs{YTe|>bE<OXsSqCBWD_SVepfvCCUg]z\tZvQ[\0s|U>pFz\b=OwT``fNJJ:::::R[Q-PR_aVSVPNaR:::::")),be)];function Se(e,t){var i=e.getIssuerHex();if(i===e.getSubjectHex())return e.verifySignature(e.getPublicKey());var n=function(e,t){for(var i=0,n=t;i<n.length;i++){var r=n[i];if(r.getSubjectHex()===e)return r}}(i,t);return!!n&&(!1!==e.verifySignature(n.getPublicKey())&&Se(n,t))}function Le(e){return e.getIssuerHex()!==e.getSubjectHex()&&Se(e,Oe)}!function(e){var t=new ze;"string"==typeof e?t.readCertPEM(e):t.readCertHex(e.hex);var i=Le(t);Oe.push(t)}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}(":::::ORTV[-PR_aVSVPNaR:::::ZVVTU\tPPONrtNVONtVWNW=_SVw\tVE=ZN=TP`\0T`Vo@Q^ROPbNZVTSZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tR]ZN=TN>bRPtTn?bf?FZ_NQtfQc^^YQNq`gdSp?cyZ^P^fQc^^QQNWQ^aRvZPNTP`\0T`Vo@Q^RWN_fapzFqSFwfbOndSnzyuYz[oaNrS=\bZQNAZaN\\aZ\t[QSnS=\b[aNBZQZ\\aZ\t[QSnZVTaZ^P^fQc^^TRWQawR^ZNATN>bRPNU^zc}nzyg\tR^ZNATN>bROU^zc}nzyg\tRbZOVTN>bRPtYoTyuoz}}f`Bwo?=RQN\\Ot[cONZO>Wyfd\tgdbRaN]Ot[cONZZPRuupz_@feWyZ`bVfWX|gVup[N^xOSugnec|fdyndB{^T}fdB\0ndRf?FZVVPVwN[Otx\0uxvTF=ON^RSNN\\PNtENZVVPPtXPNtRN?=?]q[VD|{\\oyo`oOu}F\tSAe`tn[t\tu\b8^a]qx\bE_^ZN?[QC\0yuOpybY8r\\RPAS=8rUq\0E8>xean^e\bf]Y`XO}{C[Ur^?\0x[SRXvVQ\\CFr}QnAPRQFO=Yw\0_TePCOFV@|N>ROXcDrT<>bW<ssO?NOT{^s]uU\0gS\bBffsfE\0AfDyQEZR`]XBo|Qw}yYdwwTvOFcBndUz^\\{]\tb=^yQYSTQ`]\0?tR{WRUun\\\0bVe_E|VWWV|r\tAo\0\tF`fdzCnRtq\br\t\b8eBp=Z\\TRaadc}@Eub`quuNqAdF\0aUay{}x>tgVz`\t_YBFwu_q?egt8v[o\x008\twTQcrA\t<z{DZoEE^rZTrpaZQzqpBY]^zt8[bQv}yEWw\tXDYQB\0QB\bx_^X]|uEDtPf[n[r_bpB[bE}?ung|bnU|NYOoedY_tvXySZfYPdWV]OE^\bOFwA}<uXoO}_NDz8aonzWOfcv@?>snfqu@FeEx^\\\bVfuO`\\\0tSg]zDU}QrAT|\tOZV|OvpVD<sN@z`<_cSrNCW>?=Au?g_8v{|}}WF>Sr>QBxO\td_D}eBb?Uq^b\t[y}x]}{?P|BQtecTB[pQBW>|p|nfv\0zUxOO}WqwE=<PURZy@X8r\\]u=<pPNRNNn\\OtaO<ZOETPdPT`NTT8RVOQ^^`SuO`gdSp?cyVRg\bo?B=VR[OZO=TN>bqQt^dOO`FyWadZcAD\tpeXybcW@}Qf\\QNsOt[cU`ZRTQNdtOaAFXw=\tPCVxsv?{`a\bvS8YQ[aN]Ot[cU_ZONsEROaNQN^U<ZNTN>bqQ^RNVOOwN[Otx\0uxvTF=ON^SNN\\PNtRNrx\ta[}tP_g8FbD\0^\0qt<f88ufuN]^}]gp\bqYudF88Fas_Ef`\t?^x>X}esa{>\\r?eE]CC_cZ[vQs\t\t>gX[szONg=^pn=<e]nbSz\bZvac\b[w^nA_`vP|@8w[}nQobe=??oRYf{vpRxcC}yCd>8[NDx{Ne\\t8oou=guC>>gvb}ACd\t``Ntq\0yC[Q{|ynpNQqSqzxF<_PFDw<]Bnnu>F<XgU_Zf\\\\A=gu\\codOwQ]oQ<f>gv_pwozwC}xX>C`c]suEdfW?cbeo\b`BbyR@eFTUwSud=t]sS\\onc\tXSq\t{\0DvAVBbnTqEE[QzDyqF`bF}R=Q?VeDo<Vzb\0w}D}NZ\0t}^?OyFP\bVaVNrTNYqe?[NRYTSQby@yzWvT`wQo}y]c_WgxBYCy\tRNRg@NZCaaq8?`\t^`?ryD\t=obzw?E]Ou]n@>bVzqAQT?@_zo@}CxWVTUsAYdNd?{APQr8{P]]AZ>aR\0[D<z?Tr@`u@X|YDwd_<p<>zWE>]\0=X`\b@uucp|^_Qb@uZouTX^o\0\\{PCq{ug8^f[YQAWad8FNqxFQE?ZOo\t}RnO\bsQc\txyccn=nxvs>bDBf\b\bW\\TuTnvAO^U\0QXC>xx8FxRFf<tJ:::::R[Q-PR_aVSVPNaR:::::"));var ke=2*Math.PI,Ce=Math.PI/2;function Pe(e){return e>0&&e<=ke?e:(e%ke+ke)%ke}var _e=function(e){function i(t){var i=e.call(this,t,1,.1,1e3)||this;return i.pose={longitude:0,latitude:0,fov:t,distance:0,offset:new r.Vector3},i.computePose(),i}return t.__extends(i,e),i.prototype.computePose=function(){var e=this.getWorldDirection(new r.Vector3);return this.pose.longitude=Pe(-Math.atan2(e.x,-e.z)),this.pose.latitude=-Math.asin(e.y/1),this.pose.fov=this.fov,this.pose.distance=0,this.pose.offset.copy(this.position),this},i.prototype.setFromPose=function(e){var t,i,n,o,s,a=Pe(null!==(t=e.longitude)&&void 0!==t?t:this.pose.longitude),u=Math.max(1e-4-Ce,Math.min(Ce-1e-4,null!==(i=e.latitude)&&void 0!==i?i:this.pose.latitude)),c=null!==(n=e.fov)&&void 0!==n?n:this.pose.fov,l=null!==(o=e.distance)&&void 0!==o?o:this.pose.distance,h=null!==(s=e.offset)&&void 0!==s?s:this.pose.offset,d=function(e){var t=Math.abs(Math.cos(e.latitude));return new r.Vector3(-Math.sin(e.longitude)*t,-Math.sin(e.latitude),-Math.cos(e.longitude)*t)}({longitude:a,latitude:u}).normalize();return this.position.set(0,0,0),this.lookAt(d),this.position.add(h).sub(d.clone().setLength(l)),this.fov!==c&&(this.fov=c,this.updateProjectionMatrix()),this.updateMatrixWorld(),this.pose.longitude=a,this.pose.latitude=u,this.pose.fov=c,this.pose.distance=l,this.pose.offset.copy(h),this},i.prototype.copyPose=function(){return{longitude:this.pose.longitude,latitude:this.pose.latitude,fov:this.pose.fov,distance:this.pose.distance,offset:this.pose.offset.clone()}},i}(r.PerspectiveCamera),Be=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return t.__extends(i,e),i.prototype.add=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return e.prototype.add.apply(this,t)},i.prototype.remove=function(){for(var t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];return e.prototype.remove.apply(this,t)},i}(r.Scene),Ue=function(e){function i(t){var i=t.preserveDrawingBuffer,n=void 0===i||i,o=t.backgroundColor,s=void 0===o?1579548:o,a=t.backgroundAlpha,u=void 0===a?1:a,c=t.pixelRatio,l=void 0===c?1:c,h=t.antialias,d=void 0!==h&&h,p=e.call(this,{antialias:d,preserveDrawingBuffer:n,alpha:u<1})||this;return p.setPixelRatio(l),p.setClearColor(s,u),p.outputEncoding=r.sRGBEncoding,p.autoClear=!0,p}return t.__extends(i,e),i}(r.WebGLRenderer);function Re(e){return null==e}function Qe(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]}function Ye(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function Fe(){return(Ye()+Ye()+"-"+Ye()+"-4"+Ye().substr(0,3)+"-"+Ye()+"-"+Ye()+Ye()+Ye()).toLowerCase()}var Ve="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),He="undefined"!=typeof performance?function(){return Ve+performance.now()}:function(){return Date.now()},Ge=function(){if("undefined"!=typeof window){var e=window;return e.requestAnimationFrame||e.mozRequestAnimationFrame||e.webkitRequestAnimationFrame||e.msRequestAnimationFrame||function(e){return setTimeout(e,16)}}return function(e){return setTimeout(e,16)}}(),We=function(){function e(){this.frames=[],this.stoped=!1,this.time=He(),this.loop=this.loop.bind(this),this.loop()}return Object.defineProperty(e,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new e),this.sharedInstance},enumerable:!1,configurable:!0}),e.prototype.loop=function(){if(!this.stoped){var e=He(),t=e-this.time;this.time=e;for(var i=[],n=0,r=this.frames;n<r.length;n++){var o=r[n];if(o.delay>0)o.delay=o.delay-1;else{try{o.callback(e,t)}catch(e){console.error(e)}o.once&&i.push(o)}}i.length>0&&(this.frames=this.frames.filter((function(e){return-1===i.indexOf(e)}))),Ge(this.loop)}},e.prototype.remove=function(e){var t=this.frames.indexOf(e);t>=0&&this.frames.splice(t,1)},e.prototype.add=function(e,t,i,n){var r=this;void 0===t&&(t=!1),void 0===i&&(i=0),void 0===n&&(n=5);var o={callback:e,once:t,delay:i,order:n};return this.frames.push(o),this.frames.sort((function(e,t){return e.order-t.order})),function(){return r.remove(o)}},e.prototype.disponse=function(){this.stoped=!0,this.frames.length=0},e.prototype.getFrameTime=function(e){return this.add((function(t,i){return e(i)}),!0,0,0)},e}(),qe=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return t.__extends(i,e),i}(r.Mesh),Ke=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.needsRender=!0,t.enableTransparent=!0,t}return t.__extends(i,e),i.prototype.getTransparent=function(){return this.enableTransparent},i.prototype.setTransparent=function(e){this.enableTransparent=e,this.traverse((function(t){t instanceof qe&&t.material.forEach((function(t){t.transparent=e}))}))},i.prototype.getMaterial=function(){var e=null;return this.traverse((function(t){if(null===e&&t instanceof qe){var i=t.material[0];e={pano0:i.pano0,pano1:i.pano1,modelAlpha:i.modelAlpha,progress:i.progress,useBlackTransition:i.useBlackTransition,perspToOrtho:i.perspToOrtho,opacity:i.opacity}}})),e},i.prototype.setMaterial=function(e){this.traverse((function(t){t instanceof qe&&t.material.forEach((function(t){void 0!==e.pano0&&(t.pano0=e.pano0),void 0!==e.pano1&&(t.pano1=e.pano1),void 0!==e.modelAlpha&&(t.modelAlpha=e.modelAlpha),void 0!==e.progress&&(t.progress=e.progress),void 0!==e.useBlackTransition&&(t.useBlackTransition=e.useBlackTransition),void 0!==e.perspToOrtho&&(t.perspToOrtho=e.perspToOrtho),void 0!==e.opacity&&(t.opacity=e.opacity)}))}))},i.prototype.disposeMaterial=function(){this.traverse((function(e){if(e instanceof qe){var t=[];e.material.forEach((function(e){var i=e.uniforms;Object.keys(i).map((function(e){if(/^pano\d\_/.test(e))i[e].value=null;else{var n=i[e].value;n&&"function"==typeof n.dispose&&-1===t.indexOf(n)&&(i[e].value=null,t.push(n))}})),e.dispose()})),t.forEach((function(e){return e.dispose()}))}}))},i.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof qe&&e.geometry.dispose()}))},i}(r.Group),Ze=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t}return t.__extends(i,e),i}(Ke),Xe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("{vs|z-rp@-z|qryPr{rH{vs|z-sy|n-}r}a|\\u|Hn\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{Hn\bv{t-rp@-|yq]|vv|{H0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:z]|vv|{;\b\tH--|yq]|vv|{-J-5z|qryZnv-7-n{s|zrq6;\b\tH--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--<<-修正正交相机模拟--rp@-pnzrn[|zny-J-5z|qrycvrZnv-7-rpA5=;=9-=;=9->;=9-=;=66;\b\tH--sy|n-|u|Qvn{pr-J-zn5=;=>9-q|5pnzrn[|zny9-z|qryPr{r-:-pnzrn]|vv|{66H--tyl]|vv|{;-J-zv5-tyl]|vv|{;9-tyl]|vv|{;-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H--tyl]|vv|{;\b-J-zv5-tyl]|vv|{;\b9-tyl]|vv|{;\b-7-5-tyl]|vv|{;\t-<-|u|Qvn{pr-69-}r}a|\\u|-6H\f"),Je=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=60qrsv{r-aNb-C;?E@>EB?{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6{vs|z-rp?-}n{|cvqr|lv\trH{vs|z-znA-}n{|cvqr|lznvH{vs|z-sy|n-}n{|cvqr|lny}unH{vs|z-nz}yr?Q-}n{|cvqr|lzn}H0r{qvsn\bv{t-rp@-|yq]|vv|{H0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{Krp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-qvssrP|y|-J-rpA5qvssr;to9-|}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rp@-}n{|=a|crr-J-5|yq]|vv|{-:-}n{|=lznvh@j;\b\t6-7-zn@5}n{|=lznv6H--rp@-}n{|>a|crr-J-5|yq]|vv|{-:-}n{|>lznvh@j;\b\t6-7-zn@5}n{|>lznv6H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=lzn}9-}n{|=a|crr6H--rpA-}n{|>P|y|-J-rrPor5}n{|>lzn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-rrPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr6;H----}n{|>P|y|;n-J->;=-:-rrPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr6;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6----rp@-pnzrna|crr-J-|yq]|vv|{-:-pnzrn]|vv|{H----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|lznvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|lzn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|lny}un6H--0r{qvs--tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H--tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H\f");function $e(){return"undefined"==typeof document?{}:document.createElementNS("http://www.w3.org/1999/xhtml","img")}var et=$e();et.width=et.height=8;var tt=new r.Texture(et);tt.name="EMPTY_TEXTURE";var it=new r.CubeTexture([et,et,et,et,et,et]);it.name="EMPTY_CUBE_TEXTURE",tt.dispose=it.dispose=function(){};var nt=Object.assign({modelAlpha:new r.Uniform(0),progress:new r.Uniform(0),pano0_map:new r.Uniform(it),pano0_luminanceMap:new r.Uniform(null),pano0_matrix:new r.Uniform(new r.Matrix4),pano1_map:new r.Uniform(it),pano1_luminanceMap:new r.Uniform(null),pano1_matrix:new r.Uniform(new r.Matrix4),modelCenter:new r.Uniform(new r.Vector3),perspToOrtho:new r.Uniform(0)},{exposure:new r.Uniform(1),emissive:new r.Uniform(new r.Color(0)),emissiveMap:new r.Uniform(null),specular:new r.Uniform(new r.Color(1118481)),specularMap:new r.Uniform(null),normalMap:new r.Uniform(null),bumpMap:new r.Uniform(null),shininess:new r.Uniform(30)},r.UniformsLib.common,r.UniformsLib.lights),rt=function(e){function i(t){var i,n,o,s,a,u,c;void 0===t&&(t={});var l=e.call(this,{vertexShader:Xe,fragmentShader:Je,uniforms:r.UniformsUtils.clone(nt),defines:{USE_MAP:!0,USE_UV:!0,USE_LUMINANCE:!1,USE_BLACK_TRANSITION:!1,USE_PANO_VIDEO:!1},blending:r.NoBlending,lights:!0})||this;return Object.defineProperties(l,{pano0:{get:function(){return this.uniforms.pano0_map.value===it?null:{map:this.uniforms.pano0_map.value,luminanceMap:this.uniforms.pano0_luminanceMap.value,matrix:this.uniforms.pano0_matrix.value.clone()}},set:function(e){null===e?(this.uniforms.pano0_map.value=it,this.uniforms.pano0_luminanceMap.value=null,this.uniforms.pano0_matrix.value.identity()):(this.uniforms.pano0_map.value=e.map,this.uniforms.pano0_luminanceMap.value=e.luminanceMap,this.uniforms.pano0_matrix.value.copy(e.matrix));var t=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},pano1:{get:function(){return this.uniforms.pano1_map.value===it?null:{map:this.uniforms.pano1_map.value,luminanceMap:this.uniforms.pano1_luminanceMap.value,matrix:this.uniforms.pano1_matrix.value.clone()}},set:function(e){null===e?(this.uniforms.pano1_map.value=it,this.uniforms.pano1_luminanceMap.value=null,this.uniforms.pano1_matrix.value.identity()):(this.uniforms.pano1_map.value=e.map,this.uniforms.pano1_luminanceMap.value=e.luminanceMap,this.uniforms.pano1_matrix.value.copy(e.matrix));var t=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==t&&(this.defines.USE_LUMINANCE=t,this.needsUpdate=!0)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(e){this.uniforms.modelAlpha.value=e}},progress:{get:function(){return this.uniforms.progress.value},set:function(e){this.uniforms.progress.value=e}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(e){this.defines.USE_BLACK_TRANSITION!==e&&(this.defines.USE_BLACK_TRANSITION=e,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e,this.blending=e<1?r.NormalBlending:r.NoBlending}},perspToOrtho:{get:function(){return this.uniforms.perspToOrtho.value},set:function(e){this.uniforms.perspToOrtho.value=e}}}),l.pano0=null!==(i=t.pano0)&&void 0!==i?i:null,l.pano1=null!==(n=t.pano1)&&void 0!==n?n:null,l.modelAlpha=null!==(o=t.modelAlpha)&&void 0!==o?o:1,l.progress=null!==(s=t.progress)&&void 0!==s?s:0,l.useBlackTransition=null!==(a=t.useBlackTransition)&&void 0!==a&&a,l.perspToOrtho=null!==(u=t.perspToOrtho)&&void 0!==u?u:0,l.opacity=null!==(c=t.opacity)&&void 0!==c?c:1,l.originOpacity=1,l}return t.__extends(i,e),i}(r.ShaderMaterial),ot=new r.Vector3(0,0,0),st=function(e){function i(t,i){void 0===i&&(i=ot);var n=e.call(this)||this,o=new r.BoxBufferGeometry(t.max.x-t.min.x+2*i.x,t.max.y-t.min.y+2*i.y,t.max.z-t.min.z+2*i.z,1,1);o.groups.length=0,o.groups.push({start:0,count:36,materialIndex:0}),o.applyMatrix4((new r.Matrix4).makeScale(-1,1,1));var s=new rt;s.defines.USE_MAP=!1,s.defines.USE_UV=!1,s.uniforms.diffuse.value=new r.Color(16777215);var a=new qe(o,[s]);return a.floorIndex=-1,a.position.copy(t.getCenter(new r.Vector3)),a.frustumCulled=!1,n.renderOrder=-3,n.add(a),n.boundingBox=new r.Box3,n.computeBoundingBox(),n}return t.__extends(i,e),i.prototype.computeBoundingBox=function(){this.boundingBox.setFromObject(this)},i.prototype.dispose=function(){this.disposeMaterial(),this.disposeGeometry()},i}(Ze);function at(e,t){return void 0===t&&(t=ot),new st(e,t)}var ut,ct,lt,ht,dt=function(){function e(e,t,i){void 0===e&&(e=0),void 0===t&&(t=0),void 0===i&&(i=0),this.x=e,this.y=t,this.z=i}return e.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},e.prototype.set=function(e,t,i){return this.x=e,this.y=t,this.z=i,this},e.prototype.fromArray=function(e,t){return void 0===t&&(t=0),this.x=e[t],this.y=e[t+1],this.z=e[t+2],this},e.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},e.prototype.multiplyScalar=function(e){return this.x*=e,this.y*=e,this.z*=e,this},e.prototype.subVectors=function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},e.prototype.dot=function(e){return this.x*e.x+this.y*e.y+this.z*e.z},e.prototype.cross=function(e){var t=this.x,i=this.y,n=this.z;return this.x=i*e.z-n*e.y,this.y=n*e.x-t*e.z,this.z=t*e.y-i*e.x,this},e.prototype.crossVectors=function(e,t){var i=e.x,n=e.y,r=e.z,o=t.x,s=t.y,a=t.z;return this.x=n*a-r*s,this.y=r*o-i*a,this.z=i*s-n*o,this},e.prototype.clone=function(){return new e(this.x,this.y,this.z)},e}(),pt=function(){function e(e,t,i,n,r){this._extentsMin=e,this._extentsMax=t,this._startIndex=i,this._endIndex=n,this._level=r,this._node0=null,this._node1=null,this.elementCount=n-i,this.center=[(e.x+t.x)/2,(e.y+t.y)/2,(e.z+t.z)/2];var o,s=this.size=[t.x-e.x,t.y-e.y,t.z-e.z];o=s[0]>s[1]?s[1]>s[2]?[2,1,0]:s[0]>s[2]?[1,2,0]:[1,0,2]:s[1]>s[2]?s[0]>s[2]?[2,0,1]:[0,2,1]:[0,1,2],this.order=o}return e.prototype.clearShapes=function(){this._startIndex=-1,this._endIndex=-1,this.elementCount=0},e}(),At=(ut=new dt,ct=new dt,lt=new dt,ht=new dt,function(e,t,i,n,r,o){ct.subVectors(t,e),lt.subVectors(i,e),ht.crossVectors(ct,lt);var s,a=r.dot(ht);if(a>0){if(o)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}ut.subVectors(n,e);var u=s*r.dot(lt.crossVectors(ut,lt));if(u<0)return null;var c=s*r.dot(ct.cross(ut));if(c<0)return null;if(u+c>a)return null;var l=-s*ut.dot(ht);if(l<0)return null;var h=l/a;return(new dt).copy(r).multiplyScalar(h).add(n)});function ft(e,t,i){var n={min:0,max:0};t.x>=0?(n.min=(i._extentsMin.x-e.x)*t.x,n.max=(i._extentsMax.x-e.x)*t.x):(n.min=(i._extentsMax.x-e.x)*t.x,n.max=(i._extentsMin.x-e.x)*t.x);var r={min:0,max:0};if(t.y>=0?(r.min=(i._extentsMin.y-e.y)*t.y,r.max=(i._extentsMax.y-e.y)*t.y):(r.min=(i._extentsMax.y-e.y)*t.y,r.max=(i._extentsMin.y-e.y)*t.y),n.min>r.max||r.min>n.max)return!1;r.min>n.min&&(n.min=r.min),r.max<n.max&&(n.max=r.max);var o={min:0,max:0};return t.z>=0?(o.min=(i._extentsMin.z-e.z)*t.z,o.max=(i._extentsMax.z-e.z)*t.z):(o.min=(i._extentsMax.z-e.z)*t.z,o.max=(i._extentsMin.z-e.z)*t.z),!(n.min>o.max||o.min>n.max)&&(o.min>n.min&&(n.min=o.min),o.max<n.max&&(n.max=o.max),!(n.max<0))}var Mt=function(){function e(e,t){void 0===t&&(t=10),this._trianglesArray=e,this._maxTrianglesPerNode=t,this._bboxArray=this.calcBoundingBoxes(e),this._bboxHelper=new Float32Array(this._bboxArray.length),this._bboxHelper.set(this._bboxArray);var i=e.length/9,n=this.calcExtents(0,i,1e-6);this._rootNode=new pt(n[0],n[1],0,i,0),this._nodesToSplit=[this._rootNode],this.splitNode()}return e.prototype.calcBoundingBoxes=function(e){for(var t,i,n,r,o,s,a,u,c,l,h,d,p,A,f,M=e.length/9,g=new Float32Array(7*M),y=0,m=0,v=0;v<M;y+=9,m+=7,v++)t=e[y],i=e[y+1],n=e[y+2],r=e[y+3],o=e[y+4],s=e[y+5],r<(l=t)&&(l=r),(a=e[y+6])<l&&(l=a),o<(h=i)&&(h=o),(u=e[y+7])<h&&(h=u),s<(d=n)&&(d=s),(c=e[y+8])<d&&(d=c),r>(p=t)&&(p=r),a>p&&(p=a),o>(A=i)&&(A=o),u>A&&(A=u),s>(f=n)&&(f=s),c>f&&(f=c),g[m]=v,g[m+1]=l,g[m+2]=h,g[m+3]=d,g[m+4]=p,g[m+5]=A,g[m+6]=f;return g},e.prototype.splitNode=function(){if(this._rootNode)for(this._splitNode(this._rootNode);this._nodesToSplit.length>0;)this._splitNode(this._nodesToSplit.pop())},e.prototype._splitNode=function(e){if(!(e.elementCount<=this._maxTrianglesPerNode||0===e.elementCount)){for(var t=e._startIndex,i=e._endIndex,n=[[],[],[]],r=[[],[],[]],o=e.center,s=7*(v=t);v<i;v++,s+=7)for(var a=0;a<3;a++)(this._bboxArray[s+1+a]+this._bboxArray[s+4+a])/2<o[a]?n[a][n[a].length]=v:r[a][r[a].length]=v;var u=[!(n[0].length&r[0].length),!(n[1].length&r[1].length),!(n[2].length&r[2].length)];if(!(u[0]&u[1]&u[2])){var c,l,h=e.order;for(a=0;a<3;a++){var d=h[a];if(!u[d]){c=n[d],l=r[d];break}}for(var p,A=t,f=A+c.length,M=f,g=i,y=e._startIndex,m=c.concat(l),v=0;v<m.length;v++)p=m[v],this._bboxHelper[7*y]=this._bboxArray[7*p],this._bboxHelper[7*y+1]=this._bboxArray[7*p+1],this._bboxHelper[7*y+2]=this._bboxArray[7*p+2],this._bboxHelper[7*y+3]=this._bboxArray[7*p+3],this._bboxHelper[7*y+4]=this._bboxArray[7*p+4],this._bboxHelper[7*y+5]=this._bboxArray[7*p+5],this._bboxHelper[7*y+6]=this._bboxArray[7*p+6],y++;var N=this._bboxHelper.subarray(7*e._startIndex,7*e._endIndex);this._bboxArray.set(N,7*e._startIndex);var D=this.calcExtents(A,f,1e-6),w=this.calcExtents(M,g,1e-6),T=new pt(D[0],D[1],A,f,e._level+1),x=new pt(w[0],w[1],M,g,e._level+1);e._node0=T,e._node1=x,e.clearShapes(),this._nodesToSplit.push(T,x)}}},e.prototype.calcExtents=function(e,t,i){if(e>=t)return[{x:0,y:0,z:0},{x:0,y:0,z:0}];var n,r=7*e,o=7*t+1,s=this._bboxArray[r+1],a=this._bboxArray[r+2],u=this._bboxArray[r+3],c=this._bboxArray[r+4],l=this._bboxArray[r+5],h=this._bboxArray[r+6],d=this._bboxArray;for(r+=7;r<o;r+=7)(n=d[r+1])<s&&(s=n),(n=d[r+2])<a&&(a=n),(n=d[r+3])<u&&(u=n),(n=d[r+4])>c&&(c=n),(n=d[r+5])>l&&(l=n),(n=d[r+6])>h&&(h=n);return[{x:s-i,y:a-i,z:u-i},{x:c+i,y:l+i,z:h+i}]},e.prototype.intersectRay=function(e,t,i){for(var n=[this._rootNode],r=[],o=[],s=new dt(1/t.x,1/t.y,1/t.z);n.length>0;){var a=n.pop();if(ft(e,s,a)){a._node0&&n.push(a._node0),a._node1&&n.push(a._node1);for(var u=a._startIndex;u<a._endIndex;u++)r.push(this._bboxArray[7*u])}}var c=new dt,l=new dt,h=new dt,d=new dt(e.x,e.y,e.z),p=new dt(t.x,t.y,t.z);for(u=0;u<r.length;u++){var A=r[u];c.fromArray(this._trianglesArray,9*A),l.fromArray(this._trianglesArray,9*A+3),h.fromArray(this._trianglesArray,9*A+6);var f=At(c,l,h,d,p,i);f&&o.push({triangle:[c.clone(),l.clone(),h.clone()],triangleIndex:A,intersectionPoint:f})}return o},e.prototype.dispose=function(){this._trianglesArray=new Float32Array,this._bboxArray=new Float32Array,this._bboxHelper=new Float32Array,this._rootNode=null,this._nodesToSplit.length=0},e}();var gt,yt=(gt="$$FIVE_EVENT$$","undefined"==typeof Symbol?"$Symbol<"+gt+">$":Symbol(gt));function mt(e){return e[yt]||(e[yt]={}),e[yt]}var vt=function(){function e(){}return e.prototype.hasListener=function(e){var t=mt(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,i){var n=this,r=mt(this);return r[e]||(r[e]=[]),r[e].push([t,i||!1]),function(){return n.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var i,n=mt(this);if(n[e]||(n[e]=[]),void 0!==t){for(var r=0;r<n[e].length&&n[e][r][0]!==t;r++);r<n[e].length&&n[e].splice(r,1)}else n[e].length=0}else(i=this)[yt]||delete i[yt]},e.prototype.emit=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];for(var n=!1,r=mt(this),o=r[e]||[],s=0,a=o.slice();s<a.length;s++){var u=a[s],c=u[0],l=u[1],h=void 0!==l&&l,d=c.apply(void 0,t);h&&this.off(e,c),!1===d&&(n=!0)}return n},e}();function Nt(e){Object.freeze(e);var t="function"==typeof e,i=Object.prototype.hasOwnProperty;return Object.getOwnPropertyNames(e).forEach((function(n){!i.call(e,n)||t&&("caller"===n||"callee"===n||"arguments"===n)||null===e[n]||"object"!=typeof e[n]&&"function"!=typeof e[n]||Object.isFrozen(e[n])||Nt(e[n])})),e}var Dt=/^([^.]+)(\.([^.]+))*$/;function wt(e){return/^(([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.(?!$)|$)){4}$/.test(e)}function Tt(e,t){return Dt.test(e)&&Dt.test(t)&&function(e,t){if("*"===e)return!0;var i=e.split(".").reverse(),n=t.split(".").reverse();if(i.length<=1)return e===t;for(var r=0;r<i.length;r++)if(i[r]!==n[r])return!1;return!0}(e,t)}var xt=[/\.([0-9a-z]+)\.jsonp([\?\#].*)?$/i,/jsonp_([0-9a-z]+)([\?\#].*)?$/i],Et=Nt(JSON.parse(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("h-/y|pnyu|/9-/xr;p|z/9-/yvn{wvn;p|z/9-/rnyrr;p|z/9-/rnyrr;p{/9-/uv;p|z/9-/uv;p{/9-/ywpq{;p|z/9-/pnyp{|qr;vr/-j"))),jt=function(e){function i(t,i,n){return e.call(this,"[NETWORK]: response error(type: "+i+", reason: "+n+"): "+t)||this}return t.__extends(i,e),i}(Error),zt=function(e){function i(t,i,n){var r=e.call(this,"[NETWORK]: response error(type: "+i+", status: "+n+"): "+t)||this;return r.httpStatus=n,r}return t.__extends(i,e),i}(Error);!function(e){function i(t,i){return e.call(this,"[NETWORK]: request abort(type: "+i+"): "+t)||this}t.__extends(i,e)}(Error);var It=function(e){function i(t,i,n){return e.call(this,"[NETWORK]: request timeout(type: "+i+", timeout: "+n+"ms): "+t)||this}return t.__extends(i,e),i}(Error);function bt(e){for(var t=0,i=xt;t<i.length;t++){var n=i[t],r=e.match(n);if(r)return"jsonp_"+r[1]}return null}function Ot(e){return null!==bt(e)}function St(e){return xt.reduce((function(e,t){return e.replace(t,"")}),e)}function Lt(e){var t=e.match(/^[0-9a-z]+\:\/\/(([^:/?#]*)(?::[0-9]+)?)/);return t?t[2]:location.hostname}!function(e){function i(t,i,n){return e.call(this,"[NETWORK]: request forbidden(type: "+i+", reason: "+n+"): "+t)||this}t.__extends(i,e)}(Error);var kt=function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return t.__extends(i,e),i}(vt);function Ct(e,t,i,n,r){return void 0===t&&(t={}),void 0===i&&(i=Qe),void 0===n&&(n=Qe),void 0===r&&(r=Qe),new Promise((function(o,s){var a,u=t.allowHosts?Et.concat(t.allowHosts):Et.slice(),c=Lt(e),l=bt(e);if(0!==location.hostname.length&&!wt(location.hostname)&&0===Et.filter((function(e){return Tt(e,location.hostname)})).length&&!wt(c)&&0===u.filter((function(e){return Tt(e,c)})).length){var h=l?"Script":"XMLHttpRequest",d=new jt(e,h,"request host("+c+") is not allowed");return n(d),s(d),void(null===(a=t.networkSubscribe)||void 0===a||a.emit("network",e,h,"forbidden",d.message))}if(l){var p=window,A=null,f=!1,M=He(),g=document.createElement("script");p[l]=function(r){var a,u,c=He(),h=c-M;if(delete p[l],g.parentNode&&g.parentNode.removeChild(g),null!==A&&(window.clearTimeout(A),A=null),!0!==f){if(0!==r.indexOf("data:")){var d=new zt(e,"Script",500);return n(d),s(d),void(null===(a=t.networkSubscribe)||void 0===a||a.emit("network",e,"Script","error",d.message))}var y=r.split(","),m=(y[0].match(/:(.*?);/)||[])[1],v=y[1];if("arraybuffer"===t.responseType||"blob"===t.responseType){for(var N=atob(y[1]),D=N.length,w=new Uint8Array(D),T=0;T<D;T++)w[T]=N.charCodeAt(T);v="arraybuffer"===t.responseType?w.buffer:new Blob([w],{type:m})}var x={body:v,meta:{source:e,requestTime:M,responseTime:c,costs:h,headers:{}}};i(x),o(x),null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,"Script","ok",JSON.stringify(x.meta)),f=!0}},g.src=e,document.body.appendChild(g),"number"==typeof t.timeout&&(A=window.setTimeout((function(){var i;if(A=null,!0!==f){f=!0;var r=new It(e,"Script",t.timeout||NaN);n(r),s(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Script","timeout",r.message)}}),t.timeout))}else{var y=He(),m=!1,v=new XMLHttpRequest,N=function(){v&&(v.removeEventListener("timeout",D,!1),v.removeEventListener("progress",w,!1),v.removeEventListener("load",T,!1),v.removeEventListener("error",x,!1)),v=null,N=Qe},D=function(){var i;if(!0!==m){m=!0,N();var r=new It(e,"XMLHttpRequest",t.timeout||NaN);n(r),s(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"XMLHttpRequest","timeout",r.message)}},w=function(e){if(!0!==m&&e.lengthComputable){var t=e.loaded,i=e.total;r(t/i)}},T=function(n){var r;if(!0!==m){m=!0,N();var s=He(),a=s-y,u=function(e){if(!e)return{};for(var t={},i=e.trim().split("\n"),n=0;n<i.length;n++){var r=i[n],o=r.indexOf(":"),s=r.slice(0,o).trim().toLowerCase(),a=r.slice(o+1).trim();a&&(t[s]?t[s]+=", "+a:t[s]=a)}return t}(this.getAllResponseHeaders()),c=n.total,l={body:this.response,meta:{source:e,requestTime:y,responseTime:s,costs:a,headers:u,size:c}};i(l),o(l),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"XMLHttpRequest","ok",JSON.stringify(l.meta))}},x=function(){var i;if(!0!==m){m=!0,N();var r=new zt(e,"XMLHttpRequest",this.status);n(r),s(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"XMLHttpRequest","error",r.message)}};v.addEventListener("timeout",D,!1),v.addEventListener("progress",w,!1),v.addEventListener("load",T,!1),v.addEventListener("error",x,!1),t.responseType&&(v.responseType=t.responseType),"number"==typeof t.timeout&&(v.timeout=t.timeout),v.open("GET",e,!0),v.send(null)}}))}var Pt={};function _t(e,t,i,n,r,o){return void 0===t&&(t={}),void 0===i&&(i=Qe),void 0===n&&(n=Qe),void 0===r&&(r=Qe),new Promise((function(s,a){var u,c=t.allowHosts?Et.concat(t.allowHosts):Et.slice(),l=Lt(e);if(0!==location.hostname.length&&!wt(location.hostname)&&0===Et.filter((function(e){return Tt(e,location.hostname)})).length&&!wt(l)&&0===c.filter((function(e){return Tt(e,l)})).length){var h=new jt(e,"Image","request host("+l+") is not allowed");return n(h),a(h),void(null===(u=t.networkSubscribe)||void 0===u||u.emit("network",e,"Image","forbidden",h.message))}var d=null!=o?o:new Image,p=He(),A=!1,f=null,M=function(){var n;if(d.removeEventListener("load",M,!1),d.removeEventListener("error",g,!1),null!==f&&(clearTimeout(f),f=null),!0!==A){var o=He();A=!0;var a={body:d,meta:{headers:{},source:e,requestTime:p,responseTime:o,costs:o-p}};r(1),i(a),s(a),null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Image","ok",JSON.stringify(a.meta))}},g=function(i){var r;if(d.removeEventListener("load",M,!1),d.removeEventListener("error",g,!1),null!==f&&(clearTimeout(f),f=null),!0!==A){A=!0;var o=new zt(e,"Image",0);n(o),a(o),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"Image","ok",o.message)}};"number"==typeof t.timeout&&(f=window.setTimeout((function(){var i;if(d.removeEventListener("load",M,!1),d.removeEventListener("error",g,!1),f=null,!0!==A){A=!0;var r=new It(e,"Image",t.timeout);n(r),a(r),null===(i=t.networkSubscribe)||void 0===i||i.emit("network",e,"Image","timeout",r.message)}}),t.timeout)),d.addEventListener("load",M,!1),d.addEventListener("error",g,!1),r(0),d.src=e}))}var Bt=null,Ut=!1,Rt=[];function Qt(e){if(void 0===e&&(e=!1),e||!Ut)if(Bt)Ut=!1;else{Ut=!0;var t=Rt.shift();if(t){try{t()}catch(e){}We.shared.add((function(){return Qt(!0)}),!0,2)}else Ut=!1}}function Yt(){Bt=null,Qt()}function Ft(e){return new Promise((function(t,i){Rt.push((function(){try{t(e())}catch(e){i(e)}})),Qt()}))}var Vt={OutWindow:function(){this._windowSize=0}};Vt.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},Vt.OutWindow.prototype.flush=function(){var e=this._pos-this._streamPos;if(0!==e){for(;e--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},Vt.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},Vt.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},Vt.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},Vt.OutWindow.prototype.copyBlock=function(e,t){var i=this._pos-e-1;for(i<0&&(i+=this._windowSize);t--;)i>=this._windowSize&&(i=0),this._buffer[this._pos++]=this._buffer[i++],this._pos>=this._windowSize&&this.flush()},Vt.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},Vt.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},Vt.RangeDecoder=function(){},Vt.RangeDecoder.prototype.setStream=function(e){this._stream=e},Vt.RangeDecoder.prototype.releaseStream=function(){this._stream=null},Vt.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},Vt.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,i=0,n=e;n--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,i=i<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return i},Vt.RangeDecoder.prototype.decodeBit=function(e,t){var i=e[t],n=(this._range>>>11)*i;return(2147483648^this._code)<(2147483648^n)?(this._range=n,e[t]+=2048-i>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=n,this._code-=n,e[t]-=i>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},Vt.initBitModels=function(e,t){for(;t--;)e[t]=1024},Vt.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},Vt.BitTreeDecoder.prototype.init=function(){Vt.initBitModels(this._models,1<<this._numBitLevels)},Vt.BitTreeDecoder.prototype.decode=function(e){for(var t=1,i=this._numBitLevels;i--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},Vt.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,i=1,n=0,r=0;r<this._numBitLevels;++r)i=i<<1|(t=e.decodeBit(this._models,i)),n|=t<<r;return n},Vt.reverseDecode2=function(e,t,i,n){for(var r,o=1,s=0,a=0;a<n;++a)o=o<<1|(r=i.decodeBit(e,t+o)),s|=r<<a;return s},Vt.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new Vt.BitTreeDecoder(8),this._numPosStates=0},Vt.LenDecoder.prototype.create=function(e){for(;this._numPosStates<e;++this._numPosStates)this._lowCoder[this._numPosStates]=new Vt.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new Vt.BitTreeDecoder(3)},Vt.LenDecoder.prototype.init=function(){var e=this._numPosStates;for(Vt.initBitModels(this._choice,2);e--;)this._lowCoder[e].init(),this._midCoder[e].init();this._highCoder.init()},Vt.LenDecoder.prototype.decode=function(e,t){return 0===e.decodeBit(this._choice,0)?this._lowCoder[t].decode(e):0===e.decodeBit(this._choice,1)?8+this._midCoder[t].decode(e):16+this._highCoder.decode(e)},Vt.Decoder2=function(){this._decoders=[]},Vt.Decoder2.prototype.init=function(){Vt.initBitModels(this._decoders,768)},Vt.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},Vt.Decoder2.prototype.decodeWithMatchByte=function(e,t){var i,n,r=1;do{if(i=t>>7&1,t<<=1,r=r<<1|(n=e.decodeBit(this._decoders,(1+i<<8)+r)),i!==n){for(;r<256;)r=r<<1|e.decodeBit(this._decoders,r);break}}while(r<256);return 255&r},Vt.LiteralDecoder=function(){},Vt.LiteralDecoder.prototype.create=function(e,t){var i;if(!this._coders||this._numPrevBits!==t||this._numPosBits!==e)for(this._numPosBits=e,this._posMask=(1<<e)-1,this._numPrevBits=t,this._coders=[],i=1<<this._numPrevBits+this._numPosBits;i--;)this._coders[i]=new Vt.Decoder2},Vt.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},Vt.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},Vt.Decoder=function(){this._outWindow=new Vt.OutWindow,this._rangeDecoder=new Vt.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new Vt.BitTreeDecoder(4),this._lenDecoder=new Vt.LenDecoder,this._repLenDecoder=new Vt.LenDecoder,this._literalDecoder=new Vt.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new Vt.BitTreeDecoder(6),this._posSlotDecoder[1]=new Vt.BitTreeDecoder(6),this._posSlotDecoder[2]=new Vt.BitTreeDecoder(6),this._posSlotDecoder[3]=new Vt.BitTreeDecoder(6)},Vt.Decoder.prototype.setDictionarySize=function(e){return!(e<0)&&(this._dictionarySize!==e&&(this._dictionarySize=e,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},Vt.Decoder.prototype.setLcLpPb=function(e,t,i){var n=1<<i;return!(e>8||t>4||i>4)&&(this._literalDecoder.create(t,e),this._lenDecoder.create(n),this._repLenDecoder.create(n),this._posStateMask=n-1,!0)},Vt.Decoder.prototype.init=function(){var e=4;for(this._outWindow.init(!1),Vt.initBitModels(this._isMatchDecoders,192),Vt.initBitModels(this._isRep0LongDecoders,192),Vt.initBitModels(this._isRepDecoders,12),Vt.initBitModels(this._isRepG0Decoders,12),Vt.initBitModels(this._isRepG1Decoders,12),Vt.initBitModels(this._isRepG2Decoders,12),Vt.initBitModels(this._posDecoders,114),this._literalDecoder.init();e--;)this._posSlotDecoder[e].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},Vt.Decoder.prototype.decode=function(e,t,i){var n,r,o,s,a,u,c=0,l=0,h=0,d=0,p=0,A=0,f=0;for(this._rangeDecoder.setStream(e),this._outWindow.setStream(t),this.init();i<0||A<i;)if(n=A&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(c<<4)+n))r=this._literalDecoder.getDecoder(A++,f),f=c>=7?r.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(l)):r.decodeNormal(this._rangeDecoder),this._outWindow.putByte(f),c=c<4?0:c-(c<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,c))o=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,c)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(c<<4)+n)&&(c=c<7?9:11,o=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,c)?s=h:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,c)?s=d:(s=p,p=d),d=h),h=l,l=s),0===o&&(o=2+this._repLenDecoder.decode(this._rangeDecoder,n),c=c<7?8:11);else if(p=d,d=h,h=l,o=2+this._lenDecoder.decode(this._rangeDecoder,n),c=c<7?7:10,(a=this._posSlotDecoder[o<=5?o-2:3].decode(this._rangeDecoder))>=4){if(l=(2|1&a)<<(u=(a>>1)-1),a<14)l+=Vt.reverseDecode2(this._posDecoders,l-a-1,this._rangeDecoder,u);else if(l+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(l+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===l)break;return!1}}else l=a;if(l>=A||l>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(l,o),A+=o,f=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},Vt.Decoder.prototype.setDecoderProperties=function(e){var t,i,n,r,o;return!(e.size<5)&&(i=(t=e.readByte())%9,n=(t=~~(t/9))%5,r=~~(t/5),!!this.setLcLpPb(i,n,r)&&(o=e.readByte(),o|=e.readByte()<<8,o|=e.readByte()<<16,o+=16777216*e.readByte(),this.setDictionarySize(o)))},Vt.decompress=function(e,t,i,n){var r=new Vt.Decoder;if(!r.setDecoderProperties(e))throw"Incorrect stream properties";if(!r.decode(t,i,n))throw"Error in data stream";return!0},Vt.decompressFile=function(e,t){var i,n=new Vt.Decoder;if(!n.setDecoderProperties(e))throw"Incorrect stream properties";if(i=e.readByte(),i|=e.readByte()<<8,i|=e.readByte()<<16,i+=16777216*e.readByte(),e.readByte(),e.readByte(),e.readByte(),e.readByte(),!n.decode(e,t,i))throw"Error in data stream";return!0};var Ht="undefined"!=typeof Worker&&"undefined"!=typeof Blob,Gt="";if(Ht)try{var Wt=new Blob(['\n self.onmessage = function (event) {\n var Packet = event.data;\n var Result = null;\n try {\n if (!Packet.PacketID) {\n throw new Error(\'No incoming id.\');\n }\n if (!Packet.Data) {\n throw new Error(\'No input data.\');\n }\n if (Packet.Type == \'compress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n // C: encoding data\n Result = Util.compressFile(Packet.Data, null, Packet.Level, null);\n } else if (Packet.Type == \'decompress\') {\n // C: checking if input is valid\n if (Packet.Data.constructor != Uint8Array) {\n throw new Error(\'Input data is not Uint8Array.\');\n }\n var inStream = {\n data: Packet.Data,\n offset: 0,\n readByte () {\n return this.data[this.offset++];\n }\n };\n var partLength = inStream.data.length;\n var outStream = {\n data: [],\n offset: 0,\n writeByte (value) {\n var partIndex = Math.floor(this.offset / partLength);\n if (!this.data[partIndex]) {\n this.data[partIndex] = new Uint8Array(partLength);\n }\n this.data[partIndex][this.offset % partLength] = value;\n this.offset++;\n }\n }\n // C: decoding data\n\n LZMA.decompressFile(inStream, outStream);\n Result = new Uint8Array(outStream.offset)\n for (var i = 0; i < outStream.offset; i++) {\n Result[i] = outStream.data[Math.floor(i / partLength)][i % partLength];\n }\n }\n postMessage({ PacketID: Packet.PacketID, Result, Error: null }, [Result.buffer]);\n } catch (error) {\n postMessage({ PacketID: Packet.PacketID, Error: error.toString() });\n }\n };\n\n\n /*\n Copyright (c) 2011 Juan Mellado\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the "Software"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n /*\n References:\n - "LZMA SDK" by Igor Pavlov\n http://www.7-zip.org/sdk.html\n */\n\n var LZMA = LZMA || {};\n\n LZMA.OutWindow = function(){\n this._windowSize = 0;\n };\n\n LZMA.OutWindow.prototype.create = function(windowSize){\n if ( (!this._buffer) || (this._windowSize !== windowSize) ){\n this._buffer = [];\n }\n this._windowSize = windowSize;\n this._pos = 0;\n this._streamPos = 0;\n };\n\n LZMA.OutWindow.prototype.flush = function(){\n var size = this._pos - this._streamPos;\n if (size !== 0){\n while(size --){\n this._stream.writeByte(this._buffer[this._streamPos ++]);\n }\n if (this._pos >= this._windowSize){\n this._pos = 0;\n }\n this._streamPos = this._pos;\n }\n };\n\n LZMA.OutWindow.prototype.releaseStream = function(){\n this.flush();\n this._stream = null;\n };\n\n LZMA.OutWindow.prototype.setStream = function(stream){\n this.releaseStream();\n this._stream = stream;\n };\n\n LZMA.OutWindow.prototype.init = function(solid){\n if (!solid){\n this._streamPos = 0;\n this._pos = 0;\n }\n };\n\n LZMA.OutWindow.prototype.copyBlock = function(distance, len){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n while(len --){\n if (pos >= this._windowSize){\n pos = 0;\n }\n this._buffer[this._pos ++] = this._buffer[pos ++];\n if (this._pos >= this._windowSize){\n this.flush();\n }\n }\n };\n\n LZMA.OutWindow.prototype.putByte = function(b){\n this._buffer[this._pos ++] = b;\n if (this._pos >= this._windowSize){\n this.flush();\n }\n };\n\n LZMA.OutWindow.prototype.getByte = function(distance){\n var pos = this._pos - distance - 1;\n if (pos < 0){\n pos += this._windowSize;\n }\n return this._buffer[pos];\n };\n\n LZMA.RangeDecoder = function(){\n };\n\n LZMA.RangeDecoder.prototype.setStream = function(stream){\n this._stream = stream;\n };\n\n LZMA.RangeDecoder.prototype.releaseStream = function(){\n this._stream = null;\n };\n\n LZMA.RangeDecoder.prototype.init = function(){\n var i = 5;\n\n this._code = 0;\n this._range = -1;\n\n while(i --){\n this._code = (this._code << 8) | this._stream.readByte();\n }\n };\n\n LZMA.RangeDecoder.prototype.decodeDirectBits = function(numTotalBits){\n var result = 0, i = numTotalBits, t;\n\n while(i --){\n this._range >>>= 1;\n t = (this._code - this._range) >>> 31;\n this._code -= this._range & (t - 1);\n result = (result << 1) | (1 - t);\n\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n }\n\n return result;\n };\n\n LZMA.RangeDecoder.prototype.decodeBit = function(probs, index){\n var prob = probs[index],\n newBound = (this._range >>> 11) * prob;\n\n if ( (this._code ^ 0x80000000) < (newBound ^ 0x80000000) ){\n this._range = newBound;\n probs[index] += (2048 - prob) >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 0;\n }\n\n this._range -= newBound;\n this._code -= newBound;\n probs[index] -= prob >>> 5;\n if ( (this._range & 0xff000000) === 0){\n this._code = (this._code << 8) | this._stream.readByte();\n this._range <<= 8;\n }\n return 1;\n };\n\n LZMA.initBitModels = function(probs, len){\n while(len --){\n probs[len] = 1024;\n }\n };\n\n LZMA.BitTreeDecoder = function(numBitLevels){\n this._models = [];\n this._numBitLevels = numBitLevels;\n };\n\n LZMA.BitTreeDecoder.prototype.init = function(){\n LZMA.initBitModels(this._models, 1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.decode = function(rangeDecoder){\n var m = 1, i = this._numBitLevels;\n\n while(i --){\n m = (m << 1) | rangeDecoder.decodeBit(this._models, m);\n }\n return m - (1 << this._numBitLevels);\n };\n\n LZMA.BitTreeDecoder.prototype.reverseDecode = function(rangeDecoder){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < this._numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(this._models, m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.reverseDecode2 = function(models, startIndex, rangeDecoder, numBitLevels){\n var m = 1, symbol = 0, i = 0, bit;\n\n for (; i < numBitLevels; ++ i){\n bit = rangeDecoder.decodeBit(models, startIndex + m);\n m = (m << 1) | bit;\n symbol |= bit << i;\n }\n return symbol;\n };\n\n LZMA.LenDecoder = function(){\n this._choice = [];\n this._lowCoder = [];\n this._midCoder = [];\n this._highCoder = new LZMA.BitTreeDecoder(8);\n this._numPosStates = 0;\n };\n\n LZMA.LenDecoder.prototype.create = function(numPosStates){\n for (; this._numPosStates < numPosStates; ++ this._numPosStates){\n this._lowCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n this._midCoder[this._numPosStates] = new LZMA.BitTreeDecoder(3);\n }\n };\n\n LZMA.LenDecoder.prototype.init = function(){\n var i = this._numPosStates;\n LZMA.initBitModels(this._choice, 2);\n while(i --){\n this._lowCoder[i].init();\n this._midCoder[i].init();\n }\n this._highCoder.init();\n };\n\n LZMA.LenDecoder.prototype.decode = function(rangeDecoder, posState){\n if (rangeDecoder.decodeBit(this._choice, 0) === 0){\n return this._lowCoder[posState].decode(rangeDecoder);\n }\n if (rangeDecoder.decodeBit(this._choice, 1) === 0){\n return 8 + this._midCoder[posState].decode(rangeDecoder);\n }\n return 16 + this._highCoder.decode(rangeDecoder);\n };\n\n LZMA.Decoder2 = function(){\n this._decoders = [];\n };\n\n LZMA.Decoder2.prototype.init = function(){\n LZMA.initBitModels(this._decoders, 0x300);\n };\n\n LZMA.Decoder2.prototype.decodeNormal = function(rangeDecoder){\n var symbol = 1;\n\n do{\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.Decoder2.prototype.decodeWithMatchByte = function(rangeDecoder, matchByte){\n var symbol = 1, matchBit, bit;\n\n do{\n matchBit = (matchByte >> 7) & 1;\n matchByte <<= 1;\n bit = rangeDecoder.decodeBit(this._decoders, ( (1 + matchBit) << 8) + symbol);\n symbol = (symbol << 1) | bit;\n if (matchBit !== bit){\n while(symbol < 0x100){\n symbol = (symbol << 1) | rangeDecoder.decodeBit(this._decoders, symbol);\n }\n break;\n }\n }while(symbol < 0x100);\n\n return symbol & 0xff;\n };\n\n LZMA.LiteralDecoder = function(){\n };\n\n LZMA.LiteralDecoder.prototype.create = function(numPosBits, numPrevBits){\n var i;\n\n if (this._coders\n && (this._numPrevBits === numPrevBits)\n && (this._numPosBits === numPosBits) ){\n return;\n }\n this._numPosBits = numPosBits;\n this._posMask = (1 << numPosBits) - 1;\n this._numPrevBits = numPrevBits;\n\n this._coders = [];\n\n i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i] = new LZMA.Decoder2();\n }\n };\n\n LZMA.LiteralDecoder.prototype.init = function(){\n var i = 1 << (this._numPrevBits + this._numPosBits);\n while(i --){\n this._coders[i].init();\n }\n };\n\n LZMA.LiteralDecoder.prototype.getDecoder = function(pos, prevByte){\n return this._coders[( (pos & this._posMask) << this._numPrevBits)\n + ( (prevByte & 0xff) >>> (8 - this._numPrevBits) )];\n };\n\n LZMA.Decoder = function(){\n this._outWindow = new LZMA.OutWindow();\n this._rangeDecoder = new LZMA.RangeDecoder();\n this._isMatchDecoders = [];\n this._isRepDecoders = [];\n this._isRepG0Decoders = [];\n this._isRepG1Decoders = [];\n this._isRepG2Decoders = [];\n this._isRep0LongDecoders = [];\n this._posSlotDecoder = [];\n this._posDecoders = [];\n this._posAlignDecoder = new LZMA.BitTreeDecoder(4);\n this._lenDecoder = new LZMA.LenDecoder();\n this._repLenDecoder = new LZMA.LenDecoder();\n this._literalDecoder = new LZMA.LiteralDecoder();\n this._dictionarySize = -1;\n this._dictionarySizeCheck = -1;\n\n this._posSlotDecoder[0] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[1] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[2] = new LZMA.BitTreeDecoder(6);\n this._posSlotDecoder[3] = new LZMA.BitTreeDecoder(6);\n };\n\n LZMA.Decoder.prototype.setDictionarySize = function(dictionarySize){\n if (dictionarySize < 0){\n return false;\n }\n if (this._dictionarySize !== dictionarySize){\n this._dictionarySize = dictionarySize;\n this._dictionarySizeCheck = Math.max(this._dictionarySize, 1);\n this._outWindow.create( Math.max(this._dictionarySizeCheck, 4096) );\n }\n return true;\n };\n\n LZMA.Decoder.prototype.setLcLpPb = function(lc, lp, pb){\n var numPosStates = 1 << pb;\n\n if (lc > 8 || lp > 4 || pb > 4){\n return false;\n }\n\n this._literalDecoder.create(lp, lc);\n\n this._lenDecoder.create(numPosStates);\n this._repLenDecoder.create(numPosStates);\n this._posStateMask = numPosStates - 1;\n\n return true;\n };\n\n LZMA.Decoder.prototype.init = function(){\n var i = 4;\n\n this._outWindow.init(false);\n\n LZMA.initBitModels(this._isMatchDecoders, 192);\n LZMA.initBitModels(this._isRep0LongDecoders, 192);\n LZMA.initBitModels(this._isRepDecoders, 12);\n LZMA.initBitModels(this._isRepG0Decoders, 12);\n LZMA.initBitModels(this._isRepG1Decoders, 12);\n LZMA.initBitModels(this._isRepG2Decoders, 12);\n LZMA.initBitModels(this._posDecoders, 114);\n\n this._literalDecoder.init();\n\n while(i --){\n this._posSlotDecoder[i].init();\n }\n\n this._lenDecoder.init();\n this._repLenDecoder.init();\n this._posAlignDecoder.init();\n this._rangeDecoder.init();\n };\n\n LZMA.Decoder.prototype.decode = function(inStream, outStream, outSize){\n var state = 0, rep0 = 0, rep1 = 0, rep2 = 0, rep3 = 0, nowPos64 = 0, prevByte = 0,\n posState, decoder2, len, distance, posSlot, numDirectBits;\n\n this._rangeDecoder.setStream(inStream);\n this._outWindow.setStream(outStream);\n\n this.init();\n\n while(outSize < 0 || nowPos64 < outSize){\n posState = nowPos64 & this._posStateMask;\n\n if (this._rangeDecoder.decodeBit(this._isMatchDecoders, (state << 4) + posState) === 0){\n decoder2 = this._literalDecoder.getDecoder(nowPos64 ++, prevByte);\n\n if (state >= 7){\n prevByte = decoder2.decodeWithMatchByte(this._rangeDecoder, this._outWindow.getByte(rep0) );\n }else{\n prevByte = decoder2.decodeNormal(this._rangeDecoder);\n }\n this._outWindow.putByte(prevByte);\n\n state = state < 4? 0: state - (state < 10? 3: 6);\n\n }else{\n\n if (this._rangeDecoder.decodeBit(this._isRepDecoders, state) === 1){\n len = 0;\n if (this._rangeDecoder.decodeBit(this._isRepG0Decoders, state) === 0){\n if (this._rangeDecoder.decodeBit(this._isRep0LongDecoders, (state << 4) + posState) === 0){\n state = state < 7? 9: 11;\n len = 1;\n }\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG1Decoders, state) === 0){\n distance = rep1;\n }else{\n if (this._rangeDecoder.decodeBit(this._isRepG2Decoders, state) === 0){\n distance = rep2;\n }else{\n distance = rep3;\n rep3 = rep2;\n }\n rep2 = rep1;\n }\n rep1 = rep0;\n rep0 = distance;\n }\n if (len === 0){\n len = 2 + this._repLenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 8: 11;\n }\n }else{\n rep3 = rep2;\n rep2 = rep1;\n rep1 = rep0;\n\n len = 2 + this._lenDecoder.decode(this._rangeDecoder, posState);\n state = state < 7? 7: 10;\n\n posSlot = this._posSlotDecoder[len <= 5? len - 2: 3].decode(this._rangeDecoder);\n if (posSlot >= 4){\n\n numDirectBits = (posSlot >> 1) - 1;\n rep0 = (2 | (posSlot & 1) ) << numDirectBits;\n\n if (posSlot < 14){\n rep0 += LZMA.reverseDecode2(this._posDecoders,\n rep0 - posSlot - 1, this._rangeDecoder, numDirectBits);\n }else{\n rep0 += this._rangeDecoder.decodeDirectBits(numDirectBits - 4) << 4;\n rep0 += this._posAlignDecoder.reverseDecode(this._rangeDecoder);\n if (rep0 < 0){\n if (rep0 === -1){\n break;\n }\n return false;\n }\n }\n }else{\n rep0 = posSlot;\n }\n }\n\n if (rep0 >= nowPos64 || rep0 >= this._dictionarySizeCheck){\n return false;\n }\n\n this._outWindow.copyBlock(rep0, len);\n nowPos64 += len;\n prevByte = this._outWindow.getByte(0);\n }\n }\n\n this._outWindow.flush();\n this._outWindow.releaseStream();\n this._rangeDecoder.releaseStream();\n\n return true;\n };\n\n LZMA.Decoder.prototype.setDecoderProperties = function(properties){\n var value, lc, lp, pb, dictionarySize;\n\n if (properties.size < 5){\n return false;\n }\n\n value = properties.readByte();\n lc = value % 9;\n value = ~~(value / 9);\n lp = value % 5;\n pb = ~~(value / 5);\n\n if ( !this.setLcLpPb(lc, lp, pb) ){\n return false;\n }\n\n dictionarySize = properties.readByte();\n dictionarySize |= properties.readByte() << 8;\n dictionarySize |= properties.readByte() << 16;\n dictionarySize += properties.readByte() * 16777216;\n\n return this.setDictionarySize(dictionarySize);\n };\n\n LZMA.decompress = function(properties, inStream, outStream, outSize){\n var decoder = new LZMA.Decoder();\n\n if ( !decoder.setDecoderProperties(properties) ){\n throw "Incorrect stream properties";\n }\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n\n LZMA.decompressFile = function(inStream, outStream){\n var decoder = new LZMA.Decoder(), outSize;\n\n if ( !decoder.setDecoderProperties(inStream) ){\n throw "Incorrect stream properties";\n }\n\n outSize = inStream.readByte();\n outSize |= inStream.readByte() << 8;\n outSize |= inStream.readByte() << 16;\n outSize += inStream.readByte() * 16777216;\n\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n inStream.readByte();\n\n if ( !decoder.decode(inStream, outStream, outSize) ){\n throw "Error in data stream";\n }\n\n return true;\n };\n'],{type:"text/javascript"});Gt=URL.createObjectURL(Wt)}catch(e){}var qt=function(){function e(){var e=this;if(this.callCounter=0,this.requests=[],!Ht)throw new Error("LZMACaller cannot work in this broswer.");var t=this.worker=new Worker(Gt);t.onmessage=function(t){var i,n,r=t.data,o=r.PacketID,s=r.Result,a=r.Error;a?null===(n=e.requests[o])||void 0===n||n.onCompleteCallback(new Error(a)):null===(i=e.requests[o])||void 0===i||i.onCompleteCallback(null,s),delete e.requests[o]},t.onerror=function(e){return console.error(e)}}return e.prototype.compress=function(e,t,i){var n=++this.callCounter;this.requests[n]={onCompleteCallback:i},this.worker.postMessage({Type:"compress",PacketID:n,Data:e,Level:t},[e.buffer])},e.prototype.decompress=function(e,t){var i=++this.callCounter;this.requests[i]={onCompleteCallback:t},this.worker.postMessage({Type:"decompress",PacketID:i,Data:e},[e.buffer])},e.prototype.terminate=function(){this.worker.terminate()},e.support=Ht,e}();function Kt(e){return Array.prototype.reduce.call(e,(function(e,t,i){return e|t<<8*i}),0)}function Zt(e){for(var t=new Uint8Array(e),i=Kt(t.slice(0,4)),n=[],r=[],o=4+4*i,s=0;s<i;s++)r[s]=Kt(t.slice(4+4*s,8+4*s)),n[s]=s===i-1?t.subarray(o,o+r[s]):t.slice(o,o+r[s]),o+=r[s];return qt.support?function(e){for(var t=[],i=e.length,n=function(i){t.push(new Promise((function(t,n){var r=new qt;r.decompress(e[i],(function(e,i){if(r.terminate(),e)return n(e);t(i)}))})))},r=0;r<i;r++)n(r);return Promise.all(t)}(n):Promise.resolve(function(e){for(var t,i=[],n=e.length,r=function(n){var r={data:e[n],offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,s={data:[],offset:0,writeByte:function(e){var t=Math.floor(this.offset/o);this.data[t]||(this.data[t]=new Uint8Array(o)),this.data[t][this.offset%o]=e,this.offset++}};Vt.decompressFile(r,s),t=new Uint8Array(s.offset);for(var a=0;a<s.offset;a++)t[a]=s.data[Math.floor(a/o)][a%o];i.push(t)},o=0;o<n;o++)r(o);return i}(n))}function Xt(e,t){for(var i={},n=0,r=t;n<r.length;n++){var o=r[n];o in e&&(i[o]=e[o])}return i}var Jt="//vrlab-public.ljcdn.com/",$t="//vrlab-image[1-4].ljcdn.com/";function ei(e,t){var i,n=e.split("?")[0],r=n.split(".").pop();if("jpeg"===r&&(r="jpg"),"png"!==r&&"jpg"!==r)return e;var o="";if(void 0!==t.format&&t.format!==r&&(o+="/format/"+t.format),void 0!==t.cut&&(o+="/cut/"+t.cut[2]+"x"+t.cut[3]+"x"+t.cut[0]+"x"+t.cut[1]),void 0!==t.size&&(o+="/thumbnail/"+t.size+"x"),void 0!==t.quality){var s=null!==(i=t.format)&&void 0!==i?i:r;s&&["jpg","webp","tpg","heif","avif"].indexOf(s)>=0&&(o+="/quality/"+t.quality)}return o.length&&(o="?imageMogr2"+o),n+o}function ti(e,t){return e.indexOf(Jt)>=0?(/\.basis(\?|$)/.test(e)&&!0!==t.basisLoaderInitialized&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),ei(function(e,t){var i=t.split("."),n=i[0],r=i.slice(1);if("texture"===n)return e.replace(Jt,$t.replace("[1-4]","3"));if("pano"===n||"pano_luminance"===n)switch(r[0],r[1]){case"front":case"left":case"up":return e.replace(Jt,$t.replace("[1-4]","1"));case"down":case"right":case"back":return e.replace(Jt,$t.replace("[1-4]","2"))}else if("pano_tile"===n||"pano_tile_luminance"===n){r[0],r[1];var o=r[2],s=r[3],a=r[4],u=Math.pow(2,Number(o))*Number(s)+Number(a);if(!isNaN(u))return e.replace(Jt,"//vr-tile-[1-2].realsee-cdn.com/".replace("[1-2]",String(u%2+1)))}return e.replace(Jt,$t.replace("[1-4]","3"))}(e,t.key),t)):e.indexOf("//test-vr-public.realsee-cdn.com/")>=0?(/\.basis(\?|$)/.test(e)&&!0!==t.basisLoaderInitialized&&(e=e.replace(/\.basis(\?|$)/,".jpg$1")),ei(e.replace("//test-vr-public.realsee-cdn.com/","//test-vr-image.realsee-cdn.com/"),t)):e}var ii=!1;try{ii="undefined"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(e){}var ni=[],ri=[];function oi(){var e=this;/^blob\:/.test(this.src)&&URL.revokeObjectURL(this.src),this.onerror=this.onload=Qe,this.removeAttribute("src"),We.shared.add((function(){ni.push(e)}),!0,1)}function si(){ri.push(this)}function ai(){var e;return null!==(e=ni.shift())&&void 0!==e?e:Object.assign(new Image,{crossOrigin:"",close:oi})}function ui(e){return new Promise((function(t,i){var n=ai(),r=function(){n.removeEventListener("load",r,!1),n.removeEventListener("error",o,!1),t(n)},o=function(){n.removeEventListener("load",r,!1),n.removeEventListener("error",o,!1),i(new Error("image load error: "+n.src)),n.close()};n.addEventListener("load",r,!1),n.addEventListener("error",o,!1),n.src=URL.createObjectURL(e)}))}function ci(e,t){if(t&&(e.width>t.width||e.height>t.height)){var i=function(e,t){var i=ri.shift();if(i)return i.width=e,i.height=t,i;if(ii){var n=new OffscreenCanvas(e,t);return Object.assign(n,{close:si})}return n=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),Object.assign(n,{close:si})}(Math.min(e.width,t.width),Math.min(e.height,t.height));i.getContext("2d").drawImage(e,0,0,i.width,i.height),e.close();var n=new r.Texture(i);n.needsUpdate=!0,n.flipY=!0;var o=n.dispose;return n.dispose=function(){i.close(),o.call(n)},n}var s=new r.Texture(e);s.needsUpdate=!0,s.flipY=!0;var a=s.dispose;return s.dispose=function(){e.close(),a.call(s)},s}var li=new r.WebGLRenderTarget(1,1),hi=new r.OrthographicCamera(-1,1,1,-1,0,1),di=new r.BufferGeometry;di.setAttribute("position",new r.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),di.setAttribute("uv",new r.Float32BufferAttribute([0,2,0,0,2,0],2));var pi=new r.Mesh(di),Ai=new r.Scene;Ai.add(pi);var fi,Mi=new r.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform sampler2D map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0));\n }\n "}),gi=new r.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform samplerCube map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0, 0));\n }\n "});function yi(e,t,i){return void 0!==t.flipY&&(e.flipY=t.flipY),void 0!==t.format&&(e.format=t.format),void 0!==t.encoding&&(e.encoding=t.encoding),void 0!==t.minFilter&&(e.minFilter=t.minFilter),void 0!==t.magFilter&&(e.magFilter=t.magFilter),i?new Promise((function(t){We.shared.add((function(){try{var n=i.getRenderTarget();i.setRenderTarget(li),e instanceof r.CubeTexture?(pi.material=gi,gi.uniforms.map.value=e,i.render(Ai,hi),gi.uniforms.map.value=null):(pi.material=Mi,Mi.uniforms.map.value=e,i.render(Ai,hi),gi.uniforms.map.value=null),i.setRenderTarget(n),t(e)}catch(i){t(e)}}),!0,1)})):Promise.resolve(e)}var mi='\nvar config, transcoderPending, _BasisFile;\nself.onmessage = function(e) {\n var message = e.data;\n switch (message.type) {\n case "init":\n config = message.config;\n init(message.transcoderBinary);\n break;\n case "transcode":\n transcoderPending.then(function() {\n try {\n var result = transcode(message.buffer);\n var width = result.width;\n var height = result.height;\n var hasAlpha = result.hasAlpha;\n var mipmaps = result.mipmaps;\n var format = result.format;\n var buffers = [];\n for (var i = 0; i < mipmaps.length; ++i) {\n buffers.push(mipmaps[i].data.buffer);\n }\n self.postMessage({ type: "transcode", id: message.id, width, height, hasAlpha, mipmaps, format }, buffers);\n } catch (error) {\n console.error(error);\n self.postMessage({ type: "error", id: message.id, error: error.message });\n }\n });\n break;\n default: break;\n }\n};\n\nfunction init(wasmBinary) {\n var BasisModule;\n transcoderPending = new Promise(function(resolve) {\n BasisModule = { wasmBinary, onRuntimeInitialized: resolve };\n BASIS(BasisModule); // eslint-disable-line no-undef\n }).then(function() {\n _BasisFile = BasisModule.BasisFile;\n BasisModule.initializeBasis();\n self.postMessage({ type: "initialized" });\n });\n}\n\nfunction transcode(buffer) {\n var basisFile = new _BasisFile(new Uint8Array(buffer));\n var width = basisFile.getImageWidth(0, 0);\n var height = basisFile.getImageHeight(0, 0);\n var levels = basisFile.getNumLevels(0);\n var hasAlpha = basisFile.getHasAlpha();\n function cleanup() {\n basisFile.close();\n basisFile.delete();\n }\n if (!hasAlpha) {\n switch (config.format) {\n case 9: // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA\n config.format = 8; // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;\n break;\n default: break;\n }\n }\n if (!width || !height || !levels) {\n cleanup();\n throw new Error("BasisTextureLoader: Invalid .basis file");\n }\n if (!basisFile.startTranscoding()) {\n cleanup();\n throw new Error("BasisTextureLoader: .startTranscoding failed");\n }\n var mipmaps = [];\n for (var mip = 0; mip < levels; mip++) {\n var mipWidth = basisFile.getImageWidth(0, mip);\n var mipHeight = basisFile.getImageHeight(0, mip);\n var dst = new Uint8Array(basisFile.getImageTranscodedSizeInBytes(0, mip, config.format));\n var status = basisFile.transcodeImage(dst, 0, mip, config.format, 0, hasAlpha);\n if (!status) {\n cleanup();\n throw new Error("BasisTextureLoader: .transcodeImage failed.");\n }\n mipmaps.push({ data: dst, width: mipWidth, height: mipHeight });\n }\n cleanup();\n return { width, height, hasAlpha, mipmaps, format: config.format };\n}\n',vi={cTFETC1:0,cTFETC2:1,cTFBC1:2,cTFBC3:3,cTFBC4:4,cTFBC5:5,cTFBC7_M6_OPAQUE_ONLY:6,cTFBC7_M5:7,cTFPVRTC1_4_RGB:8,cTFPVRTC1_4_RGBA:9,cTFASTC_4x4:10,cTFATC_RGB:11,cTFATC_RGBA_INTERPOLATED_ALPHA:12,cTFRGBA32:13,cTFRGB565:14,cTFBGR565:15,cTFRGBA4444:16},Ni={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779},Di=((fi={})[vi.cTFBC1]=Ni.COMPRESSED_RGB_S3TC_DXT1_EXT,fi[vi.cTFBC3]=Ni.COMPRESSED_RGBA_S3TC_DXT5_EXT,fi),wi=function(){function e(){}return e.setTranscoderPath=function(e){return this.transcoderPath=e,this},e.setWorkerLimit=function(e){return this.workerLimit=e,this},e.isInitialized=function(){return 0!==this.workerPool.filter((function(e){return e._initialized})).length},e.detectSupport=function(t){var i=this.workerConfig;if(i.astcSupported=!!t.extensions.get("WEBGL_compressed_texture_astc"),i.bptcSupported=!!t.extensions.get("EXT_texture_compression_bptc"),i.etcSupported=!!t.extensions.get("WEBGL_compressed_texture_etc1"),i.dxtSupported=!!t.extensions.get("WEBGL_compressed_texture_s3tc"),i.pvrtcSupported=!!t.extensions.get("WEBGL_compressed_texture_pvrtc")||!!t.extensions.get("WEBKIT_WEBGL_compressed_texture_pvrtc"),i.astcSupported)i.format=e.BASIS_FORMAT.cTFASTC_4x4;else if(i.bptcSupported)i.format=e.BASIS_FORMAT.cTFBC7_M5;else if(i.dxtSupported)i.format=e.BASIS_FORMAT.cTFBC3;else if(i.pvrtcSupported)i.format=e.BASIS_FORMAT.cTFPVRTC1_4_RGBA;else{if(!i.etcSupported)throw new Error("BasisTextureLoader: No suitable compressed texture format found.");i.format=e.BASIS_FORMAT.cTFETC1}return this},e.createTexture=function(e){var t,i,n=this,o=e.byteLength,s=this._allocateWorker(o).then((function(r){return t=r,i=n.workerNextTaskID++,new Promise((function(n,r){t._callbacks[i]={resolve:n,reject:r},t.postMessage({type:"transcode",id:i,buffer:e},[e])}))})).then((function(e){var t,i=n.workerConfig,o=e.width,s=e.height,a=e.mipmaps;switch(e.format){case vi.cTFASTC_4x4:t=new r.CompressedTexture(a,o,s,r.RGBA_ASTC_4x4_Format);break;case vi.cTFBC1:case vi.cTFBC3:t=new r.CompressedTexture(a,o,s,Di[i.format],r.UnsignedByteType);break;case vi.cTFETC1:t=new r.CompressedTexture(a,o,s,r.RGB_ETC1_Format);break;case vi.cTFPVRTC1_4_RGB:t=new r.CompressedTexture(a,o,s,r.RGB_PVRTC_4BPPV1_Format);break;case vi.cTFPVRTC1_4_RGBA:t=new r.CompressedTexture(a,o,s,r.RGBA_PVRTC_4BPPV1_Format);break;default:throw new Error("BasisTextureLoader: No supported format available.")}return t.minFilter=1===a.length?r.LinearFilter:r.LinearMipmapLinearFilter,t.magFilter=r.LinearFilter,t.generateMipmaps=!1,t.needsUpdate=!0,t}));return s.catch((function(){return!0})).then((function(){t&&i&&(t._taskLoad-=o,delete t._callbacks[i])})),s},e._initTranscoder=function(){var e=this;if(!this.transcoderPending){var t=new r.FileLoader;t.setPath(this.transcoderPath);var i=new Promise((function(e,i){t.load("basis_transcoder.js",e,void 0,i)})),n=new r.FileLoader;n.setPath(this.transcoderPath),n.setResponseType("arraybuffer");var o=new Promise((function(e,t){n.load("basis_transcoder.wasm",e,void 0,t)}));this.transcoderPending=Promise.all([i,o]).then((function(t){var i=t[0],n=t[1],r=["/* basis_transcoder.js */",i,"/* worker */",mi].join("\n");e.workerSourceURL=URL.createObjectURL(new Blob([r])),e.transcoderBinary=n}))}return this.transcoderPending},e._allocateWorker=function(e){var t=this;return this._initTranscoder().then((function(){if(t.workerPool.length<t.workerLimit){var i=function(e){var t=new Worker(e);return Object.assign(t,{_callbacks:{},_initialized:!1,_taskLoad:0})}(t.workerSourceURL);i._callbacks={},i._initialized=!1,i._taskLoad=0,i.postMessage({type:"init",config:t.workerConfig,transcoderBinary:t.transcoderBinary}),i.onmessage=function(e){var t=e.data;switch(t.type){case"initialized":i._initialized=!0,console.info("BasisTextureLoader: basis loader initialized");break;case"transcode":i._callbacks[t.id].resolve(t);break;case"error":i._callbacks[t.id].reject(t);break;default:console.error('BasisTextureLoader: Unexpected message, "'+t.type+'"')}},t.workerPool.push(i)}else t.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));var n=t.workerPool[t.workerPool.length-1];return n._taskLoad+=e,n}))},e.prototype.dispose=function(){for(var t=0;t<e.workerPool.length;t++)e.workerPool[t].terminate();return e.workerPool.length=0,this},e.BASIS_FORMAT=vi,e.DXT_FORMAT=Ni,e.DXT_FORMAT_MAP=Di,e.transcoderPath="https://vrlab-public.ljcdn.com/release/static/image/release/five/basis/",e.transcoderBinary=null,e.transcoderPending=null,e.workerLimit=1,e.workerPool=[],e.workerNextTaskID=1,e.workerSourceURL="",e.workerConfig={format:null,astcSupported:!1,bptcSupported:!1,etcSupported:!1,dxtSupported:!1,pvrtcSupported:!1},e}();function Ti(e){var t=e.match(/^([0-9a-z]+\:)\/\/(([^:/?#]*)(?::[0-9]+)?)/);return t?t[1]:location.protocol}var xi=function(){function e(e){this.timeout=e.timeout,this.allowHosts=e.allowHosts,this.networkSubscribe=e.networkSubscribe}return e.prototype.setAllowHosts=function(e){this.allowHosts=e},e.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e},e.prototype.load=function(e,i,n,o,s,a){void 0===i&&(i={}),void 0===n&&(n=Qe),void 0===o&&(o=Qe),void 0===s&&(s=Qe);var u=Ti(e),c={timeout:this.timeout,allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe};if(/^https?:$/.test(u)||Ot(e)){if(/\.basis$/.test(St(e).split("?")[0])){var l=null,h="arraybuffer";return!0===i.flipY?Promise.reject(new Error(".basis cannnot set flipY: true.")):Ct(e,t.__assign(t.__assign({},c),{responseType:h}),void 0,void 0,s).then((function(e){return l=e.meta,wi.createTexture(e.body)})).then((function(e){return!1!==i.preInit?yi(e,t.__assign({flipY:!1,encoding:r.sRGBEncoding},Xt(i,["wrapS","wrapT"])),a):e})).then((function(e){var t={meta:l,body:e};return n(t),t})).catch((function(e){return o(e),Promise.reject(e)}))}h="blob";return Ct(e,t.__assign(t.__assign({},c),{responseType:h}),void 0,void 0,s).then((function(e){return ui(e.body)})).then((function(e){return ci(e,i.maxSize)})).then((function(e){return!1!==i.preInit?yi(e,t.__assign({flipY:!0,encoding:r.sRGBEncoding},i),a):e})).then((function(e){var t={meta:null,body:e};return n(t),t})).catch((function(e){return o(e),Promise.reject(e)}))}var d=null,p=ai();return _t(e,c,void 0,void 0,s,p).then((function(e){return d=e.meta,ci(e.body,i.maxSize)})).then((function(e){return!1!==i.preInit?yi(e,t.__assign({flipY:!0,encoding:r.sRGBEncoding},i),a):e})).then((function(e){var t={meta:d,body:e};return n(t),t})).catch((function(e){return p.close(),o(e),Promise.reject(e)}))},e.prototype.loadCube=function(e,i,n,o,s,a){void 0===i&&(i={}),void 0===n&&(n=Qe),void 0===o&&(o=Qe),void 0===s&&(s=Qe),Array.isArray(e)||(e=[e.right,e.left,e.up,e.down,e.front,e.back]);for(var u={timeout:this.timeout,allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe},c=[],l=[0,0,0,0,0,0],h=[],d=function(i){var n=e[i],r=Ti(n),o=function(e){l[i]=e,s(l.reduce((function(e,t){return e+t}),0)/6)};if(/^https?\:$/.test(r)||Ot(n))if(/\.basis$/.test(St(n).split("?")[0])){var a="arraybuffer",d=Ct(n,t.__assign(t.__assign({},u),{responseType:a}),void 0,void 0,o).then((function(e){return h[i]=e.meta,wi.createTexture(e.body)}));c.push(d)}else{a="blob",d=Ct(n,t.__assign(t.__assign({},u),{responseType:a}),void 0,void 0,o).then((function(e){return h[i]=e.meta,ui(e.body)}));c.push(d)}else{var p=ai();d=_t(n,u,void 0,void 0,o,p).then((function(e){return h[i]=e.meta,e.body})).catch((function(e){return p.close(),Promise.reject(e)}));c.push(d)}},p=0;p<6;p++)d(p);return Promise.all(c).then((function(e){return e[0]instanceof r.CompressedTexture?function(e){var t=new r.CubeTexture(e);t.needsUpdate=!0;var i=t.dispose;return t.dispose=function(){for(var n=0,r=e;n<r.length;n++)r[n].dispose();i.call(t)},t.isCompressedTexture=!0,t.format=e[0].format,t.minFilter=e[0].minFilter,t.magFilter=e[0].magFilter,t}(e):function(e){var t=new r.CubeTexture(e);t.needsUpdate=!0,t.flipY=!1;var i=t.dispose;return t.dispose=function(){for(var n=0,r=e;n<r.length;n++)r[n].close();i.call(t)},t}(e)})).then((function(e){return!1!==i.preInit?e.isCompressedTexture?yi(e,t.__assign({flipY:!1,encoding:r.sRGBEncoding},Xt(i,["wrapS","wrapT"])),a):yi(e,t.__assign({flipY:!1,encoding:r.sRGBEncoding},i),a):e})).then((function(e){var t={body:e,meta:h};return n(t),t})).catch((function(e){for(var t=0,i=c;t<i.length;t++){i[t].then((function(e){e instanceof r.Texture?e.dispose():e.close()})).catch(Qe)}return o(e),Promise.reject(e)}))},e}(),Ei={computeTangents:function(e){var t=e.index,i=e.attributes;if(null!==t&&void 0!==i.position&&void 0!==i.normal&&void 0!==i.uv){var n=t.array,o=i.position.array,s=i.normal.array,a=i.uv.array,u=o.length/3;void 0===i.tangent&&e.setAttribute("tangent",new r.BufferAttribute(new Float32Array(4*u),4));for(var c=i.tangent.array,l=[],h=[],d=0;d<u;d++)l[d]=new r.Vector3,h[d]=new r.Vector3;var p=new r.Vector3,A=new r.Vector3,f=new r.Vector3,M=new r.Vector2,g=new r.Vector2,y=new r.Vector2,m=new r.Vector3,v=new r.Vector3,N=e.groups;0===N.length&&(N=[{start:0,count:n.length}]);d=0;for(var D=N.length;d<D;++d)for(var w=L=(S=N[d]).start,T=L+S.count;w<T;w+=3)k(n[w+0],n[w+1],n[w+2]);var x,E,j,z=new r.Vector3,I=new r.Vector3,b=new r.Vector3,O=new r.Vector3;for(d=0,D=N.length;d<D;++d){var S,L;for(w=L=(S=N[d]).start,T=L+S.count;w<T;w+=3)C(n[w+0]),C(n[w+1]),C(n[w+2])}}else console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");function k(e,t,i){p.fromArray(o,3*e),A.fromArray(o,3*t),f.fromArray(o,3*i),M.fromArray(a,2*e),g.fromArray(a,2*t),y.fromArray(a,2*i);var n=A.x-p.x,r=f.x-p.x,s=A.y-p.y,u=f.y-p.y,c=A.z-p.z,d=f.z-p.z,N=g.x-M.x,D=y.x-M.x,w=g.y-M.y,T=y.y-M.y,x=1/(N*T-D*w);m.set((T*n-w*r)*x,(T*s-w*u)*x,(T*c-w*d)*x),v.set((N*r-D*n)*x,(N*u-D*s)*x,(N*d-D*c)*x),l[e].add(m),l[t].add(m),l[i].add(m),h[e].add(v),h[t].add(v),h[i].add(v)}function C(e){b.fromArray(s,3*e),O.copy(b),E=l[e],z.copy(E),z.sub(b.multiplyScalar(b.dot(E))).normalize(),I.crossVectors(O,E),j=I.dot(h[e]),x=j<0?-1:1,c[4*e]=z.x,c[4*e+1]=z.y,c[4*e+2]=z.z,c[4*e+3]=x}},mergeBufferGeometries:function(e,t){for(var i=null!==e[0].index,n=new Set(Object.keys(e[0].attributes)),o=new Set(Object.keys(e[0].morphAttributes)),s={},a={},u=new r.BufferGeometry,c=0,l=0;l<e.length;++l){var h=e[l];if(i!==(null!==h.index))return null;for(var d in h.attributes){if(!n.has(d))return null;void 0===s[d]&&(s[d]=[]),s[d].push(h.attributes[d])}for(var d in h.morphAttributes){if(!o.has(d))return null;void 0===a[d]&&(a[d]=[]),a[d].push(h.morphAttributes[d])}if(u.userData.mergedUserData=u.userData.mergedUserData||[],u.userData.mergedUserData.push(h.userData),t){var p;if(i)p=h.index.count;else{if(void 0===h.attributes.position)return null;p=h.attributes.position.count}u.addGroup(c,p,l),c+=p}}if(i){var A=0,f=[];for(l=0;l<e.length;++l){for(var M=e[l].index,g=0;g<M.count;++g)f.push(M.getX(g)+A);A+=e[l].attributes.position.count}u.setIndex(f)}for(var d in s){var y=this.mergeBufferAttributes(s[d]);if(!y)return null;u.setAttribute(d,y)}for(var d in a){var m=a[d][0].length;if(0===m)break;u.morphAttributes=u.morphAttributes||{},u.morphAttributes[d]=[];for(l=0;l<m;++l){var v=[];for(g=0;g<a[d].length;++g)v.push(a[d][g][l]);var N=this.mergeBufferAttributes(v);if(!N)return null;u.morphAttributes[d].push(N)}}return u},mergeBufferAttributes:function(e){for(var t,i,n,o=0,s=0;s<e.length;++s){var a=e[s];if(a.isInterleavedBufferAttribute)return null;if(void 0===t&&(t=a.array.constructor),t!==a.array.constructor)return null;if(void 0===i&&(i=a.itemSize),i!==a.itemSize)return null;if(void 0===n&&(n=a.normalized),n!==a.normalized)return null;o+=a.array.length}var u=new t(o),c=0;for(s=0;s<e.length;++s)u.set(e[s].array,c),c+=e[s].array.length;return new r.BufferAttribute(u,i,n)},interleaveAttributes:function(e){for(var t,i=0,n=0,o=0,s=e.length;o<s;++o){var a=e[o];if(void 0===t&&(t=a.array.constructor),t!==a.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;i+=a.array.length,n+=a.itemSize}var u=new r.InterleavedBuffer(new t(i),n),c=0,l=[],h=["getX","getY","getZ","getW"],d=["setX","setY","setZ","setW"],p=0;for(s=e.length;p<s;p++){var A=(a=e[p]).itemSize,f=a.count,M=new r.InterleavedBufferAttribute(u,A,c,a.normalized);l.push(M),c+=A;for(var g=0;g<f;g++)for(var y=0;y<A;y++)M[d[y]](g,a[h[y]](g))}return l},estimateBytesUsed:function(e){var t=0;for(var i in e.attributes){var n=e.getAttribute(i);t+=n.count*n.itemSize*n.array.BYTES_PER_ELEMENT}var r=e.getIndex();return t+=r?r.count*r.itemSize*r.array.BYTES_PER_ELEMENT:0},mergeVertices:function(e,t){void 0===t&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var i={},n=e.getIndex(),o=e.getAttribute("position"),s=n?n.count:o.count,a=0,u=Object.keys(e.attributes),c={},l={},h=[],d=["getX","getY","getZ","getW"],p=0,A=u.length;p<A;p++){c[v=u[p]]=[],(T=e.morphAttributes[v])&&(l[v]=new Array(T.length).fill().map((function(){return[]})))}var f=Math.log10(1/t),M=Math.pow(10,f);for(p=0;p<s;p++){var g=n?n.getX(p):p,y="",m=0;for(A=u.length;m<A;m++)for(var v=u[m],N=(w=e.getAttribute(v)).itemSize,D=0;D<N;D++)y+=~~(w[d[D]](g)*M)+",";if(y in i)h.push(i[y]);else{for(m=0,A=u.length;m<A;m++){v=u[m];var w=e.getAttribute(v),T=e.morphAttributes[v],x=(N=w.itemSize,c[v]),E=l[v];for(D=0;D<N;D++){var j=d[D];if(x.push(w[j](g)),T)for(var z=0,I=T.length;z<I;z++)E[z].push(T[z][j](g))}}i[y]=a,h.push(a),a++}}var b=e.clone();for(p=0,A=u.length;p<A;p++){v=u[p];var O=e.getAttribute(v),S=new O.array.constructor(c[v]);w=new r.BufferAttribute(S,O.itemSize,O.normalized);if(b.setAttribute(v,w),v in l)for(m=0;m<l[v].length;m++){var L=e.morphAttributes[v][m],k=(S=new L.array.constructor(l[v][m]),new r.BufferAttribute(S,L.itemSize,L.normalized));b.morphAttributes[v][m]=k}}return b.setIndex(h),b}};const ji=o.Reader,zi=o.Writer,Ii=o.util,bi=o.roots["@REALSEE/FIVE:1"]||(o.roots["@REALSEE/FIVE:1"]={}),Oi=bi.Model=(()=>{function e(e){if(this.chunks=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.chunks=Ii.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=zi.create()),null!=e.chunks&&e.chunks.length)for(let i=0;i<e.chunks.length;++i)bi.Chunk.encode(e.chunks[i],t.uint32(10).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof ji||(e=ji.create(e));let i=void 0===t?e.len:e.pos+t,n=new bi.Model;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.chunks&&n.chunks.length||(n.chunks=[]),n.chunks.push(bi.Chunk.decode(e,e.uint32()));break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof ji||(e=new ji(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.chunks&&e.hasOwnProperty("chunks")){if(!Array.isArray(e.chunks))return"chunks: array expected";for(let t=0;t<e.chunks.length;++t){let i=bi.Chunk.verify(e.chunks[t]);if(i)return"chunks."+i}}return null},e.fromObject=function(e){if(e instanceof bi.Model)return e;let t=new bi.Model;if(e.chunks){if(!Array.isArray(e.chunks))throw TypeError(".Model.chunks: array expected");t.chunks=[];for(let i=0;i<e.chunks.length;++i){if("object"!=typeof e.chunks[i])throw TypeError(".Model.chunks: object expected");t.chunks[i]=bi.Chunk.fromObject(e.chunks[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.chunks=[]),e.chunks&&e.chunks.length){i.chunks=[];for(let n=0;n<e.chunks.length;++n)i.chunks[n]=bi.Chunk.toObject(e.chunks[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})();bi.Chunk=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.vertices=null,e.prototype.faces=null,e.prototype.name="",e.prototype.texture="",e.create=function(t){return new e(t)},e.encode=function(e,t){return t||(t=zi.create()),bi.Vertices.encode(e.vertices,t.uint32(10).fork()).ldelim(),bi.Faces.encode(e.faces,t.uint32(18).fork()).ldelim(),t.uint32(26).string(e.name),null!=e.texture&&Object.hasOwnProperty.call(e,"texture")&&t.uint32(34).string(e.texture),t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof ji||(e=ji.create(e));let i=void 0===t?e.len:e.pos+t,n=new bi.Chunk;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.vertices=bi.Vertices.decode(e,e.uint32());break;case 2:n.faces=bi.Faces.decode(e,e.uint32());break;case 3:n.name=e.string();break;case 4:n.texture=e.string();break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("vertices"))throw Ii.ProtocolError("missing required 'vertices'",{instance:n});if(!n.hasOwnProperty("faces"))throw Ii.ProtocolError("missing required 'faces'",{instance:n});if(!n.hasOwnProperty("name"))throw Ii.ProtocolError("missing required 'name'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof ji||(e=new ji(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";{let t=bi.Vertices.verify(e.vertices);if(t)return"vertices."+t}{let t=bi.Faces.verify(e.faces);if(t)return"faces."+t}return Ii.isString(e.name)?null!=e.texture&&e.hasOwnProperty("texture")&&!Ii.isString(e.texture)?"texture: string expected":null:"name: string expected"},e.fromObject=function(e){if(e instanceof bi.Chunk)return e;let t=new bi.Chunk;if(null!=e.vertices){if("object"!=typeof e.vertices)throw TypeError(".Chunk.vertices: object expected");t.vertices=bi.Vertices.fromObject(e.vertices)}if(null!=e.faces){if("object"!=typeof e.faces)throw TypeError(".Chunk.faces: object expected");t.faces=bi.Faces.fromObject(e.faces)}return null!=e.name&&(t.name=String(e.name)),null!=e.texture&&(t.texture=String(e.texture)),t},e.toObject=function(e,t){t||(t={});let i={};return t.defaults&&(i.vertices=null,i.faces=null,i.name="",i.texture=""),null!=e.vertices&&e.hasOwnProperty("vertices")&&(i.vertices=bi.Vertices.toObject(e.vertices,t)),null!=e.faces&&e.hasOwnProperty("faces")&&(i.faces=bi.Faces.toObject(e.faces,t)),null!=e.name&&e.hasOwnProperty("name")&&(i.name=e.name),null!=e.texture&&e.hasOwnProperty("texture")&&(i.texture=e.texture),i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),bi.Vertices=(()=>{function e(e){if(this.xyz=[],this.uvs=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.xyz=Ii.emptyArray,e.prototype.uvs=Ii.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=zi.create()),null!=e.xyz&&e.xyz.length){t.uint32(10).fork();for(let i=0;i<e.xyz.length;++i)t.float(e.xyz[i]);t.ldelim()}if(null!=e.uvs&&e.uvs.length){t.uint32(18).fork();for(let i=0;i<e.uvs.length;++i)t.float(e.uvs[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof ji||(e=ji.create(e));let i=void 0===t?e.len:e.pos+t,n=new bi.Vertices;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.xyz&&n.xyz.length||(n.xyz=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.xyz.push(e.float())}else n.xyz.push(e.float());break;case 2:if(n.uvs&&n.uvs.length||(n.uvs=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.uvs.push(e.float())}else n.uvs.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof ji||(e=new ji(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.xyz&&e.hasOwnProperty("xyz")){if(!Array.isArray(e.xyz))return"xyz: array expected";for(let t=0;t<e.xyz.length;++t)if("number"!=typeof e.xyz[t])return"xyz: number[] expected"}if(null!=e.uvs&&e.hasOwnProperty("uvs")){if(!Array.isArray(e.uvs))return"uvs: array expected";for(let t=0;t<e.uvs.length;++t)if("number"!=typeof e.uvs[t])return"uvs: number[] expected"}return null},e.fromObject=function(e){if(e instanceof bi.Vertices)return e;let t=new bi.Vertices;if(e.xyz){if(!Array.isArray(e.xyz))throw TypeError(".Vertices.xyz: array expected");t.xyz=[];for(let i=0;i<e.xyz.length;++i)t.xyz[i]=Number(e.xyz[i])}if(e.uvs){if(!Array.isArray(e.uvs))throw TypeError(".Vertices.uvs: array expected");t.uvs=[];for(let i=0;i<e.uvs.length;++i)t.uvs[i]=Number(e.uvs[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.xyz=[],i.uvs=[]),e.xyz&&e.xyz.length){i.xyz=[];for(let n=0;n<e.xyz.length;++n)i.xyz[n]=t.json&&!isFinite(e.xyz[n])?String(e.xyz[n]):e.xyz[n]}if(e.uvs&&e.uvs.length){i.uvs=[];for(let n=0;n<e.uvs.length;++n)i.uvs[n]=t.json&&!isFinite(e.uvs[n])?String(e.uvs[n]):e.uvs[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),bi.Faces=(()=>{function e(e){if(this.indices=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.indices=Ii.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=zi.create()),null!=e.indices&&e.indices.length){t.uint32(10).fork();for(let i=0;i<e.indices.length;++i)t.uint32(e.indices[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof ji||(e=ji.create(e));let i=void 0===t?e.len:e.pos+t,n=new bi.Faces;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.indices&&n.indices.length||(n.indices=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.indices.push(e.uint32())}else n.indices.push(e.uint32());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof ji||(e=new ji(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.indices&&e.hasOwnProperty("indices")){if(!Array.isArray(e.indices))return"indices: array expected";for(let t=0;t<e.indices.length;++t)if(!Ii.isInteger(e.indices[t]))return"indices: integer[] expected"}return null},e.fromObject=function(e){if(e instanceof bi.Faces)return e;let t=new bi.Faces;if(e.indices){if(!Array.isArray(e.indices))throw TypeError(".Faces.indices: array expected");t.indices=[];for(let i=0;i<e.indices.length;++i)t.indices[i]=e.indices[i]>>>0}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.indices=[]),e.indices&&e.indices.length){i.indices=[];for(let t=0;t<e.indices.length;++t)i.indices[t]=e.indices[t]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})();var Si=(new r.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1);function Li(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function ki(e){var t=e.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function Ci(e){var t=e.indices,i=e.vertices,n=e.uvs,o=new r.BufferGeometry;o.setIndex(new r.BufferAttribute(new Uint32Array(t),1)),o.setAttribute("position",new r.BufferAttribute(new Float32Array(i),3)),o.attributes.position.applyMatrix4(Si),Re(n)||o.setAttribute("uv",new r.BufferAttribute(new Float32Array(n),2));for(var s=new Float32Array(i.length),a=new r.Vector3,u=new r.Vector3,c=new r.Vector3,l=new r.Vector3,h=new r.Vector3,d=new r.Vector3,p=0,A=o.index.array.length,f=void 0,M=void 0,g=void 0;p<A;p+=3)f=3*t[p+0],M=3*t[p+1],g=3*t[p+2],a.x=i[f],a.y=i[f+1],a.z=i[f+2],u.x=i[M],u.y=i[M+1],u.z=i[M+2],c.x=i[g],c.y=i[g+1],c.z=i[g+2],l.x=c.x-u.x,l.y=c.y-u.y,l.z=c.z-u.z,h.x=a.x-u.x,h.y=a.y-u.y,h.z=a.z-u.z,d.x=l.y*h.z-l.z*h.y,d.y=l.z*h.x-l.x*h.z,d.z=l.x*h.y-l.y*h.x,s[f]+=d.x,s[f+1]+=d.y,s[f+2]+=d.z,s[M]+=d.x,s[M+1]+=d.y,s[M+2]+=d.z,s[g]+=d.x,s[g+1]+=d.y,s[g+2]+=d.z;return o.setAttribute("normal",new r.BufferAttribute(s,3)),o}function Pi(e,i,n,o){var s=t.__assign({key:"texture.pbm",basisLoaderInitialized:wi.isInitialized()},Xt(i,["format","quality","size"]));return e=i.transform?i.transform(e,s):ti(e,s),new xi({allowHosts:n,networkSubscribe:o}).load(e,{wrapS:r.ClampToEdgeWrapping,wrapT:r.ClampToEdgeWrapping,minFilter:r.LinearFilter,maxSize:new r.Vector2(1024,1024)}).then((function(e){var t=e.body;return t.needsUpdate=!0,t}))}function _i(e){var t=new rt;return e.catch((function(){return null})).then((function(e){t.uniforms.map.value=e,t.uniforms.exposure.value=3.3})),t}function Bi(e,t,i,n,o,s,a){void 0===o&&(o={});for(var u=0,c=e;u<c.length;u++){var l=c[u];l.chunkName=ki(l.name),l.floorName=Li(l.name),l.texture&&(l.texture=i[l.chunkName]=i[l.chunkName]||t+l.texture)}e.sort((function(e,t){return 1e3*e.floorName+e.chunkName-(1e3*t.floorName+t.chunkName)}));var h=[],d=[],p=Promise.resolve();return(p=(p=p.then((function(){return Ft((function(){for(var t=e.length,i=0;i<t;i++){var u=e[i],c=Li(u.name),l=h[c]=h[c]||{geometries:[],materials:[]},d=Ci({vertices:u.vertices.xyz,uvs:u.vertices.uvs,indices:u.faces.indices});if(d.name="model_geo_chunk_"+i,l.geometries.push(d),u.texture){(p=_i(u.texture in o?o[u.texture]:o[u.texture]=Pi(u.texture,n,s,a))).name="model_mtl_chunk_"+i,l.materials.push(p)}else{var p;(p=new rt).defines.USE_MAP=!1,p.uniforms.color.value=new r.Color(16777215),p.name="model_mtl_chunk_"+i,l.materials.push(p)}}}))}))).then((function(){return Ft((function(){for(var e=0;e<h.length;e++){var t=h[e];if(t){var i=Ei.mergeBufferGeometries(t.geometries,!0);t.geometries.forEach((function(e){return e.dispose()}));var n=new qe(i,t.materials);n.floorIndex=e,n.name="model_floor_"+e,d.push(n)}}}))}))).then((function(){var e=Object.keys(o).map((function(e){return o[e].catch((function(){}))}));return Promise.all(e).then((function(){return d}))}))}function Ui(e,t){return!1!==(e=Object.assign({},e)).autoResize&&(e.size=t>96?Math.min(e.size||1/0,100):t>48?Math.min(e.size||1/0,200):t>24?Math.min(e.size||1/0,400):t>12?Math.min(e.size||1/0,800):Math.min(e.size||1/0,1024)),e}function Ri(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:\/\//i.test(e)}const Qi=o.Reader,Yi=o.Writer,Fi=o.util,Vi=o.roots["@REALSEE/FIVE:0"]||(o.roots["@REALSEE/FIVE:0"]={}),Hi=Vi.Model=(()=>{function e(e){if(this.meshes=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.meshes=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.meshes&&e.meshes.length)for(let i=0;i<e.meshes.length;++i)Vi.Mesh.encode(e.meshes[i],t.uint32(10).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Model;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.meshes&&n.meshes.length||(n.meshes=[]),n.meshes.push(Vi.Mesh.decode(e,e.uint32()));break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.meshes&&e.hasOwnProperty("meshes")){if(!Array.isArray(e.meshes))return"meshes: array expected";for(let t=0;t<e.meshes.length;++t){let i=Vi.Mesh.verify(e.meshes[t]);if(i)return"meshes."+i}}return null},e.fromObject=function(e){if(e instanceof Vi.Model)return e;let t=new Vi.Model;if(e.meshes){if(!Array.isArray(e.meshes))throw TypeError(".Model.meshes: array expected");t.meshes=[];for(let i=0;i<e.meshes.length;++i){if("object"!=typeof e.meshes[i])throw TypeError(".Model.meshes: object expected");t.meshes[i]=Vi.Mesh.fromObject(e.meshes[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.meshes=[]),e.meshes&&e.meshes.length){i.meshes=[];for(let n=0;n<e.meshes.length;++n)i.meshes[n]=Vi.Mesh.toObject(e.meshes[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})();Vi.Mesh=(()=>{function e(e){if(this.chunks=[],this.matrix=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.name="",e.prototype.chunks=Fi.emptyArray,e.prototype.matrix=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),t.uint32(10).string(e.name),null!=e.chunks&&e.chunks.length)for(let i=0;i<e.chunks.length;++i)Vi.Chunk.encode(e.chunks[i],t.uint32(18).fork()).ldelim();if(null!=e.matrix&&e.matrix.length)for(let i=0;i<e.matrix.length;++i)Vi.Matrix.encode(e.matrix[i],t.uint32(26).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Mesh;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.name=e.string();break;case 2:n.chunks&&n.chunks.length||(n.chunks=[]),n.chunks.push(Vi.Chunk.decode(e,e.uint32()));break;case 3:n.matrix&&n.matrix.length||(n.matrix=[]),n.matrix.push(Vi.Matrix.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("name"))throw Fi.ProtocolError("missing required 'name'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!Fi.isString(e.name))return"name: string expected";if(null!=e.chunks&&e.hasOwnProperty("chunks")){if(!Array.isArray(e.chunks))return"chunks: array expected";for(let t=0;t<e.chunks.length;++t){let i=Vi.Chunk.verify(e.chunks[t]);if(i)return"chunks."+i}}if(null!=e.matrix&&e.hasOwnProperty("matrix")){if(!Array.isArray(e.matrix))return"matrix: array expected";for(let t=0;t<e.matrix.length;++t){let i=Vi.Matrix.verify(e.matrix[t]);if(i)return"matrix."+i}}return null},e.fromObject=function(e){if(e instanceof Vi.Mesh)return e;let t=new Vi.Mesh;if(null!=e.name&&(t.name=String(e.name)),e.chunks){if(!Array.isArray(e.chunks))throw TypeError(".Mesh.chunks: array expected");t.chunks=[];for(let i=0;i<e.chunks.length;++i){if("object"!=typeof e.chunks[i])throw TypeError(".Mesh.chunks: object expected");t.chunks[i]=Vi.Chunk.fromObject(e.chunks[i])}}if(e.matrix){if(!Array.isArray(e.matrix))throw TypeError(".Mesh.matrix: array expected");t.matrix=[];for(let i=0;i<e.matrix.length;++i){if("object"!=typeof e.matrix[i])throw TypeError(".Mesh.matrix: object expected");t.matrix[i]=Vi.Matrix.fromObject(e.matrix[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.chunks=[],i.matrix=[]),t.defaults&&(i.name=""),null!=e.name&&e.hasOwnProperty("name")&&(i.name=e.name),e.chunks&&e.chunks.length){i.chunks=[];for(let n=0;n<e.chunks.length;++n)i.chunks[n]=Vi.Chunk.toObject(e.chunks[n],t)}if(e.matrix&&e.matrix.length){i.matrix=[];for(let n=0;n<e.matrix.length;++n)i.matrix[n]=Vi.Matrix.toObject(e.matrix[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Matrix=(()=>{function e(e){if(this.elements=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.elements=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.elements&&e.elements.length)for(let i=0;i<e.elements.length;++i)t.uint32(13).float(e.elements[i]);return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Matrix;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.elements&&n.elements.length||(n.elements=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.elements.push(e.float())}else n.elements.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.elements&&e.hasOwnProperty("elements")){if(!Array.isArray(e.elements))return"elements: array expected";for(let t=0;t<e.elements.length;++t)if("number"!=typeof e.elements[t])return"elements: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.Matrix)return e;let t=new Vi.Matrix;if(e.elements){if(!Array.isArray(e.elements))throw TypeError(".Matrix.elements: array expected");t.elements=[];for(let i=0;i<e.elements.length;++i)t.elements[i]=Number(e.elements[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.elements=[]),e.elements&&e.elements.length){i.elements=[];for(let n=0;n<e.elements.length;++n)i.elements[n]=t.json&&!isFinite(e.elements[n])?String(e.elements[n]):e.elements[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Chunk=(()=>{function e(e){if(this.material=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.geometry=null,e.prototype.material=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),Vi.Geometry.encode(e.geometry,t.uint32(18).fork()).ldelim(),null!=e.material&&e.material.length)for(let i=0;i<e.material.length;++i)Vi.Material.encode(e.material[i],t.uint32(26).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Chunk;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 2:n.geometry=Vi.Geometry.decode(e,e.uint32());break;case 3:n.material&&n.material.length||(n.material=[]),n.material.push(Vi.Material.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("geometry"))throw Fi.ProtocolError("missing required 'geometry'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";{let t=Vi.Geometry.verify(e.geometry);if(t)return"geometry."+t}if(null!=e.material&&e.hasOwnProperty("material")){if(!Array.isArray(e.material))return"material: array expected";for(let t=0;t<e.material.length;++t){let i=Vi.Material.verify(e.material[t]);if(i)return"material."+i}}return null},e.fromObject=function(e){if(e instanceof Vi.Chunk)return e;let t=new Vi.Chunk;if(null!=e.geometry){if("object"!=typeof e.geometry)throw TypeError(".Chunk.geometry: object expected");t.geometry=Vi.Geometry.fromObject(e.geometry)}if(e.material){if(!Array.isArray(e.material))throw TypeError(".Chunk.material: array expected");t.material=[];for(let i=0;i<e.material.length;++i){if("object"!=typeof e.material[i])throw TypeError(".Chunk.material: object expected");t.material[i]=Vi.Material.fromObject(e.material[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.material=[]),t.defaults&&(i.geometry=null),null!=e.geometry&&e.hasOwnProperty("geometry")&&(i.geometry=Vi.Geometry.toObject(e.geometry,t)),e.material&&e.material.length){i.material=[];for(let n=0;n<e.material.length;++n)i.material[n]=Vi.Material.toObject(e.material[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Geometry=(()=>{function e(e){if(this.groups=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.position=null,e.prototype.uv=null,e.prototype.uv2=null,e.prototype.normal=null,e.prototype.groups=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),Vi.Position.encode(e.position,t.uint32(10).fork()).ldelim(),null!=e.uv&&Object.hasOwnProperty.call(e,"uv")&&Vi.UV.encode(e.uv,t.uint32(18).fork()).ldelim(),null!=e.uv2&&Object.hasOwnProperty.call(e,"uv2")&&Vi.UV.encode(e.uv2,t.uint32(26).fork()).ldelim(),Vi.Normal.encode(e.normal,t.uint32(34).fork()).ldelim(),null!=e.groups&&e.groups.length)for(let i=0;i<e.groups.length;++i)Vi.Group.encode(e.groups[i],t.uint32(42).fork()).ldelim();return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Geometry;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.position=Vi.Position.decode(e,e.uint32());break;case 2:n.uv=Vi.UV.decode(e,e.uint32());break;case 3:n.uv2=Vi.UV.decode(e,e.uint32());break;case 4:n.normal=Vi.Normal.decode(e,e.uint32());break;case 5:n.groups&&n.groups.length||(n.groups=[]),n.groups.push(Vi.Group.decode(e,e.uint32()));break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("position"))throw Fi.ProtocolError("missing required 'position'",{instance:n});if(!n.hasOwnProperty("normal"))throw Fi.ProtocolError("missing required 'normal'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";{let t=Vi.Position.verify(e.position);if(t)return"position."+t}if(null!=e.uv&&e.hasOwnProperty("uv")){let t=Vi.UV.verify(e.uv);if(t)return"uv."+t}if(null!=e.uv2&&e.hasOwnProperty("uv2")){let t=Vi.UV.verify(e.uv2);if(t)return"uv2."+t}{let t=Vi.Normal.verify(e.normal);if(t)return"normal."+t}if(null!=e.groups&&e.hasOwnProperty("groups")){if(!Array.isArray(e.groups))return"groups: array expected";for(let t=0;t<e.groups.length;++t){let i=Vi.Group.verify(e.groups[t]);if(i)return"groups."+i}}return null},e.fromObject=function(e){if(e instanceof Vi.Geometry)return e;let t=new Vi.Geometry;if(null!=e.position){if("object"!=typeof e.position)throw TypeError(".Geometry.position: object expected");t.position=Vi.Position.fromObject(e.position)}if(null!=e.uv){if("object"!=typeof e.uv)throw TypeError(".Geometry.uv: object expected");t.uv=Vi.UV.fromObject(e.uv)}if(null!=e.uv2){if("object"!=typeof e.uv2)throw TypeError(".Geometry.uv2: object expected");t.uv2=Vi.UV.fromObject(e.uv2)}if(null!=e.normal){if("object"!=typeof e.normal)throw TypeError(".Geometry.normal: object expected");t.normal=Vi.Normal.fromObject(e.normal)}if(e.groups){if(!Array.isArray(e.groups))throw TypeError(".Geometry.groups: array expected");t.groups=[];for(let i=0;i<e.groups.length;++i){if("object"!=typeof e.groups[i])throw TypeError(".Geometry.groups: object expected");t.groups[i]=Vi.Group.fromObject(e.groups[i])}}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.groups=[]),t.defaults&&(i.position=null,i.uv=null,i.uv2=null,i.normal=null),null!=e.position&&e.hasOwnProperty("position")&&(i.position=Vi.Position.toObject(e.position,t)),null!=e.uv&&e.hasOwnProperty("uv")&&(i.uv=Vi.UV.toObject(e.uv,t)),null!=e.uv2&&e.hasOwnProperty("uv2")&&(i.uv2=Vi.UV.toObject(e.uv2,t)),null!=e.normal&&e.hasOwnProperty("normal")&&(i.normal=Vi.Normal.toObject(e.normal,t)),e.groups&&e.groups.length){i.groups=[];for(let n=0;n<e.groups.length;++n)i.groups[n]=Vi.Group.toObject(e.groups[n],t)}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Position=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.array&&e.array.length){t.uint32(10).fork();for(let i=0;i<e.array.length;++i)t.float(e.array[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Position;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.array&&e.hasOwnProperty("array")){if(!Array.isArray(e.array))return"array: array expected";for(let t=0;t<e.array.length;++t)if("number"!=typeof e.array[t])return"array: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.Position)return e;let t=new Vi.Position;if(e.array){if(!Array.isArray(e.array))throw TypeError(".Position.array: array expected");t.array=[];for(let i=0;i<e.array.length;++i)t.array[i]=Number(e.array[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.array=[]),e.array&&e.array.length){i.array=[];for(let n=0;n<e.array.length;++n)i.array[n]=t.json&&!isFinite(e.array[n])?String(e.array[n]):e.array[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.UV=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.array&&e.array.length){t.uint32(10).fork();for(let i=0;i<e.array.length;++i)t.float(e.array[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.UV;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.array&&e.hasOwnProperty("array")){if(!Array.isArray(e.array))return"array: array expected";for(let t=0;t<e.array.length;++t)if("number"!=typeof e.array[t])return"array: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.UV)return e;let t=new Vi.UV;if(e.array){if(!Array.isArray(e.array))throw TypeError(".UV.array: array expected");t.array=[];for(let i=0;i<e.array.length;++i)t.array[i]=Number(e.array[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.array=[]),e.array&&e.array.length){i.array=[];for(let n=0;n<e.array.length;++n)i.array[n]=t.json&&!isFinite(e.array[n])?String(e.array[n]):e.array[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Normal=(()=>{function e(e){if(this.array=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.array=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.array&&e.array.length){t.uint32(10).fork();for(let i=0;i<e.array.length;++i)t.float(e.array[i]);t.ldelim()}return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Normal;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.array&&n.array.length||(n.array=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.array.push(e.float())}else n.array.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.array&&e.hasOwnProperty("array")){if(!Array.isArray(e.array))return"array: array expected";for(let t=0;t<e.array.length;++t)if("number"!=typeof e.array[t])return"array: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.Normal)return e;let t=new Vi.Normal;if(e.array){if(!Array.isArray(e.array))throw TypeError(".Normal.array: array expected");t.array=[];for(let i=0;i<e.array.length;++i)t.array[i]=Number(e.array[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.array=[]),e.array&&e.array.length){i.array=[];for(let n=0;n<e.array.length;++n)i.array[n]=t.json&&!isFinite(e.array[n])?String(e.array[n]):e.array[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Group=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.start=0,e.prototype.count=0,e.prototype.materialIndex=0,e.create=function(t){return new e(t)},e.encode=function(e,t){return t||(t=Yi.create()),t.uint32(8).uint32(e.start),t.uint32(16).uint32(e.count),t.uint32(24).uint32(e.materialIndex),t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Group;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.start=e.uint32();break;case 2:n.count=e.uint32();break;case 3:n.materialIndex=e.uint32();break;default:e.skipType(7&t)}}if(!n.hasOwnProperty("start"))throw Fi.ProtocolError("missing required 'start'",{instance:n});if(!n.hasOwnProperty("count"))throw Fi.ProtocolError("missing required 'count'",{instance:n});if(!n.hasOwnProperty("materialIndex"))throw Fi.ProtocolError("missing required 'materialIndex'",{instance:n});return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":Fi.isInteger(e.start)?Fi.isInteger(e.count)?Fi.isInteger(e.materialIndex)?null:"materialIndex: integer expected":"count: integer expected":"start: integer expected"},e.fromObject=function(e){if(e instanceof Vi.Group)return e;let t=new Vi.Group;return null!=e.start&&(t.start=e.start>>>0),null!=e.count&&(t.count=e.count>>>0),null!=e.materialIndex&&(t.materialIndex=e.materialIndex>>>0),t},e.toObject=function(e,t){t||(t={});let i={};return t.defaults&&(i.start=0,i.count=0,i.materialIndex=0),null!=e.start&&e.hasOwnProperty("start")&&(i.start=e.start),null!=e.count&&e.hasOwnProperty("count")&&(i.count=e.count),null!=e.materialIndex&&e.hasOwnProperty("materialIndex")&&(i.materialIndex=e.materialIndex),i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Material=(()=>{function e(e){if(e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.kd=null,e.prototype.ks=null,e.prototype.ke=null,e.prototype.mapkd="",e.prototype.mapks="",e.prototype.mapke="",e.prototype.norm="",e.prototype.mapbump="",e.prototype.bump="",e.prototype.mapd="",e.prototype.ns=0,e.prototype.d=0,e.prototype.tr=0,e.prototype.mapkdrepeat="",e.create=function(t){return new e(t)},e.encode=function(e,t){return t||(t=Yi.create()),null!=e.kd&&Object.hasOwnProperty.call(e,"kd")&&Vi.Color.encode(e.kd,t.uint32(10).fork()).ldelim(),null!=e.ks&&Object.hasOwnProperty.call(e,"ks")&&Vi.Color.encode(e.ks,t.uint32(18).fork()).ldelim(),null!=e.ke&&Object.hasOwnProperty.call(e,"ke")&&Vi.Color.encode(e.ke,t.uint32(26).fork()).ldelim(),null!=e.mapkd&&Object.hasOwnProperty.call(e,"mapkd")&&t.uint32(34).string(e.mapkd),null!=e.mapks&&Object.hasOwnProperty.call(e,"mapks")&&t.uint32(42).string(e.mapks),null!=e.mapke&&Object.hasOwnProperty.call(e,"mapke")&&t.uint32(50).string(e.mapke),null!=e.norm&&Object.hasOwnProperty.call(e,"norm")&&t.uint32(58).string(e.norm),null!=e.mapbump&&Object.hasOwnProperty.call(e,"mapbump")&&t.uint32(66).string(e.mapbump),null!=e.bump&&Object.hasOwnProperty.call(e,"bump")&&t.uint32(74).string(e.bump),null!=e.mapd&&Object.hasOwnProperty.call(e,"mapd")&&t.uint32(82).string(e.mapd),null!=e.ns&&Object.hasOwnProperty.call(e,"ns")&&t.uint32(93).float(e.ns),null!=e.d&&Object.hasOwnProperty.call(e,"d")&&t.uint32(101).float(e.d),null!=e.tr&&Object.hasOwnProperty.call(e,"tr")&&t.uint32(109).float(e.tr),null!=e.mapkdrepeat&&Object.hasOwnProperty.call(e,"mapkdrepeat")&&t.uint32(114).string(e.mapkdrepeat),t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Material;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:n.kd=Vi.Color.decode(e,e.uint32());break;case 2:n.ks=Vi.Color.decode(e,e.uint32());break;case 3:n.ke=Vi.Color.decode(e,e.uint32());break;case 4:n.mapkd=e.string();break;case 5:n.mapks=e.string();break;case 6:n.mapke=e.string();break;case 7:n.norm=e.string();break;case 8:n.mapbump=e.string();break;case 9:n.bump=e.string();break;case 10:n.mapd=e.string();break;case 11:n.ns=e.float();break;case 12:n.d=e.float();break;case 13:n.tr=e.float();break;case 14:n.mapkdrepeat=e.string();break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.kd&&e.hasOwnProperty("kd")){let t=Vi.Color.verify(e.kd);if(t)return"kd."+t}if(null!=e.ks&&e.hasOwnProperty("ks")){let t=Vi.Color.verify(e.ks);if(t)return"ks."+t}if(null!=e.ke&&e.hasOwnProperty("ke")){let t=Vi.Color.verify(e.ke);if(t)return"ke."+t}return null!=e.mapkd&&e.hasOwnProperty("mapkd")&&!Fi.isString(e.mapkd)?"mapkd: string expected":null!=e.mapks&&e.hasOwnProperty("mapks")&&!Fi.isString(e.mapks)?"mapks: string expected":null!=e.mapke&&e.hasOwnProperty("mapke")&&!Fi.isString(e.mapke)?"mapke: string expected":null!=e.norm&&e.hasOwnProperty("norm")&&!Fi.isString(e.norm)?"norm: string expected":null!=e.mapbump&&e.hasOwnProperty("mapbump")&&!Fi.isString(e.mapbump)?"mapbump: string expected":null!=e.bump&&e.hasOwnProperty("bump")&&!Fi.isString(e.bump)?"bump: string expected":null!=e.mapd&&e.hasOwnProperty("mapd")&&!Fi.isString(e.mapd)?"mapd: string expected":null!=e.ns&&e.hasOwnProperty("ns")&&"number"!=typeof e.ns?"ns: number expected":null!=e.d&&e.hasOwnProperty("d")&&"number"!=typeof e.d?"d: number expected":null!=e.tr&&e.hasOwnProperty("tr")&&"number"!=typeof e.tr?"tr: number expected":null!=e.mapkdrepeat&&e.hasOwnProperty("mapkdrepeat")&&!Fi.isString(e.mapkdrepeat)?"mapkdrepeat: string expected":null},e.fromObject=function(e){if(e instanceof Vi.Material)return e;let t=new Vi.Material;if(null!=e.kd){if("object"!=typeof e.kd)throw TypeError(".Material.kd: object expected");t.kd=Vi.Color.fromObject(e.kd)}if(null!=e.ks){if("object"!=typeof e.ks)throw TypeError(".Material.ks: object expected");t.ks=Vi.Color.fromObject(e.ks)}if(null!=e.ke){if("object"!=typeof e.ke)throw TypeError(".Material.ke: object expected");t.ke=Vi.Color.fromObject(e.ke)}return null!=e.mapkd&&(t.mapkd=String(e.mapkd)),null!=e.mapks&&(t.mapks=String(e.mapks)),null!=e.mapke&&(t.mapke=String(e.mapke)),null!=e.norm&&(t.norm=String(e.norm)),null!=e.mapbump&&(t.mapbump=String(e.mapbump)),null!=e.bump&&(t.bump=String(e.bump)),null!=e.mapd&&(t.mapd=String(e.mapd)),null!=e.ns&&(t.ns=Number(e.ns)),null!=e.d&&(t.d=Number(e.d)),null!=e.tr&&(t.tr=Number(e.tr)),null!=e.mapkdrepeat&&(t.mapkdrepeat=String(e.mapkdrepeat)),t},e.toObject=function(e,t){t||(t={});let i={};return t.defaults&&(i.kd=null,i.ks=null,i.ke=null,i.mapkd="",i.mapks="",i.mapke="",i.norm="",i.mapbump="",i.bump="",i.mapd="",i.ns=0,i.d=0,i.tr=0,i.mapkdrepeat=""),null!=e.kd&&e.hasOwnProperty("kd")&&(i.kd=Vi.Color.toObject(e.kd,t)),null!=e.ks&&e.hasOwnProperty("ks")&&(i.ks=Vi.Color.toObject(e.ks,t)),null!=e.ke&&e.hasOwnProperty("ke")&&(i.ke=Vi.Color.toObject(e.ke,t)),null!=e.mapkd&&e.hasOwnProperty("mapkd")&&(i.mapkd=e.mapkd),null!=e.mapks&&e.hasOwnProperty("mapks")&&(i.mapks=e.mapks),null!=e.mapke&&e.hasOwnProperty("mapke")&&(i.mapke=e.mapke),null!=e.norm&&e.hasOwnProperty("norm")&&(i.norm=e.norm),null!=e.mapbump&&e.hasOwnProperty("mapbump")&&(i.mapbump=e.mapbump),null!=e.bump&&e.hasOwnProperty("bump")&&(i.bump=e.bump),null!=e.mapd&&e.hasOwnProperty("mapd")&&(i.mapd=e.mapd),null!=e.ns&&e.hasOwnProperty("ns")&&(i.ns=t.json&&!isFinite(e.ns)?String(e.ns):e.ns),null!=e.d&&e.hasOwnProperty("d")&&(i.d=t.json&&!isFinite(e.d)?String(e.d):e.d),null!=e.tr&&e.hasOwnProperty("tr")&&(i.tr=t.json&&!isFinite(e.tr)?String(e.tr):e.tr),null!=e.mapkdrepeat&&e.hasOwnProperty("mapkdrepeat")&&(i.mapkdrepeat=e.mapkdrepeat),i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})(),Vi.Color=(()=>{function e(e){if(this.rgb=[],e)for(let t=Object.keys(e),i=0;i<t.length;++i)null!=e[t[i]]&&(this[t[i]]=e[t[i]])}return e.prototype.rgb=Fi.emptyArray,e.create=function(t){return new e(t)},e.encode=function(e,t){if(t||(t=Yi.create()),null!=e.rgb&&e.rgb.length)for(let i=0;i<e.rgb.length;++i)t.uint32(13).float(e.rgb[i]);return t},e.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},e.decode=function(e,t){e instanceof Qi||(e=Qi.create(e));let i=void 0===t?e.len:e.pos+t,n=new Vi.Color;for(;e.pos<i;){let t=e.uint32();switch(t>>>3){case 1:if(n.rgb&&n.rgb.length||(n.rgb=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.rgb.push(e.float())}else n.rgb.push(e.float());break;default:e.skipType(7&t)}}return n},e.decodeDelimited=function(e){return e instanceof Qi||(e=new Qi(e)),this.decode(e,e.uint32())},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(null!=e.rgb&&e.hasOwnProperty("rgb")){if(!Array.isArray(e.rgb))return"rgb: array expected";for(let t=0;t<e.rgb.length;++t)if("number"!=typeof e.rgb[t])return"rgb: number[] expected"}return null},e.fromObject=function(e){if(e instanceof Vi.Color)return e;let t=new Vi.Color;if(e.rgb){if(!Array.isArray(e.rgb))throw TypeError(".Color.rgb: array expected");t.rgb=[];for(let i=0;i<e.rgb.length;++i)t.rgb[i]=Number(e.rgb[i])}return t},e.toObject=function(e,t){t||(t={});let i={};if((t.arrays||t.defaults)&&(i.rgb=[]),e.rgb&&e.rgb.length){i.rgb=[];for(let n=0;n<e.rgb.length;++n)i.rgb[n]=t.json&&!isFinite(e.rgb[n])?String(e.rgb[n]):e.rgb[n]}return i},e.prototype.toJSON=function(){return this.constructor.toObject(this,o.util.toJSONOptions)},e})();var Gi={};function Wi(e,i,n,o,s){var a,u=[],c=[];function l(e,a,u){var l=function(e){var t=e.position,i=e.normal,n=e.uv,o=e.uv2,s=e.groups,a=new r.BufferGeometry;return a.setAttribute("position",new r.BufferAttribute(new Float32Array(t.array),3)),i&&a.setAttribute("normal",new r.BufferAttribute(new Float32Array(i.array),3)),n&&a.setAttribute("uv",new r.BufferAttribute(new Float32Array(n.array),2)),o&&a.setAttribute("uv2",new r.BufferAttribute(new Float32Array(o.array),2)),s.forEach((function(e){return a.addGroup(e.start,e.count,e.materialIndex)})),a}(e);l.applyMatrix4(u);var h=new r.Vector3,d=new r.Quaternion,p=new r.Vector3;u.decompose(h,d,p),p.x*p.y*p.z<0&&l.attributes.normal&&l.attributes.position&&l.attributes.uv&&function(e){for(var t=[0,0,0],i=0;i<e.attributes.normal.array.length/9;i++)t[0]=e.attributes.normal.array[9*i],t[1]=e.attributes.normal.array[9*i+1],t[2]=e.attributes.normal.array[9*i+2],e.attributes.normal.array[9*i]=e.attributes.normal.array[9*i+6],e.attributes.normal.array[9*i+1]=e.attributes.normal.array[9*i+7],e.attributes.normal.array[9*i+2]=e.attributes.normal.array[9*i+8],e.attributes.normal.array[9*i+6]=t[0],e.attributes.normal.array[9*i+7]=t[1],e.attributes.normal.array[9*i+8]=t[2];for(i=0;i<e.attributes.position.array.length/9;i++)t[0]=e.attributes.position.array[9*i],t[1]=e.attributes.position.array[9*i+1],t[2]=e.attributes.position.array[9*i+2],e.attributes.position.array[9*i]=e.attributes.position.array[9*i+6],e.attributes.position.array[9*i+1]=e.attributes.position.array[9*i+7],e.attributes.position.array[9*i+2]=e.attributes.position.array[9*i+8],e.attributes.position.array[9*i+6]=t[0],e.attributes.position.array[9*i+7]=t[1],e.attributes.position.array[9*i+8]=t[2];for(i=0;i<e.attributes.uv.array.length/6;i++)t[0]=e.attributes.uv.array[6*i],t[1]=e.attributes.uv.array[6*i+1],e.attributes.uv.array[6*i]=e.attributes.uv.array[6*i+4],e.attributes.uv.array[6*i+1]=e.attributes.uv.array[6*i+5],e.attributes.uv.array[6*i+4]=t[0],e.attributes.uv.array[6*i+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}(l);var A=a.map((function(e){var a=function(e,i,n,o,s){function a(e,a){if(Gi[e])return Promise.resolve(Gi[e]);var u=new xi({allowHosts:o,networkSubscribe:s});Ri(e)||(e=i+e),-1!==(e=(e=e.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/")).split("?")[0]).indexOf(".png")&&(e=e.split(".png")[0]+".png"),-1!==e.indexOf(".jpg")&&(e=e.split(".jpg")[0]+".jpg"),0===e.indexOf("//")&&(e="https:"+e);var c=t.__assign({key:"texture.dome",size:64,basisLoaderInitialized:wi.isInitialized()},Xt(n,["quality","format"]));return e=n.transform?n.transform(e,c):ti(e,c),u.load(e,{wrapS:r.RepeatWrapping,wrapT:r.RepeatWrapping}).then((function(t){var i=t.body;return a&&i.repeat.copy(a),i.needsUpdate=!0,i.updateMatrix(),Gi[e]=i,i}))}var u=[],c=new rt,l=c.uniforms;l.exposure.value=4.3;var h,d=c.defines;if(d.USE_MAP=!1,d.USE_UV=!1,e.hasOwnProperty("kd")&&(l.diffuse.value=(new r.Color).fromArray(e.kd.rgb)),e.hasOwnProperty("mapkd")){var p=void 0;if(e.mapkdrepeat){var A=e.mapkdrepeat.split(/\s+/).map((function(e){return Number(e)})),f=A[0],M=A[1];p=new r.Vector2(f,M)}u.push(a(e.mapkd,p).then((function(e){d.USE_MAP=!0,d.USE_UV=!0,l.map.value=e,l.uvTransform.value=e.matrix})).catch((function(e){})))}return e.hasOwnProperty("ks")&&(l.specular.value=(new r.Color).fromArray(e.ks.rgb)),e.hasOwnProperty("mapks")&&u.push(a(e.mapks).then((function(e){l.specularMap.value=e})).catch((function(e){}))),e.hasOwnProperty("ke")&&(l.emissive.value=(new r.Color).fromArray(e.ke.rgb)),e.hasOwnProperty("mapke")&&u.push(a(e.mapke).then((function(e){l.emissiveMap.value=e})).catch((function(e){}))),e.hasOwnProperty("norm")&&u.push(a(e.norm).then((function(e){l.normalMap.value=e})).catch((function(e){}))),e.hasOwnProperty("mapbump")&&u.push(a(e.mapbump).then((function(e){l.bumpMap.value=e})).catch((function(e){}))),e.hasOwnProperty("bump")&&u.push(a(e.bump).then((function(e){l.bumpMap.value=e})).catch((function(e){}))),e.hasOwnProperty("ns")&&(l.shininess.value=e.ns),e.hasOwnProperty("d")&&(h=e.d)>=0&&h<1&&(c.originOpacity=h,c.opacity=h),e.hasOwnProperty("tr")&&(h=1-e.tr)>=0&&h<1&&(c.originOpacity=h,c.opacity=h),{material:c,textureReady:Promise.all(u).then((function(){}))}}(e,i,n,o,s),u=a.material,l=a.textureReady;return c.push(l),u}));return new qe(l,A)}return(a=e,Hi.decode(a).meshes).forEach((function(e){var t=e.name,i=e.chunks,n=e.matrix;"Ceiling"!==t&&"CeilingDrop"!==t&&n.map((function(e){var n,o=new r.Matrix4;if(o.elements=e.elements,1===i.length){var s=i[0],a=s.geometry,c=s.material;n=l(a,c,o)}else(n=new Ze).renderOrder=-3,i.forEach((function(e,t){var i=l(e.geometry,e.material,o);i.name="chunk"+t,n.add(i)}));n.floorIndex=0,n.name=t,u.push(n)}))})),Promise.all(c).catch((function(){})).then((function(){return u}))}function qi(){Object.keys(Gi).forEach((function(e){Gi[e].dispose(),delete Gi[e]}))}function Ki(e){var i;return new((i=r.Triangle).bind.apply(i,t.__spreadArray([void 0],e.map((function(e){return new r.Vector3(e.x,e.y,e.z)})),!1)))}var Zi={at3d:function(e,t){for(var i=Ui(t.textureOptions,e.textures.length),n={},r=0,o=e.textures;r<o.length;r++){var s=o[r];n[s]=Pi(s,i,t.allowHosts,t.networkSubscribe)}return Promise.resolve().then((function(){return Ct(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe})})).then((function(e){return Zt(e.body)})).then((function(e){return Ft((function(){for(var t=[],i=0,n=e;i<n.length;i++){var r=n[i];try{var o=Oi.decode(r);t.push.apply(t,o.chunks)}catch(e){console.error(e)}}return t}))})).then((function(r){return Ft((function(){return Bi(r,e.textureBase,e.textures.slice(),i,n,t.allowHosts,t.networkSubscribe)}))}))},pbm:function(e,t){for(var i=Ui(t.textureOptions,e.textures.length),n={},r=0,o=e.textures;r<o.length;r++){var s=o[r];n[s]=Pi(s,i,t.allowHosts,t.networkSubscribe)}return Promise.resolve().then((function(){return Ct(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe})})).then((function(e){return Ft((function(){var t=new Uint8Array(e.body),i=Oi.decode(t);return[].concat(i.chunks)}))})).then((function(r){return Ft((function(){return Bi(r,e.textureBase,e.textures.slice(),i,n,t.allowHosts,t.networkSubscribe)}))}))},dome:function(e,t){return Promise.resolve().then((function(){return qi()})).then((function(){return Ct(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe})})).then((function(i){return Wi(new Uint8Array(i.body),e.textureBase,t.textureOptions,t.allowHosts,t.networkSubscribe)}))},domez:function(e,t){return Promise.resolve().then((function(){return qi()})).then((function(){return Ct(e.file,{responseType:"arraybuffer",allowHosts:t.allowHosts,networkSubscribe:t.networkSubscribe})})).then((function(e){return Zt(e.body)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),i=new Uint8Array(t),n=0;return e.forEach((function(e){i.set(e,n),n+=e.length})),i})).then((function(i){return Wi(i,e.textureBase,t.textureOptions,t.allowHosts,t.networkSubscribe)}))}},Xi=function(e){function i(t){void 0===t&&(t={});var i=e.call(this)||this;return i.empty=!1,i.name="model",i.loaded=!1,i.bvhs=Object.assign([],{loaded:!1}),i.bounding=new r.Box3,i.shownFloor=null,i.floorLength=0,i.networkSubscribe=t.networkSubscribe,i.allowHosts=t.allowHosts,i.renderOrder=-3,i}return t.__extends(i,e),Object.defineProperty(i.prototype,"shownfloor",{get:function(){return this.shownFloor},enumerable:!1,configurable:!0}),i.prototype.getEdges=function(e){var t;void 0===e&&(e=30/180*Math.PI);for(var i=Math.cos(e),n=[],o=0,s=this.children;o<s.length;o++){var a=s[o];if(a instanceof qe){for(var u={},c=["a","b","c"],l=Ei.mergeVertices(a.geometry),h=l.getAttribute("position").array,d=(null===(t=l.getIndex())||void 0===t?void 0:t.array)||[],p=[],A=[],f=0,M=h.length;f<M;f+=3)p.push(new r.Vector3(h[f],h[f+1],h[f+2]));for(f=0,M=d.length;f<M;f+=3){var g=d[f],y=d[f+1],m=d[f+2],v=(new r.Vector3).crossVectors(p[y].clone().sub(p[g]),p[m].clone().sub(p[g])).normalize();A.push({a:g,b:y,c:m,normal:v})}for(f=0,M=A.length;f<M;f++)for(var N=A[f],D=0;D<3;D++){var w=N[c[D]],T=N[c[(D+1)%3]],x=[Math.min(w,T),Math.max(w,T)];void 0===u[E=x[0]+"-"+x[1]]?u[E]={index1:x[0],index2:x[1],face1:f}:u[E].face2=f}for(var E in u){var j=u[E];if(void 0===j.face2||A[j.face1].normal.dot(A[j.face2].normal)<=i){var z=p[j.index1],I=p[j.index2];n.push(new r.Line3(z,I))}}l.dispose(),p.length=0,A.length=0}}return n},i.prototype.hasFloors=function(){return this.hasFloors_()},i.prototype.hasFloors_=function(){var e=[];return this.traverse((function(t){t instanceof qe&&(e[t.floorIndex]=!0)})),e.length},i.prototype.show=function(){for(var e,t=[],i=0;i<arguments.length;i++)t[i]=arguments[i];var n=this.shownFloor,r=null,o=1,s=null!==(e=t[1])&&void 0!==e?e:.1,a=0!==t.length;this.shownFloor=r=a?t[0]:null,this.traverse((function(e){e instanceof qe&&e.material.forEach((function(t){null===r||r===e.floorIndex?t.opacity=t.originOpacity*o:t.opacity=t.originOpacity*s}))})),n!==this.shownFloor&&this.emit("shownFloorChange",this.shownFloor,this.floorLength),this.needsRender=!0},i.prototype.intersectRaycaster=function(e,t){var i=e.ray,n=i.origin,o=i.direction;if(Re(t))if(Re(this.shownFloor)){var s=this.floorLength;t=[];for(var a=0;a<s;a++)t.push(a)}else t=[this.shownFloor];var u=[],c=[];Array.isArray(t)?c.push.apply(c,t):c.push(t);for(var l=function(t){var i=h.bvhs&&h.bvhs[t];if(i){var s=new dt(n.x,n.y,n.z),a=new dt(o.x,o.y,o.z);(c=i.intersectRay(s,a,!0).map((function(e){var t=e.intersectionPoint,i=e.triangle,o=new r.Vector3(t.x,t.y,t.z);return{point:o,face:{normal:Ki(i).getNormal(new r.Vector3)},distance:n.distanceTo(o)}}))).length&&u.push.apply(u,c)}else{var c,l=[];h.traverse((function(e){e instanceof qe&&e.floorIndex===t&&l.push(e)})),(c=e.intersectObjects(l).map((function(e){var t=e.face?{normal:e.face.normal}:void 0;return{point:e.point,face:t,distance:e.distance}}))).length&&u.push.apply(u,c)}},h=this,d=0,p=c;d<p.length;d++){l(p[d])}return u.filter((function(t){var i=t.distance;return i<=e.far&&i>=e.near})).sort((function(e,t){return e.distance-t.distance}))},i.prototype.buildBVH=function(){var e,t=[];this.traverse((function(e){e instanceof qe&&(t[e.floorIndex]=t[e.floorIndex]||[],t[e.floorIndex].push(e.geometry))}));var i=t.map((function(e){var t=e.reduce((function(e,t){return e+(t.index?t.index.array.length:t.attributes.position.array.length)}),0),i=new Float32Array(3*t);return e.reduce((function(e,t){for(var n=t.index?t.index.array:null,r=t.attributes.position.array,o=n?n.length:r.length/3,s=0;s<o;s++){var a=3*(e+s),u=n?3*n[s]:3*s;i[a+0]=r[u+0],i[a+1]=r[u+1],i[a+2]=r[u+2]}return e+o}),0),new Mt(i,10)}));this.bvhs.length=0,(e=this.bvhs).push.apply(e,i),this.bvhs.loaded=!0,this.emit("bvhLoaded")},i.prototype.load=function(e,t){var i=this;if(void 0===t&&(t={}),!0===this.loaded)throw new Error("[MODEL LOAD ERROR]: model cannot load twice.");var n=function(e,t){void 0===t&&(t=[]);var i=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(e);if(!i)return"";for(var n=0,r=String(i[1]).trim().split(".").slice(1).reverse();n<r.length;n++){var o=r[n],s=t.indexOf(o);if(s>=0)return t[s]}return""}(e.file,Object.keys(Zi)),o=Zi[n];if(!o)throw new Error("[MODEL LOAD ERROR]: file type("+n+") does not support.");return o(e,{textureOptions:t,allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe}).then((function(e){for(var t=[],n=0,o=e;n<o.length;n++){(c=o[n]).traverse((function(e){e instanceof qe&&(e.geometry.computeBoundingBox(),e.geometry.computeBoundingSphere(),t.push(e.geometry.boundingBox))})),i.add(c)}i.floorLength=i.hasFloors_(),i.bounding=function(e){for(var t=new r.Box3,i=0,n=e;i<n.length;i++){var o=n[i];t.union(o)}return t}(t);for(var s=i.bounding.getCenter(new r.Vector3),a=0,u=e;a<u.length;a++){var c;(c=u[a]).traverse((function(e){e instanceof qe&&e.material.forEach((function(e){e.uniforms.modelCenter.value=s}))}))}t.length=0,i.emit("geometryLoaded"),i.emit("materialLoaded"),i.loaded=!0,We.shared.add((function(){return i.emit("loaded")}),!0)})).catch((function(e){return i.emit("error",e),Promise.reject(e)}))},i.prototype.dispose=function(){for(this.off(),this.disposeGeometry(),this.disposeMaterial();this.children.length;)this.remove(this.children[0]);this.bvhs.length=0,this.bvhs.loaded=!1},i}(Ke);function Ji(e){switch(e.getError()){case e.INVALID_ENUM:return new Error("webgl error: INVALID_ENUM");case e.INVALID_VALUE:return new Error("webgl error: INVALID_VALUE");case e.INVALID_OPERATION:return new Error("webgl error: INVALID_OPERATION");case e.INVALID_FRAMEBUFFER_OPERATION:return new Error("webgl error: INVALID_FRAMEBUFFER_OPERATION");case e.OUT_OF_MEMORY:return new Error("webgl error: OUT_OF_MEMORY");case e.CONTEXT_LOST_WEBGL:return new Error("webgl error: CONTEXT_LOST_WEBGL");default:return null}}Object.assign(Xi.prototype,{on:vt.prototype.on,once:vt.prototype.once,off:vt.prototype.off,emit:vt.prototype.emit,hasListener:vt.prototype.hasListener});var $i=2*Math.PI;function en(e){return(e%$i+$i)%$i}var tn=Math.PI,nn=2*tn;function rn(e,t,i){if(e===t)return t;var n=t-e;return Math.abs(n)<=i?t:e+(n>0?1:-1)*i}var on=function(){function e(){this.name="",this.workCode="",this.expire=new Date,this.allowHosts=[],this.initial={mode:"Panorama",latitude:0,longitude:0,panoIndex:0,fov:80},this.observers=[],this.issuer="none",this.raw={work:null,option:{}}}return e.prototype.toJSON=function(){return this.raw.work},e}();function sn(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=[];e=e.map((function(e){return e.trim()})).filter((function(e){return e.length>0&&!/^\/+$/.test(e)}));for(var n=0;n<e.length;n++){var r=0===n,o=n===e.length-1,s=e[n];r||(s=s.replace(/^\/+/,"")),o||(s=s.replace(/\/+$/,"")),i.push(s)}return i.join("/")}function an(e){return e instanceof Error}function un(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.constructor!==t.constructor)return!1;var i,n,r;if(Array.isArray(e)){if((i=e.length)!=t.length)return!1;for(n=i;0!=n--;)if(!un(e[n],t[n]))return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if((i=(r=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(n=i;0!=n--;)if(!Object.prototype.hasOwnProperty.call(t,r[n]))return!1;for(n=i;0!=n--;){var o=r[n];if(!un(e[o],t[o]))return!1}return!0}return e!=e&&t!=t}function cn(e){return"number"==typeof e}function ln(e){return 0==(e&e-1)&&0!==e}function hn(e,t){void 0===t&&(t=!1);var i=typeof e;if("string"===i)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var n="[",r=e.length-1,o=0;o<r;o++)n+=hn(e[o],!1)+",";return r>-1&&(n+=hn(e[o],!1)),n+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return hn(e.toJSON(),t);var s=Object.keys(e).sort(),a=s.length;for(n="",o=0;o<a;){var u=s[o],c=hn(e[u],!0);void 0!==c&&(o&&""!==n&&(n+=","),n+=JSON.stringify(u)+":"+c),o++}return"{"+n+"}"}switch(i){case"function":case"undefined":return t?void 0:null;case"number":return 0;default:return isFinite(e)?e:null}}function dn(e){return String(hn(e,!1))}function pn(e){var t,i,n,r=JSON.parse(e),o="undefined"!=typeof location?location.hostname:"",s=Date.now();if("object"!=typeof r)return new Error("input is not an object");if(0===o.length||wt(o)||Et.filter((function(e){return Tt(e,o)})).length>0){var a=String(null!==(t=r.certificate)&&void 0!==t?t:"");if(a){var u=new ze;return u.readCertPEM(a),{issuer:u.getSubjectString()}}return{issuer:"none"}}var c=String(null!==(i=r.certificate)&&void 0!==i?i:"");if(!c)return new Error("certificate is not existed.");var l=new ze;l.readCertPEM(c);var h=String(null!==(n=r._signature)&&void 0!==n?n:"");if(!h)return new Error("signature is not existed.");if(!1===function(e,t,i){var n=new ze;if("string"==typeof i?n.readCertPEM(i):n.readCertHex(i.hex),!1===Le(n))return!1;var r=new K;return r.readCertPubKeyHex(n.hex,6),!!r.verify(e,C(t))}(dn(function(e,t){for(var i={},n=0,r=Object.keys(e);n<r.length;n++){var o=r[n];-1===t.indexOf(o)&&(i[o]=e[o])}return i}(r,["_signature"])),h,l))return new Error("signature verify failed.");var d=new Date("string"==typeof r.expire_at&&/^\d+$/.test(r.expire_at)?Number(r.expire_at):r.expire_at);return s<d.getTime()?0===(Array.isArray(r.allow_hosts)?r.allow_hosts:[]).filter((function(e){return Tt(e,o)})).length?function(e){return new Error("host("+JSON.stringify(e)+") is not allowed.")}(o):{issuer:l.getSubjectString()}:function(e){return new Error("date("+e.toString()+") expired.")}(d)}var An=new WeakMap;function fn(e,t,i){var n,o=JSON.stringify(t),s=JSON.stringify(e),a=pn(s);e=JSON.parse(s),t=JSON.parse(o);var u=new on;u.issuer=a instanceof Error?"none":a.issuer,u.raw={work:e,options:t};var c=null!==(n=e.base_url)&&void 0!==n?n:"";c&&"/"!==c[c.length-1]&&(c+="/");var l=function(e,n){var r,o=e;!0===t.jsonp&&(o=(o=e.replace(/([\?\#].*)?$/i,""))+"."+Ie(""+o).slice(0,7)+".jsonp");if(!0===t.shortPath){var s=o.replace(c,"").split("."),a=null!==(r=s.shift())&&void 0!==r?r:"",u=s.join(".");o=sn(c,Ie(a))+(u?"."+u:"")}var l=o.replace(c,"");return t.baseURL&&(o=sn(t.baseURL,l)),i&&i(e,o,l,n),o},h=function(t,i){var n,r,o,s,a,u,h=t;if(!Ri(t)){var d=null!==(u=null!==(s=null!==(r=null===(n=e.panorama)||void 0===n?void 0:n.pano_high_cube_base_url)&&void 0!==r?r:null===(o=e.panorama)||void 0===o?void 0:o.pano_cube_base_url)&&void 0!==s?s:null===(a=e.panorama)||void 0===a?void 0:a.base_url)&&void 0!==u?u:"";d&&(d=sn(d,String(i))),h=sn(d,h)}return Ri(h)||(h=sn(c,h)),l(h,"panorama")},d=function(e){var t=e;return Ri(t)||(t=sn(c,e)),l(t,"model")},p=function(e,t){void 0===t&&(t="");var i=e;return Ri(i)||(i=sn(t,i)),Ri(i)||(i=sn(c,i)),l(i,"texture")};if(u.workCode=String(e.work_code||e.code||e.vr_code||e.workCode),u.name=String(e.name),u.expire=new Date("string"==typeof e.expire_at&&/^\d+$/.test(e.expire_at)?Number(e.expire_at):e.expire_at),u.allowHosts=e.allow_hosts||[],an(a))return a;if(e.initial&&("Floorplan"!==e.initial.mode&&"Topview"!==e.initial.mode&&"Panorama"!==e.initial.mode&&"VRPanorama"!==e.initial.mode&&"Model"!==e.initial.mode&&"DepthPanorama"!==e.initial.mode||(u.initial.mode=e.initial.mode),cn(e.initial.latitude)&&(u.initial.latitude=e.initial.latitude),cn(e.initial.longitude)?u.initial.longitude=e.initial.longitude:cn(e.initial.heading)&&(u.initial.longitude=-(360*(e.initial.heading-.25)+90)/180*Math.PI),cn(e.initial.fov)&&(u.initial.fov=e.initial.fov),cn(e.initial.panoIndex)?u.initial.panoIndex=e.initial.panoIndex:cn(e.initial.pano_index)?u.initial.panoIndex=e.initial.pano_index:cn(e.initial.pano)&&(u.initial.panoIndex=e.initial.pano)),an(a))return a;if(e.model){var A={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof t.modelBvh?A.bvh=t.modelBvh:"boolean"==typeof e.model.bvh?A.bvh=e.model.bvh:"boolean"==typeof e.bvh&&(A.bvh=e.bvh),t.modelAsync,A.async=t.modelAsync,e.model.file?A.file=d(e.model.file):e.model.file_url&&(A.file=d(e.model.file_url)),e.model.textureBase?A.textureBase=e.model.textureBase:e.model.material_base_url&&(A.textureBase=e.model.material_base_url),Array.isArray(e.model.textures)?A.textures=e.model.textures.map((function(e){return p(e,A.textureBase)})):Array.isArray(e.model.material_textures)&&(A.textures=e.model.material_textures.map((function(e){return p(e,A.textureBase)}))),A.file&&(u.model=A)}if(an(a))return a;if(e.observers&&Array.isArray(e.observers)){var f=[];e.panorama&&(Array.isArray(e.panorama)?f=e.panorama:Array.isArray(e.panorama.list)?f=e.panorama.list:Array.isArray(e.panorama.info)&&(f=e.panorama.info));for(var M=0;M<e.observers.length;M++){var g={},y=e.observers[M];if(!y)break;var m=f[M]||{};y=Object.assign({},y,m,{active:!1!==y.active&&!1!==m.active}),g.panoIndex=M,g.active=!1!==y.active,g.loadable=!0===y.loadable,g.images={up:h(y.images?y.images.up:y.up,M),down:h(y.images?y.images.down:y.down,M),right:h(y.images?y.images.right:y.right,M),left:h(y.images?y.images.left:y.left,M),front:h(y.images?y.images.front:y.front,M),back:h(y.images?y.images.back:y.back,M)};var v=y.images?y.images.depth:y.depth;v&&(g.images.depth=h(v,M));var N=y.images?y.images.luminance:y.luminance;N&&(g.images.luminance={up:h(N.up,M),down:h(N.down,M),right:h(N.right,M),left:h(N.left,M),front:h(N.front,M),back:h(N.back,M)});var D=y.images?y.images.tiles:y.tiles;if(D){for(var w=[],T=function(e){var t=e.match(/\/cube_(\d+)\//);if(t){var i=Number(t[1]);if(ln(i))return i}return!1},x=function(e,t){return e.replace(/\/cube_(\d+)\//,(function(){return"/cube_"+t+"/"}))},E=0,j=D;E<j.length;E++){var z=j[E];if("number"==typeof z){var I=z,b=T(g.images.front);if(!1===b)continue;if((_=Math.max(b,512*Math.pow(2,I)))>2048){var O=x(g.images.up,_),S=x(g.images.down,_),L=x(g.images.right,_),k=x(g.images.left,_),C=x(g.images.front,_),P=x(g.images.back,_);w.push({level:I,size:_,up:O,down:S,right:L,left:k,front:C,back:P})}else{O=g.images.up,S=g.images.down,L=g.images.right,k=g.images.left,C=g.images.front,P=g.images.back;w.push({level:I,size:_,up:O,down:S,right:L,left:k,front:C,back:P})}}else{var _;if("number"!=typeof(I=z.level))continue;if("number"!=typeof(_=z.size))continue;O=h(z.up,M),S=h(z.down,M),L=h(z.right,M),k=h(z.left,M),C=h(z.front,M),P=h(z.back,M);w.push({level:I,size:_,up:O,down:S,right:L,left:k,front:C,back:P})}}w.sort((function(e,t){return e.level-t.level})),g.images.tiles=w}if(y.position instanceof r.Vector3)g.position=y.position.clone();else{if(!Array.isArray(y.position))break;g.position=(new r.Vector3).fromArray(y.position)}if(y.standingPosition instanceof r.Vector3)g.standingPosition=y.standingPosition.clone();else if(Array.isArray(y.standingPosition))g.standingPosition=(new r.Vector3).fromArray(y.standingPosition);else if(y.standing_position instanceof r.Vector3)g.standingPosition=y.standing_position.clone();else{if(!Array.isArray(y.standing_position))break;g.standingPosition=(new r.Vector3).fromArray(y.standing_position)}if(y.quaternion instanceof r.Quaternion)g.quaternion=y.quaternion.clone();else if(Array.isArray(y.quaternion))g.quaternion=(new r.Quaternion).fromArray(y.quaternion);else{if(!y.quaternion)break;var B=y.quaternion,U=B.x,R=B.y,Q=B.z,Y=B.w;g.quaternion=new r.Quaternion(U,R,Q,Y)}if(Array.isArray(y.accessibleNodes)?g.accessibleNodes=y.accessibleNodes.slice():Array.isArray(y.accessible_nodes)&&(g.accessibleNodes=y.accessible_nodes.slice()),Array.isArray(y.visibleNodes)?g.visibleNodes=y.visibleNodes.slice():Array.isArray(y.visible_nodes)&&(g.visibleNodes=y.visible_nodes.slice()),cn(y.floorIndex)?g.floorIndex=y.floorIndex:cn(y.floor_index)?g.floorIndex=y.floor_index:g.floorIndex=0,y.video){var F={};"string"==typeof y.video.source&&(F.source=y.video.source),y.video.matrix instanceof r.Matrix4?F.matrix=y.video.matrix.clone():Array.isArray(y.video.matrix)&&(F.matrix=(new r.Matrix4).fromArray(y.video.matrix)),y.video.size instanceof r.Vector2?F.size=y.video.size.clone():Array.isArray(y.video.size)&&(F.size=(new r.Vector2).fromArray(y.video.size)),F.source&&F.matrix&&F.size&&(g.video=F)}u.observers[M]=g}}if(an(a))return a;for(var V=0,H=u.observers;V<H.length;V++){if(!(g=H[V]).accessibleNodes){g.accessibleNodes=[];for(var G=0;G<u.observers.length;G++)u.observers[G]!==g&&g.accessibleNodes.push(G)}if(!g.visibleNodes){g.visibleNodes=[];for(G=0;G<u.observers.length;G++)u.observers[G]!==g&&g.visibleNodes.push(G)}}if(an(a))return a;var W=Nt(u);return An.set(W,{work:s,options:o}),W}function Mn(e,t,i){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var n=An.get(e);if(n){if(t&&!un(JSON.parse(n.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return e}var r=fn(e,null!=t?t:{},i);if(an(r))throw new Error("[PARSE FAILED]: "+r.message);return r}function gn(e,t,i){var n=Math.abs(e-t);return n<.001||void 0!==i&&Math.abs(i-n)<.001}function yn(e,t,i){return!gn(e,t,i)}function mn(e,t){return e.distanceTo(t)<.001}function vn(e,t){return!mn(e,t)}function Nn(e,t){e.mode=t.mode,e.panoIndex=t.panoIndex,e.longitude=t.longitude,e.latitude=t.latitude,e.fov=t.fov,e.offset.copy(t.offset)}function Dn(e,t){return e.panoIndex===t.panoIndex&&e.mode===t.mode&&gn(e.longitude,t.longitude,2*Math.PI)&&gn(e.latitude,t.latitude)&&gn(e.fov,t.fov)&&mn(e.offset,t.offset)}var wn=function(e){return Number(e)};function Tn(e,t,i){var n;void 0===t&&(t=wn),void 0===i&&(i=!1);for(var r,o=1/0,s=0,a=e;s<a.length;s++){var u=a[s],c=t(u);c<=o&&(r=(n=[u,c])[0],o=n[1])}return i?[r,o]:r}function xn(e,t,i){return Math.max(t,Math.min(i,e))}function En(e){for(var t in e)return!1;return!0}function jn(e){return{longitude:e.longitude,latitude:e.latitude,fov:e.fov,offset:e.offset.clone()}}
368
368
  /*! Hammer.JS - v2.0.7 - 2016-04-22
369
369
  * http://hammerjs.github.io/
370
370
  *
371
371
  * Copyright (c) 2016 Jorik Tangelder;
372
- * Licensed under the MIT license */var zn=function(e,t,i,n){var r,o=["","webkit","Moz","MS","ms","o"],s=t.createElement?t.createElement("div"):n,a=Math.round,u=Math.abs,c=Date.now;function l(e,t,i){return setTimeout(g(e,i),t)}function h(e,t,i){return!!Array.isArray(e)&&(d(e,i[t],i),!0)}function d(e,t,i){var r;if(e)if(e.forEach)e.forEach(t,i);else if(e.length!==n)for(r=0;r<e.length;)t.call(i,e[r],r,e),r++;else for(r in e)e.hasOwnProperty(r)&&t.call(i,e[r],r,e)}function p(t,i,n){var r="DEPRECATED METHOD: "+i+"\n"+n+" AT \n";return function(){var i=new Error("get-stack-trace"),n=i&&i.stack?i.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,r,n),t.apply(this,arguments)}}r="function"!=typeof Object.assign?function(e){if(e===n||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i<arguments.length;i++){var r=arguments[i];if(r!==n&&null!==r)for(var o in r)r.hasOwnProperty(o)&&(t[o]=r[o])}return t}:Object.assign;var A=p((function(e,t,i){for(var r=Object.keys(t),o=0;o<r.length;)(!i||i&&e[r[o]]===n)&&(e[r[o]]=t[r[o]]),o++;return e}),"extend","Use `assign`."),f=p((function(e,t){return A(e,t,!0)}),"merge","Use `assign`.");function M(e,t,i){var n,o=t.prototype;(n=e.prototype=Object.create(o)).constructor=e,n._super=o,i&&r(n,i)}function g(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return"function"==typeof e?e.apply(t&&t[0]||n,t):e}function m(e,t){return e===n?t:e}function v(e,t,i){d(T(t),(function(t){e.addEventListener(t,i,!1)}))}function N(e,t,i){d(T(t),(function(t){e.removeEventListener(t,i,!1)}))}function D(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function w(e,t){return e.indexOf(t)>-1}function T(e){return e.trim().split(/\s+/g)}function x(e,t,i){if(e.indexOf&&!i)return e.indexOf(t);for(var n=0;n<e.length;){if(i&&e[n][i]==t||!i&&e[n]===t)return n;n++}return-1}function E(e){return Array.prototype.slice.call(e,0)}function j(e,t,i){for(var n=[],r=[],o=0;o<e.length;){var s=t?e[o][t]:e[o];x(r,s)<0&&n.push(e[o]),r[o]=s,o++}return i&&(n=t?n.sort((function(e,i){return e[t]>i[t]})):n.sort()),n}function z(e,t){for(var i,r,s=t[0].toUpperCase()+t.slice(1),a=0;a<o.length;){if((r=(i=o[a])?i+s:t)in e)return r;a++}return n}var I=1;function b(t){var i=t.ownerDocument||t;return i.defaultView||i.parentWindow||e}var O="ontouchstart"in e,S=z(e,"PointerEvent")!==n,L=O&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),k="touch",C="mouse",P=24,B=["x","y"],_=["clientX","clientY"];function U(e,t){var i=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&i.handler(t)},this.init()}function R(e,t,i){var r=i.pointers.length,o=i.changedPointers.length,s=1&t&&r-o==0,a=12&t&&r-o==0;i.isFirst=!!s,i.isFinal=!!a,s&&(e.session={}),i.eventType=t,function(e,t){var i=e.session,r=t.pointers,o=r.length;i.firstInput||(i.firstInput=Q(t));o>1&&!i.firstMultiple?i.firstMultiple=Q(t):1===o&&(i.firstMultiple=!1);var s=i.firstInput,a=i.firstMultiple,l=a?a.center:s.center,h=t.center=Y(r);t.timeStamp=c(),t.deltaTime=t.timeStamp-s.timeStamp,t.angle=G(l,h),t.distance=H(l,h),function(e,t){var i=t.center,n=e.offsetDelta||{},r=e.prevDelta||{},o=e.prevInput||{};1!==t.eventType&&4!==o.eventType||(r=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=e.offsetDelta={x:i.x,y:i.y});t.deltaX=r.x+(i.x-n.x),t.deltaY=r.y+(i.y-n.y)}(i,t),t.offsetDirection=V(t.deltaX,t.deltaY);var d=F(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=u(d.x)>u(d.y)?d.x:d.y,t.scale=a?function(e,t){return H(t[0],t[1],_)/H(e[0],e[1],_)}(a.pointers,r):1,t.rotation=a?function(e,t){return G(t[1],t[0],_)+G(e[1],e[0],_)}(a.pointers,r):0,t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length,function(e,t){var i,r,o,s,a=e.lastInterval||t,c=t.timeStamp-a.timeStamp;if(8!=t.eventType&&(c>25||a.velocity===n)){var l=t.deltaX-a.deltaX,h=t.deltaY-a.deltaY,d=F(c,l,h);r=d.x,o=d.y,i=u(d.x)>u(d.y)?d.x:d.y,s=V(l,h),e.lastInterval=t}else i=a.velocity,r=a.velocityX,o=a.velocityY,s=a.direction;t.velocity=i,t.velocityX=r,t.velocityY=o,t.direction=s}(i,t);var p=e.element;D(t.srcEvent.target,p)&&(p=t.srcEvent.target);t.target=p}(e,i),e.emit("hammer.input",i),e.recognize(i),e.session.prevInput=i}function Q(e){for(var t=[],i=0;i<e.pointers.length;)t[i]={clientX:a(e.pointers[i].clientX),clientY:a(e.pointers[i].clientY)},i++;return{timeStamp:c(),pointers:t,center:Y(t),deltaX:e.deltaX,deltaY:e.deltaY}}function Y(e){var t=e.length;if(1===t)return{x:a(e[0].clientX),y:a(e[0].clientY)};for(var i=0,n=0,r=0;r<t;)i+=e[r].clientX,n+=e[r].clientY,r++;return{x:a(i/t),y:a(n/t)}}function F(e,t,i){return{x:t/e||0,y:i/e||0}}function V(e,t){return e===t?1:u(e)>=u(t)?e<0?2:4:t<0?8:16}function H(e,t,i){i||(i=B);var n=t[i[0]]-e[i[0]],r=t[i[1]]-e[i[1]];return Math.sqrt(n*n+r*r)}function G(e,t,i){i||(i=B);var n=t[i[0]]-e[i[0]],r=t[i[1]]-e[i[1]];return 180*Math.atan2(r,n)/Math.PI}U.prototype={handler:function(){},init:function(){this.evEl&&v(this.element,this.evEl,this.domHandler),this.evTarget&&v(this.target,this.evTarget,this.domHandler),this.evWin&&v(b(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&N(this.element,this.evEl,this.domHandler),this.evTarget&&N(this.target,this.evTarget,this.domHandler),this.evWin&&N(b(this.element),this.evWin,this.domHandler)}};var W={mousedown:1,mousemove:2,mouseup:4},q="mousedown",K="mousemove mouseup";function Z(){this.evEl=q,this.evWin=K,this.pressed=!1,U.apply(this,arguments)}M(Z,U,{handler:function(e){var t=W[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:C,srcEvent:e}))}});var X={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},J={2:k,3:"pen",4:C,5:"kinect"},$="pointerdown",ee="pointermove pointerup pointercancel";function te(){this.evEl=$,this.evWin=ee,U.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&($="MSPointerDown",ee="MSPointerMove MSPointerUp MSPointerCancel"),M(te,U,{handler:function(e){var t=this.store,i=!1,n=e.type.toLowerCase().replace("ms",""),r=X[n],o=J[e.pointerType]||e.pointerType,s=o==k,a=x(t,e.pointerId,"pointerId");1&r&&(0===e.button||s)?a<0&&(t.push(e),a=t.length-1):12&r&&(i=!0),a<0||(t[a]=e,this.callback(this.manager,r,{pointers:t,changedPointers:[e],pointerType:o,srcEvent:e}),i&&t.splice(a,1))}});var ie={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ne="touchstart",re="touchstart touchmove touchend touchcancel";function oe(){this.evTarget=ne,this.evWin=re,this.started=!1,U.apply(this,arguments)}function se(e,t){var i=E(e.touches),n=E(e.changedTouches);return 12&t&&(i=j(i.concat(n),"identifier",!0)),[i,n]}M(oe,U,{handler:function(e){var t=ie[e.type];if(1===t&&(this.started=!0),this.started){var i=se.call(this,e,t);12&t&&i[0].length-i[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:i[0],changedPointers:i[1],pointerType:k,srcEvent:e})}}});var ae={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ue="touchstart touchmove touchend touchcancel";function ce(){this.evTarget=ue,this.targetIds={},U.apply(this,arguments)}function le(e,t){var i=E(e.touches),n=this.targetIds;if(3&t&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,o,s=E(e.changedTouches),a=[],u=this.target;if(o=i.filter((function(e){return D(e.target,u)})),1===t)for(r=0;r<o.length;)n[o[r].identifier]=!0,r++;for(r=0;r<s.length;)n[s[r].identifier]&&a.push(s[r]),12&t&&delete n[s[r].identifier],r++;return a.length?[j(o.concat(a),"identifier",!0),a]:void 0}M(ce,U,{handler:function(e){var t=ae[e.type],i=le.call(this,e,t);i&&this.callback(this.manager,t,{pointers:i[0],changedPointers:i[1],pointerType:k,srcEvent:e})}});function he(){U.apply(this,arguments);var e=g(this.handler,this);this.touch=new ce(this.manager,e),this.mouse=new Z(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function de(e,t){1&e?(this.primaryTouch=t.changedPointers[0].identifier,pe.call(this,t)):12&e&&pe.call(this,t)}function pe(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var i={x:t.clientX,y:t.clientY};this.lastTouches.push(i);var n=this.lastTouches;setTimeout((function(){var e=n.indexOf(i);e>-1&&n.splice(e,1)}),2500)}}function Ae(e){for(var t=e.srcEvent.clientX,i=e.srcEvent.clientY,n=0;n<this.lastTouches.length;n++){var r=this.lastTouches[n],o=Math.abs(t-r.x),s=Math.abs(i-r.y);if(o<=25&&s<=25)return!0}return!1}M(he,U,{handler:function(e,t,i){var n=i.pointerType==k,r=i.pointerType==C;if(!(r&&i.sourceCapabilities&&i.sourceCapabilities.firesTouchEvents)){if(n)de.call(this,t,i);else if(r&&Ae.call(this,i))return;this.callback(e,t,i)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var fe=s?z(s.style,"touchAction"):n,Me=fe!==n,ge="compute",ye="auto",me="manipulation",ve="none",Ne="pan-x",De="pan-y",we=function(){if(!Me)return!1;var t={},i=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){t[n]=!i||e.CSS.supports("touch-action",n)})),t}();function Te(e,t){this.manager=e,this.set(t)}Te.prototype={set:function(e){e==ge&&(e=this.compute()),Me&&this.manager.element.style&&we[e]&&(this.manager.element.style[fe]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return d(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(w(e,ve))return ve;var t=w(e,Ne),i=w(e,De);if(t&&i)return ve;if(t||i)return t?Ne:De;if(w(e,me))return me;return ye}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,i=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var n=this.actions,r=w(n,ve)&&!we.none,o=w(n,De)&&!we["pan-y"],s=w(n,Ne)&&!we["pan-x"];if(r){var a=1===e.pointers.length,u=e.distance<2,c=e.deltaTime<250;if(a&&u&&c)return}if(!s||!o)return r||o&&6&i||s&&i&P?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var xe=32;function Ee(e){this.options=r({},this.defaults,e||{}),this.id=I++,this.manager=null,this.options.enable=m(this.options.enable,!0),this.state=1,this.simultaneous={},this.requireFail=[]}function je(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function ze(e){return 16==e?"down":8==e?"up":2==e?"left":4==e?"right":""}function Ie(e,t){var i=t.manager;return i?i.get(e):e}function be(){Ee.apply(this,arguments)}function Oe(){be.apply(this,arguments),this.pX=null,this.pY=null}function Se(){be.apply(this,arguments)}function Le(){Ee.apply(this,arguments),this._timer=null,this._input=null}function ke(){be.apply(this,arguments)}function Ce(){be.apply(this,arguments)}function Pe(){Ee.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function Be(e,t){return(t=t||{}).recognizers=m(t.recognizers,Be.defaults.preset),new _e(e,t)}Ee.prototype={defaults:{},set:function(e){return r(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(h(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ie(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return h(e,"dropRecognizeWith",this)||(e=Ie(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(h(e,"requireFailure",this))return this;var t=this.requireFail;return-1===x(t,e=Ie(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(h(e,"dropRequireFailure",this))return this;e=Ie(e,this);var t=x(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,i=this.state;function n(i){t.manager.emit(i,e)}i<8&&n(t.options.event+je(i)),n(t.options.event),e.additionalEvent&&n(e.additionalEvent),i>=8&&n(t.options.event+je(i))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=xe},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(33&this.requireFail[e].state))return!1;e++}return!0},recognize:function(e){var t=r({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=xe);56&this.state&&(this.state=1),this.state=this.process(t),30&this.state&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},M(be,Ee,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,i=e.eventType,n=6&t,r=this.attrTest(e);return n&&(8&i||!r)?16|t:n||r?4&i?8|t:2&t?4|t:2:xe}}),M(Oe,be,{defaults:{event:"pan",threshold:10,pointers:1,direction:30},getTouchAction:function(){var e=this.options.direction,t=[];return 6&e&&t.push(De),e&P&&t.push(Ne),t},directionTest:function(e){var t=this.options,i=!0,n=e.distance,r=e.direction,o=e.deltaX,s=e.deltaY;return r&t.direction||(6&t.direction?(r=0===o?1:o<0?2:4,i=o!=this.pX,n=Math.abs(e.deltaX)):(r=0===s?1:s<0?8:16,i=s!=this.pY,n=Math.abs(e.deltaY))),e.direction=r,i&&n>t.threshold&&r&t.direction},attrTest:function(e){return be.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=ze(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),M(Se,be,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ve]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),M(Le,Ee,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ye]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distance<t.threshold,r=e.deltaTime>t.time;if(this._input=e,!n||!i||12&e.eventType&&!r)this.reset();else if(1&e.eventType)this.reset(),this._timer=l((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return xe},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),M(ke,be,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ve]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),M(Ce,be,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return Oe.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return 30&i?t=e.overallVelocity:6&i?t=e.overallVelocityX:i&P&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&u(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=ze(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),M(Pe,Ee,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[me]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distance<t.threshold,r=e.deltaTime<t.time;if(this.reset(),1&e.eventType&&0===this.count)return this.failTimeout();if(n&&r&&i){if(4!=e.eventType)return this.failTimeout();var o=!this.pTime||e.timeStamp-this.pTime<t.interval,s=!this.pCenter||H(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,s&&o?this.count+=1:this.count=1,this._input=e,0===this.count%t.taps)return this.hasRequireFailures()?(this._timer=l((function(){this.state=8,this.tryEmit()}),t.interval,this),2):8}return xe},failTimeout:function(){return this._timer=l((function(){this.state=xe}),this.options.interval,this),xe},reset:function(){clearTimeout(this._timer)},emit:function(){8==this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),Be.VERSION="2.0.7",Be.defaults={domEvents:!1,touchAction:ge,enable:!0,inputTarget:null,inputClass:null,preset:[[ke,{enable:!1}],[Se,{enable:!1},["rotate"]],[Ce,{direction:6}],[Oe,{direction:6},["swipe"]],[Pe],[Pe,{event:"doubletap",taps:2},["tap"]],[Le]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function _e(e,t){var i;this.options=r({},Be.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new((i=this).options.inputClass||(S?te:L?ce:O?he:Z))(i,R),this.touchAction=new Te(this,this.options.touchAction),Ue(this,!0),d(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function Ue(e,t){var i,n=e.element;n.style&&(d(e.options.cssProps,(function(r,o){i=z(n.style,o),t?(e.oldCssProps[i]=n.style[i],n.style[i]=r):n.style[i]=e.oldCssProps[i]||""})),t||(e.oldCssProps={}))}return _e.prototype={set:function(e){return r(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var i;this.touchAction.preventDefaults(e);var n=this.recognizers,r=t.curRecognizer;(!r||r&&8&r.state)&&(r=t.curRecognizer=null);for(var o=0;o<n.length;)i=n[o],2===t.stopped||r&&i!=r&&!i.canRecognizeWith(r)?i.reset():i.recognize(e),!r&&14&i.state&&(r=t.curRecognizer=i),o++}},get:function(e){if(e instanceof Ee)return e;for(var t=this.recognizers,i=0;i<t.length;i++)if(t[i].options.event==e)return t[i];return null},add:function(e){if(h(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(h(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,i=x(t,e);-1!==i&&(t.splice(i,1),this.touchAction.update())}return this},on:function(e,t){if(e!==n&&t!==n){var i=this.handlers;return d(T(e),(function(e){i[e]=i[e]||[],i[e].push(t)})),this}},off:function(e,t){if(e!==n){var i=this.handlers;return d(T(e),(function(e){t?i[e]&&i[e].splice(x(i[e],t),1):delete i[e]})),this}},emit:function(e,i){this.options.domEvents&&function(e,i){var n=t.createEvent("Event");n.initEvent(e,!0,!0),n.gesture=i,i.target.dispatchEvent(n)}(e,i);var n=this.handlers[e]&&this.handlers[e].slice();if(n&&n.length){i.type=e,i.preventDefault=function(){i.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](i),r++}},destroy:function(){this.element&&Ue(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},r(Be,{INPUT_START:1,INPUT_MOVE:2,INPUT_END:4,INPUT_CANCEL:8,STATE_POSSIBLE:1,STATE_BEGAN:2,STATE_CHANGED:4,STATE_ENDED:8,STATE_RECOGNIZED:8,STATE_CANCELLED:16,STATE_FAILED:xe,DIRECTION_NONE:1,DIRECTION_LEFT:2,DIRECTION_RIGHT:4,DIRECTION_UP:8,DIRECTION_DOWN:16,DIRECTION_HORIZONTAL:6,DIRECTION_VERTICAL:P,DIRECTION_ALL:30,Manager:_e,Input:U,TouchAction:Te,TouchInput:ce,MouseInput:Z,PointerEventInput:te,TouchMouseInput:he,SingleTouchInput:oe,Recognizer:Ee,AttrRecognizer:be,Tap:Pe,Pan:Oe,Swipe:Ce,Pinch:Se,Rotate:ke,Press:Le,on:v,off:N,each:d,merge:f,extend:A,assign:r,inherit:M,bindFn:g,prefixed:z}),Be}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});function In(e,t){var i=document.mozFullScreen?"DOMMouseScroll":"mousewheel",n=!!window.addEventListener,r=!!window.attachEvent,o=function(e,t){var i=document.mozFullScreen?"DOMMouseScroll":"mousewheel",n=!!window.addEventListener,r=!!window.attachEvent;return t.__mouseWheelWrapper=function(o){if(o=o||window.event,n&&o.preventDefault(),r&&(o.returnValue=!1),"DOMMouseScroll"==i||"mousewheel"==i){var s=o.wheelDelta;o.delta=s?s/120:-(o.delta||0)/3}t.call(e,o)}}(e,t);n?e.addEventListener(i,o,!1):r&&e.attachEvent("on"+i,o)}function bn(e,t,i){var n=t.offsetWidth,o=t.offsetHeight,s=t.getBoundingClientRect(),a=s.top,u=s.left;return i&&(u+=n*i.left,a+=o*(1-i.bottom-i.height),n*=i.width,o*=i.height),new r.Vector2((e.x-u)/n*2-1,-(e.y-a)/o*2+1)}!function(){try{var e=document.createElement("canvas");!window.WebGLRenderingContext||!e.getContext("webgl")&&e.getContext("experimental-webgl")}catch(e){return!1}}();var On=new r.OrthographicCamera(-1,1,1,-1,0,1),Sn=new r.BufferGeometry;Sn.setAttribute("position",new r.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),Sn.setAttribute("uv",new r.Float32BufferAttribute([0,2,0,0,2,0],2));var Ln=new r.Mesh(Sn),kn=new r.Scene;kn.add(Ln);var Cn=function(){function e(e,t){var i;this.renderer=e,this.material=new r.ShaderMaterial({vertexShader:null!==(i=t.vertex)&&void 0!==i?i:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:t.fragment,uniforms:Object.assign({inputBuffer:new r.Uniform(null)},t.uniforms),defines:Object.assign({},t.defines),blending:r.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var i=this.renderer.getRenderTarget(),n=Ln.material;this.material.uniforms.inputBuffer.value=e.texture,Ln.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(kn,On),this.renderer.setRenderTarget(i),Ln.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),Pn=function(){function e(e){this.renderer=e,this.material=new r.ShaderMaterial({vertexShader:"\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 inputValue;\nvoid main() {\n gl_FragColor = vec4(inputValue, 1.0);\n}\n",uniforms:Object.assign({inputValue:new r.Uniform(new r.Vector3)}),blending:r.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var i=this.renderer.getRenderTarget(),n=Ln.material;this.material.uniforms.inputValue.value.copy(e),Ln.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(kn,On),this.renderer.setRenderTarget(i),Ln.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),Bn=function(e){function i(t){return e.call(this,t,{fragment:"\nuniform sampler2D inputBuffer;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n}\n"})||this}return t.__extends(i,e),i}(Cn),_n=function(){function e(e){this.enable=!0,this.renderer=e,this.copyPass=new Bn(this.renderer)}return e.prototype.render=function(e,t){this.copyPass.render(e)},e.prototype.dispose=function(){this.copyPass.dispose()},e}();function Un(e,t,i){return e+(t-e)*i}function Rn(e,t){var i=t[1]-t[0];return e<t[0]?Rn(e+i,t):e>=t[1]?Rn(e-i,t):e}function Qn(e,t,i,n){return n?function(e,t,i,n){var r=n[1]-n[0];return e=Rn(e,n),Un((t=Rn(t,n))-e>r/2?e+r:e-t>r/2?e-r:e,t,i)}(e,t,i,n):Un(e,t,i)}var Yn=function(){function e(e){for(var i in this.config={},this.progress=1,this.ended=!0,this.value={},this.startTime=He(),this.startVelocity=0,this.duration=0,this.keyframes=[],e){var n=e[i];"number"==typeof n?(this.value[i]=n,this.config[i]={circle:!1}):(this.value[i]=n.value,this.config[i]={circle:n.circle})}this.keyframes=[{progress:0,value:t.__assign({},this.value)},{progress:1,value:t.__assign({},this.value)}]}return e.prototype.getProgress=function(e){var t=e-this.startTime;return t<0?0:t>=this.duration?1:1-function(e,t,i,n){var r=(t*i+2*e)/Math.pow(i,3),o=-(2*t*i+3*e)/Math.pow(i,2),s=t,a=e;return r*Math.pow(n,3)+o*Math.pow(n,2)+s*n+a}(1,this.startVelocity,this.duration,t)},e.prototype.getValue=function(e){for(var i=1;i<this.keyframes.length;i++)if(this.keyframes[i].progress>e){var n=this.keyframes[i-1],r=this.keyframes[i],o={};for(var s in this.config){var a=(e-n.progress)/(r.progress-n.progress);o[s]=Qn(n.value[s],r.value[s],a,this.config[s].circle)}return o}return t.__assign({},this.keyframes[this.keyframes.length-1].value)},e.prototype.getProgressVelocity=function(e){var t=e-this.startTime;return t>=this.duration?0:function(e,t,i,n){var r=(t*i+2*e)/Math.pow(i,3),o=-(2*t*i+3*e)/Math.pow(i,2),s=t;return 3*r*Math.pow(n,2)+2*o*n+s}(1,this.startVelocity,this.duration,t)},e.prototype.update=function(e){return!!this.ended||(this.progress=Math.min(1,Math.max(0,this.progress,this.getProgress(e))),this.value=this.getValue(this.progress),this.ended=this.progress>=1,this.ended&&this.callbacks&&(this.callbacks[0](),this.callbacks=void 0),this.ended)},e.prototype.getKeyFrameSegment=function(e){for(var t=this.getProgress(e),i=1;i<this.keyframes.length;i++)if(this.keyframes[i].progress>t)return[this.keyframes[i-1],this.keyframes[i]];return[this.keyframes[this.keyframes.length-2],this.keyframes[this.keyframes.length-1]]},e.prototype.set=function(e,t,i,n){var r;void 0===i&&(i=0),n=null!=n?n:He();var o=this.getProgress(n),s=this.getValue(o),a={};for(var u in this.config)a[u]=null!==(r=e[u])&&void 0!==r?r:s[u];var c=[{progress:0,value:s},{progress:1,value:a}];return this.setKeyFrames(c,t,i,n)},e.prototype.setKeyFrames=function(e,i,n,r){var o=this;if(void 0===n&&(n=0),e.length<2)throw new Error("keyframes invoid.");return this.callbacks&&(this.callbacks[1](new Error("motion aborted.")),this.callbacks=void 0),new Promise((function(s,a){r=null!=r?r:He(),o.progress=0,o.ended=!1,o.startTime=r,o.startVelocity=n,o.keyframes=e,o.duration=i,0===i?(o.progress=1,o.value=t.__assign({},e[e.length-1].value)):o.value=t.__assign({},e[0].value),o.callbacks=[s,a]}))},e.prototype.dispose=function(){this.callbacks&&(this.callbacks[1](new Error("motion dispose.")),this.callbacks=void 0)},e}(),Fn=function(e){function i(t){var n,r=e.call(this)||this,o=i.parseArgs(t);return r.pending=!0,r.userAction=o.initial[3],r.destroyed=!1,r.ident=o.ident,r.scene=o.scene,r.helper=o.helper,r.camera=o.camera,r.renderer=o.renderer,r.scissor=o.scissor,r.element=o.element,r.model=o.model,r.enableIOSEDR=null!==(n=o.enableIOSEDR)&&void 0!==n&&n,r.work=o.work,r.imageOptions=o.imageOptions,r.videoTexture=o.videoTexture,r.networkSubscribe=o.networkSubscribe,r.needsRender=!0,r.maxFov=120,r.minFov=40,r.maxLatitude=+Math.PI/2,r.minLatitude=-Math.PI/2,r.cameraMotion=new Yn({longitude:{value:r.camera.pose.longitude,circle:[0,2*Math.PI]},latitude:r.camera.pose.latitude,fov:r.camera.pose.fov}),r.eventUnbinds=[o.element].concat(o.extraElements||[]).map((function(e){return r.bindEvents(e)})),We.shared.add((function(){return r.initAnimation.apply(r,o.initial)}),!0),r}return t.__extends(i,e),i.parseArgs=function(e){return t.__assign({},e)},i.initAnimationEndState=function(e){var t=this.parseArgs(e);return{longitude:t.camera.pose.longitude,latitude:t.camera.pose.latitude,fov:t.camera.pose.fov,offset:t.camera.pose.offset.clone()}},i.prototype.destroy=function(){this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var e=0,t=this.eventUnbinds;e<t.length;e++){(0,t[e])()}this.effect&&(this.effect.dispose(),delete this.effect)},i.prototype.isReady=function(){return!1===this.pending&&!0===this.cameraMotion.ended},i.prototype.bindExtraElement=function(e){for(var t=0,i=this.eventUnbinds;t<i.length;t++){if(i[t].element===e)return}this.eventUnbinds.push(this.bindEvents(e))},i.prototype.unbindExtraElement=function(e){for(var t=0,i=this.eventUnbinds;t<i.length;t++){if(i[t].element===e)break}},i.prototype.updateRenderSize=function(){this.needsRender=!0},i.prototype.updateModel=function(e){this.model=e,this.needsRender=!0},i.prototype.updateWork=function(e,t,i,n,r){return this.work=e,this.userAction=r,!1},i.prototype.updateTime=function(e,t){if(!this.destroyed){var i={};this.cameraMotion.ended&&(this.cameraMotion.update(e),i.longitude=this.cameraMotion.value.longitude,i.latitude=this.cameraMotion.value.latitude,i.fov=this.cameraMotion.value.fov),En(i)&&this.setCamera(i)}},i.prototype.render=function(e){this.renderer.render(this.scene,this.camera)},i.prototype.postProcessing=function(e,t){this.destroyed||(this.effect||(this.effect=new _n(this.renderer)),this.effect.render(e,t))},i.prototype.updateCamera=function(e,t,i){return this.userAction=i,this.cameraMotion.set(e,t)},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:this.camera.pose.offset.clone()}},i.prototype.moveToPano=function(e,t,i){void 0===t&&(t={}),this.userAction=i;var n={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()};t.moveStartCallback&&t.moveStartCallback(e,n),this.emit("moveToPano",e,this.userAction),this.emit("panoArrived",e,n,this.userAction),t.moveEndCallback&&t.moveEndCallback(e,n)},i.prototype.initAnimation=function(e,t,i,n){this.pending=!1,this.userAction=n},i.prototype.setCamera=function(e){var t,i,n,r,o;void 0===e&&(e={});var s=null!==(t=e.longitude)&&void 0!==t?t:this.camera.pose.longitude,a=null!==(i=e.latitude)&&void 0!==i?i:this.camera.pose.latitude,u=null!==(n=e.fov)&&void 0!==n?n:this.camera.pose.fov,c=null!==(r=e.distance)&&void 0!==r?r:this.camera.pose.distance,l=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,h=this.camera.position.clone(),d=yn(s,this.camera.pose.longitude,2*Math.PI)||yn(a,this.camera.pose.latitude),p=yn(u,this.camera.pose.fov),A=yn(c,this.camera.pose.distance),f=vn(l,this.camera.pose.offset);this.camera.setFromPose({longitude:s,latitude:a,fov:u,distance:c,offset:l});var M=vn(h,this.camera.position);p&&this.emit("cameraFovUpdate",u,this.userAction),d&&this.emit("cameraDirectionUpdate",{longitude:s,latitude:a},this.userAction),M&&this.emit("cameraPositionUpdate",this.camera.position.clone(),this.userAction),(p||d||f||A)&&this.emit("cameraUpdate",{longitude:s,latitude:a,fov:u,offset:l},this.userAction),this.needsRender=!0,(_t||0!==Rt.length)&&(_t&&clearTimeout(_t),_t=window.setTimeout(Yt,200))},i.prototype.onPanGesture=function(e){},i.prototype.onTapGesture=function(e){},i.prototype.onPinchGesture=function(e){},i.prototype.onMouseWheel=function(e){},i.prototype.onMouseMove=function(e){},i.prototype.onMouseOut=function(){},i.prototype.relativeClientPosition=function(e){return bn(e,this.element,this.scissor)},i.prototype.bindEvents=function(e){var t=this,i=function(e){var i=bn(e,t.element,t.scissor);return!(Math.abs(i.x)>1||Math.abs(i.y)>1)},n=new zn.Manager(e),r=function(e){return e.session.firstInput||null};n.add(new zn.Pan({threshold:10,pointers:0})),n.add(new zn.Tap({interval:410})),n.add(new zn.Pinch({threshold:0,pointers:2}).recognizeWith(n.get("pan"))),n.on("panstart pan",(function(e){var o=r(n);o&&!i(o.center)||t.onPanGesture(e)})),n.on("tap",(function(e){var o=r(n);o&&!i(o.center)||t.onTapGesture(e)})),n.on("pinchstart pinch pinchend",(function(e){var o=r(n);o&&!i(o.center)||t.onPinchGesture(e)}));var o=function(e){var n={x:e.clientX,y:e.clientY};i(n)&&t.onMouseWheel(e)},s=function(e){if(!((n="undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"node").match(/android/i)||n.match(/webos/i)||n.match(/ipad|iphone|ipod/i)||n.match(/iemobile/i)||n.match(/opera mini/i)||n.match(/blackberry/i)||n.match(/windows phone/i))){var n,r={x:e.clientX,y:e.clientY};i(r)?t.onMouseMove(e):t.onMouseOut()}},a=function(){t.onMouseOut()};In(e,o),zn.on(e,"mousemove",s),zn.on(e,"mouseout",a);return Object.assign((function(){n.destroy(),function(e,t){var i=document.mozFullScreen?"DOMMouseScroll":"mousewheel",n=!!window.addEventListener,r=!!window.attachEvent;t.__mouseWheelWrapper&&(n?e.removeEventListener(i,t.__mouseWheelWrapper,!1):r&&e.detachEvent("on"+i,t.__mouseWheelWrapper),delete t.__mouseWheelWrapper)}(e,o),zn.off(e,"mousemove",s),zn.off(e,"mouseout",a)}),{element:e})},i}(vt),Vn=function(e){function i(t){var n,r,o,s,a=this,u=i.parseArgs(t);return(a=e.call(this,u)||this).defaultLongitude=u.defaultLongitude,a.defaultLatitude=u.defaultLatitude,a.defaultFov=u.defaultFov,a.maxFov=u.maxFov,a.minFov=u.minFov,a.maxLatitude=u.maxLatitude,a.minLatitude=u.minLatitude,a.locationMotion=new Yn({x:a.camera.pose.offset.x,y:a.camera.pose.offset.y,z:a.camera.pose.offset.z,distance:a.camera.pose.distance,modelAlpha:null!==(r=null===(n=a.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==r?r:0,perspToOrtho:null!==(s=null===(o=a.model.getMaterial())||void 0===o?void 0:o.perspToOrtho)&&void 0!==s?s:0}),a}return t.__extends(i,e),i.parseArgs=function(i){var n,r,o,s,a,u,c,l=e.parseArgs.call(this,i);return t.__assign(t.__assign({},l),{defaultLongitude:null!==(n=i.defaultLongitude)&&void 0!==n?n:Math.PI/4,defaultLatitude:null!==(r=i.defaultLatitude)&&void 0!==r?r:Math.PI/4,defaultFov:null!==(o=i.defaultFov)&&void 0!==o?o:80,maxFov:null!==(s=i.maxFov)&&void 0!==s?s:120,minFov:null!==(a=i.minFov)&&void 0!==a?a:40,maxLatitude:null!==(u=i.maxLatitude)&&void 0!==u?u:+Math.PI/2,minLatitude:null!==(c=i.minLatitude)&&void 0!==c?c:-Math.PI/2})},i.initAnimationEndPose=function(e){var t,i,n,o=this.parseArgs(e),s=e.initial[1];return{longitude:null!==(t=s.longitude)&&void 0!==t?t:o.defaultLongitude,latitude:xn(null!==(i=s.latitude)&&void 0!==i?i:o.defaultLatitude,o.minLatitude,o.maxLatitude),fov:null!==(n=s.fov)&&void 0!==n?n:o.defaultFov,offset:e.model.bounding.getCenter(new r.Vector3)}},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose()},i.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},i.prototype.updateWork=function(e,t,i,n,r){return this.work=e,!0},i.prototype.updateModel=function(t){e.prototype.updateModel.call(this,t);var i=t.bounding.getCenter(new r.Vector3),n=this.cameraDistance(t);this.locationMotion.set({x:i.x,y:i.y,z:i.z,distance:n},0).catch(Qe)},i.prototype.updateTime=function(e,t){if(!this.destroyed){var i={},n={};this.locationMotion.ended||(this.locationMotion.update(e),i.modelAlpha=this.locationMotion.value.modelAlpha,i.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),n.distance=this.locationMotion.value.distance,n.offset=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),n.longitude=this.cameraMotion.value.longitude,n.latitude=this.cameraMotion.value.latitude,n.fov=this.cameraMotion.value.fov),En(i)||this.model.setMaterial(i),En(n)||this.setCamera(n)}},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1],t=this.locationMotion.getKeyFrameSegment(He())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new r.Vector3(t.value.x,t.value.y,t.value.z)}},i.prototype.initAnimation=function(e,t,i,n){var o,s,a,u=this;if(!this.destroyed){this.pending=!1,this.userAction=n;var c=this.model.bounding.getCenter(new r.Vector3),l={longitude:null!==(o=t.longitude)&&void 0!==o?o:this.defaultLongitude,latitude:xn(null!==(s=t.latitude)&&void 0!==s?s:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:xn(null!==(a=t.fov)&&void 0!==a?a:this.defaultFov,this.minFov,this.maxFov),offset:this.model.bounding.getCenter(new r.Vector3)},h=this.cameraDistance(this.model),d=Xt(l,["longitude","latitude","fov"]),p={x:c.x,y:c.y,z:c.z,distance:h,modelAlpha:1,perspToOrtho:0};this.emit("initAnimationWillStart",e,l,this.userAction),this.cameraMotion.set(d,i).catch(Qe),this.locationMotion.set(p,i).then((function(){u.emit("initAnimationEnded",e,l,u.userAction)}),(function(t){var i=jn(u.camera.pose);u.emit("initAnimationEnded",e,i,u.userAction)}))}},i.prototype.cameraDistance=function(e){var t=e.bounding,i=this.camera.aspect,n=Math.pow(Math.pow(t.max.x-t.min.x+2,2)+Math.pow(t.max.y-t.min.y+2,2)+Math.pow(t.max.z-t.min.z+2,2),.5),r=n/2/Math.tan(Math.PI*this.defaultFov/360);return i<1&&(r/=i),isNaN(r)?n:r},i.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),i=this.model.intersectRaycaster(e)[0];if(!i)return null;var n=Tn(t,(function(e){return e.standingPosition.distanceTo(i.point)}),!0),r=n[0];return n[1]<5?this.work.observers.indexOf(r):null},i.prototype.coordinatesChangeWithOffset=function(e,t){var i=this.element,n=this.camera,r=i.offsetWidth,o=i.offsetHeight,s=2*t.x/r*n.fov/30,a=2*t.y/o*n.fov/30;return{longitude:en(e.longitude+s),latitude:xn(e.latitude+a,-Math.PI/2,Math.PI/2)}},i.prototype.requestInteriaMovement=function(e){var t=this;if(!1!==this.interiaMovement){var i=this.coordinatesChangeWithOffset({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude},e),n=i.longitude,r=i.latitude,o={longitude:n,latitude:r,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset};this.cameraMotion.set({longitude:n,latitude:r},0).catch(Qe);var s=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",o,!s),s?We.shared.add((function(){t.requestInteriaMovement({x:.8*e.x,y:.8*e.y})}),!0,1):this.interiaMovement=!1}},i.prototype.onPanGesture=function(e){var t=this,i=this.lastPanPoint,n=e.pointers.length;if(e.isFinal?delete this.lastPanPoint:this.lastPanPoint={pointerLength:n,x:e.center.x,y:e.center.y},void 0!==i&&i.pointerLength===n){var r=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pan",r,e.isFinal)){var o={x:e.center.x-i.x,y:e.center.y-i.y},s=this.relativeClientPosition(e.center),a=this.camera.pose.latitude<Math.PI/6||s.y<0?-1:1;o.x*=a;var u=this.coordinatesChangeWithOffset({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude},o),c={longitude:u.longitude,latitude:u.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset};if(!this.emit("wantsPanGesture",c,e.isFinal))if(this.emit("gesture","pan",r,e.isFinal),this.emit("panGesture",c,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({longitude:c.longitude,latitude:c.latitude,fov:c.fov},0).catch(Qe),e.isFinal)this.emit("wantsInteriaPan",c)||(this.interiaMovement=!0,We.shared.getFrameTime((function(i){var n=e.velocityX*i*a,r=e.velocityY*i,o=Math.sqrt(n*n+r*r);o>100&&(n=n/o*100,r=r/o*100),t.requestInteriaMovement({x:n,y:r})})))}}},i.prototype.onPinchGesture=function(e){var t=this.lastPinchFov,i=!1;if("pinchstart"===e.type)return this.lastPinchFov=this.cameraMotion.value.fov,void delete this.lastPanPoint;if("pinchend"===e.type&&(i=!0,delete this.lastPanPoint,delete this.lastPinchFov),void 0!==t){var n=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",n,i)){var r=xn(t/e.scale,this.minFov,this.maxFov);this.emit("wantsPinchGesture",e.scale,r,i)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","pinch",n,i),this.emit("pinchGesture",e.scale,r,i),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:r},0).catch(Qe))}}},i.prototype.onMouseWheel=function(e){var t=this,i=e.delta,n=[{x:e.clientX,y:e.clientY}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=this.minFov,o=this.maxFov,s=xn(this.camera.fov-i,r,o);this.emit("wantsMouseWheel",i,s,!1)||this.emit("wantsChangeCameraFov",s)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,s,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:s},0).catch(Qe),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){delete t.onMouseWheelFinalInterval;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,s,!0)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,s,!0))}),200))}},i.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","tap",t,!0)){var i=this.relativeClientPosition(e.center),n=new r.Raycaster;if(n.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",n,i)){this.emit("gesture","tap",t,!0),this.emit("tapGesture",n,i),this.interiaMovement=!1;var o=this.getForwardPanoIndexOrNot(n);if(!Re(o)){this.emit("panoSelected",o);var s={longitude:this.camera.pose.longitude,latitude:0};this.emit("wantsMoveToPano",o,s,!0)}}}},i}(Fn);var Hn=function(e){function i(t){var n=i.parseArgs(t);return e.call(this,n)||this}return t.__extends(i,e),i.parseArgs=function(i){var n=[i.initial[0],t.__assign(t.__assign({},i.initial[1]),{longitude:0,latitude:Math.PI/2}),i.initial[2],i.initial[3]],r=t.__assign(t.__assign({},i),{initial:n,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return e.parseArgs.call(this,r)},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.updateModel=function(e){this.model=e,this.needsRender=!0;var t=e.bounding.getCenter(new r.Vector3);this.locationMotion.set({x:t.x,y:t.y,z:t.z,distance:this.cameraDistance(e)},0).catch(Qe)},i.prototype.initAnimation=function(e,t,i,n){var o,s=this;if(!this.destroyed){this.pending=!1,this.userAction=n;var a=this.model.bounding.getCenter(new r.Vector3),u={longitude:0,latitude:Math.PI/2,fov:xn(null!==(o=t.fov)&&void 0!==o?o:this.defaultFov,this.minFov,this.maxFov),offset:this.model.bounding.getCenter(new r.Vector3)},c=this.cameraDistance(this.model),l=Xt(u,["longitude","latitude","fov"]),h={x:a.x,y:a.y,z:a.z,distance:c,modelAlpha:1,perspToOrtho:1};this.cameraMotion.set(l,i).catch(Qe),this.locationMotion.set(h,i).then((function(){s.emit("initAnimationEnded",e,u,s.userAction)}),(function(t){var i=jn(s.camera.pose);s.emit("initAnimationEnded",e,i,s.userAction)}))}},i.prototype.getZoomOffsetFromFov=function(e,t,i){var n=new r.Vector3(0,-1,0),o=Math.tan(i/2*Math.PI/180),s=Math.tan(t.fov/2*Math.PI/180),a=(s-o)/s,u=new r.Raycaster;u.setFromCamera(e,t);var c=u.ray.direction,l=c.angleTo(n),h=this.cameraDistance(this.model),d=h*Math.tan(l),p=c.clone().setLength(h*Math.cos(l)).projectOnPlane(n),A=p.length(),f=a/A*p.x*d,M=a/A*p.z*d;return new r.Vector3(f,0,M)},i.prototype.requestInteriaMovement=function(e){},i.prototype.onPanGesture=function(e){var t=this.renderer.getSize(new r.Vector2),i=this.lastPanPoint,n=e.pointers.length;if(e.isFinal?delete this.lastPanPoint:this.lastPanPoint={pointerLength:n,x:e.center.x,y:e.center.y},void 0!==i&&i.pointerLength===n){var o=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pan",o,e.isFinal)){var s=e.center.x-i.x,a=e.center.y-i.y,u=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),c=this.camera.position.y*Math.tan(this.camera.fov/2*Math.PI/180);u.add(function(e,t){var i=new r.Vector3;return i.setFromMatrixColumn(t,0),i.multiplyScalar(-e),i}(2*s*c/t.y,this.camera.matrix)),u.add(function(e,t,i){var n=new r.Vector3;return n.setFromMatrixColumn(i,0),n.crossVectors(t,n),n.multiplyScalar(e),n}(2*a*c/t.y,this.camera.up,this.camera.matrix));var l=this.model.bounding,h=l.getCenter(new r.Vector3),d=(l.max.x-l.min.x)/this.defaultFov*this.cameraMotion.value.fov,p=(l.max.y,l.min.y,this.defaultFov,this.cameraMotion.value.fov,(l.max.z-l.min.z)/this.defaultFov*this.cameraMotion.value.fov);u.x=xn(u.x,h.x-d,h.x+d),u.z=xn(u.z,h.z-p,h.z+p),u.y=h.y;var A={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:u};this.emit("wantsPanGesture",A,e.isFinal)||(this.emit("gesture","pan",o,e.isFinal),this.emit("panGesture",A,e.isFinal),this.userAction=!0,this.locationMotion.set({x:u.x,y:u.y,z:u.z},0).catch(Qe))}}},i.prototype.onPinchGesture=function(e){var t=this.lastPinchFov,i=!1;if("pinchstart"===e.type)return this.lastPinchFov=this.cameraMotion.value.fov,void delete this.lastPanPoint;if("pinchend"===e.type&&(i=!0,delete this.lastPanPoint,delete this.lastPinchFov),void 0!==t){var n=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",n,i)){var r=xn(t/e.scale,this.minFov,this.maxFov),o=this.relativeClientPosition({x:e.center.x,y:e.center.y}),s=this.getZoomOffsetFromFov(o,this.camera,r),a=this.camera.pose.offset.clone().add(s);this.emit("wantsPinchGesture",e.scale,r,i)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","pinch",n,i),this.emit("pinchGesture",e.scale,r,i),this.userAction=!0,this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(Qe),this.cameraMotion.set({longitude:0,latitude:Math.PI/2,fov:r},0).catch(Qe))}}},i.prototype.onMouseWheel=function(e){var t=this,i=e.delta,n=[{x:e.clientX,y:e.clientY}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=xn(this.cameraMotion.value.fov-i,this.minFov,this.maxFov),o=this.relativeClientPosition({x:e.clientX,y:e.clientY}),s=this.getZoomOffsetFromFov(o,this.camera,r),a=this.camera.pose.offset.clone().add(s);this.emit("wantsMouseWheel",i,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,r,!1),this.userAction=!0,this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(Qe),this.cameraMotion.set({longitude:0,latitude:Math.PI/2,fov:r},0).catch(Qe),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){delete t.onMouseWheelFinalInterval;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,r,!0))}),200))}},i}(Vn);function Gn(e,t){void 0===t&&(t=!1);var i=typeof e;if("string"===i)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var n="[",r=e.length-1,o=0;o<r;o++)n+=Gn(e[o],!1)+",";return r>-1&&(n+=Gn(e[o],!1)),n+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return Gn(e.toJSON(),t);var s=Object.keys(e).sort(),a=s.length;for(n="",o=0;o<a;){var u=s[o],c=Gn(e[u],!0);void 0!==c&&(o&&""!==n&&(n+=","),n+=JSON.stringify(u)+":"+c),o++}return"{"+n+"}"}switch(i){case"function":case"undefined":return t?void 0:null;case"number":return e;default:return isFinite(e)?e:null}}function Wn(e){return Ie(String(Gn(e,!1)))}var qn=function(e){function i(){var t=e.call(this)||this,i=new r.RingBufferGeometry(.04,.08,32),n=new r.MeshBasicMaterial({color:1245179,opacity:.8,side:r.DoubleSide,transparent:!0});return t.ringMesh=new r.Mesh(i,n),t.ringMesh.renderOrder=100,t.add(t.ringMesh),t}return t.__extends(i,e),i.prototype.dispose=function(){this.remove(this.ringMesh),this.ringMesh.geometry.dispose(),Array.isArray(this.ringMesh.material)?this.ringMesh.material.forEach((function(e){return e.dispose()})):this.ringMesh.material.dispose()},i}(r.Object3D);function Kn(){return new qn}var Zn=function(e){function i(t){var n=this,r=i.parseArgs(t);return(n=e.call(this,r)||this).defaultLongitude=r.defaultLongitude,n.defaultLatitude=r.defaultLongitude,n.defaultFov=r.defaultFov,n.maxFov=r.maxFov,n.minFov=r.minFov,n.maxLatitude=r.maxLatitude,n.minLatitude=r.minLatitude,n.moveSpeed=r.moveSpeed,n.intersectMeshCreator=r.intersectMeshCreator,n.interiaMovement=!1,n.intersectMesh=n.intersectMeshCreator(),n.intersectMesh.name="intersect",n.intersectMesh.visible=!1,n.helper.add(n.intersectMesh),n}return t.__extends(i,e),i.parseArgs=function(i){var n,r,o,s,a,u,c,l,h,d=e.parseArgs.call(this,i);return t.__assign(t.__assign({},d),{defaultLongitude:null!==(n=i.defaultLongitude)&&void 0!==n?n:0,defaultLatitude:null!==(r=i.defaultLatitude)&&void 0!==r?r:0,defaultFov:null!==(o=i.defaultFov)&&void 0!==o?o:90,maxFov:null!==(s=i.maxFov)&&void 0!==s?s:120,minFov:null!==(a=i.minFov)&&void 0!==a?a:40,maxLatitude:null!==(u=i.maxLatitude)&&void 0!==u?u:+Math.PI/2,minLatitude:null!==(c=i.minLatitude)&&void 0!==c?c:-Math.PI/2,moveSpeed:null!==(l=i.moveSpeed)&&void 0!==l?l:3.2,intersectMeshCreator:null!==(h=i.intersectMeshCreator)&&void 0!==h?h:Kn})},i.initAnimationEndPose=function(e){var t,i,n,r=this.parseArgs(e),o=e.initial,s=o[0],a=o[1];return{longitude:null!==(t=a.longitude)&&void 0!==t?t:r.defaultLongitude,latitude:xn(null!==(i=a.latitude)&&void 0!==i?i:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:xn(null!==(n=a.fov)&&void 0!==n?n:r.defaultFov,r.minFov,r.maxFov),offset:r.work.observers[s].position.clone()}},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.interiaMovement=!1,this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose())},i.prototype.isReady=function(){return!this.interiaMovement&&(!this.panState&&(!this.pinchState&&(!this.mouseWheelState&&e.prototype.isReady.call(this))))},i.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Math.floor(Math.max(Math.min(t/this.moveSpeed*1e3,1500),500))}},i.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},i.prototype.coordinatesForOffset=function(e){var t=this.cameraMotion.value.fov,i=this.camera.aspect,n=this.renderer.getSize(new r.Vector2);return{longitude:2*e.x/n.x*t/95*i,latitude:-2*e.y/n.y*t/95}},i.prototype.cameraBounce=function(){var e=this.cameraMotion.value,t=e.longitude,i=e.latitude,n=e.fov,r=[{progress:0,value:{longitude:t,latitude:i,fov:n}},{progress:.5,value:{longitude:t,latitude:i,fov:.98*n}},{progress:1,value:{longitude:t,latitude:i,fov:n}}];this.cameraMotion.setKeyFrames(r,500).catch(Qe)},i.prototype.requestInteriaMovement=function(e){var t=this;if(!1!==this.interiaMovement){var i=this.coordinatesForOffset(e),n=en(this.cameraMotion.value.longitude+i.longitude),r=xn(this.cameraMotion.value.latitude+i.latitude,this.minLatitude,this.maxLatitude),o={longitude:n,latitude:r,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone()};this.cameraMotion.set({longitude:n,latitude:r},0).catch(Qe);var s=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",o,!s),s?We.shared.add((function(){var i={x:.9*e.x,y:.9*e.y*.7};t.requestInteriaMovement(i)}),!0,1):this.interiaMovement=!1}},i.prototype.onPanGesture=function(e){var t=this,i=this.panState,n=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:n,x:e.center.x,y:e.center.y},void 0!==i&&i.pointerLength===n){var r=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pan",r,e.isFinal)){var o={x:e.center.x-i.x,y:e.center.y-i.y},s=this.coordinatesForOffset(o),a=en(this.cameraMotion.value.longitude+s.longitude),u=xn(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude);Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(u=this.cameraMotion.value.latitude);var c={longitude:a,latitude:u,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone()};if(!this.emit("wantsPanGesture",c,e.isFinal)){this.emit("gesture","pan",r,e.isFinal),this.emit("panGesture",c,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.hideIntersectMesh();var l={longitude:c.longitude,latitude:c.latitude,fov:c.fov};if(this.cameraMotion.set(l,0).catch(Qe),e.isFinal)this.emit("wantsInteriaPan",c)||We.shared.getFrameTime((function(i){t.interiaMovement=!0;var n=e.velocityX*i,r=e.velocityY*i,o=Math.sqrt(n*n+r*r);o>100&&(n=n/o*100,r=r/o*100),Math.abs(r/n)<Math.tan(20/180*Math.PI)&&(r=0),t.requestInteriaMovement({x:n,y:r})}))}}}},i.prototype.onPinchGesture=function(e){var t,i=null===(t=this.pinchState)||void 0===t?void 0:t.fov,n=e.scale,r=!1;if("pinchstart"===e.type)return this.pinchState={fov:this.cameraMotion.value.fov},void delete this.panState;if("pinchend"===e.type&&(r=!0,delete this.panState,delete this.pinchState),void 0!==i){var o=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",o,r)){var s=xn(i/n,this.minFov,this.maxFov);this.emit("wantsPinchGesture",n,s,r)||this.emit("wantsChangeCameraFov",s)||(this.emit("gesture","pinch",o,r),this.emit("pinchGesture",n,s,r),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:s},0).catch(Qe))}}},i.prototype.onMouseWheel=function(e){var t=this,i=e.delta,n=[{x:e.clientX,y:e.clientY}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=xn(this.cameraMotion.value.fov-i,this.minFov,this.maxFov);this.emit("wantsMouseWheel",i,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,r,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:r},0).catch(Qe),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,r,!0))}),200)})}},i.prototype.onMouseMove=function(e){if(this.intersectMesh.parent&&!this.model.empty&&this.model.bvhs&&!0===this.model.bvhs.loaded&&!this.panState){var t=this.relativeClientPosition({x:e.clientX,y:e.clientY}),i=new r.Raycaster;if(i.setFromCamera(t,this.camera),this.emit("wantsShowIntersectionOnModel",i))this.hideIntersectMesh();else{var n=this.model.intersectRaycaster(i)[0];if(n&&n.face){var o=n.face.normal,s=o.clone().multiplyScalar(.05),a=n.point.clone().add(s);this.intersectMesh.position.copy(a);var u=a.clone().add(s);if(this.intersectMesh.lookAt(u),Math.abs(o.y)>.99){var c=this.camera.position.clone().sub(a);this.intersectMesh.rotation.z=-Math.atan2(c.z,c.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",n,this.intersectMesh)}else this.hideIntersectMesh();this.mouseMoveState={clientX:e.clientX,clientY:e.clientY}}}},i.prototype.onMouseOut=function(){this.intersectMesh.parent&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},i}(Fn),Xn=$e(),Jn=new r.Texture(Xn);Xn.onload=function(){return Jn.needsUpdate=!0},Xn.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAR9JREFUOBF10kFOAzEMBdCZFhCbrrgAN+NqHIULsWKDKO3gF+VHoZpa+rXjfH87nq7btr0ty3KZ8FsxnHeQPL748lA/x0Jsq+AwYe0X8nDtGA33BEJUHIEKW/EorHOLI7BHNlkEbju38YkQAIRZxFkHz2HOirKDxNcIzG+fu/6oLiNmqc5ZrlwTeKyAgJF14tMZmSn87pBrxeX/CRABgk/dl1s+C18dio2Pp9nmCQru2UtdvN+7lI9AFsgb3zNMcSp8FF4LYs3UhLfOAvkDJffci8q1J/ByRLKnQ8gUJUFOd2SeZYliCxwiyJCxCbhUGFKF4zPm61hiq7sVyJnPmATyR5IzLSNyDNEFRCDnkAmA8U2RfCsIefYhDeKOQLv7A+l1ZTyjymNxAAAAAElFTkSuQmCC";var $n=new r.RingBufferGeometry(.06,.07,32).rotateX(-Math.PI/2),er=new r.MeshBasicMaterial({map:Jn,transparent:!0});function tr(){if("undefined"==typeof document){var e=new r.Texture;return Object.assign(e,{draw:function(e){},retain:!1,pool:!1})}var t=document.createElement("canvas"),i=512,n=256,o=190;t.setAttribute("width",String(i)),t.setAttribute("height",String(i));var s=new r.Texture(t),a=t.getContext("2d");if(!a)throw Error("cannot create canvas context");var u=a.createRadialGradient(n,n,150,n,n,0);function c(){var e=Math.PI/12,t=2*Math.PI/3;a&&(a.beginPath(),a.arc(n,n,o,0*t,1*t-e),a.stroke(),a.beginPath(),a.arc(n,n,o,1*t,2*t-e),a.stroke(),a.beginPath(),a.arc(n,n,o,2*t,3*t-e),a.stroke())}function l(e){a&&(a.clearRect(0,0,i,i),a.lineWidth=20,-1!==e&&(a.globalCompositeOperation="source-over",a.strokeStyle="rgba(255, 255, 255, 1)",c(),a.globalCompositeOperation="source-in",a.beginPath(),a.arc(n,n,o,0,2*Math.PI*e),a.strokeStyle="rgba(255, 255, 255, 1)",a.stroke(),a.globalCompositeOperation="source-over",a.strokeStyle="rgba(255, 255, 255, "+(e?.5:1)+")",c()),a.beginPath(),a.arc(n,n,150,0,2*Math.PI),a.closePath(),a.fillStyle=u,a.fill(),a.fillStyle="rgba(255, 255, 255, 0.01)",a.fillRect(0,0,i,i),s.needsUpdate=!0)}return u.addColorStop(0,"rgba(255, 255, 255, 1)"),u.addColorStop(.15,"rgba(255, 255, 255, 1)"),u.addColorStop(.15,"rgba(255, 255, 255, 0.5)"),u.addColorStop(.4,"rgba(255, 255, 255, 0.0)"),u.addColorStop(1,"rgba(255, 255, 255, 0.0)"),l(0),Object.assign(s,{draw:l,retain:!1,pool:!1})}var ir=[];var nr=tr();nr.draw(0);var rr=tr();rr.draw(1);var or=tr();or.draw(-1);var sr=new r.CircleBufferGeometry(.12,32).rotateX(-Math.PI/2);function ar(){return new r.Mesh(sr,new r.MeshBasicMaterial({map:nr,transparent:!0}))}var ur=function(e){function i(){var t=e.call(this)||this;return t.loading=!1,t.disabled=!1,t.current=!1,t.progress=0,t.opacity=1,t.centerMesh=ar(),t.centerMesh.position.y+=.01,t.add(t.centerMesh),t.loadingMesh=new r.Mesh($n,er),t.loadingMesh.position.y+=.011,t.needsRender=!0,t}return t.__extends(i,e),i.prototype.setLoading=function(e){var t=this;this.loading=e,this.stopInterval&&this.stopInterval(),e?(this.add(this.loadingMesh),this.stopInterval=We.shared.add((function(){t.loadingMesh.rotateOnAxis(new r.Vector3(0,1,0),.1),t.needsRender=!0}))):this.remove(this.loadingMesh),this.needsRender=!0},i.prototype.setDisabled=function(e){function t(t){var i=t.map;!0===i.pool&&(i.retain=!1),t.map=e?or:nr}this.disabled=e,Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){t(e)})):t(this.centerMesh.material),this.needsRender=!0},i.prototype.setProgress=function(e){function t(e,t){var i=e.map;0===t||1===t?(!0===i.pool&&(i.retain=!1),0===t&&(e.map=nr),1===t&&(e.map=rr)):(!0!==i.pool&&(e.map=function(){for(var e=0,t=ir;e<t.length;e++){var i=t[e];if(!1===i.retain)return i}var n=tr();return n.pool=!0,n.retain=!0,ir.push(n),n}()),e.map.draw(t))}this.setLoading(!1),this.setDisabled(!1),this.progress=e=xn(e,0,1),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(i){t(i,e)})):t(this.centerMesh.material,e),this.needsRender=!0},i.prototype.setOpacity=function(e){this.opacity=e=xn(e,0,1),this.current&&(e=1),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(t){t.opacity=e})):this.centerMesh.material.opacity=e,this.needsRender=!0},i.prototype.setCurrent=function(e){this.current=e,this.setOpacity(this.opacity)},i.prototype.dispose=function(){this.setLoading(!1),this.remove(this.centerMesh),this.remove(this.loadingMesh),this.centerMesh.geometry.dispose(),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){e.dispose()})):this.centerMesh.material.dispose(),this.loadingMesh.geometry.dispose(),Array.isArray(this.loadingMesh.material)?this.loadingMesh.material.forEach((function(e){e.dispose()})):this.loadingMesh.material.dispose()},i}(r.Object3D);function cr(){return new ur}var lr;var hr,dr=function(e){function i(t,i){return void 0===i&&(i=.5),e.call(this,t,{uniforms:{inputBuffer:new r.Uniform(null),scale:new r.Uniform(i)},fragment:"\n#include <common>\nuniform sampler2D inputBuffer;\nuniform float scale;\nvarying vec2 vUv;\n\nvoid main() {\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = clamp(linearToRelativeLuminance(rgb), 0.1, 0.9);\n gl_FragColor = vec4(luminance);\n}\n"})||this}return t.__extends(i,e),i}(Cn),pr=function(e){function i(t,i){void 0===i&&(i=.002);var n=e.call(this,t,{uniforms:{targetBuffer:new r.Uniform(null),inputBuffer:new r.Uniform(null),step:new r.Uniform(i)},fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n varying vec2 vUv;\n void main() {\n\n #ifdef GL_EXT_shader_texture_lod\n #if __VERSION__ < 300\n float target = texture2DLodEXT(targetBuffer, vUv, 5.0).r;\n #else\n float target = textureLod(targetBuffer, vUv, 5.0).r;\n #endif\n #else\n float target = texture2D(targetBuffer, vUv).r;\n #endif\n float current = texture2D(inputBuffer, vUv).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this;return n.material.extensions.shaderTextureLOD=!0,n}return t.__extends(i,e),Object.defineProperty(i.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),i}(Cn),Ar=function(e){function i(t){var i=e.call(this,t,{uniforms:{inputBuffer:new r.Uniform(null),luminanceAdaptiveBuffer:new r.Uniform(null),progress:new r.Uniform(0)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBuffer;\n uniform float progress;\n varying vec2 vUv;\n\n void main() {\n float middleGrey = 0.8;\n float whitePoint = 8.0;\n float exposure = 1.5;\n vec4 inputColor = texture2D(inputBuffer, vUv);\n vec3 rgb = inputColor.rgb * exposure;\n float alpha = inputColor.a;\n float luminance = linearToRelativeLuminance(rgb);\n float lumAvg = texture2D(luminanceAdaptiveBuffer, vec2(0.5)).r;\n float lumScaled = (luminance * middleGrey) / max(lumAvg, 1e-6);\n float lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n lumCompressed /= (1.0 + lumScaled);\n rgb = clamp(lumCompressed * rgb, 0.0, 1.0);\n gl_FragColor = mix(inputColor, vec4(rgb, alpha), progress * 0.9);\n }\n "})||this;return i.material.transparent=!0,i}return t.__extends(i,e),Object.defineProperty(i.prototype,"luminanceAdaptiveBuffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBuffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"progress",{get:function(){return this.material.uniforms.progress.value},set:function(e){this.material.uniforms.progress.value=e},enumerable:!1,configurable:!0}),i}(Cn),fr=function(e){function i(t){var i=e.call(this,t)||this;return i.enableTime=He(),i.renderer=t,i.valuePass=new Pn(i.renderer),i.luminancePass=new dr(i.renderer,.75),i.nextStepPass=new pr(i.renderer,.002),i.luminanceAdaptivePass=new Ar(i.renderer),i}return t.__extends(i,e),i.prototype.render=function(e){if(!this.enable)return this.enableTime=null,void this.copyPass.render(e);null===this.enableTime&&(this.enableTime=He()),this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new r.WebGLRenderTarget(128,128,{minFilter:r.LinearMipmapLinearFilter,magFilter:r.LinearFilter,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1,format:r.RGBAFormat,generateMipmaps:!0}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(e,this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new r.WebGLRenderTarget(1,1,{minFilter:r.NearestFilter,magFilter:r.NearestFilter,type:r.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new r.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new r.WebGLRenderTarget(1,1,{minFilter:r.NearestFilter,magFilter:r.NearestFilter,type:r.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new r.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBuffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.progress=Math.min((He()-this.enableTime)/3e3,1),this.luminanceAdaptivePass.render(e)},i.prototype.dispose=function(){var e,t,i;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(i=this.luminanceNextBuffer)||void 0===i||i.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},i}(_n),Mr=["up","down","left","right","front","back"],gr=null!==(hr=Math.SQRT1_2)&&void 0!==hr?hr:Math.sqrt(2),yr={up:new r.Quaternion(gr,0,0,gr),down:new r.Quaternion(-gr,0,0,gr),left:new r.Quaternion(0,gr,0,gr),right:new r.Quaternion(0,-gr,0,gr),front:new r.Quaternion(0,0,0,1),back:new r.Quaternion(0,1,0,0)},mr=(new r.Quaternion).setFromAxisAngle(new r.Vector3(0,1,0),Math.PI),vr=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),Nr=new Float32Array([0,0,1,0,0,1,1,1]),Dr=new Uint8Array([0,1,2,1,3,2]),wr=new r.BufferGeometry;wr.setAttribute("position",new r.BufferAttribute(vr,3)),wr.setAttribute("uv",new r.BufferAttribute(Nr,2)),wr.setIndex(new r.BufferAttribute(Dr,1));var Tr=function(e){function i(){var t=e.call(this,{uniforms:{map:{value:null},luminanceMap:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_LUMINANCE)\nuniform sampler2D luminanceMap;\n#endif\nuniform sampler2D map;\nvarying vec2 vUv;\n\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n #if defined(USE_LUMINANCE)\n gl_FragColor.a = 1.0 - texture2D(luminanceMap, vUv).r;\n #endif\n}\n"})||this;return t.depthTest=!1,t.depthWrite=!1,t.blending=r.NoBlending,t.map=t.uniforms.map.value,t.luminanceMap=t.uniforms.luminanceMap.value,Object.defineProperties(t,{map:{get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},luminanceMap:{get:function(){return this.uniforms.luminanceMap.value},set:function(e){this.uniforms.luminanceMap.value=e,this.defines.USE_LUMINANCE=null!==e}}}),t}return t.__extends(i,e),i}(r.ShaderMaterial),xr=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.level=0,t.sideCount=0,t.col=0,t.row=0,t.index=0,t.type="up",t}return t.__extends(i,e),i}(r.Box3),Er=function(e){function i(t,i){var n=this,o=new Tr;return o.visible=!1,(n=e.call(this,wr,o)||this).position.copy(t.getCenter(new r.Vector3)),n.quaternion.copy(yr[t.type]),n.scale.setScalar(1/Math.pow(2,t.level)),n.level=t.level,n.activeTime=-1,n.disposed=!1,n.needsRender=!1,n.frustumCulled=!1,i.then((function(e){var t=e[0],i=e[1];n.disposed?(t.dispose(),null==i||i.dispose()):(n.material.map=t,n.material.luminanceMap=i,n.material.needsUpdate=!0,n.material.visible=!0,n.needsRender=!0)})).catch(Qe),n}return t.__extends(i,e),i.getBox=function(e,t,i){var n=new xr,r=Math.pow(2,e),o=1/r,s=i%r,a=Math.floor(i/r);switch(n.level=e,n.index=i,n.sideCount=r,n.row=a,n.col=s,n.type=t,t){case"up":n.min.y=.5,n.max.y=.5,n.min.x=+s*o-.5,n.max.x=+s*o-.5+o,n.min.z=-a*o+.5-o,n.max.z=-a*o+.5;break;case"down":n.min.y=-.5,n.max.y=-.5,n.min.x=+s*o-.5,n.max.x=+s*o-.5+o,n.min.z=+a*o-.5,n.max.z=+a*o-.5+o;break;case"left":n.min.x=-.5,n.max.x=-.5,n.min.z=-s*o+.5-o,n.max.z=-s*o+.5,n.min.y=-a*o+.5-o,n.max.y=-a*o+.5;break;case"right":n.min.x=.5,n.max.x=.5,n.min.z=+s*o-.5,n.max.z=+s*o-.5+o,n.min.y=-a*o+.5-o,n.max.y=-a*o+.5;break;case"front":n.min.z=-.5,n.max.z=-.5,n.min.x=+s*o-.5,n.max.x=+s*o-.5+o,n.min.y=-a*o+.5-o,n.max.y=-a*o+.5;break;case"back":n.min.z=.5,n.max.z=.5,n.min.x=-s*o+.5-o,n.max.x=-s*o+.5,n.min.y=-a*o+.5-o,n.max.y=-a*o+.5}return n},i.prototype.dispose=function(){var e;this.material.map&&(this.material.map.dispose(),null===(e=this.material.luminanceMap)||void 0===e||e.dispose()),this.material.dispose()},i}(r.Mesh),jr=function(e){function i(){var t=e.call(this)||this;return t.needsRender=!1,t.name="tiling",t}return t.__extends(i,e),i}(r.Group),zr=function(){function e(e,t){this.disposed=!1,this.textureLoader=new xi(e),this.level=0,this.panoIndex=0,this.tiles=[],this.resource=[],this.luminance=null,this.imageOptions=t,this.object=new jr}return e.prototype.setAllowHosts=function(e){this.textureLoader.setAllowHosts(e)},e.prototype.setNetworkSubscribe=function(e){this.textureLoader.setNetworkSubscribe(e)},e.prototype.cleanup=function(){for(var e=0;e<this.tiles.length;e++)if(this.tiles[e]){var t=this.tiles[e],i="level-group:"+e,n=this.object.getObjectByName(i);for(var r in t){var o=t[r];o.dispose(),n.remove(o),delete t[r]}}},e.prototype.setRotation=function(e){this.object.quaternion.multiplyQuaternions(e,mr),this.object.needsRender=!0},e.prototype.setResource=function(e){if(!this.disposed&&this.resource!==e){this.cleanup(),this.resource=e;for(var t=0;t<e.length;t++){var i=e[t].level;this.tiles[i]={};var n="level-group:"+i,o=this.object.getObjectByName(n);o||((o=new r.Group).name=n,o.renderOrder=-1),this.object.add(o)}this.object.needsRender=!0}},e.prototype.setLuminance=function(e){this.luminance=e},e.prototype.getTileResources=function(e){for(var t,i=null!==(t=this.imageOptions.size)&&void 0!==t?t:2048,n=[],r=this.resource.length-1;r>=0;r--)this.resource[r].level<=e&&512*Math.pow(2,this.resource[r].level)>i&&n.unshift(this.resource[r]);return n},e.prototype.update=function(e,i,n){var o=this;if(!this.disposed){this.object.position.copy(e.position),this.level=i;var s=(new r.PerspectiveCamera).copy(e);s.position.set(0,0,0),s.quaternion.premultiply(this.object.quaternion.clone().inverse()),s.updateMatrixWorld(!0),s.updateProjectionMatrix();for(var a=s.getWorldDirection(new r.Vector3),u=(new r.Frustum).setFromProjectionMatrix((new r.Matrix4).multiplyMatrices(s.projectionMatrix,s.matrixWorldInverse)),c=this.getTileResources(i),l=function(e){if(e){for(var i=[],s=e.level,c=Math.pow(2,s),l=c*c,d=h.object.getObjectByName("level-group:"+s),p=0,A=Mr;p<A.length;p++)for(var f=A[p],M=0;M<l;M++){var g=Er.getBox(s,f,M);u.intersectsBox(g)&&i.push(g)}i.sort((function(e,t){return e.getCenter(new r.Vector3).angleTo(a)-t.getCenter(new r.Vector3).angleTo(a)}));for(var y=[],m=0,v=i;m<v.length;m++){var N=(g=v[m]).sideCount,D=g.row,w=g.col,T=(f=g.type,"tile-level:"+s+"-face:"+f+"-row:"+D+"-col:"+w);if(!h.tiles[s][T]){var x=e[f],E=e.size/N,j=[E*w,E*D,E,E],z=t.__assign({key:"pano_tile."+h.panoIndex+"."+f+"."+s+"."+D+"."+w,basisLoaderInitialized:wi.isInitialized(),cut:j},Xt(h.imageOptions,["format"]));s<=1&&("jpg"===z.format||/\.jpg$/.test(x))?(1024!==E&&(z.size=1024),z.quality=70):512!==E&&(z.size=512);var I=h.imageOptions.transform?h.imageOptions.transform(x,z):ti(x,z),b=h.textureLoader.load(I,{magFilter:r.LinearFilter,minFilter:r.NearestFilter,preInit:!1}).then((function(e){return e.body})),O=null;if(h.luminance){var S=h.luminance[f],L=t.__assign(t.__assign({},z),{size:256,key:"pano_tile_luminance."+h.panoIndex+"."+f+"."+s+"."+D+"."+w}),k=h.imageOptions.transform?h.imageOptions.transform(S,L):ti(S,L);O=h.textureLoader.load(k,{format:r.LuminanceFormat,preInit:!1}).then((function(e){return e.body})).catch((function(){return null}))}(B=h.tiles[s][T]=new Er(g,Promise.all([b,O]))).name=T,B.renderOrder=s,d.add(B)}h.tiles[s][T].activeTime=n,y.push(T)}for(var C=0,P=Object.keys(h.tiles[s]).sort((function(e,t){return o.tiles[s][t].activeTime-o.tiles[s][e].activeTime})).slice(Math.max(24,y.length));C<P.length;C++){T=P[C];var B=h.tiles[s][T];d.remove(B),B.dispose(),delete h.tiles[s][T]}}for(var _=0;_<h.tiles.length;_++)if(h.tiles[_]){var U=!!e&&_<=e.level;for(var T in h.tiles[_])h.tiles[_][T].visible=U}},h=this,d=0,p=c;d<p.length;d++){l(p[d])}this.object.needsRender=!0}},e.prototype.dispose=function(){this.cleanup(),this.resource=[],this.disposed=!0},e}(),Ir=(new r.Matrix4).makeRotationAxis(new r.Vector3(0,1,0),Math.PI),br=new r.Vector3(-1,1,1),Or=function(e){function i(t){var n,r,o,s,a,u,c,l=this,h=i.parseArgs(t);(l=e.call(this,h)||this).initAnimationed=!1,l.currentPanoIndex=h.initial[0],l.maxAccessibleDistance=h.maxAccessibleDistance,l.panoTapTriggerRadius=h.panoTapTriggerRadius,l.panoCircleMeshCreator=h.panoCircleMeshCreator,l.tileLevelForFov=h.tileLevelForFov;var d=l.model.getMaterial()||{},p=d.pano0,A=d.pano1;p&&(null==A?void 0:A.map)!==p.map&&(l.model.setMaterial({pano0:A}),p.map.dispose(),null===(n=p.luminanceMap)||void 0===n||n.dispose()),l.boundingMesh=l.generateBoundingMesh(),l.boundingMesh.setMaterial(l.model.getMaterial()||{}),l.boundingMesh.visible=!1,l.scene.add(l.boundingMesh),l.panoMeshes=[],l.updatePanoMeshes(),l.locationMotion=new Yn({count:0,distance:l.camera.pose.distance,modelAlpha:null!==(o=null===(r=l.model.getMaterial())||void 0===r?void 0:r.modelAlpha)&&void 0!==o?o:0,perspToOrtho:null!==(a=null===(s=l.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==a?a:0}),l.panoResources={},l.panoResources[l.locationMotion.keyframes[0].key=l.locationMotion.keyframes[1].key=Fe()]={panoIndex:l.currentPanoIndex,workCode:l.work.workCode,panoPicture:null!==(c=null===(u=l.model.getMaterial())||void 0===u?void 0:u.pano1)&&void 0!==c?c:null,position:l.camera.pose.offset.clone(),effect:"fly"};var f={allowHosts:l.work.allowHosts,networkSubscribe:l.networkSubscribe};return l.textureLoader=new xi(f),l.tiling=new zr(f,l.imageOptions),l.scene.add(l.tiling.object),l}return t.__extends(i,e),i.parseArgs=function(i){var n,o,s,a,u=e.parseArgs.call(this,i);return t.__assign(t.__assign({},u),{maxAccessibleDistance:null!==(n=i.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(o=i.panoTapTriggerRadius)&&void 0!==o?o:1,panoCircleMeshCreator:null!==(s=i.panoCircleMeshCreator)&&void 0!==s?s:cr,tileLevelForFov:null!==(a=i.tileLevelForFov)&&void 0!==a?a:function(e){var t,i=u.renderer.getSize(new r.Vector2),n=2*Math.atan(Math.tan(e/180*Math.PI/2)*u.camera.aspect)/Math.PI*180,o=Math.max(i.width/n,i.height/e),s=null!==(t=u.imageOptions.size)&&void 0!==t?t:2048;return s<8192&&o>18?4:s<4096&&o>14?3:s<2048&&o>10?2:s<1024&&o>6?1:0}})},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.destroy=function(){var t,i,n=this;e.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),delete this.pendingTextureTask,this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoMeshes&&(this.panoMeshes.forEach((function(e){n.helper.remove(e),e.dispose()})),this.panoMeshes.length=0),this.interiaMovement=!1;var r=this.videoTexture.image;r.pause(),r.oncanplay=function(){},r.ontimeupdate=function(){};var o={panoVideo:null};this.model.setMaterial(o),this.boundingMesh.setMaterial(o);for(var s=null!==(t=this.model.getMaterial())&&void 0!==t?t:{},a=s.pano0,u=s.pano1,c=0,l=Object.keys(this.panoResources);c<l.length;c++){var h=l[c],d=this.panoResources[h];if(d.panoPicture){var p=d.panoPicture.map;p&&p!==(null==a?void 0:a.map)&&p!==(null==u?void 0:u.map)&&(p.dispose(),null===(i=d.panoPicture.luminanceMap)||void 0===i||i.dispose(),d.panoPicture=null)}delete this.panoResources[h]}},i.prototype.isReady=function(){return!0===this.locationMotion.ended&&e.prototype.isReady.call(this)},i.prototype.updateWork=function(e,t,i,n,r){this.userAction=r,this.work=e,this.currentPanoIndex=t,this.textureLoader.setAllowHosts(this.work.allowHosts),this.tiling.setAllowHosts(this.work.allowHosts);var o={},s=!0;this.boundingMesh&&(o=this.boundingMesh.getMaterial()||{},s=this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(!0),this.boundingMesh.visible=s,this.boundingMesh.setMaterial(o),this.scene.add(this.boundingMesh),this.hideIntersectMesh(),this.updatePanoMeshes(!1);for(var a=0,u=this.panoMeshes;a<u.length;a++){u[a].visible=!1}return this.moveToPano(t,{effect:"fade",duration:n,longitude:i.longitude,latitude:i.latitude,fov:i.fov},r),!0},i.prototype.updateModel=function(e){var t=this;this.model=e;var i={};this.boundingMesh&&(i=this.boundingMesh.getMaterial()||{},this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(),this.boundingMesh.visible=!0,this.boundingMesh.name="bounding",this.boundingMesh.setMaterial(i),this.scene.add(this.boundingMesh),this.needsRender=!0,Ft((function(){t.updatePanoMeshes(),t.needsRender=!0}))},i.prototype.updateTime=function(e,t){var i,n,o,s,a,u,c;if(!this.destroyed){var l={},h={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var d=this.locationMotion.getKeyFrameSegment(e),p=d[0],A=d[1],f=this.panoResourceFromLocationMotionKeyframe(p),M=this.panoResourceFromLocationMotionKeyframe(A),g=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),m=(new r.Vector3).copy(f.position),v=(new r.Vector3).copy(M.position),N=this.locationMotion.value.count-A.value.count+1;l.modelAlpha=this.locationMotion.value.modelAlpha,l.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),l.useBlackTransition="instant"===M.effect,M.panoPicture&&(N<1?f.panoPicture&&(l.pano0=f.panoPicture):l.pano0=M.panoPicture,l.pano1=M.panoPicture),"fade"===M.effect&&(l.pano0&&f.panoPicture&&(l.pano0={map:l.pano0.map,luminanceMap:l.pano0.luminanceMap,matrix:f.panoPicture.matrix.clone().setPosition(M.position)}),m.copy(v)),l.progress=N,h.distance=this.locationMotion.value.distance,h.offset=new r.Vector3(m.x+(v.x-m.x)*N,m.y+(v.y-m.y)*N,m.z+(v.z-m.z)*N);for(var D=[],w=[],T=0,x=this.locationMotion.keyframes;T<x.length;T++){var E=x[T],j=E.key,z=E.progress;void 0!==j&&(D.push(j),z>=this.locationMotion.progress&&w.push(j))}for(var I=0,b=Object.keys(this.panoResources);I<b.length;I++){var O=b[I];if(!(w.indexOf(O)>=0)){var S=this.panoResources[O];if(S.panoPicture){var L=S.panoPicture.map;if(L){if(L===(null===(i=l.pano0)||void 0===i?void 0:i.map))continue;if(L===(null===(n=l.pano1)||void 0===n?void 0:n.map))continue;L.dispose(),null===(o=S.panoPicture.luminanceMap)||void 0===o||o.dispose(),S.panoPicture=null}}D.indexOf(O)>=0||delete this.panoResources[O]}}f.workCode===M.workCode?this.currentPanoIndex=N<.5?f.panoIndex:M.panoIndex:this.currentPanoIndex=M.panoIndex,this.emit("movingToPano",y.panoIndex,g.panoIndex,this.locationMotion.progress),this.tiling.object.visible=!1}else this.tiling.object.visible=!1!==this.tileLevelForFov&&void 0!==this.work.observers[this.currentPanoIndex]&&mn(this.camera.position,this.work.observers[this.currentPanoIndex].position);if(!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),h.longitude=this.cameraMotion.value.longitude,h.latitude=this.cameraMotion.value.latitude,h.fov=this.cameraMotion.value.fov),!1===En(l)&&(this.model.setMaterial(l),this.boundingMesh.setMaterial(l)),!1===En(h)&&this.setCamera(h),this.boundingMesh.visible=Boolean(null===(s=this.boundingMesh.getMaterial())||void 0===s?void 0:s.pano0)&&this.boundingMesh.boundingBox.containsPoint(this.camera.position),this.tileLevelForFov&&this.locationMotion.ended&&this.initAnimationed&&this.work.observers[this.currentPanoIndex]){var k=this.work.observers[this.currentPanoIndex];this.enableIOSEDR&&this.tiling.setLuminance(null!==(a=k.images.luminance)&&void 0!==a?a:null),this.tiling.panoIndex=this.currentPanoIndex,this.tiling.setResource(null!==(c=null===(u=k.images)||void 0===u?void 0:u.tiles)&&void 0!==c?c:[]),this.tiling.setRotation(k.quaternion),this.tiling.update(this.camera,this.tileLevelForFov(this.camera.fov),e)}}},i.prototype.render=function(t){var i=this.work.observers[this.currentPanoIndex];i&&i.video&&(this.needsRender=!0),e.prototype.render.call(this,t)},i.prototype.postProcessing=function(e,t){if(!this.destroyed)return this.effect||(this.effect=new fr(this.renderer)),this.effect.render(e,t)},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1],t=this.locationMotion.getKeyFrameSegment(He())[1],i=this.panoResourceFromLocationMotionKeyframe(t),n=this.work.observers[i.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone()}},i.prototype.moveToPano=function(e,i,n){var o,s,a,u=this,c=this.work.observers[e],l=t.__assign({key:"pano."+e,basisLoaderInitialized:wi.isInitialized()},Xt(this.imageOptions,["format","size","quality"])),h=null!==(o=this.imageOptions.transform)&&void 0!==o?o:ti,d={right:h(c.images.right,t.__assign(t.__assign({},l),{key:l.key+".right"})),left:h(c.images.left,t.__assign(t.__assign({},l),{key:l.key+".left"})),up:h(c.images.up,t.__assign(t.__assign({},l),{key:l.key+".up"})),down:h(c.images.down,t.__assign(t.__assign({},l),{key:l.key+".down"})),front:h(c.images.front,t.__assign(t.__assign({},l),{key:l.key+".front"})),back:h(c.images.back,t.__assign(t.__assign({},l),{key:l.key+".back"}))},p={key:"pano_luminance."+e,basisLoaderInitialized:wi.isInitialized(),size:l.size?l.size/2:1024},A=this.enableIOSEDR&&c.images.luminance?{right:h(c.images.luminance.right,t.__assign(t.__assign({},p),{key:p.key+".right"})),left:h(c.images.luminance.left,t.__assign(t.__assign({},p),{key:p.key+".left"})),up:h(c.images.luminance.up,t.__assign(t.__assign({},p),{key:p.key+".up"})),down:h(c.images.luminance.down,t.__assign(t.__assign({},p),{key:p.key+".down"})),front:h(c.images.luminance.front,t.__assign(t.__assign({},p),{key:p.key+".front"})),back:h(c.images.luminance.back,t.__assign(t.__assign({},p),{key:p.key+".back"}))}:null,f="pano:"+Wn(d);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===f)return;var M=this.pendingTextureTask.panoIndex;null===(s=this.panoMeshes[M])||void 0===s||s.setProgress(0),this.emit("textureAbort",M,c),this.pendingTextureTask.onError(new Error("texture aborted"))}var g,y=this.model.getMaterial()||{},m=y.pano0,v=y.pano1;if((null==m?void 0:m.map.name)===f?g=m:(null==v?void 0:v.map.name)===f&&(g=v),g){var N={panoIndex:e,workCode:this.work.workCode,effect:null!==(a=i.effect)&&void 0!==a?a:"fly",panoPicture:{map:g.map,luminanceMap:g.luminanceMap,matrix:(new r.Matrix4).compose(c.position,c.quaternion,br)},position:c.position.clone()};this.doMoveToPano(e,N,i,n)}else this.pending=!0,this.pendingTextureTask={panoIndex:e,hash:f,onLoad:function(t,o){var s,a;if(u.pending=!1,u.destroyed)t.body.dispose();else{t.body.name=f,u.emit("panoLoaded",e);var l={panoIndex:e,workCode:u.work.workCode,effect:null!==(s=i.effect)&&void 0!==s?s:"fly",panoPicture:{map:t.body,luminanceMap:null!==(a=null==o?void 0:o.body)&&void 0!==a?a:null,matrix:(new r.Matrix4).compose(c.position,c.quaternion,br)},position:c.position.clone()};u.doMoveToPano(e,l,i,n)}},onError:function(t){u.pending=!1,i.moveCancelCallback&&i.moveCancelCallback(),u.emit("panoLoadError",t,e),u.emit("moveToPanoCanceled",e)}},Promise.all([this.textureLoader.loadCube(d,{format:r.RGBFormat},void 0,void 0,(function(t){var i,n;(null===(i=u.pendingTextureTask)||void 0===i?void 0:i.hash)===f&&(null===(n=u.panoMeshes[e])||void 0===n||n.setProgress(t)),u.emit("textureLoading",t,e,c)}),this.renderer),A?this.textureLoader.loadCube(A,{format:r.LuminanceFormat}).catch((function(){return null})):Promise.resolve(null)]).then((function(t){var i,n,r=t[0],o=t[1];(null===(i=u.pendingTextureTask)||void 0===i?void 0:i.hash)===f?(u.pendingTextureTask.onLoad(r,o),null===(n=u.panoMeshes[e])||void 0===n||n.setProgress(0),delete u.pendingTextureTask,u.emit("textureLoaded",e,c,r.meta)):(r.body.dispose(),null==o||o.body.dispose())})).catch((function(t){var i,n;(null===(i=u.pendingTextureTask)||void 0===i?void 0:i.hash)===f&&(u.pendingTextureTask.onError(t),null===(n=u.panoMeshes[e])||void 0===n||n.setProgress(0),delete u.pendingTextureTask,u.emit("textureError",t,e,c),u.emit("error",t))})),this.emit("textureStartLoad",e,c)},i.prototype.setCamera=function(t){void 0===t&&(t={}),e.prototype.setCamera.call(this,t);var i=this.work.observers[this.currentPanoIndex];if(i)for(var n=i.visibleNodes.concat(this.currentPanoIndex),r=this.getForwardPanoIndexOrNot(),o=0;o<this.work.observers.length;o++){var s=this.work.observers[o],a=this.panoMeshes[o];if(a.visible=!0,a.setCurrent(r===o),a)if(s.loadable||s.active)if(-1===n.indexOf(o))a.visible=!1;else{a.visible=!0;var u=a.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);u<.01?a.setOpacity(0):a.setOpacity(xn(1.5/u,0,1))}else a.visible=!0}},i.prototype.initAnimation=function(e,t,i,n){var r,o,s,a=this;if(!this.destroyed){var u=!1;this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:xn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:xn(null!==(s=t.fov)&&void 0!==s?s:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){u=!0,a.emit("initAnimationWillStart",e,t,a.userAction)},moveEndCallback:function(e,t){a.emit("initAnimationEnded",e,t,a.userAction),a.initAnimationed=!0},moveCancelCallback:function(){var e={longitude:a.camera.pose.longitude,latitude:a.camera.pose.latitude,fov:a.camera.pose.fov,offset:a.camera.pose.offset.clone()};!1===u&&a.emit("initAnimationWillStart",a.currentPanoIndex,e,a.userAction),a.emit("initAnimationEnded",a.currentPanoIndex,e,a.userAction),a.initAnimationed=!0}},n)}},i.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},i.prototype.locationMotionKeyframesLength=function(e){for(var t=0,i=1;i<e.length;i++){var n=this.panoResourceFromLocationMotionKeyframe(e[i-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[i]).position;t+=n.distanceTo(r)*(e[i].value.count-e[i-1].value.count)}return t},i.prototype.updatePanoMeshes=function(e){void 0===e&&(e=!0);for(var t=[],i=0,n=this.panoMeshes;i<n.length;i++){(a=n[i]).loading&&t.push(a.name),this.helper.remove(a),a.dispose()}this.panoMeshes.length=0;for(var o=new r.Vector3(0,-1,0),s=0;s<this.work.observers.length;s++){var a,u=this.work.observers[s];if((a=this.panoCircleMeshCreator()).name="panoCircle_"+this.work.workCode+"_"+s,a.position.copy(u.standingPosition),a.needsRender=!0,this.helper.add(a),e&&this.model.loaded&&this.model.bvhs.loaded){var c=a.position.clone().add(new r.Vector3(0,1,0)),l=new r.Raycaster(c,o,0,1),h=this.model.intersectRaycaster(l)[0];h&&h.point.distanceTo(a.position)>.1&&(a.position.copy(h.point.clone()),a.needsRender=!0)}!1===u.active&&(a.setDisabled(!0),t.indexOf(a.name)>=0&&(a.setDisabled(!1),a.setLoading(!0))),this.panoMeshes[s]=a}},i.prototype.generateBoundingMesh=function(e){void 0===e&&(e=!1);for(var t=this.model.bounding.clone(),i=0,n=this.work.observers;i<n.length;i++){var o=n[i];t.expandByPoint(o.standingPosition),t.expandByPoint((new r.Vector3).fromArray([o.position.x,2*o.position.y-o.standingPosition.y,o.position.z]))}e&&t.expandByPoint(this.camera.position);var s=at(t,new r.Vector3(1,0,1));return s.name="panorama_bounding",s},i.prototype.doMoveToPano=function(e,i,n,o){var s,a,u,c=this;void 0===n&&(n={}),this.userAction=o;var l=He(),h=Fe();this.panoResources[h]=i;var d,p,A;if(this.locationMotion.ended){var f=this.locationMotion.getKeyFrameSegment(l);f[0];var M=f[1],g=this.locationMotion.value,y=this.panoResourceFromLocationMotionKeyframe(M).position,m=i.position;d=Math.max(y.distanceTo(m),1),p=[{key:M.key,progress:0,value:t.__assign(t.__assign({},g),{count:0})},{key:h,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,count:1}}],A=0}else{var v=this.locationMotion.getKeyFrameSegment(l),N=v[0],D=(M=v[1],g=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(N).position),w=(y=this.panoResourceFromLocationMotionKeyframe(M).position,m=i.position,M.value.count-g.count),T=Math.max(D.distanceTo(y),1)*w;d=T+Math.max(y.distanceTo(m),1),p=[{key:N.key,progress:0,value:t.__assign({},g)},{key:M.key,progress:T/d,value:M.value},{key:h,progress:1,value:{count:M.value.count+1,distance:0,perspToOrtho:0,modelAlpha:0}}];var x=this.locationMotionKeyframesLength(this.locationMotion.keyframes),E=this.locationMotionKeyframesLength(p);A=this.locationMotion.getProgressVelocity(l)*x/E}var j=this.calculateMovingDuration(n.duration,d),z={longitude:n.longitude,latitude:n.latitude,fov:n.fov},I={longitude:null!==(s=z.longitude)&&void 0!==s?s:this.camera.pose.longitude,latitude:null!==(a=z.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(u=z.fov)&&void 0!==u?u:this.camera.pose.fov,offset:i.position.clone()};n.moveStartCallback&&n.moveStartCallback(e,I),this.emit("panoWillArrive",e,I,this.userAction),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=Qe,this.videoTexture.needsUpdate=!0),this.model.setMaterial({panoVideo:null}),this.boundingMesh.setMaterial({panoVideo:null}),this.cameraMotion.set(z,j).catch(Qe),this.locationMotion.setKeyFrames(p,j,A).then((function(){var t,i,s,a={longitude:c.camera.pose.longitude,latitude:c.camera.pose.latitude,fov:c.camera.pose.fov,offset:c.camera.pose.offset.clone()};n.moveEndCallback&&n.moveEndCallback(e,a),c.emit("panoArrived",e,a,o);var u=c.work.observers[c.currentPanoIndex];if(u&&u.video&&c.videoTexture&&c.videoTexture.image instanceof HTMLVideoElement){var l=Ir.clone().multiply(null!==(s=null===(i=null===(t=c.model.getMaterial())||void 0===t?void 0:t.pano1)||void 0===i?void 0:i.matrix)&&void 0!==s?s:new r.Matrix4).multiply(u.video.matrix),h={map:c.videoTexture,size:u.video.size,matrix:l,alpha:1},d=Fe(),p=c.videoTexture.image;p.setAttribute("uuid",d),(lr||(lr=new Promise((function(e){var t,i=document.createElement("video");i.muted=!0,i.src="data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw",i.addEventListener("timeupdate",(function n(){i.removeEventListener("timeupdate",n,!1),clearTimeout(t);var r=document.createElement("canvas");r.width=r.height=1;var o=r.getContext("2d");o?(o.drawImage(i,0,0,1,1),o.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),i.addEventListener("canplay",(function e(){i.removeEventListener("canplay",e,!1),i.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))).then((function(e){e&&u.video&&p.getAttribute("uuid")===d&&(p.oncanplay=function(){p.oncanplay=Qe,p.play()},p.ontimeupdate=function(){p.currentTime>.5&&(p.ontimeupdate=Qe,c.model.setMaterial({panoVideo:h}),c.boundingMesh.setMaterial({panoVideo:h}))},p.src=u.video.source)})).catch((function(){p.removeAttribute("uuid")}))}}),(function(){n.moveCancelCallback&&n.moveCancelCallback(),c.emit("moveToPanoCanceled",e)}))},i.prototype.getForwardPanoIndexOrNot=function(e){var t=this,i=this.camera.getWorldDirection(new r.Vector3),n=this.camera.position.clone(),o=this.work.observers[this.currentPanoIndex];if(!o)return null;var s=o.accessibleNodes.filter((function(e){if(e===t.currentPanoIndex)return!1;var i=t.work.observers[e],o=i.standingPosition.clone().sub(n);return 0!==o.length()&&(!(o.angleTo(new r.Vector3(0,-1,0))<Math.PI/12)&&(i.loadable||i.active))})),a=(e?e.ray.direction.clone():i.clone()).setY(0);if(0===a.length())return null;for(var u=s.slice().sort((function(e,i){var r=t.work.observers[e].position.clone().setY(n.y),o=t.work.observers[i].position.clone().setY(n.y);return r.distanceTo(n)-o.distanceTo(n)})),c=0,l=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];c<l.length;c++)for(var h=l[c],d=0,p=u;d<p.length;d++){var A=p[d],f=this.work.observers[A].position.clone().setY(n.y).sub(n);if(0!==f.length()&&a.angleTo(f)<h)return A}return null},i.prototype.onTapGesture=function(e){var i=this,n=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","tap",n,!0)){var o=this.relativeClientPosition(e.center),s=new r.Raycaster;if(s.setFromCamera(o,this.camera),!this.emit("wantsTapGesture",s,o)){this.emit("gesture","tap",n,!0),this.emit("tapGesture",s,o),this.interiaMovement=!1;var a=this.camera.getWorldDirection(new r.Vector3).setY(0),u=null,c=this.work.observers[this.currentPanoIndex];if(c){var l=c.accessibleNodes.filter((function(e){if(e===i.currentPanoIndex)return!1;var t=i.work.observers[e];return!(t.position.distanceTo(i.camera.position)>i.maxAccessibleDistance)&&(t.loadable||t.active)})),h=this.model.intersectRaycaster(s)[0];if(h){var d=Tn(l,(function(e){var t=i.work.observers[e].standingPosition.clone();return t.clone().sub(i.camera.position).setY(0).angleTo(a)>Math.PI/2?1/0:t.distanceTo(h.point)}),!0),p=d[0];d[1]<this.panoTapTriggerRadius&&(u=p)}Re(u)&&(u=this.getForwardPanoIndexOrNot(s));for(var A=0,f=this.locationMotion.keyframes;A<f.length;A++){var M=f[A],g=this.panoResourceFromLocationMotionKeyframe(M);if(!(M.progress<this.locationMotion.progress)&&g.panoIndex===u){u=null;break}}if(this.emit("panoSelected",u),Re(u))!0===this.locationMotion.ended&&this.cameraBounce();else{var y=this.work.observers[u];if(y.active){for(var m={},v=Math.PI/6,N=Math.PI/12,D=new r.Vector3(0,1,0),w=y.position.clone().setY(0).sub(c.position.clone().setY(0)).normalize(),T=w.clone().applyAxisAngle(D,v),x=w.clone().applyAxisAngle(D,-v),E=[],j=[],z=[],I=0,b=y.accessibleNodes;I<b.length;I++){if((p=b[I])!==this.currentPanoIndex&&p!==u){var O=this.work.observers[p].position.clone().sub(y.position).setY(0);w.angleTo(O)<v?z.push(O):T.angleTo(O)<v?E.push(O):x.angleTo(O)<v&&j.push(O)}}var S=(z.length>0?z:t.__spreadArray(t.__spreadArray([],E,!0),j,!0)).slice().sort((function(e,t){return e.angleTo(w)-t.angleTo(w)}))[0];S&&S.angleTo(a)>N&&(m.longitude=Math.atan2(-S.x,-S.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(m.latitude=xn(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(m.fov=this.defaultFov),this.emit("wantsMoveToPano",u,m,!0)}else this.panoMeshes[u]&&(this.panoMeshes[u].setDisabled(!1),this.panoMeshes[u].setLoading(!0))}}}}},i}(Zn),Sr=function(e,t){var i=void 0!==e?e:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function r(e,t){return e(t={exports:{}},t.exports),t.exports}var o=function(){return/Android/i.test(t.userAgent)||/iPhone|iPad|iPod/i.test(t.userAgent)},s=function(e,t){for(var i=0,n=e.length;i<n;i++)t[i]=e[i]},a=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},u=n(r((function(n,r){
372
+ * Licensed under the MIT license */var zn=function(e,t,i,n){var r,o=["","webkit","Moz","MS","ms","o"],s=t.createElement?t.createElement("div"):n,a=Math.round,u=Math.abs,c=Date.now;function l(e,t,i){return setTimeout(g(e,i),t)}function h(e,t,i){return!!Array.isArray(e)&&(d(e,i[t],i),!0)}function d(e,t,i){var r;if(e)if(e.forEach)e.forEach(t,i);else if(e.length!==n)for(r=0;r<e.length;)t.call(i,e[r],r,e),r++;else for(r in e)e.hasOwnProperty(r)&&t.call(i,e[r],r,e)}function p(t,i,n){var r="DEPRECATED METHOD: "+i+"\n"+n+" AT \n";return function(){var i=new Error("get-stack-trace"),n=i&&i.stack?i.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,r,n),t.apply(this,arguments)}}r="function"!=typeof Object.assign?function(e){if(e===n||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;i<arguments.length;i++){var r=arguments[i];if(r!==n&&null!==r)for(var o in r)r.hasOwnProperty(o)&&(t[o]=r[o])}return t}:Object.assign;var A=p((function(e,t,i){for(var r=Object.keys(t),o=0;o<r.length;)(!i||i&&e[r[o]]===n)&&(e[r[o]]=t[r[o]]),o++;return e}),"extend","Use `assign`."),f=p((function(e,t){return A(e,t,!0)}),"merge","Use `assign`.");function M(e,t,i){var n,o=t.prototype;(n=e.prototype=Object.create(o)).constructor=e,n._super=o,i&&r(n,i)}function g(e,t){return function(){return e.apply(t,arguments)}}function y(e,t){return"function"==typeof e?e.apply(t&&t[0]||n,t):e}function m(e,t){return e===n?t:e}function v(e,t,i){d(T(t),(function(t){e.addEventListener(t,i,!1)}))}function N(e,t,i){d(T(t),(function(t){e.removeEventListener(t,i,!1)}))}function D(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function w(e,t){return e.indexOf(t)>-1}function T(e){return e.trim().split(/\s+/g)}function x(e,t,i){if(e.indexOf&&!i)return e.indexOf(t);for(var n=0;n<e.length;){if(i&&e[n][i]==t||!i&&e[n]===t)return n;n++}return-1}function E(e){return Array.prototype.slice.call(e,0)}function j(e,t,i){for(var n=[],r=[],o=0;o<e.length;){var s=t?e[o][t]:e[o];x(r,s)<0&&n.push(e[o]),r[o]=s,o++}return i&&(n=t?n.sort((function(e,i){return e[t]>i[t]})):n.sort()),n}function z(e,t){for(var i,r,s=t[0].toUpperCase()+t.slice(1),a=0;a<o.length;){if((r=(i=o[a])?i+s:t)in e)return r;a++}return n}var I=1;function b(t){var i=t.ownerDocument||t;return i.defaultView||i.parentWindow||e}var O="ontouchstart"in e,S=z(e,"PointerEvent")!==n,L=O&&/mobile|tablet|ip(ad|hone|od)|android/i.test(navigator.userAgent),k="touch",C="mouse",P=24,_=["x","y"],B=["clientX","clientY"];function U(e,t){var i=this;this.manager=e,this.callback=t,this.element=e.element,this.target=e.options.inputTarget,this.domHandler=function(t){y(e.options.enable,[e])&&i.handler(t)},this.init()}function R(e,t,i){var r=i.pointers.length,o=i.changedPointers.length,s=1&t&&r-o==0,a=12&t&&r-o==0;i.isFirst=!!s,i.isFinal=!!a,s&&(e.session={}),i.eventType=t,function(e,t){var i=e.session,r=t.pointers,o=r.length;i.firstInput||(i.firstInput=Q(t));o>1&&!i.firstMultiple?i.firstMultiple=Q(t):1===o&&(i.firstMultiple=!1);var s=i.firstInput,a=i.firstMultiple,l=a?a.center:s.center,h=t.center=Y(r);t.timeStamp=c(),t.deltaTime=t.timeStamp-s.timeStamp,t.angle=G(l,h),t.distance=H(l,h),function(e,t){var i=t.center,n=e.offsetDelta||{},r=e.prevDelta||{},o=e.prevInput||{};1!==t.eventType&&4!==o.eventType||(r=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},n=e.offsetDelta={x:i.x,y:i.y});t.deltaX=r.x+(i.x-n.x),t.deltaY=r.y+(i.y-n.y)}(i,t),t.offsetDirection=V(t.deltaX,t.deltaY);var d=F(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=d.x,t.overallVelocityY=d.y,t.overallVelocity=u(d.x)>u(d.y)?d.x:d.y,t.scale=a?function(e,t){return H(t[0],t[1],B)/H(e[0],e[1],B)}(a.pointers,r):1,t.rotation=a?function(e,t){return G(t[1],t[0],B)+G(e[1],e[0],B)}(a.pointers,r):0,t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length,function(e,t){var i,r,o,s,a=e.lastInterval||t,c=t.timeStamp-a.timeStamp;if(8!=t.eventType&&(c>25||a.velocity===n)){var l=t.deltaX-a.deltaX,h=t.deltaY-a.deltaY,d=F(c,l,h);r=d.x,o=d.y,i=u(d.x)>u(d.y)?d.x:d.y,s=V(l,h),e.lastInterval=t}else i=a.velocity,r=a.velocityX,o=a.velocityY,s=a.direction;t.velocity=i,t.velocityX=r,t.velocityY=o,t.direction=s}(i,t);var p=e.element;D(t.srcEvent.target,p)&&(p=t.srcEvent.target);t.target=p}(e,i),e.emit("hammer.input",i),e.recognize(i),e.session.prevInput=i}function Q(e){for(var t=[],i=0;i<e.pointers.length;)t[i]={clientX:a(e.pointers[i].clientX),clientY:a(e.pointers[i].clientY)},i++;return{timeStamp:c(),pointers:t,center:Y(t),deltaX:e.deltaX,deltaY:e.deltaY}}function Y(e){var t=e.length;if(1===t)return{x:a(e[0].clientX),y:a(e[0].clientY)};for(var i=0,n=0,r=0;r<t;)i+=e[r].clientX,n+=e[r].clientY,r++;return{x:a(i/t),y:a(n/t)}}function F(e,t,i){return{x:t/e||0,y:i/e||0}}function V(e,t){return e===t?1:u(e)>=u(t)?e<0?2:4:t<0?8:16}function H(e,t,i){i||(i=_);var n=t[i[0]]-e[i[0]],r=t[i[1]]-e[i[1]];return Math.sqrt(n*n+r*r)}function G(e,t,i){i||(i=_);var n=t[i[0]]-e[i[0]],r=t[i[1]]-e[i[1]];return 180*Math.atan2(r,n)/Math.PI}U.prototype={handler:function(){},init:function(){this.evEl&&v(this.element,this.evEl,this.domHandler),this.evTarget&&v(this.target,this.evTarget,this.domHandler),this.evWin&&v(b(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&N(this.element,this.evEl,this.domHandler),this.evTarget&&N(this.target,this.evTarget,this.domHandler),this.evWin&&N(b(this.element),this.evWin,this.domHandler)}};var W={mousedown:1,mousemove:2,mouseup:4},q="mousedown",K="mousemove mouseup";function Z(){this.evEl=q,this.evWin=K,this.pressed=!1,U.apply(this,arguments)}M(Z,U,{handler:function(e){var t=W[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:C,srcEvent:e}))}});var X={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},J={2:k,3:"pen",4:C,5:"kinect"},$="pointerdown",ee="pointermove pointerup pointercancel";function te(){this.evEl=$,this.evWin=ee,U.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&($="MSPointerDown",ee="MSPointerMove MSPointerUp MSPointerCancel"),M(te,U,{handler:function(e){var t=this.store,i=!1,n=e.type.toLowerCase().replace("ms",""),r=X[n],o=J[e.pointerType]||e.pointerType,s=o==k,a=x(t,e.pointerId,"pointerId");1&r&&(0===e.button||s)?a<0&&(t.push(e),a=t.length-1):12&r&&(i=!0),a<0||(t[a]=e,this.callback(this.manager,r,{pointers:t,changedPointers:[e],pointerType:o,srcEvent:e}),i&&t.splice(a,1))}});var ie={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ne="touchstart",re="touchstart touchmove touchend touchcancel";function oe(){this.evTarget=ne,this.evWin=re,this.started=!1,U.apply(this,arguments)}function se(e,t){var i=E(e.touches),n=E(e.changedTouches);return 12&t&&(i=j(i.concat(n),"identifier",!0)),[i,n]}M(oe,U,{handler:function(e){var t=ie[e.type];if(1===t&&(this.started=!0),this.started){var i=se.call(this,e,t);12&t&&i[0].length-i[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:i[0],changedPointers:i[1],pointerType:k,srcEvent:e})}}});var ae={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ue="touchstart touchmove touchend touchcancel";function ce(){this.evTarget=ue,this.targetIds={},U.apply(this,arguments)}function le(e,t){var i=E(e.touches),n=this.targetIds;if(3&t&&1===i.length)return n[i[0].identifier]=!0,[i,i];var r,o,s=E(e.changedTouches),a=[],u=this.target;if(o=i.filter((function(e){return D(e.target,u)})),1===t)for(r=0;r<o.length;)n[o[r].identifier]=!0,r++;for(r=0;r<s.length;)n[s[r].identifier]&&a.push(s[r]),12&t&&delete n[s[r].identifier],r++;return a.length?[j(o.concat(a),"identifier",!0),a]:void 0}M(ce,U,{handler:function(e){var t=ae[e.type],i=le.call(this,e,t);i&&this.callback(this.manager,t,{pointers:i[0],changedPointers:i[1],pointerType:k,srcEvent:e})}});function he(){U.apply(this,arguments);var e=g(this.handler,this);this.touch=new ce(this.manager,e),this.mouse=new Z(this.manager,e),this.primaryTouch=null,this.lastTouches=[]}function de(e,t){1&e?(this.primaryTouch=t.changedPointers[0].identifier,pe.call(this,t)):12&e&&pe.call(this,t)}function pe(e){var t=e.changedPointers[0];if(t.identifier===this.primaryTouch){var i={x:t.clientX,y:t.clientY};this.lastTouches.push(i);var n=this.lastTouches;setTimeout((function(){var e=n.indexOf(i);e>-1&&n.splice(e,1)}),2500)}}function Ae(e){for(var t=e.srcEvent.clientX,i=e.srcEvent.clientY,n=0;n<this.lastTouches.length;n++){var r=this.lastTouches[n],o=Math.abs(t-r.x),s=Math.abs(i-r.y);if(o<=25&&s<=25)return!0}return!1}M(he,U,{handler:function(e,t,i){var n=i.pointerType==k,r=i.pointerType==C;if(!(r&&i.sourceCapabilities&&i.sourceCapabilities.firesTouchEvents)){if(n)de.call(this,t,i);else if(r&&Ae.call(this,i))return;this.callback(e,t,i)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var fe=s?z(s.style,"touchAction"):n,Me=fe!==n,ge="compute",ye="auto",me="manipulation",ve="none",Ne="pan-x",De="pan-y",we=function(){if(!Me)return!1;var t={},i=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach((function(n){t[n]=!i||e.CSS.supports("touch-action",n)})),t}();function Te(e,t){this.manager=e,this.set(t)}Te.prototype={set:function(e){e==ge&&(e=this.compute()),Me&&this.manager.element.style&&we[e]&&(this.manager.element.style[fe]=e),this.actions=e.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var e=[];return d(this.manager.recognizers,(function(t){y(t.options.enable,[t])&&(e=e.concat(t.getTouchAction()))})),function(e){if(w(e,ve))return ve;var t=w(e,Ne),i=w(e,De);if(t&&i)return ve;if(t||i)return t?Ne:De;if(w(e,me))return me;return ye}(e.join(" "))},preventDefaults:function(e){var t=e.srcEvent,i=e.offsetDirection;if(this.manager.session.prevented)t.preventDefault();else{var n=this.actions,r=w(n,ve)&&!we.none,o=w(n,De)&&!we["pan-y"],s=w(n,Ne)&&!we["pan-x"];if(r){var a=1===e.pointers.length,u=e.distance<2,c=e.deltaTime<250;if(a&&u&&c)return}if(!s||!o)return r||o&&6&i||s&&i&P?this.preventSrc(t):void 0}},preventSrc:function(e){this.manager.session.prevented=!0,e.preventDefault()}};var xe=32;function Ee(e){this.options=r({},this.defaults,e||{}),this.id=I++,this.manager=null,this.options.enable=m(this.options.enable,!0),this.state=1,this.simultaneous={},this.requireFail=[]}function je(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function ze(e){return 16==e?"down":8==e?"up":2==e?"left":4==e?"right":""}function Ie(e,t){var i=t.manager;return i?i.get(e):e}function be(){Ee.apply(this,arguments)}function Oe(){be.apply(this,arguments),this.pX=null,this.pY=null}function Se(){be.apply(this,arguments)}function Le(){Ee.apply(this,arguments),this._timer=null,this._input=null}function ke(){be.apply(this,arguments)}function Ce(){be.apply(this,arguments)}function Pe(){Ee.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function _e(e,t){return(t=t||{}).recognizers=m(t.recognizers,_e.defaults.preset),new Be(e,t)}Ee.prototype={defaults:{},set:function(e){return r(this.options,e),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(e){if(h(e,"recognizeWith",this))return this;var t=this.simultaneous;return t[(e=Ie(e,this)).id]||(t[e.id]=e,e.recognizeWith(this)),this},dropRecognizeWith:function(e){return h(e,"dropRecognizeWith",this)||(e=Ie(e,this),delete this.simultaneous[e.id]),this},requireFailure:function(e){if(h(e,"requireFailure",this))return this;var t=this.requireFail;return-1===x(t,e=Ie(e,this))&&(t.push(e),e.requireFailure(this)),this},dropRequireFailure:function(e){if(h(e,"dropRequireFailure",this))return this;e=Ie(e,this);var t=x(this.requireFail,e);return t>-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,i=this.state;function n(i){t.manager.emit(i,e)}i<8&&n(t.options.event+je(i)),n(t.options.event),e.additionalEvent&&n(e.additionalEvent),i>=8&&n(t.options.event+je(i))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=xe},canEmit:function(){for(var e=0;e<this.requireFail.length;){if(!(33&this.requireFail[e].state))return!1;e++}return!0},recognize:function(e){var t=r({},e);if(!y(this.options.enable,[this,t]))return this.reset(),void(this.state=xe);56&this.state&&(this.state=1),this.state=this.process(t),30&this.state&&this.tryEmit(t)},process:function(e){},getTouchAction:function(){},reset:function(){}},M(be,Ee,{defaults:{pointers:1},attrTest:function(e){var t=this.options.pointers;return 0===t||e.pointers.length===t},process:function(e){var t=this.state,i=e.eventType,n=6&t,r=this.attrTest(e);return n&&(8&i||!r)?16|t:n||r?4&i?8|t:2&t?4|t:2:xe}}),M(Oe,be,{defaults:{event:"pan",threshold:10,pointers:1,direction:30},getTouchAction:function(){var e=this.options.direction,t=[];return 6&e&&t.push(De),e&P&&t.push(Ne),t},directionTest:function(e){var t=this.options,i=!0,n=e.distance,r=e.direction,o=e.deltaX,s=e.deltaY;return r&t.direction||(6&t.direction?(r=0===o?1:o<0?2:4,i=o!=this.pX,n=Math.abs(e.deltaX)):(r=0===s?1:s<0?8:16,i=s!=this.pY,n=Math.abs(e.deltaY))),e.direction=r,i&&n>t.threshold&&r&t.direction},attrTest:function(e){return be.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=ze(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),M(Se,be,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ve]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),M(Le,Ee,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ye]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distance<t.threshold,r=e.deltaTime>t.time;if(this._input=e,!n||!i||12&e.eventType&&!r)this.reset();else if(1&e.eventType)this.reset(),this._timer=l((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return xe},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=c(),this.manager.emit(this.options.event,this._input)))}}),M(ke,be,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ve]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),M(Ce,be,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return Oe.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return 30&i?t=e.overallVelocity:6&i?t=e.overallVelocityX:i&P&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&u(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=ze(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),M(Pe,Ee,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[me]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,n=e.distance<t.threshold,r=e.deltaTime<t.time;if(this.reset(),1&e.eventType&&0===this.count)return this.failTimeout();if(n&&r&&i){if(4!=e.eventType)return this.failTimeout();var o=!this.pTime||e.timeStamp-this.pTime<t.interval,s=!this.pCenter||H(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,s&&o?this.count+=1:this.count=1,this._input=e,0===this.count%t.taps)return this.hasRequireFailures()?(this._timer=l((function(){this.state=8,this.tryEmit()}),t.interval,this),2):8}return xe},failTimeout:function(){return this._timer=l((function(){this.state=xe}),this.options.interval,this),xe},reset:function(){clearTimeout(this._timer)},emit:function(){8==this.state&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),_e.VERSION="2.0.7",_e.defaults={domEvents:!1,touchAction:ge,enable:!0,inputTarget:null,inputClass:null,preset:[[ke,{enable:!1}],[Se,{enable:!1},["rotate"]],[Ce,{direction:6}],[Oe,{direction:6},["swipe"]],[Pe],[Pe,{event:"doubletap",taps:2},["tap"]],[Le]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};function Be(e,t){var i;this.options=r({},_e.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new((i=this).options.inputClass||(S?te:L?ce:O?he:Z))(i,R),this.touchAction=new Te(this,this.options.touchAction),Ue(this,!0),d(this.options.recognizers,(function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])}),this)}function Ue(e,t){var i,n=e.element;n.style&&(d(e.options.cssProps,(function(r,o){i=z(n.style,o),t?(e.oldCssProps[i]=n.style[i],n.style[i]=r):n.style[i]=e.oldCssProps[i]||""})),t||(e.oldCssProps={}))}return Be.prototype={set:function(e){return r(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this},stop:function(e){this.session.stopped=e?2:1},recognize:function(e){var t=this.session;if(!t.stopped){var i;this.touchAction.preventDefaults(e);var n=this.recognizers,r=t.curRecognizer;(!r||r&&8&r.state)&&(r=t.curRecognizer=null);for(var o=0;o<n.length;)i=n[o],2===t.stopped||r&&i!=r&&!i.canRecognizeWith(r)?i.reset():i.recognize(e),!r&&14&i.state&&(r=t.curRecognizer=i),o++}},get:function(e){if(e instanceof Ee)return e;for(var t=this.recognizers,i=0;i<t.length;i++)if(t[i].options.event==e)return t[i];return null},add:function(e){if(h(e,"add",this))return this;var t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e},remove:function(e){if(h(e,"remove",this))return this;if(e=this.get(e)){var t=this.recognizers,i=x(t,e);-1!==i&&(t.splice(i,1),this.touchAction.update())}return this},on:function(e,t){if(e!==n&&t!==n){var i=this.handlers;return d(T(e),(function(e){i[e]=i[e]||[],i[e].push(t)})),this}},off:function(e,t){if(e!==n){var i=this.handlers;return d(T(e),(function(e){t?i[e]&&i[e].splice(x(i[e],t),1):delete i[e]})),this}},emit:function(e,i){this.options.domEvents&&function(e,i){var n=t.createEvent("Event");n.initEvent(e,!0,!0),n.gesture=i,i.target.dispatchEvent(n)}(e,i);var n=this.handlers[e]&&this.handlers[e].slice();if(n&&n.length){i.type=e,i.preventDefault=function(){i.srcEvent.preventDefault()};for(var r=0;r<n.length;)n[r](i),r++}},destroy:function(){this.element&&Ue(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},r(_e,{INPUT_START:1,INPUT_MOVE:2,INPUT_END:4,INPUT_CANCEL:8,STATE_POSSIBLE:1,STATE_BEGAN:2,STATE_CHANGED:4,STATE_ENDED:8,STATE_RECOGNIZED:8,STATE_CANCELLED:16,STATE_FAILED:xe,DIRECTION_NONE:1,DIRECTION_LEFT:2,DIRECTION_RIGHT:4,DIRECTION_UP:8,DIRECTION_DOWN:16,DIRECTION_HORIZONTAL:6,DIRECTION_VERTICAL:P,DIRECTION_ALL:30,Manager:Be,Input:U,TouchAction:Te,TouchInput:ce,MouseInput:Z,PointerEventInput:te,TouchMouseInput:he,SingleTouchInput:oe,Recognizer:Ee,AttrRecognizer:be,Tap:Pe,Pan:Oe,Swipe:Ce,Pinch:Se,Rotate:ke,Press:Le,on:v,off:N,each:d,merge:f,extend:A,assign:r,inherit:M,bindFn:g,prefixed:z}),_e}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{});function In(e,t){var i=document.mozFullScreen?"DOMMouseScroll":"mousewheel",n=!!window.addEventListener,r=!!window.attachEvent,o=function(e,t){var i=document.mozFullScreen?"DOMMouseScroll":"mousewheel",n=!!window.addEventListener,r=!!window.attachEvent;return t.__mouseWheelWrapper=function(o){if(o=o||window.event,n&&o.preventDefault(),r&&(o.returnValue=!1),"DOMMouseScroll"==i||"mousewheel"==i){var s=o.wheelDelta;o.delta=s?s/120:-(o.delta||0)/3}t.call(e,o)}}(e,t);n?e.addEventListener(i,o,!1):r&&e.attachEvent("on"+i,o)}function bn(e,t,i){var n=t.offsetWidth,o=t.offsetHeight,s=t.getBoundingClientRect(),a=s.top,u=s.left;return i&&(u+=n*i.left,a+=o*(1-i.bottom-i.height),n*=i.width,o*=i.height),new r.Vector2((e.x-u)/n*2-1,-(e.y-a)/o*2+1)}!function(){try{var e=document.createElement("canvas");!window.WebGLRenderingContext||!e.getContext("webgl")&&e.getContext("experimental-webgl")}catch(e){return!1}}();var On=new r.OrthographicCamera(-1,1,1,-1,0,1),Sn=new r.BufferGeometry;Sn.setAttribute("position",new r.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),Sn.setAttribute("uv",new r.Float32BufferAttribute([0,2,0,0,2,0],2));var Ln=new r.Mesh(Sn),kn=new r.Scene;kn.add(Ln);var Cn=function(){function e(e,t){var i;this.renderer=e,this.material=new r.ShaderMaterial({vertexShader:null!==(i=t.vertex)&&void 0!==i?i:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:t.fragment,uniforms:Object.assign({inputBuffer:new r.Uniform(null)},t.uniforms),defines:Object.assign({},t.defines),blending:r.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var i=this.renderer.getRenderTarget(),n=Ln.material;this.material.uniforms.inputBuffer.value=e.texture,Ln.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(kn,On),this.renderer.setRenderTarget(i),Ln.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),Pn=function(){function e(e){this.renderer=e,this.material=new r.ShaderMaterial({vertexShader:"\nvoid main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform vec3 inputValue;\nvoid main() {\n gl_FragColor = vec4(inputValue, 1.0);\n}\n",uniforms:Object.assign({inputValue:new r.Uniform(new r.Vector3)}),blending:r.NoBlending,depthWrite:!1,depthTest:!1})}return e.prototype.render=function(e,t){var i=this.renderer.getRenderTarget(),n=Ln.material;this.material.uniforms.inputValue.value.copy(e),Ln.material=this.material,this.renderer.setRenderTarget(t||null),this.renderer.render(kn,On),this.renderer.setRenderTarget(i),Ln.material=n},e.prototype.dispose=function(){this.material.dispose()},e}(),_n=function(e){function i(t){return e.call(this,t,{fragment:"\nuniform sampler2D inputBuffer;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(inputBuffer, vUv);\n}\n"})||this}return t.__extends(i,e),i}(Cn),Bn=function(){function e(e){this.enable=!0,this.renderer=e,this.copyPass=new _n(this.renderer)}return e.prototype.render=function(e,t){this.copyPass.render(e)},e.prototype.dispose=function(){this.copyPass.dispose()},e}();function Un(e,t,i){return e+(t-e)*i}function Rn(e,t){var i=t[1]-t[0];return e<t[0]?Rn(e+i,t):e>=t[1]?Rn(e-i,t):e}function Qn(e,t,i,n){return n?function(e,t,i,n){var r=n[1]-n[0];return e=Rn(e,n),Un((t=Rn(t,n))-e>r/2?e+r:e-t>r/2?e-r:e,t,i)}(e,t,i,n):Un(e,t,i)}var Yn=function(){function e(e){for(var i in this.config={},this.progress=1,this.ended=!0,this.value={},this.startTime=He(),this.startVelocity=0,this.duration=0,this.keyframes=[],e){var n=e[i];"number"==typeof n?(this.value[i]=n,this.config[i]={circle:!1}):(this.value[i]=n.value,this.config[i]={circle:n.circle})}this.keyframes=[{progress:0,value:t.__assign({},this.value)},{progress:1,value:t.__assign({},this.value)}]}return e.prototype.getProgress=function(e){var t=e-this.startTime;return t<0?0:t>=this.duration?1:1-function(e,t,i,n){var r=(t*i+2*e)/Math.pow(i,3),o=-(2*t*i+3*e)/Math.pow(i,2),s=t,a=e;return r*Math.pow(n,3)+o*Math.pow(n,2)+s*n+a}(1,this.startVelocity,this.duration,t)},e.prototype.getValue=function(e){for(var i=1;i<this.keyframes.length;i++)if(this.keyframes[i].progress>e){var n=this.keyframes[i-1],r=this.keyframes[i],o={};for(var s in this.config){var a=(e-n.progress)/(r.progress-n.progress);o[s]=Qn(n.value[s],r.value[s],a,this.config[s].circle)}return o}return t.__assign({},this.keyframes[this.keyframes.length-1].value)},e.prototype.getProgressVelocity=function(e){var t=e-this.startTime;return t>=this.duration?0:function(e,t,i,n){var r=(t*i+2*e)/Math.pow(i,3),o=-(2*t*i+3*e)/Math.pow(i,2),s=t;return 3*r*Math.pow(n,2)+2*o*n+s}(1,this.startVelocity,this.duration,t)},e.prototype.update=function(e){return!!this.ended||(this.progress=Math.min(1,Math.max(0,this.progress,this.getProgress(e))),this.value=this.getValue(this.progress),this.ended=this.progress>=1,this.ended&&this.callbacks&&(this.callbacks[0](),this.callbacks=void 0),this.ended)},e.prototype.getKeyFrameSegment=function(e){for(var t=this.getProgress(e),i=1;i<this.keyframes.length;i++)if(this.keyframes[i].progress>t)return[this.keyframes[i-1],this.keyframes[i]];return[this.keyframes[this.keyframes.length-2],this.keyframes[this.keyframes.length-1]]},e.prototype.set=function(e,t,i,n){var r;void 0===i&&(i=0),n=null!=n?n:He();var o=this.getProgress(n),s=this.getValue(o),a={};for(var u in this.config)a[u]=null!==(r=e[u])&&void 0!==r?r:s[u];var c=[{progress:0,value:s},{progress:1,value:a}];return this.setKeyFrames(c,t,i,n)},e.prototype.setKeyFrames=function(e,i,n,r){var o=this;if(void 0===n&&(n=0),e.length<2)throw new Error("keyframes invoid.");return this.callbacks&&(this.callbacks[1](new Error("motion aborted.")),this.callbacks=void 0),new Promise((function(s,a){r=null!=r?r:He(),o.progress=0,o.ended=!1,o.startTime=r,o.startVelocity=n,o.keyframes=e,o.duration=i,0===i?(o.progress=1,o.value=t.__assign({},e[e.length-1].value)):o.value=t.__assign({},e[0].value),o.callbacks=[s,a]}))},e.prototype.dispose=function(){this.callbacks&&(this.callbacks[1](new Error("motion dispose.")),this.callbacks=void 0)},e}(),Fn=function(e){function i(t){var n,r=e.call(this)||this,o=i.parseArgs(t);return r.pending=!0,r.userAction=o.initial[3],r.destroyed=!1,r.ident=o.ident,r.scene=o.scene,r.helper=o.helper,r.camera=o.camera,r.renderer=o.renderer,r.scissor=o.scissor,r.element=o.element,r.model=o.model,r.enableIOSEDR=null!==(n=o.enableIOSEDR)&&void 0!==n&&n,r.work=o.work,r.imageOptions=o.imageOptions,r.videoTexture=o.videoTexture,r.networkSubscribe=o.networkSubscribe,r.needsRender=!0,r.maxFov=120,r.minFov=40,r.maxLatitude=+Math.PI/2,r.minLatitude=-Math.PI/2,r.cameraMotion=new Yn({longitude:{value:r.camera.pose.longitude,circle:[0,2*Math.PI]},latitude:r.camera.pose.latitude,fov:r.camera.pose.fov}),r.eventUnbinds=[o.element].concat(o.extraElements||[]).map((function(e){return r.bindEvents(e)})),We.shared.add((function(){return r.initAnimation.apply(r,o.initial)}),!0),r}return t.__extends(i,e),i.parseArgs=function(e){return t.__assign({},e)},i.initAnimationEndState=function(e){var t=this.parseArgs(e);return{longitude:t.camera.pose.longitude,latitude:t.camera.pose.latitude,fov:t.camera.pose.fov,offset:t.camera.pose.offset.clone()}},i.prototype.destroy=function(){this.destroyed=!0,this.off(),this.cameraMotion.dispose();for(var e=0,t=this.eventUnbinds;e<t.length;e++){(0,t[e])()}this.effect&&(this.effect.dispose(),delete this.effect)},i.prototype.isReady=function(){return!1===this.pending&&!0===this.cameraMotion.ended},i.prototype.bindExtraElement=function(e){for(var t=0,i=this.eventUnbinds;t<i.length;t++){if(i[t].element===e)return}this.eventUnbinds.push(this.bindEvents(e))},i.prototype.unbindExtraElement=function(e){for(var t=0,i=this.eventUnbinds;t<i.length;t++){if(i[t].element===e)break}},i.prototype.updateRenderSize=function(){this.needsRender=!0},i.prototype.updateModel=function(e){this.model=e,this.needsRender=!0},i.prototype.updateWork=function(e,t,i,n,r){return this.work=e,this.userAction=r,!1},i.prototype.updateTime=function(e,t){if(!this.destroyed){var i={};this.cameraMotion.ended&&(this.cameraMotion.update(e),i.longitude=this.cameraMotion.value.longitude,i.latitude=this.cameraMotion.value.latitude,i.fov=this.cameraMotion.value.fov),En(i)&&this.setCamera(i)}},i.prototype.render=function(e){this.renderer.render(this.scene,this.camera)},i.prototype.postProcessing=function(e,t){this.destroyed||(this.effect||(this.effect=new Bn(this.renderer)),this.effect.render(e,t))},i.prototype.updateCamera=function(e,t,i){return this.userAction=i,this.cameraMotion.set(e,t)},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:this.camera.pose.offset.clone()}},i.prototype.moveToPano=function(e,t,i){void 0===t&&(t={}),this.userAction=i;var n={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset.clone()};t.moveStartCallback&&t.moveStartCallback(e,n),this.emit("moveToPano",e,this.userAction),this.emit("panoArrived",e,n,this.userAction),t.moveEndCallback&&t.moveEndCallback(e,n)},i.prototype.initAnimation=function(e,t,i,n){this.pending=!1,this.userAction=n},i.prototype.setCamera=function(e){var t,i,n,r,o;void 0===e&&(e={});var s=null!==(t=e.longitude)&&void 0!==t?t:this.camera.pose.longitude,a=null!==(i=e.latitude)&&void 0!==i?i:this.camera.pose.latitude,u=null!==(n=e.fov)&&void 0!==n?n:this.camera.pose.fov,c=null!==(r=e.distance)&&void 0!==r?r:this.camera.pose.distance,l=null!==(o=e.offset)&&void 0!==o?o:this.camera.pose.offset,h=this.camera.position.clone(),d=yn(s,this.camera.pose.longitude,2*Math.PI)||yn(a,this.camera.pose.latitude),p=yn(u,this.camera.pose.fov),A=yn(c,this.camera.pose.distance),f=vn(l,this.camera.pose.offset);this.camera.setFromPose({longitude:s,latitude:a,fov:u,distance:c,offset:l});var M=vn(h,this.camera.position);p&&this.emit("cameraFovUpdate",u,this.userAction),d&&this.emit("cameraDirectionUpdate",{longitude:s,latitude:a},this.userAction),M&&this.emit("cameraPositionUpdate",this.camera.position.clone(),this.userAction),(p||d||f||A)&&this.emit("cameraUpdate",{longitude:s,latitude:a,fov:u,offset:l},this.userAction),this.needsRender=!0,(Bt||0!==Rt.length)&&(Bt&&clearTimeout(Bt),Bt=window.setTimeout(Yt,200))},i.prototype.onPanGesture=function(e){},i.prototype.onTapGesture=function(e){},i.prototype.onPinchGesture=function(e){},i.prototype.onMouseWheel=function(e){},i.prototype.onMouseMove=function(e){},i.prototype.onMouseOut=function(){},i.prototype.relativeClientPosition=function(e){return bn(e,this.element,this.scissor)},i.prototype.bindEvents=function(e){var t=this,i=function(e){var i=bn(e,t.element,t.scissor);return!(Math.abs(i.x)>1||Math.abs(i.y)>1)},n=new zn.Manager(e),r=function(e){return e.session.firstInput||null};n.add(new zn.Pan({threshold:10,pointers:0})),n.add(new zn.Tap({interval:410})),n.add(new zn.Pinch({threshold:0,pointers:2}).recognizeWith(n.get("pan"))),n.on("panstart pan",(function(e){var o=r(n);o&&!i(o.center)||t.onPanGesture(e)})),n.on("tap",(function(e){var o=r(n);o&&!i(o.center)||t.onTapGesture(e)})),n.on("pinchstart pinch pinchend",(function(e){var o=r(n);o&&!i(o.center)||t.onPinchGesture(e)}));var o=function(e){var n={x:e.clientX,y:e.clientY};i(n)&&t.onMouseWheel(e)},s=function(e){if(!((n="undefined"!=typeof navigator?navigator.userAgent.toLowerCase():"node").match(/android/i)||n.match(/webos/i)||n.match(/ipad|iphone|ipod/i)||n.match(/iemobile/i)||n.match(/opera mini/i)||n.match(/blackberry/i)||n.match(/windows phone/i))){var n,r={x:e.clientX,y:e.clientY};i(r)?t.onMouseMove(e):t.onMouseOut()}},a=function(){t.onMouseOut()};In(e,o),zn.on(e,"mousemove",s),zn.on(e,"mouseout",a);return Object.assign((function(){n.destroy(),function(e,t){var i=document.mozFullScreen?"DOMMouseScroll":"mousewheel",n=!!window.addEventListener,r=!!window.attachEvent;t.__mouseWheelWrapper&&(n?e.removeEventListener(i,t.__mouseWheelWrapper,!1):r&&e.detachEvent("on"+i,t.__mouseWheelWrapper),delete t.__mouseWheelWrapper)}(e,o),zn.off(e,"mousemove",s),zn.off(e,"mouseout",a)}),{element:e})},i}(vt),Vn=function(e){function i(t){var n,r,o,s,a=this,u=i.parseArgs(t);return(a=e.call(this,u)||this).defaultLongitude=u.defaultLongitude,a.defaultLatitude=u.defaultLatitude,a.defaultFov=u.defaultFov,a.maxFov=u.maxFov,a.minFov=u.minFov,a.maxLatitude=u.maxLatitude,a.minLatitude=u.minLatitude,a.locationMotion=new Yn({x:a.camera.pose.offset.x,y:a.camera.pose.offset.y,z:a.camera.pose.offset.z,distance:a.camera.pose.distance,modelAlpha:null!==(r=null===(n=a.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==r?r:0,perspToOrtho:null!==(s=null===(o=a.model.getMaterial())||void 0===o?void 0:o.perspToOrtho)&&void 0!==s?s:0}),a}return t.__extends(i,e),i.parseArgs=function(i){var n,r,o,s,a,u,c,l=e.parseArgs.call(this,i);return t.__assign(t.__assign({},l),{defaultLongitude:null!==(n=i.defaultLongitude)&&void 0!==n?n:Math.PI/4,defaultLatitude:null!==(r=i.defaultLatitude)&&void 0!==r?r:Math.PI/4,defaultFov:null!==(o=i.defaultFov)&&void 0!==o?o:80,maxFov:null!==(s=i.maxFov)&&void 0!==s?s:120,minFov:null!==(a=i.minFov)&&void 0!==a?a:40,maxLatitude:null!==(u=i.maxLatitude)&&void 0!==u?u:+Math.PI/2,minLatitude:null!==(c=i.minLatitude)&&void 0!==c?c:-Math.PI/2})},i.initAnimationEndPose=function(e){var t,i,n,o=this.parseArgs(e),s=e.initial[1];return{longitude:null!==(t=s.longitude)&&void 0!==t?t:o.defaultLongitude,latitude:xn(null!==(i=s.latitude)&&void 0!==i?i:o.defaultLatitude,o.minLatitude,o.maxLatitude),fov:null!==(n=s.fov)&&void 0!==n?n:o.defaultFov,offset:e.model.bounding.getCenter(new r.Vector3)}},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose()},i.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},i.prototype.updateWork=function(e,t,i,n,r){return this.work=e,!0},i.prototype.updateModel=function(t){e.prototype.updateModel.call(this,t);var i=t.bounding.getCenter(new r.Vector3),n=this.cameraDistance(t);this.locationMotion.set({x:i.x,y:i.y,z:i.z,distance:n},0).catch(Qe)},i.prototype.updateTime=function(e,t){if(!this.destroyed){var i={},n={};this.locationMotion.ended||(this.locationMotion.update(e),i.modelAlpha=this.locationMotion.value.modelAlpha,i.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),n.distance=this.locationMotion.value.distance,n.offset=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),n.longitude=this.cameraMotion.value.longitude,n.latitude=this.cameraMotion.value.latitude,n.fov=this.cameraMotion.value.fov),En(i)||this.model.setMaterial(i),En(n)||this.setCamera(n)}},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1],t=this.locationMotion.getKeyFrameSegment(He())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new r.Vector3(t.value.x,t.value.y,t.value.z)}},i.prototype.initAnimation=function(e,t,i,n){var o,s,a,u=this;if(!this.destroyed){this.pending=!1,this.userAction=n;var c=this.model.bounding.getCenter(new r.Vector3),l={longitude:null!==(o=t.longitude)&&void 0!==o?o:this.defaultLongitude,latitude:xn(null!==(s=t.latitude)&&void 0!==s?s:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:xn(null!==(a=t.fov)&&void 0!==a?a:this.defaultFov,this.minFov,this.maxFov),offset:this.model.bounding.getCenter(new r.Vector3)},h=this.cameraDistance(this.model),d=Xt(l,["longitude","latitude","fov"]),p={x:c.x,y:c.y,z:c.z,distance:h,modelAlpha:1,perspToOrtho:0};this.emit("initAnimationWillStart",e,l,this.userAction),this.cameraMotion.set(d,i).catch(Qe),this.locationMotion.set(p,i).then((function(){u.emit("initAnimationEnded",e,l,u.userAction)}),(function(t){var i=jn(u.camera.pose);u.emit("initAnimationEnded",e,i,u.userAction)}))}},i.prototype.updateRenderSize=function(){this.locationMotion.set({distance:this.cameraDistance(this.model)},0)},i.prototype.cameraDistance=function(e){var t=e.bounding,i=this.camera.aspect,n=Math.pow(Math.pow(t.max.x-t.min.x+1,2)+Math.pow(t.max.y-t.min.y+1,2)+Math.pow(t.max.z-t.min.z+1,2),.5),r=n/2/Math.tan(Math.PI*this.defaultFov/360);return i<1&&(r/=i),isNaN(r)?n:r},i.prototype.getForwardPanoIndexOrNot=function(e){var t=this.work.observers.filter((function(e){return e.active})),i=this.model.intersectRaycaster(e)[0];if(!i)return null;var n=Tn(t,(function(e){return e.standingPosition.distanceTo(i.point)}),!0),r=n[0];return n[1]<5?this.work.observers.indexOf(r):null},i.prototype.coordinatesChangeWithOffset=function(e,t){var i=this.element,n=this.camera,r=i.offsetWidth,o=i.offsetHeight,s=2*t.x/r*n.fov/30,a=2*t.y/o*n.fov/30;return{longitude:en(e.longitude+s),latitude:xn(e.latitude+a,-Math.PI/2,Math.PI/2)}},i.prototype.requestInteriaMovement=function(e){var t=this;if(!1!==this.interiaMovement){var i=this.coordinatesChangeWithOffset({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude},e),n=i.longitude,r=i.latitude,o={longitude:n,latitude:r,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset};this.cameraMotion.set({longitude:n,latitude:r},0).catch(Qe);var s=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",o,!s),s?We.shared.add((function(){t.requestInteriaMovement({x:.8*e.x,y:.8*e.y})}),!0,1):this.interiaMovement=!1}},i.prototype.onPanGesture=function(e){var t=this,i=this.lastPanPoint,n=e.pointers.length;if(e.isFinal?delete this.lastPanPoint:this.lastPanPoint={pointerLength:n,x:e.center.x,y:e.center.y},void 0!==i&&i.pointerLength===n){var r=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pan",r,e.isFinal)){var o={x:e.center.x-i.x,y:e.center.y-i.y},s=this.relativeClientPosition(e.center),a=this.camera.pose.latitude<Math.PI/6||s.y<0?-1:1;o.x*=a;var u=this.coordinatesChangeWithOffset({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude},o),c={longitude:u.longitude,latitude:u.latitude,fov:this.camera.pose.fov,offset:this.camera.pose.offset};if(!this.emit("wantsPanGesture",c,e.isFinal))if(this.emit("gesture","pan",r,e.isFinal),this.emit("panGesture",c,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({longitude:c.longitude,latitude:c.latitude,fov:c.fov},0).catch(Qe),e.isFinal)this.emit("wantsInteriaPan",c)||(this.interiaMovement=!0,We.shared.getFrameTime((function(i){var n=e.velocityX*i*a,r=e.velocityY*i,o=Math.sqrt(n*n+r*r);o>100&&(n=n/o*100,r=r/o*100),t.requestInteriaMovement({x:n,y:r})})))}}},i.prototype.onPinchGesture=function(e){var t=this.lastPinchFov,i=!1;if("pinchstart"===e.type)return this.lastPinchFov=this.cameraMotion.value.fov,void delete this.lastPanPoint;if("pinchend"===e.type&&(i=!0,delete this.lastPanPoint,delete this.lastPinchFov),void 0!==t){var n=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",n,i)){var r=xn(t/e.scale,this.minFov,this.maxFov);this.emit("wantsPinchGesture",e.scale,r,i)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","pinch",n,i),this.emit("pinchGesture",e.scale,r,i),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:r},0).catch(Qe))}}},i.prototype.onMouseWheel=function(e){var t=this,i=e.delta,n=[{x:e.clientX,y:e.clientY}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=this.minFov,o=this.maxFov,s=xn(this.camera.fov-i,r,o);this.emit("wantsMouseWheel",i,s,!1)||this.emit("wantsChangeCameraFov",s)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,s,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:s},0).catch(Qe),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){delete t.onMouseWheelFinalInterval;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,s,!0)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,s,!0))}),200))}},i.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","tap",t,!0)){var i=this.relativeClientPosition(e.center),n=new r.Raycaster;if(n.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",n,i)){this.emit("gesture","tap",t,!0),this.emit("tapGesture",n,i),this.interiaMovement=!1;var o=this.getForwardPanoIndexOrNot(n);if(!Re(o)){this.emit("panoSelected",o);var s={longitude:this.camera.pose.longitude,latitude:0};this.emit("wantsMoveToPano",o,s,!0)}}}},i}(Fn);var Hn=function(e){function i(t){var n=i.parseArgs(t);return e.call(this,n)||this}return t.__extends(i,e),i.parseArgs=function(i){var n=[i.initial[0],t.__assign(t.__assign({},i.initial[1]),{longitude:0,latitude:Math.PI/2}),i.initial[2],i.initial[3]],r=t.__assign(t.__assign({},i),{initial:n,maxLatitude:Math.PI/2,minLatitude:Math.PI/2,defaultLongitude:0,defaultLatitude:Math.PI/2});return e.parseArgs.call(this,r)},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.updateModel=function(e){this.model=e,this.needsRender=!0;var t=e.bounding.getCenter(new r.Vector3);this.locationMotion.set({x:t.x,y:t.y,z:t.z,distance:this.cameraDistance(e)},0).catch(Qe)},i.prototype.initAnimation=function(e,t,i,n){var o,s=this;if(!this.destroyed){this.pending=!1,this.userAction=n;var a=this.model.bounding.getCenter(new r.Vector3),u={longitude:0,latitude:Math.PI/2,fov:xn(null!==(o=t.fov)&&void 0!==o?o:this.defaultFov,this.minFov,this.maxFov),offset:this.model.bounding.getCenter(new r.Vector3)},c=this.cameraDistance(this.model),l=Xt(u,["longitude","latitude","fov"]),h={x:a.x,y:a.y,z:a.z,distance:c,modelAlpha:1,perspToOrtho:1};this.cameraMotion.set(l,i).catch(Qe),this.locationMotion.set(h,i).then((function(){s.emit("initAnimationEnded",e,u,s.userAction)}),(function(t){var i=jn(s.camera.pose);s.emit("initAnimationEnded",e,i,s.userAction)}))}},i.prototype.getZoomOffsetFromFov=function(e,t,i){var n=new r.Vector3(0,-1,0),o=Math.tan(i/2*Math.PI/180),s=Math.tan(t.fov/2*Math.PI/180),a=(s-o)/s,u=new r.Raycaster;u.setFromCamera(e,t);var c=u.ray.direction,l=c.angleTo(n),h=this.cameraDistance(this.model),d=h*Math.tan(l),p=c.clone().setLength(h*Math.cos(l)).projectOnPlane(n),A=p.length(),f=a/A*p.x*d,M=a/A*p.z*d;return new r.Vector3(f,0,M)},i.prototype.requestInteriaMovement=function(e){},i.prototype.onPanGesture=function(e){var t=this.renderer.getSize(new r.Vector2),i=this.lastPanPoint,n=e.pointers.length;if(e.isFinal?delete this.lastPanPoint:this.lastPanPoint={pointerLength:n,x:e.center.x,y:e.center.y},void 0!==i&&i.pointerLength===n){var o=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pan",o,e.isFinal)){var s=e.center.x-i.x,a=e.center.y-i.y,u=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),c=this.camera.position.y*Math.tan(this.camera.fov/2*Math.PI/180);u.add(function(e,t){var i=new r.Vector3;return i.setFromMatrixColumn(t,0),i.multiplyScalar(-e),i}(2*s*c/t.y,this.camera.matrix)),u.add(function(e,t,i){var n=new r.Vector3;return n.setFromMatrixColumn(i,0),n.crossVectors(t,n),n.multiplyScalar(e),n}(2*a*c/t.y,this.camera.up,this.camera.matrix));var l=this.model.bounding,h=l.getCenter(new r.Vector3),d=(l.max.x-l.min.x)/this.defaultFov*this.cameraMotion.value.fov,p=(l.max.y,l.min.y,this.defaultFov,this.cameraMotion.value.fov,(l.max.z-l.min.z)/this.defaultFov*this.cameraMotion.value.fov);u.x=xn(u.x,h.x-d,h.x+d),u.z=xn(u.z,h.z-p,h.z+p),u.y=h.y;var A={longitude:0,latitude:Math.PI/2,fov:this.cameraMotion.value.fov,offset:u};this.emit("wantsPanGesture",A,e.isFinal)||(this.emit("gesture","pan",o,e.isFinal),this.emit("panGesture",A,e.isFinal),this.userAction=!0,this.locationMotion.set({x:u.x,y:u.y,z:u.z},0).catch(Qe))}}},i.prototype.onPinchGesture=function(e){var t=this.lastPinchFov,i=!1;if("pinchstart"===e.type)return this.lastPinchFov=this.cameraMotion.value.fov,void delete this.lastPanPoint;if("pinchend"===e.type&&(i=!0,delete this.lastPanPoint,delete this.lastPinchFov),void 0!==t){var n=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",n,i)){var r=xn(t/e.scale,this.minFov,this.maxFov),o=this.relativeClientPosition({x:e.center.x,y:e.center.y}),s=this.getZoomOffsetFromFov(o,this.camera,r),a=this.camera.pose.offset.clone().add(s);this.emit("wantsPinchGesture",e.scale,r,i)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","pinch",n,i),this.emit("pinchGesture",e.scale,r,i),this.userAction=!0,this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(Qe),this.cameraMotion.set({longitude:0,latitude:Math.PI/2,fov:r},0).catch(Qe))}}},i.prototype.onMouseWheel=function(e){var t=this,i=e.delta,n=[{x:e.clientX,y:e.clientY}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=xn(this.cameraMotion.value.fov-i,this.minFov,this.maxFov),o=this.relativeClientPosition({x:e.clientX,y:e.clientY}),s=this.getZoomOffsetFromFov(o,this.camera,r),a=this.camera.pose.offset.clone().add(s);this.emit("wantsMouseWheel",i,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,r,!1),this.userAction=!0,this.locationMotion.set({x:a.x,y:a.y,z:a.z},0).catch(Qe),this.cameraMotion.set({longitude:0,latitude:Math.PI/2,fov:r},0).catch(Qe),clearTimeout(this.onMouseWheelFinalInterval),this.onMouseWheelFinalInterval=window.setTimeout((function(){delete t.onMouseWheelFinalInterval;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,r,!0))}),200))}},i}(Vn);function Gn(e,t){void 0===t&&(t=!1);var i=typeof e;if("string"===i)return JSON.stringify(e);if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(e instanceof Array){for(var n="[",r=e.length-1,o=0;o<r;o++)n+=Gn(e[o],!1)+",";return r>-1&&(n+=Gn(e[o],!1)),n+"]"}if(e instanceof Object){if("function"==typeof e.toJSON)return Gn(e.toJSON(),t);var s=Object.keys(e).sort(),a=s.length;for(n="",o=0;o<a;){var u=s[o],c=Gn(e[u],!0);void 0!==c&&(o&&""!==n&&(n+=","),n+=JSON.stringify(u)+":"+c),o++}return"{"+n+"}"}switch(i){case"function":case"undefined":return t?void 0:null;case"number":return e;default:return isFinite(e)?e:null}}function Wn(e){return Ie(String(Gn(e,!1)))}var qn=function(e){function i(){var t=e.call(this)||this,i=new r.RingBufferGeometry(.04,.08,32),n=new r.MeshBasicMaterial({color:1245179,opacity:.8,side:r.DoubleSide,transparent:!0});return t.ringMesh=new r.Mesh(i,n),t.ringMesh.renderOrder=100,t.add(t.ringMesh),t}return t.__extends(i,e),i.prototype.dispose=function(){this.remove(this.ringMesh),this.ringMesh.geometry.dispose(),Array.isArray(this.ringMesh.material)?this.ringMesh.material.forEach((function(e){return e.dispose()})):this.ringMesh.material.dispose()},i}(r.Object3D);function Kn(){return new qn}var Zn=function(e){function i(t){var n=this,r=i.parseArgs(t);return(n=e.call(this,r)||this).defaultLongitude=r.defaultLongitude,n.defaultLatitude=r.defaultLongitude,n.defaultFov=r.defaultFov,n.maxFov=r.maxFov,n.minFov=r.minFov,n.maxLatitude=r.maxLatitude,n.minLatitude=r.minLatitude,n.moveSpeed=r.moveSpeed,n.intersectMeshCreator=r.intersectMeshCreator,n.interiaMovement=!1,n.intersectMesh=n.intersectMeshCreator(),n.intersectMesh.name="intersect",n.intersectMesh.visible=!1,n.helper.add(n.intersectMesh),n}return t.__extends(i,e),i.parseArgs=function(i){var n,r,o,s,a,u,c,l,h,d=e.parseArgs.call(this,i);return t.__assign(t.__assign({},d),{defaultLongitude:null!==(n=i.defaultLongitude)&&void 0!==n?n:0,defaultLatitude:null!==(r=i.defaultLatitude)&&void 0!==r?r:0,defaultFov:null!==(o=i.defaultFov)&&void 0!==o?o:90,maxFov:null!==(s=i.maxFov)&&void 0!==s?s:120,minFov:null!==(a=i.minFov)&&void 0!==a?a:40,maxLatitude:null!==(u=i.maxLatitude)&&void 0!==u?u:+Math.PI/2,minLatitude:null!==(c=i.minLatitude)&&void 0!==c?c:-Math.PI/2,moveSpeed:null!==(l=i.moveSpeed)&&void 0!==l?l:3.2,intersectMeshCreator:null!==(h=i.intersectMeshCreator)&&void 0!==h?h:Kn})},i.initAnimationEndPose=function(e){var t,i,n,r=this.parseArgs(e),o=e.initial,s=o[0],a=o[1];return{longitude:null!==(t=a.longitude)&&void 0!==t?t:r.defaultLongitude,latitude:xn(null!==(i=a.latitude)&&void 0!==i?i:r.defaultLatitude,r.minLatitude,r.maxLatitude),fov:xn(null!==(n=a.fov)&&void 0!==n?n:r.defaultFov,r.minFov,r.maxFov),offset:r.work.observers[s].position.clone()}},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.interiaMovement=!1,this.intersectMesh&&(this.helper.remove(this.intersectMesh),this.intersectMesh.dispose())},i.prototype.isReady=function(){return!this.interiaMovement&&(!this.panState&&(!this.pinchState&&(!this.mouseWheelState&&e.prototype.isReady.call(this))))},i.prototype.calculateMovingDuration=function(e,t){switch(typeof e){case"function":return e(t,this.moveSpeed);case"number":return e;case"string":return Number(e);default:return Math.floor(Math.max(Math.min(t/this.moveSpeed*1e3,1500),500))}},i.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.emit("intersectionHidden"),this.needsRender=!0},i.prototype.coordinatesForOffset=function(e){var t=this.cameraMotion.value.fov,i=this.camera.aspect,n=this.renderer.getSize(new r.Vector2);return{longitude:2*e.x/n.x*t/95*i,latitude:-2*e.y/n.y*t/95}},i.prototype.cameraBounce=function(){var e=this.cameraMotion.value,t=e.longitude,i=e.latitude,n=e.fov,r=[{progress:0,value:{longitude:t,latitude:i,fov:n}},{progress:.5,value:{longitude:t,latitude:i,fov:.98*n}},{progress:1,value:{longitude:t,latitude:i,fov:n}}];this.cameraMotion.setKeyFrames(r,500).catch(Qe)},i.prototype.requestInteriaMovement=function(e){var t=this;if(!1!==this.interiaMovement){var i=this.coordinatesForOffset(e),n=en(this.cameraMotion.value.longitude+i.longitude),r=xn(this.cameraMotion.value.latitude+i.latitude,this.minLatitude,this.maxLatitude),o={longitude:n,latitude:r,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone()};this.cameraMotion.set({longitude:n,latitude:r},0).catch(Qe);var s=Math.abs(e.x)>1||Math.abs(e.y)>1;this.emit("interiaPan",o,!s),s?We.shared.add((function(){var i={x:.9*e.x,y:.9*e.y*.7};t.requestInteriaMovement(i)}),!0,1):this.interiaMovement=!1}},i.prototype.onPanGesture=function(e){var t=this,i=this.panState,n=e.pointers.length;if(e.isFinal?delete this.panState:this.panState={pointerLength:n,x:e.center.x,y:e.center.y},void 0!==i&&i.pointerLength===n){var r=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pan",r,e.isFinal)){var o={x:e.center.x-i.x,y:e.center.y-i.y},s=this.coordinatesForOffset(o),a=en(this.cameraMotion.value.longitude+s.longitude),u=xn(this.cameraMotion.value.latitude+s.latitude,this.minLatitude,this.maxLatitude);Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(u=this.cameraMotion.value.latitude);var c={longitude:a,latitude:u,fov:this.cameraMotion.value.fov,offset:this.camera.pose.offset.clone()};if(!this.emit("wantsPanGesture",c,e.isFinal)){this.emit("gesture","pan",r,e.isFinal),this.emit("panGesture",c,e.isFinal),this.userAction=!0,this.interiaMovement=!1,this.hideIntersectMesh();var l={longitude:c.longitude,latitude:c.latitude,fov:c.fov};if(this.cameraMotion.set(l,0).catch(Qe),e.isFinal)this.emit("wantsInteriaPan",c)||We.shared.getFrameTime((function(i){t.interiaMovement=!0;var n=e.velocityX*i,r=e.velocityY*i,o=Math.sqrt(n*n+r*r);o>100&&(n=n/o*100,r=r/o*100),Math.abs(r/n)<Math.tan(20/180*Math.PI)&&(r=0),t.requestInteriaMovement({x:n,y:r})}))}}}},i.prototype.onPinchGesture=function(e){var t,i=null===(t=this.pinchState)||void 0===t?void 0:t.fov,n=e.scale,r=!1;if("pinchstart"===e.type)return this.pinchState={fov:this.cameraMotion.value.fov},void delete this.panState;if("pinchend"===e.type&&(r=!0,delete this.panState,delete this.pinchState),void 0!==i){var o=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","pinch",o,r)){var s=xn(i/n,this.minFov,this.maxFov);this.emit("wantsPinchGesture",n,s,r)||this.emit("wantsChangeCameraFov",s)||(this.emit("gesture","pinch",o,r),this.emit("pinchGesture",n,s,r),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:s},0).catch(Qe))}}},i.prototype.onMouseWheel=function(e){var t=this,i=e.delta,n=[{x:e.clientX,y:e.clientY}];if(!this.emit("wantsGesture","mouseWheel",n,!1)){var r=xn(this.cameraMotion.value.fov-i,this.minFov,this.maxFov);this.emit("wantsMouseWheel",i,r,!1)||this.emit("wantsChangeCameraFov",r)||(this.emit("gesture","mouseWheel",n,!1),this.emit("mouseWheel",i,r,!1),this.userAction=!0,this.interiaMovement=!1,this.cameraMotion.set({fov:r},0).catch(Qe),this.mouseWheelState&&clearTimeout(this.mouseWheelState.timer),this.mouseWheelState={timer:window.setTimeout((function(){delete t.mouseWheelState;t.emit("wantsGesture","mouseWheel",n,!0)||t.emit("wantsMouseWheel",i,r,!0)||t.emit("wantsChangeCameraFov",r)||(t.emit("gesture","mouseWheel",n,!0),t.emit("mouseWheel",0,r,!0))}),200)})}},i.prototype.onMouseMove=function(e){if(this.intersectMesh.parent&&!this.model.empty&&this.model.bvhs&&!0===this.model.bvhs.loaded&&!this.panState){var t=this.relativeClientPosition({x:e.clientX,y:e.clientY}),i=new r.Raycaster;if(i.setFromCamera(t,this.camera),this.emit("wantsShowIntersectionOnModel",i))this.hideIntersectMesh();else{var n=this.model.intersectRaycaster(i)[0];if(n&&n.face){var o=n.face.normal,s=o.clone().multiplyScalar(.05),a=n.point.clone().add(s);this.intersectMesh.position.copy(a);var u=a.clone().add(s);if(this.intersectMesh.lookAt(u),Math.abs(o.y)>.99){var c=this.camera.position.clone().sub(a);this.intersectMesh.rotation.z=-Math.atan2(c.z,c.x)}this.intersectMesh.visible=!0,this.needsRender=!0,this.emit("intersectionOnModelUpdate",n,this.intersectMesh)}else this.hideIntersectMesh();this.mouseMoveState={clientX:e.clientX,clientY:e.clientY}}}},i.prototype.onMouseOut=function(){this.intersectMesh.parent&&!0===this.intersectMesh.visible&&this.hideIntersectMesh()},i}(Fn),Xn=$e(),Jn=new r.Texture(Xn);Xn.onload=function(){return Jn.needsUpdate=!0},Xn.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAR9JREFUOBF10kFOAzEMBdCZFhCbrrgAN+NqHIULsWKDKO3gF+VHoZpa+rXjfH87nq7btr0ty3KZ8FsxnHeQPL748lA/x0Jsq+AwYe0X8nDtGA33BEJUHIEKW/EorHOLI7BHNlkEbju38YkQAIRZxFkHz2HOirKDxNcIzG+fu/6oLiNmqc5ZrlwTeKyAgJF14tMZmSn87pBrxeX/CRABgk/dl1s+C18dio2Pp9nmCQru2UtdvN+7lI9AFsgb3zNMcSp8FF4LYs3UhLfOAvkDJffci8q1J/ByRLKnQ8gUJUFOd2SeZYliCxwiyJCxCbhUGFKF4zPm61hiq7sVyJnPmATyR5IzLSNyDNEFRCDnkAmA8U2RfCsIefYhDeKOQLv7A+l1ZTyjymNxAAAAAElFTkSuQmCC";var $n=new r.RingBufferGeometry(.06,.07,32).rotateX(-Math.PI/2),er=new r.MeshBasicMaterial({map:Jn,transparent:!0});function tr(){if("undefined"==typeof document){var e=new r.Texture;return Object.assign(e,{draw:function(e){},retain:!1,pool:!1})}var t=document.createElement("canvas"),i=512,n=256,o=190;t.setAttribute("width",String(i)),t.setAttribute("height",String(i));var s=new r.Texture(t),a=t.getContext("2d");if(!a)throw Error("cannot create canvas context");var u=a.createRadialGradient(n,n,150,n,n,0);function c(){var e=Math.PI/12,t=2*Math.PI/3;a&&(a.beginPath(),a.arc(n,n,o,0*t,1*t-e),a.stroke(),a.beginPath(),a.arc(n,n,o,1*t,2*t-e),a.stroke(),a.beginPath(),a.arc(n,n,o,2*t,3*t-e),a.stroke())}function l(e){a&&(a.clearRect(0,0,i,i),a.lineWidth=20,-1!==e&&(a.globalCompositeOperation="source-over",a.strokeStyle="rgba(255, 255, 255, 1)",c(),a.globalCompositeOperation="source-in",a.beginPath(),a.arc(n,n,o,0,2*Math.PI*e),a.strokeStyle="rgba(255, 255, 255, 1)",a.stroke(),a.globalCompositeOperation="source-over",a.strokeStyle="rgba(255, 255, 255, "+(e?.5:1)+")",c()),a.beginPath(),a.arc(n,n,150,0,2*Math.PI),a.closePath(),a.fillStyle=u,a.fill(),a.fillStyle="rgba(255, 255, 255, 0.01)",a.fillRect(0,0,i,i),s.needsUpdate=!0)}return u.addColorStop(0,"rgba(255, 255, 255, 1)"),u.addColorStop(.15,"rgba(255, 255, 255, 1)"),u.addColorStop(.15,"rgba(255, 255, 255, 0.5)"),u.addColorStop(.4,"rgba(255, 255, 255, 0.0)"),u.addColorStop(1,"rgba(255, 255, 255, 0.0)"),l(0),Object.assign(s,{draw:l,retain:!1,pool:!1})}var ir=[];var nr=tr();nr.draw(0);var rr=tr();rr.draw(1);var or=tr();or.draw(-1);var sr=new r.CircleBufferGeometry(.12,32).rotateX(-Math.PI/2);function ar(){return new r.Mesh(sr,new r.MeshBasicMaterial({map:nr,transparent:!0}))}var ur=function(e){function i(){var t=e.call(this)||this;return t.loading=!1,t.disabled=!1,t.current=!1,t.progress=0,t.opacity=1,t.centerMesh=ar(),t.centerMesh.position.y+=.01,t.add(t.centerMesh),t.loadingMesh=new r.Mesh($n,er),t.loadingMesh.position.y+=.011,t.needsRender=!0,t}return t.__extends(i,e),i.prototype.setLoading=function(e){var t=this;this.loading=e,this.stopInterval&&this.stopInterval(),e?(this.add(this.loadingMesh),this.stopInterval=We.shared.add((function(){t.loadingMesh.rotateOnAxis(new r.Vector3(0,1,0),.1),t.needsRender=!0}))):this.remove(this.loadingMesh),this.needsRender=!0},i.prototype.setDisabled=function(e){function t(t){var i=t.map;!0===i.pool&&(i.retain=!1),t.map=e?or:nr}this.disabled=e,Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){t(e)})):t(this.centerMesh.material),this.needsRender=!0},i.prototype.setProgress=function(e){function t(e,t){var i=e.map;0===t||1===t?(!0===i.pool&&(i.retain=!1),0===t&&(e.map=nr),1===t&&(e.map=rr)):(!0!==i.pool&&(e.map=function(){for(var e=0,t=ir;e<t.length;e++){var i=t[e];if(!1===i.retain)return i}var n=tr();return n.pool=!0,n.retain=!0,ir.push(n),n}()),e.map.draw(t))}this.setLoading(!1),this.setDisabled(!1),this.progress=e=xn(e,0,1),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(i){t(i,e)})):t(this.centerMesh.material,e),this.needsRender=!0},i.prototype.setOpacity=function(e){this.opacity=e=xn(e,0,1),this.current&&(e=1),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(t){t.opacity=e})):this.centerMesh.material.opacity=e,this.needsRender=!0},i.prototype.setCurrent=function(e){this.current=e,this.setOpacity(this.opacity)},i.prototype.dispose=function(){this.setLoading(!1),this.remove(this.centerMesh),this.remove(this.loadingMesh),this.centerMesh.geometry.dispose(),Array.isArray(this.centerMesh.material)?this.centerMesh.material.forEach((function(e){e.dispose()})):this.centerMesh.material.dispose(),this.loadingMesh.geometry.dispose(),Array.isArray(this.loadingMesh.material)?this.loadingMesh.material.forEach((function(e){e.dispose()})):this.loadingMesh.material.dispose()},i}(r.Object3D);function cr(){return new ur}var lr;var hr,dr=function(e){function i(t,i){return void 0===i&&(i=.5),e.call(this,t,{uniforms:{inputBuffer:new r.Uniform(null),scale:new r.Uniform(i)},fragment:"\n#include <common>\nuniform sampler2D inputBuffer;\nuniform float scale;\nvarying vec2 vUv;\n\nvoid main() {\n float u = (vUv.x - 0.5) * scale + 0.5;\n float v = (vUv.y - 0.5) * scale + 0.5;\n vec3 rgb = texture2D(inputBuffer, vec2(u, v)).rgb;\n float luminance = clamp(linearToRelativeLuminance(rgb), 0.1, 0.9);\n gl_FragColor = vec4(luminance);\n}\n"})||this}return t.__extends(i,e),i}(Cn),pr=function(e){function i(t,i){void 0===i&&(i=.002);var n=e.call(this,t,{uniforms:{targetBuffer:new r.Uniform(null),inputBuffer:new r.Uniform(null),step:new r.Uniform(i)},fragment:"\n uniform sampler2D targetBuffer;\n uniform sampler2D inputBuffer;\n uniform float step;\n varying vec2 vUv;\n void main() {\n\n #ifdef GL_EXT_shader_texture_lod\n #if __VERSION__ < 300\n float target = texture2DLodEXT(targetBuffer, vUv, 5.0).r;\n #else\n float target = textureLod(targetBuffer, vUv, 5.0).r;\n #endif\n #else\n float target = texture2D(targetBuffer, vUv).r;\n #endif\n float current = texture2D(inputBuffer, vUv).r;\n\n float result;\n if (abs(target - current) < step) {\n result = target;\n } else if (target - current > 0.0) {\n result = current + step;\n } else {\n result = current - step;\n }\n gl_FragColor = vec4(result, result, result, 1.0);\n }\n "})||this;return n.material.extensions.shaderTextureLOD=!0,n}return t.__extends(i,e),Object.defineProperty(i.prototype,"targetBuffer",{get:function(){return this.material.uniforms.targetBuffer.value},set:function(e){this.material.uniforms.targetBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"step",{get:function(){return this.material.uniforms.step.value},set:function(e){this.material.uniforms.step.value=e},enumerable:!1,configurable:!0}),i}(Cn),Ar=function(e){function i(t){var i=e.call(this,t,{uniforms:{inputBuffer:new r.Uniform(null),luminanceAdaptiveBuffer:new r.Uniform(null),progress:new r.Uniform(0)},fragment:"\n #include <common>\n uniform sampler2D inputBuffer;\n uniform sampler2D luminanceAdaptiveBuffer;\n uniform float progress;\n varying vec2 vUv;\n\n void main() {\n float middleGrey = 0.8;\n float whitePoint = 8.0;\n float exposure = 1.5;\n vec4 inputColor = texture2D(inputBuffer, vUv);\n vec3 rgb = inputColor.rgb * exposure;\n float alpha = inputColor.a;\n float luminance = linearToRelativeLuminance(rgb);\n float lumAvg = texture2D(luminanceAdaptiveBuffer, vec2(0.5)).r;\n float lumScaled = (luminance * middleGrey) / max(lumAvg, 1e-6);\n float lumCompressed = lumScaled * (1.0 + lumScaled / (whitePoint * whitePoint));\n lumCompressed /= (1.0 + lumScaled);\n rgb = clamp(lumCompressed * rgb, 0.0, 1.0);\n gl_FragColor = mix(inputColor, vec4(rgb, alpha), progress * 0.9);\n }\n "})||this;return i.material.transparent=!0,i}return t.__extends(i,e),Object.defineProperty(i.prototype,"luminanceAdaptiveBuffer",{get:function(){return this.material.uniforms.luminanceAdaptiveBuffer.value},set:function(e){this.material.uniforms.luminanceAdaptiveBuffer.value=e},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"progress",{get:function(){return this.material.uniforms.progress.value},set:function(e){this.material.uniforms.progress.value=e},enumerable:!1,configurable:!0}),i}(Cn),fr=function(e){function i(t){var i=e.call(this,t)||this;return i.enableTime=He(),i.renderer=t,i.valuePass=new Pn(i.renderer),i.luminancePass=new dr(i.renderer,.75),i.nextStepPass=new pr(i.renderer,.002),i.luminanceAdaptivePass=new Ar(i.renderer),i}return t.__extends(i,e),i.prototype.render=function(e){if(!this.enable)return this.enableTime=null,void this.copyPass.render(e);null===this.enableTime&&(this.enableTime=He()),this.luminanceTargetBuffer||(this.luminanceTargetBuffer=new r.WebGLRenderTarget(128,128,{minFilter:r.LinearMipmapLinearFilter,magFilter:r.LinearFilter,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1,format:r.RGBAFormat,generateMipmaps:!0}),this.nextStepPass.targetBuffer=this.luminanceTargetBuffer.texture),this.luminancePass.render(e,this.luminanceTargetBuffer),this.luminancePrevBuffer||(this.luminancePrevBuffer=new r.WebGLRenderTarget(1,1,{minFilter:r.NearestFilter,magFilter:r.NearestFilter,type:r.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new r.Vector3(.5,.5,.5),this.luminancePrevBuffer)),this.luminanceNextBuffer||(this.luminanceNextBuffer=new r.WebGLRenderTarget(1,1,{minFilter:r.NearestFilter,magFilter:r.NearestFilter,type:r.HalfFloatType,encoding:this.renderer.outputEncoding,stencilBuffer:!1,depthBuffer:!1}),this.valuePass.render(new r.Vector3(.5,.5,.5),this.luminanceNextBuffer),this.luminanceAdaptivePass.luminanceAdaptiveBuffer=this.luminanceNextBuffer.texture),this.copyPass.render(this.luminanceNextBuffer,this.luminancePrevBuffer),this.nextStepPass.render(this.luminancePrevBuffer,this.luminanceNextBuffer),this.luminanceAdaptivePass.progress=Math.min((He()-this.enableTime)/3e3,1),this.luminanceAdaptivePass.render(e)},i.prototype.dispose=function(){var e,t,i;null===(e=this.luminanceTargetBuffer)||void 0===e||e.dispose(),null===(t=this.luminancePrevBuffer)||void 0===t||t.dispose(),null===(i=this.luminanceNextBuffer)||void 0===i||i.dispose(),this.copyPass.dispose(),this.luminancePass.dispose(),this.nextStepPass.dispose(),this.luminanceAdaptivePass.dispose()},i}(Bn),Mr=["up","down","left","right","front","back"],gr=null!==(hr=Math.SQRT1_2)&&void 0!==hr?hr:Math.sqrt(2),yr={up:new r.Quaternion(gr,0,0,gr),down:new r.Quaternion(-gr,0,0,gr),left:new r.Quaternion(0,gr,0,gr),right:new r.Quaternion(0,-gr,0,gr),front:new r.Quaternion(0,0,0,1),back:new r.Quaternion(0,1,0,0)},mr=(new r.Quaternion).setFromAxisAngle(new r.Vector3(0,1,0),Math.PI),vr=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),Nr=new Float32Array([0,0,1,0,0,1,1,1]),Dr=new Uint8Array([0,1,2,1,3,2]),wr=new r.BufferGeometry;wr.setAttribute("position",new r.BufferAttribute(vr,3)),wr.setAttribute("uv",new r.BufferAttribute(Nr,2)),wr.setIndex(new r.BufferAttribute(Dr,1));var Tr=function(e){function i(){var t=e.call(this,{uniforms:{map:{value:null},luminanceMap:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\n#if defined(USE_LUMINANCE)\nuniform sampler2D luminanceMap;\n#endif\nuniform sampler2D map;\nvarying vec2 vUv;\n\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n #if defined(USE_LUMINANCE)\n gl_FragColor.a = 1.0 - texture2D(luminanceMap, vUv).r;\n #endif\n}\n"})||this;return t.depthTest=!1,t.depthWrite=!1,t.blending=r.NoBlending,t.map=t.uniforms.map.value,t.luminanceMap=t.uniforms.luminanceMap.value,Object.defineProperties(t,{map:{get:function(){return this.uniforms.map.value},set:function(e){this.uniforms.map.value=e}},luminanceMap:{get:function(){return this.uniforms.luminanceMap.value},set:function(e){this.uniforms.luminanceMap.value=e,this.defines.USE_LUMINANCE=null!==e}}}),t}return t.__extends(i,e),i}(r.ShaderMaterial),xr=function(e){function i(){var t=null!==e&&e.apply(this,arguments)||this;return t.level=0,t.sideCount=0,t.col=0,t.row=0,t.index=0,t.type="up",t}return t.__extends(i,e),i}(r.Box3),Er=function(e){function i(t,i){var n=this,o=new Tr;return o.visible=!1,(n=e.call(this,wr,o)||this).position.copy(t.getCenter(new r.Vector3)),n.quaternion.copy(yr[t.type]),n.scale.setScalar(1/Math.pow(2,t.level)),n.level=t.level,n.activeTime=-1,n.disposed=!1,n.needsRender=!1,n.frustumCulled=!1,i.then((function(e){var t=e[0],i=e[1];n.disposed?(t.dispose(),null==i||i.dispose()):(n.material.map=t,n.material.luminanceMap=i,n.material.needsUpdate=!0,n.material.visible=!0,n.needsRender=!0)})).catch(Qe),n}return t.__extends(i,e),i.getBox=function(e,t,i){var n=new xr,r=Math.pow(2,e),o=1/r,s=i%r,a=Math.floor(i/r);switch(n.level=e,n.index=i,n.sideCount=r,n.row=a,n.col=s,n.type=t,t){case"up":n.min.y=.5,n.max.y=.5,n.min.x=+s*o-.5,n.max.x=+s*o-.5+o,n.min.z=-a*o+.5-o,n.max.z=-a*o+.5;break;case"down":n.min.y=-.5,n.max.y=-.5,n.min.x=+s*o-.5,n.max.x=+s*o-.5+o,n.min.z=+a*o-.5,n.max.z=+a*o-.5+o;break;case"left":n.min.x=-.5,n.max.x=-.5,n.min.z=-s*o+.5-o,n.max.z=-s*o+.5,n.min.y=-a*o+.5-o,n.max.y=-a*o+.5;break;case"right":n.min.x=.5,n.max.x=.5,n.min.z=+s*o-.5,n.max.z=+s*o-.5+o,n.min.y=-a*o+.5-o,n.max.y=-a*o+.5;break;case"front":n.min.z=-.5,n.max.z=-.5,n.min.x=+s*o-.5,n.max.x=+s*o-.5+o,n.min.y=-a*o+.5-o,n.max.y=-a*o+.5;break;case"back":n.min.z=.5,n.max.z=.5,n.min.x=-s*o+.5-o,n.max.x=-s*o+.5,n.min.y=-a*o+.5-o,n.max.y=-a*o+.5}return n},i.prototype.dispose=function(){var e;this.material.map&&(this.material.map.dispose(),null===(e=this.material.luminanceMap)||void 0===e||e.dispose()),this.material.dispose()},i}(r.Mesh),jr=function(e){function i(){var t=e.call(this)||this;return t.needsRender=!1,t.name="tiling",t}return t.__extends(i,e),i}(r.Group),zr=function(){function e(e,t){this.disposed=!1,this.textureLoader=new xi(e),this.level=0,this.panoIndex=0,this.tiles=[],this.resource=[],this.luminance=null,this.imageOptions=t,this.object=new jr}return e.prototype.setAllowHosts=function(e){this.textureLoader.setAllowHosts(e)},e.prototype.setNetworkSubscribe=function(e){this.textureLoader.setNetworkSubscribe(e)},e.prototype.cleanup=function(){for(var e=0;e<this.tiles.length;e++)if(this.tiles[e]){var t=this.tiles[e],i="level-group:"+e,n=this.object.getObjectByName(i);for(var r in t){var o=t[r];o.dispose(),n.remove(o),delete t[r]}}},e.prototype.setRotation=function(e){this.object.quaternion.multiplyQuaternions(e,mr),this.object.needsRender=!0},e.prototype.setResource=function(e){if(!this.disposed&&this.resource!==e){this.cleanup(),this.resource=e;for(var t=0;t<e.length;t++){var i=e[t].level;this.tiles[i]={};var n="level-group:"+i,o=this.object.getObjectByName(n);o||((o=new r.Group).name=n,o.renderOrder=-2),this.object.add(o)}this.object.needsRender=!0}},e.prototype.setLuminance=function(e){this.luminance=e},e.prototype.getTileResources=function(e){for(var t,i=null!==(t=this.imageOptions.size)&&void 0!==t?t:2048,n=[],r=this.resource.length-1;r>=0;r--)this.resource[r].level<=e&&512*Math.pow(2,this.resource[r].level)>i&&n.unshift(this.resource[r]);return n},e.prototype.update=function(e,i,n){var o=this;if(!this.disposed){this.object.position.copy(e.position),this.level=i;var s=(new r.PerspectiveCamera).copy(e);s.position.set(0,0,0),s.quaternion.premultiply(this.object.quaternion.clone().inverse()),s.updateMatrixWorld(!0),s.updateProjectionMatrix();for(var a=s.getWorldDirection(new r.Vector3),u=(new r.Frustum).setFromProjectionMatrix((new r.Matrix4).multiplyMatrices(s.projectionMatrix,s.matrixWorldInverse)),c=this.getTileResources(i),l=function(e){if(e){for(var i=[],s=e.level,c=Math.pow(2,s),l=c*c,d=h.object.getObjectByName("level-group:"+s),p=0,A=Mr;p<A.length;p++)for(var f=A[p],M=0;M<l;M++){var g=Er.getBox(s,f,M);u.intersectsBox(g)&&i.push(g)}i.sort((function(e,t){return e.getCenter(new r.Vector3).angleTo(a)-t.getCenter(new r.Vector3).angleTo(a)}));for(var y=[],m=0,v=i;m<v.length;m++){var N=(g=v[m]).sideCount,D=g.row,w=g.col,T=(f=g.type,"tile-level:"+s+"-face:"+f+"-row:"+D+"-col:"+w);if(!h.tiles[s][T]){var x=e[f],E=e.size/N,j=[E*w,E*D,E,E],z=t.__assign({key:"pano_tile."+h.panoIndex+"."+f+"."+s+"."+D+"."+w,basisLoaderInitialized:wi.isInitialized(),cut:j},Xt(h.imageOptions,["format"]));s<=1&&("jpg"===z.format||/\.jpg$/.test(x))?(1024!==E&&(z.size=1024),z.quality=70):512!==E&&(z.size=512);var I=h.imageOptions.transform?h.imageOptions.transform(x,z):ti(x,z),b=h.textureLoader.load(I,{magFilter:r.LinearFilter,minFilter:r.NearestFilter,preInit:!1}).then((function(e){return e.body})),O=null;if(h.luminance){var S=h.luminance[f],L=t.__assign(t.__assign({},z),{size:256,key:"pano_tile_luminance."+h.panoIndex+"."+f+"."+s+"."+D+"."+w}),k=h.imageOptions.transform?h.imageOptions.transform(S,L):ti(S,L);O=h.textureLoader.load(k,{format:r.LuminanceFormat,preInit:!1}).then((function(e){return e.body})).catch((function(){return null}))}(_=h.tiles[s][T]=new Er(g,Promise.all([b,O]))).name=T,_.renderOrder=s,d.add(_)}h.tiles[s][T].activeTime=n,y.push(T)}for(var C=0,P=Object.keys(h.tiles[s]).sort((function(e,t){return o.tiles[s][t].activeTime-o.tiles[s][e].activeTime})).slice(Math.max(24,y.length));C<P.length;C++){T=P[C];var _=h.tiles[s][T];d.remove(_),_.dispose(),delete h.tiles[s][T]}}},h=this,d=0,p=c;d<p.length;d++){l(p[d])}for(var A=0;A<this.tiles.length;A++)if(this.tiles[A]){var f=c.length>0&&A<=c[c.length-1].level;for(var M in this.tiles[A])this.tiles[A][M].visible=f}this.object.needsRender=!0}},e.prototype.dispose=function(){this.cleanup(),this.resource=[],this.disposed=!0},e}(),Ir=new Float32Array([-1,1,1,-1,1,-1,-1,-1,1,-1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,1,1,1,-1,1,1,1,-1,1,-1,-1,1,-1,1,-1,1,1,-1,-1,-1,-1,1,-1,-1]),br=new Uint8Array([0,2,1,2,3,1,4,6,5,6,7,5,8,10,9,10,11,9,12,14,13,14,15,13,16,18,17,18,19,17,20,22,21,22,23,21]),Or=new r.BufferGeometry;Or.setAttribute("position",new r.BufferAttribute(Ir,3)),Or.setIndex(new r.BufferAttribute(br,1));var Sr=function(){function e(){this.material=new r.ShaderMaterial({vertexShader:"\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n",fragmentShader:"\nuniform vec2 size;\nuniform mat4 matrix;\nuniform float alpha;\nuniform sampler2D map;\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n vec3 cameraToVertex = worldPosition - cameraPosition;\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * matrix;\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n #endif\n}\n",uniforms:{size:new r.Uniform(null),matrix:new r.Uniform(null),alpha:new r.Uniform(null),map:new r.Uniform(null)},depthTest:!1,depthWrite:!1,defines:{USE_PANO_VIDEO:!1},blending:r.CustomBlending}),this.object=new r.Mesh(Or,this.material),this.object.visible=!1,this.object.renderOrder=-1,this.object.frustumCulled=!1}return e.prototype.setMaterial=function(e){e?(this.material.uniforms.size.value=e.size,this.material.uniforms.matrix.value=e.matrix,this.material.uniforms.alpha.value=e.alpha,this.material.uniforms.map.value=e.map):(this.material.uniforms.size.value=null,this.material.uniforms.matrix.value=null,this.material.uniforms.alpha.value=null,this.material.uniforms.map.value=null);var t=null!==e;t!==this.material.defines.USE_PANO_VIDEO&&(this.material.defines.USE_PANO_VIDEO=t,this.material.needsUpdate=!0,this.object.visible=null!==e)},e.prototype.dispose=function(){this.material.dispose()},e}(),Lr=(new r.Matrix4).makeRotationAxis(new r.Vector3(0,1,0),Math.PI),kr=new r.Vector3(-1,1,1),Cr=function(e){function i(t){var n,r,o,s,a,u,c,l=this,h=i.parseArgs(t);(l=e.call(this,h)||this).initAnimationed=!1,l.currentPanoIndex=h.initial[0],l.maxAccessibleDistance=h.maxAccessibleDistance,l.panoTapTriggerRadius=h.panoTapTriggerRadius,l.panoCircleMeshCreator=h.panoCircleMeshCreator,l.tileLevelForFov=h.tileLevelForFov;var d=l.model.getMaterial()||{},p=d.pano0,A=d.pano1;p&&(null==A?void 0:A.map)!==p.map&&(l.model.setMaterial({pano0:A}),p.map.dispose(),null===(n=p.luminanceMap)||void 0===n||n.dispose()),l.boundingMesh=l.generateBoundingMesh(),l.boundingMesh.setMaterial(l.model.getMaterial()||{}),l.boundingMesh.visible=!1,l.scene.add(l.boundingMesh),l.panoMeshes=[],l.updatePanoMeshes(),l.locationMotion=new Yn({count:0,distance:l.camera.pose.distance,modelAlpha:null!==(o=null===(r=l.model.getMaterial())||void 0===r?void 0:r.modelAlpha)&&void 0!==o?o:0,perspToOrtho:null!==(a=null===(s=l.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==a?a:0}),l.panoResources={},l.panoResources[l.locationMotion.keyframes[0].key=l.locationMotion.keyframes[1].key=Fe()]={panoIndex:l.currentPanoIndex,workCode:l.work.workCode,panoPicture:null!==(c=null===(u=l.model.getMaterial())||void 0===u?void 0:u.pano1)&&void 0!==c?c:null,position:l.camera.pose.offset.clone(),effect:"fly"};var f={allowHosts:l.work.allowHosts,networkSubscribe:l.networkSubscribe};return l.textureLoader=new xi(f),l.tiling=new zr(f,l.imageOptions),l.scene.add(l.tiling.object),l.panoVideo=new Sr,l.scene.add(l.panoVideo.object),l}return t.__extends(i,e),i.parseArgs=function(i){var n,o,s,a,u=e.parseArgs.call(this,i);return t.__assign(t.__assign({},u),{maxAccessibleDistance:null!==(n=i.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(o=i.panoTapTriggerRadius)&&void 0!==o?o:1,panoCircleMeshCreator:null!==(s=i.panoCircleMeshCreator)&&void 0!==s?s:cr,tileLevelForFov:null!==(a=i.tileLevelForFov)&&void 0!==a?a:function(e){var t,i=u.renderer.getSize(new r.Vector2),n=2*Math.atan(Math.tan(e/180*Math.PI/2)*u.camera.aspect)/Math.PI*180,o=Math.max(i.width/n,i.height/e),s=null!==(t=u.imageOptions.size)&&void 0!==t?t:2048;return s<8192&&o>18?4:s<4096&&o>14?3:s<2048&&o>10?2:s<1024&&o>6?1:0}})},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.destroy=function(){var t,i,n=this;e.prototype.destroy.call(this),this.scene.remove(this.tiling.object),this.tiling.dispose(),this.locationMotion.dispose(),delete this.pendingTextureTask,this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoMeshes&&(this.panoMeshes.forEach((function(e){n.helper.remove(e),e.dispose()})),this.panoMeshes.length=0),this.interiaMovement=!1;var r=this.videoTexture.image;r.pause(),r.oncanplay=function(){},r.ontimeupdate=function(){},this.scene.remove(this.panoVideo.object),this.panoVideo.setMaterial(null),this.panoVideo.dispose();for(var o=null!==(t=this.model.getMaterial())&&void 0!==t?t:{},s=o.pano0,a=o.pano1,u=0,c=Object.keys(this.panoResources);u<c.length;u++){var l=c[u],h=this.panoResources[l];if(h.panoPicture){var d=h.panoPicture.map;d&&d!==(null==s?void 0:s.map)&&d!==(null==a?void 0:a.map)&&(d.dispose(),null===(i=h.panoPicture.luminanceMap)||void 0===i||i.dispose(),h.panoPicture=null)}delete this.panoResources[l]}},i.prototype.isReady=function(){return!0===this.locationMotion.ended&&e.prototype.isReady.call(this)},i.prototype.updateWork=function(e,t,i,n,r){this.userAction=r,this.work=e,this.currentPanoIndex=t,this.textureLoader.setAllowHosts(this.work.allowHosts),this.tiling.setAllowHosts(this.work.allowHosts);var o={},s=!0;this.boundingMesh&&(o=this.boundingMesh.getMaterial()||{},s=this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(!0),this.boundingMesh.visible=s,this.boundingMesh.setMaterial(o),this.scene.add(this.boundingMesh),this.hideIntersectMesh(),this.updatePanoMeshes(!1);for(var a=0,u=this.panoMeshes;a<u.length;a++){u[a].visible=!1}return this.moveToPano(t,{effect:"fade",duration:n,longitude:i.longitude,latitude:i.latitude,fov:i.fov},r),!0},i.prototype.updateModel=function(e){var t=this;this.model=e;var i={};this.boundingMesh&&(i=this.boundingMesh.getMaterial()||{},this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(),this.boundingMesh.visible=!0,this.boundingMesh.name="bounding",this.boundingMesh.setMaterial(i),this.scene.add(this.boundingMesh),this.needsRender=!0,Ft((function(){t.updatePanoMeshes(),t.needsRender=!0}))},i.prototype.updateTime=function(e,t){var i,n,o,s,a,u,c;if(!this.destroyed){var l={},h={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var d=this.locationMotion.getKeyFrameSegment(e),p=d[0],A=d[1],f=this.panoResourceFromLocationMotionKeyframe(p),M=this.panoResourceFromLocationMotionKeyframe(A),g=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),y=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),m=(new r.Vector3).copy(f.position),v=(new r.Vector3).copy(M.position),N=this.locationMotion.value.count-A.value.count+1;l.modelAlpha=this.locationMotion.value.modelAlpha,l.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),l.useBlackTransition="instant"===M.effect,M.panoPicture&&(N<1?f.panoPicture&&(l.pano0=f.panoPicture):l.pano0=M.panoPicture,l.pano1=M.panoPicture),"fade"===M.effect&&(l.pano0&&f.panoPicture&&(l.pano0={map:l.pano0.map,luminanceMap:l.pano0.luminanceMap,matrix:f.panoPicture.matrix.clone().setPosition(M.position)}),m.copy(v)),l.progress=N,h.distance=this.locationMotion.value.distance,h.offset=new r.Vector3(m.x+(v.x-m.x)*N,m.y+(v.y-m.y)*N,m.z+(v.z-m.z)*N);for(var D=[],w=[],T=0,x=this.locationMotion.keyframes;T<x.length;T++){var E=x[T],j=E.key,z=E.progress;void 0!==j&&(D.push(j),z>=this.locationMotion.progress&&w.push(j))}for(var I=0,b=Object.keys(this.panoResources);I<b.length;I++){var O=b[I];if(!(w.indexOf(O)>=0)){var S=this.panoResources[O];if(S.panoPicture){var L=S.panoPicture.map;if(L){if(L===(null===(i=l.pano0)||void 0===i?void 0:i.map))continue;if(L===(null===(n=l.pano1)||void 0===n?void 0:n.map))continue;L.dispose(),null===(o=S.panoPicture.luminanceMap)||void 0===o||o.dispose(),S.panoPicture=null}}D.indexOf(O)>=0||delete this.panoResources[O]}}f.workCode===M.workCode?this.currentPanoIndex=N<.5?f.panoIndex:M.panoIndex:this.currentPanoIndex=M.panoIndex,this.emit("movingToPano",y.panoIndex,g.panoIndex,this.locationMotion.progress),this.tiling.object.visible=!1}else this.tiling.object.visible=!1!==this.tileLevelForFov&&void 0!==this.work.observers[this.currentPanoIndex]&&mn(this.camera.position,this.work.observers[this.currentPanoIndex].position);if(!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),h.longitude=this.cameraMotion.value.longitude,h.latitude=this.cameraMotion.value.latitude,h.fov=this.cameraMotion.value.fov),!1===En(l)&&(this.model.setMaterial(l),this.boundingMesh.setMaterial(l)),!1===En(h)&&this.setCamera(h),this.boundingMesh.visible=Boolean(null===(s=this.boundingMesh.getMaterial())||void 0===s?void 0:s.pano0)&&this.boundingMesh.boundingBox.containsPoint(this.camera.position),this.tileLevelForFov&&this.locationMotion.ended&&this.initAnimationed&&this.work.observers[this.currentPanoIndex]){var k=this.work.observers[this.currentPanoIndex];this.enableIOSEDR&&this.tiling.setLuminance(null!==(a=k.images.luminance)&&void 0!==a?a:null),this.tiling.panoIndex=this.currentPanoIndex,this.tiling.setResource(null!==(c=null===(u=k.images)||void 0===u?void 0:u.tiles)&&void 0!==c?c:[]),this.tiling.setRotation(k.quaternion),this.tiling.update(this.camera,this.tileLevelForFov(this.camera.fov),e)}this.panoVideo.object.position.copy(this.camera.position)}},i.prototype.render=function(t){var i=this.work.observers[this.currentPanoIndex];i&&i.video&&(this.needsRender=!0),e.prototype.render.call(this,t)},i.prototype.postProcessing=function(e,t){if(!this.destroyed)return this.effect||(this.effect=new fr(this.renderer)),this.effect.render(e,t)},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1],t=this.locationMotion.getKeyFrameSegment(He())[1],i=this.panoResourceFromLocationMotionKeyframe(t),n=this.work.observers[i.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone()}},i.prototype.moveToPano=function(e,i,n){var o,s,a,u=this,c=this.work.observers[e],l=t.__assign({key:"pano."+e,basisLoaderInitialized:wi.isInitialized()},Xt(this.imageOptions,["format","size","quality"])),h=null!==(o=this.imageOptions.transform)&&void 0!==o?o:ti,d={right:h(c.images.right,t.__assign(t.__assign({},l),{key:l.key+".right"})),left:h(c.images.left,t.__assign(t.__assign({},l),{key:l.key+".left"})),up:h(c.images.up,t.__assign(t.__assign({},l),{key:l.key+".up"})),down:h(c.images.down,t.__assign(t.__assign({},l),{key:l.key+".down"})),front:h(c.images.front,t.__assign(t.__assign({},l),{key:l.key+".front"})),back:h(c.images.back,t.__assign(t.__assign({},l),{key:l.key+".back"}))},p={key:"pano_luminance."+e,basisLoaderInitialized:wi.isInitialized(),size:l.size?l.size/2:1024},A=this.enableIOSEDR&&c.images.luminance?{right:h(c.images.luminance.right,t.__assign(t.__assign({},p),{key:p.key+".right"})),left:h(c.images.luminance.left,t.__assign(t.__assign({},p),{key:p.key+".left"})),up:h(c.images.luminance.up,t.__assign(t.__assign({},p),{key:p.key+".up"})),down:h(c.images.luminance.down,t.__assign(t.__assign({},p),{key:p.key+".down"})),front:h(c.images.luminance.front,t.__assign(t.__assign({},p),{key:p.key+".front"})),back:h(c.images.luminance.back,t.__assign(t.__assign({},p),{key:p.key+".back"}))}:null,f="pano:"+Wn(d);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===f)return;var M=this.pendingTextureTask.panoIndex;null===(s=this.panoMeshes[M])||void 0===s||s.setProgress(0),this.emit("textureAbort",M,c),this.pendingTextureTask.onError(new Error("texture aborted"))}var g,y=this.model.getMaterial()||{},m=y.pano0,v=y.pano1;if((null==m?void 0:m.map.name)===f?g=m:(null==v?void 0:v.map.name)===f&&(g=v),g){var N={panoIndex:e,workCode:this.work.workCode,effect:null!==(a=i.effect)&&void 0!==a?a:"fly",panoPicture:{map:g.map,luminanceMap:g.luminanceMap,matrix:(new r.Matrix4).compose(c.position,c.quaternion,kr)},position:c.position.clone()};this.doMoveToPano(e,N,i,n)}else this.pending=!0,this.pendingTextureTask={panoIndex:e,hash:f,onLoad:function(t,o){var s,a;if(u.pending=!1,u.destroyed)t.body.dispose();else{t.body.name=f,u.emit("panoLoaded",e);var l={panoIndex:e,workCode:u.work.workCode,effect:null!==(s=i.effect)&&void 0!==s?s:"fly",panoPicture:{map:t.body,luminanceMap:null!==(a=null==o?void 0:o.body)&&void 0!==a?a:null,matrix:(new r.Matrix4).compose(c.position,c.quaternion,kr)},position:c.position.clone()};u.doMoveToPano(e,l,i,n)}},onError:function(t){u.pending=!1,i.moveCancelCallback&&i.moveCancelCallback(),u.emit("panoLoadError",t,e),u.emit("moveToPanoCanceled",e)}},Promise.all([this.textureLoader.loadCube(d,{format:r.RGBFormat},void 0,void 0,(function(t){var i,n;(null===(i=u.pendingTextureTask)||void 0===i?void 0:i.hash)===f&&(null===(n=u.panoMeshes[e])||void 0===n||n.setProgress(t)),u.emit("textureLoading",t,e,c)}),this.renderer),A?this.textureLoader.loadCube(A,{format:r.LuminanceFormat}).catch((function(){return null})):Promise.resolve(null)]).then((function(t){var i,n,r=t[0],o=t[1];(null===(i=u.pendingTextureTask)||void 0===i?void 0:i.hash)===f?(u.pendingTextureTask.onLoad(r,o),null===(n=u.panoMeshes[e])||void 0===n||n.setProgress(0),delete u.pendingTextureTask,u.emit("textureLoaded",e,c,r.meta)):(r.body.dispose(),null==o||o.body.dispose())})).catch((function(t){var i,n;(null===(i=u.pendingTextureTask)||void 0===i?void 0:i.hash)===f&&(u.pendingTextureTask.onError(t),null===(n=u.panoMeshes[e])||void 0===n||n.setProgress(0),delete u.pendingTextureTask,u.emit("textureError",t,e,c),u.emit("error",t))})),this.emit("textureStartLoad",e,c)},i.prototype.setCamera=function(t){void 0===t&&(t={}),e.prototype.setCamera.call(this,t);var i=this.work.observers[this.currentPanoIndex];if(i)for(var n=i.visibleNodes.concat(this.currentPanoIndex),r=this.getForwardPanoIndexOrNot(),o=0;o<this.work.observers.length;o++){var s=this.work.observers[o],a=this.panoMeshes[o];if(a.visible=!0,a.setCurrent(r===o),a)if(s.loadable||s.active)if(-1===n.indexOf(o))a.visible=!1;else{a.visible=!0;var u=a.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);u<.01?a.setOpacity(0):a.setOpacity(xn(1.5/u,0,1))}else a.visible=!0}},i.prototype.initAnimation=function(e,t,i,n){var r,o,s,a=this;if(!this.destroyed){var u=!1;this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:xn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:xn(null!==(s=t.fov)&&void 0!==s?s:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){u=!0,a.emit("initAnimationWillStart",e,t,a.userAction)},moveEndCallback:function(e,t){a.emit("initAnimationEnded",e,t,a.userAction),a.initAnimationed=!0},moveCancelCallback:function(){var e={longitude:a.camera.pose.longitude,latitude:a.camera.pose.latitude,fov:a.camera.pose.fov,offset:a.camera.pose.offset.clone()};!1===u&&a.emit("initAnimationWillStart",a.currentPanoIndex,e,a.userAction),a.emit("initAnimationEnded",a.currentPanoIndex,e,a.userAction),a.initAnimationed=!0}},n)}},i.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},i.prototype.locationMotionKeyframesLength=function(e){for(var t=0,i=1;i<e.length;i++){var n=this.panoResourceFromLocationMotionKeyframe(e[i-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[i]).position;t+=n.distanceTo(r)*(e[i].value.count-e[i-1].value.count)}return t},i.prototype.updatePanoMeshes=function(e){void 0===e&&(e=!0);for(var t=[],i=0,n=this.panoMeshes;i<n.length;i++){(a=n[i]).loading&&t.push(a.name),this.helper.remove(a),a.dispose()}this.panoMeshes.length=0;for(var o=new r.Vector3(0,-1,0),s=0;s<this.work.observers.length;s++){var a,u=this.work.observers[s];if((a=this.panoCircleMeshCreator()).name="panoCircle_"+this.work.workCode+"_"+s,a.position.copy(u.standingPosition),a.needsRender=!0,this.helper.add(a),e&&this.model.loaded&&this.model.bvhs.loaded){var c=a.position.clone().add(new r.Vector3(0,1,0)),l=new r.Raycaster(c,o,0,1),h=this.model.intersectRaycaster(l)[0];h&&h.point.distanceTo(a.position)>.1&&(a.position.copy(h.point.clone()),a.needsRender=!0)}!1===u.active&&(a.setDisabled(!0),t.indexOf(a.name)>=0&&(a.setDisabled(!1),a.setLoading(!0))),this.panoMeshes[s]=a}},i.prototype.generateBoundingMesh=function(e){void 0===e&&(e=!1);for(var t=this.model.bounding.clone(),i=0,n=this.work.observers;i<n.length;i++){var o=n[i];t.expandByPoint(o.standingPosition),t.expandByPoint((new r.Vector3).fromArray([o.position.x,2*o.position.y-o.standingPosition.y,o.position.z]))}e&&t.expandByPoint(this.camera.position);var s=at(t,new r.Vector3(1,0,1));return s.name="panorama_bounding",s},i.prototype.doMoveToPano=function(e,i,n,o){var s,a,u,c=this;void 0===n&&(n={}),this.userAction=o;var l=He(),h=Fe();this.panoResources[h]=i;var d,p,A;if(this.locationMotion.ended){var f=this.locationMotion.getKeyFrameSegment(l);f[0];var M=f[1],g=this.locationMotion.value,y=this.panoResourceFromLocationMotionKeyframe(M).position,m=i.position;d=Math.max(y.distanceTo(m),1),p=[{key:M.key,progress:0,value:t.__assign(t.__assign({},g),{count:0})},{key:h,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,count:1}}],A=0}else{var v=this.locationMotion.getKeyFrameSegment(l),N=v[0],D=(M=v[1],g=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(N).position),w=(y=this.panoResourceFromLocationMotionKeyframe(M).position,m=i.position,M.value.count-g.count),T=Math.max(D.distanceTo(y),1)*w;d=T+Math.max(y.distanceTo(m),1),p=[{key:N.key,progress:0,value:t.__assign({},g)},{key:M.key,progress:T/d,value:M.value},{key:h,progress:1,value:{count:M.value.count+1,distance:0,perspToOrtho:0,modelAlpha:0}}];var x=this.locationMotionKeyframesLength(this.locationMotion.keyframes),E=this.locationMotionKeyframesLength(p);A=this.locationMotion.getProgressVelocity(l)*x/E}var j=this.calculateMovingDuration(n.duration,d),z={longitude:n.longitude,latitude:n.latitude,fov:n.fov},I={longitude:null!==(s=z.longitude)&&void 0!==s?s:this.camera.pose.longitude,latitude:null!==(a=z.latitude)&&void 0!==a?a:this.camera.pose.latitude,fov:null!==(u=z.fov)&&void 0!==u?u:this.camera.pose.fov,offset:i.position.clone()};n.moveStartCallback&&n.moveStartCallback(e,I),this.emit("panoWillArrive",e,I,this.userAction),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=Qe,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),this.cameraMotion.set(z,j).catch(Qe),this.locationMotion.setKeyFrames(p,j,A).then((function(){var t,i,s,a={longitude:c.camera.pose.longitude,latitude:c.camera.pose.latitude,fov:c.camera.pose.fov,offset:c.camera.pose.offset.clone()};n.moveEndCallback&&n.moveEndCallback(e,a),c.emit("panoArrived",e,a,o);var u=c.work.observers[c.currentPanoIndex];if(u&&u.video&&c.videoTexture&&c.videoTexture.image instanceof HTMLVideoElement){var l=Lr.clone().multiply(null!==(s=null===(i=null===(t=c.model.getMaterial())||void 0===t?void 0:t.pano1)||void 0===i?void 0:i.matrix)&&void 0!==s?s:new r.Matrix4).multiply(u.video.matrix),h={map:c.videoTexture,size:u.video.size,matrix:l,alpha:1},d=Fe(),p=c.videoTexture.image;p.setAttribute("uuid",d),(lr||(lr=new Promise((function(e){var t,i=document.createElement("video");i.muted=!0,i.src="data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw",i.addEventListener("timeupdate",(function n(){i.removeEventListener("timeupdate",n,!1),clearTimeout(t);var r=document.createElement("canvas");r.width=r.height=1;var o=r.getContext("2d");o?(o.drawImage(i,0,0,1,1),o.getImageData(0,0,1,1).data[3]>10?e(!0):e(!1)):e(!1)}),!1),i.addEventListener("canplay",(function e(){i.removeEventListener("canplay",e,!1),i.play()}),!1),t=window.setTimeout((function(){return e(!1)}),1e3)})))).then((function(e){e&&u.video&&p.getAttribute("uuid")===d&&(p.oncanplay=function(){p.oncanplay=Qe,p.play()},p.ontimeupdate=function(){p.currentTime>.5&&(p.ontimeupdate=Qe,c.panoVideo.setMaterial(h))},p.src=u.video.source)})).catch((function(){p.removeAttribute("uuid")}))}}),(function(){n.moveCancelCallback&&n.moveCancelCallback(),c.emit("moveToPanoCanceled",e)}))},i.prototype.getForwardPanoIndexOrNot=function(e){var t=this,i=this.camera.getWorldDirection(new r.Vector3),n=this.camera.position.clone(),o=this.work.observers[this.currentPanoIndex];if(!o)return null;var s=o.accessibleNodes.filter((function(e){if(e===t.currentPanoIndex)return!1;var i=t.work.observers[e],o=i.standingPosition.clone().sub(n);return 0!==o.length()&&(!(o.angleTo(new r.Vector3(0,-1,0))<Math.PI/12)&&(i.loadable||i.active))})),a=(e?e.ray.direction.clone():i.clone()).setY(0);if(0===a.length())return null;for(var u=s.slice().sort((function(e,i){var r=t.work.observers[e].position.clone().setY(n.y),o=t.work.observers[i].position.clone().setY(n.y);return r.distanceTo(n)-o.distanceTo(n)})),c=0,l=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];c<l.length;c++)for(var h=l[c],d=0,p=u;d<p.length;d++){var A=p[d],f=this.work.observers[A].position.clone().setY(n.y).sub(n);if(0!==f.length()&&a.angleTo(f)<h)return A}return null},i.prototype.onTapGesture=function(e){var i=this,n=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","tap",n,!0)){var o=this.relativeClientPosition(e.center),s=new r.Raycaster;if(s.setFromCamera(o,this.camera),!this.emit("wantsTapGesture",s,o)){this.emit("gesture","tap",n,!0),this.emit("tapGesture",s,o),this.interiaMovement=!1;var a=this.camera.getWorldDirection(new r.Vector3).setY(0),u=null,c=this.work.observers[this.currentPanoIndex];if(c){var l=c.accessibleNodes.filter((function(e){if(e===i.currentPanoIndex)return!1;var t=i.work.observers[e];return!(t.position.distanceTo(i.camera.position)>i.maxAccessibleDistance)&&(t.loadable||t.active)})),h=this.model.intersectRaycaster(s)[0];if(h){var d=Tn(l,(function(e){var t=i.work.observers[e].standingPosition.clone();return t.clone().sub(i.camera.position).setY(0).angleTo(a)>Math.PI/2?1/0:t.distanceTo(h.point)}),!0),p=d[0];d[1]<this.panoTapTriggerRadius&&(u=p)}Re(u)&&(u=this.getForwardPanoIndexOrNot(s));for(var A=0,f=this.locationMotion.keyframes;A<f.length;A++){var M=f[A],g=this.panoResourceFromLocationMotionKeyframe(M);if(!(M.progress<this.locationMotion.progress)&&g.panoIndex===u){u=null;break}}if(this.emit("panoSelected",u),Re(u))!0===this.locationMotion.ended&&this.cameraBounce();else{var y=this.work.observers[u];if(y.active){for(var m={},v=Math.PI/6,N=Math.PI/12,D=new r.Vector3(0,1,0),w=y.position.clone().setY(0).sub(c.position.clone().setY(0)).normalize(),T=w.clone().applyAxisAngle(D,v),x=w.clone().applyAxisAngle(D,-v),E=[],j=[],z=[],I=0,b=y.accessibleNodes;I<b.length;I++){if((p=b[I])!==this.currentPanoIndex&&p!==u){var O=this.work.observers[p].position.clone().sub(y.position).setY(0);w.angleTo(O)<v?z.push(O):T.angleTo(O)<v?E.push(O):x.angleTo(O)<v&&j.push(O)}}var S=(z.length>0?z:t.__spreadArray(t.__spreadArray([],E,!0),j,!0)).slice().sort((function(e,t){return e.angleTo(w)-t.angleTo(w)}))[0];S&&S.angleTo(a)>N&&(m.longitude=Math.atan2(-S.x,-S.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(m.latitude=xn(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(m.fov=this.defaultFov),this.emit("wantsMoveToPano",u,m,!0)}else this.panoMeshes[u]&&(this.panoMeshes[u].setDisabled(!1),this.panoMeshes[u].setLoading(!0))}}}}},i}(Zn),Pr=function(e,t){var i=void 0!==e?e:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function r(e,t){return e(t={exports:{}},t.exports),t.exports}var o=function(){return/Android/i.test(t.userAgent)||/iPhone|iPad|iPod/i.test(t.userAgent)},s=function(e,t){for(var i=0,n=e.length;i<n;i++)t[i]=e[i]},a=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},u=n(r((function(n,r){
373
373
  /**
374
374
  * @license
375
375
  * cardboard-vr-display
@@ -448,4 +448,4 @@ function(e,t){for(var i=e.toByteArray(),n=0;n<i.length&&0==i[n];)++n;if(i.length
448
448
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
449
449
  * THE SOFTWARE.
450
450
  */
451
- !function(e,t){n.exports=t()}(0,(function(){var n,r=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},o=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),s=function(){function e(e,t){var i=[],n=!0,r=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(n=(s=a.next()).done)&&(i.push(s.value),!t||i.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&a.return&&a.return()}finally{if(r)throw o}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=.001,u=1,c=function(e,t){return"data:"+e+","+encodeURIComponent(t)},l=function(e,t,i){return e+(t-e)*i},h=function(){var e=/iPad|iPhone|iPod/.test(t.platform);return function(){return e}}(),d=function(){var e=-1!==t.userAgent.indexOf("Version")&&-1!==t.userAgent.indexOf("Android")&&-1!==t.userAgent.indexOf("Chrome");return function(){return e}}(),p=function(){var e=/^((?!chrome|android).)*safari/i.test(t.userAgent);return function(){return e}}(),A=function(){var e=-1!==t.userAgent.indexOf("Firefox")&&-1!==t.userAgent.indexOf("Android");return function(){return e}}(),f=function(){var e=t.userAgent.match(/.*Chrome\/([0-9]+)/),i=e?parseInt(e[1],10):null;return function(){return i}}(),M=function(){var e=!1;return e=h()&&p()&&-1!==t.userAgent.indexOf("13_4"),function(){return e}}(),g=function(){var e=!1;if(65===f()){var i=t.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(i){var n=i[1].split("."),r=s(n,4);r[0],r[1];var o=r[2],a=r[3];e=3325===parseInt(o,10)&&parseInt(a,10)<148}}return function(){return e}}(),y=function(){var e=-1!==t.userAgent.indexOf("R7 Build");return function(){return e}}(),m=function(){var t=90==e.orientation||-90==e.orientation;return y()?!t:t},v=function(e){return!(isNaN(e)||e<=a||e>u)},N=function(){return Math.max(e.screen.width,e.screen.height)*e.devicePixelRatio},D=function(){return Math.min(e.screen.width,e.screen.height)*e.devicePixelRatio},w=function(e){if(d())return!1;if(e.requestFullscreen)e.requestFullscreen();else if(e.webkitRequestFullscreen)e.webkitRequestFullscreen();else if(e.mozRequestFullScreen)e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)return!1;e.msRequestFullscreen()}return!0},T=function(){if(document.exitFullscreen)document.exitFullscreen();else if(document.webkitExitFullscreen)document.webkitExitFullscreen();else if(document.mozCancelFullScreen)document.mozCancelFullScreen();else{if(!document.msExitFullscreen)return!1;document.msExitFullscreen()}return!0},x=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},E=function(e,t,i,n){var r=e.createShader(e.VERTEX_SHADER);e.shaderSource(r,t),e.compileShader(r);var o=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(o,i),e.compileShader(o);var s=e.createProgram();for(var a in e.attachShader(s,r),e.attachShader(s,o),n)e.bindAttribLocation(s,n[a],a);return e.linkProgram(s),e.deleteShader(r),e.deleteShader(o),s},j=function(e,t){for(var i={},n=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),r="",o=0;o<n;o++)i[r=e.getActiveUniform(t,o).name.replace("[0]","")]=e.getUniformLocation(t,r);return i},z=function(e,t,i,n,r,o,s){var a=1/(t-i),u=1/(n-r),c=1/(o-s);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*u,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+i)*a,e[13]=(r+n)*u,e[14]=(s+o)*c,e[15]=1,e},I=function(){var i,n=!1;return i=t.userAgent||t.vendor||e.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(i)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(i.substr(0,4)))&&(n=!0),n},b=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},O=function(t){if(h()){var i=t.style.width,n=t.style.height;t.style.width=parseInt(i)+1+"px",t.style.height=parseInt(n)+"px",setTimeout((function(){t.style.width=i,t.style.height=n}),100)}e.canvas=t},S=function(){var e=Math.PI/180,t=.25*Math.PI;function i(i,n,r,o){var s=Math.tan(n?n.upDegrees*e:t),a=Math.tan(n?n.downDegrees*e:t),u=Math.tan(n?n.leftDegrees*e:t),c=Math.tan(n?n.rightDegrees*e:t),l=2/(u+c),h=2/(s+a);return i[0]=l,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=h,i[6]=0,i[7]=0,i[8]=-(u-c)*l*.5,i[9]=(s-a)*h*.5,i[10]=o/(r-o),i[11]=-1,i[12]=0,i[13]=0,i[14]=o*r/(r-o),i[15]=0,i}function n(e,t,i){var n=t[0],r=t[1],o=t[2],s=t[3],a=n+n,u=r+r,c=o+o,l=n*a,h=n*u,d=n*c,p=r*u,A=r*c,f=o*c,M=s*a,g=s*u,y=s*c;return e[0]=1-(p+f),e[1]=h+y,e[2]=d-g,e[3]=0,e[4]=h-y,e[5]=1-(l+f),e[6]=A+M,e[7]=0,e[8]=d+g,e[9]=A-M,e[10]=1-(l+p),e[11]=0,e[12]=i[0],e[13]=i[1],e[14]=i[2],e[15]=1,e}function r(e,t,i){var n,r,o,s,a,u,c,l,h,d,p,A,f=i[0],M=i[1],g=i[2];return t===e?(e[12]=t[0]*f+t[4]*M+t[8]*g+t[12],e[13]=t[1]*f+t[5]*M+t[9]*g+t[13],e[14]=t[2]*f+t[6]*M+t[10]*g+t[14],e[15]=t[3]*f+t[7]*M+t[11]*g+t[15]):(n=t[0],r=t[1],o=t[2],s=t[3],a=t[4],u=t[5],c=t[6],l=t[7],h=t[8],d=t[9],p=t[10],A=t[11],e[0]=n,e[1]=r,e[2]=o,e[3]=s,e[4]=a,e[5]=u,e[6]=c,e[7]=l,e[8]=h,e[9]=d,e[10]=p,e[11]=A,e[12]=n*f+a*M+h*g+t[12],e[13]=r*f+u*M+d*g+t[13],e[14]=o*f+c*M+p*g+t[14],e[15]=s*f+l*M+A*g+t[15]),e}function o(e,t){var i=t[0],n=t[1],r=t[2],o=t[3],s=t[4],a=t[5],u=t[6],c=t[7],l=t[8],h=t[9],d=t[10],p=t[11],A=t[12],f=t[13],M=t[14],g=t[15],y=i*a-n*s,m=i*u-r*s,v=i*c-o*s,N=n*u-r*a,D=n*c-o*a,w=r*c-o*u,T=l*f-h*A,x=l*M-d*A,E=l*g-p*A,j=h*M-d*f,z=h*g-p*f,I=d*g-p*M,b=y*I-m*z+v*j+N*E-D*x+w*T;return b?(b=1/b,e[0]=(a*I-u*z+c*j)*b,e[1]=(r*z-n*I-o*j)*b,e[2]=(f*w-M*D+g*N)*b,e[3]=(d*D-h*w-p*N)*b,e[4]=(u*E-s*I-c*x)*b,e[5]=(i*I-r*E+o*x)*b,e[6]=(M*v-A*w-g*m)*b,e[7]=(l*w-d*v+p*m)*b,e[8]=(s*z-a*E+c*T)*b,e[9]=(n*E-i*z-o*T)*b,e[10]=(A*D-f*v+g*y)*b,e[11]=(h*v-l*D-p*y)*b,e[12]=(a*x-s*j-u*T)*b,e[13]=(i*j-n*x+r*T)*b,e[14]=(f*m-A*N-M*y)*b,e[15]=(l*N-h*m+d*y)*b,e):null}var s=new Float32Array([0,0,0,1]),a=new Float32Array([0,0,0]);function u(e,t,u,c,l,h){i(e,c||null,h.depthNear,h.depthFar),n(t,u.orientation||s,u.position||a),l&&r(t,t,l),o(t,t)}return function(e,t,i){return!(!e||!t||(e.pose=t,e.timestamp=t.timestamp,u(e.leftProjectionMatrix,e.leftViewMatrix,t,i._getFieldOfView("left"),i._getEyeOffset("left"),i),u(e.rightProjectionMatrix,e.rightViewMatrix,t,i._getFieldOfView("right"),i._getEyeOffset("right"),i),0))}}(),L=function(){var t=e.self!==e.top,i=k(document.referrer),n=k(e.location.href);return t&&i!==n},k=function(e){var t,i=e.indexOf("://");t=-1!==i?i+3:0;var n=e.indexOf("/",t);return-1===n&&(n=e.length),e.substring(0,n)},C=function(e){return e.w>1?(console.warn("getQuaternionAngle: w > 1"),0):2*Math.acos(e.w)},P=(n={},function(e,t){void 0===n[e]&&(console.warn("webvr-polyfill: "+t),n[e]=!0)}),B=function(e,t){P(e,e+" has been deprecated. This may not work on native WebVR displays. "+(t?"Please use "+t+" instead.":""))};function _(e,t,i){if(t){for(var n=[],r=null,o=0;o<t.length;++o)switch(s=t[o]){case e.TEXTURE_BINDING_2D:case e.TEXTURE_BINDING_CUBE_MAP:if((u=t[++o])<e.TEXTURE0||u>e.TEXTURE31){console.error("TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit"),n.push(null,null);break}r||(r=e.getParameter(e.ACTIVE_TEXTURE)),e.activeTexture(u),n.push(e.getParameter(s),null);break;case e.ACTIVE_TEXTURE:r=e.getParameter(e.ACTIVE_TEXTURE),n.push(null);break;default:n.push(e.getParameter(s))}for(i(e),o=0;o<t.length;++o){var s=t[o],a=n[o];switch(s){case e.ACTIVE_TEXTURE:break;case e.ARRAY_BUFFER_BINDING:e.bindBuffer(e.ARRAY_BUFFER,a);break;case e.COLOR_CLEAR_VALUE:e.clearColor(a[0],a[1],a[2],a[3]);break;case e.COLOR_WRITEMASK:e.colorMask(a[0],a[1],a[2],a[3]);break;case e.CURRENT_PROGRAM:e.useProgram(a);break;case e.ELEMENT_ARRAY_BUFFER_BINDING:e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,a);break;case e.FRAMEBUFFER_BINDING:e.bindFramebuffer(e.FRAMEBUFFER,a);break;case e.RENDERBUFFER_BINDING:e.bindRenderbuffer(e.RENDERBUFFER,a);break;case e.TEXTURE_BINDING_2D:if((u=t[++o])<e.TEXTURE0||u>e.TEXTURE31)break;e.activeTexture(u),e.bindTexture(e.TEXTURE_2D,a);break;case e.TEXTURE_BINDING_CUBE_MAP:var u;if((u=t[++o])<e.TEXTURE0||u>e.TEXTURE31)break;e.activeTexture(u),e.bindTexture(e.TEXTURE_CUBE_MAP,a);break;case e.VIEWPORT:e.viewport(a[0],a[1],a[2],a[3]);break;case e.BLEND:case e.CULL_FACE:case e.DEPTH_TEST:case e.SCISSOR_TEST:case e.STENCIL_TEST:a?e.enable(s):e.disable(s);break;default:console.log("No GL restore behavior for 0x"+s.toString(16))}r&&e.activeTexture(r)}}else i(e)}var U=_,R=["attribute vec2 position;","attribute vec3 texCoord;","varying vec2 vTexCoord;","uniform vec4 viewportOffsetScale[2];","void main() {"," vec4 viewport = viewportOffsetScale[int(texCoord.z)];"," vTexCoord = (texCoord.xy * viewport.zw) + viewport.xy;"," gl_Position = vec4( position, 1.0, 1.0 );","}"].join("\n"),Q=["precision mediump float;","uniform sampler2D diffuse;","varying vec2 vTexCoord;","void main() {"," gl_FragColor = texture2D(diffuse, vTexCoord);","}"].join("\n");function Y(e,t,i,n){this.gl=e,this.cardboardUI=t,this.bufferScale=i,this.dirtySubmitFrameBindings=n,this.ctxAttribs=e.getContextAttributes(),this.instanceExt=e.getExtension("ANGLE_instanced_arrays"),this.meshWidth=20,this.meshHeight=20,this.bufferWidth=e.drawingBufferWidth,this.bufferHeight=e.drawingBufferHeight,this.realBindFramebuffer=e.bindFramebuffer,this.realEnable=e.enable,this.realDisable=e.disable,this.realColorMask=e.colorMask,this.realClearColor=e.clearColor,this.realViewport=e.viewport,h()||(this.realCanvasWidth=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"width"),this.realCanvasHeight=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"height")),this.isPatched=!1,this.lastBoundFramebuffer=null,this.cullFace=!1,this.depthTest=!1,this.blend=!1,this.scissorTest=!1,this.stencilTest=!1,this.viewport=[0,0,0,0],this.colorMask=[!0,!0,!0,!0],this.clearColor=[0,0,0,0],this.attribs={position:0,texCoord:1},this.program=E(e,R,Q,this.attribs),this.uniforms=j(e,this.program),this.viewportOffsetScale=new Float32Array(8),this.setTextureBounds(),this.vertexBuffer=e.createBuffer(),this.indexBuffer=e.createBuffer(),this.indexCount=0,this.renderTarget=e.createTexture(),this.framebuffer=e.createFramebuffer(),this.depthStencilBuffer=null,this.depthBuffer=null,this.stencilBuffer=null,this.ctxAttribs.depth&&this.ctxAttribs.stencil?this.depthStencilBuffer=e.createRenderbuffer():this.ctxAttribs.depth?this.depthBuffer=e.createRenderbuffer():this.ctxAttribs.stencil&&(this.stencilBuffer=e.createRenderbuffer()),this.patch(),this.onResize()}Y.prototype.destroy=function(){var e=this.gl;this.unpatch(),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer),e.deleteBuffer(this.indexBuffer),e.deleteTexture(this.renderTarget),e.deleteFramebuffer(this.framebuffer),this.depthStencilBuffer&&e.deleteRenderbuffer(this.depthStencilBuffer),this.depthBuffer&&e.deleteRenderbuffer(this.depthBuffer),this.stencilBuffer&&e.deleteRenderbuffer(this.stencilBuffer),this.cardboardUI&&this.cardboardUI.destroy()},Y.prototype.onResize=function(){var e=this.gl,t=this,i=[e.RENDERBUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0];U(e,i,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.framebuffer),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.texImage2D(e.TEXTURE_2D,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,t.bufferWidth,t.bufferHeight,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.renderTarget,0),t.ctxAttribs.depth&&t.ctxAttribs.stencil?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t.depthStencilBuffer)):t.ctxAttribs.depth?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t.depthBuffer)):t.ctxAttribs.stencil&&(e.bindRenderbuffer(e.RENDERBUFFER,t.stencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.STENCIL_INDEX8,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.STENCIL_ATTACHMENT,e.RENDERBUFFER,t.stencilBuffer)),!e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer incomplete!"),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),t.realClearColor.apply(e,t.clearColor)})),this.cardboardUI&&this.cardboardUI.onResize()},Y.prototype.patch=function(){if(!this.isPatched){var e=this,t=this.gl.canvas,i=this.gl;h()||(t.width=N()*this.bufferScale,t.height=D()*this.bufferScale,Object.defineProperty(t,"width",{configurable:!0,enumerable:!0,get:function(){return e.bufferWidth},set:function(i){e.bufferWidth=i,e.realCanvasWidth.set.call(t,i),e.onResize()}}),Object.defineProperty(t,"height",{configurable:!0,enumerable:!0,get:function(){return e.bufferHeight},set:function(i){e.bufferHeight=i,e.realCanvasHeight.set.call(t,i),e.onResize()}})),this.lastBoundFramebuffer=i.getParameter(i.FRAMEBUFFER_BINDING),null==this.lastBoundFramebuffer&&(this.lastBoundFramebuffer=this.framebuffer,this.gl.bindFramebuffer(i.FRAMEBUFFER,this.framebuffer)),this.gl.bindFramebuffer=function(t,n){e.lastBoundFramebuffer=n||e.framebuffer,e.realBindFramebuffer.call(i,t,e.lastBoundFramebuffer)},this.cullFace=i.getParameter(i.CULL_FACE),this.depthTest=i.getParameter(i.DEPTH_TEST),this.blend=i.getParameter(i.BLEND),this.scissorTest=i.getParameter(i.SCISSOR_TEST),this.stencilTest=i.getParameter(i.STENCIL_TEST),i.enable=function(t){switch(t){case i.CULL_FACE:e.cullFace=!0;break;case i.DEPTH_TEST:e.depthTest=!0;break;case i.BLEND:e.blend=!0;break;case i.SCISSOR_TEST:e.scissorTest=!0;break;case i.STENCIL_TEST:e.stencilTest=!0}e.realEnable.call(i,t)},i.disable=function(t){switch(t){case i.CULL_FACE:e.cullFace=!1;break;case i.DEPTH_TEST:e.depthTest=!1;break;case i.BLEND:e.blend=!1;break;case i.SCISSOR_TEST:e.scissorTest=!1;break;case i.STENCIL_TEST:e.stencilTest=!1}e.realDisable.call(i,t)},this.colorMask=i.getParameter(i.COLOR_WRITEMASK),i.colorMask=function(t,n,r,o){e.colorMask[0]=t,e.colorMask[1]=n,e.colorMask[2]=r,e.colorMask[3]=o,e.realColorMask.call(i,t,n,r,o)},this.clearColor=i.getParameter(i.COLOR_CLEAR_VALUE),i.clearColor=function(t,n,r,o){e.clearColor[0]=t,e.clearColor[1]=n,e.clearColor[2]=r,e.clearColor[3]=o,e.realClearColor.call(i,t,n,r,o)},this.viewport=i.getParameter(i.VIEWPORT),i.viewport=function(t,n,r,o){e.viewport[0]=t,e.viewport[1]=n,e.viewport[2]=r,e.viewport[3]=o,e.realViewport.call(i,t,n,r,o)},this.isPatched=!0,O(t)}},Y.prototype.unpatch=function(){if(this.isPatched){var e=this.gl,t=this.gl.canvas;h()||(Object.defineProperty(t,"width",this.realCanvasWidth),Object.defineProperty(t,"height",this.realCanvasHeight)),t.width=this.bufferWidth,t.height=this.bufferHeight,e.bindFramebuffer=this.realBindFramebuffer,e.enable=this.realEnable,e.disable=this.realDisable,e.colorMask=this.realColorMask,e.clearColor=this.realClearColor,e.viewport=this.realViewport,this.lastBoundFramebuffer==this.framebuffer&&e.bindFramebuffer(e.FRAMEBUFFER,null),this.isPatched=!1,setTimeout((function(){O(t)}),1)}},Y.prototype.setTextureBounds=function(e,t){e||(e=[0,0,.5,1]),t||(t=[.5,0,.5,1]),this.viewportOffsetScale[0]=e[0],this.viewportOffsetScale[1]=e[1],this.viewportOffsetScale[2]=e[2],this.viewportOffsetScale[3]=e[3],this.viewportOffsetScale[4]=t[0],this.viewportOffsetScale[5]=t[1],this.viewportOffsetScale[6]=t[2],this.viewportOffsetScale[7]=t[3]},Y.prototype.submitFrame=function(){var e=this.gl,t=this,i=[];if(this.dirtySubmitFrameBindings||i.push(e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING,e.ELEMENT_ARRAY_BUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0),U(e,i,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null);var i=0,n=0;t.instanceExt&&(i=e.getVertexAttrib(t.attribs.position,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE),n=e.getVertexAttrib(t.attribs.texCoord,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE)),t.cullFace&&t.realDisable.call(e,e.CULL_FACE),t.depthTest&&t.realDisable.call(e,e.DEPTH_TEST),t.blend&&t.realDisable.call(e,e.BLEND),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realDisable.call(e,e.STENCIL_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),(t.ctxAttribs.alpha||h())&&(t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)),e.useProgram(t.program),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer),e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.enableVertexAttribArray(t.attribs.position),e.enableVertexAttribArray(t.attribs.texCoord),e.vertexAttribPointer(t.attribs.position,2,e.FLOAT,!1,20,0),e.vertexAttribPointer(t.attribs.texCoord,3,e.FLOAT,!1,20,8),t.instanceExt&&(0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,0),0!=n&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,0)),e.activeTexture(e.TEXTURE0),e.uniform1i(t.uniforms.diffuse,0),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.uniform4fv(t.uniforms.viewportOffsetScale,t.viewportOffsetScale),e.drawElements(e.TRIANGLES,t.indexCount,e.UNSIGNED_SHORT,0),t.cardboardUI&&t.cardboardUI.renderNoState(),t.realBindFramebuffer.call(t.gl,e.FRAMEBUFFER,t.framebuffer),t.ctxAttribs.preserveDrawingBuffer||(t.realClearColor.call(e,0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)),t.dirtySubmitFrameBindings||t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.cullFace&&t.realEnable.call(e,e.CULL_FACE),t.depthTest&&t.realEnable.call(e,e.DEPTH_TEST),t.blend&&t.realEnable.call(e,e.BLEND),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realEnable.call(e,e.STENCIL_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),!t.ctxAttribs.alpha&&t.ctxAttribs.preserveDrawingBuffer||t.realClearColor.apply(e,t.clearColor),t.instanceExt&&(0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,i),0!=n&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,n))})),h()){var n=e.canvas;n.width==t.bufferWidth&&n.height==t.bufferHeight||(t.bufferWidth=n.width,t.bufferHeight=n.height,t.onResize())}},Y.prototype.updateDeviceInfo=function(e){var t=this.gl,i=this,n=[t.ARRAY_BUFFER_BINDING,t.ELEMENT_ARRAY_BUFFER_BINDING];U(t,n,(function(t){var n=i.computeMeshVertices_(i.meshWidth,i.meshHeight,e);if(t.bindBuffer(t.ARRAY_BUFFER,i.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,n,t.STATIC_DRAW),!i.indexCount){var r=i.computeMeshIndices_(i.meshWidth,i.meshHeight);t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,r,t.STATIC_DRAW),i.indexCount=r.length}}))},Y.prototype.computeMeshVertices_=function(e,t,i){for(var n=new Float32Array(2*e*t*5),r=i.getLeftEyeVisibleTanAngles(),o=i.getLeftEyeNoLensTanAngles(),s=i.getLeftEyeVisibleScreenRect(o),a=0,u=0;u<2;u++){for(var c=0;c<t;c++)for(var h=0;h<e;h++,a++){var d=h/(e-1),p=c/(t-1),A=d,f=p,M=l(r[0],r[2],d),g=l(r[3],r[1],p),y=Math.sqrt(M*M+g*g),m=i.distortion.distortInverse(y),v=g*m/y;d=(M*m/y-o[0])/(o[2]-o[0]),p=(v-o[3])/(o[1]-o[3]),d=2*(s.x+d*s.width-.5),p=2*(s.y+p*s.height-.5),n[5*a+0]=d,n[5*a+1]=p,n[5*a+2]=A,n[5*a+3]=f,n[5*a+4]=u}var N=r[2]-r[0];r[0]=-(N+r[0]),r[2]=N-r[2],N=o[2]-o[0],o[0]=-(N+o[0]),o[2]=N-o[2],s.x=1-(s.x+s.width)}return n},Y.prototype.computeMeshIndices_=function(e,t){for(var i=new Uint16Array(2*(e-1)*(t-1)*6),n=e/2,r=t/2,o=0,s=0,a=0;a<2;a++)for(var u=0;u<t;u++)for(var c=0;c<e;c++,o++)0!=c&&0!=u&&(c<=n==u<=r?(i[s++]=o,i[s++]=o-e-1,i[s++]=o-e,i[s++]=o-e-1,i[s++]=o,i[s++]=o-1):(i[s++]=o-1,i[s++]=o-e,i[s++]=o,i[s++]=o-e,i[s++]=o-1,i[s++]=o-e-1));return i},Y.prototype.getOwnPropertyDescriptor_=function(e,t){var i=Object.getOwnPropertyDescriptor(e,t);return void 0!==i.get&&void 0!==i.set||(i.configurable=!0,i.enumerable=!0,i.get=function(){return this.getAttribute(t)},i.set=function(e){this.setAttribute(t,e)}),i};var F=["attribute vec2 position;","uniform mat4 projectionMat;","void main() {"," gl_Position = projectionMat * vec4( position, -1.0, 1.0 );","}"].join("\n"),V=["precision mediump float;","uniform vec4 color;","void main() {"," gl_FragColor = color;","}"].join("\n"),H=Math.PI/180,G=60,W=12,q=20,K=1,Z=.75,X=.3125,J=4,$=28,ee=1.5;function te(e){this.gl=e,this.attribs={position:0},this.program=E(e,F,V,this.attribs),this.uniforms=j(e,this.program),this.vertexBuffer=e.createBuffer(),this.gearOffset=0,this.gearVertexCount=0,this.arrowOffset=0,this.arrowVertexCount=0,this.projMat=new Float32Array(16),this.listener=null,this.onResize()}function ie(e){this.coefficients=e}te.prototype.destroy=function(){var e=this.gl;this.listener&&e.canvas.removeEventListener("click",this.listener,!1),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer)},te.prototype.listen=function(e,t){var i=this.gl.canvas;this.listener=function(n){var r=i.clientWidth/2,o=$*ee;n.clientX>r-o&&n.clientX<r+o&&n.clientY>i.clientHeight-o?e(n):n.clientX<o&&n.clientY<o&&t(n)},i.addEventListener("click",this.listener,!1)},te.prototype.onResize=function(){var t=this.gl,i=this,n=[t.ARRAY_BUFFER_BINDING];U(t,n,(function(t){var n=[],r=t.drawingBufferWidth/2,o=Math.max(screen.width,screen.height)*e.devicePixelRatio,s=t.drawingBufferWidth/o*e.devicePixelRatio,a=J*s/2,u=$*ee*s,c=$*s/2,l=($*ee-$)*s;function h(e,t){var i=(90-e)*H,o=Math.cos(i),s=Math.sin(i);n.push(X*o*c+r,X*s*c+c),n.push(t*o*c+r,t*s*c+c)}n.push(r-a,u),n.push(r-a,t.drawingBufferHeight),n.push(r+a,u),n.push(r+a,t.drawingBufferHeight),i.gearOffset=n.length/2;for(var d=0;d<=6;d++){var p=d*G;h(p,K),h(p+W,K),h(p+q,Z),h(p+(G-q),Z),h(p+(G-W),K)}function A(e,i){n.push(l+e,t.drawingBufferHeight-l-i)}i.gearVertexCount=n.length/2-i.gearOffset,i.arrowOffset=n.length/2;var f=a/Math.sin(45*H);A(0,c),A(c,0),A(c+f,f),A(f,c+f),A(f,c-f),A(0,c),A(c,2*c),A(c+f,2*c-f),A(f,c-f),A(0,c),A(f,c-a),A($*s,c-a),A(f,c+a),A($*s,c+a),i.arrowVertexCount=n.length/2-i.arrowOffset,t.bindBuffer(t.ARRAY_BUFFER,i.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(n),t.STATIC_DRAW)}))},te.prototype.render=function(){var e=this.gl,t=this,i=[e.CULL_FACE,e.DEPTH_TEST,e.BLEND,e.SCISSOR_TEST,e.STENCIL_TEST,e.COLOR_WRITEMASK,e.VIEWPORT,e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING];U(e,i,(function(e){e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.disable(e.SCISSOR_TEST),e.disable(e.STENCIL_TEST),e.colorMask(!0,!0,!0,!0),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.renderNoState()}))},te.prototype.renderNoState=function(){var e=this.gl;e.useProgram(this.program),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.enableVertexAttribArray(this.attribs.position),e.vertexAttribPointer(this.attribs.position,2,e.FLOAT,!1,8,0),e.uniform4f(this.uniforms.color,1,1,1,1),z(this.projMat,0,e.drawingBufferWidth,0,e.drawingBufferHeight,.1,1024),e.uniformMatrix4fv(this.uniforms.projectionMat,!1,this.projMat),e.drawArrays(e.TRIANGLE_STRIP,0,4),e.drawArrays(e.TRIANGLE_STRIP,this.gearOffset,this.gearVertexCount),e.drawArrays(e.TRIANGLE_STRIP,this.arrowOffset,this.arrowVertexCount)},ie.prototype.distortInverse=function(e){for(var t=0,i=1,n=e-this.distort(t);Math.abs(i-t)>1e-4;){var r=e-this.distort(i),o=i-r*((i-t)/(r-n));t=i,i=o,n=r}return i},ie.prototype.distort=function(e){for(var t=e*e,i=0,n=0;n<this.coefficients.length;n++)i=t*(i+this.coefficients[n]);return(i+1)*e};var ne=Math.PI/180,re=180/Math.PI,oe=function(e,t,i){this.x=e||0,this.y=t||0,this.z=i||0};oe.prototype={constructor:oe,set:function(e,t,i){return this.x=e,this.y=t,this.z=i,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var e=this.length();if(0!==e){var t=1/e;this.multiplyScalar(t)}else this.x=0,this.y=0,this.z=0;return this},multiplyScalar:function(e){this.x*=e,this.y*=e,this.z*=e},applyQuaternion:function(e){var t=this.x,i=this.y,n=this.z,r=e.x,o=e.y,s=e.z,a=e.w,u=a*t+o*n-s*i,c=a*i+s*t-r*n,l=a*n+r*i-o*t,h=-r*t-o*i-s*n;return this.x=u*a+h*-r+c*-s-l*-o,this.y=c*a+h*-o+l*-r-u*-s,this.z=l*a+h*-s+u*-o-c*-r,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},crossVectors:function(e,t){var i=e.x,n=e.y,r=e.z,o=t.x,s=t.y,a=t.z;return this.x=n*a-r*s,this.y=r*o-i*a,this.z=i*s-n*o,this}};var se,ae,ue,ce=function(e,t,i,n){this.x=e||0,this.y=t||0,this.z=i||0,this.w=void 0!==n?n:1};function le(e){this.width=e.width||N(),this.height=e.height||D(),this.widthMeters=e.widthMeters,this.heightMeters=e.heightMeters,this.bevelMeters=e.bevelMeters}ce.prototype={constructor:ce,set:function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},setFromEulerXYZ:function(e,t,i){var n=Math.cos(e/2),r=Math.cos(t/2),o=Math.cos(i/2),s=Math.sin(e/2),a=Math.sin(t/2),u=Math.sin(i/2);return this.x=s*r*o+n*a*u,this.y=n*a*o-s*r*u,this.z=n*r*u+s*a*o,this.w=n*r*o-s*a*u,this},setFromEulerYXZ:function(e,t,i){var n=Math.cos(e/2),r=Math.cos(t/2),o=Math.cos(i/2),s=Math.sin(e/2),a=Math.sin(t/2),u=Math.sin(i/2);return this.x=s*r*o+n*a*u,this.y=n*a*o-s*r*u,this.z=n*r*u-s*a*o,this.w=n*r*o+s*a*u,this},setFromAxisAngle:function(e,t){var i=t/2,n=Math.sin(i);return this.x=e.x*n,this.y=e.y*n,this.z=e.z*n,this.w=Math.cos(i),this},multiply:function(e){return this.multiplyQuaternions(this,e)},multiplyQuaternions:function(e,t){var i=e.x,n=e.y,r=e.z,o=e.w,s=t.x,a=t.y,u=t.z,c=t.w;return this.x=i*c+o*s+n*u-r*a,this.y=n*c+o*a+r*s-i*u,this.z=r*c+o*u+i*a-n*s,this.w=o*c-i*s-n*a-r*u,this},inverse:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this.normalize(),this},normalize:function(){var e=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);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},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,s=o*e.w+i*e.x+n*e.y+r*e.z;if(s<0?(this.w=-e.w,this.x=-e.x,this.y=-e.y,this.z=-e.z,s=-s):this.copy(e),s>=1)return this.w=o,this.x=i,this.y=n,this.z=r,this;var a=Math.acos(s),u=Math.sqrt(1-s*s);if(Math.abs(u)<.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 c=Math.sin((1-t)*a)/u,l=Math.sin(t*a)/u;return this.w=o*c+this.w*l,this.x=i*c+this.x*l,this.y=n*c+this.y*l,this.z=r*c+this.z*l,this},setFromUnitVectors:(ue=1e-6,function(e,t){return void 0===se&&(se=new oe),(ae=e.dot(t)+1)<ue?(ae=0,Math.abs(e.x)>Math.abs(e.z)?se.set(-e.y,e.x,0):se.set(0,-e.z,e.y)):se.crossVectors(e,t),this.x=se.x,this.y=se.y,this.z=se.z,this.w=ae,this.normalize(),this})};var he=new le({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),de=new le({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004}),pe={CardboardV1:new fe({id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]}),CardboardV2:new fe({id:"CardboardV2",label:"Cardboard I/O 2015",fov:60,interLensDistance:.064,baselineLensDistance:.035,screenLensDistance:.039,distortionCoefficients:[.34,.55],inverseCoefficients:[-.33836704,-.18162185,.862655,-1.2462051,1.0560602,-.58208317,.21609078,-.05444823,.009177956,-.0009904169,6183535e-11,-16981803e-13]})};function Ae(e,t){this.viewer=pe.CardboardV2,this.updateDeviceParams(e),this.distortion=new ie(this.viewer.distortionCoefficients);for(var i=0;i<t.length;i++){var n=t[i];pe[n.id]=new fe(n)}}function fe(e){this.id=e.id,this.label=e.label,this.fov=e.fov,this.interLensDistance=e.interLensDistance,this.baselineLensDistance=e.baselineLensDistance,this.screenLensDistance=e.screenLensDistance,this.distortionCoefficients=e.distortionCoefficients,this.inverseCoefficients=e.inverseCoefficients}Ae.prototype.updateDeviceParams=function(e){this.device=this.determineDevice_(e)||this.device},Ae.prototype.getDevice=function(){return this.device},Ae.prototype.setViewer=function(e){this.viewer=e,this.distortion=new ie(this.viewer.distortionCoefficients)},Ae.prototype.determineDevice_=function(e){if(!e)return h()?(console.warn("Using fallback iOS device measurements."),de):(console.warn("Using fallback Android device measurements."),he);var t=.0254,i=t/e.xdpi,n=t/e.ydpi;return new le({widthMeters:i*N(),heightMeters:n*D(),bevelMeters:.001*e.bevelMm})},Ae.prototype.getDistortedFieldOfViewLeftEye=function(){var e=this.viewer,t=this.device,i=this.distortion,n=e.screenLensDistance,r=(t.widthMeters-e.interLensDistance)/2,o=e.interLensDistance/2,s=e.baselineLensDistance-t.bevelMeters,a=t.heightMeters-s,u=re*Math.atan(i.distort(r/n)),c=re*Math.atan(i.distort(o/n)),l=re*Math.atan(i.distort(s/n)),h=re*Math.atan(i.distort(a/n));return{leftDegrees:Math.min(u,e.fov),rightDegrees:Math.min(c,e.fov),downDegrees:Math.min(l,e.fov),upDegrees:Math.min(h,e.fov)}},Ae.prototype.getLeftEyeVisibleTanAngles=function(){var e=this.viewer,t=this.device,i=this.distortion,n=Math.tan(-ne*e.fov),r=Math.tan(ne*e.fov),o=Math.tan(ne*e.fov),s=Math.tan(-ne*e.fov),a=t.widthMeters/4,u=t.heightMeters/2,c=e.baselineLensDistance-t.bevelMeters-u,l=e.interLensDistance/2-a,h=-c,d=e.screenLensDistance,p=i.distort((l-a)/d),A=i.distort((h+u)/d),f=i.distort((l+a)/d),M=i.distort((h-u)/d),g=new Float32Array(4);return g[0]=Math.max(n,p),g[1]=Math.min(r,A),g[2]=Math.min(o,f),g[3]=Math.max(s,M),g},Ae.prototype.getLeftEyeNoLensTanAngles=function(){var e=this.viewer,t=this.device,i=this.distortion,n=new Float32Array(4),r=i.distortInverse(Math.tan(-ne*e.fov)),o=i.distortInverse(Math.tan(ne*e.fov)),s=i.distortInverse(Math.tan(ne*e.fov)),a=i.distortInverse(Math.tan(-ne*e.fov)),u=t.widthMeters/4,c=t.heightMeters/2,l=e.baselineLensDistance-t.bevelMeters-c,h=e.interLensDistance/2-u,d=-l,p=e.screenLensDistance,A=(h-u)/p,f=(d+c)/p,M=(h+u)/p,g=(d-c)/p;return n[0]=Math.max(r,A),n[1]=Math.min(o,f),n[2]=Math.min(s,M),n[3]=Math.max(a,g),n},Ae.prototype.getLeftEyeVisibleScreenRect=function(e){var t=this.viewer,i=this.device,n=t.screenLensDistance,r=(i.widthMeters-t.interLensDistance)/2,o=t.baselineLensDistance-i.bevelMeters,s=(e[0]*n+r)/i.widthMeters,a=(e[1]*n+o)/i.heightMeters,u=(e[2]*n+r)/i.widthMeters,c=(e[3]*n+o)/i.heightMeters;return{x:s,y:c,width:u-s,height:a-c}},Ae.prototype.getFieldOfViewLeftEye=function(e){return e?this.getUndistortedFieldOfViewLeftEye():this.getDistortedFieldOfViewLeftEye()},Ae.prototype.getFieldOfViewRightEye=function(e){var t=this.getFieldOfViewLeftEye(e);return{leftDegrees:t.rightDegrees,rightDegrees:t.leftDegrees,upDegrees:t.upDegrees,downDegrees:t.downDegrees}},Ae.prototype.getUndistortedFieldOfViewLeftEye=function(){var e=this.getUndistortedParams_();return{leftDegrees:re*Math.atan(e.outerDist),rightDegrees:re*Math.atan(e.innerDist),downDegrees:re*Math.atan(e.bottomDist),upDegrees:re*Math.atan(e.topDist)}},Ae.prototype.getUndistortedViewportLeftEye=function(){var e=this.getUndistortedParams_(),t=this.viewer,i=this.device,n=t.screenLensDistance,r=i.widthMeters/n,o=i.heightMeters/n,s=i.width/r,a=i.height/o,u=Math.round((e.eyePosX-e.outerDist)*s),c=Math.round((e.eyePosY-e.bottomDist)*a);return{x:u,y:c,width:Math.round((e.eyePosX+e.innerDist)*s)-u,height:Math.round((e.eyePosY+e.topDist)*a)-c}},Ae.prototype.getUndistortedParams_=function(){var e=this.viewer,t=this.device,i=this.distortion,n=e.screenLensDistance,r=e.interLensDistance/2/n,o=t.widthMeters/n,s=t.heightMeters/n,a=o/2-r,u=(e.baselineLensDistance-t.bevelMeters)/n,c=e.fov,l=i.distortInverse(Math.tan(ne*c)),h=Math.min(a,l),d=Math.min(r,l),p=Math.min(u,l);return{outerDist:h,innerDist:d,topDist:Math.min(s-u,l),bottomDist:p,eyePosX:a,eyePosY:u}},Ae.Viewers=pe;var Me={format:1,last_updated:"2019-11-09T17:36:14Z",devices:[{type:"android",rules:[{mdmh:"asus/*/Nexus 7/*"},{ua:"Nexus 7"}],dpi:[320.8,323],bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X00PD/*"},{ua:"ASUS_X00PD"}],dpi:245,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X008D/*"},{ua:"ASUS_X008D"}],dpi:282,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_Z00AD/*"},{ua:"ASUS_Z00AD"}],dpi:[403,404.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2 XL/*"},{ua:"Pixel 2 XL"}],dpi:537.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3 XL/*"},{ua:"Pixel 3 XL"}],dpi:[558.5,553.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel XL/*"},{ua:"Pixel XL"}],dpi:[537.9,533],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3/*"},{ua:"Pixel 3"}],dpi:442.4,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2/*"},{ua:"Pixel 2"}],dpi:441,bw:3,ac:500},{type:"android",rules:[{mdmh:"Google/*/Pixel/*"},{ua:"Pixel"}],dpi:[432.6,436.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC6435LVW/*"},{ua:"HTC6435LVW"}],dpi:[449.7,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC One XL/*"},{ua:"HTC One XL"}],dpi:[315.3,314.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"htc/*/Nexus 9/*"},{ua:"Nexus 9"}],dpi:289,bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One M9/*"},{ua:"HTC One M9"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One_M8/*"},{ua:"HTC One_M8"}],dpi:[449.7,447.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One/*"},{ua:"HTC One"}],dpi:472.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/Nexus 6P/*"},{ua:"Nexus 6P"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/BLN-L24/*"},{ua:"HONORBLN-L24"}],dpi:480,bw:4,ac:500},{type:"android",rules:[{mdmh:"Huawei/*/BKL-L09/*"},{ua:"BKL-L09"}],dpi:403,bw:3.47,ac:500},{type:"android",rules:[{mdmh:"LENOVO/*/Lenovo PB2-690Y/*"},{ua:"Lenovo PB2-690Y"}],dpi:[457.2,454.713],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5X/*"},{ua:"Nexus 5X"}],dpi:[422,419.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS345/*"},{ua:"LGMS345"}],dpi:[221.7,219.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D800/*"},{ua:"LG-D800"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D850/*"},{ua:"LG-D850"}],dpi:[537.9,541.9],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/VS985 4G/*"},{ua:"VS985 4G"}],dpi:[537.9,535.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5/*"},{ua:"Nexus 5 B"}],dpi:[442.4,444.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 4/*"},{ua:"Nexus 4"}],dpi:[319.8,318.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LG-P769/*"},{ua:"LG-P769"}],dpi:[240.6,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS323/*"},{ua:"LGMS323"}],dpi:[206.6,204.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGLS996/*"},{ua:"LGLS996"}],dpi:[403.4,401.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/4560MMX/*"},{ua:"4560MMX"}],dpi:[240,219.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/A250/*"},{ua:"Micromax A250"}],dpi:[480,446.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/Micromax AQ4501/*"},{ua:"Micromax AQ4501"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/G5/*"},{ua:"Moto G (5) Plus"}],dpi:[403.4,403],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/DROID RAZR/*"},{ua:"DROID RAZR"}],dpi:[368.1,256.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT830C/*"},{ua:"XT830C"}],dpi:[254,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1021/*"},{ua:"XT1021"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1023/*"},{ua:"XT1023"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1028/*"},{ua:"XT1028"}],dpi:[326.6,327.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1034/*"},{ua:"XT1034"}],dpi:[326.6,328.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1053/*"},{ua:"XT1053"}],dpi:[315.3,316.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1562/*"},{ua:"XT1562"}],dpi:[403.4,402.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/Nexus 6/*"},{ua:"Nexus 6 B"}],dpi:[494.3,489.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1063/*"},{ua:"XT1063"}],dpi:[295,296.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1064/*"},{ua:"XT1064"}],dpi:[295,295.6],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1092/*"},{ua:"XT1092"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1095/*"},{ua:"XT1095"}],dpi:[422,423.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/G4/*"},{ua:"Moto G (4)"}],dpi:401,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/A0001/*"},{ua:"A0001"}],dpi:[403.4,401],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1001/*"},{ua:"ONE E1001"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1003/*"},{ua:"ONE E1003"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1005/*"},{ua:"ONE E1005"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2001/*"},{ua:"ONE A2001"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2003/*"},{ua:"ONE A2003"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2005/*"},{ua:"ONE A2005"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3000/*"},{ua:"ONEPLUS A3000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3003/*"},{ua:"ONEPLUS A3003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3010/*"},{ua:"ONEPLUS A3010"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A5000/*"},{ua:"ONEPLUS A5000 "}],dpi:[403.411,399.737],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A5010/*"},{ua:"ONEPLUS A5010"}],dpi:[403,400],bw:2,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6000/*"},{ua:"ONEPLUS A6000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6003/*"},{ua:"ONEPLUS A6003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6010/*"},{ua:"ONEPLUS A6010"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6013/*"},{ua:"ONEPLUS A6013"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OPPO/*/X909/*"},{ua:"X909"}],dpi:[442.4,444.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9082/*"},{ua:"GT-I9082"}],dpi:[184.7,185.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G360P/*"},{ua:"SM-G360P"}],dpi:[196.7,205.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Nexus S/*"},{ua:"Nexus S"}],dpi:[234.5,229.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[304.8,303.9],bw:5,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-T230NU/*"},{ua:"SM-T230NU"}],dpi:216,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SGH-T399/*"},{ua:"SGH-T399"}],dpi:[217.7,231.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SGH-M919/*"},{ua:"SGH-M919"}],dpi:[440.8,437.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N9005/*"},{ua:"SM-N9005"}],dpi:[386.4,387],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SM-N900A/*"},{ua:"SAMSUNG-SM-N900A"}],dpi:[386.4,387.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9500/*"},{ua:"GT-I9500"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/GT-I9505/*"},{ua:"GT-I9505"}],dpi:439.4,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900F/*"},{ua:"SM-G900F"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900M/*"},{ua:"SM-G900M"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G800F/*"},{ua:"SM-G800F"}],dpi:326.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G906S/*"},{ua:"SM-G906S"}],dpi:[562.7,572.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[306.7,304.8],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-T535/*"},{ua:"SM-T535"}],dpi:[142.6,136.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-N920C/*"},{ua:"SM-N920C"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920P/*"},{ua:"SM-N920P"}],dpi:[386.3655,390.144],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920W8/*"},{ua:"SM-N920W8"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300I/*"},{ua:"GT-I9300I"}],dpi:[304.8,305.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9195/*"},{ua:"GT-I9195"}],dpi:[249.4,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SPH-L520/*"},{ua:"SPH-L520"}],dpi:[249.4,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SGH-I717/*"},{ua:"SAMSUNG-SGH-I717"}],dpi:285.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SPH-D710/*"},{ua:"SPH-D710"}],dpi:[217.7,204.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-N7100/*"},{ua:"GT-N7100"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SCH-I605/*"},{ua:"SCH-I605"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Galaxy Nexus/*"},{ua:"Galaxy Nexus"}],dpi:[315.3,314.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910H/*"},{ua:"SM-N910H"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910C/*"},{ua:"SM-N910C"}],dpi:[515.2,520.2],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G130M/*"},{ua:"SM-G130M"}],dpi:[165.9,164.8],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G928I/*"},{ua:"SM-G928I"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G920F/*"},{ua:"SM-G920F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G920P/*"},{ua:"SM-G920P"}],dpi:[522.5,577],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G925F/*"},{ua:"SM-G925F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G925V/*"},{ua:"SM-G925V"}],dpi:[522.5,576.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G930F/*"},{ua:"SM-G930F"}],dpi:576.6,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G935F/*"},{ua:"SM-G935F"}],dpi:533,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G950F/*"},{ua:"SM-G950F"}],dpi:[562.707,565.293],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955U/*"},{ua:"SM-G955U"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955F/*"},{ua:"SM-G955F"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G960F/*"},{ua:"SM-G960F"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9600/*"},{ua:"SM-G9600"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960T/*"},{ua:"SM-G960T"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960N/*"},{ua:"SM-G960N"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960U/*"},{ua:"SM-G960U"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9608/*"},{ua:"SM-G9608"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960FD/*"},{ua:"SM-G960FD"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960W/*"},{ua:"SM-G960W"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G965F/*"},{ua:"SM-G965F"}],dpi:529,bw:2,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/C6903/*"},{ua:"C6903"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"Sony/*/D6653/*"},{ua:"D6653"}],dpi:[428.6,427.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6653/*"},{ua:"E6653"}],dpi:[428.6,425.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6853/*"},{ua:"E6853"}],dpi:[403.4,401.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/SGP321/*"},{ua:"SGP321"}],dpi:[224.7,224.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"TCT/*/ALCATEL ONE TOUCH Fierce/*"},{ua:"ALCATEL ONE TOUCH Fierce"}],dpi:[240,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"THL/*/thl 5000/*"},{ua:"thl 5000"}],dpi:[480,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Fly/*/IQ4412/*"},{ua:"IQ4412"}],dpi:307.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"ZTE/*/ZTE Blade L2/*"},{ua:"ZTE Blade L2"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"BENEVE/*/VR518/*"},{ua:"VR518"}],dpi:480,bw:3,ac:500},{type:"ios",rules:[{res:[640,960]}],dpi:[325.1,328.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",rules:[{res:[1242,2208]}],dpi:[453.6,458.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2001]}],dpi:[410.9,415.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2436]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/EML-L29/*"},{ua:"EML-L29"}],dpi:428,bw:3.45,ac:500},{type:"android",rules:[{mdmh:"Nokia/*/Nokia 7.1/*"},{ua:"Nokia 7.1"}],dpi:[432,431.9],bw:3,ac:500},{type:"ios",rules:[{res:[1242,2688]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G570M/*"},{ua:"SM-G570M"}],dpi:320,bw:3.684,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G970F/*"},{ua:"SM-G970F"}],dpi:438,bw:2.281,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G973F/*"},{ua:"SM-G973F"}],dpi:550,bw:2.002,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G975F/*"},{ua:"SM-G975F"}],dpi:522,bw:2.054,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G977F/*"},{ua:"SM-G977F"}],dpi:505,bw:2.334,ac:500},{type:"ios",rules:[{res:[828,1792]}],dpi:326,bw:5,ac:500}]};function ge(e,t){if(this.dpdb=Me,this.recalculateDeviceParams_(),e){this.onDeviceParamsUpdated=t;var i=new XMLHttpRequest,n=this;i.open("GET",e,!0),i.addEventListener("load",(function(){n.loading=!1,i.status>=200&&i.status<=299?(n.dpdb=JSON.parse(i.response),n.recalculateDeviceParams_()):console.error("Error loading online DPDB!")})),i.send()}}function ye(e){this.xdpi=e.xdpi,this.ydpi=e.ydpi,this.bevelMm=e.bevelMm}function me(e,t){this.set(e,t)}function ve(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new me,this.currentGyroMeasurement=new me,this.previousGyroMeasurement=new me,h()?this.filterQ=new ce(-1,0,0,1):this.filterQ=new ce(1,0,0,1),this.previousFilterQ=new ce,this.previousFilterQ.copy(this.filterQ),this.accelQ=new ce,this.isOrientationInitialized=!1,this.estimatedGravity=new oe,this.measuredGravity=new oe,this.gyroIntegralQ=new ce}function Ne(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new ce,this.previousTimestampS=null,this.deltaQ=new ce,this.outQ=new ce}function De(t,i,n,r){this.yawOnly=n,this.accelerometer=new oe,this.gyroscope=new oe,this.filter=new ve(t,r),this.posePredictor=new Ne(i,r),this.isFirefoxAndroid=A(),this.isIOS=h();var o=f();this.isDeviceMotionInRadians=!this.isIOS&&o&&o<66,this.isWithoutDeviceMotion=g()||M(),this.filterToWorldQ=new ce,h()?this.filterToWorldQ.setFromAxisAngle(new oe(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new oe(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new ce,this.worldToScreenQ=new ce,this.originalPoseAdjustQ=new ce,this.originalPoseAdjustQ.setFromAxisAngle(new oe(0,0,1),-e.orientation*Math.PI/180),this.setScreenTransform_(),m()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new ce,this.orientationOut_=new Float32Array(4),this.start()}ge.prototype.getDeviceParams=function(){return this.deviceParams},ge.prototype.recalculateDeviceParams_=function(){var e=this.calcDeviceParams_();e?(this.deviceParams=e,this.onDeviceParamsUpdated&&this.onDeviceParamsUpdated(this.deviceParams)):console.error("Failed to recalculate device parameters.")},ge.prototype.calcDeviceParams_=function(){var i=this.dpdb;if(!i)return console.error("DPDB not available."),null;if(1!=i.format)return console.error("DPDB has unexpected format version."),null;if(!i.devices||!i.devices.length)return console.error("DPDB does not have a devices section."),null;var n=t.userAgent||t.vendor||e.opera,r=N(),o=D();if(!i.devices)return console.error("DPDB has no devices section."),null;for(var s=0;s<i.devices.length;s++){var a=i.devices[s];if(a.rules)if("ios"==a.type||"android"==a.type){if(h()==("ios"==a.type)){for(var u=!1,c=0;c<a.rules.length;c++){var l=a.rules[c];if(this.ruleMatches_(l,n,r,o)){u=!0;break}}if(u)return new ye({xdpi:a.dpi[0]||a.dpi,ydpi:a.dpi[1]||a.dpi,bevelMm:a.bw})}}else console.warn("Device["+s+"] has invalid type.");else console.warn("Device["+s+"] has no rules section.")}return console.warn("No DPDB device match."),null},ge.prototype.ruleMatches_=function(e,t,i,n){if(!e.ua&&!e.res)return!1;if(e.ua&&"SM"===e.ua.substring(0,2)&&(e.ua=e.ua.substring(0,7)),e.ua&&t.indexOf(e.ua)<0)return!1;if(e.res){if(!e.res[0]||!e.res[1])return!1;var r=e.res[0],o=e.res[1];if(Math.min(i,n)!=Math.min(r,o)||Math.max(i,n)!=Math.max(r,o))return!1}return!0},me.prototype.set=function(e,t){this.sample=e,this.timestampS=t},me.prototype.copy=function(e){this.set(e.sample,e.timestampS)},ve.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},ve.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var i=t-this.previousGyroMeasurement.timestampS;v(i)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},ve.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var i=new ce;i.copy(this.filterQ),i.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(i),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var n=new ce;n.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),n.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",re*C(n),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var r=new ce;r.copy(this.filterQ),r.multiply(n),this.filterQ.slerp(r,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},ve.prototype.getOrientation=function(){return this.filterQ},ve.prototype.accelToQuaternion_=function(e){var t=new oe;t.copy(e),t.normalize();var i=new ce;return i.setFromUnitVectors(new oe(0,0,-1),t),i.inverse(),i},ve.prototype.gyroToQuaternionDelta_=function(e,t){var i=new ce,n=new oe;return n.copy(e),n.normalize(),i.setFromAxisAngle(n,e.length()*t),i},Ne.prototype.getPrediction=function(e,t,i){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=i,e;var n=new oe;n.copy(t),n.normalize();var r=t.length();if(r<20*ne)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(re*r).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var o=r*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(n,o),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=i,this.outQ},De.prototype.getPosition=function(){return null},De.prototype.getOrientation=function(){var t=void 0;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ)return this.deviceOrientationFixQ=this.deviceOrientationFixQ||function(){var t=(new ce).setFromAxisAngle(new oe(0,0,-1),0),i=new ce;return-90===e.orientation?i.setFromAxisAngle(new oe(0,1,0),Math.PI/-2):i.setFromAxisAngle(new oe(0,1,0),Math.PI/2),t.multiply(i)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((i=new ce).setFromAxisAngle(new oe(1,0,0),-Math.PI/2),i),t=this._deviceOrientationQ,(n=new ce).copy(t),n.multiply(this.deviceOrientationFilterToWorldQ),n.multiply(this.resetQ),n.multiply(this.worldToScreenQ),n.multiplyQuaternions(this.deviceOrientationFixQ,n),this.yawOnly&&(n.x=0,n.z=0,n.normalize()),this.orientationOut_[0]=n.x,this.orientationOut_[1]=n.y,this.orientationOut_[2]=n.z,this.orientationOut_[3]=n.w,this.orientationOut_;var i,n,r=this.filter.getOrientation();return t=this.posePredictor.getPrediction(r,this.gyroscope,this.previousTimestampS),(n=new ce).copy(this.filterToWorldQ),n.multiply(this.resetQ),n.multiply(t),n.multiply(this.worldToScreenQ),this.yawOnly&&(n.x=0,n.z=0,n.normalize()),this.orientationOut_[0]=n.x,this.orientationOut_[1]=n.y,this.orientationOut_[2]=n.z,this.orientationOut_[3]=n.w,this.orientationOut_},De.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),m()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},De.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new ce;var t=e.alpha,i=e.beta,n=e.gamma;t=(t||0)*Math.PI/180,i=(i||0)*Math.PI/180,n=(n||0)*Math.PI/180,this._deviceOrientationQ.setFromEulerYXZ(i,t,-n)},De.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},De.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,i=e.rotationRate,n=e.timeStamp/1e3,r=n-this.previousTimestampS;return r<0?(P("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=n)):r<=a||r>u?(P("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=n)):(this.accelerometer.set(-t.x,-t.y,-t.z),i&&(y()?this.gyroscope.set(-i.beta,i.alpha,i.gamma):this.gyroscope.set(i.alpha,i.beta,i.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,n)),this.filter.addAccelMeasurement(this.accelerometer,n),void(this.previousTimestampS=n))},De.prototype.onOrientationChange_=function(e){this.setScreenTransform_()},De.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&"devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent)},De.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),e.orientation){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new oe(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new oe(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},De.prototype.start=function(){this.onDeviceMotionCallback_=this.onDeviceMotion_.bind(this),this.onOrientationChangeCallback_=this.onOrientationChange_.bind(this),this.onMessageCallback_=this.onMessage_.bind(this),this.onDeviceOrientationCallback_=this.onDeviceOrientation_.bind(this),h()&&L()&&e.addEventListener("message",this.onMessageCallback_),e.addEventListener("orientationchange",this.onOrientationChangeCallback_),this.isWithoutDeviceMotion?e.addEventListener("deviceorientation",this.onDeviceOrientationCallback_):e.addEventListener("devicemotion",this.onDeviceMotionCallback_)},De.prototype.stop=function(){e.removeEventListener("devicemotion",this.onDeviceMotionCallback_),e.removeEventListener("deviceorientation",this.onDeviceOrientationCallback_),e.removeEventListener("orientationchange",this.onOrientationChangeCallback_),e.removeEventListener("message",this.onMessageCallback_)};var we=60,Te=new oe(1,0,0),xe=new oe(0,0,1),Ee=new ce;Ee.setFromAxisAngle(Te,-Math.PI/2),Ee.multiply((new ce).setFromAxisAngle(xe,Math.PI/2));var je=function(){function e(t){r(this,e),this.config=t,this.sensor=null,this.fusionSensor=null,this._out=new Float32Array(4),this.api=null,this.errors=[],this._sensorQ=new ce,this._outQ=new ce,this._onSensorRead=this._onSensorRead.bind(this),this._onSensorError=this._onSensorError.bind(this),this.init()}return o(e,[{key:"init",value:function(){var e=null;try{(e=new RelativeOrientationSensor({frequency:we,referenceFrame:"screen"})).addEventListener("error",this._onSensorError)}catch(e){this.errors.push(e),"SecurityError"===e.name?(console.error("Cannot construct sensors due to the Feature Policy"),console.warn('Attempting to fall back using "devicemotion"; however this will fail in the future without correct permissions.'),this.useDeviceMotion()):"ReferenceError"===e.name?this.useDeviceMotion():console.error(e)}e&&(this.api="sensor",this.sensor=e,this.sensor.addEventListener("reading",this._onSensorRead),this.sensor.start())}},{key:"useDeviceMotion",value:function(){this.api="devicemotion",this.fusionSensor=new De(this.config.K_FILTER,this.config.PREDICTION_TIME_S,this.config.YAW_ONLY,this.config.DEBUG),this.sensor&&(this.sensor.removeEventListener("reading",this._onSensorRead),this.sensor.removeEventListener("error",this._onSensorError),this.sensor=null)}},{key:"getOrientation",value:function(){if(this.fusionSensor)return this.fusionSensor.getOrientation();if(!this.sensor||!this.sensor.quaternion)return this._out[0]=this._out[1]=this._out[2]=0,this._out[3]=1,this._out;var e=this.sensor.quaternion;this._sensorQ.set(e[0],e[1],e[2],e[3]);var t=this._outQ;return t.copy(Ee),t.multiply(this._sensorQ),this.config.YAW_ONLY&&(t.x=t.z=0,t.normalize()),this._out[0]=t.x,this._out[1]=t.y,this._out[2]=t.z,this._out[3]=t.w,this._out}},{key:"_onSensorError",value:function(e){this.errors.push(e.error),"NotAllowedError"===e.error.name?console.error("Permission to access sensor was denied"):"NotReadableError"===e.error.name?console.error("Sensor could not be read"):console.error(e.error),this.useDeviceMotion()}},{key:"_onSensorRead",value:function(){}}]),e}(),ze="<svg width='198' height='240' viewBox='0 0 198 240' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M149.625 109.527l6.737 3.891v.886c0 .177.013.36.038.549.01.081.02.162.027.242.14 1.415.974 2.998 2.105 3.999l5.72 5.062.081-.09s4.382-2.53 5.235-3.024l25.97 14.993v54.001c0 .771-.386 1.217-.948 1.217-.233 0-.495-.076-.772-.236l-23.967-13.838-.014.024-27.322 15.775-.85-1.323c-4.731-1.529-9.748-2.74-14.951-3.61a.27.27 0 0 0-.007.024l-5.067 16.961-7.891 4.556-.037-.063v27.59c0 .772-.386 1.217-.948 1.217-.232 0-.495-.076-.772-.236l-42.473-24.522c-.95-.549-1.72-1.877-1.72-2.967v-1.035l-.021.047a5.111 5.111 0 0 0-1.816-.399 5.682 5.682 0 0 0-.546.001 13.724 13.724 0 0 1-1.918-.041c-1.655-.153-3.2-.6-4.404-1.296l-46.576-26.89.005.012-10.278-18.75c-1.001-1.827-.241-4.216 1.698-5.336l56.011-32.345a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.659 3.227 1.853l.005-.003.227.413-.006.004a9.63 9.63 0 0 0 1.477 2.018l.277.27c1.914 1.85 4.468 2.801 7.113 2.801 1.949 0 3.948-.517 5.775-1.572.013 0 7.319-4.219 7.319-4.219a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.658 3.226 1.853l3.25 5.928.022-.018 6.785 3.917-.105-.182 46.881-26.965m0-1.635c-.282 0-.563.073-.815.218l-46.169 26.556-5.41-3.124-3.005-5.481c-.913-1.667-2.699-2.702-4.66-2.703-1.011 0-2.02.274-2.917.792a3825 3825 0 0 1-7.275 4.195l-.044.024a9.937 9.937 0 0 1-4.957 1.353c-2.292 0-4.414-.832-5.976-2.342l-.252-.245a7.992 7.992 0 0 1-1.139-1.534 1.379 1.379 0 0 0-.06-.122l-.227-.414a1.718 1.718 0 0 0-.095-.154c-.938-1.574-2.673-2.545-4.571-2.545-1.011 0-2.02.274-2.917.792L3.125 155.502c-2.699 1.559-3.738 4.94-2.314 7.538l10.278 18.75c.177.323.448.563.761.704l46.426 26.804c1.403.81 3.157 1.332 5.072 1.508a15.661 15.661 0 0 0 2.146.046 4.766 4.766 0 0 1 .396 0c.096.004.19.011.283.022.109 1.593 1.159 3.323 2.529 4.114l42.472 24.522c.524.302 1.058.455 1.59.455 1.497 0 2.583-1.2 2.583-2.852v-26.562l7.111-4.105a1.64 1.64 0 0 0 .749-.948l4.658-15.593c4.414.797 8.692 1.848 12.742 3.128l.533.829a1.634 1.634 0 0 0 2.193.531l26.532-15.317L193 192.433c.523.302 1.058.455 1.59.455 1.497 0 2.583-1.199 2.583-2.852v-54.001c0-.584-.312-1.124-.818-1.416l-25.97-14.993a1.633 1.633 0 0 0-1.636.001c-.606.351-2.993 1.73-4.325 2.498l-4.809-4.255c-.819-.725-1.461-1.933-1.561-2.936a7.776 7.776 0 0 0-.033-.294 2.487 2.487 0 0 1-.023-.336v-.886c0-.584-.312-1.123-.817-1.416l-6.739-3.891a1.633 1.633 0 0 0-.817-.219' fill='#455A64'/><path d='M96.027 132.636l46.576 26.891c1.204.695 1.979 1.587 2.242 2.541l-.01.007-81.374 46.982h-.001c-1.654-.152-3.199-.6-4.403-1.295l-46.576-26.891 83.546-48.235' fill='#FAFAFA'/><path d='M63.461 209.174c-.008 0-.015 0-.022-.002-1.693-.156-3.228-.609-4.441-1.309l-46.576-26.89a.118.118 0 0 1 0-.203l83.546-48.235a.117.117 0 0 1 .117 0l46.576 26.891c1.227.708 2.021 1.612 2.296 2.611a.116.116 0 0 1-.042.124l-.021.016-81.375 46.981a.11.11 0 0 1-.058.016zm-50.747-28.303l46.401 26.79c1.178.68 2.671 1.121 4.32 1.276l81.272-46.922c-.279-.907-1.025-1.73-2.163-2.387l-46.517-26.857-83.313 48.1z' fill='#607D8B'/><path d='M148.327 165.471a5.85 5.85 0 0 1-.546.001c-1.894-.083-3.302-1.038-3.145-2.132a2.693 2.693 0 0 0-.072-1.105l-81.103 46.822c.628.058 1.272.073 1.918.042.182-.009.364-.009.546-.001 1.894.083 3.302 1.038 3.145 2.132l79.257-45.759' fill='#FFF'/><path d='M69.07 211.347a.118.118 0 0 1-.115-.134c.045-.317-.057-.637-.297-.925-.505-.61-1.555-1.022-2.738-1.074a5.966 5.966 0 0 0-.535.001 14.03 14.03 0 0 1-1.935-.041.117.117 0 0 1-.103-.092.116.116 0 0 1 .055-.126l81.104-46.822a.117.117 0 0 1 .171.07c.104.381.129.768.074 1.153-.045.316.057.637.296.925.506.61 1.555 1.021 2.739 1.073.178.008.357.008.535-.001a.117.117 0 0 1 .064.218l-79.256 45.759a.114.114 0 0 1-.059.016zm-3.405-2.372c.089 0 .177.002.265.006 1.266.056 2.353.488 2.908 1.158.227.274.35.575.36.882l78.685-45.429c-.036 0-.072-.001-.107-.003-1.267-.056-2.354-.489-2.909-1.158-.282-.34-.402-.724-.347-1.107a2.604 2.604 0 0 0-.032-.91L63.846 208.97a13.91 13.91 0 0 0 1.528.012c.097-.005.194-.007.291-.007z' fill='#607D8B'/><path d='M2.208 162.134c-1.001-1.827-.241-4.217 1.698-5.337l56.011-32.344c1.939-1.12 4.324-.546 5.326 1.281l.232.41a9.344 9.344 0 0 0 1.47 2.021l.278.27c3.325 3.214 8.583 3.716 12.888 1.23l7.319-4.22c1.94-1.119 4.324-.546 5.325 1.282l3.25 5.928-83.519 48.229-10.278-18.75z' fill='#FAFAFA'/><path d='M12.486 181.001a.112.112 0 0 1-.031-.005.114.114 0 0 1-.071-.056L2.106 162.19c-1.031-1.88-.249-4.345 1.742-5.494l56.01-32.344a4.328 4.328 0 0 1 2.158-.588c1.415 0 2.65.702 3.311 1.882.01.008.018.017.024.028l.227.414a.122.122 0 0 1 .013.038 9.508 9.508 0 0 0 1.439 1.959l.275.266c1.846 1.786 4.344 2.769 7.031 2.769 1.977 0 3.954-.538 5.717-1.557a.148.148 0 0 1 .035-.013l7.284-4.206a4.321 4.321 0 0 1 2.157-.588c1.427 0 2.672.716 3.329 1.914l3.249 5.929a.116.116 0 0 1-.044.157l-83.518 48.229a.116.116 0 0 1-.059.016zm49.53-57.004c-.704 0-1.41.193-2.041.557l-56.01 32.345c-1.882 1.086-2.624 3.409-1.655 5.179l10.221 18.645 83.317-48.112-3.195-5.829c-.615-1.122-1.783-1.792-3.124-1.792a4.08 4.08 0 0 0-2.04.557l-7.317 4.225a.148.148 0 0 1-.035.013 11.7 11.7 0 0 1-5.801 1.569c-2.748 0-5.303-1.007-7.194-2.835l-.278-.27a9.716 9.716 0 0 1-1.497-2.046.096.096 0 0 1-.013-.037l-.191-.347a.11.11 0 0 1-.023-.029c-.615-1.123-1.783-1.793-3.124-1.793z' fill='#607D8B'/><path d='M42.434 155.808c-2.51-.001-4.697-1.258-5.852-3.365-1.811-3.304-.438-7.634 3.059-9.654l12.291-7.098a7.599 7.599 0 0 1 3.789-1.033c2.51 0 4.697 1.258 5.852 3.365 1.811 3.304.439 7.634-3.059 9.654l-12.291 7.098a7.606 7.606 0 0 1-3.789 1.033zm13.287-20.683a7.128 7.128 0 0 0-3.555.971l-12.291 7.098c-3.279 1.893-4.573 5.942-2.883 9.024 1.071 1.955 3.106 3.122 5.442 3.122a7.13 7.13 0 0 0 3.556-.97l12.291-7.098c3.279-1.893 4.572-5.942 2.883-9.024-1.072-1.955-3.106-3.123-5.443-3.123z' fill='#607D8B'/><path d='M149.588 109.407l6.737 3.89v.887c0 .176.013.36.037.549.011.081.02.161.028.242.14 1.415.973 2.998 2.105 3.999l7.396 6.545c.177.156.358.295.541.415 1.579 1.04 2.95.466 3.062-1.282.049-.784.057-1.595.023-2.429l-.003-.16v-1.151l25.987 15.003v54c0 1.09-.77 1.53-1.72.982l-42.473-24.523c-.95-.548-1.72-1.877-1.72-2.966v-34.033' fill='#FAFAFA'/><path d='M194.553 191.25c-.257 0-.54-.085-.831-.253l-42.472-24.521c-.981-.567-1.779-1.943-1.779-3.068v-34.033h.234v34.033c0 1.051.745 2.336 1.661 2.866l42.473 24.521c.424.245.816.288 1.103.122.285-.164.442-.52.442-1.002v-53.933l-25.753-14.868.003 1.106c.034.832.026 1.654-.024 2.439-.054.844-.396 1.464-.963 1.746-.619.309-1.45.173-2.28-.373a5.023 5.023 0 0 1-.553-.426l-7.397-6.544c-1.158-1.026-1.999-2.625-2.143-4.076a9.624 9.624 0 0 0-.027-.238 4.241 4.241 0 0 1-.038-.564v-.82l-6.68-3.856.117-.202 6.738 3.89.058.034v.954c0 .171.012.351.036.533.011.083.021.165.029.246.138 1.395.948 2.935 2.065 3.923l7.397 6.545c.173.153.35.289.527.406.758.499 1.504.63 2.047.359.49-.243.786-.795.834-1.551.05-.778.057-1.591.024-2.417l-.004-.163v-1.355l.175.1 25.987 15.004.059.033v54.068c0 .569-.198.996-.559 1.204a1.002 1.002 0 0 1-.506.131' fill='#607D8B'/><path d='M145.685 163.161l24.115 13.922-25.978 14.998-1.462-.307c-6.534-2.17-13.628-3.728-21.019-4.616-4.365-.524-8.663 1.096-9.598 3.62a2.746 2.746 0 0 0-.011 1.928c1.538 4.267 4.236 8.363 7.995 12.135l.532.845-25.977 14.997-24.115-13.922 75.518-43.6' fill='#FFF'/><path d='M94.282 220.818l-.059-.033-24.29-14.024.175-.101 75.577-43.634.058.033 24.29 14.024-26.191 15.122-.045-.01-1.461-.307c-6.549-2.174-13.613-3.725-21.009-4.614a13.744 13.744 0 0 0-1.638-.097c-3.758 0-7.054 1.531-7.837 3.642a2.62 2.62 0 0 0-.01 1.848c1.535 4.258 4.216 8.326 7.968 12.091l.016.021.526.835.006.01.064.102-.105.061-25.977 14.998-.058.033zm-23.881-14.057l23.881 13.788 24.802-14.32c.546-.315.846-.489 1.017-.575l-.466-.74c-3.771-3.787-6.467-7.881-8.013-12.168a2.851 2.851 0 0 1 .011-2.008c.815-2.199 4.203-3.795 8.056-3.795.557 0 1.117.033 1.666.099 7.412.891 14.491 2.445 21.041 4.621.836.175 1.215.254 1.39.304l25.78-14.884-23.881-13.788-75.284 43.466z' fill='#607D8B'/><path d='M167.23 125.979v50.871l-27.321 15.773-6.461-14.167c-.91-1.996-3.428-1.738-5.624.574a10.238 10.238 0 0 0-2.33 4.018l-6.46 21.628-27.322 15.774v-50.871l75.518-43.6' fill='#FFF'/><path d='M91.712 220.567a.127.127 0 0 1-.059-.016.118.118 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.519-43.6a.117.117 0 0 1 .175.101v50.871c0 .041-.023.08-.059.1l-27.321 15.775a.118.118 0 0 1-.094.01.12.12 0 0 1-.071-.063l-6.46-14.168c-.375-.822-1.062-1.275-1.934-1.275-1.089 0-2.364.686-3.5 1.881a10.206 10.206 0 0 0-2.302 3.972l-6.46 21.627a.118.118 0 0 1-.054.068L91.77 220.551a.12.12 0 0 1-.058.016zm.117-50.92v50.601l27.106-15.65 6.447-21.583a10.286 10.286 0 0 1 2.357-4.065c1.18-1.242 2.517-1.954 3.669-1.954.969 0 1.731.501 2.146 1.411l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M168.543 126.213v50.87l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.624.574a10.248 10.248 0 0 0-2.33 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6' fill='#FFF'/><path d='M93.025 220.8a.123.123 0 0 1-.059-.015.12.12 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.518-43.6a.112.112 0 0 1 .117 0c.036.02.059.059.059.1v50.871a.116.116 0 0 1-.059.101l-27.321 15.774a.111.111 0 0 1-.094.01.115.115 0 0 1-.071-.062l-6.46-14.168c-.375-.823-1.062-1.275-1.935-1.275-1.088 0-2.363.685-3.499 1.881a10.19 10.19 0 0 0-2.302 3.971l-6.461 21.628a.108.108 0 0 1-.053.067l-27.322 15.775a.12.12 0 0 1-.058.015zm.117-50.919v50.6l27.106-15.649 6.447-21.584a10.293 10.293 0 0 1 2.357-4.065c1.179-1.241 2.516-1.954 3.668-1.954.969 0 1.732.502 2.147 1.412l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M169.8 177.083l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.625.574a10.246 10.246 0 0 0-2.329 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6v50.87z' fill='#FAFAFA'/><path d='M94.282 220.917a.234.234 0 0 1-.234-.233v-50.871c0-.083.045-.161.117-.202l75.518-43.601a.234.234 0 1 1 .35.202v50.871a.233.233 0 0 1-.116.202l-27.322 15.775a.232.232 0 0 1-.329-.106l-6.461-14.168c-.36-.789-.992-1.206-1.828-1.206-1.056 0-2.301.672-3.415 1.844a10.099 10.099 0 0 0-2.275 3.924l-6.46 21.628a.235.235 0 0 1-.107.136l-27.322 15.774a.23.23 0 0 1-.116.031zm.233-50.969v50.331l26.891-15.525 6.434-21.539a10.41 10.41 0 0 1 2.384-4.112c1.201-1.265 2.569-1.991 3.753-1.991 1.018 0 1.818.526 2.253 1.48l6.354 13.934 26.982-15.578v-50.331l-75.051 43.331z' fill='#607D8B'/><path d='M109.894 199.943c-1.774 0-3.241-.725-4.244-2.12a.224.224 0 0 1 .023-.294.233.233 0 0 1 .301-.023c.78.547 1.705.827 2.75.827 1.323 0 2.754-.439 4.256-1.306 5.311-3.067 9.631-10.518 9.631-16.611 0-1.927-.442-3.56-1.278-4.724a.232.232 0 0 1 .323-.327c1.671 1.172 2.591 3.381 2.591 6.219 0 6.242-4.426 13.863-9.865 17.003-1.574.908-3.084 1.356-4.488 1.356zm-2.969-1.542c.813.651 1.82.877 2.968.877h.001c1.321 0 2.753-.327 4.254-1.194 5.311-3.067 9.632-10.463 9.632-16.556 0-1.979-.463-3.599-1.326-4.761.411 1.035.625 2.275.625 3.635 0 6.243-4.426 13.883-9.865 17.023-1.574.909-3.084 1.317-4.49 1.317-.641 0-1.243-.149-1.799-.341z' fill='#607D8B'/><path d='M113.097 197.23c5.384-3.108 9.748-10.636 9.748-16.814 0-2.051-.483-3.692-1.323-4.86-1.784-1.252-4.374-1.194-7.257.47-5.384 3.108-9.748 10.636-9.748 16.814 0 2.051.483 3.692 1.323 4.86 1.784 1.252 4.374 1.194 7.257-.47' fill='#FAFAFA'/><path d='M108.724 198.614c-1.142 0-2.158-.213-3.019-.817-.021-.014-.04.014-.055-.007-.894-1.244-1.367-2.948-1.367-4.973 0-6.242 4.426-13.864 9.865-17.005 1.574-.908 3.084-1.363 4.49-1.363 1.142 0 2.158.309 3.018.913a.23.23 0 0 1 .056.056c.894 1.244 1.367 2.972 1.367 4.997 0 6.243-4.426 13.783-9.865 16.923-1.574.909-3.084 1.276-4.49 1.276zm-2.718-1.109c.774.532 1.688.776 2.718.776 1.323 0 2.754-.413 4.256-1.28 5.311-3.066 9.631-10.505 9.631-16.598 0-1.909-.434-3.523-1.255-4.685-.774-.533-1.688-.799-2.718-.799-1.323 0-2.755.441-4.256 1.308-5.311 3.066-9.631 10.506-9.631 16.599 0 1.909.434 3.517 1.255 4.679z' fill='#607D8B'/><path d='M149.318 114.262l-9.984 8.878 15.893 11.031 5.589-6.112-11.498-13.797' fill='#FAFAFA'/><path d='M169.676 120.84l-9.748 5.627c-3.642 2.103-9.528 2.113-13.147.024-3.62-2.089-3.601-5.488.041-7.591l9.495-5.608-6.729-3.885-81.836 47.071 45.923 26.514 3.081-1.779c.631-.365.869-.898.618-1.39-2.357-4.632-2.593-9.546-.683-14.262 5.638-13.92 24.509-24.815 48.618-28.07 8.169-1.103 16.68-.967 24.704.394.852.145 1.776.008 2.407-.357l3.081-1.778-25.825-14.91' fill='#FAFAFA'/><path d='M113.675 183.459a.47.47 0 0 1-.233-.062l-45.924-26.515a.468.468 0 0 1 .001-.809l81.836-47.071a.467.467 0 0 1 .466 0l6.729 3.885a.467.467 0 0 1-.467.809l-6.496-3.75-80.9 46.533 44.988 25.973 2.848-1.644c.192-.111.62-.409.435-.773-2.416-4.748-2.658-9.814-.7-14.65 2.806-6.927 8.885-13.242 17.582-18.263 8.657-4.998 19.518-8.489 31.407-10.094 8.198-1.107 16.79-.97 24.844.397.739.125 1.561.007 2.095-.301l2.381-1.374-25.125-14.506a.467.467 0 0 1 .467-.809l25.825 14.91a.467.467 0 0 1 0 .809l-3.081 1.779c-.721.417-1.763.575-2.718.413-7.963-1.351-16.457-1.486-24.563-.392-11.77 1.589-22.512 5.039-31.065 9.977-8.514 4.916-14.456 11.073-17.183 17.805-1.854 4.578-1.623 9.376.666 13.875.37.725.055 1.513-.8 2.006l-3.081 1.78a.476.476 0 0 1-.234.062' fill='#455A64'/><path d='M153.316 128.279c-2.413 0-4.821-.528-6.652-1.586-1.818-1.049-2.82-2.461-2.82-3.975 0-1.527 1.016-2.955 2.861-4.02l9.493-5.607a.233.233 0 1 1 .238.402l-9.496 5.609c-1.696.979-2.628 2.263-2.628 3.616 0 1.34.918 2.608 2.585 3.571 3.549 2.049 9.343 2.038 12.914-.024l9.748-5.628a.234.234 0 0 1 .234.405l-9.748 5.628c-1.858 1.072-4.296 1.609-6.729 1.609' fill='#607D8B'/><path d='M113.675 182.992l-45.913-26.508M113.675 183.342a.346.346 0 0 1-.175-.047l-45.913-26.508a.35.35 0 1 1 .35-.607l45.913 26.508a.35.35 0 0 1-.175.654' fill='#455A64'/><path d='M67.762 156.484v54.001c0 1.09.77 2.418 1.72 2.967l42.473 24.521c.95.549 1.72.11 1.72-.98v-54.001' fill='#FAFAFA'/><path d='M112.727 238.561c-.297 0-.62-.095-.947-.285l-42.473-24.521c-1.063-.613-1.895-2.05-1.895-3.27v-54.001a.35.35 0 1 1 .701 0v54.001c0 .96.707 2.18 1.544 2.663l42.473 24.522c.344.198.661.243.87.122.206-.119.325-.411.325-.799v-54.001a.35.35 0 1 1 .7 0v54.001c0 .655-.239 1.154-.675 1.406a1.235 1.235 0 0 1-.623.162' fill='#455A64'/><path d='M112.86 147.512h-.001c-2.318 0-4.499-.522-6.142-1.471-1.705-.984-2.643-2.315-2.643-3.749 0-1.445.952-2.791 2.68-3.788l12.041-6.953c1.668-.962 3.874-1.493 6.212-1.493 2.318 0 4.499.523 6.143 1.472 1.704.984 2.643 2.315 2.643 3.748 0 1.446-.952 2.791-2.68 3.789l-12.042 6.952c-1.668.963-3.874 1.493-6.211 1.493zm12.147-16.753c-2.217 0-4.298.497-5.861 1.399l-12.042 6.952c-1.502.868-2.33 1.998-2.33 3.182 0 1.173.815 2.289 2.293 3.142 1.538.889 3.596 1.378 5.792 1.378h.001c2.216 0 4.298-.497 5.861-1.399l12.041-6.953c1.502-.867 2.33-1.997 2.33-3.182 0-1.172-.814-2.288-2.292-3.142-1.539-.888-3.596-1.377-5.793-1.377z' fill='#607D8B'/><path d='M165.63 123.219l-5.734 3.311c-3.167 1.828-8.286 1.837-11.433.02-3.147-1.817-3.131-4.772.036-6.601l5.734-3.31 11.397 6.58' fill='#FAFAFA'/><path d='M154.233 117.448l9.995 5.771-4.682 2.704c-1.434.827-3.352 1.283-5.399 1.283-2.029 0-3.923-.449-5.333-1.263-1.29-.744-2-1.694-2-2.674 0-.991.723-1.955 2.036-2.713l5.383-3.108m0-.809l-5.734 3.31c-3.167 1.829-3.183 4.784-.036 6.601 1.568.905 3.623 1.357 5.684 1.357 2.077 0 4.159-.46 5.749-1.377l5.734-3.311-11.397-6.58M145.445 179.667c-1.773 0-3.241-.85-4.243-2.245-.067-.092-.057-.275.023-.356.08-.081.207-.12.3-.055.781.548 1.706.812 2.751.811 1.322 0 2.754-.446 4.256-1.313 5.31-3.066 9.631-10.522 9.631-16.615 0-1.927-.442-3.562-1.279-4.726a.235.235 0 0 1 .024-.301.232.232 0 0 1 .3-.027c1.67 1.172 2.59 3.38 2.59 6.219 0 6.242-4.425 13.987-9.865 17.127-1.573.908-3.083 1.481-4.488 1.481zM142.476 178c.814.651 1.82 1.002 2.969 1.002 1.322 0 2.753-.452 4.255-1.32 5.31-3.065 9.631-10.523 9.631-16.617 0-1.98-.463-3.63-1.325-4.793.411 1.035.624 2.26.624 3.62 0 6.242-4.425 13.875-9.865 17.015-1.573.909-3.084 1.376-4.489 1.376a5.49 5.49 0 0 1-1.8-.283z' fill='#607D8B'/><path d='M148.648 176.704c5.384-3.108 9.748-10.636 9.748-16.813 0-2.052-.483-3.693-1.322-4.861-1.785-1.252-4.375-1.194-7.258.471-5.383 3.108-9.748 10.636-9.748 16.813 0 2.051.484 3.692 1.323 4.86 1.785 1.253 4.374 1.195 7.257-.47' fill='#FAFAFA'/><path d='M144.276 178.276c-1.143 0-2.158-.307-3.019-.911a.217.217 0 0 1-.055-.054c-.895-1.244-1.367-2.972-1.367-4.997 0-6.241 4.425-13.875 9.865-17.016 1.573-.908 3.084-1.369 4.489-1.369 1.143 0 2.158.307 3.019.91a.24.24 0 0 1 .055.055c.894 1.244 1.367 2.971 1.367 4.997 0 6.241-4.425 13.875-9.865 17.016-1.573.908-3.084 1.369-4.489 1.369zm-2.718-1.172c.773.533 1.687.901 2.718.901 1.322 0 2.754-.538 4.256-1.405 5.31-3.066 9.631-10.567 9.631-16.661 0-1.908-.434-3.554-1.256-4.716-.774-.532-1.688-.814-2.718-.814-1.322 0-2.754.433-4.256 1.3-5.31 3.066-9.631 10.564-9.631 16.657 0 1.91.434 3.576 1.256 4.738z' fill='#607D8B'/><path d='M150.72 172.361l-.363-.295a24.105 24.105 0 0 0 2.148-3.128 24.05 24.05 0 0 0 1.977-4.375l.443.149a24.54 24.54 0 0 1-2.015 4.46 24.61 24.61 0 0 1-2.19 3.189M115.917 191.514l-.363-.294a24.174 24.174 0 0 0 2.148-3.128 24.038 24.038 0 0 0 1.976-4.375l.443.148a24.48 24.48 0 0 1-2.015 4.461 24.662 24.662 0 0 1-2.189 3.188M114 237.476V182.584 237.476' fill='#607D8B'/><g><path d='M81.822 37.474c.017-.135-.075-.28-.267-.392-.327-.188-.826-.21-1.109-.045l-6.012 3.471c-.131.076-.194.178-.191.285.002.132.002.461.002.578v.043l-.007.128-6.591 3.779c-.001 0-2.077 1.046-2.787 5.192 0 0-.912 6.961-.898 19.745.015 12.57.606 17.07 1.167 21.351.22 1.684 3.001 2.125 3.001 2.125.331.04.698-.027 1.08-.248l75.273-43.551c1.808-1.069 2.667-3.719 3.056-6.284 1.213-7.99 1.675-32.978-.275-39.878-.196-.693-.51-1.083-.868-1.282l-2.086-.79c-.727.028-1.416.467-1.534.535L82.032 37.072l-.21.402' fill='#FFF'/><path d='M144.311 1.701l2.085.79c.358.199.672.589.868 1.282 1.949 6.9 1.487 31.887.275 39.878-.39 2.565-1.249 5.215-3.056 6.284L69.21 93.486a1.78 1.78 0 0 1-.896.258l-.183-.011c0 .001-2.782-.44-3.003-2.124-.56-4.282-1.151-8.781-1.165-21.351-.015-12.784.897-19.745.897-19.745.71-4.146 2.787-5.192 2.787-5.192l6.591-3.779.007-.128v-.043c0-.117 0-.446-.002-.578-.003-.107.059-.21.191-.285l6.012-3.472a.98.98 0 0 1 .481-.11c.218 0 .449.053.627.156.193.112.285.258.268.392l.211-.402 60.744-34.836c.117-.068.806-.507 1.534-.535m0-.997l-.039.001c-.618.023-1.283.244-1.974.656l-.021.012-60.519 34.706a2.358 2.358 0 0 0-.831-.15c-.365 0-.704.084-.98.244l-6.012 3.471c-.442.255-.699.69-.689 1.166l.001.15-6.08 3.487c-.373.199-2.542 1.531-3.29 5.898l-.006.039c-.009.07-.92 7.173-.906 19.875.014 12.62.603 17.116 1.172 21.465l.002.015c.308 2.355 3.475 2.923 3.836 2.98l.034.004c.101.013.204.019.305.019a2.77 2.77 0 0 0 1.396-.392l75.273-43.552c1.811-1.071 2.999-3.423 3.542-6.997 1.186-7.814 1.734-33.096-.301-40.299-.253-.893-.704-1.527-1.343-1.882l-.132-.062-2.085-.789a.973.973 0 0 0-.353-.065' fill='#455A64'/><path d='M128.267 11.565l1.495.434-56.339 32.326' fill='#FFF'/><path d='M74.202 90.545a.5.5 0 0 1-.25-.931l18.437-10.645a.499.499 0 1 1 .499.864L74.451 90.478l-.249.067M75.764 42.654l-.108-.062.046-.171 5.135-2.964.17.045-.045.171-5.135 2.964-.063.017M70.52 90.375V46.421l.063-.036L137.84 7.554v43.954l-.062.036L70.52 90.375zm.25-43.811v43.38l66.821-38.579V7.985L70.77 46.564z' fill='#607D8B'/><path d='M86.986 83.182c-.23.149-.612.384-.849.523l-11.505 6.701c-.237.139-.206.252.068.252h.565c.275 0 .693-.113.93-.252L87.7 83.705c.237-.139.428-.253.425-.256a11.29 11.29 0 0 1-.006-.503c0-.274-.188-.377-.418-.227l-.715.463' fill='#607D8B'/><path d='M75.266 90.782H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.236-.138.615-.371.844-.519l.715-.464a.488.488 0 0 1 .266-.089c.172 0 .345.13.345.421 0 .214.001.363.003.437l.006.004-.004.069c-.003.075-.003.075-.486.356l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.108.866-.234l11.505-6.702c.168-.098.294-.173.361-.214-.004-.084-.004-.218-.004-.437l-.095-.171-.131.049-.714.463c-.232.15-.616.386-.854.525l-11.505 6.702-.029.018z' fill='#607D8B'/><path d='M75.266 89.871H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.258-.151.694-.268.993-.268h.565c.2 0 .316.056.346.166.03.11-.043.217-.215.317l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.107.866-.234l11.505-6.702.03-.018-.035-.001h-.565c-.252 0-.649.108-.867.234l-11.505 6.702-.029.018zM74.37 90.801v-1.247 1.247' fill='#607D8B'/><path d='M68.13 93.901c-.751-.093-1.314-.737-1.439-1.376-.831-4.238-1.151-8.782-1.165-21.352-.015-12.784.897-19.745.897-19.745.711-4.146 2.787-5.192 2.787-5.192l74.859-43.219c.223-.129 2.487-1.584 3.195.923 1.95 6.9 1.488 31.887.275 39.878-.389 2.565-1.248 5.215-3.056 6.283L69.21 93.653c-.382.221-.749.288-1.08.248 0 0-2.781-.441-3.001-2.125-.561-4.281-1.152-8.781-1.167-21.351-.014-12.784.898-19.745.898-19.745.71-4.146 2.787-5.191 2.787-5.191l6.598-3.81.871-.119 6.599-3.83.046-.461L68.13 93.901' fill='#FAFAFA'/><path d='M68.317 94.161l-.215-.013h-.001l-.244-.047c-.719-.156-2.772-.736-2.976-2.292-.568-4.34-1.154-8.813-1.168-21.384-.014-12.654.891-19.707.9-19.777.725-4.231 2.832-5.338 2.922-5.382l6.628-3.827.87-.119 6.446-3.742.034-.334a.248.248 0 0 1 .273-.223.248.248 0 0 1 .223.272l-.059.589-6.752 3.919-.87.118-6.556 3.785c-.031.016-1.99 1.068-2.666 5.018-.007.06-.908 7.086-.894 19.702.014 12.539.597 16.996 1.161 21.305.091.691.689 1.154 1.309 1.452a1.95 1.95 0 0 1-.236-.609c-.781-3.984-1.155-8.202-1.17-21.399-.014-12.653.891-19.707.9-19.777.725-4.231 2.832-5.337 2.922-5.382-.004.001 74.444-42.98 74.846-43.212l.028-.017c.904-.538 1.72-.688 2.36-.433.555.221.949.733 1.172 1.52 2.014 7.128 1.46 32.219.281 39.983-.507 3.341-1.575 5.515-3.175 6.462L69.335 93.869a2.023 2.023 0 0 1-1.018.292zm-.147-.507c.293.036.604-.037.915-.217l75.273-43.551c1.823-1.078 2.602-3.915 2.934-6.106 1.174-7.731 1.731-32.695-.268-39.772-.178-.631-.473-1.032-.876-1.192-.484-.193-1.166-.052-1.921.397l-.034.021-74.858 43.218c-.031.017-1.989 1.069-2.666 5.019-.007.059-.908 7.085-.894 19.702.015 13.155.386 17.351 1.161 21.303.09.461.476.983 1.037 1.139.114.025.185.037.196.039h.001z' fill='#455A64'/><path d='M69.317 68.982c.489-.281.885-.056.885.505 0 .56-.396 1.243-.885 1.525-.488.282-.884.057-.884-.504 0-.56.396-1.243.884-1.526' fill='#FFF'/><path d='M68.92 71.133c-.289 0-.487-.228-.487-.625 0-.56.396-1.243.884-1.526a.812.812 0 0 1 .397-.121c.289 0 .488.229.488.626 0 .56-.396 1.243-.885 1.525a.812.812 0 0 1-.397.121m.794-2.459a.976.976 0 0 0-.49.147c-.548.317-.978 1.058-.978 1.687 0 .486.271.812.674.812a.985.985 0 0 0 .491-.146c.548-.317.978-1.057.978-1.687 0-.486-.272-.813-.675-.813' fill='#8097A2'/><path d='M68.92 70.947c-.271 0-.299-.307-.299-.439 0-.491.361-1.116.79-1.363a.632.632 0 0 1 .303-.096c.272 0 .301.306.301.438 0 .491-.363 1.116-.791 1.364a.629.629 0 0 1-.304.096m.794-2.086a.812.812 0 0 0-.397.121c-.488.283-.884.966-.884 1.526 0 .397.198.625.487.625a.812.812 0 0 0 .397-.121c.489-.282.885-.965.885-1.525 0-.397-.199-.626-.488-.626' fill='#8097A2'/><path d='M69.444 85.35c.264-.152.477-.031.477.272 0 .303-.213.67-.477.822-.263.153-.477.031-.477-.271 0-.302.214-.671.477-.823' fill='#FFF'/><path d='M69.23 86.51c-.156 0-.263-.123-.263-.337 0-.302.214-.671.477-.823a.431.431 0 0 1 .214-.066c.156 0 .263.124.263.338 0 .303-.213.67-.477.822a.431.431 0 0 1-.214.066m.428-1.412c-.1 0-.203.029-.307.09-.32.185-.57.618-.57.985 0 .309.185.524.449.524a.63.63 0 0 0 .308-.09c.32-.185.57-.618.57-.985 0-.309-.185-.524-.45-.524' fill='#8097A2'/><path d='M69.23 86.322l-.076-.149c0-.235.179-.544.384-.661l.12-.041.076.151c0 .234-.179.542-.383.66l-.121.04m.428-1.038a.431.431 0 0 0-.214.066c-.263.152-.477.521-.477.823 0 .214.107.337.263.337a.431.431 0 0 0 .214-.066c.264-.152.477-.519.477-.822 0-.214-.107-.338-.263-.338' fill='#8097A2'/><path d='M139.278 7.769v43.667L72.208 90.16V46.493l67.07-38.724' fill='#455A64'/><path d='M72.083 90.375V46.421l.063-.036 67.257-38.831v43.954l-.062.036-67.258 38.831zm.25-43.811v43.38l66.821-38.579V7.985L72.333 46.564z' fill='#607D8B'/></g><path d='M125.737 88.647l-7.639 3.334V84l-11.459 4.713v8.269L99 100.315l13.369 3.646 13.368-15.314' fill='#455A64'/></g></svg>";function Ie(){this.loadIcon_();var e=document.createElement("div");(o=e.style).position="fixed",o.top=0,o.right=0,o.bottom=0,o.left=0,o.backgroundColor="gray",o.fontFamily="sans-serif",o.zIndex=1e6;var t=document.createElement("img");t.src=this.icon,(o=t.style).marginLeft="25%",o.marginTop="25%",o.width="50%",e.appendChild(t);var i=document.createElement("div");(o=i.style).textAlign="center",o.fontSize="16px",o.lineHeight="24px",o.margin="24px 25%",o.width="50%",i.innerHTML="Place your phone into your Cardboard viewer.",e.appendChild(i);var n=document.createElement("div");(o=n.style).backgroundColor="#CFD8DC",o.position="fixed",o.bottom=0,o.width="100%",o.height="48px",o.padding="14px 24px",o.boxSizing="border-box",o.color="#656A6B",e.appendChild(n);var r=document.createElement("div");r.style.float="left",r.innerHTML="No Cardboard viewer?";var o,s=document.createElement("a");s.href="https://www.google.com/get/cardboard/get-cardboard/",s.innerHTML="get one",s.target="_blank",(o=s.style).float="right",o.fontWeight=600,o.textTransform="uppercase",o.borderLeft="1px solid gray",o.paddingLeft="24px",o.textDecoration="none",o.color="#656A6B",n.appendChild(r),n.appendChild(s),this.overlay=e,this.text=i,this.hide()}Ie.prototype.show=function(e){e||this.overlay.parentElement?e&&(this.overlay.parentElement&&this.overlay.parentElement!=e&&this.overlay.parentElement.removeChild(this.overlay),e.appendChild(this.overlay)):document.body.appendChild(this.overlay),this.overlay.style.display="block";var t=this.overlay.querySelector("img").style;m()?(t.width="20%",t.marginLeft="40%",t.marginTop="3%"):(t.width="50%",t.marginLeft="25%",t.marginTop="25%")},Ie.prototype.hide=function(){this.overlay.style.display="none"},Ie.prototype.showTemporarily=function(e,t){this.show(t),this.timer=setTimeout(this.hide.bind(this),e)},Ie.prototype.disableShowTemporarily=function(){clearTimeout(this.timer)},Ie.prototype.update=function(){this.disableShowTemporarily(),!m()&&I()?this.show():this.hide()},Ie.prototype.loadIcon_=function(){this.icon=c("image/svg+xml",ze)};var be="CardboardV1",Oe="WEBVR_CARDBOARD_VIEWER",Se="webvr-polyfill-viewer-selector";function Le(e){try{this.selectedKey=localStorage.getItem(Oe)}catch(e){console.error("Failed to load viewer profile: %s",e)}this.selectedKey||(this.selectedKey=e||be),this.dialog=this.createDialog_(Ae.Viewers),this.root=null,this.onChangeCallbacks_=[]}function ke(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ce(e,t){return e(t={exports:{}},t.exports),t.exports}Le.prototype.show=function(e){this.root=e,e.appendChild(this.dialog),this.dialog.querySelector("#"+this.selectedKey).checked=!0,this.dialog.style.display="block"},Le.prototype.hide=function(){this.root&&this.root.contains(this.dialog)&&this.root.removeChild(this.dialog),this.dialog.style.display="none"},Le.prototype.getCurrentViewer=function(){return Ae.Viewers[this.selectedKey]},Le.prototype.getSelectedKey_=function(){var e=this.dialog.querySelector("input[name=field]:checked");return e?e.id:null},Le.prototype.onChange=function(e){this.onChangeCallbacks_.push(e)},Le.prototype.fireOnChange_=function(e){for(var t=0;t<this.onChangeCallbacks_.length;t++)this.onChangeCallbacks_[t](e)},Le.prototype.onSave_=function(){if(this.selectedKey=this.getSelectedKey_(),this.selectedKey&&Ae.Viewers[this.selectedKey]){this.fireOnChange_(Ae.Viewers[this.selectedKey]);try{localStorage.setItem(Oe,this.selectedKey)}catch(e){console.error("Failed to save viewer profile: %s",e)}this.hide()}else console.error("ViewerSelector.onSave_: this should never happen!")},Le.prototype.createDialog_=function(e){var t=document.createElement("div");t.classList.add(Se),t.style.display="none";var i=document.createElement("div");(o=i.style).position="fixed",o.left=0,o.top=0,o.width="100%",o.height="100%",o.background="rgba(0, 0, 0, 0.3)",i.addEventListener("click",this.hide.bind(this));var n=280,r=document.createElement("div"),o=r.style;for(var s in o.boxSizing="border-box",o.position="fixed",o.top="24px",o.left="50%",o.marginLeft=-n/2+"px",o.width=n+"px",o.padding="24px",o.overflow="hidden",o.background="#fafafa",o.fontFamily="'Roboto', sans-serif",o.boxShadow="0px 5px 20px #666",r.appendChild(this.createH1_("Select your viewer")),e)r.appendChild(this.createChoice_(s,e[s].label));return r.appendChild(this.createButton_("Save",this.onSave_.bind(this))),t.appendChild(i),t.appendChild(r),t},Le.prototype.createH1_=function(e){var t=document.createElement("h1"),i=t.style;return i.color="black",i.fontSize="20px",i.fontWeight="bold",i.marginTop=0,i.marginBottom="24px",t.innerHTML=e,t},Le.prototype.createChoice_=function(e,t){var i=document.createElement("div");i.style.marginTop="8px",i.style.color="black";var n=document.createElement("input");n.style.fontSize="30px",n.setAttribute("id",e),n.setAttribute("type","radio"),n.setAttribute("value",e),n.setAttribute("name","field");var r=document.createElement("label");return r.style.marginLeft="4px",r.setAttribute("for",e),r.innerHTML=t,i.appendChild(n),i.appendChild(r),i},Le.prototype.createButton_=function(e,t){var i=document.createElement("button");i.innerHTML=e;var n=i.style;return n.float="right",n.textTransform="uppercase",n.color="#1094f7",n.fontSize="14px",n.letterSpacing=0,n.border=0,n.background="none",n.marginTop="16px",i.addEventListener("click",t),i},void 0!==e||void 0!==i||"undefined"!=typeof self&&self;var Pe=ke(Ce((function(i,n){!function(e,t){i.exports=t()}(0,(function(){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(i,n,r){var o=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=r(1),u=void 0!==t&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(t.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!e.MSStream,c=function(){function t(){s(this,t),u?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("playsinline",""),this.noSleepVideo.setAttribute("src",a),this.noSleepVideo.addEventListener("timeupdate",function(e){this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return o(t,[{key:"enable",value:function(){u?(this.disable(),this.noSleepTimer=e.setInterval((function(){e.location.href="/",e.setTimeout(e.stop,0)}),15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){u?this.noSleepTimer&&(e.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),t}();i.exports=c},function(e,t,i){e.exports="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQADQGgcIQADQGgcAAAACQGeYUQn/wALKCEAA0BoHAAAAAkBnmNEJ/8ACykhAANAaBwhAANAaBwAAAANQZpoNExDP/6plgAMuSEAA0BoHAAAAAtBnoZFESwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBnqVEJ/8ACykhAANAaBwAAAAJAZ6nRCf/AAsoIQADQGgcIQADQGgcAAAADUGarDRMQz/+qZYADLghAANAaBwAAAALQZ7KRRUsK/8ACPkhAANAaBwAAAAJAZ7pRCf/AAsoIQADQGgcIQADQGgcAAAACQGe60Qn/wALKCEAA0BoHAAAAA1BmvA0TEM//qmWAAy5IQADQGgcIQADQGgcAAAAC0GfDkUVLCv/AAj5IQADQGgcAAAACQGfLUQn/wALKSEAA0BoHCEAA0BoHAAAAAkBny9EJ/8ACyghAANAaBwAAAANQZs0NExDP/6plgAMuCEAA0BoHAAAAAtBn1JFFSwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBn3FEJ/8ACyghAANAaBwAAAAJAZ9zRCf/AAsoIQADQGgcIQADQGgcAAAADUGbeDRMQz/+qZYADLkhAANAaBwAAAALQZ+WRRUsK/8ACPghAANAaBwhAANAaBwAAAAJAZ+1RCf/AAspIQADQGgcAAAACQGft0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bm7w0TEM//qmWAAy4IQADQGgcAAAAC0Gf2kUVLCv/AAj5IQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHAAAAAkBn/tEJ/8ACykhAANAaBwAAAANQZvgNExDP/6plgAMuSEAA0BoHCEAA0BoHAAAAAtBnh5FFSwr/wAI+CEAA0BoHAAAAAkBnj1EJ/8ACyghAANAaBwhAANAaBwAAAAJAZ4/RCf/AAspIQADQGgcAAAADUGaJDRMQz/+qZYADLghAANAaBwAAAALQZ5CRRUsK/8ACPkhAANAaBwhAANAaBwAAAAJAZ5hRCf/AAsoIQADQGgcAAAACQGeY0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bmmg0TEM//qmWAAy5IQADQGgcAAAAC0GehkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGepUQn/wALKSEAA0BoHAAAAAkBnqdEJ/8ACyghAANAaBwAAAANQZqsNExDP/6plgAMuCEAA0BoHCEAA0BoHAAAAAtBnspFFSwr/wAI+SEAA0BoHAAAAAkBnulEJ/8ACyghAANAaBwhAANAaBwAAAAJAZ7rRCf/AAsoIQADQGgcAAAADUGa8DRMQz/+qZYADLkhAANAaBwhAANAaBwAAAALQZ8ORRUsK/8ACPkhAANAaBwAAAAJAZ8tRCf/AAspIQADQGgcIQADQGgcAAAACQGfL0Qn/wALKCEAA0BoHAAAAA1BmzQ0TEM//qmWAAy4IQADQGgcAAAAC0GfUkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGfcUQn/wALKCEAA0BoHAAAAAkBn3NEJ/8ACyghAANAaBwhAANAaBwAAAANQZt4NExC//6plgAMuSEAA0BoHAAAAAtBn5ZFFSwr/wAI+CEAA0BoHCEAA0BoHAAAAAkBn7VEJ/8ACykhAANAaBwAAAAJAZ+3RCf/AAspIQADQGgcAAAADUGbuzRMQn/+nhAAYsAhAANAaBwhAANAaBwAAAAJQZ/aQhP/AAspIQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA="}])}))}))),Be=1e3,_e=[0,0,.5,1],Ue=[.5,0,.5,1],Re=e.requestAnimationFrame,Qe=e.cancelAnimationFrame;function Ye(){this.leftProjectionMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.rightViewMatrix=new Float32Array(16),this.pose=null}function Fe(e){Object.defineProperties(this,{hasPosition:{writable:!1,enumerable:!0,value:e.hasPosition},hasExternalDisplay:{writable:!1,enumerable:!0,value:e.hasExternalDisplay},canPresent:{writable:!1,enumerable:!0,value:e.canPresent},maxLayers:{writable:!1,enumerable:!0,value:e.maxLayers},hasOrientation:{enumerable:!0,get:function(){return B("VRDisplayCapabilities.prototype.hasOrientation","VRDisplay.prototype.getFrameData"),e.hasOrientation}}})}function Ve(e){var t=!("wakelock"in(e=e||{}))||e.wakelock;this.isPolyfilled=!0,this.displayId=Be++,this.displayName="",this.depthNear=.01,this.depthFar=1e4,this.isPresenting=!1,Object.defineProperty(this,"isConnected",{get:function(){return B("VRDisplay.prototype.isConnected","VRDisplayCapabilities.prototype.hasExternalDisplay"),!1}}),this.capabilities=new Fe({hasPosition:!1,hasOrientation:!1,hasExternalDisplay:!1,canPresent:!1,maxLayers:1}),this.stageParameters=null,this.waitingForPresent_=!1,this.layer_=null,this.originalParent_=null,this.fullscreenElement_=null,this.fullscreenWrapper_=null,this.fullscreenElementCachedStyle_=null,this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null,t&&I()&&(this.wakelock_=new Pe)}Ve.prototype.getFrameData=function(e){return S(e,this._getPose(),this)},Ve.prototype.getPose=function(){return B("VRDisplay.prototype.getPose","VRDisplay.prototype.getFrameData"),this._getPose()},Ve.prototype.resetPose=function(){return B("VRDisplay.prototype.resetPose"),this._resetPose()},Ve.prototype.getImmediatePose=function(){return B("VRDisplay.prototype.getImmediatePose","VRDisplay.prototype.getFrameData"),this._getPose()},Ve.prototype.requestAnimationFrame=function(e){return Re(e)},Ve.prototype.cancelAnimationFrame=function(e){return Qe(e)},Ve.prototype.wrapForFullscreen=function(e){if(h())return e;if(!this.fullscreenWrapper_){this.fullscreenWrapper_=document.createElement("div");var t=["height: "+Math.min(screen.height,screen.width)+"px !important","top: 0 !important","left: 0 !important","right: 0 !important","border: 0","margin: 0","padding: 0","z-index: 999999 !important","position: fixed"];this.fullscreenWrapper_.setAttribute("style",t.join("; ")+";"),this.fullscreenWrapper_.classList.add("webvr-polyfill-fullscreen-wrapper")}if(this.fullscreenElement_==e)return this.fullscreenWrapper_;if(this.fullscreenElement_&&(this.originalParent_?this.originalParent_.appendChild(this.fullscreenElement_):this.fullscreenElement_.parentElement.removeChild(this.fullscreenElement_)),this.fullscreenElement_=e,this.originalParent_=e.parentElement,this.originalParent_||document.body.appendChild(e),!this.fullscreenWrapper_.parentElement){var i=this.fullscreenElement_.parentElement;i.insertBefore(this.fullscreenWrapper_,this.fullscreenElement_),i.removeChild(this.fullscreenElement_)}this.fullscreenWrapper_.insertBefore(this.fullscreenElement_,this.fullscreenWrapper_.firstChild),this.fullscreenElementCachedStyle_=this.fullscreenElement_.getAttribute("style");var n=this;function r(){if(n.fullscreenElement_){var e=["position: absolute","top: 0","left: 0","width: "+Math.max(screen.width,screen.height)+"px","height: "+Math.min(screen.height,screen.width)+"px","border: 0","margin: 0","padding: 0"];n.fullscreenElement_.setAttribute("style",e.join("; ")+";")}}return r(),this.fullscreenWrapper_},Ve.prototype.removeFullscreenWrapper=function(){if(this.fullscreenElement_){var e=this.fullscreenElement_;this.fullscreenElementCachedStyle_?e.setAttribute("style",this.fullscreenElementCachedStyle_):e.removeAttribute("style"),this.fullscreenElement_=null,this.fullscreenElementCachedStyle_=null;var t=this.fullscreenWrapper_.parentElement;return this.fullscreenWrapper_.removeChild(e),this.originalParent_===t?t.insertBefore(e,this.fullscreenWrapper_):this.originalParent_&&this.originalParent_.appendChild(e),t.removeChild(this.fullscreenWrapper_),e}},Ve.prototype.requestPresent=function(e){var t=this.isPresenting,i=this;return e instanceof Array||(B("VRDisplay.prototype.requestPresent with non-array argument","an array of VRLayers as the first argument"),e=[e]),new Promise((function(n,r){if(i.capabilities.canPresent)if(0==e.length||e.length>i.capabilities.maxLayers)r(new Error("Invalid number of layers."));else{var o=e[0];if(o.source){var s=o.leftBounds||_e,a=o.rightBounds||Ue;if(t){var u=i.layer_;u.source!==o.source&&(u.source=o.source);for(var c=0;c<4;c++)u.leftBounds[c]=s[c],u.rightBounds[c]=a[c];return i.wrapForFullscreen(i.layer_.source),i.updatePresent_(),void n()}if(i.layer_={predistorted:o.predistorted,source:o.source,leftBounds:s.slice(0),rightBounds:a.slice(0)},i.waitingForPresent_=!1,i.layer_&&i.layer_.source){var l=i.wrapForFullscreen(i.layer_.source),p=function(){var e=x();i.isPresenting=l===e,i.isPresenting?(screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape-primary").catch((function(e){console.error("screen.orientation.lock() failed due to",e.message)})),i.waitingForPresent_=!1,i.beginPresent_(),n()):(screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),i.removeFullscreenWrapper(),i.disableWakeLock(),i.endPresent_(),i.removeFullscreenListeners_()),i.fireVRDisplayPresentChange_()},A=function(){i.waitingForPresent_&&(i.removeFullscreenWrapper(),i.removeFullscreenListeners_(),i.disableWakeLock(),i.waitingForPresent_=!1,i.isPresenting=!1,r(new Error("Unable to present.")))};i.addFullscreenListeners_(l,p,A),w(l)?(i.enableWakeLock(),i.waitingForPresent_=!0):(h()||d())&&(i.enableWakeLock(),i.isPresenting=!0,i.beginPresent_(),i.fireVRDisplayPresentChange_(),n())}i.waitingForPresent_||h()||(T(),r(new Error("Unable to present.")))}else n()}else r(new Error("VRDisplay is not capable of presenting."))}))},Ve.prototype.exitPresent=function(){var e=this.isPresenting,t=this;return this.isPresenting=!1,this.layer_=null,this.disableWakeLock(),new Promise((function(i,n){e?(!T()&&h()&&(t.endPresent_(),t.fireVRDisplayPresentChange_()),d()&&(t.removeFullscreenWrapper(),t.removeFullscreenListeners_(),t.endPresent_(),t.fireVRDisplayPresentChange_()),i()):n(new Error("Was not presenting to VRDisplay."))}))},Ve.prototype.getLayers=function(){return this.layer_?[this.layer_]:[]},Ve.prototype.fireVRDisplayPresentChange_=function(){var t=new CustomEvent("vrdisplaypresentchange",{detail:{display:this}});e.dispatchEvent(t)},Ve.prototype.fireVRDisplayConnect_=function(){var t=new CustomEvent("vrdisplayconnect",{detail:{display:this}});e.dispatchEvent(t)},Ve.prototype.addFullscreenListeners_=function(e,t,i){this.removeFullscreenListeners_(),this.fullscreenEventTarget_=e,this.fullscreenChangeHandler_=t,this.fullscreenErrorHandler_=i,t&&(document.fullscreenEnabled?e.addEventListener("fullscreenchange",t,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenchange",t,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenchange",t,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenchange",t,!1)),i&&(document.fullscreenEnabled?e.addEventListener("fullscreenerror",i,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenerror",i,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenerror",i,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenerror",i,!1))},Ve.prototype.removeFullscreenListeners_=function(){if(this.fullscreenEventTarget_){var e=this.fullscreenEventTarget_;if(this.fullscreenChangeHandler_){var t=this.fullscreenChangeHandler_;e.removeEventListener("fullscreenchange",t,!1),e.removeEventListener("webkitfullscreenchange",t,!1),document.removeEventListener("mozfullscreenchange",t,!1),e.removeEventListener("msfullscreenchange",t,!1)}if(this.fullscreenErrorHandler_){var i=this.fullscreenErrorHandler_;e.removeEventListener("fullscreenerror",i,!1),e.removeEventListener("webkitfullscreenerror",i,!1),document.removeEventListener("mozfullscreenerror",i,!1),e.removeEventListener("msfullscreenerror",i,!1)}this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null}},Ve.prototype.enableWakeLock=function(){this.wakelock_&&this.wakelock_.enable()},Ve.prototype.disableWakeLock=function(){this.wakelock_&&this.wakelock_.disable()},Ve.prototype.beginPresent_=function(){},Ve.prototype.endPresent_=function(){},Ve.prototype.submitFrame=function(e){},Ve.prototype.getEyeParameters=function(e){return null};var He={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1},Ge={LEFT:"left",RIGHT:"right"};function We(t){var i=b({},He);t=b(i,t||{}),Ve.call(this,{wakelock:t.MOBILE_WAKE_LOCK}),this.config=t,this.displayName="Cardboard VRDisplay",this.capabilities=new Fe({hasPosition:!1,hasOrientation:!0,hasExternalDisplay:!1,canPresent:!0,maxLayers:1}),this.stageParameters=null,this.bufferScale_=this.config.BUFFER_SCALE,this.poseSensor_=new je(this.config),this.distorter_=null,this.cardboardUI_=null,this.dpdb_=new ge(this.config.DPDB_URL,this.onDeviceParamsUpdated_.bind(this)),this.deviceInfo_=new Ae(this.dpdb_.getDeviceParams(),t.ADDITIONAL_VIEWERS),this.viewerSelector_=new Le(t.DEFAULT_VIEWER),this.viewerSelector_.onChange(this.onViewerChanged_.bind(this)),this.deviceInfo_.setViewer(this.viewerSelector_.getCurrentViewer()),this.config.ROTATE_INSTRUCTIONS_DISABLED||(this.rotateInstructions_=new Ie),h()&&e.addEventListener("resize",this.onResize_.bind(this))}return We.prototype=Object.create(Ve.prototype),We.prototype._getPose=function(){return{position:null,orientation:this.poseSensor_.getOrientation(),linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null}},We.prototype._resetPose=function(){this.poseSensor_.resetPose&&this.poseSensor_.resetPose()},We.prototype._getFieldOfView=function(e){var t;if(e==Ge.LEFT)t=this.deviceInfo_.getFieldOfViewLeftEye();else{if(e!=Ge.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=this.deviceInfo_.getFieldOfViewRightEye()}return t},We.prototype._getEyeOffset=function(e){var t;if(e==Ge.LEFT)t=[.5*-this.deviceInfo_.viewer.interLensDistance,0,0];else{if(e!=Ge.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=[.5*this.deviceInfo_.viewer.interLensDistance,0,0]}return t},We.prototype.getEyeParameters=function(e){var t=this._getEyeOffset(e),i=this._getFieldOfView(e),n={offset:t,renderWidth:.5*this.deviceInfo_.device.width*this.bufferScale_,renderHeight:this.deviceInfo_.device.height*this.bufferScale_};return Object.defineProperty(n,"fieldOfView",{enumerable:!0,get:function(){return B("VRFieldOfView","VRFrameData's projection matrices"),i}}),n},We.prototype.onDeviceParamsUpdated_=function(e){this.config.DEBUG&&console.log("DPDB reported that device params were updated."),this.deviceInfo_.updateDeviceParams(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_)},We.prototype.updateBounds_=function(){this.layer_&&this.distorter_&&(this.layer_.leftBounds||this.layer_.rightBounds)&&this.distorter_.setTextureBounds(this.layer_.leftBounds,this.layer_.rightBounds)},We.prototype.beginPresent_=function(){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2")),t&&(this.layer_.predistorted?this.config.CARDBOARD_UI_DISABLED||(t.canvas.width=N()*this.bufferScale_,t.canvas.height=D()*this.bufferScale_,this.cardboardUI_=new te(t)):(this.config.CARDBOARD_UI_DISABLED||(this.cardboardUI_=new te(t)),this.distorter_=new Y(t,this.cardboardUI_,this.config.BUFFER_SCALE,this.config.DIRTY_SUBMIT_FRAME_BINDINGS),this.distorter_.updateDeviceInfo(this.deviceInfo_)),this.cardboardUI_&&this.cardboardUI_.listen(function(e){this.viewerSelector_.show(this.layer_.source.parentElement),e.stopPropagation(),e.preventDefault()}.bind(this),function(e){this.exitPresent(),e.stopPropagation(),e.preventDefault()}.bind(this)),this.rotateInstructions_&&(m()&&I()?this.rotateInstructions_.showTemporarily(3e3,this.layer_.source.parentElement):this.rotateInstructions_.update()),this.orientationHandler=this.onOrientationChange_.bind(this),e.addEventListener("orientationchange",this.orientationHandler),this.vrdisplaypresentchangeHandler=this.updateBounds_.bind(this),e.addEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler),this.fireVRDisplayDeviceParamsChange_())},We.prototype.endPresent_=function(){this.distorter_&&(this.distorter_.destroy(),this.distorter_=null),this.cardboardUI_&&(this.cardboardUI_.destroy(),this.cardboardUI_=null),this.rotateInstructions_&&this.rotateInstructions_.hide(),this.viewerSelector_.hide(),e.removeEventListener("orientationchange",this.orientationHandler),e.removeEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler)},We.prototype.updatePresent_=function(){this.endPresent_(),this.beginPresent_()},We.prototype.submitFrame=function(e){if(this.distorter_)this.updateBounds_(),this.distorter_.submitFrame();else if(this.cardboardUI_&&this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var i=t.canvas;i.width==this.lastWidth&&i.height==this.lastHeight||this.cardboardUI_.onResize(),this.lastWidth=i.width,this.lastHeight=i.height,this.cardboardUI_.render()}},We.prototype.onOrientationChange_=function(e){this.viewerSelector_.hide(),this.rotateInstructions_&&this.rotateInstructions_.update(),this.onResize_()},We.prototype.onResize_=function(e){if(this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var i=["position: absolute","top: 0","left: 0","width: 100vw","height: 100vh","border: 0","margin: 0","padding: 0px","box-sizing: content-box"];t.canvas.setAttribute("style",i.join("; ")+";"),O(t.canvas)}},We.prototype.onViewerChanged_=function(e){this.deviceInfo_.setViewer(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_),this.fireVRDisplayDeviceParamsChange_()},We.prototype.fireVRDisplayDeviceParamsChange_=function(){var t=new CustomEvent("vrdisplaydeviceparamschange",{detail:{vrdisplay:this,deviceInfo:this.deviceInfo_}});e.dispatchEvent(t)},We.VRFrameData=Ye,We.VRDisplay=Ve,We}))}))),c="0.10.12",l={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",PROVIDE_MOBILE_VRDISPLAY:!0,MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1};function h(i){this.config=a(a({},l),i),this.polyfillDisplays=[],this.enabled=!1,this.hasNative="getVRDisplays"in t,this.native={},this.native.getVRDisplays=t.getVRDisplays,this.native.VRFrameData=e.VRFrameData,this.native.VRDisplay=e.VRDisplay,(!this.hasNative||this.config.PROVIDE_MOBILE_VRDISPLAY&&o())&&(this.enable(),this.getVRDisplays().then((function(e){e&&e[0]&&e[0].fireVRDisplayConnect_&&e[0].fireVRDisplayConnect_()})))}h.prototype.getPolyfillDisplays=function(){if(this._polyfillDisplaysPopulated)return this.polyfillDisplays;if(o()){var e=new u({ADDITIONAL_VIEWERS:this.config.ADDITIONAL_VIEWERS,DEFAULT_VIEWER:this.config.DEFAULT_VIEWER,MOBILE_WAKE_LOCK:this.config.MOBILE_WAKE_LOCK,DEBUG:this.config.DEBUG,DPDB_URL:this.config.DPDB_URL,CARDBOARD_UI_DISABLED:this.config.CARDBOARD_UI_DISABLED,K_FILTER:this.config.K_FILTER,PREDICTION_TIME_S:this.config.PREDICTION_TIME_S,ROTATE_INSTRUCTIONS_DISABLED:this.config.ROTATE_INSTRUCTIONS_DISABLED,YAW_ONLY:this.config.YAW_ONLY,BUFFER_SCALE:this.config.BUFFER_SCALE,DIRTY_SUBMIT_FRAME_BINDINGS:this.config.DIRTY_SUBMIT_FRAME_BINDINGS});this.polyfillDisplays.push(e)}return this._polyfillDisplaysPopulated=!0,this.polyfillDisplays},h.prototype.enable=function(){if(this.enabled=!0,this.hasNative&&this.native.VRFrameData){var i=this.native.VRFrameData,n=new this.native.VRFrameData,r=this.native.VRDisplay.prototype.getFrameData;e.VRDisplay.prototype.getFrameData=function(e){e instanceof i?r.call(this,e):(r.call(this,n),e.pose=n.pose,s(n.leftProjectionMatrix,e.leftProjectionMatrix),s(n.rightProjectionMatrix,e.rightProjectionMatrix),s(n.leftViewMatrix,e.leftViewMatrix),s(n.rightViewMatrix,e.rightViewMatrix))}}t.getVRDisplays=this.getVRDisplays.bind(this),e.VRDisplay=u.VRDisplay,e.VRFrameData=u.VRFrameData},h.prototype.getVRDisplays=function(){var e=this;return this.config,this.hasNative?this.native.getVRDisplays.call(t).then((function(t){return t.length>0?t:e.getPolyfillDisplays()})):Promise.resolve(this.getPolyfillDisplays())},h.version=c,h.VRFrameData=u.VRFrameData,h.VRDisplay=u.VRDisplay;var d=Object.freeze({default:h}),p=d&&h||d;return void 0!==i&&i.window&&(i.document||(i.document=i.window.document),i.navigator||(i.navigator=i.window.navigator)),p}("undefined"!=typeof window?window:{screen:{width:512,height:512}},"undefined"!=typeof navigator?navigator:{userAgent:"node"});function Lr(e,t){var i,n,o,s,a=new r.Vector3,u=new r.Vector3,c=null;"VRFrameData"in window&&(c=new window.VRFrameData),"undefined"!=typeof navigator&&navigator.getVRDisplays&&navigator.getVRDisplays().then((function(e){n=e,e.length>0?i=e[0]:t&&t(new Error("HMD not available"))})).catch((function(){console.warn("THREE.VREffect: Unable to get VR Displays")})),this.isPresenting=!1,this.scale=1;var l=this,h=e.getSize(new r.Vector2),d=!1,p=e.getPixelRatio();this.getVRDisplay=function(){return i},this.setVRDisplay=function(e){i=e},this.getVRDisplays=function(){return console.warn("THREE.VREffect: getVRDisplays() is being deprecated."),n},this.setSize=function(t,n,o){if(h=new r.Vector2(t,n),d=o,l.isPresenting){var s=i.getEyeParameters("left");e.setPixelRatio(1),e.setSize(2*s.renderWidth,s.renderHeight,!1)}else e.setPixelRatio(p),e.setSize(t,n,o)};var A=e.domElement,f=[0,0,.5,1],M=[.5,0,.5,1];function g(){var t=l.isPresenting;if(l.isPresenting=void 0!==i&&i.isPresenting,l.isPresenting){var n=i.getEyeParameters("left"),o=n.renderWidth,s=n.renderHeight;t||(p=e.getPixelRatio(),h=e.getSize(new r.Vector2),e.setPixelRatio(1),e.setSize(2*o,s,!1))}else t&&(e.setPixelRatio(p),e.setSize(h.width,h.height,d))}window.addEventListener("vrdisplaypresentchange",g,!1),this.setFullScreen=function(e){return new Promise((function(t,n){void 0!==i?l.isPresenting!==e?e?(i.requestPresent([{source:A}]),t()):(i.exitPresent(),t()):t():n(new Error("No VR hardware found."))}))},this.requestPresent=function(){return this.setFullScreen(!0)},this.exitPresent=function(){return this.setFullScreen(!1)},this.requestAnimationFrame=function(e){return void 0!==i?i.requestAnimationFrame(e):window.requestAnimationFrame(e)},this.cancelAnimationFrame=function(e){void 0!==i?i.cancelAnimationFrame(e):window.cancelAnimationFrame(e)},this.submitFrame=function(){void 0!==i&&l.isPresenting&&i.submitFrame()},this.autoSubmitFrame=!0;var y=new r.PerspectiveCamera;y.layers.enable(1);var m=new r.PerspectiveCamera;function v(e,t,i,n){var o=Math.PI/180;return function(e,t,i,n){i=void 0===i?.01:i,n=void 0===n?1e4:n;var o=(t=void 0===t||t)?-1:1,s=new r.Matrix4,a=s.elements,u=function(e){var t=2/(e.leftTan+e.rightTan),i=(e.leftTan-e.rightTan)*t*.5,n=2/(e.upTan+e.downTan);return{scale:[t,n],offset:[i,(e.upTan-e.downTan)*n*.5]}}(e);return a[0]=u.scale[0],a[1]=0,a[2]=u.offset[0]*o,a[3]=0,a[4]=0,a[5]=u.scale[1],a[6]=-u.offset[1]*o,a[7]=0,a[8]=0,a[9]=0,a[10]=n/(i-n)*-o,a[11]=n*i/(i-n),a[12]=0,a[13]=0,a[14]=o,a[15]=0,s.transpose(),s}({upTan:Math.tan(e.upDegrees*o),downTan:Math.tan(e.downDegrees*o),leftTan:Math.tan(e.leftDegrees*o),rightTan:Math.tan(e.rightDegrees*o)},t,i,n)}m.layers.enable(2),this.render=function(t,n){var h,d;if(i&&l.isPresenting){var p=t.autoUpdate;p&&(t.updateMatrixWorld(),t.autoUpdate=!1);var A=i.getEyeParameters("left"),g=i.getEyeParameters("right");a.fromArray(A.offset),u.fromArray(g.offset),Array.isArray(t)&&(console.warn("THREE.VREffect.render() no longer supports arrays. Use object.layers instead."),t=t[0]);var N,D,w=e.getSize(new r.Vector2),T=i.getLayers();if(T.length){var x=T[0];N=null!==x.leftBounds&&4===(null===(h=x.leftBounds)||void 0===h?void 0:h.length)?x.leftBounds:f,D=null!==x.rightBounds&&4===(null===(d=x.rightBounds)||void 0===d?void 0:d.length)?x.rightBounds:M}else N=f,D=M;o={x:Math.round(w.width*N[0]),y:Math.round(w.height*N[1]),width:Math.round(w.width*N[2]),height:Math.round(w.height*N[3])},s={x:Math.round(w.width*D[0]),y:Math.round(w.height*D[1]),width:Math.round(w.width*D[2]),height:Math.round(w.height*D[3])},e.setScissorTest(!0),e.autoClear&&e.clear(),null===n.parent&&n.updateMatrixWorld(),n.matrixWorld.decompose(y.position,y.quaternion,y.scale),n.matrixWorld.decompose(m.position,m.quaternion,m.scale);var E=this.scale;return y.translateOnAxis(a,E),m.translateOnAxis(u,E),i.getFrameData&&c?(i.depthNear=n.near,i.depthFar=n.far,i.getFrameData(c),y.projectionMatrix.elements=[].slice.call(c.leftProjectionMatrix),m.projectionMatrix.elements=[].slice.call(c.rightProjectionMatrix)):(y.projectionMatrix=v(A.fieldOfView,!0,n.near,n.far),m.projectionMatrix=v(g.fieldOfView,!0,n.near,n.far)),e.setViewport(o.x,o.y,o.width,o.height),e.setScissor(o.x,o.y,o.width,o.height),e.render(t,y),e.setViewport(s.x,s.y,s.width,s.height),e.setScissor(s.x,s.y,s.width,s.height),e.render(t,m),e.setViewport(0,0,w.width,w.height),e.setScissorTest(!1),p&&(t.autoUpdate=!0),void(l.autoSubmitFrame&&l.submitFrame())}e.render(t,n)},this.dispose=function(){window.removeEventListener("vrdisplaypresentchange",g,!1)}}var kr=new r.SphereBufferGeometry(.1,32,32);function Cr(e,t){e.setValues({color:t})}var Pr=function(e){function i(){var t=e.call(this)||this,i=new r.MeshBasicMaterial({color:8900346,opacity:.5,transparent:!0});return t.mesh=new r.Mesh(kr,i),t.current=!1,t.add(t.mesh),t.loading=!1,t.disabled=!1,t.progress=0,t.opacity=1,t.needsRender=!0,t}return t.__extends(i,e),i.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e)},i.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e)},i.prototype.setProgress=function(e){this.progress!==e&&(this.progress=e)},i.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e)},i.prototype.setCurrent=function(e){this.current!==e&&(this.current=e,this.draw())},i.prototype.draw=function(){this.progress>0?Cr(this.mesh.material,16776960):this.current?Cr(this.mesh.material,65280):Cr(this.mesh.material,8900346)},i.prototype.dispose=function(){this.remove(this.mesh),Array.isArray(this.mesh.material)?this.mesh.material.forEach((function(e){return e.dispose()})):this.mesh.material.dispose()},i}(r.Object3D),Br=null,_r=[{zh:"1. 进入: 将手机横屏放入VR眼镜中",en:"1. Enter: Put your phone<br/> horizontally into the VR glasses",ja:"1. 入力:電話をVRメガネに水平に置きます"},{zh:"2. 前进: 视角中心对准蓝点, 直至变绿",en:"2. Forward: align the center of the viewing<br/> angle with the blue dot, until it turns green",ja:"2. 前方:緑色に変わるまで、<br/>視野角の中心を青い点に合わせます"},{zh:"3. 退出: 将手机竖屏再触碰屏幕",en:"3. Exit: Put the phone in portrait<br/> orientation and then touch the screen",ja:"3. 終了:電話を縦向きにしてから<br/>画面にタッチします"}];var Ur=function(e){function i(t){var n=this;Re(Br)&&(Br=new Sr(t.webvrPolyfillConfig||{}));var r=i.parseArgs(t);return(n=e.call(this,r)||this).effect=new Lr(n.renderer),n.effect.setSize(n.element.offsetWidth,n.element.offsetHeight),n.effect.isPresenting=!0,n.initHelper(n.element),n}return t.__extends(i,e),i.parseArgs=function(i){var n=t.__assign(t.__assign({},i),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,n)},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.destroyHelper();for(var t=0,i=this.panoMeshes;t<i.length;t++){var n=i[t];this.helper.remove(n),n.dispose()}this.panoMeshes.length=0},i.prototype.isReady=function(){return!1},i.prototype.updateRenderSize=function(){this.effect.isPresenting=!1,this.effect.setSize(this.element.offsetWidth,this.element.offsetHeight),this.effect.isPresenting=!0,this.needsRender=!0,this.setHelperElementSize()},i.prototype.updatePanoMeshes=function(){var e=this;this.panoMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoMeshes.length=0;for(var t=0;t<this.work.observers.length;t++){var i=this.work.observers[t],n=new Pr;n.name="panoSphere_"+this.work.workCode+"_"+t,n.position.copy(i.position),n.needsRender=!0,this.helper.add(n),this.panoMeshes[t]=n}},i.prototype.updateTime=function(e,t){var i,n;if(!this.destroyed){this.needsRender=!0,this.intersect(e);var o={},s={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var a=this.locationMotion.getKeyFrameSegment(e),u=a[0],c=a[1],l=this.panoResourceFromLocationMotionKeyframe(u),h=this.panoResourceFromLocationMotionKeyframe(c),d=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),p=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),A=l.position,f=h.position,M=this.locationMotion.value.count-c.value.count+1;o.modelAlpha=this.locationMotion.value.modelAlpha,o.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),o.useBlackTransition="instant"===h.effect,h.panoPicture&&(M<1?l.panoPicture&&(o.pano0=l.panoPicture):o.pano0=h.panoPicture,o.pano1=h.panoPicture),"fade"===h.effect&&(o.pano0&&l.panoPicture&&(o.pano0={map:o.pano0.map,luminanceMap:o.pano0.luminanceMap,matrix:l.panoPicture.matrix.clone().setPosition(h.position)}),A.copy(f)),o.progress=M,s.distance=this.locationMotion.value.distance,s.offset=new r.Vector3(A.x+(f.x-A.x)*M,A.y+(f.y-A.y)*M,A.z+(f.z-A.z)*M);for(var g=[],y=[],m=0,v=this.locationMotion.keyframes;m<v.length;m++){var N=(S=v[m]).key,D=S.progress;void 0!==N&&(g.push(N),D>=this.locationMotion.progress&&y.push(N))}for(var w=0,T=Object.keys(this.panoResources);w<T.length;w++){var x=T[w];if(!(y.indexOf(x)>=0)){var E=this.panoResources[x];if(E.panoPicture){var j=E.panoPicture.map;if(j){if(j===(null===(i=o.pano0)||void 0===i?void 0:i.map))continue;if(j===(null===(n=o.pano1)||void 0===n?void 0:n.map))continue;j.dispose(),E.panoPicture=null}}g.indexOf(x)>=0||delete this.panoResources[x]}}this.currentPanoIndex=M<.5?l.panoIndex:h.panoIndex,this.emit("movingToPano",p.panoIndex,d.panoIndex,this.locationMotion.progress)}for(var z=this.work.observers[this.currentPanoIndex].visibleNodes.concat(this.currentPanoIndex),I=[],b=0,O=this.locationMotion.keyframes;b<O.length;b++){var S;(S=O[b]).progress>=this.locationMotion.progress&&I.push(this.panoResourceFromLocationMotionKeyframe(S).panoIndex)}for(var L=0;L<this.work.observers.length;L++){var k=this.work.observers[L],C=this.panoMeshes[L];if(C.visible=!0,I.indexOf(L)>=0)C.visible=!1;else if(k.loadable||k.active)if(-1===z.indexOf(L))C.visible=!1;else{C.visible=!0;var P=C.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);P<.01?C.setOpacity(0):C.setOpacity(xn(1.5/P,0,1))}else C.visible=!0}!1===En(o)&&(this.model.setMaterial(o),this.boundingMesh.setMaterial(o)),s.offset&&this.camera.position.copy(s.offset);var B=this.camera.pose.longitude,_=this.camera.pose.latitude,U=this.effect.getVRDisplay();if(U){var R=U.getPose();R&&R.orientation&&this.camera.quaternion.fromArray(R.orientation)}this.camera.updateMatrixWorld(),this.camera.computePose(),B===this.camera.pose.longitude&&_===this.camera.pose.latitude||(this.cameraMotion.set(Xt(this.camera.pose,["longitude","latitude"]),0).catch(Qe),this.emit("cameraDirectionUpdate",Xt(this.camera.pose,["longitude","latitude"]),!0),this.emit("cameraUpdate",jn(Xt(this.camera.pose,["longitude","latitude","fov","offset"])),!0))}},i.prototype.render=function(){this.effect.render(this.scene,this.camera)},i.prototype.setCamera=function(e){},i.prototype.initHelper=function(e){for(var t=this,i="five_webvr_helper_"+Fe(),n=1,r=document.getElementsByTagName("meta"),o=0;o<r.length;o++){var s=r[o];if("viewport"===s.getAttribute("name")){var a=(s.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);a&&(n=Number(a[1])),isNaN(n)&&(n=1)}}var u=document.createElement("style");u.setAttribute("type","text/css");var c,l,h="\n ."+(c=i)+"{\n font-family:sans-serif;\n background:#394043;color:#ffffff;\n position:absolute;display:none;\n -webkit-tap-highlight-color:rgba(0,0,0,0);\n }\n ."+c+" img{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,-100%);\n -moz-transform:translate(-50%,-100%);\n transform:translate(-50%,-100%);\n pointer-events:none;\n width:"+(l=function(e){return Math.floor(e*n)+"px"})(132)+";\n height:"+l(162)+";\n }\n ."+c+" ol{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,0);\n -moz-transform:translate(-50%,0);\n transform:translate(-50%,0);\n pointer-events:none;\n margin-top:"+l(38)+";\n font-size:"+l(16)+";\n line-height:"+l(30)+";\n }\n ."+c+" li{\n list-style-type:none;\n white-space:nowrap;\n position:relative;\n padding-left:"+l(14)+";\n margin-bottom:"+l(12)+";\n }\n @media screen and (orientation: portrait){\n ."+c+"{display: block!important}\n }\n ";"styleSheet"in u?u.styleSheet.cssText=h:u.appendChild(document.createTextNode(h));var d=this.helperElement=document.createElement("div");d.className=i,d.innerHTML='\n <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTMycHgiIGhlaWdodD0iMTYycHgiIHZpZXdCb3g9IjAgMCAxMzIgMTYyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4xICg0NDQ2MykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+R3JvdXA8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjY1Ljk4NTM0MjMgOTMuMTg5NjU1MiAwIDkzLjE4OTY1NTIgMCAwLjI0NzE1NTE3MiAxMzEuOTcwNjg1IDAuMjQ3MTU1MTcyIDEzMS45NzA2ODUgOTMuMTg5NjU1MiI+PC9wb2x5Z29uPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IuWKoOi9vemhtS1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTE4LjAwMDAwMCwgLTE4NC4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTguMDAwMDAwLCAxODQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iUGFnZS0xIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iaXBob25lIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNS4wMDAwMDAsIDAuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4yMDIzNzg3LDMyLjI2OTE1MzIgQzYyLjIwODU3NTQsMzQuNDI4MDQyOSA2MC42ODkzNDU5LDM3LjA2MDgzNTEgNTguODA3NjA4MiwzOC4xNDI4NjEgTDU1Ljg3MDM2MjMsMzkuODQwMjM3NyBMNTUuMTc5NDI3OSwzOC42Mzc0MTMgTDU1LjEzNTAxOCwyMi4xNTMwMzY0IEw1Ni4zMTM0Mjc5LDIyLjE0Njg0MTYgQzU2LjMxMzQyNzksMjMuNDk1MjQ0MiA1Ny4yNjk3ODg1LDI0LjAzOTM1NDUgNTguNDQ3MTY1NiwyMy4zNTU4NjEgQzU5LjYxODM0NTksMjIuNjc4NTYyMyA2MC41NjIzMTMxLDIxLjAzOTAwMzkgNjAuNTYyMzEzMSwxOS42OTY3OTYxIEw2Mi4xNjQxNjU2LDE5LjY5MDYwMTMgTDYyLjIwMjM3ODcsMzIuMjY5MTUzMiBaIiBpZD0iRmlsbC0xIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4xMjAxNjg5LDUuMjYzNjIyNzMgTDYyLjE2MzU0NTksMTkuNjkxMzI0IEw2MC41NjI3MjYyLDE5LjY5NjQ4NjQgQzYwLjU1NTQ5NjcsMTguMzQxODg5IDU5LjYwNTMzMjgsMTcuNzk3Nzc4NiA1OC40Mjc5NTU3LDE4LjQ3NTA3NzMgQzU3LjI1Njc3NTQsMTkuMTUyMzc2IDU2LjMwNjYxMTUsMjAuNzk4MTI5MiA1Ni4zMTI4MDgyLDIyLjE0NzU2NDMgTDU1LjEzNTQzMTEsMjIuMTUyNzI2NiBMNTUuMDkxMDIxMyw3LjAxMDU1Nzc5IEw1NC4zOTQ5MjMsNS44MDc3MzMxMiBMNTguNzA2ODA4MiwzLjMxOTQ4NjM2IEM2MC41ODc1MTMxLDIuMjMxMjY1NTggNjIuMTIwMTY4OSwzLjEwNDczMzEyIDYyLjEyMDE2ODksNS4yNjM2MjI3MyIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNjAuMTEyNjM3NywxOS45NTYxNTE5IEM2MC4xMTI2Mzc3LDIxLjAxMzM5ODcgNTkuMzY0OSwyMi4zMTEyMTA0IDU4LjQ0MDU1NTcsMjIuODQyOTMxMiBDNTcuNTE2MjExNSwyMy4zNzU2ODQ0IDU2Ljc2MjI3NywyMi45NDUxNDU1IDU2Ljc2MjI3NywyMS44ODY4NjYyIEM1Ni43NTYwODAzLDIwLjgyMzQyNDcgNTcuNTAzODE4LDE5LjUyNTYxMyA1OC40MzQzNTksMTguOTkzODkyMiBDNTkuMzUyNTA2NiwxOC40NjIxNzE0IDYwLjEwNjQ0MSwxOC44OTI3MTA0IDYwLjExMjYzNzcsMTkuOTU2MTUxOSIgaWQ9IkZpbGwtNyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOS4wMTA4NTkwMiw1My4yOTE1MzQ0IEw4Ljk5MTIzNjA3LDQ1LjYxOTI2ODIgQzguOTkxMjM2MDcsNDUuNDc0NzIyNyA4Ljg5MDAyMjk1LDQ1LjQxNjkwNDUgOC43NjQwMjI5NSw0NS40ODYwNzk5IEM4LjYzNjk5MDE2LDQ1LjU2MzUxNDkgOC41NDE5NzM3Nyw0NS43MzM4NzIxIDguNTQxOTczNzcsNDUuODc4NDE3NSBMOC41NjA1NjM5Myw1My41NTE3MTYyIEM4LjU2MDU2MzkzLDUzLjY5MTA5OTQgOC42NjI4MDk4NCw1My43NDY4NTI2IDguNzgyNjEzMTEsNTMuNjc3Njc3MyBDOC45MDk2NDU5LDUzLjYwMjMwNzEgOS4wMTA4NTkwMiw1My40MzE5NSA5LjAxMDg1OTAyLDUzLjI5MTUzNDQgTDkuMDEwODU5MDIsNTMuMjkxNTM0NCBaIE01NS4xNzk1MzExLDM4LjYzNzcyMjcgTDU1Ljg3MDQ2NTYsMzkuODQwNTQ3NCBMOS4xODc0NjU1Nyw2Ni43ODE3NTUyIEM3LjMwNzc5MzQ0LDY3Ljg3MTAwODQgNS43NzUxMzc3LDY2Ljk5NjUwODQgNS43NzUxMzc3LDY0LjgzODY1MTMgTDUuNjkyNTE0NzUsMzcuODMyMzk4MSBDNS42ODYzMTgwMywzNS42NzU1NzM0IDcuMjA1NTQ3NTQsMzMuMDQxNzQ4NyA5LjA4NzI4NTI1LDMxLjk1ODY5MDMgTDU0LjM5NDYxMzEsNS44MDgzNTI2IEw1NS4wOTA3MTE1LDcuMDExMTc3MjcgTDExLjg5ODUzMTEsMzEuOTM5MDczNCBMMTEuOTg3MzUwOCw2My41NjU2MTg4IEw1NS4xNzk1MzExLDM4LjYzNzcyMjcgWiIgaWQ9IkZpbGwtOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IEM1NC44NjYyODY5LDAuMDAwNTE2MjMzNzY2IDU0LjM0Njc5NTEsMC4xNTAyMjQwMjYgNTMuNzk4Mzg1MiwwLjQ2NzE5MTU1OCBMNC4xNzkxNzIxMywyOS4xMDU3NzYgQzIuMjk5NSwzMC4xOTA4OTk0IDAuNzgwMjcwNDkyLDMyLjgyMTYyNjYgMC43ODU0MzQ0MjYsMzQuOTgxNTQ4NyBMMC44NjI4OTM0NDMsNjEuOTg3ODAxOSBDMC44NjU5OTE4MDMsNjMuMDYwNTM1NyAxLjI0Mzk5MTgsNjMuODE1MjY5NSAxLjg1NTQwMTY0LDY0LjE2OTQwNTggTDYuNzY0MjM3Nyw2Ny4wMjIxMTM2IEM2LjE1Mzg2MDY2LDY2LjY2Njk0NDggNS43NzQ4Mjc4Nyw2NS45MTIyMTEgNS43NzE3Mjk1MSw2NC44Mzk0NzczIEw1LjY5NTMwMzI4LDM3LjgzMzIyNCBDNS42ODkxMDY1NiwzNS42NzQzMzQ0IDcuMjA4MzM2MDcsMzMuMDQyNTc0NyA5LjA4ODAwODIsMzEuOTU3NDUxMyBMNTguNzA3MjIxMywzLjMxODg2Njg4IEM1OS4yNTY2NjM5LDMuMDAxODk5MzUgNTkuNzc1MTIzLDIuODUyMTkxNTYgNjAuMjM0NzEzMSwyLjg1MjE5MTU2IEM2MC41NjgzMDMzLDIuODUyMTkxNTYgNjAuODY5ODc3LDIuOTMwNjU5MDkgNjEuMTMwMTM5MywzLjA4MTM5OTM1IEw1Ni4yMjAyNzA1LDAuMjMwNzU2NDk0IEM1NS45NjEwNDEsMC4wNzg5ODM3NjYyIDU1LjY1ODQzNDQsMC4wMDA1MTYyMzM3NjYgNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IE01NS4zMjU4NzcsMC42MzM0MTg4MzEgQzU1LjU0Mzc5NTEsMC42MzM0MTg4MzEgNTUuNzM3OTU5LDAuNjgxOTQ0ODA1IDU1LjkwMjE3MjEsMC43NzY5MzE4MTggTDU4Ljg5NjIyMTMsMi41MTY2Mzk2MSBDNTguNzI4OTA5OCwyLjU4Nzg3OTg3IDU4LjU2MDU2NTYsMi42NzM1NzQ2OCA1OC4zOTExODg1LDIuNzcxNjU5MDkgTDguNzcxOTc1NDEsMzEuNDEwMjQzNSBDNi42ODQ3MTMxMSwzMi42MTQxMDA2IDUuMDU0OTc1NDEsMzUuNDM2ODY2OSA1LjA2MjIwNDkyLDM3LjgzNTI4OSBMNS4xMzg2MzExNSw2NC44NDE1NDIyIEM1LjEzODYzMTE1LDY1LjAyMTE5MTYgNS4xNDg5NTkwMiw2NS4xOTU2Nzg2IDUuMTY3NTQ5MTgsNjUuMzYyOTM4MyBMMi4xNzM1LDYzLjYyMzIzMDUgQzEuNzM4Njk2NzIsNjMuMzcwMjc2IDEuNDk4MDU3MzgsNjIuNzg3OTY0MyAxLjQ5NTk5MTgsNjEuOTg1NzM3IEwxLjQxOTU2NTU3LDM0Ljk3OTQ4MzggQzEuNDEzMzY4ODUsMzMuMDU5MDk0MiAyLjgyMzEyMjk1LDMwLjYxOTM3MzQgNC40OTUyMDQ5MiwyOS42NTQwMTYyIEw1NC4xMTU0NTA4LDEuMDE0Mzk5MzUgQzU0LjU0ODE4ODUsMC43NjU1NzQ2NzUgNTQuOTY2NDY3MiwwLjYzMzQxODgzMSA1NS4zMjU4NzcsMC42MzM0MTg4MzEiIGlkPSJGaWxsLTM1Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjA4ODUyNDU5LDMyLjI3NDIxMjMgQzkuMDMzNzg2ODksMzIuMjc0MjEyMyA4Ljk4MDA4MTk3LDMyLjI1OTc1NzggOC45Mjk0NzU0MSwzMi4yMzE4ODEyIEw0LjM4OTM0NDI2LDI5LjU5MzkyNjYgQzQuMjM3NTI0NTksMjkuNTA2MTY2OSA0LjE4NTg4NTI1LDI5LjMxMjA2MyA0LjI3MzY3MjEzLDI5LjE2MTMyMjcgQzQuMzYyNDkxOCwyOS4wMDk1NSA0LjU1NjY1NTc0LDI4Ljk1OTk5MTYgNC43MDc0NDI2MiwyOS4wNDY3MTg4IEw5LjI0NzU3Mzc3LDMxLjY4NDY3MzQgQzkuMzk4MzYwNjYsMzEuNzcyNDMzMSA5LjQ1LDMxLjk2NTUwNDUgOS4zNjIyMTMxMSwzMi4xMTcyNzczIEM5LjMwMzM0NDI2LDMyLjIxNzQyNjYgOS4xOTY5NjcyMSwzMi4yNzQyMTIzIDkuMDg4NTI0NTksMzIuMjc0MjEyMyIgaWQ9IkZpbGwtMzciPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTU4LjcwNzYzNDQsMy42MzUzMTgxOCBDNTguNjUyODk2NywzLjYzNTMxODE4IDU4LjU5OTE5MTgsMy42MjE4OTYxIDU4LjU0ODU4NTIsMy41OTI5ODcwMSBMNTMuOTY5MjA4MiwwLjkzMjMxODE4MiBDNTMuODE4NDIxMywwLjg0NDU1ODQ0MiA1My43NjY3ODIsMC42NTA0NTQ1NDUgNTMuODU0NTY4OSwwLjQ5OTcxNDI4NiBDNTMuOTQyMzU1NywwLjM0NjkwOTA5MSA1NC4xMzY1MTk3LDAuMjk4MzgzMTE3IDU0LjI4NzMwNjYsMC4zODUxMTAzOSBMNTguODY2NjgzNiwzLjA0NTc3OTIyIEM1OS4wMTc0NzA1LDMuMTMzNTM4OTYgNTkuMDY5MTA5OCwzLjMyNjYxMDM5IDU4Ljk4MTMyMywzLjQ3ODM4MzEyIEM1OC45MjI0NTQxLDMuNTc5NTY0OTQgNTguODE2MDc3LDMuNjM1MzE4MTggNTguNzA3NjM0NCwzLjYzNTMxODE4IiBpZD0iRmlsbC0zOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMy4zMjA5MjYyMyw2My4zMzk5MjE0IEMyLjc5NjI3MDQ5LDYzLjMzOTkyMTQgMi4zNzA3NjIzLDYyLjkxNTU3NzMgMi4zNzA3NjIzLDYyLjM5MDA1MTMgTDIuMzcwNzYyMyw1OC4xMzAwOTAzIEMyLjM3MDc2MjMsNTcuNjA0NTY0MyAyLjc5NjI3MDQ5LDU3LjE4MDIyMDEgMy4zMjA5MjYyMyw1Ny4xODAyMjAxIEMzLjg0NTU4MTk3LDU3LjE4MDIyMDEgNC4yNzAwNTczOCw1Ny42MDQ1NjQzIDQuMjcwMDU3MzgsNTguMTMwMDkwMyBMNC4yNzAwNTczOCw2Mi4zOTAwNTEzIEM0LjI3MDA1NzM4LDYyLjkxNTU3NzMgMy44NDU1ODE5Nyw2My4zMzk5MjE0IDMuMzIwOTI2MjMsNjMuMzM5OTIxNCIgaWQ9IkZpbGwtNDEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTQ3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgNjguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IkNsaXAtNDYiPjwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBDODAuMzMyNzcwNiw1MC4yNzIxNzI0IDgxLjQ3MTM3MTgsNDguNjk5MjkzMSA4Mi43NjcwNzczLDQ3Ljk1MDUzNDUgQzgzLjM3MDM5MDIsNDcuNjAyMDg2MiA4My45NDIxMjAyLDQ3LjQ3OTcyNDEgODQuMzM4OTMwMSw0Ny42MTUwNTE3IEM4NC42MTI2NDc5LDQ3LjcwNzQzMSA4NC44MTgzNDExLDQ3LjkyNjIyNDEgODQuOTY3MzQ3Miw0OC4yODQzOTY2IEw4OC41NTQwMjIxLDU2LjkxOTQzMSBDODguNTYzNzM5OSw1Ni45NDEzMTAzIDg4LjU3NjY5NjksNTYuOTYwNzU4NiA4OC41ODcyMjQ1LDU2Ljk4MTAxNzIgQzg4LjU5Nzc1MjEsNTcuMDAwNDY1NSA4OC42MDU4NTAzLDU3LjAxOTkxMzggODguNjE3OTk3NSw1Ny4wMzg1NTE3IEM4OC42MzUwMDM3LDU3LjA2NDQ4MjggODguNjU1MjQ5MSw1Ny4wODcxNzI0IDg4LjY3NDY4NDcsNTcuMTA5ODYyMSBDODguNjg1MjEyMyw1Ny4xMjM2Mzc5IDg4LjY5NDkzMDEsNTcuMTM4MjI0MSA4OC43MDYyNjc1LDU3LjE0OTU2OSBDODguNzMyMTgxNiw1Ny4xNzYzMTAzIDg4Ljc2MDUyNTIsNTcuMTk5ODEwMyA4OC43ODk2Nzg1LDU3LjIyMTY4OTcgQzg4Ljc5Nzc3NjcsNTcuMjI4MTcyNCA4OC44MDUwNjUsNTcuMjM1NDY1NSA4OC44MTMxNjMyLDU3LjI0MTk0ODMgQzg5LjAwNzUxOSw1Ny4zNzgwODYyIDg5LjI2MjYxMSw1Ny40MjEwMzQ1IDg5LjQ5OTg4NzEsNTcuMzMyNzA2OSBMODkuODMxMTAxOCw1Ny4yMDc5MTM4IEw5MC4wNzQ4NTY0LDU3LjExODc3NTkgQzkwLjIxMDkwNTUsNTcuMDY4NTM0NSA5MC4zNDc3NjQ0LDU3LjAxODI5MzEgOTAuNDg1NDMzMSw1Ni45Njk2NzI0IEM5MC43ODY2ODQ3LDU2Ljg2MTg5NjYgOTEuMDkwMzY1Niw1Ni43NTk3OTMxIDkxLjM5NDA0NjYsNTYuNjU3Njg5NyBMOTIuMzY1MDE2LDU2LjM0MTY1NTIgQzkyLjgwMjMxNjYsNTYuMjAzMDg2MiA5My4yNDA0MjcsNTYuMDY4NTY5IDkzLjY4MjU4NjUsNTUuOTQwNTM0NSBDOTMuODUxMDI4Miw1NS44OTE5MTM4IDk0LjAxOTQ2OTksNTUuODQ0OTEzOCA5NC4xODc5MTE3LDU1Ljc5NjI5MzEgTDk0LjI3OTQyMDksNTUuNzcxMTcyNCBDOTQuNjg0MzI4OCw1NS42NTc3MjQxIDk1LjA5MDA0NjYsNTUuNTQ5OTQ4MyA5NS40OTczODQsNTUuNDQ2MjI0MSBMOTUuNjA2NzA5Miw1NS40MTcwNTE3IEM5NS43NjMwMDM3LDU1LjM3NjUzNDUgOTUuOTIwMTA4LDU1LjMzNjAxNzIgOTYuMDc3MjEyMyw1NS4yOTc5MzEgQzk2LjU2NjM0MTEsNTUuMTc3MTg5NyA5Ny4wNTU0Njk5LDU1LjA2Mzc0MTQgOTcuNTQ2MjE4NCw1NC45NTUxNTUyIEw5Ny44NTM5NDg1LDU0Ljg4NTQ2NTUgQzk4LjQ0NDMwNDMsNTQuNzU5MDUxNyA5OS4wMzcwODk2LDU0LjY0MjM2MjEgOTkuNjI3NDQ1NCw1NC41MzM3NzU5IEwxMDAuMDIxMDE2LDU0LjQ2NjUxNzIgQzEwMC42MTU0MjEsNTQuMzYxMTcyNCAxMDEuMjA5MDE2LDU0LjI2NjM2MjEgMTAxLjgwNDIzMSw1NC4xNzk2NTUyIEwxMDIuMjY1MDE2LDU0LjExMjM5NjYgQzEwMi45NjA2NDgsNTQuMDE2Nzc1OSAxMDMuNjQ3MzcyLDUzLjkzNDEyMDcgMTA0LjMwNTc1Miw1My44NjYwNTE3IEwxMDQuODM2MTgyLDUzLjgxNzQzMSBDMTA1LjIyNjUxMyw1My43ODE3NzU5IDEwNS42MTUyMjUsNTMuNzQ3NzQxNCAxMDYuMDA0NzQ2LDUzLjcyMDE4OTcgQzEwNi4yMTQ0ODgsNTMuNzA0NzkzMSAxMDYuNDIxODAxLDUzLjY5MjYzNzkgMTA2LjYzMDczNCw1My42Nzk2NzI0IEMxMDcuMDAwMDEsNTMuNjU3NzkzMSAxMDcuMzY2ODU2LDUzLjYzODM0NDggMTA3LjczNTMyMyw1My42MjM3NTg2IEMxMDcuOTUyMzUzLDUzLjYxNDg0NDggMTA4LjE2OTM4NCw1My42MDUxMjA3IDEwOC4zODU2MDUsNTMuNTk4NjM3OSBDMTA4LjY0Nzk4NSw1My41OTIxNTUyIDEwOC45MTAzNjYsNTMuNTg3MjkzMSAxMDkuMTczNTU2LDUzLjU4NDA1MTcgQzEwOS42NzgwNzEsNTMuNTc1OTQ4MyAxMTAuMTc4NTM3LDUzLjU3Njc1ODYgMTEwLjY4MDYyMyw1My41ODQ4NjIxIEwxMTAuNzY0MDM0LDUzLjU4NTY3MjQgQzExMC45ODE4NzUsNTMuNTg4OTEzOCAxMTEuMTk5NzE1LDUzLjU5MjE1NTIgMTExLjQxNTEyNiw1My41OTc4Mjc2IEMxMTEuNjI4MTA4LDUzLjYwNTEyMDcgMTExLjg0MDI4LDUzLjYxNDg0NDggMTEyLjA1MjQ1Miw1My42MjM3NTg2IEMxMTIuMzE0MDIyLDUzLjYzNDI5MzEgMTEyLjU3NDc4Myw1My42NDcyNTg2IDExMi44MzQ3MzQsNTMuNjYyNjU1MiBDMTEzLjA0NDQ3Niw1My42NzQ4MTAzIDExMy4yNTQyMTgsNTMuNjg5Mzk2NiAxMTMuNDYzOTYxLDUzLjcwNDc5MzEgQzExMy43MjQ3MjEsNTMuNzI0MjQxNCAxMTMuOTg1NDgyLDUzLjc0NDUgMTE0LjI0MzgxMyw1My43NjcxODk3IEMxMTQuNDMzMzEsNTMuNzg1MDE3MiAxMTQuNjIxOTk4LDUzLjgwMjg0NDggMTE0LjgwOTA2NSw1My44MjIyOTMxIEMxMTUuMDczODc1LDUzLjg0OTAzNDUgMTE1LjMzNjI1NSw1My44Nzk4Mjc2IDExNS41OTYyMDYsNTMuOTExNDMxIEMxMTUuNzgwMDM0LDUzLjkzMzMxMDMgMTE1Ljk2MzA1Myw1My45NTYgMTE2LjE0NDQ1Miw1My45ODAzMTAzIEMxMTYuNDEyNTAxLDU0LjAxNjc3NTkgMTE2LjY3ODEyLDU0LjA1NzI5MzEgMTE2Ljk0MTMxLDU0LjA5ODYyMDcgTDExNy4wOTExMjYsNTQuMTIxMzEwMyBDMTE3LjIxMDE2OSw1NC4xMzkxMzc5IDExNy4zMjY3ODMsNTQuMTU3Nzc1OSAxMTcuNDQyNTg3LDU0LjE3NjQxMzggQzExNy43MzA4ODEsNTQuMjI1ODQ0OCAxMTguMDE1MTI2LDU0LjI3OTMyNzYgMTE4LjMwMDk5MSw1NC4zMzUyNDE0IEwxMTguNDQ2NzU4LDU0LjM2MTk4MjggQzExOC41MzUwMjgsNTQuMzc4MTg5NyAxMTguNjIzMjk4LDU0LjM5NTIwNjkgMTE4LjcxMjM3OCw1NC40MTMwMzQ1IEMxMTkuMDE3Njc5LDU0LjQ3NDYyMDcgMTE5LjMxNzMxLDU0LjU0NDMxMDMgMTE5LjYxNTMyMyw1NC42MTQgTDExOS45NzE2NDIsNTQuNjk0MjI0MSBDMTIwLjM4NDY0OCw1NC43OTU1MTcyIDEyMC43OTE5ODUsNTQuOTAyNDgyOCAxMjEuMTkyODQ0LDU1LjAxNjc0MTQgQzEyMS42MjkzMzUsNTUuMTQyMzQ0OCAxMjIuMDU2OTE4LDU1LjI3NjA1MTcgMTIyLjQ3ODgzMiw1NS40MTc4NjIxIEMxMjIuNTU0MTQ1LDU1LjQ0MjE3MjQgMTIyLjYyNzAyOCw1NS40Njk3MjQxIDEyMi43MDA3MjEsNTUuNDk1NjU1MiBMMTIyLjg1NjIwNiw1NS41NTMxODk3IEMxMjMuMTQ1MzEsNTUuNjU0NDgyOCAxMjMuNDMyNzk1LDU1Ljc1NjU4NjIgMTIzLjcxNjIzMSw1NS44Njc2MDM0IEMxMjMuNzc2OTY3LDU1Ljg5MTEwMzQgMTIzLjgzNTI3NCw1NS45MTYyMjQxIDEyMy44OTQzOSw1NS45NDA1MzQ1IEwxMjQuMDQwOTY3LDU2LjAwMTMxMDMgQzEyNC40MTc1MzEsNTYuMTU0NDY1NSAxMjQuNzg1MTg4LDU2LjMxNDkxMzggMTI1LjE0MzkzNiw1Ni40ODI2NTUyIEwxMjUuMjMwNTg3LDU2LjUyMzE3MjQgQzEyNS4zMjc3NjQsNTYuNTY3NzQxNCAxMjUuNDI0OTQyLDU2LjYxMzEyMDcgMTI1LjUyMjEyLDU2LjY2MTc0MTQgQzEyNS44NTk4MTMsNTYuODI3MDUxNyAxMjYuMTYwMjU1LDU2Ljk4MTgyNzYgMTI2LjQzNTU5Myw1Ny4xMzA5MzEgQzEyNi40MzU1OTMsNTcuMzczMjI0MSAxMjYuNDM1NTkzLDU3LjY4NjgyNzYgMTI2LjQzNjQwMiw1OC4wMDM2NzI0IEwxMjYuNDM2NDAyLDU4LjAyNzE3MjQgQzExNy40MzUyOTgsNTMuNTMzIDEwMy4wNTg2MzYsNTMuNTYyMTcyNCA5MC4wMjU0NTc3LDU4LjE5ODE1NTIgTDg4LjQ5ODE0NDgsNTguMTg2IEw3OC44MzI5OTE0LDU1LjY4NzcwNjkgTDc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBaIE03Ni4yNDQwMDk4LDU3LjQ1OTkzMSBMNzYuMjQ3MjQ5MSw1Ni40MjI2ODk3IEM3Ni4yNDcyNDkxLDU2LjQxNTM5NjYgNzYuMjQ0ODE5Niw1Ni40MDg5MTM4IDc2LjI0NDgxOTYsNTYuNDAxNjIwNyBDNzYuMjQ0MDA5OCw1Ni4zODg2NTUyIDc2LjI0NTYyOTQsNTYuMzc0ODc5MyA3Ni4yNDQwMDk4LDU2LjM2MTkxMzggTDc2LjI0NDAwOTgsNTYuMjI5MDE3MiBDNzYuMjQ0MDA5OCw1NS45NjI0MTM4IDc2LjEwMjI5Miw1NS43MTY4NzkzIDc1Ljg3MTQ5NDUsNTUuNTgzOTgyOCBDNzUuNzMyMjA2MSw1NS41MDM3NTg2IDc1LjU3MzQ4MjIsNTUuNDc3ODI3NiA3NS40MTg4MDc0LDU1LjQ5NDg0NDggQzc1LjI5MzI4NTksNTUuNDE3ODYyMSA3NS4xNjQ1MjUyLDU1LjM0MzMxMDMgNzUuMDQyMjQyOSw1NS4yNjM4OTY2IEM3NS4wMDQxODE2LDU1LjIzODc3NTkgNzQuOTY4NTQ5Nyw1NS4yMTI4NDQ4IDc0LjkyOTY3ODUsNTUuMTg2OTEzOCBDNzQuNjg5MTYzMiw1NS4wMjgwODYyIDc0LjQ1MjY5NjksNTQuODY1MjA2OSA3NC4yMjY3NTgzLDU0LjY5ODI3NTkgQzc0LjIxMjk5MTQsNTQuNjg3NzQxNCA3NC4xOTkyMjQ1LDU0LjY3NzIwNjkgNzQuMTg1NDU3Nyw1NC42Njc0ODI4IEM3My42Nzc3MDMxLDU0LjI4OTg2MjEgNzMuMjA1NTgwNCw1My44OTQ0MTM4IDcyLjc3Mzk0ODUsNTMuNDgwMzI3NiBDNzMuNDc3Njc4NSw1MS45MzAxMzc5IDczLjg0NjE0NDgsNTAuMzY2OTgyOCA3My44NDIwOTU3LDQ4LjkzMDI0MTQgQzczLjgzNzIzNjgsNDcuMTYyODc5MyA3My4yNDYwNzEyLDQ1Ljc1NTMxMDMgNzIuMTc3MTE0MSw0NC45NjYwMzQ1IEM3MS43MzczODQsNDQuNjQwMjc1OSA3MS4yMjgwMDk4LDQ0LjQzNjg3OTMgNzAuNjc3MzM1LDQ0LjM0NjEyMDcgQzcwLjY4Nzg2MjYsNDQuMzIzNDMxIDcwLjY5ODM5MDIsNDQuMjk3NSA3MC43MDg5MTc4LDQ0LjI3NDgxMDMgQzcwLjcxMDUzNzQsNDQuMjcxNTY5IDcwLjczMzIxMjMsNDQuMjI3IDcwLjczNDgzMTksNDQuMjIzNzU4NiBDNzAuNzk3OTk3NSw0NC4wOTI0ODI4IDcwLjg2NzY0MTcsNDMuOTYyODI3NiA3MC45MzcyODU5LDQzLjgzMDc0MTQgTDcxLjE4MjY2MDEsNDMuMzU2Njg5NyBDNzEuMjM2MTA4LDQzLjI2MjY4OTcgNzEuMjkxOTg1Myw0My4xNjc4NzkzIDcxLjM0ODY3MjQsNDMuMDczMDY5IEw3MS40MTUwNzczLDQyLjk2Mjg2MjEgQzcxLjUzNDkzMDEsNDIuNzYxMDg2MiA3MS42NTg4MzE5LDQyLjU1ODUgNzEuNzkwMDIyMSw0Mi4zNTY3MjQxIEM3MS44NzAxOTM5LDQyLjIzMjc0MTQgNzEuOTUzNjA0OSw0Mi4xMDg3NTg2IDcyLjAzNzgyNTgsNDEuOTg2Mzk2NiBDNzIuMTc1NDk0NSw0MS43ODYyNDE0IDcyLjMxODAyMjEsNDEuNTg2ODk2NiA3Mi40NjU0MDg2LDQxLjM4OTE3MjQgTDcyLjU2MTc3NjcsNDEuMjU3ODk2NiBDNzIuNjU0OTA1NSw0MS4xMzIyOTMxIDcyLjc0ODAzNDQsNDEuMDA1ODc5MyA3Mi44NDUyMTIzLDQwLjg4MjcwNjkgQzcyLjg4NDg5MzMsNDAuODMxNjU1MiA3Mi45MjcwMDM3LDQwLjc4MjIyNDEgNzIuOTY5MTE0MSw0MC43MzExNzI0IEw3My4wNTk4MTM1LDQwLjYyMzM5NjYgQzczLjIwOTYyOTQsNDAuNDQwMjU4NiA3My4zNTk0NDU0LDQwLjI1NzkzMSA3My41MzM1NTU4LDQwLjA1Nzc3NTkgQzczLjc2NTk3MywzOS43OTAzNjIxIDc0LjAxMDUzNzQsMzkuNTI0NTY5IDc0LjI2NDAwOTgsMzkuMjU5NTg2MiBDNzQuMzQ0MTgxNiwzOS4xNzUzMTAzIDc0LjQyNTE2MzIsMzkuMDkxMDM0NSA3NC41MDg1NzQyLDM5LjAwNjc1ODYgQzc0Ljc1NzE4NzcsMzguNzUxNSA3NS4wMTM4OTk0LDM4LjUwMDI5MzEgNzUuMjg1MTg3NywzOC4yNDM0MTM4IEw3NS4zNjEzMTA0LDM4LjE3MTI5MzEgQzc1LjQ1NjA1ODksMzguMDgxMzQ0OCA3NS41NTU2NjYzLDM3Ljk5MzgyNzYgNzUuNjU1MjczNiwzNy45MDM4NzkzIEw3NS44NzM5MjM5LDM3LjcwODU4NjIgQzc2LjAzODMxNjYsMzcuNTYxMTAzNCA3Ni4yMDE4OTk0LDM3LjQxNTI0MTQgNzYuMzcyNzcwNiwzNy4yNjkzNzkzIEM3Ni40NzM5OTc1LDM3LjE4NDI5MzEgNzYuNTc3NjU0LDM3LjA5ODM5NjYgNzYuNjgxMzEwNCwzNy4wMTMzMTAzIEw3Ni43ODkwMTYsMzYuOTIzMzYyMSBDNzcuMDIzODYyNiwzNi43MzEzMTAzIDc3LjI2MDMyODgsMzYuNTM5MjU4NiA3Ny41MDQwODM0LDM2LjM0ODgyNzYgQzc3LjY1NzEzODcsMzYuMjMwNTE3MiA3Ny44MTE4MTM1LDM2LjExMjIwNjkgNzcuOTY3Mjk4MiwzNS45OTQ3MDY5IEM3OC4yMTc1MzEzLDM1LjgwNTg5NjYgNzguNDc1MDUyOCwzNS42MTk1MTcyIDc4LjczNDE5MzksMzUuNDMzOTQ4MyBMNzguODA0NjQ3OSwzNS4zODQ1MTcyIEM3OC45MzkwNzczLDM1LjI4ODg5NjYgNzkuMDc0MzE2NiwzNS4xOTI0NjU1IDc5LjIxMDM2NTYsMzUuMDk3NjU1MiBDNzkuNTAxMDg5NiwzNC44OTgzMTAzIDc5Ljc5OTkxMTcsMzQuNzAwNTg2MiA4MC4xMDAzNTM0LDM0LjUwNTI5MzEgTDgwLjI3Njg5MzMsMzQuMzg4NjAzNCBDODAuMzcwMDIyMSwzNC4zMjc4Mjc2IDgwLjQ2MjM0MTEsMzQuMjY2MjQxNCA4MC41NjExMzg3LDM0LjIwNDY1NTIgTDgwLjgzNDg1NjQsMzQuMDM0NDgyOCBDODEuMTkzNjA0OSwzMy44MTE2Mzc5IDgxLjU1NTU5MjYsMzMuNTkwNDEzOCA4MS45MzA1Mzc0LDMzLjM3MTYyMDcgQzgyLjM0NzU5MjYsMzMuMTI5MzI3NiA4Mi43NzE5MzYyLDMyLjg5MzUxNzIgODMuMjAxMTM4NywzMi42NjA5NDgzIEM4My4yOTAyMTg0LDMyLjYxMzk0ODMgODMuMzc4NDg4MywzMi41NjY5NDgzIDgzLjQ2ODM3NzksMzIuNTIwNzU4NiBMODQuMjAyODgxLDMyLjEzOTA4NjIgQzg0LjMwMjQ4ODMsMzIuMDg3MjI0MSA4NC40MDI5MDU1LDMyLjAzNTM2MjEgODQuNTAxNzAzMSwzMS45ODUxMjA3IEw4NS4yOTM3MDMxLDMxLjYwMTAxNzIgQzg1LjQ3MjY3MjQsMzEuNTEzNSA4NS42NTI0NTE1LDMxLjQyNjc5MzEgODUuODM0NjYwMSwzMS4zNDI1MTcyIEM4Ni4wMTg0ODgzLDMxLjI1NjYyMDcgODYuMjA0NzQ2LDMxLjE3MzE1NTIgODYuMzkxMDAzNywzMS4wODg4NzkzIEM4Ni42NTc0MzMxLDMwLjk2ODk0ODMgODYuOTI1NDgyMiwzMC44NDkwMTcyIDg3LjE5NTE1MDksMzAuNzMzOTQ4MyBDODcuMzg1NDU3NywzMC42NTA0ODI4IDg3LjU3NjU3NDIsMzAuNTcwMjU4NiA4Ny43NzAxMjAyLDMwLjQ5MDAzNDUgQzg4LjAzOTc4OSwzMC4zNzczOTY2IDg4LjMxMTg4NzEsMzAuMjY2Mzc5MyA4OC41ODQ3OTUxLDMwLjE1Nzc5MzEgQzg4Ljc3NjcyMTUsMzAuMDgxNjIwNyA4OC45Njk0NTc3LDMwLjAwNDYzNzkgODkuMTYwNTc0MiwyOS45MzA4OTY2IEM4OS40MTA4MDc0LDI5LjgzNTI3NTkgODkuNjYxMDQwNSwyOS43NDIwODYyIDg5LjkxMjg5MzMsMjkuNjQ5NzA2OSBDODkuOTE1MzIyNywyOS42NDg4OTY2IDkwLjAwNDQwMjUsMjkuNjE1NjcyNCA5MC4wMDYwMjIxLDI5LjYxNDg2MjEgTDkwLjE0NDUwMDYsMjkuNTYzIEM5MC4yODYyMTg0LDI5LjUxMTk0ODMgOTAuNDI3MTI2NCwyOS40NTkyNzU5IDkwLjU3MTI3MzYsMjkuNDA5MDM0NSBDOTAuNjg1NDU3NywyOS4zNjc3MDY5IDkwLjgwMTI2MTMsMjkuMzI4ODEwMyA5MC45MTYyNTUyLDI5LjI4OTkxMzggTDkxLjAyODgxOTYsMjkuMjUxODI3NiBDOTEuMTc5NDQ1NCwyOS4xOTkxNTUyIDkxLjMzMDg4MSwyOS4xNDcyOTMxIDkxLjQ4MzkzNjIsMjkuMDk1NDMxIEw5Mi40NTI0NzYxLDI4Ljc4MDIwNjkgQzkyLjg4OTc3NjcsMjguNjQyNDQ4MyA5My4zMjcwNzczLDI4LjUwNzkzMSA5My43NjY4MDc0LDI4LjM3OTg5NjYgQzkzLjk2NjAyMjEsMjguMzIyMzYyMSA5NC4xNjYwNDY2LDI4LjI2NjQ0ODMgOTQuMzY3NjkwOCwyOC4yMDk3MjQxIEM5NC43NzA5NzkxLDI4LjA5Nzg5NjYgOTUuMTc1ODg3MSwyNy45ODg1IDk1LjU4MzIyNDUsMjcuODgzOTY1NSBMOTUuNzIyNTEyOSwyNy44NDkxMjA3IEM5NS44Njk4OTk0LDI3LjgxMDIyNDEgOTYuMDE2NDc2MSwyNy43NzIxMzc5IDk2LjE2Mzg2MjYsMjcuNzM1NjcyNCBDOTYuNjUyMTgxNiwyNy42MTY1NTE3IDk3LjE0MTMxMDQsMjcuNTAyMjkzMSA5Ny42MzY5MTc4LDI3LjM5MzcwNjkgTDk3Ljk0MDU5ODgsMjcuMzI0ODI3NiBDOTguNTMwOTU0NiwyNy4xOTc2MDM0IDk5LjEyMjkzMDEsMjcuMDgxNzI0MSA5OS43MTQwOTU3LDI2Ljk3MzEzNzkgTDEwMC4xMDc2NjYsMjYuOTA1ODc5MyBDMTAwLjcwMTI2MSwyNi44MDA1MzQ1IDEwMS4yOTQwNDcsMjYuNzA1NzI0MSAxMDEuODg3NjQyLDI2LjYxODIwNjkgTDEwMi4zNTI0NzYsMjYuNTUwOTQ4MyBDMTAzLjAzMjcyMSwyNi40NTY5NDgzIDEwMy43MTk0NDUsMjYuMzc1MTAzNCAxMDQuMzkyNDAyLDI2LjMwNjIyNDEgTDEwNC45MjQ0NTIsMjYuMjU2NzkzMSBDMTA1LjMxMzE2MywyNi4yMjAzMjc2IDEwNS43MDEwNjUsMjYuMTg3MTAzNCAxMDYuMDg5Nzc3LDI2LjE1OTU1MTcgQzEwNi4yOTc4OTksMjYuMTQ0MTU1MiAxMDYuNTA1MjEyLDI2LjEzMTE4OTcgMTA2LjcxODE5NCwyNi4xMTgyMjQxIEMxMDYuOTY1OTk4LDI2LjEwMzYzNzkgMTA3LjIxMjE4MiwyNi4wOTIyOTMxIDEwNy40NTkxNzUsMjYuMDgwOTQ4MyBMMTA3LjUxOTkxMiw0NS4yODQ1IEw4OS42Mjc4MzgsNTUuNjIxMjU4NiBMODYuMzQyNDE0Nyw0Ny43MTMxMDM0IEM4Ni4wMjkwMTYsNDYuOTU3MDUxNyA4NS41MDE4MjU4LDQ2LjQzNTE4OTcgODQuODE3NTMxMyw0Ni4yMDI2MjA3IEM4NC4wMDIwNDY2LDQ1LjkyNTQ4MjggODMuMDEwODMxOSw0Ni4wODgzNjIxIDgyLjAyMjg1NjQsNDYuNjU5NjU1MiBDODAuMzgyMTY5Myw0Ny42MDc3NTg2IDc5LjAwNTQ4MjIsNDkuNDg0NTE3MiA3OC40MzA1MTI5LDUxLjU1OSBMNzYuMjQ0MDA5OCw1OS40NTkwNTE3IEw3Ni4yNDQwMDk4LDU3LjQ1OTkzMSBaIE01OC4wMzEyNDkxLDExLjkwMTUzNDUgTDMuMjI1MzM0OTcsNDMuNjE4NDMxIEwzLjIyNTMzNDk3LDM3Ljc5NTI5MzEgQzMuMjI1MzM0OTcsMzUuMDY3NjcyNCA0LjY5MTEwMTg0LDMyLjUyNTYyMDcgNy4wNTA5MDU1MiwzMS4xNjAxODk3IEw1NC4zMDQ0NzYxLDMuODE0MjkzMSBDNTUuMDgyNzA5MiwzLjM2MjkzMTAzIDU2LjAxMDc1ODMsMy4zNjIxMjA2OSA1Ni43ODgxODE2LDMuODEyNjcyNDEgQzU3LjU2NjQxNDcsNC4yNjE2MDM0NSA1OC4wMzEyNDkxLDUuMDY2Mjc1ODYgNTguMDMxMjQ5MSw1Ljk2NDk0ODI4IEw1OC4wMzEyNDkxLDExLjkwMTUzNDUgWiBNMTI3LjIwOTc3NywyNS40Mzk5NjU1IEMxMjcuMTQ5ODUsMjUuNDA2NzQxNCAxMjcuMDg5OTI0LDI1LjM3NDMyNzYgMTI3LjAyOTk5OCwyNS4zNDI3MjQxIEMxMjYuOTUzMDY1LDI1LjMwMjIwNjkgMTI2Ljg4MDE4MiwyNS4yNjA4NzkzIDEyNi44MDMyNDksMjUuMjIwMzYyMSBDMTI2LjgwMjQzOSwyNS4yMTk1NTE3IDEyNi44MDE2MjksMjUuMjE5NTUxNyAxMjYuODAxNjI5LDI1LjIxOTU1MTcgQzEyNi42NDEyODYsMjUuMTM1Mjc1OSAxMjYuNDc5MzIzLDI1LjA1NDI0MTQgMTI2LjMxNTc0LDI0Ljk3MzIwNjkgQzEyNi4yOTcxMTQsMjQuOTY0MjkzMSAxMjYuMjc5Mjk4LDI0Ljk1NTM3OTMgMTI2LjI2MTQ4MiwyNC45NDU2NTUyIEMxMjYuMTU3ODI2LDI0Ljg5NTQxMzggMTI2LjA1MDkzLDI0Ljg0NTk4MjggMTI1LjkwNjc4MywyNC43Nzg3MjQxIEMxMjUuOTAzNTQ0LDI0Ljc3NjI5MzEgMTI1Ljg2NDY3MiwyNC43NTg0NjU1IDEyNS44NjA2MjMsMjQuNzU2MDM0NSBDMTI1Ljg0MzYxNywyNC43NDc5MzEgMTI1LjgyNDk5MSwyNC43NDE0NDgzIDEyNS44MDc5ODUsMjQuNzMyNTM0NSBDMTI1LjQ5Mjk2NywyNC41ODgyOTMxIDEyNS4xNzE0NywyNC40NDgxMDM0IDEyNC44NDUxMTQsMjQuMzEzNTg2MiBDMTI0Ljc5MjQ3NiwyNC4yOTA4OTY2IDEyNC43NDIyNjcsMjQuMjY2NTg2MiAxMjQuNjg4ODIsMjQuMjQ1NTE3MiBMMTI0LjU2MDg2OSwyNC4xOTEyMjQxIEMxMjQuNDg3OTg1LDI0LjE2MTI0MTQgMTI0LjQxNTEwMiwyNC4xMzEyNTg2IDEyNC4zNDA1OTksMjQuMTAyMDg2MiBDMTI0LjMxOTU0NCwyNC4wOTMxNzI0IDEyNC4yOTYwNTksMjQuMDg1ODc5MyAxMjQuMjc0MTk0LDI0LjA3Nzc3NTkgQzEyNC4yNTIzMjksMjQuMDY4ODYyMSAxMjQuMjI4MDM0LDI0LjA2MDc1ODYgMTI0LjIwNjE2OSwyNC4wNTE4NDQ4IEMxMjMuOTUzNTA3LDIzLjk1NjIyNDEgMTIzLjY5NzYwNSwyMy44NjMwMzQ1IDEyMy40MzkyNzQsMjMuNzcxNDY1NSBMMTIzLjI4NzgzOCwyMy43MTYzNjIxIEMxMjMuMjA1MjM3LDIzLjY4NjM3OTMgMTIzLjEyMTgyNiwyMy42NTYzOTY2IDEyMy4wMzc2MDUsMjMuNjI4MDM0NSBDMTIyLjU5NTQ0NSwyMy40Nzg5MzEgMTIyLjE0NTk5OCwyMy4zMzk1NTE3IDEyMS42ODY4MzIsMjMuMjA3NDY1NSBDMTIxLjI2ODE1NywyMy4wODgzNDQ4IDEyMC44NDMwMDQsMjIuOTc2NTE3MiAxMjAuNDEwNTYyLDIyLjg3MDM2MjEgQzEyMC4zMzM2MjksMjIuODUxNzI0MSAxMjAuMjU1MDc3LDIyLjgzNDcwNjkgMTIwLjE3NzMzNSwyMi44MTY4NzkzIEwxMjAuMDQxMjg2LDIyLjc4Njg5NjYgQzExOS43Mjg2OTcsMjIuNzEzOTY1NSAxMTkuNDE0NDg4LDIyLjY0MTg0NDggMTE5LjA5NDYxMSwyMi41NzYyMDY5IEwxMTguNjY3ODM4LDIyLjQ5NTk4MjggQzExOC4zNzIyNTUsMjIuNDM4NDQ4MyAxMTguMDc2NjcyLDIyLjM4MTcyNDEgMTE3Ljc3NzA0LDIyLjMzMTQ4MjggQzExNy42NTQ3NTgsMjIuMzExMjI0MSAxMTcuNTMxNjY2LDIyLjI5MjU4NjIgMTE3LjQwODU3NCwyMi4yNzMxMzc5IEwxMTcuMjU3MTM5LDIyLjI0OTYzNzkgQzExNi45ODE4MDEsMjIuMjA2Njg5NyAxMTYuNzA3Mjc0LDIyLjE2NDU1MTcgMTE2LjQzMDMxNywyMi4xMjcyNzU5IEMxMTYuMjY1MTE0LDIyLjEwNTM5NjYgMTE2LjA5OTEwMiwyMi4wODUxMzc5IDExNS45MzMwOSwyMi4wNjQwNjkgTDExNS44NjQyNTUsMjIuMDU1OTY1NSBDMTE1LjYwOTE2MywyMi4wMjUxNzI0IDExNS4zNTI0NTIsMjEuOTk1MTg5NyAxMTUuMTEwMzE3LDIxLjk3MDg3OTMgQzExNS4xMDQ2NDgsMjEuOTcwMDY5IDExNS4wNTI4MiwyMS45NjM1ODYyIDExNS4wNDc5NjEsMjEuOTYzNTg2MiBDMTE0Ljg1NTIyNSwyMS45NDQxMzc5IDExNC42NjAwNTksMjEuOTI0Njg5NyAxMTQuNDYzMjc0LDIxLjkwNjg2MjEgQzExNC4xOTY4NDQsMjEuODgzMzYyMSAxMTMuOTI4Nzk1LDIxLjg2MjI5MzEgMTEzLjY1OTEyNiwyMS44NDI4NDQ4IEMxMTMuNDQyMDk2LDIxLjgyNjYzNzkgMTEzLjIyNTA2NSwyMS44MTEyNDE0IDExMy4wMTQ1MTMsMjEuNzk5MDg2MiBMMTEyLjkyMDU3NCwyMS43OTQyMjQxIEMxMTIuNjgxNjc5LDIxLjc4MDQ0ODMgMTEyLjQ0MTE2MywyMS43NjgyOTMxIDExMi4xOTk4MzgsMjEuNzU3NzU4NiBDMTExLjk4MzYxNywyMS43NDg4NDQ4IDExMS43NjY1ODcsMjEuNzM5OTMxIDExMS41NDc5MzYsMjEuNzMzNDQ4MyBDMTExLjMyMzYxNywyMS43MjYxNTUyIDExMS4wOTg0ODgsMjEuNzIyOTEzOCAxMTAuODcyNTUsMjEuNzIwNDgyOCBMMTEwLjc4ODMyOSwyMS43MTg4NjIxIEMxMTAuMjc0MDk2LDIxLjcxMDc1ODYgMTA5Ljc2MTQ4MiwyMS43MDk5NDgzIDEwOS4yMzgzNDEsMjEuNzE3MjQxNCBDMTA4Ljk2ODY3MiwyMS43MjEyOTMxIDEwOC42OTk4MTMsMjEuNzI0NTM0NSAxMDguNDI4NTI1LDIxLjczMzQ0ODMgQzEwOC4yNTQ0MTUsMjEuNzM4MzEwMyAxMDguMDc5NDk0LDIxLjc0NTYwMzQgMTA3LjkwNDU3NCwyMS43NTI4OTY2IEwxMDcuNzU3MTg4LDIxLjc1Nzc1ODYgQzEwNy4zODIyNDMsMjEuNzczOTY1NSAxMDcuMDA1Njc5LDIxLjc5MjYwMzQgMTA2LjYyMDIwNiwyMS44MTY5MTM4IEMxMDYuNDA3MjI1LDIxLjgyOTA2OSAxMDYuMTk1MDUzLDIxLjg0Mjg0NDggMTA1Ljk4MjA3MSwyMS44NTc0MzEgQzEwNS41ODQ0NTIsMjEuODg2NjAzNCAxMDUuMTg2MDIyLDIxLjkyMTQ0ODMgMTA0Ljc4NTE2MywyMS45NTc5MTM4IEwxMDQuMjQwOTY3LDIyLjAwODE1NTIgQzEwMy41NjM5NjEsMjIuMDc3MDM0NSAxMDIuODYwMjMxLDIyLjE2MTMxMDMgMTAyLjE1MDAyMiwyMi4yNjAxNzI0IEwxMDEuNjczMDQsMjIuMzI5MDUxNyBDMTAxLjA2NDg2OSwyMi40MTczNzkzIDEwMC40NTc1MDcsMjIuNTE1NDMxIDk5Ljg0NjA5NTcsMjIuNjIzMjA2OSBMOTkuNDQ2MDQ2NiwyMi42OTIwODYyIEM5OC44Mzk0OTQ1LDIyLjgwMzEwMzQgOTguMjMzNzUyMSwyMi45MjIyMjQxIDk3LjYyMzE1MDksMjMuMDUzNSBMOTcuMzEyMTgxNiwyMy4xMjQgQzk2LjgxMDA5NTcsMjMuMjM1MDE3MiA5Ni4zMDgwMDk4LDIzLjM1MDA4NjIgOTUuODA4MzUzNCwyMy40NzQ4NzkzIEM5NS42MzkxMDE4LDIzLjUxNTM5NjYgOTUuNDcwNjYwMSwyMy41NTkxNTUyIDk1LjMwMjIxODQsMjMuNjAyOTEzOCBMOTUuMjEyMzI4OCwyMy42MjU2MDM0IEM5NC43OTYwODM0LDIzLjczMjU2OSA5NC4zODA2NDc5LDIzLjg0NDM5NjYgOTMuOTY2MDIyMSwyMy45NTk0NjU1IEM5My43NjExMzg3LDI0LjAxNyA5My41NTYyNTUyLDI0LjA3NDUzNDUgOTMuMzUwNTYyLDI0LjEzMzY4OTcgQzkyLjkwMDMwNDMsMjQuMjY0OTY1NSA5Mi40NTE2NjYzLDI0LjQwMjcyNDEgOTIuMDAzODM4LDI0LjU0NDUzNDUgTDkxLjgxNzU4MDQsMjQuNjAyMDY5IEM5MS43MjIwMjIxLDI0LjYzMTI0MTQgOTEuNjI3MjczNiwyNC42NjA0MTM4IDkxLjUzMzMzNSwyNC42OTEyMDY5IEM5MS40MTUxMDE4LDI0LjcyOTI5MzEgOTEuMjk2ODY4NywyNC43Njk4MTAzIDkxLjE3ODYzNTYsMjQuODEwMzI3NiBMOTAuMDc0MDQ2NiwyNS4xODg3NTg2IEM4OS45MjUwNDA1LDI1LjI0MTQzMSA4OS43Nzc2NTQsMjUuMjk1NzI0MSA4OS42MzAyNjc1LDI1LjM1MDAxNzIgTDg5LjM5Nzg1MDMsMjUuNDM1OTEzOCBDODkuMTQwMzI4OCwyNS41MzE1MzQ1IDg4Ljg4MjgwNzQsMjUuNjI2MzQ0OCA4OC42MjYwOTU3LDI1LjcyNTIwNjkgQzg4LjQyNjg4MSwyNS44MDIxODk3IDg4LjIzMDA5NTcsMjUuODc5MTcyNCA4OC4wMzQxMjAyLDI1Ljk1ODU4NjIgQzg3Ljc1MzExNDEsMjYuMDcwNDEzOCA4Ny40NzM3Mjc2LDI2LjE4MzA1MTcgODcuMTk1OTYwNywyNi4yOTk3NDE0IEM4Ny4xMDkzMTA0LDI2LjMzNjIwNjkgODcuMDIyNjYwMSwyNi4zNzI2NzI0IDg2LjkzNjAwOTgsMjYuNDA5OTQ4MyBDODYuODk4NzU4MywyNi40MjUzNDQ4IDg2Ljg2MDY5NjksMjYuNDQxNTUxNyA4Ni44MjI2MzU2LDI2LjQ1Njk0ODMgQzg2Ljc1MDU2MiwyNi40ODc3NDE0IDg2LjY3NzY3ODUsMjYuNTE3NzI0MSA4Ni42MDU2MDQ5LDI2LjU0OTMyNzYgQzg2LjMyNzgzOCwyNi42NjkyNTg2IDg2LjA1MjUwMDYsMjYuNzkxNjIwNyA4NS43Nzg3ODI4LDI2LjkxNTYwMzQgQzg1LjcxMDc1ODMsMjYuOTQ2Mzk2NiA4NS42NDM1NDM2LDI2Ljk3NzE4OTcgODUuNTc1NTE5LDI3LjAwNzE3MjQgQzg1LjQ4NjQzOTMsMjcuMDQ4NSA4NS4zOTY1NDk3LDI3LjA4OTAxNzIgODUuMzA3NDY5OSwyNy4xMjk1MzQ1IEM4NS4yNzM0NTc3LDI3LjE0NTc0MTQgODUuMjM5NDQ1NCwyNy4xNTk1MTcyIDg1LjIwNjI0MjksMjcuMTc1NzI0MSBDODUuMDQxMDQwNSwyNy4yNTI3MDY5IDg0Ljg3ODI2NzUsMjcuMzMxMzEwMyA4NC43MTU0OTQ1LDI3LjQwOTkxMzggTDg0LjIwNzczOTksMjcuNjU0NjM3OSBDODQuMTk1NTkyNiwyNy42NjExMjA3IDg0LjE4MzQ0NTQsMjcuNjY2NzkzMSA4NC4xNzEyOTgyLDI3LjY3MjQ2NTUgQzg0LjA3MDg4MSwyNy43MjE4OTY2IDgzLjk3MDQ2MzgsMjcuNzY5NzA2OSA4My44NzA4NTY0LDI3LjgxOTk0ODMgQzgzLjg1ODcwOTIsMjcuODI2NDMxIDgzLjg0NjU2MiwyNy44MzIxMDM0IDgzLjgzNDQxNDcsMjcuODM3Nzc1OSBDODMuNzI1ODk5NCwyNy44OTI4NzkzIDgzLjYxOTgxMzUsMjcuOTQ3OTgyOCA4My41MTI5MTc4LDI4LjAwMzg5NjYgTDgzLjE1NDk3OTEsMjguMTkwMjc1OSBDODIuOTM2MzI4OCwyOC4zMDQ1MzQ1IDgyLjcxNTI0OTEsMjguNDE1NTUxNyA4Mi40OTkwMjgyLDI4LjUzMjI0MTQgTDgyLjQ5MzM1OTUsMjguNTM1NDgyOCBDODIuMDUxMiwyOC43NzQ1MzQ1IDgxLjYxMzA4OTYsMjkuMDE3NjM3OSA4MS4xODIyNjc1LDI5LjI2ODg0NDggQzgwLjc5NTE3NTUsMjkuNDkzMzEwMyA4MC40MjAyMzA3LDI5LjcyMzQ0ODMgODAuMDUwOTU0NiwyOS45NTI3NzU5IEw3OS43NjI2NjAxLDMwLjEzMTA1MTcgQzc5Ljc1NjE4MTYsMzAuMTM1MTAzNCA3OS43NTA1MTI5LDMwLjEzOTE1NTIgNzkuNzQ0ODQ0MiwzMC4xNDIzOTY2IEM3OS42MDE1MDY3LDMwLjIzMjM0NDggNzkuNDY1NDU3NywzMC4zMjU1MzQ1IDc5LjMyNDU0OTcsMzAuNDE3MTAzNCBMNzkuMjg4MTA4LDMwLjQ0MDYwMzQgQzc5LjIyNzM3MTgsMzAuNDgwMzEwMyA3OS4xNjk4NzQ4LDMwLjUyMDAxNzIgNzkuMTA5OTQ4NSwzMC41NTk3MjQxIEM3Mi4zODkyODU5LDM0Ljk3NzcyNDEgNjguNDQyMjQyOSw0MC4zMjM1NjkgNjguMDcyMTU3MSw0NS41NTY3NzU5IEw2OC4wNTExMDE4LDQ1Ljg0NzY4OTcgQzY4LjA0Nzg2MjYsNDUuOTA5Mjc1OSA2OC4wNTExMDE4LDQ1Ljk3MDg2MjEgNjguMDQ4NjcyNCw0Ni4wMzMyNTg2IEM2OC4wNDU0MzMxLDQ2LjE0ODMyNzYgNjguMDMyNDc2MSw0Ni4yNjQyMDY5IDY4LjAzMjQ3NjEsNDYuMzc4NDY1NSBDNjguMDM4MTQ0OCw1MC4wMjUwMTcyIDY5Ljc5OTQ5NDUsNTMuMjI3NSA3My4xNDU2NTQsNTUuNzUwOTEzOCBDNzMuMTU1MzcxOCw1NS43NTgyMDY5IDczLjE2NTg5OTQsNTUuNzY2MzEwMyA3My4xNzY0MjcsNTUuNzczNjAzNCBDNzMuMzYxODc0OCw1NS45MTI5ODI4IDczLjU1MDU2Miw1Ni4wNDk5MzEgNzMuNzQ1NzI3Niw1Ni4xODUyNTg2IEM3My43ODM3ODksNTYuMjExMTg5NyA3My44MjE4NTAzLDU2LjIzNzkzMSA3My44NTk5MTE3LDU2LjI2Mzg2MjEgQzczLjg3NDQ4ODMsNTYuMjczNTg2MiA3My44ODY2MzU2LDU2LjI4MzMxMDMgNzMuOTAwNDAyNSw1Ni4yOTMwMzQ1IEw3My4xODkzODQsNTYuNzAzMDY5IEwzOC41NjQ4OTMzLDM2LjY5OTcwNjkgTDY4LjIyODQ1MTUsMTkuNTMzMzYyMSBDNjguMjMyNTAwNiwxOS41MzA5MzEgNjguMjM3MzU5NSwxOS41Mjc2ODk3IDY4LjI0MTQwODYsMTkuNTI2MDY5IEw5My4zNzY0NzYxLDQuOTc5NTY4OTcgTDEyOC4wMDAxNTcsMjQuOTgzNzQxNCBMMTI3LjIwOTc3NywyNS40Mzk5NjU1IFogTTEyOC4wMDUwMTYsMjkuMjMzMTg5NyBDMTI4LjAxMzkyNCwyOS4xNzI0MTM4IDEyOC4wMTIzMDQsMjkuMTEwODI3NiAxMjguMDA1MDE2LDI5LjA0OTI0MTQgTDEyOC4wMTE0OTQsMjYuNjk3NjIwNyBMMTI4Ljc0NDM3OCwyNi4yNzQ2MjA3IEwxMjguNzQ0Mzc4LDU3Ljc0MTkzMSBMMTI3LjkyOTcwMyw1OC4yMTM1NTE3IEwxMjguMDA1MDE2LDI5LjIzMzE4OTcgWiBNMTA4LjI2NjU2Miw0Ni41NzM3NTg2IEwxMTkuNDkyMjMxLDUzLjA1OTc1ODYgQzExOS4zMzE4ODcsNTMuMDIzMjkzMSAxMTkuMTczMTYzLDUyLjk4NjAxNzIgMTE5LjAxMDM5LDUyLjk1Mjc5MzEgQzExOC45MTQwMjIsNTIuOTMyNTM0NSAxMTguODE2MDM0LDUyLjkxNDcwNjkgMTE4LjcxODA0Nyw1Mi44OTYwNjkgTDExOC41ODExODgsNTIuODcwOTQ4MyBDMTE4LjI4NjQxNSw1Mi44MTQyMjQxIDExNy45OTI0NTIsNTIuNzU4MzEwMyAxMTcuNjkyMDEsNTIuNzA3MjU4NiBDMTE3LjU2ODEwOCw1Mi42ODYxODk3IDExNy40NDI1ODcsNTIuNjY3NTUxNyAxMTcuMzE3ODc1LDUyLjY0ODEwMzQgTDExNy4xNjk2NzksNTIuNjI0NjAzNCBDMTE2Ljg5NTk2MSw1Mi41ODI0NjU1IDExNi42MjE0MzMsNTIuNTQxMTM3OSAxMTYuMzQyODU2LDUyLjUwMzA1MTcgQzExNi4xNTQ5NzksNTIuNDc4NzQxNCAxMTUuOTY2MjkyLDUyLjQ1NDQzMSAxMTUuNzc1OTg1LDUyLjQzMTc0MTQgQzExNS41MDU1MDcsNTIuMzk5MzI3NiAxMTUuMjM1MDI4LDUyLjM2NzcyNDEgMTE0Ljk2MDUwMSw1Mi4zMzkzNjIxIEMxMTQuNzY3NzY0LDUyLjMxOTEwMzQgMTE0LjU3MjU5OSw1Mi4zMDEyNzU5IDExNC4zNzgyNDMsNTIuMjgyNjM3OSBDMTE0LjExMTgxMyw1Mi4yNTkxMzc5IDExMy44NDIxNDUsNTIuMjM4MDY5IDExMy41NzI0NzYsNTIuMjE3ODEwMyBDMTEzLjM1NjI1NSw1Mi4yMDI0MTM4IDExMy4xMzkyMjUsNTIuMTg3MDE3MiAxMTIuOTIyMTk0LDUyLjE3NDg2MjEgQzExMi42NTQxNDUsNTIuMTU4NjU1MiAxMTIuMzg0NDc2LDUyLjE0NTY4OTcgMTEyLjExNTYxNyw1Mi4xMzQzNDQ4IEMxMTEuODk4NTg3LDUyLjEyNDYyMDcgMTExLjY4MDc0Niw1Mi4xMTU3MDY5IDExMS40NjA0NzYsNTIuMTA5MjI0MSBDMTExLjIzNjE1Nyw1Mi4xMDE5MzEgMTExLjAxMTAyOCw1Mi4wOTg2ODk3IDExMC43ODY3MDksNTIuMDk1NDQ4MyBMMTEwLjcwMjQ4OCw1Mi4wOTM4Mjc2IEMxMTAuMTg2NjM2LDUyLjA4NjUzNDUgMTA5LjY2ODM1Myw1Mi4wODU3MjQxIDEwOS4xNTI1MDEsNTIuMDkzMDE3MiBDMTA4Ljg4MjgzMiw1Mi4wOTcwNjkgMTA4LjYxMzE2Myw1Mi4xMDExMjA3IDEwOC4zNDI2ODUsNTIuMTA5MjI0MSBDMTA4LjExOTk4NSw1Mi4xMTU3MDY5IDEwNy44OTY0NzYsNTIuMTI0NjIwNyAxMDcuNjczNzc3LDUyLjEzNDM0NDggQzEwNy4yOTcyMTIsNTIuMTQ4OTMxIDEwNi45MTk4MzgsNTIuMTY4Mzc5MyAxMDYuNTQxNjU0LDUyLjE5MTg3OTMgQzEwNi4zMjcwNTMsNTIuMjA0ODQ0OCAxMDYuMTEyNDUyLDUyLjIxNzgxMDMgMTA1Ljg5Nzg1LDUyLjIzNDAxNzIgQzEwNS40OTg2MTEsNTIuMjYyMzc5MyAxMDUuMDk4NTYyLDUyLjI5NjQxMzggMTA0LjY5OTMyMyw1Mi4zMzM2ODk3IEwxMDQuNTIzNTkzLDUyLjM0OTA4NjIgQzEwNC40MDA1MDEsNTIuMzYwNDMxIDEwNC4yNzc0MDksNTIuMzcxNzc1OSAxMDQuMTUzNTA3LDUyLjM4MzkzMSBDMTAzLjQ3ODkzLDUyLjQ1MjgxMDMgMTAyLjc3NTIsNTIuNTM3ODk2NiAxMDIuMDYwMTMzLDUyLjYzNTk0ODMgTDEwMS41ODk2MjksNTIuNzA0ODI3NiBDMTAwLjk4MDY0OCw1Mi43OTMxNTUyIDEwMC4zNzE2NjYsNTIuODkwMzk2NiA5OS43NjI2ODQ3LDUyLjk5ODE3MjQgTDk5LjM1OTM5NjMsNTMuMDY3ODYyMSBDOTguNzUzNjU0LDUzLjE3OTY4OTcgOTguMTQ3MTAxOCw1My4yOTggOTcuNTQxMzU5NSw1My40Mjc2NTUyIEw5Ny4yMjcxNTA5LDUzLjQ5OTc3NTkgQzk2LjcyMzQ0NTQsNTMuNjA5OTgyOCA5Ni4yMjIxNjkzLDUzLjcyNjY3MjQgOTUuNzIwODkzMyw1My44NTA2NTUyIEM5NS42OTE3Mzk5LDUzLjg1NzEzNzkgOTUuNjYyNTg2NSw1My44NjUyNDE0IDk1LjYzNDI0MjksNTMuODcxNzI0MSBMMTA4LjI2NjU2Miw0Ni41NzM3NTg2IFogTTEwOS4wMDkxNjMsNDUuMjgyODc5MyBMMTA4Ljk0ODQyNywyNi4wMjkwODYyIEMxMDkuMDUyODkzLDI2LjAyNjY1NTIgMTA5LjE1NjU1LDI2LjAyNDIyNDEgMTA5LjI2MDIwNiwyNi4wMjI2MDM0IEMxMDkuNzY1NTMxLDI2LjAxNTMxMDMgMTEwLjI2NTk5OCwyNi4wMTUzMTAzIDExMC43NjY0NjQsMjYuMDIzNDEzOCBMMTEwLjg0OTg3NSwyNi4wMjQyMjQxIEMxMTEuMDY4NTI1LDI2LjAyODI3NTkgMTExLjI4NzE3NSwyNi4wMzE1MTcyIDExMS41MDI1ODcsMjYuMDM4IEMxMTEuNzE0NzU4LDI2LjA0MzY3MjQgMTExLjkyNTMxLDI2LjA1MzM5NjYgMTEyLjEzNzQ4MiwyNi4wNjMxMjA3IEMxMTIuMzcxNTE5LDI2LjA3MjAzNDUgMTEyLjYwMzEyNiwyNi4wODMzNzkzIDExMi44Mzk1OTMsMjYuMDk3MTU1MiBDMTEyLjg0MTIxMiwyNi4wOTcxNTUyIDExMi45MTgxNDUsMjYuMTAxMjA2OSAxMTIuOTE5NzY0LDI2LjEwMTIwNjkgQzExMy4xMzExMjYsMjYuMTEzMzYyMSAxMTMuMzQwODY5LDI2LjEyNzk0ODMgMTEzLjU1MDYxMSwyNi4xNDQxNTUyIEMxMTMuODExMzcyLDI2LjE2Mjc5MzEgMTE0LjA3MTMyMywyNi4xODMwNTE3IDExNC4zMzA0NjQsMjYuMjA3MzYyMSBDMTE0LjUxOTE1MSwyNi4yMjM1NjkgMTE0LjcwNjIxOCwyNi4yNDEzOTY2IDExNC45NDEwNjUsMjYuMjY2NTE3MiBDMTE1LjE5MDQ4OCwyNi4yOTI0NDgzIDExNS40Mzc0ODIsMjYuMzIgMTE1LjY4Mjg1NiwyNi4zNDk5ODI4IEMxMTUuODY2Njg1LDI2LjM3MjY3MjQgMTE2LjA0ODg5MywyNi4zOTUzNjIxIDExNi4yMjk0ODIsMjYuNDE4ODYyMSBDMTE2LjQ5NzUzMSwyNi40NTUzMjc2IDExNi43NjMxNTEsMjYuNDk1ODQ0OCAxMTcuMDI5NTgsMjYuNTM3OTgyOCBMMTE3LjE0NTM4NCwyNi41NTU4MTAzIEMxMTcuMjczMzM1LDI2LjU3NTI1ODYgMTE3LjQwMjA5NiwyNi41OTQ3MDY5IDExNy41MzAwNDcsMjYuNjE2NTg2MiBDMTE3LjgxNzUzMSwyNi42NjUyMDY5IDExOC4xMDE3NzcsMjYuNzE4Njg5NyAxMTguMzg1MjEyLDI2Ljc3Mzc5MzEgTDExOC43OTc0MDksMjYuODUyMzk2NiBDMTE5LjEwMjcwOSwyNi45MTQ3OTMxIDExOS40MDMxNTEsMjYuOTgzNjcyNCAxMTkuNzAyNzgzLDI3LjA1NDE3MjQgTDEyMC4wNTgyOTIsMjcuMTMzNTg2MiBDMTIwLjQ3MTI5OCwyNy4yMzQwNjkgMTIwLjg3NzgyNiwyNy4zNDE4NDQ4IDEyMS4yNzc4NzUsMjcuNDU2MTAzNCBDMTIxLjcxNDM2NiwyNy41ODA4OTY2IDEyMi4xNDM1NjgsMjcuNzE0NjAzNCAxMjIuNTY0NjcyLDI3Ljg1NjQxMzggQzEyMi42MzUxMjYsMjcuODc5OTEzOCAxMjIuNzA1NTgsMjcuOTA1MDM0NSAxMjIuNzc1MjI1LDI3LjkzMTc3NTkgTDEyMi45NDUyODYsMjcuOTkyNTUxNyBDMTIzLjIzMjc3MSwyOC4wOTQ2NTUyIDEyMy41MjAyNTUsMjguMTk2NzU4NiAxMjMuNzk5NjQyLDI4LjMwNTM0NDggQzEyMy44NjExODgsMjguMzI5NjU1MiAxMjMuOTIwMzA0LDI4LjM1Mzk2NTUgMTIzLjk4MDIzMSwyOC4zNzkwODYyIEwxMjQuMTI3NjE3LDI4LjQ0MDY3MjQgQzEyNC41MDMzNzIsMjguNTkzODI3NiAxMjQuODcxODM4LDI4Ljc1NDI3NTkgMTI1LjIzMzAxNiwyOC45MjM2Mzc5IEwxMjUuNjA2MzQxLDI5LjA5OTQ4MjggQzEyNS43Nzk2NDIsMjkuMTg0NTY5IDEyNS45NTA1MTMsMjkuMjcyMDg2MiAxMjYuMTE3MzM1LDI5LjM1NzE3MjQgQzEyNi4yNTE3NjQsMjkuNDI3NjcyNCAxMjYuMzgyMTQ1LDI5LjUwMTQxMzggMTI2LjUxNDE0NSwyOS41NzI3MjQxIEwxMjYuNDQ3NzQsNTUuMzU3MDg2MiBMMTA5LjAwOTE2Myw0NS4yODI4NzkzIFogTTc5LjEwOTEzODcsMzIuMzU0NjM3OSBDNzkuMTM3NDgyMiwzMi4zMzUxODk3IDc5LjE2NDIwNjEsMzIuMzE1NzQxNCA3OS4xOTE3Mzk5LDMyLjI5NjI5MzEgQzc5LjU4NzczOTksMzIuMDIxNTg2MiA3OS45OTUwNzczLDMxLjc1MjU1MTcgODAuNDEyMTMyNSwzMS40ODU5NDgzIEM4MC40NTUwNTI4LDMxLjQ1NzU4NjIgODAuNDk4NzgyOCwzMS40MjkyMjQxIDgwLjU0MjUxMjksMzEuNDAxNjcyNCBDODAuOTkzNTgwNCwzMS4xMTQ4MTAzIDgxLjQ1NTk4NTMsMzAuODM0NDMxIDgxLjkzMDUzNzQsMzAuNTU4MTAzNCBDODIuMzUwMDIyMSwzMC4zMTMzNzkzIDgyLjc3Njc5NTEsMzAuMDc1OTQ4MyA4My4yMDY4MDc0LDI5Ljg0MzM3OTMgTDg0LjAxODI0MjksMjkuNDIwMzc5MyBDODQuMTcwNDg4MywyOS4zNDI1ODYyIDg0LjMyMTExNDEsMjkuMjYxNTUxNyA4NC40NzQxNjkzLDI5LjE4NDU2OSBMODQuNTAxNzAzMSwyOS4xNzA3OTMxIEw4NS4zMDUwNDA1LDI4Ljc4MDIwNjkgQzg1LjQ4NDgxOTYsMjguNjk0MzEwMyA4NS42NjI5NzkxLDI4LjYwNjc5MzEgODUuODQ0Mzc3OSwyOC41MjI1MTcyIEM4Ni4wMjQ5NjY5LDI4LjQzOTA1MTcgODYuMjA3OTg1MywyOC4zNTYzOTY2IDg2LjM5MTAwMzcsMjguMjczNzQxNCBDODYuNjU3NDMzMSwyOC4xNTM4MTAzIDg2LjkyNTQ4MjIsMjguMDM0Njg5NyA4Ny4xOTUxNTA5LDI3LjkxODgxMDMgQzg3LjM4NjI2NzUsMjcuODM2MTU1MiA4Ny41NzgxOTM5LDI3Ljc1NTEyMDcgODcuNzcwMTIwMiwyNy42NzQwODYyIEM4OC4wMzk3ODksMjcuNTYyMjU4NiA4OC4zMTE4ODcxLDI3LjQ1MjA1MTcgODguNTg0Nzk1MSwyNy4zNDM0NjU1IEM4OC43NzY3MjE1LDI3LjI2NjQ4MjggODguOTY5NDU3NywyNy4xOTExMjA3IDg5LjE2MDU3NDIsMjcuMTE2NTY5IEM4OS40MTA4MDc0LDI3LjAyMDk0ODMgODkuNjYxMDQwNSwyNi45MjY5NDgzIDg5LjkxMjg5MzMsMjYuODM0NTY5IEM4OS45MTUzMjI3LDI2LjgzMzc1ODYgOTAuMDA0NDAyNSwyNi44MDA1MzQ1IDkwLjAwNjAyMjEsMjYuNzk5NzI0MSBMOTAuMTQ0NTAwNiwyNi43NDk0ODI4IEM5MC4yODYyMTg0LDI2LjY5NjgxMDMgOTAuNDI3MTI2NCwyNi42NDQ5NDgzIDkwLjU3MTI3MzYsMjYuNTkzODk2NiBMOTEuNjU0ODA3NCwyNi4yMjI3NTg2IEM5MS43NjczNzE4LDI2LjE4Mzg2MjEgOTEuODc5OTM2MiwyNi4xNDQ5NjU1IDkxLjk5NTczOTksMjYuMTA4NSBMOTIuNDUyNDc2MSwyNS45NjU4NzkzIEM5Mi44ODk3NzY3LDI1LjgyNzMxMDMgOTMuMzI3MDc3MywyNS42OTM2MDM0IDkzLjc2NjgwNzQsMjUuNTY1NTY5IEM5My45NjY4MzE5LDI1LjUwNzIyNDEgOTQuMTY2ODU2NCwyNS40NTEzMTAzIDk0LjM2NzY5MDgsMjUuMzk1Mzk2NiBDOTQuNzcwOTc5MSwyNS4yODE5NDgzIDk1LjE3NjY5NjksMjUuMTczMzYyMSA5NS41ODMyMjQ1LDI1LjA2ODgyNzYgTDk1LjY3MzkyMzksMjUuMDQ2MTM3OSBDOTUuODM3NTA2NywyNS4wMDQgOTYuMDAwMjc5OCwyNC45NjE4NjIxIDk2LjE2Mzg2MjYsMjQuOTIxMzQ0OCBDOTYuNjUyMTgxNiwyNC44MDE0MTM4IDk3LjE0MTMxMDQsMjQuNjg3MTU1MiA5Ny42MzA0MzkzLDI0LjU4MDE4OTcgTDk3Ljk0MDU5ODgsMjQuNTA5Njg5NyBDOTguNTMwOTU0NiwyNC4zODMyNzU5IDk5LjEyMjkzMDEsMjQuMjY2NTg2MiA5OS43MTQwOTU3LDI0LjE1OCBMMTAwLjEwNjg1NiwyNC4wODk5MzEgQzEwMC43MDEyNjEsMjMuOTg1Mzk2NiAxMDEuMjk0MDQ3LDIzLjg5MDU4NjIgMTAxLjg4NzY0MiwyMy44MDM4NzkzIEwxMDIuMzUyNDc2LDIzLjczNjYyMDcgQzEwMy4wNDY0ODgsMjMuNjQxIDEwMy43MzI0MDIsMjMuNTU4MzQ0OCAxMDQuMzkyNDAyLDIzLjQ5MTA4NjIgTDEwNC45MjI4MzIsMjMuNDQyNDY1NSBDMTA1LjMxMjM1MywyMy40MDYgMTA1LjcwMTA2NSwyMy4zNzI3NzU5IDEwNi4wODk3NzcsMjMuMzQ0NDEzOCBDMTA2LjI5Nzg5OSwyMy4zMjk4Mjc2IDEwNi41MDUyMTIsMjMuMzE2MDUxNyAxMDYuNzE5MDA0LDIzLjMwMzg5NjYgQzEwNy4wODc0NywyMy4yODEyMDY5IDEwNy40NTM1MDcsMjMuMjYyNTY5IDEwNy44MTc5MjQsMjMuMjQ3MTcyNCBMMTA3Ljk2NTMxLDIzLjI0MTUgQzEwOC4xMzM3NTIsMjMuMjM1MDE3MiAxMDguMzAzMDA0LDIzLjIyNzcyNDEgMTA4LjQ3MjI1NSwyMy4yMjI4NjIxIEMxMDguNzM1NDQ1LDIzLjIxNTU2OSAxMDguOTk3ODI2LDIzLjIxMTUxNzIgMTA5LjI2MDIwNiwyMy4yMDc0NjU1IEMxMDkuNzY1NTMxLDIzLjIwMDk4MjggMTEwLjI2NTk5OCwyMy4yMDE3OTMxIDExMC43NjY0NjQsMjMuMjA4Mjc1OSBMMTEwLjg0OTg3NSwyMy4yMDkwODYyIEMxMTEuMDY4NTI1LDIzLjIxMzEzNzkgMTExLjI4NzE3NSwyMy4yMTYzNzkzIDExMS41MDQyMDYsMjMuMjIyODYyMSBDMTExLjcxNjM3OCwyMy4yMjkzNDQ4IDExMS45MjYxMiwyMy4yMzkwNjkgMTEyLjEzNTg2MywyMy4yNDcxNzI0IEMxMTIuMzY5ODk5LDIzLjI1Njg5NjYgMTEyLjYwMzEyNiwyMy4yNjkwNTE3IDExMi44Mzk1OTMsMjMuMjgyMDE3MiBDMTEyLjg0MTIxMiwyMy4yODIwMTcyIDExMi45MTgxNDUsMjMuMjg2MDY5IDExMi45MTk3NjQsMjMuMjg2MDY5IEMxMTMuMTMxMTI2LDIzLjI5OTAzNDUgMTEzLjM0MDg2OSwyMy4zMTM2MjA3IDExMy41NTA2MTEsMjMuMzI5MDE3MiBDMTEzLjgxMTM3MiwyMy4zNDc2NTUyIDExNC4wNzEzMjMsMjMuMzY5NTM0NSAxMTQuMzMyMDgzLDIzLjM5MjIyNDEgQzExNC41MTk5NjEsMjMuNDA5MjQxNCAxMTQuNzA3MDI4LDIzLjQyNzA2OSAxMTQuOTQxMDY1LDIzLjQ1MTM3OTMgQzExNS4xOTA0ODgsMjMuNDc3MzEwMyAxMTUuNDM3NDgyLDIzLjUwNTY3MjQgMTE1LjY4Mjg1NiwyMy41MzU2NTUyIEwxMTUuNzUxNjkxLDIzLjU0NDU2OSBDMTE1LjkxMTIyNSwyMy41NjMyMDY5IDExNi4wNzA3NTgsMjMuNTgyNjU1MiAxMTYuMjI5NDgyLDIzLjYwNDUzNDUgQzExNi40OTgzNDEsMjMuNjQxODEwMyAxMTYuNzYzOTYxLDIzLjY4MTUxNzIgMTE3LjAyNzk2MSwyMy43MjIwMzQ1IEwxMTcuMTgxODI2LDIzLjc0NzE1NTIgQzExNy4yOTg0MzksMjMuNzY0MTcyNCAxMTcuNDE0MjQzLDIzLjc4MTE4OTcgMTE3LjUzMDA0NywyMy44MDE0NDgzIEMxMTcuODE3NTMxLDIzLjg1MDA2OSAxMTguMTAxNzc3LDIzLjkwNDM2MjEgMTE4LjM4NzY0MiwyMy45NTk0NjU1IEwxMTguNzk3NDA5LDI0LjAzNzI1ODYgQzExOS4xMDI3MDksMjQuMDk5NjU1MiAxMTkuNDAzMTUxLDI0LjE2OTM0NDggMTE5LjcwNTIxMiwyNC4yMzkwMzQ1IEwxMjAuMDU3NDgyLDI0LjMxODQ0ODMgQzEyMC40NzA0ODgsMjQuNDE5NzQxNCAxMjAuODc3ODI2LDI0LjUyNTg5NjYgMTIxLjI3Nzg3NSwyNC42NDA5NjU1IEMxMjEuNzE0MzY2LDI0Ljc2NTc1ODYgMTIyLjE0Mjc1OCwyNC44OTg2NTUyIDEyMi41NjQ2NzIsMjUuMDQxMjc1OSBDMTIyLjYzNTEyNiwyNS4wNjQ3NzU5IDEyMi43MDU1OCwyNS4wOTA3MDY5IDEyMi43NzUyMjUsMjUuMTE2NjM3OSBMMTIyLjk0NjA5NiwyNS4xNzgyMjQxIEMxMjMuMjMzNTgsMjUuMjc4NzA2OSAxMjMuNTIwMjU1LDI1LjM4MTYyMDcgMTIzLjc5OTY0MiwyNS40OTEwMTcyIEMxMjMuODYyODA3LDI1LjUxNDUxNzIgMTIzLjkyMjczNCwyNS41NDA0NDgzIDEyMy45ODM0NywyNS41NjYzNzkzIEwxMjQuMTI3NjE3LDI1LjYyNjM0NDggQzEyNC41MDQxODIsMjUuNzc4Njg5NyAxMjQuODcyNjQ4LDI1Ljk0MDc1ODYgMTI1LjI1NjUwMSwyNi4xMTkwMzQ1IEMxMjUuMjYwNTUsMjYuMTIwNjU1MiAxMjUuMzEzOTk4LDI2LjE0NjU4NjIgMTI1LjMxODA0NywyNi4xNDgyMDY5IEMxMjUuNDE2MDM0LDI2LjE5MzU4NjIgMTI1LjUxMzIxMiwyNi4yMzk3NzU5IDEyNS42MDc5NjEsMjYuMjg1MTU1MiBDMTI1Ljc4MDQ1MiwyNi4zNzAyNDE0IDEyNS45NTEzMjMsMjYuNDU2OTQ4MyAxMjYuMTE3MzM1LDI2LjU0MzY1NTIgQzEyNi4xMTk3NjQsMjYuNTQ0NDY1NSAxMjYuMTIzMDA0LDI2LjU0NjA4NjIgMTI2LjEyNTQzMywyNi41NDc3MDY5IEMxMjYuMjU5MDUzLDI2LjYxNzM5NjYgMTI2LjM5MTA1MywyNi42ODg3MDY5IDEyNi41MjIyNDMsMjYuNzYxNjM3OSBMMTI2LjUxOTAwNCwyNy44OTEyNTg2IEMxMjYuNDMzMTYzLDI3Ljg0NzUgMTI2LjM0ODk0MiwyNy44MDM3NDE0IDEyNi4yNjE0ODIsMjcuNzYwNzkzMSBMMTI1Ljg2MTQzMywyNy41NzExNzI0IEMxMjUuNDc5MiwyNy4zOTM3MDY5IDEyNS4wODgwNTksMjcuMjIzNTM0NSAxMjQuNjg4ODIsMjcuMDU5ODQ0OCBMMTI0LjU1ODQzOSwyNy4wMDYzNjIxIEMxMjQuNDg3MTc1LDI2Ljk3NjM3OTMgMTI0LjQxNDI5MiwyNi45NDU1ODYyIDEyNC4zNDA1OTksMjYuOTE3MjI0MSBDMTI0LjA0NjYzNiwyNi44MDEzNDQ4IDEyMy43NDQ1NzQsMjYuNjkzNTY5IDEyMy40MzkyNzQsMjYuNTg1NzkzMSBMMTIzLjI4NzgzOCwyNi41MzE1IEMxMjMuMjA1MjM3LDI2LjUwMTUxNzIgMTIzLjEyMTgyNiwyNi40NzA3MjQxIDEyMy4wMzc2MDUsMjYuNDQyMzYyMSBDMTIyLjU5NDYzNiwyNi4yOTQwNjkgMTIyLjE0NTk5OCwyNi4xNTM4NzkzIDEyMS42ODY4MzIsMjYuMDIyNjAzNCBDMTIxLjI2NzM0NywyNS45MDI2NzI0IDEyMC44NDMwMDQsMjUuNzkwODQ0OCAxMjAuNDEwNTYyLDI1LjY4NTUgQzEyMC4zMzg0ODgsMjUuNjY4NDgyOCAxMjAuMjYzOTg1LDI1LjY1MTQ2NTUgMTIwLjE4OTQ4MiwyNS42MzYwNjkgTDEyMC4wNDEyODYsMjUuNjAyMDM0NSBDMTE5LjcyODY5NywyNS41MjkxMDM0IDExOS40MTQ0ODgsMjUuNDU2OTgyOCAxMTkuMDk0NjExLDI1LjM5MTM0NDggTDExOC42Njc4MzgsMjUuMzEwMzEwMyBDMTE4LjM3MjI1NSwyNS4yNTI3NzU5IDExOC4wNzY2NzIsMjUuMTk2ODYyMSAxMTcuNzc3MDQsMjUuMTQ1ODEwMyBDMTE3LjY0MTgwMSwyNS4xMjM5MzEgMTE3LjUwNTc1MiwyNS4xMDIwNTE3IDExNy4zNjk3MDMsMjUuMDgyNjAzNCBMMTE3LjI1Nzk0OCwyNS4wNjM5NjU1IEMxMTYuOTgyNjExLDI1LjAyMTgyNzYgMTE2LjcwNzI3NCwyNC45Nzk2ODk3IDExNi40Mjc4ODcsMjQuOTQyNDEzOCBDMTE2LjI0MTYyOSwyNC45MTcyOTMxIDExNi4wNTM3NTIsMjQuODk0NjAzNCAxMTUuODY0MjU1LDI0Ljg3MDI5MzEgQzExNS42MDgzNTMsMjQuODM5NSAxMTUuMzUyNDUyLDI0LjgxMDMyNzYgMTE1LjA0Nzk2MSwyNC43Nzg3MjQxIEMxMTQuODU1MjI1LDI0Ljc1OTI3NTkgMTE0LjY2MDA1OSwyNC43Mzk4Mjc2IDExNC40NjQwODMsMjQuNzIyODEwMyBDMTE0LjE5NzY1NCwyNC42OTc2ODk3IDExMy45Mjg3OTUsMjQuNjc3NDMxIDExMy42NTkxMjYsMjQuNjU3MTcyNCBDMTEzLjQ0MjA5NiwyNC42NDE3NzU5IDExMy4yMjUwNjUsMjQuNjI1NTY5IDExMy4wMTQ1MTMsMjQuNjE0MjI0MSBMMTEyLjkyMDU3NCwyNC42MDkzNjIxIEMxMTIuNjgwODY5LDI0LjU5NDc3NTkgMTEyLjQ0MDM1MywyNC41ODM0MzEgMTEyLjE5OTgzOCwyNC41NzI4OTY2IEMxMTEuOTgzNjE3LDI0LjU2Mzk4MjggMTExLjc2NzM5NiwyNC41NTUwNjkgMTExLjU0NzkzNiwyNC41NDc3NzU5IEMxMTEuMzIzNjE3LDI0LjU0MTI5MzEgMTExLjA5ODQ4OCwyNC41MzgwNTE3IDExMC44NzI1NSwyNC41MzQgTDExMC43ODgzMjksMjQuNTMyMzc5MyBDMTEwLjI3NDA5NiwyNC41MjUwODYyIDEwOS43NjE0ODIsMjQuNTI0Mjc1OSAxMDkuMjM4MzQxLDI0LjUzMTU2OSBDMTA4Ljk2ODY3MiwyNC41MzU2MjA3IDEwOC42OTk4MTMsMjQuNTQwNDgyOCAxMDguNDI4NTI1LDI0LjU0ODU4NjIgQzEwOC40MTMxMzksMjQuNTQ5Mzk2NiAxMDguMzk2OTQyLDI0LjU1MDIwNjkgMTA4LjM4MTU1NiwyNC41NTAyMDY5IEMxMDguMzIzMjQ5LDI0LjUzNTYyMDcgMTA4LjI2MzMyMywyNC41MjUwODYyIDEwOC4yMDA5NjcsMjQuNTI1MDg2MiBMMTA4LjE5ODUzNywyNC41MjUwODYyIEMxMDguMTE5MTc1LDI0LjUyNTg5NjYgMTA4LjA0Mzg2MywyNC41NDIxMDM0IDEwNy45NzI1OTksMjQuNTY0NzkzMSBDMTA3LjkwMTMzNSwyNC41NjgwMzQ1IDEwNy44MjkyNjEsMjQuNTcwNDY1NSAxMDcuNzU3OTk4LDI0LjU3Mjg5NjYgQzEwNy4zODMwNTMsMjQuNTg5MTAzNCAxMDcuMDA3Mjk4LDI0LjYwNzc0MTQgMTA2LjYyMDIwNiwyNC42MzA0MzEgQzEwNi40MDcyMjUsMjQuNjQ0MjA2OSAxMDYuMTk1MDUzLDI0LjY1NzE3MjQgMTA1Ljk4MjA3MSwyNC42NzI1NjkgQzEwNS41ODQ0NTIsMjQuNzAwOTMxIDEwNS4xODUyMTIsMjQuNzM1Nzc1OSAxMDQuNzg2NzgzLDI0Ljc3MjI0MTQgTDEwNC42MTEwNTMsMjQuNzg5MjU4NiBDMTA0LjQ4Nzk2MSwyNC43OTg5ODI4IDEwNC4zNjQwNTksMjQuODEwMzI3NiAxMDQuMjQwMTU3LDI0LjgyMzI5MzEgQzEwMy41NTAxOTQsMjQuODk0NjAzNCAxMDIuODQ2NDY0LDI0Ljk3ODA2OSAxMDIuMTUwMDIyLDI1LjA3NDUgTDEwMS42NzMwNCwyNS4xNDMzNzkzIEMxMDEuMDY0ODY5LDI1LjIzMjUxNzIgMTAwLjQ1NjY5NywyNS4zMzA1NjkgOTkuODQ5MzM1LDI1LjQzNjcyNDEgTDk5LjQ0NTIzNjgsMjUuNTA2NDEzOCBDOTguODM5NDk0NSwyNS42MTgyNDE0IDk4LjIzMzc1MjEsMjUuNzM4MTcyNCA5Ny42Mjk2Mjk0LDI1Ljg2NzAxNzIgTDk3LjMxMjE4MTYsMjUuOTM5MTM3OSBDOTYuODEwMDk1NywyNi4wNDg1MzQ1IDk2LjMwODgxOTYsMjYuMTY2MDM0NSA5NS44MDgzNTM0LDI2LjI4ODM5NjYgQzk1LjY1NTI5ODIsMjYuMzI2NDgyOCA5NS41MDIyNDI5LDI2LjM2NjE4OTcgOTUuMzQ5MTg3NywyNi40MDU4OTY2IEw5NS4yMTM5NDg1LDI2LjQ0MDc0MTQgQzk0Ljc5NjA4MzQsMjYuNTQ3NzA2OSA5NC4zODA2NDc5LDI2LjY1ODcyNDEgOTMuOTY3NjQxNywyNi43NzQ2MDM0IEM5My43NjE5NDg1LDI2LjgzMTMyNzYgOTMuNTU2MjU1MiwyNi44ODg4NjIxIDkzLjM1MDU2MiwyNi45NDg4Mjc2IEM5Mi45MDAzMDQzLDI3LjA4MDEwMzQgOTIuNDUxNjY2MywyNy4yMTc4NjIxIDkyLjAwMzgzOCwyNy4zNTk2NzI0IEw5MS4wMDkzODQsMjcuNjgzIEM5MC44NTE0Njk5LDI3LjczNDg2MjEgOTAuNjk1OTg1MywyNy43ODk5NjU1IDkwLjU0NDU0OTcsMjcuODQyNjM3OSBMOTAuNDM5MjczNiwyNy44Nzc0ODI4IEM5MC4zMTY5OTE0LDI3LjkxOTYyMDcgOTAuMTk0NzA5MiwyNy45NjA5NDgzIDkwLjA3NDA0NjYsMjguMDAzMDg2MiBDODkuOTI1MDQwNSwyOC4wNTU3NTg2IDg5Ljc3NzY1NCwyOC4xMTAwNTE3IDg5LjYzMDI2NzUsMjguMTY1MTU1MiBMODkuMzk3ODUwMywyOC4yNTAyNDE0IEM4OS4xNDAzMjg4LDI4LjM0NTA1MTcgODguODgyODA3NCwyOC40NDA2NzI0IDg4LjYyNjA5NTcsMjguNTQwMzQ0OCBDODguNDI2ODgxLDI4LjYxNjUxNzIgODguMjMwMDk1NywyOC42OTQzMTAzIDg4LjAzNDEyMDIsMjguNzczNzI0MSBDODcuNzUzMTE0MSwyOC44ODQ3NDE0IDg3LjQ3MzcyNzYsMjguOTk4MTg5NyA4Ny4xOTc1ODA0LDI5LjExNDg3OTMgQzg2Ljk5OTE3NTUsMjkuMTk1OTEzOCA4Ni44MDE1ODA0LDI5LjI4MDE4OTcgODYuNjA1NjA0OSwyOS4zNjM2NTUyIEM4Ni4zMjc4MzgsMjkuNDg0Mzk2NiA4Ni4wNTI1MDA2LDI5LjYwNTk0ODMgODUuNzc4NzgyOCwyOS43Mjk5MzEgQzg1LjU4NjA0NjYsMjkuODE2NjM3OSA4NS4zOTQ5MzAxLDI5LjkwMjUzNDUgODUuMjA2MjQyOSwyOS45OTE2NzI0IEM4NS4wMTY3NDYsMzAuMDc5MTg5NyA4NC44MzA0ODgzLDMwLjE2OTEzNzkgODQuNjQzNDIwOSwzMC4yNTk4OTY2IEw4NC4yMDc3Mzk5LDMwLjQ2ODk2NTUgQzg0LjA4MzAyODIsMzAuNTMwNTUxNyA4My45NTkxMjY0LDMwLjU5MDUxNzIgODMuODM0NDE0NywzMC42NTI5MTM4IEM4My43MjU4OTk0LDMwLjcwNzIwNjkgODMuNjE5ODEzNSwzMC43NjMxMjA3IDgzLjUxMjkxNzgsMzAuODE5MDM0NSBMODIuNzgyNDYzOCwzMS4xOTc0NjU1IEM4Mi42ODUyODU5LDMxLjI0NzcwNjkgODIuNTg4MTA4LDMxLjI5ODc1ODYgODIuNDkzMzU5NSwzMS4zNDk4MTAzIEM4Mi4wNTEyLDMxLjU4ODg2MjEgODEuNjEzMDg5NiwzMS44MzI3NzU5IDgxLjE4MTQ1NzcsMzIuMDgzOTgyOCBDODAuNzk0MzY1NiwzMi4zMDkyNTg2IDgwLjQxOTQyMDksMzIuNTM3Nzc1OSA4MC4wNDg1MjUyLDMyLjc2ODcyNDEgTDc5Ljc2MzQ2OTksMzIuOTQ1Mzc5MyBDNzkuNjU5ODEzNSwzMy4wMTEwMTcyIDc5LjU1ODU4NjUsMzMuMDc3NDY1NSA3OS40NTczNTk1LDMzLjE0MzkxMzggTDc5LjI4ODEwOCwzMy4yNTU3NDE0IEM3OC45NzYzMjg4LDMzLjQ1OTEzNzkgNzguNjY2OTc5MSwzMy42NjMzNDQ4IDc4LjM2NTcyNzYsMzMuODcwNzkzMSBDNzguMjIxNTgwNCwzMy45NzA0NjU1IDc4LjA4MDY3MjQsMzQuMDcwMTM3OSA3Ny45Mzk3NjQ0LDM0LjE3MDYyMDcgTDc3Ljg2OTMxMDQsMzQuMjIwODYyMSBDNzcuNTk4ODMxOSwzNC40MTQ1MzQ1IDc3LjMzMDc4MjgsMzQuNjA4MjA2OSA3Ny4wNzAwMjIxLDM0LjgwNTEyMDcgQzc2LjkwODA1ODksMzQuOTI3NDgyOCA3Ni43NDc3MTUzLDM1LjA0OTg0NDggNzYuNTg5ODAxMiwzNS4xNzMwMTcyIEM3Ni4zMzQ3MDkyLDM1LjM3MTU1MTcgNzYuMDg2MDk1NywzNS41NzA4OTY2IDc1Ljg0MTUzMTMsMzUuNzczNDgyOCBMNzUuNzMzODI1OCwzNS44NjI2MjA3IEM3NS42MjQ1MDA2LDM1Ljk1MjU2OSA3NS41MTQzNjU2LDM2LjA0MjUxNzIgNzUuNDA3NDY5OSwzNi4xMzQwODYyIEM3NS4yMjc2OTA4LDM2LjI4ODA1MTcgNzUuMDU0MzkwMiwzNi40NDI4Mjc2IDc0Ljg4MTA4OTYsMzYuNTk2NzkzMSBMNzQuNjYyNDM5MywzNi43OTI4OTY2IEM3NC41NTQ3MzM3LDM2Ljg4OTMyNzYgNzQuNDQ3ODM4LDM2Ljk4NDk0ODMgNzQuMzM0NDYzOCwzNy4wOTAyOTMxIEw3NC4yNTc1MzEzLDM3LjE2NDg0NDggQzczLjk3NzMzNSwzNy40MjkwMTcyIDczLjcwNjA0NjYsMzcuNjk1NjIwNyA3My40NDUyODU5LDM3Ljk2MjIyNDEgQzczLjM1NzAxNiwzOC4wNTIxNzI0IDczLjI2OTU1NTgsMzguMTQyMTIwNyA3My4xODUzMzUsMzguMjMyMDY5IEM3Mi45MTY0NzYxLDM4LjUxMzI1ODYgNzIuNjU3MzM1LDM4Ljc5NTI1ODYgNzIuMzkzMzM1LDM5LjA5NzUxNzIgQzcyLjIyNDg5MzMsMzkuMjkxMTg5NyA3Mi4wNjUzNTk1LDM5LjQ4NDg2MjEgNzEuOTA3NDQ1NCwzOS42NzkzNDQ4IEw3MS44MjcyNzM2LDM5Ljc3NDk2NTUgQzcxLjc3NjI1NTIsMzkuODM1NzQxNCA3MS43MjYwNDY2LDM5Ljg5NTcwNjkgNzEuNjc3NDU3NywzOS45NTcyOTMxIEM3MS41NjgxMzI1LDQwLjA5NTg2MjEgNzEuNDY2MDk1Nyw0MC4yMzM2MjA3IDcxLjM2NDA1ODksNDAuMzcxMzc5MyBMNzEuMjcwMTIwMiw0MC40OTk0MTM4IEM3MS4yMTE4MTM1LDQwLjU3NzIwNjkgNzEuMTU5MTc1NSw0MC42NTU4MTAzIDcxLjEwMjQ4ODMsNDAuNzMzNjAzNCBDNzIuNjkxMzQ3MiwzNy44MDk4NzkzIDc1LjQyNzcxNTMsMzQuOTIxODEwMyA3OS4xMDkxMzg3LDMyLjM1NDYzNzkgTDc5LjEwOTEzODcsMzIuMzU0NjM3OSBaIE03MS42NjIwNzEyLDUyLjI3ODU4NjIgQzcxLjYxODM0MTEsNTIuMjI0MjkzMSA3MS41NzM4MDEyLDUyLjE3MTYyMDcgNzEuNTMyNTAwNiw1Mi4xMTczMjc2IEM3MS40MzA0NjM4LDUxLjk4NTI0MTQgNzEuMzM1NzE1Myw1MS44NTE1MzQ1IDcxLjI0MTc3NjcsNTEuNzE3MDE3MiBDNzEuMTk2NDI3LDUxLjY1MjE4OTcgNzEuMTQ5NDU3Nyw1MS41ODgxNzI0IDcxLjEwNjUzNzQsNTEuNTIzMzQ0OCBDNzEuMDE3NDU3Nyw1MS4zODk2Mzc5IDcwLjkzNDA0NjYsNTEuMjU0MzEwMyA3MC44NTMwNjUsNTEuMTE4MTcyNCBDNzAuODEwOTU0Niw1MS4wNDg0ODI4IDcwLjc2ODAzNDQsNTAuOTc4NzkzMSA3MC43MjgzNTM0LDUwLjkwODI5MzEgQzcwLjY1Mzg1MDMsNTAuNzc2MjA2OSA3MC41ODMzOTYzLDUwLjY0MjUgNzAuNTE1MzcxOCw1MC41MDc5ODI4IEM3MC40NzU2OTA4LDUwLjQzMDE4OTcgNzAuNDM2MDA5OCw1MC4zNTMyMDY5IDcwLjM5OTU2ODEsNTAuMjc0NjAzNCBDNzAuMzM4ODMxOSw1MC4xNDY1NjkgNzAuMjgyOTU0Niw1MC4wMTY5MTM4IDcwLjIyODY5NjksNDkuODg3MjU4NiBDNzAuMTkxNDQ1NCw0OS43OTgxMjA3IDcwLjE1NDE5MzksNDkuNzA4MTcyNCA3MC4xMjAxODE2LDQ5LjYxNzQxMzggQzcwLjA3NDgzMTksNDkuNDk4MjkzMSA3MC4wMzI3MjE1LDQ5LjM3NzU1MTcgNjkuOTkyMjMwNyw0OS4yNTY4MTAzIEM2OS45NTc0MDg2LDQ5LjE1MDY1NTIgNjkuOTIzMzk2Myw0OS4wNDQ1IDY5Ljg5MTgxMzUsNDguOTM4MzQ0OCBDNjkuODYwMjMwNyw0OC44MzEzNzkzIDY5LjgzMTg4NzEsNDguNzIyNzkzMSA2OS44MDQzNTM0LDQ4LjYxNDIwNjkgQzY5Ljc3Mjc3MDYsNDguNDg4NjAzNCA2OS43NDI4MDc0LDQ4LjM2MTM3OTMgNjkuNzE2ODkzMyw0OC4yMzMzNDQ4IEM2OS42OTgyNjc1LDQ4LjE0MzM5NjYgNjkuNjgwNDUxNSw0OC4wNTM0NDgzIDY5LjY2NTA2NSw0Ny45NjE4NzkzIEM2OS42NTI5MTc4LDQ3Ljg5MzgxMDMgNjkuNjQ0ODE5Niw0Ny44MjQ5MzEgNjkuNjM1MTAxOCw0Ny43NTY4NjIxIEM2OS42NTA0ODgzLDQ3LjY0NTg0NDggNjkuNjY5MTE0MSw0Ny41Mjk5NjU1IDY5LjY5MzQwODYsNDcuMzkxMzk2NiBDNjkuNzEzNjU0LDQ3LjI3NzEzNzkgNjkuNzMzODk5NCw0Ny4xNjIwNjkgNjkuNzU4MTkzOSw0Ny4wNDk0MzEgQzY5Ljc5Nzg3NDgsNDYuODYwNjIwNyA2OS44NDY0NjM4LDQ2LjY3MTgxMDMgNjkuODk2NjcyNCw0Ni40ODM4MTAzIEw2OS45MjkwNjUsNDYuMzYzMDY5IEM2OS45NDYwNzEyLDQ2LjI5NSA2OS45NjM4ODcxLDQ2LjIyNjkzMSA2OS45ODgxODE2LDQ2LjE1MDc1ODYgTDcwLjAzNTk2MDcsNDYuMDAyNDY1NSBDNzAuMDU4NjM1Niw0NS45MzExNTUyIDcwLjA4MzczOTksNDUuODU3NDEzOCA3MC4xMDg4NDQyLDQ1Ljc4NDQ4MjggQzcwLjU2MDcyMTUsNDUuNzk1ODI3NiA3MC45NjIzOTAyLDQ1LjkxOTgxMDMgNzEuMjkyNzk1MSw0Ni4xNjUzNDQ4IEM3MS45NzIyMzA3LDQ2LjY2Njk0ODMgNzIuMzQ4Nzk1MSw0Ny42NTE1MTcyIDcyLjM1Mjg0NDIsNDguOTM0MjkzMSBDNzIuMzU1MjczNiw0OS45NjQyNDE0IDcyLjExMTUxOSw1MS4xMjMwMzQ1IDcxLjY2MjA3MTIsNTIuMjc4NTg2MiBMNzEuNjYyMDcxMiw1Mi4yNzg1ODYyIFogTTc0LjAyMTg3NDgsNTcuOTQzNzA2OSBMNzQuNzU0NzU4Myw1Ny41MTk4OTY2IEw3NC43NTQ3NTgzLDU3LjUyOTYyMDcgTDc0LjczNTMyMjcsNjQuNTQ4MDE3MiBMNzQuNzM1MzIyNyw2NC41NDg4Mjc2IEM3NC43MzQ1MTI5LDY0LjYwNjM2MjEgNzQuNzQyNjExLDY0LjY2MjI3NTkgNzQuNzU0NzU4Myw2NC43MTU3NTg2IEw3NC43NTQ3NTgzLDg4Ljk4ODAxNzIgTDczLjkzOTI3MzYsODkuNDU4ODI3NiBMNzQuMDIxODc0OCw1Ny45NDM3MDY5IFogTTM3Ljc0MDUwMDYsNjkuMjE5NjU1MiBMMzcuODIyMjkyLDM3Ljk5MjIwNjkgTDcyLjUzMTgxMzUsNTguMDQ1IEw3Mi40NTQwNzEyLDg3LjgyMTkzMSBDNzIuNDQ2NzgyOCw4Ny44NjQwNjkgNzIuNDQ0MzUzNCw4Ny45MDUzOTY2IDcyLjQ0NDM1MzQsODcuOTQ3NTM0NSBDNzIuNDQ1MTYzMiw4OC4wMDUwNjkgNzIuNDQ1MTYzMiw4OC42MjgyMjQxIDcyLjQ0NTk3Myw4OS4yNTA1NjkgTDcyLjQ0NTk3Myw4OS4yNjkyMDY5IEwzNy43NDA1MDA2LDY5LjIxOTY1NTIgWiBNNTguNzMzMzU5NSwxMy4yMTc1MzQ1IEw2Ni41MjI5NzkxLDE4Ljc5ODM3OTMgTDM2LjcwNzk4NTMsMzYuMDUyMjQxNCBDMzYuNzAwNjk2OSwzNi4wNTcxMDM0IDM2LjY5NDIxODQsMzYuMDYyNzc1OSAzNi42ODc3Mzk5LDM2LjA2NzYzNzkgQzM2LjY3NzIxMjMsMzYuMDczMzEwMyAzNi42NjY2ODQ3LDM2LjA3ODk4MjggMzYuNjU2OTY2OSwzNi4wODYyNzU5IEMzNi42MzUxMDE4LDM2LjEwMTY3MjQgMzYuNjE0MDQ2NiwzNi4xMTcwNjkgMzYuNTkzODAxMiwzNi4xMzU3MDY5IEMzNi41ODczMjI3LDM2LjE0MDU2OSAzNi41ODE2NTQsMzYuMTQ2MjQxNCAzNi41NzUxNzU1LDM2LjE1MTkxMzggQzM2LjU3MTEyNjQsMzYuMTU1OTY1NSAzNi41NjcwNzczLDM2LjE2MDAxNzIgMzYuNTYyMjE4NCwzNi4xNjQwNjkgQzM2LjU1ODk3OTEsMzYuMTY3MzEwMyAzNi41NTU3Mzk5LDM2LjE3MDU1MTcgMzYuNTUyNTAwNiwzNi4xNzI5ODI4IEMzNi41Mjk4MjU4LDM2LjE5NTY3MjQgMzYuNTA4NzcwNiwzNi4yMTk5ODI4IDM2LjQ4OTMzNSwzNi4yNDUxMDM0IEMzNi40ODY5MDU1LDM2LjI0ODM0NDggMzYuNDg1Mjg1OSwzNi4yNTE1ODYyIDM2LjQ4Mjg1NjQsMzYuMjU0ODI3NiBDMzYuNDc3MTg3NywzNi4yNjIxMjA3IDM2LjQ3MjMyODgsMzYuMjY5NDEzOCAzNi40NjY2NjAxLDM2LjI3NTg5NjYgQzM2LjQ2NTg1MDMsMzYuMjc4MzI3NiAzNi40NjQyMzA3LDM2LjI3OTk0ODMgMzYuNDYyNjExLDM2LjI4MjM3OTMgQzM2LjQ1MjA4MzQsMzYuMjk3Nzc1OSAzNi40Mzk5MzYyLDM2LjMxMDc0MTQgMzYuNDMwMjE4NCwzNi4zMjY5NDgzIEMzNi4zNTAwNDY2LDM2LjQ2NzEzNzkgMzYuMzIwODkzMywzNi42MjE5MTM4IDM2LjMzNTQ2OTksMzYuNzcxODI3NiBMMzYuMjUzNjc4NSw2OC4xODk3MDY5IEwzLjg1Mzc1MjE1LDQ0Ljk3ODE4OTcgTDU4LjczMzM1OTUsMTMuMjE3NTM0NSBaIE0xMzAuNzI5MjM3LDIyLjgzMTQ2NTUgTDk0LjYxNzExNDEsMS45NjgzMjc1OSBDOTQuMjMzMjYxMywxLjc0NjI5MzEgOTMuODA0MDU4OSwxLjYzNTI3NTg2IDkzLjM3NTY2NjMsMS42MzUyNzU4NiBDOTIuOTQ2NDYzOCwxLjYzNTI3NTg2IDkyLjUxNzI2MTMsMS43NDYyOTMxIDkyLjEzMjU5ODgsMS45NjkxMzc5MyBMNjguMDM4MTQ0OCwxNS45MTM1NTE3IEw2MS4yNjA3OTUxLDExLjA1NTUzNDUgTDYxLjI2MDc5NTEsNS45NjI1MTcyNCBDNjEuMjYwNzk1MSwyLjgxMTg5NjU1IDU4LjY5NjEwOCwwLjI0NzE1NTE3MiA1NS41NDM0OTQ1LDAuMjQ3MTU1MTcyIEM1NC41NDgyMzA3LDAuMjQ3MTU1MTcyIDUzLjU2MTA2NSwwLjUxNTM3OTMxIDUyLjY4NzI3MzYsMS4wMjE4NDQ4MyBMNS40MzUzMjI3LDI4LjM2NjkzMSBDMi4wODM0OTQ0OCwzMC4zMDI4NDQ4IC0wLjAwMDE2MTk2MzE5LDMzLjkxNjE3MjQgLTAuMDAwMTYxOTYzMTksMzcuNzk1MjkzMSBMLTAuMDAwMTYxOTYzMTksNDQuOTEwOTMxIEMtMC4wMDAxNjE5NjMxOSw0NS43MTE1NTE3IDAuMzg2MTIwMjQ1LDQ2LjQ2NDM2MjEgMS4wMzcyMTIyNyw0Ni45MzAzMTAzIEwzNS41NDk5NDg1LDcxLjY2Mjg0NDggQzM1LjU2MjkwNTUsNzEuNjcyNTY5IDM1LjU3NjY3MjQsNzEuNjgyMjkzMSAzNS41ODk2Mjk0LDcxLjY5MTIwNjkgTDM1LjY2ODk5MTQsNzEuNzQ1NSBDMzUuNzIyNDM5Myw3MS43ODI3NzU5IDM1Ljc3NzUwNjcsNzEuODE3NjIwNyAzNS44MzQxOTM5LDcxLjg1MDAzNDUgTDcxLjUyNTIxMjMsOTIuNDY2MDE3MiBDNzEuOTk0OTA1NSw5Mi45MzUyMDY5IDcyLjYzMDYxMSw5My4xODk2NTUyIDczLjI3OTI3MzYsOTMuMTg5NjU1MiBDNzMuNzAwMzc3OSw5My4xODk2NTUyIDc0LjEyNzk2MDcsOTMuMDgxODc5MyA3NC41MTkxMDE4LDkyLjg1NTc5MzEgTDc2Ljc0MzY2NjMsOTEuNTY4OTY1NSBDNzcuNTExMzcxOCw5MS4xMjQ4OTY2IDc3Ljk4MzQ5NDUsOTAuMzA0ODI3NiA3Ny45ODM0OTQ1LDg5LjQxODMxMDMgTDc3Ljk4MzQ5NDUsNjUuMjQ4OTY1NSBDNzguMDA1MzU5NSw2NS4xODkgNzguMDI1NjA0OSw2NS4xMjc0MTM4IDc4LjA0MjYxMSw2NS4wNjUwMTcyIEw3OS42NTY1NzQyLDU5LjIzMzc3NTkgTDc5LjgxNjEwOCw1OS4yNzUxMDM0IEw4Ny43NzkwMjgyLDYxLjMzNjYyMDcgQzg3Ljk3NTAwMzcsNjEuMzg3NjcyNCA4OC4xNzY2NDc5LDYxLjQxNDQxMzggODguMzc5OTExNyw2MS40MTYwMzQ1IEw5MC4xMjc0OTQ1LDYxLjQzMDYyMDcgTDkwLjE0ODU0OTcsNjEuNDMwNjIwNyBDOTAuNDMzNjA0OSw2MS40MzA2MjA3IDkwLjcxNjIzMDcsNjEuMzgyIDkwLjk4NTA4OTYsNjEuMjg1NTY5IEM5Ny4wMjA2NDc5LDU5LjEyMzU2OSAxMDMuNzcyMDgzLDU3LjkzMjM2MjEgMTA5Ljk5NDcwOSw1Ny45MzIzNjIxIEMxMTYuMTk5NTE5LDU3LjkzMjM2MjEgMTIxLjc0OTE4OCw1OS4xMTU0NjU1IDEyNS42NzE5MzYsNjEuMjY5MzYyMSBDMTI1Ljk1NzgwMSw2MS41MjYyNDE0IDEyNi4zMDE5NzMsNjEuNzE0MjQxNCAxMjYuNjgwMTU3LDYxLjgxNjM0NDggQzEyNi44OTMxMzksNjEuODczODc5MyAxMjcuMTEwOTc5LDYxLjkwMjI0MTQgMTI3LjMyODAxLDYxLjkwMjI0MTQgQzEyNy43NTk2NDIsNjEuOTAyMjQxNCAxMjguMTg4MDM0LDYxLjc5MDQxMzggMTI4LjU2ODY0OCw2MS41NyBMMTMwLjcyODQyNyw2MC4zMjI4NzkzIEMxMzEuNDk2OTQyLDU5Ljg3OTYyMDcgMTMxLjk3MDY4NSw1OS4wNTk1NTE3IDEzMS45NzA2ODUsNTguMTcxNDEzOCBMMTMxLjk3MDY4NSwyNC45ODIxMjA3IEMxMzEuOTcwNjg1LDI0LjA5NDc5MzEgMTMxLjQ5Njk0MiwyMy4yNzQ3MjQxIDEzMC43MjkyMzcsMjIuODMxNDY1NSBMMTMwLjcyOTIzNywyMi44MzE0NjU1IFoiIGlkPSJGaWxsLTQ1IiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTk3LjUyODgwNzQsMjkuMzM4NDUzNCBDOTguMjg1OTg1MywyOC45MDA4NjcyIDk5LjAwMDI0MjksMjguNjc5NjQzMSA5OS42MjYyMzA3LDI4LjY3OTY0MzEgQzEwMC4wMjMwNCwyOC42Nzk2NDMxIDEwMC4zODM0MDksMjguNzY4NzgxIDEwMC42OTU5OTgsMjguOTQ5NDg3OSBDMTAxLjQ5MjA0NywyOS40MDczMzI4IDEwMS45MzMzOTYsMzAuNDM1NjYwMyAxMDEuOTM3NDQ1LDMxLjg0MjQxOSBDMTAxLjk0NjM1MywzNS4wOTUxNDMxIDk5LjY1MDUyNTIsMzkuMDcxNTA1MiA5Ni44MjAyMTg0LDQwLjcwNTk3MDcgQzk1LjU4MjgxOTYsNDEuNDE5ODg0NSA5NC40NTk2MDQ5LDQxLjU1NzY0MzEgOTMuNjU2MjY3NSw0MS4wOTQ5MzYyIEM5Mi44NTk0MDg2LDQwLjYzNTQ3MDcgOTIuNDE4MDU4OSwzOS42MDc5NTM0IDkyLjQxNDgxOTYsMzguMjAxMTk0OCBDOTIuNDA1MTAxOCwzNC45NDg0NzA3IDk0LjY5OTMxMDQsMzAuOTczNzI5MyA5Ny41Mjg4MDc0LDI5LjMzODQ1MzQgTTkyLjkxMzY2NjMsNDIuMzg3NDM2MiBDOTMuNDU4NjcyNCw0Mi43MDAyMjkzIDk0LjA2ODQ2MzgsNDIuODU2NjI1OSA5NC43MjExNzU1LDQyLjg1NjYyNTkgQzk1LjYwODczMzcsNDIuODU2NjI1OSA5Ni41NzY0NjM4LDQyLjU2NzMzMjggOTcuNTY0NDM5Myw0MS45OTY4NSBDMTAwLjg2MjAxLDQwLjA5MjUzOTcgMTAzLjQzNzIyNSwzNS42Mjk5NzA3IDEwMy40MjY2OTcsMzEuODM4MzY3MiBDMTAzLjQyMTAyOCwyOS44NzY1MjI0IDEwMi43MTQ4NjksMjguMzkxOTcwNyAxMDEuNDM4NTk5LDI3LjY1Njk4NzkgQzEwMC4xNTQyMzEsMjYuOTE3MTQzMSA5OC41MDEzOTYzLDI3LjA1NjUyMjQgOTYuNzgzNzc2NywyOC4wNDc1NzQxIEM5My40ODc4MjU4LDI5Ljk1MTg4NDUgOTAuOTE0MjMwNywzNC40MTQ0NTM0IDkwLjkyNTU2ODEsMzguMjA0NDM2MiBDOTAuOTMwNDI3LDQwLjE2NTQ3MDcgOTEuNjM3Mzk2Myw0MS42NTE2NDMxIDkyLjkxMzY2NjMsNDIuMzg3NDM2MiIgaWQ9IkZpbGwtNDMiIGZpbGw9IiNGRkZGRkYiIG1hc2s9InVybCgjbWFzay0yKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03NC42MjY2OTc1LDU0LjgyNTc1MjggTDc3LjA0MDEwMDIsNTkuMDQ5MjA3NSBMNzcuMDQwMTAwMiw1OS4wNDkyMDc1IEM3Ny4zMDY0OTY4LDU5LjUxNTQwMTUgNzcuMTU3MTc5OCw2MC4xMDg3NjczIDc2LjcwMTg1Niw2MC4zOTMzNDQ3IEw3MS44NzUwNTA3LDYzLjQxMDA5OCBMNzEuODc1MDUwNyw2My40MTAwOTggQzcxLjQwNjcxNDEsNjMuNzAyODA4NCA3MC43ODk3NjM4LDYzLjU2MDQzNTIgNzAuNDk3MDUzNCw2My4wOTIwOTg3IEM3MC4zMzg5NjQ1LDYyLjgzOTE1NjMgNzAuMzAyMDQzNSw2Mi41Mjg4NDY4IDcwLjM5NjM2ODQsNjIuMjQ1ODcyIEw3Mi44MDk3NzExLDU1LjAwNTY2NCBMNzIuODA5NzcxMSw1NS4wMDU2NjQgQzcyLjk4NDQxODksNTQuNDgxNzIwNyA3My41NTA3Mzg4LDU0LjE5ODU2MDcgNzQuMDc0NjgyMiw1NC4zNzMyMDg0IEM3NC4zMDgwOTMxLDU0LjQ1MTAxMjEgNzQuNTA0NjI5MSw1NC42MTIxMzMxIDc0LjYyNjY5NzUsNTQuODI1NzUyOCBaIiBpZD0iVHJpYW5nbGUiIGZpbGwtb3BhY2l0eT0iMC4yNjYwNDk1OTIiIGZpbGw9IiNGRkZGRkYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDczLjc1ODUyMSwgNTguOTQxOTI3KSByb3RhdGUoMTgwLjAwMDAwMCkgdHJhbnNsYXRlKC03My43NTg1MjEsIC01OC45NDE5MjcpICI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="/>\n <ol>\n '+_r.map((function(e){var t;return"<li>"+(null!==(t=e[navigator.language.split("-")[0]])&&void 0!==t?t:e.zh)+"</li>"})).join("")+"\n </ol>\n ";var p=new zn(d);e.parentNode&&(e.parentNode.insertBefore(u,e),e.parentNode.insertBefore(d,e),this.setHelperElementSize(),p.on("tap",(function(){return t.emit("vrWantsToExit")}))),this.destroyHelper=function(){p.destroy(),u.parentNode&&u.parentNode.removeChild(u),d.parentNode&&d.parentNode.removeChild(d)}},i.prototype.destroyHelper=function(){},i.prototype.setHelperElementSize=function(){if(this.helperElement){var e=new r.Vector2(this.element.offsetWidth,this.element.offsetHeight),t=e.x*this.scissor.left,i=e.y*(1-this.scissor.bottom-this.scissor.height),n=e.x*this.scissor.width,o=e.y*this.scissor.height;this.helperElement.style.marginLeft=t+"px",this.helperElement.style.marginTop=i+"px",this.helperElement.style.width=n+"px",this.helperElement.style.height=o+"px"}},i.prototype.intersect=function(e){if(!1!==this.locationMotion.ended){if(this.activePanoMesh&&this.activeTime&&e-this.activeTime>2e3){var t=this.panoMeshes.indexOf(this.activePanoMesh);return t>=0&&this.moveToPano(t,{},!0),delete this.activePanoMesh,void delete this.activeTime}for(var i=0,n=this.panoMeshes;i<n.length;i++){(h=n[i]).setCurrent(!1)}for(var o=this.camera.getWorldDirection(new r.Vector3),s=new r.Raycaster(this.camera.position,o),a=void 0,u=[],c=0,l=this.panoMeshes;c<l.length;c++){var h;if(!1!==(h=l[c]).visible){var d=s.intersectObject(h,!0)[0];d&&u.push({panoMesh:h,intersection:d})}}var p=u.sort((function(e,t){return e.intersection.distance-t.intersection.distance}))[0];if(p&&(a=p.intersection,p.panoMesh.setCurrent(!0),this.activePanoMesh!==p.panoMesh&&(this.activePanoMesh=p.panoMesh,this.activeTime=e)),a||this.model.empty||(a=this.model.intersectRaycaster(s)[0]),a&&a.face){var A=a.face.normal,f=new r.Quaternion;f.setFromUnitVectors(new r.Vector3(0,0,-1),A),this.intersectMesh.quaternion.copy(f);var M=A.clone().multiplyScalar(.05),g=a.point.clone().add(M);this.intersectMesh.position.copy(g),this.intersectMesh.visible=!0,this.emit("intersectionOnModelUpdate",a,this.intersectMesh)}else this.intersectMesh.visible=!1,this.emit("intersectionHidden")}else this.intersectMesh.visible=!1},i.prototype.onPanGesture=function(){},i.prototype.onTapGesture=function(){},i.prototype.onPinchGesture=function(){},i.prototype.onMouseMove=function(){},i.prototype.onMouseOut=function(){},i}(Or),Rr=function(e){function i(t){var n,r,o,s,a=this,u=i.parseArgs(t);return(a=e.call(this,u)||this).currentPanoIndex=u.initial[0],a.locationMotion=new Yn({x:a.camera.pose.offset.x,y:a.camera.pose.offset.y,z:a.camera.pose.offset.z,distance:a.camera.pose.distance,modelAlpha:null!==(r=null===(n=a.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==r?r:0,perspToOrtho:null!==(s=null===(o=a.model.getMaterial())||void 0===o?void 0:o.perspToOrtho)&&void 0!==s?s:0}),a}return t.__extends(i,e),i.parseArgs=function(t){return e.parseArgs.call(this,t)},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose()},i.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},i.prototype.updateWork=function(e,t,i,n,r){this.work=e,this.currentPanoIndex=t,this.hideIntersectMesh();var o={duration:0,longitude:i.longitude,latitude:i.latitude,fov:i.fov};return this.moveToPano(t,o,r),!0},i.prototype.updateTime=function(e,t){if(!this.destroyed){var i={},n={};if(!this.locationMotion.ended){this.locationMotion.update(e),i.modelAlpha=this.locationMotion.value.modelAlpha,i.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),n.distance=this.locationMotion.value.distance,n.offset=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var o=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),s=Tn(this.work.observers,(function(e){return e.position.distanceTo(o)}));this.currentPanoIndex=this.work.observers.indexOf(s)}this.cameraMotion.ended||(this.cameraMotion.update(e),n.longitude=this.cameraMotion.value.longitude,n.latitude=this.cameraMotion.value.latitude,n.fov=this.cameraMotion.value.fov),En(i)||this.model.setMaterial(i),En(n)||this.setCamera(n)}},i.prototype.initAnimation=function(e,t,i,n){var r,o,s,a=this;this.destroyed||(this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:xn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:xn(null!==(s=t.fov)&&void 0!==s?s:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){a.emit("initAnimationWillStart",e,t,a.userAction)},moveEndCallback:function(e,t){a.emit("initAnimationEnded",e,t,a.userAction)},moveCancelCallback:function(){var e=a.currentPanoIndex,t={longitude:a.camera.pose.longitude,latitude:a.camera.pose.latitude,fov:a.camera.pose.fov,offset:a.camera.pose.offset.clone()};a.emit("initAnimationEnded",e,t,a.userAction)}},n))},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1],t=this.locationMotion.getKeyFrameSegment(He())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new r.Vector3(t.value.x,t.value.y,t.value.z)}},i.prototype.moveToPano=function(e,t,i){void 0===t&&(t={});var n=this.work.observers[e];n&&this.moveToPosition(n.position,t,i)},i.prototype.moveToPosition=function(e,t,i){var n,o,s,a=this;void 0===t&&(t={}),this.userAction=i;for(var u=He(),c=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z).distanceTo(e),l=this.locationMotion.getProgressVelocity(u),h=0,d=1;d<this.locationMotion.keyframes.length;d++){var p=this.locationMotion.keyframes[d-1].value,A=p.x,f=p.y,M=p.z,g=this.locationMotion.keyframes[d].value,y=g.x,m=g.y,v=g.z;h+=Math.sqrt(Math.pow(y-A,2)+Math.pow(m-f,2)+Math.pow(v-M,2))}var N=0===c?0:l*h/c,D=this.calculateMovingDuration(t.duration,c),w={x:e.x,y:e.y,z:e.z,distance:0,modelAlpha:1,perspToOrtho:0},T={longitude:t.longitude,latitude:t.latitude,fov:t.fov},x={longitude:null!==(n=T.longitude)&&void 0!==n?n:this.camera.pose.longitude,latitude:null!==(o=T.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(s=T.fov)&&void 0!==s?s:this.camera.pose.fov,offset:e.clone()},E=Tn(this.work.observers,(function(t){return t.position.distanceTo(e)})),j=this.work.observers.indexOf(E);this.emit("moveToPano",j,this.userAction),t.moveStartCallback&&t.moveStartCallback(j,x),this.emit("panoWillArrive",j,x,this.userAction),this.cameraMotion.set(T,D).catch(Qe),this.locationMotion.set(w,D,N).then((function(){var e=jn(a.camera.pose);t.moveEndCallback&&t.moveEndCallback(j,e),a.emit("panoArrived",j,e,a.userAction)}),(function(){t.moveCancelCallback&&t.moveCancelCallback(),a.emit("moveToPanoCanceled",j)}))},i.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","tap",t,!0)){var i=this.relativeClientPosition(e.center),n=new r.Raycaster;if(n.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",n,i)){this.emit("gesture","tap",t,!0),this.emit("tapGesture",n,i),this.interiaMovement=!1;var o=this.model.intersectRaycaster(n)[0];if(o&&o.face){var s=o.face.normal,a=o.point;if(new r.Vector3(0,1,0).angleTo(s)>Math.PI/3){var u=this.camera.position.clone().setY(a.y),c=a.clone().sub(u).setLength(.3),l=a.clone().sub(c);n.set(l,new r.Vector3(0,-1,0)),o=this.model.intersectRaycaster(n)[0]}}if(o){var h=o.point.clone(),d=Tn(this.work.observers.filter((function(e){return Math.abs(e.standingPosition.y-h.y)<1})),(function(e){return e.standingPosition.distanceTo(h)}));if(d)return h.y=d.position.y,void this.moveToPosition(h,{},!0)}this.cameraBounce()}}},i}(Zn),Qr=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-aNb-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),Yr=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f"),Fr=Object.assign({opacity:new r.Uniform(1),scale:new r.Uniform(13.1),panoMap:new r.Uniform(null),panoDisplacementMap:new r.Uniform(null),panoPosition:new r.Uniform(new r.Vector3),panoMatrix:new r.Uniform(new r.Matrix4)},{emissive:new r.Uniform(new r.Color(0)),emissiveMap:new r.Uniform(null),specular:new r.Uniform(new r.Color(1118481)),specularMap:new r.Uniform(null),normalMap:new r.Uniform(null),bumpMap:new r.Uniform(null),shininess:new r.Uniform(30)},r.UniformsLib.common,r.UniformsLib.lights),Vr=new r.SphereBufferGeometry(.01,128,128);var Hr=function(){function e(e){void 0===e&&(e={}),this.textureLoader=new xi({allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe}),this.allowHosts=e.allowHosts,this.networkSubscribe=e.networkSubscribe}return e.prototype.setAllowHosts=function(e){this.allowHosts=e,this.textureLoader.setAllowHosts(e)},e.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e,this.textureLoader.setNetworkSubscribe(e)},e.prototype.load=function(e,i,n,o,s,a,u,c){var l=[0,0],h=function(e,t){l[t]=e,u(.8*l[0]+.2*l[1])},d=[this.textureLoader.load(e,{},void 0,void 0,(function(e){return h(e,1)}),c),this.textureLoader.loadCube(i,{},void 0,void 0,(function(e){return h(e,0)}),c)];return Promise.all(d).then((function(e){var i=e[0],a=e[1],u={body:function(e,t,i,n){var o=new r.ShaderMaterial({side:r.BackSide,vertexShader:Qr,fragmentShader:Yr,transparent:!0,uniforms:r.UniformsUtils.clone(Fr)}),s=t;return s.needsUpdate=!0,s.minFilter=r.LinearFilter,s.magFilter=r.LinearFilter,e.needsUpdate=!0,e.minFilter=r.LinearFilter,e.magFilter=r.LinearFilter,o.uniforms.opacity.value=0,o.uniforms.panoMap.value=s,o.uniforms.panoDisplacementMap.value=e,o.uniforms.panoPosition.value=i,o.uniforms.panoMatrix.value=n,Object.assign(new r.Mesh(Vr,o),{frustumCulled:!1,dispose:function(){this.material instanceof r.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(i.body,a.body,n,o),meta:t.__spreadArray([i.meta],a.meta,!0)};return s(u),u})).catch((function(e){for(var t=0,i=d;t<i.length;t++){i[t].then((function(e){return e.body.dispose()})).catch(Qe)}return a(e),Promise.reject(e)}))},e}(),Gr=new r.Vector3(-1,1,1),Wr=function(e){function i(t){var n,o,s,a,u,c,l,h=this,d=i.parseArgs(t);return(h=e.call(this,d)||this).currentPanoIndex=d.initial[0],h.maxAccessibleDistance=d.maxAccessibleDistance,h.panoTapTriggerRadius=d.panoTapTriggerRadius,h.panoCircleMeshCreator=d.panoCircleMeshCreator,h.boundingMesh=h.generateBoundingMesh(),h.boundingMesh.setMaterial(h.model.getMaterial()||{}),h.boundingMesh.visible=!1,h.scene.add(h.boundingMesh),h.panoModelGroup=new r.Group,h.panoModelGroup.name="panoModels",h.scene.add(h.panoModelGroup),h.panoMeshes=[],h.updatePanoMeshes(),h.helper.remove(h.intersectMesh),h.locationMotion=new Yn({count:0,distance:h.camera.pose.distance,modelAlpha:null!==(o=null===(n=h.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==o?o:0,perspToOrtho:null!==(a=null===(s=h.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==a?a:0}),h.panoResources={},h.panoResources[h.locationMotion.keyframes[0].key=h.locationMotion.keyframes[1].key=Fe()]={panoIndex:h.currentPanoIndex,workCode:h.work.workCode,matrix:null!==(l=null===(c=null===(u=h.model.getMaterial())||void 0===u?void 0:u.pano1)||void 0===c?void 0:c.matrix)&&void 0!==l?l:new r.Matrix4,position:h.camera.pose.offset.clone(),effect:"fly"},h.depthTextureLoader=new Hr({allowHosts:h.work.allowHosts,networkSubscribe:h.networkSubscribe}),h}return t.__extends(i,e),i.parseArgs=function(i){var n,r,o,s=e.parseArgs.call(this,i);return t.__assign(t.__assign({},s),{maxAccessibleDistance:null!==(n=i.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(r=i.panoTapTriggerRadius)&&void 0!==r?r:1,panoCircleMeshCreator:null!==(o=i.panoCircleMeshCreator)&&void 0!==o?o:cr})},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.destroy=function(){var t,i=this;if(e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.pendingTextureTask,this.model&&(this.model.visible=!0),this.panoModelGroup){for(var n=0,r=this.panoModelGroup.children;n<r.length;n++){var o=r[n];"function"==typeof o.dispose&&o.dispose()}this.scene.remove(this.panoModelGroup)}this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoMeshes&&(this.panoMeshes.forEach((function(e){i.helper.remove(e),e.dispose()})),this.panoMeshes.length=0);for(var s=null!==(t=this.model.getMaterial())&&void 0!==t?t:{},a=s.pano0,u=s.pano1,c=0,l=Object.keys(this.panoResources);c<l.length;c++){var h=l[c],d=this.panoResources[h];d.panoModel&&d.panoModel.material.uniforms.panoMap.value!==(null==a?void 0:a.map)&&d.panoModel.material.uniforms.panoMap.value!==(null==u?void 0:u.map)&&(this.panoModelGroup.remove(d.panoModel),d.panoModel.material.uniforms.panoMap.value.dispose(),d.panoModel.dispose(),delete d.panoModel),delete this.panoResources[h]}this.interiaMovement=!1},i.prototype.isReady=function(){return!1===this.locationMotion.ended&&e.prototype.isReady.call(this)},i.prototype.updateWork=function(e,t,i,n,r){this.userAction=r,this.work=e,this.currentPanoIndex=t,this.depthTextureLoader.setAllowHosts(this.work.allowHosts);var o={},s=!0;this.boundingMesh&&(o=this.boundingMesh.getMaterial()||{},s=this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(!0),this.boundingMesh.visible=s,this.boundingMesh.setMaterial(o),this.scene.add(this.boundingMesh),this.hideIntersectMesh(),this.updatePanoMeshes();for(var a=0,u=this.panoMeshes;a<u.length;a++){u[a].visible=!1}return this.moveToPano(t,{effect:"fade",duration:n,longitude:i.longitude,latitude:i.latitude,fov:i.fov},r),!0},i.prototype.updateTime=function(e,t){var i,n,o;if(!this.destroyed){var s={},a={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var u=this.locationMotion.getKeyFrameSegment(e),c=u[0],l=u[1],h=this.panoResourceFromLocationMotionKeyframe(c),d=this.panoResourceFromLocationMotionKeyframe(l),p=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),A=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),f=(new r.Vector3).copy(h.position),M=(new r.Vector3).copy(d.position),g=this.locationMotion.value.count-l.value.count+1;s.modelAlpha=this.locationMotion.value.modelAlpha,s.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),s.useBlackTransition="instant"===d.effect;for(var y=0,m=this.panoModelGroup.children;y<m.length;y++){var v=m[y];v.visible=v===h.panoModel||v===d.panoModel}h.panoModel&&(h.panoModel.material.uniforms.opacity.value=1-g,h.panoModel.material.depthTest=0!==g),d.panoModel&&(d.panoModel.material.uniforms.opacity.value=g,d.panoModel.material.depthTest=1!==g),d.panoModel&&(g<1?h.panoModel&&(s.pano0={map:h.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:h.matrix}):s.pano0={map:d.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:d.matrix},s.pano1={map:d.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:d.matrix}),"fade"===d.effect&&(s.pano0&&(s.pano0={map:s.pano0.map,luminanceMap:null,matrix:h.matrix.clone().setPosition(d.position)}),f.copy(M)),s.progress=g,a.distance=this.locationMotion.value.distance,a.offset=new r.Vector3(f.x+(M.x-f.x)*g,f.y+(M.y-f.y)*g,f.z+(M.z-f.z)*g);for(var N=[],D=[],w=0,T=this.locationMotion.keyframes;w<T.length;w++){var x=T[w],E=x.key,j=x.progress;void 0!==E&&(N.push(E),j>=this.locationMotion.progress&&D.push(E))}for(var z=0,I=Object.keys(this.panoResources);z<I.length;z++){var b=I[z];if(!(D.indexOf(b)>=0)){var O=this.panoResources[b];if(O.panoModel){if(O.panoModel.material.uniforms.panoMap.value===(null===(i=s.pano0)||void 0===i?void 0:i.map))continue;if(O.panoModel.material.uniforms.panoMap.value===(null===(n=s.pano1)||void 0===n?void 0:n.map))continue;this.panoModelGroup.remove(O.panoModel),O.panoModel.material.uniforms.panoMap.value.dispose(),O.panoModel.dispose(),delete O.panoModel}N.indexOf(b)>=0||delete this.panoResources[b]}}h.workCode===d.workCode?this.currentPanoIndex=g<.5?h.panoIndex:d.panoIndex:this.currentPanoIndex=d.panoIndex,this.emit("movingToPano",A.panoIndex,p.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),a.longitude=this.cameraMotion.value.longitude,a.latitude=this.cameraMotion.value.latitude,a.fov=this.cameraMotion.value.fov),!1===En(s)&&(this.model.setMaterial(s),this.boundingMesh.setMaterial(s)),!1===En(a)&&this.setCamera(a),this.boundingMesh.visible=Boolean(null===(o=this.boundingMesh.getMaterial())||void 0===o?void 0:o.pano0)&&this.boundingMesh.boundingBox.containsPoint(this.camera.position)}},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1],t=this.locationMotion.getKeyFrameSegment(He())[1],i=this.panoResourceFromLocationMotionKeyframe(t),n=this.work.observers[i.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone()}},i.prototype.moveToPano=function(e,i,n){var o,s,a=this;void 0===i&&(i={});var u=this.work.observers[e].images.depth,c=t.__assign({key:"pano."+e,basisLoaderInitialized:wi.isInitialized()},Xt(this.imageOptions,["format","size","quality"])),l=null!==(o=this.imageOptions.transform)&&void 0!==o?o:ti,h={right:l(this.work.observers[e].images.right,t.__assign(t.__assign({},c),{key:"pano."+e+".right"})),left:l(this.work.observers[e].images.left,t.__assign(t.__assign({},c),{key:"pano."+e+".left"})),up:l(this.work.observers[e].images.up,t.__assign(t.__assign({},c),{key:"pano."+e+".up"})),down:l(this.work.observers[e].images.down,t.__assign(t.__assign({},c),{key:"pano."+e+".down"})),front:l(this.work.observers[e].images.front,t.__assign(t.__assign({},c),{key:"pano."+e+".front"})),back:l(this.work.observers[e].images.back,t.__assign(t.__assign({},c),{key:"pano."+e+".back"}))},d=this.work.observers[e],p=d.position,A=d.quaternion,f=(new r.Matrix4).compose(p,A,new r.Vector3(-1,1,1)),M="pano:"+Wn(h);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===M)return;var g=this.pendingTextureTask.panoIndex;null===(s=this.panoMeshes[g])||void 0===s||s.setProgress(0),this.emit("textureAbort",g,this.work.observers[g]),this.pendingTextureTask.onError(new Error("texture aborted"))}this.pending=!0,this.pendingTextureTask={panoIndex:e,hash:M,onLoad:function(t){a.pending=!1,a.destroyed?t.body.dispose():(t.body.name=M,a.emit("panoLoaded",e),a.doMoveToPano(e,t.body,i,n))},onError:function(t){a.pending=!1,i.moveCancelCallback&&i.moveCancelCallback(),a.emit("panoLoadError",t,e),a.emit("moveToPanoCanceled",e)}},this.depthTextureLoader.load(u,h,p,f,(function(t){var i,n;(null===(i=a.pendingTextureTask)||void 0===i?void 0:i.hash)===M?(a.pendingTextureTask.onLoad(t),null===(n=a.panoMeshes[e])||void 0===n||n.setProgress(0),delete a.pendingTextureTask,a.emit("textureLoaded",e,a.work.observers[e],t.meta)):t.body.dispose()}),(function(t){var i,n;(null===(i=a.pendingTextureTask)||void 0===i?void 0:i.hash)===M&&(a.pendingTextureTask.onError(t),null===(n=a.panoMeshes[e])||void 0===n||n.setProgress(0),delete a.pendingTextureTask,a.emit("textureError",t,e,a.work.observers[e]),a.emit("error",t))}),(function(t){var i,n;(null===(i=a.pendingTextureTask)||void 0===i?void 0:i.hash)===M&&(null===(n=a.panoMeshes[e])||void 0===n||n.setProgress(t)),a.emit("textureLoading",t,e,a.work.observers[e])}),this.renderer),this.emit("textureStartLoad",e,this.work.observers[e])},i.prototype.setCamera=function(t){e.prototype.setCamera.call(this,t);var i=this.work.observers[this.currentPanoIndex];if(i)for(var n=i.visibleNodes.concat(this.currentPanoIndex),r=this.getForwardPanoIndexOrNot(),o=0;o<this.work.observers.length;o++){var s=this.work.observers[o],a=this.panoMeshes[o];if(a.visible=!0,a.setCurrent(r===o),a)if(s.loadable||s.active)if(-1===n.indexOf(o))a.visible=!1;else{a.visible=!0;var u=a.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);u<.01?a.setOpacity(0):a.setOpacity(xn(1.5/u,0,1))}else a.visible=!0}},i.prototype.initAnimation=function(e,t,i,n){var r,o,s,a=this;if(!this.destroyed){var u=!1;this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:xn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:xn(null!==(s=t.fov)&&void 0!==s?s:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){u=!0,a.emit("initAnimationWillStart",e,t,a.userAction)},moveEndCallback:function(e,t){a.emit("initAnimationEnded",e,t,a.userAction)},moveCancelCallback:function(){var e=jn(a.camera.pose);!1===u&&a.emit("initAnimationWillStart",a.currentPanoIndex,e,a.userAction),a.emit("initAnimationEnded",a.currentPanoIndex,e,a.userAction)}},n)}},i.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},i.prototype.locationMotionKeyframesLength=function(e){for(var t=0,i=1;i<e.length;i++){var n=this.panoResourceFromLocationMotionKeyframe(e[i-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[i]).position;t+=n.distanceTo(r)*(e[i].value.count-e[i-1].value.count)}return t},i.prototype.updatePanoMeshes=function(){for(var e=[],t=0,i=this.panoMeshes;t<i.length;t++){(r=i[t]).loading&&e.push(r.name),this.helper.remove(r),r.dispose()}this.panoMeshes.length=0;for(var n=0;n<this.work.observers.length;n++){var r,o=this.work.observers[n];(r=this.panoCircleMeshCreator()).name="panoCircle_"+this.work.workCode+"_"+n,r.position.copy(o.standingPosition),r.needsRender=!0,this.helper.add(r),!1===o.active&&(r.setDisabled(!0),e.indexOf(r.name)>=0&&(r.setDisabled(!1),r.setLoading(!0))),this.panoMeshes[n]=r}},i.prototype.generateBoundingMesh=function(e){void 0===e&&(e=!1);for(var t=this.model.bounding.clone(),i=0,n=this.work.observers;i<n.length;i++){var o=n[i];t.expandByPoint(o.standingPosition),t.expandByPoint((new r.Vector3).fromArray([o.position.x,2*o.position.y-o.standingPosition.y,o.position.z]))}e&&t.expandByPoint(this.camera.position);var s=at(t,new r.Vector3(1,0,1));return s.name="panorama_bounding",s.frustumCulled=!1,s},i.prototype.doMoveToPano=function(e,i,n,o){var s,a,u,c,l=this;void 0===n&&(n={}),this.userAction=o;var h=He(),d=Fe(),p=this.work.observers[e],A=this.panoResources[d]={panoIndex:e,workCode:this.work.workCode,effect:null!==(s=n.effect)&&void 0!==s?s:"fly",panoModel:i,matrix:(new r.Matrix4).compose(p.position,p.quaternion,Gr),position:p.position.clone()};i.visible=!1,i.renderOrder=-1,this.panoModelGroup.add(i);var f,M,g;if(this.locationMotion.ended){var y=this.locationMotion.getKeyFrameSegment(h);y[0];var m=y[1],v=this.locationMotion.value,N=this.panoResourceFromLocationMotionKeyframe(m).position,D=A.position;f=Math.max(N.distanceTo(D),1),M=[{key:m.key,progress:0,value:t.__assign(t.__assign({},v),{count:0})},{key:d,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,count:1}}],g=0}else{var w=this.locationMotion.getKeyFrameSegment(h),T=w[0],x=(m=w[1],v=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(T).position),E=(N=this.panoResourceFromLocationMotionKeyframe(m).position,D=A.position,m.value.count-v.count),j=Math.max(x.distanceTo(N),1)*E;f=j+Math.max(N.distanceTo(D),1),M=[{key:T.key,progress:0,value:t.__assign({},v)},{key:m.key,progress:j/f,value:m.value},{key:d,progress:1,value:{count:m.value.count+1,distance:0,perspToOrtho:0,modelAlpha:0}}];var z=this.locationMotionKeyframesLength(this.locationMotion.keyframes),I=this.locationMotionKeyframesLength(M);g=this.locationMotion.getProgressVelocity(h)*z/I}var b=this.calculateMovingDuration(n.duration,f),O={longitude:n.longitude,latitude:n.latitude,fov:n.fov},S={longitude:null!==(a=O.longitude)&&void 0!==a?a:this.camera.pose.longitude,latitude:null!==(u=O.latitude)&&void 0!==u?u:this.camera.pose.latitude,fov:null!==(c=O.fov)&&void 0!==c?c:this.camera.pose.fov,offset:p.position.clone()};n.moveStartCallback&&n.moveStartCallback(e,S),this.emit("panoWillArrive",e,S,this.userAction),this.cameraMotion.set(O,b).catch(Qe),this.locationMotion.setKeyFrames(M,b,g).then((function(){var t={longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone()};n.moveEndCallback&&n.moveEndCallback(e,t),l.emit("panoArrived",e,t,o)}),(function(){n.moveCancelCallback&&n.moveCancelCallback(),l.emit("moveToPanoCanceled",e)}))},i.prototype.getForwardPanoIndexOrNot=function(e){var t=this,i=this.camera.getWorldDirection(new r.Vector3),n=this.camera.position.clone(),o=this.work.observers[this.currentPanoIndex];if(!o)return null;var s=o.accessibleNodes.filter((function(e){if(e===t.currentPanoIndex)return!1;var i=t.work.observers[e],o=i.standingPosition.clone().sub(n);return 0!==o.length()&&(!(o.angleTo(new r.Vector3(0,-1,0))<Math.PI/12)&&(i.loadable||i.active))})),a=(e?e.ray.direction.clone():i.clone()).setY(0);if(0===a.length())return null;for(var u=s.slice().sort((function(e,i){var r=t.work.observers[e].position.clone().setY(n.y),o=t.work.observers[i].position.clone().setY(n.y);return r.distanceTo(n)-o.distanceTo(n)})),c=0,l=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];c<l.length;c++)for(var h=l[c],d=0,p=u;d<p.length;d++){var A=p[d],f=this.work.observers[A].position.clone().setY(n.y).sub(n);if(0!==f.length()&&a.angleTo(f)<h)return A}return null},i.prototype.onTapGesture=function(e){var i=this,n=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","tap",n,!0)){var o=this.relativeClientPosition(e.center),s=new r.Raycaster;if(s.setFromCamera(o,this.camera),!this.emit("wantsTapGesture",s,o)){this.emit("gesture","tap",n,!0),this.emit("tapGesture",s,o),this.interiaMovement=!1;var a=this.camera.getWorldDirection(new r.Vector3).setY(0),u=null,c=this.work.observers[this.currentPanoIndex];if(c){var l=c.accessibleNodes.filter((function(e){if(e===i.currentPanoIndex)return!1;var t=i.work.observers[e];return!(t.position.distanceTo(i.camera.position)>i.maxAccessibleDistance)&&(t.loadable||t.active)})),h=s.intersectObject(this.boundingMesh,!0)[0];if(h){var d=Tn(l,(function(e){var t=i.work.observers[e].standingPosition.clone();return t.clone().sub(i.camera.position).setY(0).angleTo(a)>Math.PI/2?1/0:t.distanceTo(h.point)}),!0),p=d[0];d[1]<this.panoTapTriggerRadius&&(u=p)}Re(u)&&(u=this.getForwardPanoIndexOrNot(s));for(var A=0,f=this.locationMotion.keyframes;A<f.length;A++){var M=f[A],g=this.panoResourceFromLocationMotionKeyframe(M);if(!(M.progress<this.locationMotion.progress)&&g.panoIndex===u){u=null;break}}if(this.emit("panoSelected",u),Re(u))!0===this.locationMotion.ended&&this.cameraBounce();else{var y=this.work.observers[u];if(y.active){for(var m={},v=Math.PI/6,N=Math.PI/12,D=new r.Vector3(0,1,0),w=y.position.clone().setY(0).sub(c.position.clone().setY(0)).normalize(),T=w.clone().applyAxisAngle(D,v),x=w.clone().applyAxisAngle(D,-v),E=[],j=[],z=[],I=0,b=y.accessibleNodes;I<b.length;I++){if((p=b[I])!==this.currentPanoIndex&&p!==u){var O=this.work.observers[p].position.clone().sub(y.position).setY(0);w.angleTo(O)<v?z.push(O):T.angleTo(O)<v?E.push(O):x.angleTo(O)<v&&j.push(O)}}var S=(z.length>0?z:t.__spreadArray(t.__spreadArray([],E,!0),j,!0)).slice().sort((function(e,t){return e.angleTo(w)-t.angleTo(w)}))[0];S&&S.angleTo(a)>N&&(m.longitude=Math.atan2(-S.x,-S.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(m.latitude=xn(0,this.minLatitude,this.maxLatitude)),this.emit("wantsMoveToPano",u,m,!0)}else this.panoMeshes[u]&&(this.panoMeshes[u].setDisabled(!1),this.panoMeshes[u].setLoading(!0))}}}}},i}(Zn),qr=["Panorama","DepthPanorama","Model"],Kr={Floorplan:Vn,Topview:Hn,Panorama:Or,VRPanorama:Ur,Model:Rr,DepthPanorama:Wr};function Zr(e){for(var t=0,i=qr;t<i.length;t++){var n=i[t];if("string"==typeof e){if(n===e)return!0}else if(e instanceof Fn&&e instanceof Kr[n])return!0}return!1}var Xr=["cameraDirectionUpdate","cameraUpdate","cameraPositionUpdate","panoSelected","moveToPano","moveToPanoCanceled","panoWillArrive","movingToPano","panoArrived","panoWillLoad","panoLoaded","panoLoadError","initAnimationEnded","initAnimationWillStart","wantsGesture","gesture","wantsTapGesture","tapGesture","wantsPanGesture","wantsInteriaPan","panGesture","interiaPan","wantsPinchGesture","pinchGesture","wantsMouseWheel","mouseWheel","wantsShowIntersectionOnModel","intersectionOnModelUpdate","intersectionHidden","textureStartLoad","textureLoading","textureAbort","textureLoaded","textureError"];function Jr(e){for(var t,i,n={},r=0,o=e.split(/(\;|\,)/);r<o.length;r++){var s=o[r].split("="),a=null===(t=s[0])||void 0===t?void 0:t.trim(),u=null===(i=s[1])||void 0===i?void 0:i.trim();a&&u&&(n[a]=u)}return n}function $r(){for(var e,t=document.getElementsByTagName("meta"),i=0;i<t.length;i++){var n=t[i];if("viewport"===n.getAttribute("name")){var r=Jr(null!==(e=n.getAttribute("content"))&&void 0!==e?e:""),o=Number(r["initial-scale"]);if(!isNaN(o))return o}}return 1}var eo=[351,63],to=[20,20],io=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),no=new Float32Array([0,0,1,0,0,1,1,1]),ro=new Uint8Array([0,1,2,1,3,2]),oo=new r.BufferGeometry;oo.setAttribute("position",new r.BufferAttribute(io,3)),oo.setAttribute("uv",new r.BufferAttribute(no,2)),oo.setIndex(new r.BufferAttribute(ro,1));var so=new r.MeshBasicMaterial({transparent:!0,depthTest:!1}),ao=new r.Mesh(oo,so),uo=new r.Scene;uo.add(ao);var co=new r.OrthographicCamera(-.5,.5,.5,-.5,.1,1);co.position.set(0,0,.5),co.lookAt(0,0,0);var lo=new r.Vector4,ho=new r.Vector4;function po(e){if(so.map){var t=e.getViewport(lo),i=e.getScissor(ho),n=e.getScissorTest(),o=e.autoClear;e.setViewport(i.x+to[0]/3,i.y+to[1]/3,eo[0]/3,eo[1]/3),e.setScissor(i.x+to[0]/3,i.y+to[1]/3,eo[0]/3,eo[1]/3),e.setScissorTest(!0),e.autoClear=!1,e.render(uo,co),e.setViewport(t),e.setScissor(i),e.setScissorTest(n),e.autoClear=o}else{var s=new r.Texture,a=new Image;a.onload=function(){s.image=a,s.wrapS=r.ClampToEdgeWrapping,s.wrapT=r.ClampToEdgeWrapping,s.minFilter=r.LinearFilter,s.needsUpdate=!0,so.needsUpdate=!0,a.onload=function(){}},a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR+0lEQVR4AezYg3LEQACH8d1cbdu23Q5qG9G47z/TN/h6tn2b/H+TUTLc7yjcOXV46OUAnUs6EbUp022ZBXc1NhoZYYd7fjDRvdcHAwrlK2QBVJ4sgoqONmY45RUT23sZ6H42F2hK5CtkMbjhZlDmUUcvq1zyieUVyjbE4I1GBfItwxG56YaUZTQwyh4P6NgJ4YYYvCuQb5kOyI03pORjiqe4Lwpq5pt1vJqfUwKWJVbSMYfppYconG+maNNQOWBZuwHTzicGel75NtFOkxr5apmV8cikcko0DrDQs863AeGl0cE0+1xy573m0/wf0cEKW6H7BWtggiMG8sy3oHRDpJMw4NWb6am/bv9znkqEzjd61t5oo5clTrjhwevO75EJRBKSRt745Z16ZEjcM73sccZplBPm8PyTcxZAkSRdHm/acJ0Z3JZhHB0BxqDHgWFZFmm0ZbCw87twI/zc3e/Cz93vPneXtU/WdQS3oTviXdY/q5PsJKfoGuQjZuO/0in1qsj85cuXrxqeAOJpGqdJOqrUutgVl2Qb0BWqp/RE8AWWVB7t2KrIzY2Wx2fWKl7yfswgxqj8lYummYa3hfwF9MuQRmbfQE4ocPDjtUWQ6Tq1M2w7gC2EcrMGtWS6xlpGKEDDcb1vUQ25zT4lrC2s0dU4gFPppKkbeIYr7NMpqjStuFg5rNU9epGyt8PXyfX4DE1bKLhR/1XPxwJhp5DAV67T9ZPwFdovhBMIGUYoRBN4wim6S3eoXVEHXdLgmwY0x6BQnO4xPJ0Ar5OVxhQF0L9UslRM4yaQQfQImnBegi8vhY2A1k6YLlrj61TwDdNQnIISwiPvpD7TwYQTssZXK47vg8y9Gp2nxRcATkozOEmdCeObSt3IIo+xf/00IDRKAaZ89PBTkHqpkA5LagKeNZKlIhqX8RcQ95GHtdYA62Y6rOg5LLsOSnoyvk4V38hFhytef+V9/3DER1P48W89o1GxE9o5vns2Mk+F7yiftafEN4nhmUv9DKEeyqI0U+l0CQg+B//sZ5+6lOuqKaTgm0LH41RHw/CsLZRk4huiYxrvP2SNr1OSS+Dr1ulBMR+K9SqHa58Oec49VgL3mXHvDr7QfuM7LMNrH1/IS30Moe64SLYBuFVJ+MbnJY7L+GrVQkFcl4ISx/fEll4ZWnz18DpcSzUCX602LqD9svDLzmdaLkP28P1+VsJjsx/4hmh6x/gmm/i6pbrGneCL9iCOg0dQUvF1UwEdVvG19r2uTXxXLz0J37eLjfZoF++tTtPnU/cWp5e8n3An0m/G+U7qjiy4PpHyV16HKx5flCxAV/H9A88nUnZ7l7KN78SBxPcQgzLAepxEScU3l7pZ6fL2+Dot8fXECfj+QRoGYAwlAfBSPrXQXQri0Pd85NJKcVw8XUdt1LZapk7YRhO1RdpmFJwW8ozekYvx2/fjM5Hr5MfQ95HvcY2a/9hoNK4yEntL+dEuGseTdNmxIPqd5v2YRjeaX8pQ8IW2ohuP7+dTN87RMK4aitx8XPsH0r2oBqNRqrv7+gmjjY7uIr6TBxBfL2MlxNRKSVp8S5CTuGgHXxfkFvh69Pq3LD4pkkd2bdRvHaSNC3/l2sQXAccdlIS+lc57qhPJwxPybT7XSxnUrdqnXuHlJHS+mjZfJfUZR9s2FuQR+EQKdSi9Am8UTnsEvlYS+L6TFwW6kl74Vjr6AFHsX89rgg8njRltK0XPOL7NyDL0IurV4VtMwafB1709vu9X4OjWHoP3z1Ii7eaQdG00Lx5n8HXyDSva/dU0Pq2vZnKYxHYMYRo1WY5ov1G7Vh4r3y+kMdgbilxeOrV0aqOFenFl8GGJig7rG0bbPRqiSRpP2AL0w+yon9dHbi43zFetnKcuw9ZLeSa+7kTw/TDfuFu0Z7Vp/uhyHfPkAZ5ufP9wLIfD49E3clR818rR089Lzyy+VRREPneICnYLX9cT8PVKQs36TbQ3i6NcCwYkxEAQ3phN4CjAvC4mFr5vrlKe7AizBKj8cu33s7i9GbeY7BHYujTjjd3Bx54SSyT4m8mxOoYOAGX/DtwvnGE1M+5v5Bgt1hbkJRW9Cxv9X81GL2i5jqaoJ4avBcCsLYp+Ru+VC5sWPpFhXt8/EPvJL2F/alJDEeIjUhcrP5P45rDeATPj+wKl7gBf1fcq+HpVnfHO1vEf//UCHgt/OxfDE3onj5UkfTaThrg3NCGoBUCtZjvgMnwQB0bG5XENeraJ5XEWvtiHkqSVRqN+uQ4lEx2o+69SeY1dC++Wcsj+LCW+H0ZE4KtDWHkGwCtrxstbFqr51e9wbz42E2fpjRQsqEn50PnM4eumO9IbujCi393Hd+3q72TI+p9DPyyfraF+c3rOx0KJyB2z7Fa1yCO8HoHzlDFhPiWD8XoB3aPppRrUQdRp1D8qE9exdgr+Zbpqf8BLfmZ/bMYbh87k58VCSswCjQoLPPw4Jnp4uFi/YQlfKB5eBd/gr6aqB973zbDAF+v5PN+NZEvm+84bSkhxUPE9C9wqbeJ7Hi+gA9Jr5ZM7x9el4mulyK0Bb2xiMTj3/iBtK77Tnii27H/MlCfsjcJY+2oTg2/U4TYWQERE0r+aCouBcx5zEZzEYrqui8JXsQW/X8FLHJ3IVbWXhQV3zAJCjFQst1F25y1arlXwhRR4Bb4rZ3VPy5d+bHEtHIPF27K16ItYuKXM5kHD10M9DKFeSpbqLlOYAlRiC99yCiDmbUf0206jPPO7b/iud71avBkHf+kQP0OrWHBFrhmt75ZyPzbLg5KmWK9oH4Oq1eFZOm0c6n48mdfer46HcLUZU3pGB8R9IDBbJ+N7v1q0J2xhudZ45tcL8PN16vq9WizwtRLwFQtKER+NDypj4QQOdJNY3NC7GEsaGtiSmDsA+CZhyx+hXFHjYrgGGXpZNvDNpn5gWWuiWkUtyEB0UcrO8Y2L9KI9K+cXLmxqruGd6pcKfycj/ij3URVgu6bPUaycN1qXTHD+KoOmjGORnH57q8rh+e9sTHk5r1+7zpEXk36bp7iiXRrBW61e5k/D0fn+EXF/OxYEypFW3ZH1HzPt4Pv5PN2Rd7VJLDZeboGnbpSPwPDcBw5f6AIysadFOR9Hr7vksoFvE91jdbdYvzpYqyIvdQPU87uKL45u3u213CA8qkYPT6H1YgwIfkz7RI5xJdomfjoV4PXjfjgaRkNGhHwG1mNt1oq0y/j+SaZ5pV0LnrlG89Dl1YkmEsc3nKKzMKskJD+fx6NhlFiohdTe5EsZIig5WPgWUYCC9Dx5TG/sA5x15LCBbzXDtx/+uh74VmMZjLDamh8JvhzQtSsoeVTNNXB/Euv96LRR/qjO+By5xTxxJ683/FB00Pj0fZz9F2GPa70Ld2hbbVptWmjWabbGCl/ZAiTsbJa5hQ9OK/eWFE4xva9nG3z1zwCtnFXjYr6c3ykxPn9QiYWEWPhA4uuiDnzBpt4EMcg0QOm28M0gP76hJuELbIdZi4PqaILpJI+RYz4ZV42y+q49wBcxIbyXTmtXgevRWPl3MmjSSJU5vB3J0TA2Uu8mtP+R5/Au4iiF6NrUUiuCieOiJpnJq8gSXzwFLFiLP8X6bV0bYvzt8TXj75eLtKPRauY1RM1HR7GwEHpFbonIWAPwjxpfqJSCyBVUsk/DFOChhC18kyiPHFvwdVGh6XFbmfLx+RRi4jaqYiCnUDO1wc4u4ovo7pfS+XFD32e9GzndwxJiHcbQ/Vz6JrBMDGYyYK5l7YOsfkS2MVePfGkLsNXLGl9hIVbWXAv9fQ5i/j6UFL1RaQffB9qlwn3tS4WxMhaxETCMz6T9ZTqCk5FznoOKL9SEXMMIUwAZW6dNfCEVX61azdxwmIbg4aHdwtcj5KVBeNiqrb2+g5M8hTskSB6exHZ5bMEIF/wCoOT128zvdXziMLbvuDu/Usmh0oG7doMmafKNSmt8hQWUnmzhjJf/RskXCzQL8aYNfLG/QPGLY5KjKtcuNPGsyGytmj0/kPi6qdXwwJCPvOTYI3zTaICCNEh9FGSWM54OX4+A1UI80RV98czWKceJf65ervsleJm164/7ganACHHn+IPz8Nby1ptcnRztRWbipArvp4/gRchodbIFvsBSWPBaW+CHtzWfauFfcmnKRuyr+Fiu1WbzGKtCPWWMHjIgU1/Mgn2B74GKfbkajHwtVIHy3uBbh0Ocj9oplCC+kIJvYuKvI9bbkUUQ2+JaG7AeknwvhLd0YUxx+SZIf4XkGeqHUCNt9N8sQdvYlwtl9H4hMzqI5dHosMIX2taCl2s6LRowaubPyld/IgcvHBJPnKGnHDLh0ArfqzlYtkv5D8++4RsAvPbwTaJzgDcIDzxIRXuEbx4NIsYupjt7gi/6idL3j1AIqPY+OPH5PGO67x/jUS9NvF6hTte7x2kaCvtSZJiMlxjxMSqEtqXr3GPMn/9y4cXUypS/ymPxbIAvmurtYl9o7dqmBV9KdbLOgsik4B3d6xW/lO7w/kfe+yfx7bFuGkwY3/C6sURDj8584rCxJH5QtnYFVrFQVL35HNoQgO0jvt228XVRC4WQPLtANyiEzb1gD/BNoy5kHa5QEnUmiq/uG2fubeXh+kwuNj8IRxAoOqiLIqfTaNw84SfLWsDmqo08k30prHVKbHuYDo7ez6U7EsLX0oJX1ltV2AOg2KfoMPPA/sTx/ZPMqF9YiN11AsHLFrHgaAT3GBvw7hO+U9TH4bX10rgVx7YgMr0p7Pow4tL8XcY3l1kJMfVQmsA3fa/wFQh3JK9eivtV+tCaD4cUjdZvIRI9BfDUDd6PkkbfKhVbOJf/jUpuQcXXlgVNv68ejr4gTflk5AZ71+jR4AvEdPg6PDNpaz6a2AQm2otoWKvVS+LVTyL4OnaE7wSNUjfdpnZb+KbQdcA7Jr5ek0od8MD9dNjiN43t4etk1v0ITfyw6gS+Q4l5XwGwbXli+u/sj6pWGu9XfyYXx75d18+lf6t0tnau/pXKv8+xzorIkltn0l4r2dYCXlO8XDRbu9xw/9g/Zko2FXSFtKPxOxn3q+caluteK5lJsboXwVP/S27cPVz28X3i3/Ll/v8eDVMPDmzwvDbwddMt+NoROhq3yXcC4D7KpmTyA+XnqEzSFQrawDeLrsNemHrEL2+24r7NlENZUMa2vyxkH2DIs628e669ubdsR4VXC7C9u79eIVJtOwgdgO/dOICHGK6jQHaIwdXN4Lwt0LWHr4d6kX8tV+ozqAs+uYCSmO2w+jd4zGNeUYL4nqZxeN5WKVgooSAClmEaYhqhdit89QC7niSbCEM2sdkBuHYxQg9ri5ZjkuhI6DMP+J7cTvEtokEx0aPscyddoFJKpSZqV7G1GTxcpmEthpnw5058c6GfwqpwzGOtGjXSJI3FLYhc+O+jSr9aGhPWQlRshS8AticLX7wnsgbXxt6gsWCpRBa0vRGQM8oB9dhmP3QAwFX4c079dJNq6Qi5xbuyTmpPSJ1Ur4UtF7GoTtmUL3zxaWqMU8P/k3cXSQ1EQRjHGdzdHTa4u7tzBs7CedhykNwF2/5jq56iU11db6Lv2yTj8hs3JoiU9sZZp5/62J5v1z9NjrDHaSbnbFMf52sHrDUVaidDxNG0o9+uLjfosfdb3jT5d5j757riJgst9NIZQ2Pn+ySZll80vjI6Wz/hQJG4vPG0L/H6poQch/dW3vL3B0u8jl0HvVj5PvHCElEF8DUAFikVYTcvmfBdDzQlvvMXSV5lP5zrXj/fJ54zuWaeeuoqkW8AwCIaqeTZKkmYrpPwR2eqN9X72W7EG57vU67OBeuMV8KXLUzv93UTTj42tvaFS++GVsc5JRyLSLJ8nzO555hFBmiSRCqMr4GwrcmGkib5xSvcwmzFK6e8s7DMa2xH4YZdZumSOwsVzFeBWdr37tpIhOpSwXqONNgZq/2KgvBt54znHN1HzlljTO4oVD5fb+prNIJXQNL1ofDKQisbPLJDv3jNSLq9OkYBEIihKIj3v7S1TRQCX5Kdl1ZQlol7LF+E++fwirfiq2sf4cTXxc6hzxffPuLEeqSWrPGWMF58TWr5viyJAP5/4EV4KePiaSE8eNRgjDy8/tyRW+FZjhS+2tlovNJovtJovNJ0uhK6Wo64SDdxEbM//KesjwAAAABJRU5ErkJggg==",so.map=s}}var Ao=new r.Box3(new r.Vector3(-50,-50,-50),new r.Vector3(50,50,50)),fo=new r.Vector2,Mo=new r.Frustum,go=new r.Matrix4,yo=new r.Clock,mo=new WeakMap,vo=function(e){function i(i){var n,o,s,a,u,c,l,h,d,p,A,f,M,g,y,m;void 0===i&&(i={});var v=e.call(this)||this;if(v.ident=Fe(),v.panoIndex=0,v.needsRender=!1,v.onlyRenderIfNeeds=null===(n=i.onlyRenderIfNeeds)||void 0===n||n,v.imageOptions=t.__assign({},null!==(o=i.imageOptions)&&void 0!==o?o:{}),v.textureOptions=t.__assign({},null!==(s=i.textureOptions)&&void 0!==s?s:{}),v.poweredByRealsee=null===(a=i.poweredByRealsee)||void 0===a||a,v.extraElements=[],v.controllerInits={Panorama:null!==(u=i.panorama)&&void 0!==u?u:{},Model:null!==(c=i.model)&&void 0!==c?c:{},Floorplan:null!==(l=i.floorplan)&&void 0!==l?l:{},Topview:null!==(h=i.topview)&&void 0!==h?h:{},DepthPanorama:null!==(d=i.depthPanorama)&&void 0!==d?d:{},VRPanorama:null!==(p=i.vrPanorama)&&void 0!==p?p:{}},v.fps={testCount:0,testTime:He()},v.modeChangeDuration=null!==(A=i.modeChangeDuration)&&void 0!==A?A:1e3,v.panoramaLikeSavedPose={},"undefined"!=typeof window)if(i.renderer)i.renderer instanceof Ue&&v.throwError(new Error("cannot render a internal renderer")),v.renderer=i.renderer;else try{v.renderer=new Ue({preserveDrawingBuffer:i.preserveDrawingBuffer,backgroundColor:i.backgroundColor,backgroundAlpha:i.backgroundAlpha,antialias:i.antialias});var N=$r();v.renderer.setPixelRatio(1===N?window.devicePixelRatio:1),v.renderer.setSize(512,512)}catch(e){e instanceof Error&&v.throwError(e)}v.getPixelsRenderTarget=new r.WebGLRenderTarget(1,1,{encoding:null!==(M=null===(f=v.renderer)||void 0===f?void 0:f.outputEncoding)&&void 0!==M?M:r.sRGBEncoding}),v.scissor=Object.assign({left:0,bottom:0,width:1,height:1},i.scissor),v.camera=new Be(80),v.scene=new _e,v.lastLoadWorkTask=Promise.resolve(),v.networkSubscribe=new kt,v.networkSubscribe.on("network",(function(e,t,i,n){var r;v.emit("network",e,t,i,n),null===(r=v.analysis)||void 0===r||r.network(v.work,e,t,i,n)})),v.model=new Xi({allowHosts:[],networkSubscribe:v.networkSubscribe});var D=at(Ao);if(v.model.add(D),v.model.name="model_empty",v.model.empty=!0,v.model.loaded=!1,v.model.visible=!1,v.readyCallbacks=[],v.modelPending=!1,v.syncingState=!1,v.scene.add(v.model),v.helperGroup=new r.Group,v.helperGroup.name="helper",v.scene.add(v.helperGroup),v.videoTexture=new r.VideoTexture(i.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),v.plugins={},i.plugins)for(var w=0,T=i.plugins;w<T.length;w++){var x=T[w];if("function"==typeof x)x(v);else if(Array.isArray(x)){var E=x[0],j=x[1],z=x[2],I=E(v,z);"string"==typeof j&&(v.plugins[j]&&v.throwError(new Error("plugin name "+j+" is exists.")),v.plugins[j]=I)}}return function(e){(t=new r.DirectionalLight(16777215,.5)).position.copy(new r.Vector3(1,1,1)),e.add(t);var t=new r.DirectionalLight(16777215,.3);e.add(t),t=new r.AmbientLight(16777215,.3),e.add(t)}(v.scene),v.state={mode:null!==(g=v.currentMode)&&void 0!==g?g:"Panorama",panoIndex:null!==(y=v.panoIndex)&&void 0!==y?y:0,longitude:v.camera.pose.longitude,latitude:v.camera.pose.latitude,fov:v.camera.pose.fov,offset:v.camera.pose.offset.clone()},v.stateSynced=!1,v._enableIOSEDR=!0,v.destroyed=!1,v.paused=!0,"undefined"!=typeof window&&(!1!==i.play&&v.play(),!1!==(null!==(m=i.initialBasisLoader)&&void 0!==m&&m)&&("string"==typeof i.initialBasisLoader?v.initBasisLoader(i.initialBasisLoader):v.initBasisLoader()),v.stopAnimationLoop=We.shared.add((function(e,t){v.updateTime(e,t)}),!1,0,10)),v}return t.__extends(i,e),i.prototype.dispose=function(){var e;if(!0!==this.destroyed){this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var t=this.getElement();t&&t.parentNode&&t.parentNode.removeChild(t),this.scene.remove(this.model);var i=this.model.getMaterial();i&&(i.pano0&&i.pano0.map.dispose(),i.pano1&&i.pano1.map!==(null===(e=i.pano0)||void 0===e?void 0:e.map)&&i.pano1.map.dispose()),this.renderer instanceof Ue&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},i.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize()},Object.defineProperty(i.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpersVisibleChange",e),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR=e,this.currentMode&&this.changeMode(this.currentMode,{},0,!1,!0)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"enablePostProcessing",{get:function(){return void 0!==this.screenBuffer},set:function(e){var t,i;if(e){if(!this.screenBuffer){var n=this.getDrawingBufferSize(fo);this.screenBuffer=new r.WebGLRenderTarget(n.x,n.y,{encoding:null!==(i=null===(t=this.renderer)||void 0===t?void 0:t.outputEncoding)&&void 0!==i?i:r.sRGBEncoding})}}else this.screenBuffer&&(this.screenBuffer.dispose(),delete this.screenBuffer);this.needsRender=!0},enumerable:!1,configurable:!0}),i.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof Ue){var i=this.getElement();if(i){e.appendChild(i),this.refresh(t);var n=window.getComputedStyle(e).position;"relative"!==n&&"absolute"!==n&&"fixed"!==n&&"sticky"!==n&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},i.prototype.refresh=function(e,t){if(void 0===e&&(e={}),this.renderer){var i=this.getElement();if(i){var n=i.parentNode;if(n&&n.nodeName){var o=e.width,s=void 0===o?n.offsetWidth:o,a=e.height,u=void 0===a?n.offsetHeight:a;this.renderer instanceof Ue&&(t&&this.renderer.setPixelRatio(t),this.renderer.setSize(s,u))}var c=this.renderer.getSize(new r.Vector2);this.camera.aspect=c.x/c.y,this.scissor&&(this.camera.aspect*=this.scissor.width/this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(),this.needsRender=!0}}},i.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},i.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},i.prototype.getPose=function(){var e=this.camera.copyPose();return{longitude:e.longitude,latitude:e.latitude,fov:e.fov,offset:e.offset}},i.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},i.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},i.prototype.updateCamera=function(e,t,i){return void 0===i&&(i=!0),this.controller?this.controller.updateCamera(e,t,i):Promise.reject(new Error("controller is not initialized."))},i.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},i.prototype.getOffset=function(){return this.getPose().offset},i.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var e=this.work.observers[this.panoIndex],t=new r.Object3D;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.set(1,1,1),t.updateMatrixWorld(!0),function(e,t){var i=new r.Vector3(0,0,-1);i.applyQuaternion(e.quaternion);var n=t.quaternion.clone().inverse();return i.applyQuaternion(n),{theta:Math.atan2(i.x,-i.z),phi:-Math.asin(i.y),lookAtVector:i}}(this.camera,t)}},i.prototype.initBasisLoader=function(e){try{if(!this.renderer)throw new Error("renderer is not initialized.");if("undefined"==typeof Promise||"undefined"==typeof WeakMap||"undefined"==typeof WebAssembly)throw new Error("Basis loader not support.");"string"==typeof e&&wi.setTranscoderPath(e),wi.workerConfig.format||wi.detectSupport(this.renderer),wi._allocateWorker(0)}catch(e){e instanceof Error&&this.throwError(e)}},Object.defineProperty(i.prototype,"work",{get:function(){var e=mo.get(this);if(e&&An.get(e))return e},enumerable:!1,configurable:!0}),i.prototype.load=function(e,t,i,n){var r=this;if(void 0===n&&(n=!0),!this.renderer)throw new Error("renderer is not initialized");var o=this.lastLoadWorkTask.then((function(){return!(o=e)||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then?r.load_(e,t,i,n):e.then((function(e){return r.load_(e,t,i,n)}));var o}));return this.lastLoadWorkTask=o.catch((function(e){r.throwError(e)})),o},i.prototype.load_=function(e,n,r,o){var s,a,u,c,l,h,d,p,A,f=this;void 0===o&&(o=!0);var M,g,y,m=Mn(e),v=this.work;void 0===n&&(n=v?"inherit":"initial"),"inherit"===n?(M="number"==typeof this.panoIndex&&m.observers[this.panoIndex]?this.panoIndex:m.initial.panoIndex,g=null!==(s=this.currentMode)&&void 0!==s?s:m.initial.mode,y={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===n?(g=null!==(a=this.currentMode)&&void 0!==a?a:m.initial.mode,M=m.initial.panoIndex,y=g===i.Mode.Panorama||g===i.Mode.DepthPanorama||g===i.Mode.Model||g===i.Mode.VRPanorama?{longitude:m.initial.longitude,latitude:m.initial.latitude,fov:m.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(M=null!==(u=n.panoIndex)&&void 0!==u?u:m.initial.panoIndex,g=null!==(l=null!==(c=n.mode)&&void 0!==c?c:this.currentMode)&&void 0!==l?l:"Panorama",y={longitude:null!==(h=n.longitude)&&void 0!==h?h:m.initial.longitude,latitude:null!==(d=n.latitude)&&void 0!==d?d:m.initial.latitude,fov:null!==(p=n.fov)&&void 0!==p?p:m.initial.fov}),this.emit("willLoad",e,m,{panoIndex:M,mode:g,longitude:y.longitude,latitude:y.latitude,fov:y.fov});var N=function(){var i;mo.set(f,m),f.panoIndex=M,f.panoramaLikeSavedPose.longitude=m.initial.longitude,f.panoramaLikeSavedPose.latitude=m.initial.latitude,f.panoramaLikeSavedPose.fov=m.initial.fov;var n=f.controller?null!=r?r:f.modeChangeDuration:0,s=t.__assign(t.__assign({initial:[M,y,n,o]},f.commonParams()),f.controllerInits[g]);f.controller?!1===f.controller.updateWork(m,M,y,n,!0)&&(f.controller.destroy(),f.controller=f.applyController(g,s)):f.controller=f.applyController(g,s),f.emit("load",e,m,{panoIndex:M,mode:g,longitude:y.longitude,latitude:y.latitude,fov:y.fov}),null===(i=f.analysis)||void 0===i||i.work(m)},D=function(e){var t,i;void 0===e&&(e=Qe),m.model&&((null===(t=null==v?void 0:v.model)||void 0===t?void 0:t.file)!==(null===(i=m.model)||void 0===i?void 0:i.file)?(f.emit("modelWillLoad",m.model),f.loadModel(m.model,m.allowHosts,e,!0)):e&&(!0===f.model.loaded?e():f.once("modelLoaded",(function(){return e()}))))};return g===i.Mode.Floorplan||g===i.Mode.Topview||g===i.Mode.Model?D((function(){N(),f.needsRender=!0})):(this.controller||(this.camera.setFromPose({distance:0,fov:m.initial.fov,longitude:m.initial.longitude,latitude:m.initial.latitude,offset:m.observers[m.initial.panoIndex].position}),this.needsRender=!0),N(),null===(A=this.controller)||void 0===A||A.once("panoLoaded",(function(){f.needsRender=!0,D()}))),this.ready().then((function(){f.emit("loaded",e,f.work)}))},i.prototype.changeMode=function(e,n,r,o,s){var a=this;if(void 0===n&&(n={}),void 0===r&&(r=this.modeChangeDuration),void 0===o&&(o=!0),void 0===s&&(s=!1),!this.renderer)throw new Error("renderer is not initialized.");return new Promise((function(u,c){if(!i.Mode.hasOwnProperty(e)){var l=new Error('mode "'+e+'" is not existed');return a.throwError(l),void c(l)}if((e===i.Mode.Floorplan||e===i.Mode.Topview||e===i.Mode.Model)&&(Re(a.model)||!0!==a.model.loaded)){l=new Error("model is not ready.");return a.throwError(l),void c(l)}if(Re(a.controller)){l=new Error("controller is not ready.");return a.throwError(l),void c(l)}var h=a.controller,d=a.currentMode,p=function(){var l,p,A,f;if(a.emit("wantsChangeMode",e,d))c(new Error("change mode canceled."));else{if(a.controller&&!1===s&&d===e)e===i.Mode.Panorama||e===i.Mode.DepthPanorama||e===i.Mode.Model||e===i.Mode.VRPanorama?"number"==typeof n.panoIndex&&n.panoIndex!==a.panoIndex?a.controller.moveToPano(null!==(p=null!==(l=n.panoIndex)&&void 0!==l?l:a.panoIndex)&&void 0!==p?p:0,t.__assign({duration:r},n),o):a.updateCamera(n,r,o).catch((function(){})):("number"==typeof n.panoIndex&&n.panoIndex!==a.panoIndex&&(a.panoIndex=n.panoIndex),a.updateCamera(n,r,o).catch((function(){})));else{h.destroy();var M=null!==(f=null!==(A=n.panoIndex)&&void 0!==A?A:a.panoIndex)&&void 0!==f?f:0,g=Zr(e)?a.panoramaLikeSavedPose:{};"number"!=typeof n.longitude&&"number"!=typeof n.latitude||(g.longitude=n.longitude,g.latitude=n.latitude),"number"==typeof n.fov&&(g.fov=n.fov);var y=t.__assign(t.__assign({initial:[M,g,r,o]},a.commonParams()),a.controllerInits[e]);a.saveControllerPose(h),a.controller=a.applyController(e,y);var m=Kr[e].initAnimationEndPose(y);a.emit("modeChange",e,d,M,m)}u()}};e===i.Mode.VRPanorama?("undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return p()})).catch((function(e){e instanceof Error&&(a.throwError(e),c(e))})):p()}))},i.prototype.getPixels=function(e,t,i,n,o){if(void 0===o&&(o=1),!this.renderer)throw new Error("renderer is not initialized.");var s=this.getPixelsRenderTarget,a=this.renderer.getSize(new r.Vector2);e=Math.min(Math.max(e,Math.floor(i/2)),Math.floor(a.x-i)),t=Math.min(Math.max(t,Math.floor(n/2)),Math.floor(a.y-n)),e*=o,t*=o,i*=o,n*=o,s.setSize(a.x*o,a.y*o),s.scissor.set(e,t,i,n),s.scissorTest=!0,this.renderer.setRenderTarget(s);var u=new Uint8Array(i*n*4);return this.controller?this.controller.render(yo.getDelta()):this.renderer.render(this.scene,this.camera),this.renderer.readRenderTargetPixels(s,e,t,i,n,u),this.renderer.setRenderTarget(null),s.setSize(1,1),s.scissor.set(0,0,0,0),s.scissorTest=!1,u},i.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},i.prototype.render=function(e,t){var i=this;if(void 0===t&&(t=!1),!this.renderer)return null;if(t){var n=this.renderer.getSize(new r.Vector2);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(n.x,n.y)}))}if(this.controller&&this.screenBuffer&&null===this.renderer.getRenderTarget()){var o=this.getDrawingBufferSize(fo);this.screenBuffer.setSize(o.x,o.y),this.renderer.setRenderTarget(this.screenBuffer),this.controller.render(yo.getDelta()),this.poweredByRealsee&&po(this.renderer),this.renderer.setRenderTarget(null);var s=Ji(this.renderer.getContext());return s&&this.throwError(s),e&&We.shared.add(e,!0),this.screenBuffer}return this.aroundScissor((function(){if(i.renderer){i.controller?i.controller.render(yo.getDelta()):i.renderer.render(i.scene,i.camera),i.poweredByRealsee&&po(i.renderer);var t=Ji(i.renderer.getContext());t&&i.throwError(t)}e&&We.shared.add(e,!0)})),null},i.prototype.updateTime=function(e,t){var i=this;if(!this.destroyed){this.syncingState=this.syncState(e,t),this.controller&&this.controller.updateTime(e,t),this.syncingState=!1;var n=new r.Vector2(512,512);this.renderer&&this.renderer.getSize(n);var o=[];if(go.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),Mo.setFromProjectionMatrix(go),this.scene.traverse((function(e){e.setResolution&&e.setResolution(n.x,n.y),e.mixer instanceof r.AnimationMixer&&e.mixer.update(yo.getDelta()),(e instanceof r.Mesh||e instanceof r.Line||e instanceof r.Points)&&(e instanceof r.ImmediateRenderObject||!e.frustumCulled||Mo.intersectsObject(e))&&o.push(e)})),this.renderer&&!1===this.paused){var s=void 0;if(!0!==this.onlyRenderIfNeeds)s=this.render();else{for(var a=0,u=o;a<u.length;a++){var c=u[a],l=function(e){!0===e.needsRender?(e.needsRender=!1,i.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(i.needsRender=!0)};l(c),c.traverseAncestors(l)}this.controller&&!0===this.controller.needsRender&&(this.controller.needsRender=!1,this.needsRender=!0),!1!==this.needsRender&&(s=this.render())}this.needsRender=!1,this.controller&&this.screenBuffer&&this.aroundScissor((function(){return i.controller.postProcessing(i.screenBuffer,yo.getDelta())})),this.hasListener("renderFrame")&&this.emit("renderFrame",void 0!==s)}this.hasListener("fps")&&(this.fps.testTime&&e-this.fps.testTime<1e3?this.fps.testCount++:(this.emit("fps",this.fps.testCount),this.fps.testTime=e,this.fps.testCount=0))}},i.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof Ue&&this.renderer.clear(!0,!0,!0)},i.prototype.play=function(){this.needsRender=!0,this.paused=!1},i.prototype.moveToPano=function(e,t,n){void 0===t&&(t={}),void 0===n&&(n=!0);var r=this,o=r.controller,s=r.currentMode,a=r.renderer;o?a?s===i.Mode.Floorplan||s===i.Mode.Topview?Re(e)||(this.panoIndex=e,this.changeMode(i.Mode.Panorama,t,void 0,n)):o.moveToPano(e,t,n):this.throwError(new Error("renderer is not initialized.")):this.throwError(new Error("controller is not initialized."))},i.prototype.preloadPano=function(e,i){var n=this;if(void 0===i&&(i=Qe),!this.work)return Promise.reject(new Error("work never loaded"));var r=this.work.observers[e],o=He();return Promise.all(["right","left","up","down","front","back"].map((function(i){var o=t.__assign({key:"cube."+e+"."+i,basisLoaderInitialized:wi.isInitialized()},Xt(n.imageOptions,["size","format","quality"])),s=r.images[i];return function(e,t){return void 0===t&&(t={}),e in Pt?Pt[e]:Pt[e]=new Promise((function(i,n){var r=document.createElement("link");r.href=e,r.rel="preload",r.as="fetch";var o=He(),s=document.head||document.getElementsByTagName("head")[0];s&&s.appendChild(r);var a=!1;r.onload=function(){var n;if(!0!==a){a=!0,i();var r=He(),s={source:e,requestTime:o,responseTime:r,costs:r-o,headers:{}};null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Link","preload",JSON.stringify(s))}},r.onerror=function(i){var r;if(!0!==a){a=!0;var o=new zt(e,"Link",0);n(o),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"Link","error",o.message)}}}))}(n.imageOptions.transform?n.imageOptions.transform(s,o):ti(s,o),{networkSubscribe:n.networkSubscribe})}))).then((function(){var e=He()-o;return i(e),e}))},i.prototype.project2d=function(e,t){if(void 0===t&&(t=!1),!this.renderer)return null;if(!1===this.model.empty&&t){var i=this.camera.position,n=e.clone().sub(i),o=new r.Raycaster(i,n.clone().normalize()),s=this.model.intersectRaycaster(o)[0];if(s&&s.distance+.01<n.length())return null}var a=e.clone().project(this.camera);if(Math.abs(a.z)>1)return null;var u=this.renderer.getSize(new r.Vector2),c=u.x*this.scissor.width,l=u.y*this.scissor.height,h=u.x*this.scissor.left+(a.x+1)/2*c,d=u.y*(1-this.scissor.bottom-this.scissor.height)+(1-a.y)/2*l;return new r.Vector2(h,d)},i.prototype.getRenderObjects=function(e){go.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),Mo.setFromProjectionMatrix(go),e||(e=this.scene);var t=[];return e.traverseVisible((function(e){(e instanceof r.Mesh||e instanceof r.Line||e instanceof r.Points)&&(e instanceof r.ImmediateRenderObject||!e.frustumCulled||Mo.intersectsObject(e))&&t.push(e)})),t},i.prototype.getCurrentState=function(){return t.__assign(t.__assign({},this.getPose()),{mode:this.currentMode||i.Mode.Panorama,panoIndex:this.panoIndex||0})},i.prototype.setState=function(e,n,o){var s,a,u,c,l,h,d,p;void 0===n&&(n=!1),void 0===o&&(o=!0),!(e=Object.assign({},e)).offset||e instanceof r.Vector3||(e.offset=new r.Vector3(e.offset.x,e.offset.y,e.offset.z));var A,f,M,g,y=null!==(s=e.panoIndex)&&void 0!==s?s:this.state.panoIndex,m=null!==(a=e.mode)&&void 0!==a?a:this.state.mode;if(this.work)if(this.work.observers[y])if(e.mode!==i.Mode.Floorplan&&e.mode!==i.Mode.Topview&&e.mode!==i.Mode.Model||!Re(this.model)&&!0===this.model.loaded){if(this.state.mode!==m){var v=void 0;v=Zr(this.state.mode)&&Zr(m)?t.__assign({},this.state):Zr(m)?t.__assign({},this.panoramaLikeSavedPose):t.__assign({},e),"number"==typeof e.longitude&&(v.longitude=e.longitude),"number"==typeof e.latitude&&(v.latitude=e.latitude),"number"==typeof e.fov&&(v.fov=e.fov);var N=t.__assign(t.__assign({initial:[y,v,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[m]),D=Kr[m].initAnimationEndPose(N);A=D.longitude,f=D.latitude,M=D.fov,g=D.offset}else A=null!==(u=e.longitude)&&void 0!==u?u:this.state.longitude,f=null!==(c=e.latitude)&&void 0!==c?c:this.state.latitude,M=null!==(l=e.fov)&&void 0!==l?l:this.state.fov,g=null!==(h=e.offset)&&void 0!==h?h:this.state.offset;var w={panoIndex:y,mode:m,longitude:A,latitude:f,fov:M,offset:g};this.emit("setState",w),Dn(this.state,w)||(Nn(this.state,w),this.controller&&(this.controller.userAction=o),n&&this.state.mode===w.mode&&(this.syncingState=this.syncState(He(),0,n),this.syncingState&&(null===(d=this.controller)||void 0===d||d.updateTime(He(),0),this.syncingState=!1)),this.emit("stateChange",this.state,o),null===(p=this.analysis)||void 0===p||p.state(this.work,this.state))}else this.throwError(new Error("model is not ready."));else this.throwError(new Error("panoIndex not found in work"));else this.throwError(new Error("work never load."))},i.prototype.aroundScissor=function(e){if(this.renderer){var t=new r.Vector2,i=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||0!==this.scissor.height;if(i){this.renderer.getSize(t);var n=Math.floor(t.x*this.scissor.left),o=Math.floor(t.y*this.scissor.bottom),s=Math.floor(t.x*this.scissor.width),a=Math.floor(t.y*this.scissor.height);this.renderer.setViewport(n,o,s,a),this.renderer.setScissor(n,o,s,a),this.renderer.setScissorTest(!0)}e(),i&&(this.renderer.setViewport(0,0,t.x,t.y),this.renderer.setScissor(0,0,t.x,t.y),this.renderer.setScissorTest(!1))}},i.prototype.syncState=function(e,t,n){void 0===n&&(n=!1);var o=this.stateSynced;if(this.stateSynced=!1,!this.controller)return!1;if(this.state.mode!==this.currentMode){var s={mode:this.state.mode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.changeMode(this.state.mode,s,this.modeChangeDuration,this.controller.userAction),!0}if(!1===this.controller.isReady())return!1;if(this.readyCallbacks.length){var a=this.currentMode;if(!(a===i.Mode.Floorplan||a===i.Mode.Topview||a===i.Mode.Model)||!this.modelPending)for(var u=void 0;u=this.readyCallbacks.shift();)u()}if(this.controller instanceof Kr.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var c={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,c,!1),!0}}else if(this.state.panoIndex!==this.panoIndex){c={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPano(this.state.panoIndex,c,!1),!0}if(this.controller instanceof Kr.Topview){var l=1,h=n?this.state.fov:rn(this.camera.pose.fov,this.state.fov,l),d=n?new r.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new r.Vector3(rn(this.camera.pose.offset.x,this.state.offset.x,.2),rn(this.camera.pose.offset.y,this.state.offset.y,.2),rn(this.camera.pose.offset.z,this.state.offset.z,.2));if(Math.abs(h-this.camera.pose.fov)>.001||d.distanceTo(this.camera.pose.offset)>.001)return this.controller.cameraMotion.set({fov:h},0).catch(Qe),this.controller.locationMotion.set({x:d.x,y:d.y,z:d.z},0).catch(Qe),!0}else{l=1;var p=Math.PI/45,A=(h=n?this.state.fov:rn(this.camera.pose.fov,this.state.fov,l),n?{longitude:this.state.longitude,latitude:this.state.latitude}:function(e,t,i){if(e.longitude===t.longitude&&e.latitude===t.latitude)return{longitude:t.longitude,latitude:t.latitude};var n=en(e.longitude),r=e.latitude,o=en(t.longitude),s=t.latitude;o-n>tn?n+=nn:n-o>tn&&(n-=nn);var a=i/Math.sqrt(Math.pow(o-n,2)+Math.pow(s-r,2));return a>=1?{longitude:t.longitude,latitude:t.latitude}:{longitude:n+(o-n)*a,latitude:r+(s-r)*a}}({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},p)),f=A.longitude,M=A.latitude;if(Math.abs(f-this.camera.pose.longitude)>.001||Math.abs(M-this.camera.pose.latitude)>.001||Math.abs(h-this.camera.pose.fov)>.001)return this.controller.cameraMotion.set({longitude:f,latitude:M,fov:h},0).catch(Qe),!0}return this.stateSynced=!0,!1===o&&this.emit("stateSynced",this.state),!1},i.prototype.ready=function(){var e=this;return new Promise((function(t){return e.readyCallbacks.push(t)}))},i.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},i.prototype.loadModel=function(e,t,n,r){var o=this,s=e.async||!1;this.emit("modelWillLoad",e);var a=new Xi({allowHosts:t,networkSubscribe:this.networkSubscribe});a.once("bvhLoaded",(function(){o.emit("modelBvhLoaded",a)})),a.once("geometryLoaded",(function(){o.emit("modelGeometryLoaded",a)})),a.on("error",(function(e){o.emit("modelLoadError",e,a),o.throwError(e),o.modelPending=!1})),a.on("shownFloorChange",(function(e,t){o.emit("modelShownFloorChange",e,t)})),a.once("loaded",(function(){var e;if(!o.destroyed){a.bounding.max.y-a.bounding.min.y<1.5&&(a.bounding.max.y=a.bounding.min.y+10);var t,r=o.model;r&&(r.show(),t=r.getMaterial()||{},o.scene.remove(r),r.dispose(),a.setTransparent(r.getTransparent())),o.model=Object.assign(a,{loaded:!0}),null===(e=o.controller)||void 0===e||e.updateModel(o.model),t&&o.model.setMaterial(t),r&&o.currentMode!==i.Mode.Panorama&&(s=!1);var u=function(){var e;null===(e=o.renderer)||void 0===e||e.compile(o.scene,o.camera),n(),o.emit("modelLoaded",a),o.emit("modelMaterialLoaded",a),a.buildBVH(),o.needsRender=!0,o.modelPending=!1};if(s){var c=[].concat(o.model.children);o.model.children.length=0;var l=at(Ao);l.name="uniformKeeper",l.visible=!1,l.setMaterial(t||{}),o.model.add(l),o.scene.add(o.model);var h=function(){Ft((function(){var e=c.shift();e?(o.model.setMaterial.call(e,o.model.getMaterial()||{}),o.model.add(e),null===o.model.shownFloor?o.model.show():o.model.show(o.model.shownFloor),We.shared.add(h,!0,2)):(o.model.remove(l),u())}))};h()}else r?(o.scene.add(o.model),u()):Ft((function(){o.scene.add(o.model),u()}))}})),this.modelPending=!0,a.load(e,this.textureOptions)},i.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,helper:this.helperGroup,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,enableIOSEDR:this._enableIOSEDR,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe}},i.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&Zr(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},i.prototype.applyController=function(e,n){var r=this;if(!this.renderer)throw new Error("renderer is not initialized.");var o=Kr[e];e===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(e===i.Mode.Floorplan||e===i.Mode.Topview||e===i.Mode.Model),this.currentMode=e;for(var s=new o(n),a=function(e){s.on(e,(function(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];var o=r.emit.apply(r,t.__spreadArray([e],i,!1));if(o)return!1}))},u=0,c=Xr;u<c.length;u++){a(c[u])}var l=Kr[e].initAnimationEndPose(n),h=n.initial[3],d={panoIndex:n.initial[0],mode:e,longitude:l.longitude,latitude:l.latitude,fov:l.fov,offset:l.offset};return Dn(this.state,d)||(Nn(this.state,d),this.emit("stateChange",this.state,h)),this.emit("currentStateChange",this.getCurrentState(),h),s.on("cameraUpdate",(function(i,n){var o;if(r.controller){var s=t.__assign(t.__assign({},r.controller.getTargetPose()),{panoIndex:r.panoIndex,mode:e});n&&!1===r.syncingState&&r.state.mode===s.mode&&!Dn(r.state,s)&&(Nn(r.state,s),r.emit("stateChange",r.state,n),null===(o=r.analysis)||void 0===o||o.state(r.work,r.state))}r.emit("currentStateChange",r.getCurrentState(),n)})),s.on("initAnimationWillStart",(function(i,n,o){var s,a=t.__assign(t.__assign({},n),{panoIndex:i,mode:e});o&&r.state.mode===a.mode&&!Dn(r.state,a)&&(Nn(r.state,a),r.emit("stateChange",r.state,o),null===(s=r.analysis)||void 0===s||s.state(r.work,r.state))})),s.on("initAnimationEnded",(function(i,n,o){var s,a=t.__assign(t.__assign({},n),{panoIndex:i,mode:e});o&&r.state.mode===a.mode&&!Dn(r.state,a)&&(Nn(r.state,a),r.emit("stateChange",r.state,o),null===(s=r.analysis)||void 0===s||s.state(r.work,r.state))})),s.on("panoWillArrive",(function(i,n,o){var s;r.panoIndex=i;var a=t.__assign(t.__assign({},n),{panoIndex:i,mode:e});o&&r.state.mode===a.mode&&!Dn(r.state,a)&&(Nn(r.state,a),r.emit("stateChange",r.state,o),null===(s=r.analysis)||void 0===s||s.state(r.work,r.state))})),s.on("panoArrived",(function(i,n,o){var s,a=t.__assign(t.__assign({},n),{panoIndex:i,mode:e});o&&r.state.mode===a.mode&&!Dn(r.state,a)&&(Nn(r.state,a),r.emit("stateChange",r.state,o),null===(s=r.analysis)||void 0===s||s.state(r.work,r.state))})),s.on("moveToPano",(function(e,t){r.emit("currentStateChange",r.getCurrentState(),t)})),s.on("wantsMoveToPano",(function(e,t,i){var n=r.emit("wantsMoveToPano",e,t,i);n||(n=r.emit("wantsToMoveToPano",e,t,i)),n||r.moveToPano(e,t,i)})),s.on("vrWantsToExit",(function(){r.currentMode===i.Mode.VRPanorama&&r.changeMode(i.Mode.Panorama)})),s.on("error",(function(e){return r.throwError(e)})),s},i.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama"},i.Line=null,i}(vt);exports.AnimationFrameLoop=We,exports.BVH=Mt,exports.BVHNode=pt,exports.BVHVector3=dt,exports.Camera=Be,exports.Five=vo,exports.InternalWebGLRenderer=Ue,exports.Model=Xi,exports.NetworkSubscribe=kt,exports.PBMContainer=Ke,exports.PBMGroup=Ze,exports.PBMMaterial=rt,exports.PBMMesh=qe,exports.PROXY_CONTROLLER_EVENT_NAMES=Xr,exports.Scene=_e,exports.Subscribe=vt,exports.defaultImageURLTransform=ti,exports.getViewportScale=$r,exports.parseWork=Mn;
451
+ !function(e,t){n.exports=t()}(0,(function(){var n,r=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},o=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}(),s=function(){function e(e,t){var i=[],n=!0,r=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(n=(s=a.next()).done)&&(i.push(s.value),!t||i.length!==t);n=!0);}catch(e){r=!0,o=e}finally{try{!n&&a.return&&a.return()}finally{if(r)throw o}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=.001,u=1,c=function(e,t){return"data:"+e+","+encodeURIComponent(t)},l=function(e,t,i){return e+(t-e)*i},h=function(){var e=/iPad|iPhone|iPod/.test(t.platform);return function(){return e}}(),d=function(){var e=-1!==t.userAgent.indexOf("Version")&&-1!==t.userAgent.indexOf("Android")&&-1!==t.userAgent.indexOf("Chrome");return function(){return e}}(),p=function(){var e=/^((?!chrome|android).)*safari/i.test(t.userAgent);return function(){return e}}(),A=function(){var e=-1!==t.userAgent.indexOf("Firefox")&&-1!==t.userAgent.indexOf("Android");return function(){return e}}(),f=function(){var e=t.userAgent.match(/.*Chrome\/([0-9]+)/),i=e?parseInt(e[1],10):null;return function(){return i}}(),M=function(){var e=!1;return e=h()&&p()&&-1!==t.userAgent.indexOf("13_4"),function(){return e}}(),g=function(){var e=!1;if(65===f()){var i=t.userAgent.match(/.*Chrome\/([0-9\.]*)/);if(i){var n=i[1].split("."),r=s(n,4);r[0],r[1];var o=r[2],a=r[3];e=3325===parseInt(o,10)&&parseInt(a,10)<148}}return function(){return e}}(),y=function(){var e=-1!==t.userAgent.indexOf("R7 Build");return function(){return e}}(),m=function(){var t=90==e.orientation||-90==e.orientation;return y()?!t:t},v=function(e){return!(isNaN(e)||e<=a||e>u)},N=function(){return Math.max(e.screen.width,e.screen.height)*e.devicePixelRatio},D=function(){return Math.min(e.screen.width,e.screen.height)*e.devicePixelRatio},w=function(e){if(d())return!1;if(e.requestFullscreen)e.requestFullscreen();else if(e.webkitRequestFullscreen)e.webkitRequestFullscreen();else if(e.mozRequestFullScreen)e.mozRequestFullScreen();else{if(!e.msRequestFullscreen)return!1;e.msRequestFullscreen()}return!0},T=function(){if(document.exitFullscreen)document.exitFullscreen();else if(document.webkitExitFullscreen)document.webkitExitFullscreen();else if(document.mozCancelFullScreen)document.mozCancelFullScreen();else{if(!document.msExitFullscreen)return!1;document.msExitFullscreen()}return!0},x=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},E=function(e,t,i,n){var r=e.createShader(e.VERTEX_SHADER);e.shaderSource(r,t),e.compileShader(r);var o=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(o,i),e.compileShader(o);var s=e.createProgram();for(var a in e.attachShader(s,r),e.attachShader(s,o),n)e.bindAttribLocation(s,n[a],a);return e.linkProgram(s),e.deleteShader(r),e.deleteShader(o),s},j=function(e,t){for(var i={},n=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),r="",o=0;o<n;o++)i[r=e.getActiveUniform(t,o).name.replace("[0]","")]=e.getUniformLocation(t,r);return i},z=function(e,t,i,n,r,o,s){var a=1/(t-i),u=1/(n-r),c=1/(o-s);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*u,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+i)*a,e[13]=(r+n)*u,e[14]=(s+o)*c,e[15]=1,e},I=function(){var i,n=!1;return i=t.userAgent||t.vendor||e.opera,(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(i)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(i.substr(0,4)))&&(n=!0),n},b=function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},O=function(t){if(h()){var i=t.style.width,n=t.style.height;t.style.width=parseInt(i)+1+"px",t.style.height=parseInt(n)+"px",setTimeout((function(){t.style.width=i,t.style.height=n}),100)}e.canvas=t},S=function(){var e=Math.PI/180,t=.25*Math.PI;function i(i,n,r,o){var s=Math.tan(n?n.upDegrees*e:t),a=Math.tan(n?n.downDegrees*e:t),u=Math.tan(n?n.leftDegrees*e:t),c=Math.tan(n?n.rightDegrees*e:t),l=2/(u+c),h=2/(s+a);return i[0]=l,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=h,i[6]=0,i[7]=0,i[8]=-(u-c)*l*.5,i[9]=(s-a)*h*.5,i[10]=o/(r-o),i[11]=-1,i[12]=0,i[13]=0,i[14]=o*r/(r-o),i[15]=0,i}function n(e,t,i){var n=t[0],r=t[1],o=t[2],s=t[3],a=n+n,u=r+r,c=o+o,l=n*a,h=n*u,d=n*c,p=r*u,A=r*c,f=o*c,M=s*a,g=s*u,y=s*c;return e[0]=1-(p+f),e[1]=h+y,e[2]=d-g,e[3]=0,e[4]=h-y,e[5]=1-(l+f),e[6]=A+M,e[7]=0,e[8]=d+g,e[9]=A-M,e[10]=1-(l+p),e[11]=0,e[12]=i[0],e[13]=i[1],e[14]=i[2],e[15]=1,e}function r(e,t,i){var n,r,o,s,a,u,c,l,h,d,p,A,f=i[0],M=i[1],g=i[2];return t===e?(e[12]=t[0]*f+t[4]*M+t[8]*g+t[12],e[13]=t[1]*f+t[5]*M+t[9]*g+t[13],e[14]=t[2]*f+t[6]*M+t[10]*g+t[14],e[15]=t[3]*f+t[7]*M+t[11]*g+t[15]):(n=t[0],r=t[1],o=t[2],s=t[3],a=t[4],u=t[5],c=t[6],l=t[7],h=t[8],d=t[9],p=t[10],A=t[11],e[0]=n,e[1]=r,e[2]=o,e[3]=s,e[4]=a,e[5]=u,e[6]=c,e[7]=l,e[8]=h,e[9]=d,e[10]=p,e[11]=A,e[12]=n*f+a*M+h*g+t[12],e[13]=r*f+u*M+d*g+t[13],e[14]=o*f+c*M+p*g+t[14],e[15]=s*f+l*M+A*g+t[15]),e}function o(e,t){var i=t[0],n=t[1],r=t[2],o=t[3],s=t[4],a=t[5],u=t[6],c=t[7],l=t[8],h=t[9],d=t[10],p=t[11],A=t[12],f=t[13],M=t[14],g=t[15],y=i*a-n*s,m=i*u-r*s,v=i*c-o*s,N=n*u-r*a,D=n*c-o*a,w=r*c-o*u,T=l*f-h*A,x=l*M-d*A,E=l*g-p*A,j=h*M-d*f,z=h*g-p*f,I=d*g-p*M,b=y*I-m*z+v*j+N*E-D*x+w*T;return b?(b=1/b,e[0]=(a*I-u*z+c*j)*b,e[1]=(r*z-n*I-o*j)*b,e[2]=(f*w-M*D+g*N)*b,e[3]=(d*D-h*w-p*N)*b,e[4]=(u*E-s*I-c*x)*b,e[5]=(i*I-r*E+o*x)*b,e[6]=(M*v-A*w-g*m)*b,e[7]=(l*w-d*v+p*m)*b,e[8]=(s*z-a*E+c*T)*b,e[9]=(n*E-i*z-o*T)*b,e[10]=(A*D-f*v+g*y)*b,e[11]=(h*v-l*D-p*y)*b,e[12]=(a*x-s*j-u*T)*b,e[13]=(i*j-n*x+r*T)*b,e[14]=(f*m-A*N-M*y)*b,e[15]=(l*N-h*m+d*y)*b,e):null}var s=new Float32Array([0,0,0,1]),a=new Float32Array([0,0,0]);function u(e,t,u,c,l,h){i(e,c||null,h.depthNear,h.depthFar),n(t,u.orientation||s,u.position||a),l&&r(t,t,l),o(t,t)}return function(e,t,i){return!(!e||!t||(e.pose=t,e.timestamp=t.timestamp,u(e.leftProjectionMatrix,e.leftViewMatrix,t,i._getFieldOfView("left"),i._getEyeOffset("left"),i),u(e.rightProjectionMatrix,e.rightViewMatrix,t,i._getFieldOfView("right"),i._getEyeOffset("right"),i),0))}}(),L=function(){var t=e.self!==e.top,i=k(document.referrer),n=k(e.location.href);return t&&i!==n},k=function(e){var t,i=e.indexOf("://");t=-1!==i?i+3:0;var n=e.indexOf("/",t);return-1===n&&(n=e.length),e.substring(0,n)},C=function(e){return e.w>1?(console.warn("getQuaternionAngle: w > 1"),0):2*Math.acos(e.w)},P=(n={},function(e,t){void 0===n[e]&&(console.warn("webvr-polyfill: "+t),n[e]=!0)}),_=function(e,t){P(e,e+" has been deprecated. This may not work on native WebVR displays. "+(t?"Please use "+t+" instead.":""))};function B(e,t,i){if(t){for(var n=[],r=null,o=0;o<t.length;++o)switch(s=t[o]){case e.TEXTURE_BINDING_2D:case e.TEXTURE_BINDING_CUBE_MAP:if((u=t[++o])<e.TEXTURE0||u>e.TEXTURE31){console.error("TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit"),n.push(null,null);break}r||(r=e.getParameter(e.ACTIVE_TEXTURE)),e.activeTexture(u),n.push(e.getParameter(s),null);break;case e.ACTIVE_TEXTURE:r=e.getParameter(e.ACTIVE_TEXTURE),n.push(null);break;default:n.push(e.getParameter(s))}for(i(e),o=0;o<t.length;++o){var s=t[o],a=n[o];switch(s){case e.ACTIVE_TEXTURE:break;case e.ARRAY_BUFFER_BINDING:e.bindBuffer(e.ARRAY_BUFFER,a);break;case e.COLOR_CLEAR_VALUE:e.clearColor(a[0],a[1],a[2],a[3]);break;case e.COLOR_WRITEMASK:e.colorMask(a[0],a[1],a[2],a[3]);break;case e.CURRENT_PROGRAM:e.useProgram(a);break;case e.ELEMENT_ARRAY_BUFFER_BINDING:e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,a);break;case e.FRAMEBUFFER_BINDING:e.bindFramebuffer(e.FRAMEBUFFER,a);break;case e.RENDERBUFFER_BINDING:e.bindRenderbuffer(e.RENDERBUFFER,a);break;case e.TEXTURE_BINDING_2D:if((u=t[++o])<e.TEXTURE0||u>e.TEXTURE31)break;e.activeTexture(u),e.bindTexture(e.TEXTURE_2D,a);break;case e.TEXTURE_BINDING_CUBE_MAP:var u;if((u=t[++o])<e.TEXTURE0||u>e.TEXTURE31)break;e.activeTexture(u),e.bindTexture(e.TEXTURE_CUBE_MAP,a);break;case e.VIEWPORT:e.viewport(a[0],a[1],a[2],a[3]);break;case e.BLEND:case e.CULL_FACE:case e.DEPTH_TEST:case e.SCISSOR_TEST:case e.STENCIL_TEST:a?e.enable(s):e.disable(s);break;default:console.log("No GL restore behavior for 0x"+s.toString(16))}r&&e.activeTexture(r)}}else i(e)}var U=B,R=["attribute vec2 position;","attribute vec3 texCoord;","varying vec2 vTexCoord;","uniform vec4 viewportOffsetScale[2];","void main() {"," vec4 viewport = viewportOffsetScale[int(texCoord.z)];"," vTexCoord = (texCoord.xy * viewport.zw) + viewport.xy;"," gl_Position = vec4( position, 1.0, 1.0 );","}"].join("\n"),Q=["precision mediump float;","uniform sampler2D diffuse;","varying vec2 vTexCoord;","void main() {"," gl_FragColor = texture2D(diffuse, vTexCoord);","}"].join("\n");function Y(e,t,i,n){this.gl=e,this.cardboardUI=t,this.bufferScale=i,this.dirtySubmitFrameBindings=n,this.ctxAttribs=e.getContextAttributes(),this.instanceExt=e.getExtension("ANGLE_instanced_arrays"),this.meshWidth=20,this.meshHeight=20,this.bufferWidth=e.drawingBufferWidth,this.bufferHeight=e.drawingBufferHeight,this.realBindFramebuffer=e.bindFramebuffer,this.realEnable=e.enable,this.realDisable=e.disable,this.realColorMask=e.colorMask,this.realClearColor=e.clearColor,this.realViewport=e.viewport,h()||(this.realCanvasWidth=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"width"),this.realCanvasHeight=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"height")),this.isPatched=!1,this.lastBoundFramebuffer=null,this.cullFace=!1,this.depthTest=!1,this.blend=!1,this.scissorTest=!1,this.stencilTest=!1,this.viewport=[0,0,0,0],this.colorMask=[!0,!0,!0,!0],this.clearColor=[0,0,0,0],this.attribs={position:0,texCoord:1},this.program=E(e,R,Q,this.attribs),this.uniforms=j(e,this.program),this.viewportOffsetScale=new Float32Array(8),this.setTextureBounds(),this.vertexBuffer=e.createBuffer(),this.indexBuffer=e.createBuffer(),this.indexCount=0,this.renderTarget=e.createTexture(),this.framebuffer=e.createFramebuffer(),this.depthStencilBuffer=null,this.depthBuffer=null,this.stencilBuffer=null,this.ctxAttribs.depth&&this.ctxAttribs.stencil?this.depthStencilBuffer=e.createRenderbuffer():this.ctxAttribs.depth?this.depthBuffer=e.createRenderbuffer():this.ctxAttribs.stencil&&(this.stencilBuffer=e.createRenderbuffer()),this.patch(),this.onResize()}Y.prototype.destroy=function(){var e=this.gl;this.unpatch(),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer),e.deleteBuffer(this.indexBuffer),e.deleteTexture(this.renderTarget),e.deleteFramebuffer(this.framebuffer),this.depthStencilBuffer&&e.deleteRenderbuffer(this.depthStencilBuffer),this.depthBuffer&&e.deleteRenderbuffer(this.depthBuffer),this.stencilBuffer&&e.deleteRenderbuffer(this.stencilBuffer),this.cardboardUI&&this.cardboardUI.destroy()},Y.prototype.onResize=function(){var e=this.gl,t=this,i=[e.RENDERBUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0];U(e,i,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.framebuffer),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.texImage2D(e.TEXTURE_2D,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,t.bufferWidth,t.bufferHeight,0,t.ctxAttribs.alpha?e.RGBA:e.RGB,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t.renderTarget,0),t.ctxAttribs.depth&&t.ctxAttribs.stencil?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t.depthStencilBuffer)):t.ctxAttribs.depth?(e.bindRenderbuffer(e.RENDERBUFFER,t.depthBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t.depthBuffer)):t.ctxAttribs.stencil&&(e.bindRenderbuffer(e.RENDERBUFFER,t.stencilBuffer),e.renderbufferStorage(e.RENDERBUFFER,e.STENCIL_INDEX8,t.bufferWidth,t.bufferHeight),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.STENCIL_ATTACHMENT,e.RENDERBUFFER,t.stencilBuffer)),!e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer incomplete!"),t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),t.realClearColor.apply(e,t.clearColor)})),this.cardboardUI&&this.cardboardUI.onResize()},Y.prototype.patch=function(){if(!this.isPatched){var e=this,t=this.gl.canvas,i=this.gl;h()||(t.width=N()*this.bufferScale,t.height=D()*this.bufferScale,Object.defineProperty(t,"width",{configurable:!0,enumerable:!0,get:function(){return e.bufferWidth},set:function(i){e.bufferWidth=i,e.realCanvasWidth.set.call(t,i),e.onResize()}}),Object.defineProperty(t,"height",{configurable:!0,enumerable:!0,get:function(){return e.bufferHeight},set:function(i){e.bufferHeight=i,e.realCanvasHeight.set.call(t,i),e.onResize()}})),this.lastBoundFramebuffer=i.getParameter(i.FRAMEBUFFER_BINDING),null==this.lastBoundFramebuffer&&(this.lastBoundFramebuffer=this.framebuffer,this.gl.bindFramebuffer(i.FRAMEBUFFER,this.framebuffer)),this.gl.bindFramebuffer=function(t,n){e.lastBoundFramebuffer=n||e.framebuffer,e.realBindFramebuffer.call(i,t,e.lastBoundFramebuffer)},this.cullFace=i.getParameter(i.CULL_FACE),this.depthTest=i.getParameter(i.DEPTH_TEST),this.blend=i.getParameter(i.BLEND),this.scissorTest=i.getParameter(i.SCISSOR_TEST),this.stencilTest=i.getParameter(i.STENCIL_TEST),i.enable=function(t){switch(t){case i.CULL_FACE:e.cullFace=!0;break;case i.DEPTH_TEST:e.depthTest=!0;break;case i.BLEND:e.blend=!0;break;case i.SCISSOR_TEST:e.scissorTest=!0;break;case i.STENCIL_TEST:e.stencilTest=!0}e.realEnable.call(i,t)},i.disable=function(t){switch(t){case i.CULL_FACE:e.cullFace=!1;break;case i.DEPTH_TEST:e.depthTest=!1;break;case i.BLEND:e.blend=!1;break;case i.SCISSOR_TEST:e.scissorTest=!1;break;case i.STENCIL_TEST:e.stencilTest=!1}e.realDisable.call(i,t)},this.colorMask=i.getParameter(i.COLOR_WRITEMASK),i.colorMask=function(t,n,r,o){e.colorMask[0]=t,e.colorMask[1]=n,e.colorMask[2]=r,e.colorMask[3]=o,e.realColorMask.call(i,t,n,r,o)},this.clearColor=i.getParameter(i.COLOR_CLEAR_VALUE),i.clearColor=function(t,n,r,o){e.clearColor[0]=t,e.clearColor[1]=n,e.clearColor[2]=r,e.clearColor[3]=o,e.realClearColor.call(i,t,n,r,o)},this.viewport=i.getParameter(i.VIEWPORT),i.viewport=function(t,n,r,o){e.viewport[0]=t,e.viewport[1]=n,e.viewport[2]=r,e.viewport[3]=o,e.realViewport.call(i,t,n,r,o)},this.isPatched=!0,O(t)}},Y.prototype.unpatch=function(){if(this.isPatched){var e=this.gl,t=this.gl.canvas;h()||(Object.defineProperty(t,"width",this.realCanvasWidth),Object.defineProperty(t,"height",this.realCanvasHeight)),t.width=this.bufferWidth,t.height=this.bufferHeight,e.bindFramebuffer=this.realBindFramebuffer,e.enable=this.realEnable,e.disable=this.realDisable,e.colorMask=this.realColorMask,e.clearColor=this.realClearColor,e.viewport=this.realViewport,this.lastBoundFramebuffer==this.framebuffer&&e.bindFramebuffer(e.FRAMEBUFFER,null),this.isPatched=!1,setTimeout((function(){O(t)}),1)}},Y.prototype.setTextureBounds=function(e,t){e||(e=[0,0,.5,1]),t||(t=[.5,0,.5,1]),this.viewportOffsetScale[0]=e[0],this.viewportOffsetScale[1]=e[1],this.viewportOffsetScale[2]=e[2],this.viewportOffsetScale[3]=e[3],this.viewportOffsetScale[4]=t[0],this.viewportOffsetScale[5]=t[1],this.viewportOffsetScale[6]=t[2],this.viewportOffsetScale[7]=t[3]},Y.prototype.submitFrame=function(){var e=this.gl,t=this,i=[];if(this.dirtySubmitFrameBindings||i.push(e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING,e.ELEMENT_ARRAY_BUFFER_BINDING,e.TEXTURE_BINDING_2D,e.TEXTURE0),U(e,i,(function(e){t.realBindFramebuffer.call(e,e.FRAMEBUFFER,null);var i=0,n=0;t.instanceExt&&(i=e.getVertexAttrib(t.attribs.position,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE),n=e.getVertexAttrib(t.attribs.texCoord,t.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE)),t.cullFace&&t.realDisable.call(e,e.CULL_FACE),t.depthTest&&t.realDisable.call(e,e.DEPTH_TEST),t.blend&&t.realDisable.call(e,e.BLEND),t.scissorTest&&t.realDisable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realDisable.call(e,e.STENCIL_TEST),t.realColorMask.call(e,!0,!0,!0,!0),t.realViewport.call(e,0,0,e.drawingBufferWidth,e.drawingBufferHeight),(t.ctxAttribs.alpha||h())&&(t.realClearColor.call(e,0,0,0,1),e.clear(e.COLOR_BUFFER_BIT)),e.useProgram(t.program),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t.indexBuffer),e.bindBuffer(e.ARRAY_BUFFER,t.vertexBuffer),e.enableVertexAttribArray(t.attribs.position),e.enableVertexAttribArray(t.attribs.texCoord),e.vertexAttribPointer(t.attribs.position,2,e.FLOAT,!1,20,0),e.vertexAttribPointer(t.attribs.texCoord,3,e.FLOAT,!1,20,8),t.instanceExt&&(0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,0),0!=n&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,0)),e.activeTexture(e.TEXTURE0),e.uniform1i(t.uniforms.diffuse,0),e.bindTexture(e.TEXTURE_2D,t.renderTarget),e.uniform4fv(t.uniforms.viewportOffsetScale,t.viewportOffsetScale),e.drawElements(e.TRIANGLES,t.indexCount,e.UNSIGNED_SHORT,0),t.cardboardUI&&t.cardboardUI.renderNoState(),t.realBindFramebuffer.call(t.gl,e.FRAMEBUFFER,t.framebuffer),t.ctxAttribs.preserveDrawingBuffer||(t.realClearColor.call(e,0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)),t.dirtySubmitFrameBindings||t.realBindFramebuffer.call(e,e.FRAMEBUFFER,t.lastBoundFramebuffer),t.cullFace&&t.realEnable.call(e,e.CULL_FACE),t.depthTest&&t.realEnable.call(e,e.DEPTH_TEST),t.blend&&t.realEnable.call(e,e.BLEND),t.scissorTest&&t.realEnable.call(e,e.SCISSOR_TEST),t.stencilTest&&t.realEnable.call(e,e.STENCIL_TEST),t.realColorMask.apply(e,t.colorMask),t.realViewport.apply(e,t.viewport),!t.ctxAttribs.alpha&&t.ctxAttribs.preserveDrawingBuffer||t.realClearColor.apply(e,t.clearColor),t.instanceExt&&(0!=i&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.position,i),0!=n&&t.instanceExt.vertexAttribDivisorANGLE(t.attribs.texCoord,n))})),h()){var n=e.canvas;n.width==t.bufferWidth&&n.height==t.bufferHeight||(t.bufferWidth=n.width,t.bufferHeight=n.height,t.onResize())}},Y.prototype.updateDeviceInfo=function(e){var t=this.gl,i=this,n=[t.ARRAY_BUFFER_BINDING,t.ELEMENT_ARRAY_BUFFER_BINDING];U(t,n,(function(t){var n=i.computeMeshVertices_(i.meshWidth,i.meshHeight,e);if(t.bindBuffer(t.ARRAY_BUFFER,i.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,n,t.STATIC_DRAW),!i.indexCount){var r=i.computeMeshIndices_(i.meshWidth,i.meshHeight);t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,i.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,r,t.STATIC_DRAW),i.indexCount=r.length}}))},Y.prototype.computeMeshVertices_=function(e,t,i){for(var n=new Float32Array(2*e*t*5),r=i.getLeftEyeVisibleTanAngles(),o=i.getLeftEyeNoLensTanAngles(),s=i.getLeftEyeVisibleScreenRect(o),a=0,u=0;u<2;u++){for(var c=0;c<t;c++)for(var h=0;h<e;h++,a++){var d=h/(e-1),p=c/(t-1),A=d,f=p,M=l(r[0],r[2],d),g=l(r[3],r[1],p),y=Math.sqrt(M*M+g*g),m=i.distortion.distortInverse(y),v=g*m/y;d=(M*m/y-o[0])/(o[2]-o[0]),p=(v-o[3])/(o[1]-o[3]),d=2*(s.x+d*s.width-.5),p=2*(s.y+p*s.height-.5),n[5*a+0]=d,n[5*a+1]=p,n[5*a+2]=A,n[5*a+3]=f,n[5*a+4]=u}var N=r[2]-r[0];r[0]=-(N+r[0]),r[2]=N-r[2],N=o[2]-o[0],o[0]=-(N+o[0]),o[2]=N-o[2],s.x=1-(s.x+s.width)}return n},Y.prototype.computeMeshIndices_=function(e,t){for(var i=new Uint16Array(2*(e-1)*(t-1)*6),n=e/2,r=t/2,o=0,s=0,a=0;a<2;a++)for(var u=0;u<t;u++)for(var c=0;c<e;c++,o++)0!=c&&0!=u&&(c<=n==u<=r?(i[s++]=o,i[s++]=o-e-1,i[s++]=o-e,i[s++]=o-e-1,i[s++]=o,i[s++]=o-1):(i[s++]=o-1,i[s++]=o-e,i[s++]=o,i[s++]=o-e,i[s++]=o-1,i[s++]=o-e-1));return i},Y.prototype.getOwnPropertyDescriptor_=function(e,t){var i=Object.getOwnPropertyDescriptor(e,t);return void 0!==i.get&&void 0!==i.set||(i.configurable=!0,i.enumerable=!0,i.get=function(){return this.getAttribute(t)},i.set=function(e){this.setAttribute(t,e)}),i};var F=["attribute vec2 position;","uniform mat4 projectionMat;","void main() {"," gl_Position = projectionMat * vec4( position, -1.0, 1.0 );","}"].join("\n"),V=["precision mediump float;","uniform vec4 color;","void main() {"," gl_FragColor = color;","}"].join("\n"),H=Math.PI/180,G=60,W=12,q=20,K=1,Z=.75,X=.3125,J=4,$=28,ee=1.5;function te(e){this.gl=e,this.attribs={position:0},this.program=E(e,F,V,this.attribs),this.uniforms=j(e,this.program),this.vertexBuffer=e.createBuffer(),this.gearOffset=0,this.gearVertexCount=0,this.arrowOffset=0,this.arrowVertexCount=0,this.projMat=new Float32Array(16),this.listener=null,this.onResize()}function ie(e){this.coefficients=e}te.prototype.destroy=function(){var e=this.gl;this.listener&&e.canvas.removeEventListener("click",this.listener,!1),e.deleteProgram(this.program),e.deleteBuffer(this.vertexBuffer)},te.prototype.listen=function(e,t){var i=this.gl.canvas;this.listener=function(n){var r=i.clientWidth/2,o=$*ee;n.clientX>r-o&&n.clientX<r+o&&n.clientY>i.clientHeight-o?e(n):n.clientX<o&&n.clientY<o&&t(n)},i.addEventListener("click",this.listener,!1)},te.prototype.onResize=function(){var t=this.gl,i=this,n=[t.ARRAY_BUFFER_BINDING];U(t,n,(function(t){var n=[],r=t.drawingBufferWidth/2,o=Math.max(screen.width,screen.height)*e.devicePixelRatio,s=t.drawingBufferWidth/o*e.devicePixelRatio,a=J*s/2,u=$*ee*s,c=$*s/2,l=($*ee-$)*s;function h(e,t){var i=(90-e)*H,o=Math.cos(i),s=Math.sin(i);n.push(X*o*c+r,X*s*c+c),n.push(t*o*c+r,t*s*c+c)}n.push(r-a,u),n.push(r-a,t.drawingBufferHeight),n.push(r+a,u),n.push(r+a,t.drawingBufferHeight),i.gearOffset=n.length/2;for(var d=0;d<=6;d++){var p=d*G;h(p,K),h(p+W,K),h(p+q,Z),h(p+(G-q),Z),h(p+(G-W),K)}function A(e,i){n.push(l+e,t.drawingBufferHeight-l-i)}i.gearVertexCount=n.length/2-i.gearOffset,i.arrowOffset=n.length/2;var f=a/Math.sin(45*H);A(0,c),A(c,0),A(c+f,f),A(f,c+f),A(f,c-f),A(0,c),A(c,2*c),A(c+f,2*c-f),A(f,c-f),A(0,c),A(f,c-a),A($*s,c-a),A(f,c+a),A($*s,c+a),i.arrowVertexCount=n.length/2-i.arrowOffset,t.bindBuffer(t.ARRAY_BUFFER,i.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,new Float32Array(n),t.STATIC_DRAW)}))},te.prototype.render=function(){var e=this.gl,t=this,i=[e.CULL_FACE,e.DEPTH_TEST,e.BLEND,e.SCISSOR_TEST,e.STENCIL_TEST,e.COLOR_WRITEMASK,e.VIEWPORT,e.CURRENT_PROGRAM,e.ARRAY_BUFFER_BINDING];U(e,i,(function(e){e.disable(e.CULL_FACE),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.disable(e.SCISSOR_TEST),e.disable(e.STENCIL_TEST),e.colorMask(!0,!0,!0,!0),e.viewport(0,0,e.drawingBufferWidth,e.drawingBufferHeight),t.renderNoState()}))},te.prototype.renderNoState=function(){var e=this.gl;e.useProgram(this.program),e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer),e.enableVertexAttribArray(this.attribs.position),e.vertexAttribPointer(this.attribs.position,2,e.FLOAT,!1,8,0),e.uniform4f(this.uniforms.color,1,1,1,1),z(this.projMat,0,e.drawingBufferWidth,0,e.drawingBufferHeight,.1,1024),e.uniformMatrix4fv(this.uniforms.projectionMat,!1,this.projMat),e.drawArrays(e.TRIANGLE_STRIP,0,4),e.drawArrays(e.TRIANGLE_STRIP,this.gearOffset,this.gearVertexCount),e.drawArrays(e.TRIANGLE_STRIP,this.arrowOffset,this.arrowVertexCount)},ie.prototype.distortInverse=function(e){for(var t=0,i=1,n=e-this.distort(t);Math.abs(i-t)>1e-4;){var r=e-this.distort(i),o=i-r*((i-t)/(r-n));t=i,i=o,n=r}return i},ie.prototype.distort=function(e){for(var t=e*e,i=0,n=0;n<this.coefficients.length;n++)i=t*(i+this.coefficients[n]);return(i+1)*e};var ne=Math.PI/180,re=180/Math.PI,oe=function(e,t,i){this.x=e||0,this.y=t||0,this.z=i||0};oe.prototype={constructor:oe,set:function(e,t,i){return this.x=e,this.y=t,this.z=i,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var e=this.length();if(0!==e){var t=1/e;this.multiplyScalar(t)}else this.x=0,this.y=0,this.z=0;return this},multiplyScalar:function(e){this.x*=e,this.y*=e,this.z*=e},applyQuaternion:function(e){var t=this.x,i=this.y,n=this.z,r=e.x,o=e.y,s=e.z,a=e.w,u=a*t+o*n-s*i,c=a*i+s*t-r*n,l=a*n+r*i-o*t,h=-r*t-o*i-s*n;return this.x=u*a+h*-r+c*-s-l*-o,this.y=c*a+h*-o+l*-r-u*-s,this.z=l*a+h*-s+u*-o-c*-r,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},crossVectors:function(e,t){var i=e.x,n=e.y,r=e.z,o=t.x,s=t.y,a=t.z;return this.x=n*a-r*s,this.y=r*o-i*a,this.z=i*s-n*o,this}};var se,ae,ue,ce=function(e,t,i,n){this.x=e||0,this.y=t||0,this.z=i||0,this.w=void 0!==n?n:1};function le(e){this.width=e.width||N(),this.height=e.height||D(),this.widthMeters=e.widthMeters,this.heightMeters=e.heightMeters,this.bevelMeters=e.bevelMeters}ce.prototype={constructor:ce,set:function(e,t,i,n){return this.x=e,this.y=t,this.z=i,this.w=n,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},setFromEulerXYZ:function(e,t,i){var n=Math.cos(e/2),r=Math.cos(t/2),o=Math.cos(i/2),s=Math.sin(e/2),a=Math.sin(t/2),u=Math.sin(i/2);return this.x=s*r*o+n*a*u,this.y=n*a*o-s*r*u,this.z=n*r*u+s*a*o,this.w=n*r*o-s*a*u,this},setFromEulerYXZ:function(e,t,i){var n=Math.cos(e/2),r=Math.cos(t/2),o=Math.cos(i/2),s=Math.sin(e/2),a=Math.sin(t/2),u=Math.sin(i/2);return this.x=s*r*o+n*a*u,this.y=n*a*o-s*r*u,this.z=n*r*u-s*a*o,this.w=n*r*o+s*a*u,this},setFromAxisAngle:function(e,t){var i=t/2,n=Math.sin(i);return this.x=e.x*n,this.y=e.y*n,this.z=e.z*n,this.w=Math.cos(i),this},multiply:function(e){return this.multiplyQuaternions(this,e)},multiplyQuaternions:function(e,t){var i=e.x,n=e.y,r=e.z,o=e.w,s=t.x,a=t.y,u=t.z,c=t.w;return this.x=i*c+o*s+n*u-r*a,this.y=n*c+o*a+r*s-i*u,this.z=r*c+o*u+i*a-n*s,this.w=o*c-i*s-n*a-r*u,this},inverse:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this.normalize(),this},normalize:function(){var e=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);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},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,s=o*e.w+i*e.x+n*e.y+r*e.z;if(s<0?(this.w=-e.w,this.x=-e.x,this.y=-e.y,this.z=-e.z,s=-s):this.copy(e),s>=1)return this.w=o,this.x=i,this.y=n,this.z=r,this;var a=Math.acos(s),u=Math.sqrt(1-s*s);if(Math.abs(u)<.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 c=Math.sin((1-t)*a)/u,l=Math.sin(t*a)/u;return this.w=o*c+this.w*l,this.x=i*c+this.x*l,this.y=n*c+this.y*l,this.z=r*c+this.z*l,this},setFromUnitVectors:(ue=1e-6,function(e,t){return void 0===se&&(se=new oe),(ae=e.dot(t)+1)<ue?(ae=0,Math.abs(e.x)>Math.abs(e.z)?se.set(-e.y,e.x,0):se.set(0,-e.z,e.y)):se.crossVectors(e,t),this.x=se.x,this.y=se.y,this.z=se.z,this.w=ae,this.normalize(),this})};var he=new le({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),de=new le({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004}),pe={CardboardV1:new fe({id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]}),CardboardV2:new fe({id:"CardboardV2",label:"Cardboard I/O 2015",fov:60,interLensDistance:.064,baselineLensDistance:.035,screenLensDistance:.039,distortionCoefficients:[.34,.55],inverseCoefficients:[-.33836704,-.18162185,.862655,-1.2462051,1.0560602,-.58208317,.21609078,-.05444823,.009177956,-.0009904169,6183535e-11,-16981803e-13]})};function Ae(e,t){this.viewer=pe.CardboardV2,this.updateDeviceParams(e),this.distortion=new ie(this.viewer.distortionCoefficients);for(var i=0;i<t.length;i++){var n=t[i];pe[n.id]=new fe(n)}}function fe(e){this.id=e.id,this.label=e.label,this.fov=e.fov,this.interLensDistance=e.interLensDistance,this.baselineLensDistance=e.baselineLensDistance,this.screenLensDistance=e.screenLensDistance,this.distortionCoefficients=e.distortionCoefficients,this.inverseCoefficients=e.inverseCoefficients}Ae.prototype.updateDeviceParams=function(e){this.device=this.determineDevice_(e)||this.device},Ae.prototype.getDevice=function(){return this.device},Ae.prototype.setViewer=function(e){this.viewer=e,this.distortion=new ie(this.viewer.distortionCoefficients)},Ae.prototype.determineDevice_=function(e){if(!e)return h()?(console.warn("Using fallback iOS device measurements."),de):(console.warn("Using fallback Android device measurements."),he);var t=.0254,i=t/e.xdpi,n=t/e.ydpi;return new le({widthMeters:i*N(),heightMeters:n*D(),bevelMeters:.001*e.bevelMm})},Ae.prototype.getDistortedFieldOfViewLeftEye=function(){var e=this.viewer,t=this.device,i=this.distortion,n=e.screenLensDistance,r=(t.widthMeters-e.interLensDistance)/2,o=e.interLensDistance/2,s=e.baselineLensDistance-t.bevelMeters,a=t.heightMeters-s,u=re*Math.atan(i.distort(r/n)),c=re*Math.atan(i.distort(o/n)),l=re*Math.atan(i.distort(s/n)),h=re*Math.atan(i.distort(a/n));return{leftDegrees:Math.min(u,e.fov),rightDegrees:Math.min(c,e.fov),downDegrees:Math.min(l,e.fov),upDegrees:Math.min(h,e.fov)}},Ae.prototype.getLeftEyeVisibleTanAngles=function(){var e=this.viewer,t=this.device,i=this.distortion,n=Math.tan(-ne*e.fov),r=Math.tan(ne*e.fov),o=Math.tan(ne*e.fov),s=Math.tan(-ne*e.fov),a=t.widthMeters/4,u=t.heightMeters/2,c=e.baselineLensDistance-t.bevelMeters-u,l=e.interLensDistance/2-a,h=-c,d=e.screenLensDistance,p=i.distort((l-a)/d),A=i.distort((h+u)/d),f=i.distort((l+a)/d),M=i.distort((h-u)/d),g=new Float32Array(4);return g[0]=Math.max(n,p),g[1]=Math.min(r,A),g[2]=Math.min(o,f),g[3]=Math.max(s,M),g},Ae.prototype.getLeftEyeNoLensTanAngles=function(){var e=this.viewer,t=this.device,i=this.distortion,n=new Float32Array(4),r=i.distortInverse(Math.tan(-ne*e.fov)),o=i.distortInverse(Math.tan(ne*e.fov)),s=i.distortInverse(Math.tan(ne*e.fov)),a=i.distortInverse(Math.tan(-ne*e.fov)),u=t.widthMeters/4,c=t.heightMeters/2,l=e.baselineLensDistance-t.bevelMeters-c,h=e.interLensDistance/2-u,d=-l,p=e.screenLensDistance,A=(h-u)/p,f=(d+c)/p,M=(h+u)/p,g=(d-c)/p;return n[0]=Math.max(r,A),n[1]=Math.min(o,f),n[2]=Math.min(s,M),n[3]=Math.max(a,g),n},Ae.prototype.getLeftEyeVisibleScreenRect=function(e){var t=this.viewer,i=this.device,n=t.screenLensDistance,r=(i.widthMeters-t.interLensDistance)/2,o=t.baselineLensDistance-i.bevelMeters,s=(e[0]*n+r)/i.widthMeters,a=(e[1]*n+o)/i.heightMeters,u=(e[2]*n+r)/i.widthMeters,c=(e[3]*n+o)/i.heightMeters;return{x:s,y:c,width:u-s,height:a-c}},Ae.prototype.getFieldOfViewLeftEye=function(e){return e?this.getUndistortedFieldOfViewLeftEye():this.getDistortedFieldOfViewLeftEye()},Ae.prototype.getFieldOfViewRightEye=function(e){var t=this.getFieldOfViewLeftEye(e);return{leftDegrees:t.rightDegrees,rightDegrees:t.leftDegrees,upDegrees:t.upDegrees,downDegrees:t.downDegrees}},Ae.prototype.getUndistortedFieldOfViewLeftEye=function(){var e=this.getUndistortedParams_();return{leftDegrees:re*Math.atan(e.outerDist),rightDegrees:re*Math.atan(e.innerDist),downDegrees:re*Math.atan(e.bottomDist),upDegrees:re*Math.atan(e.topDist)}},Ae.prototype.getUndistortedViewportLeftEye=function(){var e=this.getUndistortedParams_(),t=this.viewer,i=this.device,n=t.screenLensDistance,r=i.widthMeters/n,o=i.heightMeters/n,s=i.width/r,a=i.height/o,u=Math.round((e.eyePosX-e.outerDist)*s),c=Math.round((e.eyePosY-e.bottomDist)*a);return{x:u,y:c,width:Math.round((e.eyePosX+e.innerDist)*s)-u,height:Math.round((e.eyePosY+e.topDist)*a)-c}},Ae.prototype.getUndistortedParams_=function(){var e=this.viewer,t=this.device,i=this.distortion,n=e.screenLensDistance,r=e.interLensDistance/2/n,o=t.widthMeters/n,s=t.heightMeters/n,a=o/2-r,u=(e.baselineLensDistance-t.bevelMeters)/n,c=e.fov,l=i.distortInverse(Math.tan(ne*c)),h=Math.min(a,l),d=Math.min(r,l),p=Math.min(u,l);return{outerDist:h,innerDist:d,topDist:Math.min(s-u,l),bottomDist:p,eyePosX:a,eyePosY:u}},Ae.Viewers=pe;var Me={format:1,last_updated:"2019-11-09T17:36:14Z",devices:[{type:"android",rules:[{mdmh:"asus/*/Nexus 7/*"},{ua:"Nexus 7"}],dpi:[320.8,323],bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X00PD/*"},{ua:"ASUS_X00PD"}],dpi:245,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_X008D/*"},{ua:"ASUS_X008D"}],dpi:282,bw:3,ac:500},{type:"android",rules:[{mdmh:"asus/*/ASUS_Z00AD/*"},{ua:"ASUS_Z00AD"}],dpi:[403,404.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2 XL/*"},{ua:"Pixel 2 XL"}],dpi:537.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3 XL/*"},{ua:"Pixel 3 XL"}],dpi:[558.5,553.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel XL/*"},{ua:"Pixel XL"}],dpi:[537.9,533],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 3/*"},{ua:"Pixel 3"}],dpi:442.4,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Google/*/Pixel 2/*"},{ua:"Pixel 2"}],dpi:441,bw:3,ac:500},{type:"android",rules:[{mdmh:"Google/*/Pixel/*"},{ua:"Pixel"}],dpi:[432.6,436.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC6435LVW/*"},{ua:"HTC6435LVW"}],dpi:[449.7,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"HTC/*/HTC One XL/*"},{ua:"HTC One XL"}],dpi:[315.3,314.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"htc/*/Nexus 9/*"},{ua:"Nexus 9"}],dpi:289,bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One M9/*"},{ua:"HTC One M9"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One_M8/*"},{ua:"HTC One_M8"}],dpi:[449.7,447.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"HTC/*/HTC One/*"},{ua:"HTC One"}],dpi:472.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/Nexus 6P/*"},{ua:"Nexus 6P"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/BLN-L24/*"},{ua:"HONORBLN-L24"}],dpi:480,bw:4,ac:500},{type:"android",rules:[{mdmh:"Huawei/*/BKL-L09/*"},{ua:"BKL-L09"}],dpi:403,bw:3.47,ac:500},{type:"android",rules:[{mdmh:"LENOVO/*/Lenovo PB2-690Y/*"},{ua:"Lenovo PB2-690Y"}],dpi:[457.2,454.713],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5X/*"},{ua:"Nexus 5X"}],dpi:[422,419.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS345/*"},{ua:"LGMS345"}],dpi:[221.7,219.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D800/*"},{ua:"LG-D800"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/LG-D850/*"},{ua:"LG-D850"}],dpi:[537.9,541.9],bw:3,ac:500},{type:"android",rules:[{mdmh:"LGE/*/VS985 4G/*"},{ua:"VS985 4G"}],dpi:[537.9,535.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 5/*"},{ua:"Nexus 5 B"}],dpi:[442.4,444.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/Nexus 4/*"},{ua:"Nexus 4"}],dpi:[319.8,318.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LG-P769/*"},{ua:"LG-P769"}],dpi:[240.6,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGMS323/*"},{ua:"LGMS323"}],dpi:[206.6,204.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"LGE/*/LGLS996/*"},{ua:"LGLS996"}],dpi:[403.4,401.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/4560MMX/*"},{ua:"4560MMX"}],dpi:[240,219.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/A250/*"},{ua:"Micromax A250"}],dpi:[480,446.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Micromax/*/Micromax AQ4501/*"},{ua:"Micromax AQ4501"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/G5/*"},{ua:"Moto G (5) Plus"}],dpi:[403.4,403],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/DROID RAZR/*"},{ua:"DROID RAZR"}],dpi:[368.1,256.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT830C/*"},{ua:"XT830C"}],dpi:[254,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1021/*"},{ua:"XT1021"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1023/*"},{ua:"XT1023"}],dpi:[254,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1028/*"},{ua:"XT1028"}],dpi:[326.6,327.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1034/*"},{ua:"XT1034"}],dpi:[326.6,328.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1053/*"},{ua:"XT1053"}],dpi:[315.3,316.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1562/*"},{ua:"XT1562"}],dpi:[403.4,402.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/Nexus 6/*"},{ua:"Nexus 6 B"}],dpi:[494.3,489.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1063/*"},{ua:"XT1063"}],dpi:[295,296.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/XT1064/*"},{ua:"XT1064"}],dpi:[295,295.6],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1092/*"},{ua:"XT1092"}],dpi:[422,424.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"motorola/*/XT1095/*"},{ua:"XT1095"}],dpi:[422,423.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"motorola/*/G4/*"},{ua:"Moto G (4)"}],dpi:401,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/A0001/*"},{ua:"A0001"}],dpi:[403.4,401],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1001/*"},{ua:"ONE E1001"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1003/*"},{ua:"ONE E1003"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE E1005/*"},{ua:"ONE E1005"}],dpi:[442.4,441.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2001/*"},{ua:"ONE A2001"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2003/*"},{ua:"ONE A2003"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A2005/*"},{ua:"ONE A2005"}],dpi:[391.9,405.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3000/*"},{ua:"ONEPLUS A3000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3003/*"},{ua:"ONEPLUS A3003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A3010/*"},{ua:"ONEPLUS A3010"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A5000/*"},{ua:"ONEPLUS A5000 "}],dpi:[403.411,399.737],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONE A5010/*"},{ua:"ONEPLUS A5010"}],dpi:[403,400],bw:2,ac:1e3},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6000/*"},{ua:"ONEPLUS A6000"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6003/*"},{ua:"ONEPLUS A6003"}],dpi:401,bw:3,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6010/*"},{ua:"ONEPLUS A6010"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OnePlus/*/ONEPLUS A6013/*"},{ua:"ONEPLUS A6013"}],dpi:401,bw:2,ac:500},{type:"android",rules:[{mdmh:"OPPO/*/X909/*"},{ua:"X909"}],dpi:[442.4,444.1],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9082/*"},{ua:"GT-I9082"}],dpi:[184.7,185.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G360P/*"},{ua:"SM-G360P"}],dpi:[196.7,205.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Nexus S/*"},{ua:"Nexus S"}],dpi:[234.5,229.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[304.8,303.9],bw:5,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-T230NU/*"},{ua:"SM-T230NU"}],dpi:216,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SGH-T399/*"},{ua:"SGH-T399"}],dpi:[217.7,231.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SGH-M919/*"},{ua:"SGH-M919"}],dpi:[440.8,437.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N9005/*"},{ua:"SM-N9005"}],dpi:[386.4,387],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SM-N900A/*"},{ua:"SAMSUNG-SM-N900A"}],dpi:[386.4,387.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9500/*"},{ua:"GT-I9500"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/GT-I9505/*"},{ua:"GT-I9505"}],dpi:439.4,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900F/*"},{ua:"SM-G900F"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G900M/*"},{ua:"SM-G900M"}],dpi:[415.6,431.6],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G800F/*"},{ua:"SM-G800F"}],dpi:326.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G906S/*"},{ua:"SM-G906S"}],dpi:[562.7,572.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300/*"},{ua:"GT-I9300"}],dpi:[306.7,304.8],bw:5,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-T535/*"},{ua:"SM-T535"}],dpi:[142.6,136.4],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-N920C/*"},{ua:"SM-N920C"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920P/*"},{ua:"SM-N920P"}],dpi:[386.3655,390.144],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N920W8/*"},{ua:"SM-N920W8"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9300I/*"},{ua:"GT-I9300I"}],dpi:[304.8,305.8],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-I9195/*"},{ua:"GT-I9195"}],dpi:[249.4,256.7],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SPH-L520/*"},{ua:"SPH-L520"}],dpi:[249.4,255.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SAMSUNG-SGH-I717/*"},{ua:"SAMSUNG-SGH-I717"}],dpi:285.8,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SPH-D710/*"},{ua:"SPH-D710"}],dpi:[217.7,204.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/GT-N7100/*"},{ua:"GT-N7100"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SCH-I605/*"},{ua:"SCH-I605"}],dpi:265.1,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/Galaxy Nexus/*"},{ua:"Galaxy Nexus"}],dpi:[315.3,314.2],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910H/*"},{ua:"SM-N910H"}],dpi:[515.1,518],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-N910C/*"},{ua:"SM-N910C"}],dpi:[515.2,520.2],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G130M/*"},{ua:"SM-G130M"}],dpi:[165.9,164.8],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G928I/*"},{ua:"SM-G928I"}],dpi:[515.1,518.4],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G920F/*"},{ua:"SM-G920F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G920P/*"},{ua:"SM-G920P"}],dpi:[522.5,577],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G925F/*"},{ua:"SM-G925F"}],dpi:580.6,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G925V/*"},{ua:"SM-G925V"}],dpi:[522.5,576.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G930F/*"},{ua:"SM-G930F"}],dpi:576.6,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G935F/*"},{ua:"SM-G935F"}],dpi:533,bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G950F/*"},{ua:"SM-G950F"}],dpi:[562.707,565.293],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955U/*"},{ua:"SM-G955U"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G955F/*"},{ua:"SM-G955F"}],dpi:[522.514,525.762],bw:3,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G960F/*"},{ua:"SM-G960F"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9600/*"},{ua:"SM-G9600"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960T/*"},{ua:"SM-G960T"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960N/*"},{ua:"SM-G960N"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960U/*"},{ua:"SM-G960U"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G9608/*"},{ua:"SM-G9608"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960FD/*"},{ua:"SM-G960FD"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G960W/*"},{ua:"SM-G960W"}],dpi:[569.575,571.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G965F/*"},{ua:"SM-G965F"}],dpi:529,bw:2,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/C6903/*"},{ua:"C6903"}],dpi:[442.5,443.3],bw:3,ac:500},{type:"android",rules:[{mdmh:"Sony/*/D6653/*"},{ua:"D6653"}],dpi:[428.6,427.6],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6653/*"},{ua:"E6653"}],dpi:[428.6,425.7],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/E6853/*"},{ua:"E6853"}],dpi:[403.4,401.9],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Sony/*/SGP321/*"},{ua:"SGP321"}],dpi:[224.7,224.1],bw:3,ac:500},{type:"android",rules:[{mdmh:"TCT/*/ALCATEL ONE TOUCH Fierce/*"},{ua:"ALCATEL ONE TOUCH Fierce"}],dpi:[240,247.5],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"THL/*/thl 5000/*"},{ua:"thl 5000"}],dpi:[480,443.3],bw:3,ac:1e3},{type:"android",rules:[{mdmh:"Fly/*/IQ4412/*"},{ua:"IQ4412"}],dpi:307.9,bw:3,ac:1e3},{type:"android",rules:[{mdmh:"ZTE/*/ZTE Blade L2/*"},{ua:"ZTE Blade L2"}],dpi:240,bw:3,ac:500},{type:"android",rules:[{mdmh:"BENEVE/*/VR518/*"},{ua:"VR518"}],dpi:480,bw:3,ac:500},{type:"ios",rules:[{res:[640,960]}],dpi:[325.1,328.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[640,1136]}],dpi:[317.1,320.2],bw:3,ac:1e3},{type:"ios",rules:[{res:[750,1334]}],dpi:326.4,bw:4,ac:1e3},{type:"ios",rules:[{res:[1242,2208]}],dpi:[453.6,458.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2001]}],dpi:[410.9,415.4],bw:4,ac:1e3},{type:"ios",rules:[{res:[1125,2436]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"Huawei/*/EML-L29/*"},{ua:"EML-L29"}],dpi:428,bw:3.45,ac:500},{type:"android",rules:[{mdmh:"Nokia/*/Nokia 7.1/*"},{ua:"Nokia 7.1"}],dpi:[432,431.9],bw:3,ac:500},{type:"ios",rules:[{res:[1242,2688]}],dpi:458,bw:4,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G570M/*"},{ua:"SM-G570M"}],dpi:320,bw:3.684,ac:1e3},{type:"android",rules:[{mdmh:"samsung/*/SM-G970F/*"},{ua:"SM-G970F"}],dpi:438,bw:2.281,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G973F/*"},{ua:"SM-G973F"}],dpi:550,bw:2.002,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G975F/*"},{ua:"SM-G975F"}],dpi:522,bw:2.054,ac:500},{type:"android",rules:[{mdmh:"samsung/*/SM-G977F/*"},{ua:"SM-G977F"}],dpi:505,bw:2.334,ac:500},{type:"ios",rules:[{res:[828,1792]}],dpi:326,bw:5,ac:500}]};function ge(e,t){if(this.dpdb=Me,this.recalculateDeviceParams_(),e){this.onDeviceParamsUpdated=t;var i=new XMLHttpRequest,n=this;i.open("GET",e,!0),i.addEventListener("load",(function(){n.loading=!1,i.status>=200&&i.status<=299?(n.dpdb=JSON.parse(i.response),n.recalculateDeviceParams_()):console.error("Error loading online DPDB!")})),i.send()}}function ye(e){this.xdpi=e.xdpi,this.ydpi=e.ydpi,this.bevelMm=e.bevelMm}function me(e,t){this.set(e,t)}function ve(e,t){this.kFilter=e,this.isDebug=t,this.currentAccelMeasurement=new me,this.currentGyroMeasurement=new me,this.previousGyroMeasurement=new me,h()?this.filterQ=new ce(-1,0,0,1):this.filterQ=new ce(1,0,0,1),this.previousFilterQ=new ce,this.previousFilterQ.copy(this.filterQ),this.accelQ=new ce,this.isOrientationInitialized=!1,this.estimatedGravity=new oe,this.measuredGravity=new oe,this.gyroIntegralQ=new ce}function Ne(e,t){this.predictionTimeS=e,this.isDebug=t,this.previousQ=new ce,this.previousTimestampS=null,this.deltaQ=new ce,this.outQ=new ce}function De(t,i,n,r){this.yawOnly=n,this.accelerometer=new oe,this.gyroscope=new oe,this.filter=new ve(t,r),this.posePredictor=new Ne(i,r),this.isFirefoxAndroid=A(),this.isIOS=h();var o=f();this.isDeviceMotionInRadians=!this.isIOS&&o&&o<66,this.isWithoutDeviceMotion=g()||M(),this.filterToWorldQ=new ce,h()?this.filterToWorldQ.setFromAxisAngle(new oe(1,0,0),Math.PI/2):this.filterToWorldQ.setFromAxisAngle(new oe(1,0,0),-Math.PI/2),this.inverseWorldToScreenQ=new ce,this.worldToScreenQ=new ce,this.originalPoseAdjustQ=new ce,this.originalPoseAdjustQ.setFromAxisAngle(new oe(0,0,1),-e.orientation*Math.PI/180),this.setScreenTransform_(),m()&&this.filterToWorldQ.multiply(this.inverseWorldToScreenQ),this.resetQ=new ce,this.orientationOut_=new Float32Array(4),this.start()}ge.prototype.getDeviceParams=function(){return this.deviceParams},ge.prototype.recalculateDeviceParams_=function(){var e=this.calcDeviceParams_();e?(this.deviceParams=e,this.onDeviceParamsUpdated&&this.onDeviceParamsUpdated(this.deviceParams)):console.error("Failed to recalculate device parameters.")},ge.prototype.calcDeviceParams_=function(){var i=this.dpdb;if(!i)return console.error("DPDB not available."),null;if(1!=i.format)return console.error("DPDB has unexpected format version."),null;if(!i.devices||!i.devices.length)return console.error("DPDB does not have a devices section."),null;var n=t.userAgent||t.vendor||e.opera,r=N(),o=D();if(!i.devices)return console.error("DPDB has no devices section."),null;for(var s=0;s<i.devices.length;s++){var a=i.devices[s];if(a.rules)if("ios"==a.type||"android"==a.type){if(h()==("ios"==a.type)){for(var u=!1,c=0;c<a.rules.length;c++){var l=a.rules[c];if(this.ruleMatches_(l,n,r,o)){u=!0;break}}if(u)return new ye({xdpi:a.dpi[0]||a.dpi,ydpi:a.dpi[1]||a.dpi,bevelMm:a.bw})}}else console.warn("Device["+s+"] has invalid type.");else console.warn("Device["+s+"] has no rules section.")}return console.warn("No DPDB device match."),null},ge.prototype.ruleMatches_=function(e,t,i,n){if(!e.ua&&!e.res)return!1;if(e.ua&&"SM"===e.ua.substring(0,2)&&(e.ua=e.ua.substring(0,7)),e.ua&&t.indexOf(e.ua)<0)return!1;if(e.res){if(!e.res[0]||!e.res[1])return!1;var r=e.res[0],o=e.res[1];if(Math.min(i,n)!=Math.min(r,o)||Math.max(i,n)!=Math.max(r,o))return!1}return!0},me.prototype.set=function(e,t){this.sample=e,this.timestampS=t},me.prototype.copy=function(e){this.set(e.sample,e.timestampS)},ve.prototype.addAccelMeasurement=function(e,t){this.currentAccelMeasurement.set(e,t)},ve.prototype.addGyroMeasurement=function(e,t){this.currentGyroMeasurement.set(e,t);var i=t-this.previousGyroMeasurement.timestampS;v(i)&&this.run_(),this.previousGyroMeasurement.copy(this.currentGyroMeasurement)},ve.prototype.run_=function(){if(!this.isOrientationInitialized)return this.accelQ=this.accelToQuaternion_(this.currentAccelMeasurement.sample),this.previousFilterQ.copy(this.accelQ),void(this.isOrientationInitialized=!0);var e=this.currentGyroMeasurement.timestampS-this.previousGyroMeasurement.timestampS,t=this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample,e);this.gyroIntegralQ.multiply(t),this.filterQ.copy(this.previousFilterQ),this.filterQ.multiply(t);var i=new ce;i.copy(this.filterQ),i.inverse(),this.estimatedGravity.set(0,0,-1),this.estimatedGravity.applyQuaternion(i),this.estimatedGravity.normalize(),this.measuredGravity.copy(this.currentAccelMeasurement.sample),this.measuredGravity.normalize();var n=new ce;n.setFromUnitVectors(this.estimatedGravity,this.measuredGravity),n.inverse(),this.isDebug&&console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",re*C(n),this.estimatedGravity.x.toFixed(1),this.estimatedGravity.y.toFixed(1),this.estimatedGravity.z.toFixed(1),this.measuredGravity.x.toFixed(1),this.measuredGravity.y.toFixed(1),this.measuredGravity.z.toFixed(1));var r=new ce;r.copy(this.filterQ),r.multiply(n),this.filterQ.slerp(r,1-this.kFilter),this.previousFilterQ.copy(this.filterQ)},ve.prototype.getOrientation=function(){return this.filterQ},ve.prototype.accelToQuaternion_=function(e){var t=new oe;t.copy(e),t.normalize();var i=new ce;return i.setFromUnitVectors(new oe(0,0,-1),t),i.inverse(),i},ve.prototype.gyroToQuaternionDelta_=function(e,t){var i=new ce,n=new oe;return n.copy(e),n.normalize(),i.setFromAxisAngle(n,e.length()*t),i},Ne.prototype.getPrediction=function(e,t,i){if(!this.previousTimestampS)return this.previousQ.copy(e),this.previousTimestampS=i,e;var n=new oe;n.copy(t),n.normalize();var r=t.length();if(r<20*ne)return this.isDebug&&console.log("Moving slowly, at %s deg/s: no prediction",(re*r).toFixed(1)),this.outQ.copy(e),this.previousQ.copy(e),this.outQ;var o=r*this.predictionTimeS;return this.deltaQ.setFromAxisAngle(n,o),this.outQ.copy(this.previousQ),this.outQ.multiply(this.deltaQ),this.previousQ.copy(e),this.previousTimestampS=i,this.outQ},De.prototype.getPosition=function(){return null},De.prototype.getOrientation=function(){var t=void 0;if(this.isWithoutDeviceMotion&&this._deviceOrientationQ)return this.deviceOrientationFixQ=this.deviceOrientationFixQ||function(){var t=(new ce).setFromAxisAngle(new oe(0,0,-1),0),i=new ce;return-90===e.orientation?i.setFromAxisAngle(new oe(0,1,0),Math.PI/-2):i.setFromAxisAngle(new oe(0,1,0),Math.PI/2),t.multiply(i)}(),this.deviceOrientationFilterToWorldQ=this.deviceOrientationFilterToWorldQ||((i=new ce).setFromAxisAngle(new oe(1,0,0),-Math.PI/2),i),t=this._deviceOrientationQ,(n=new ce).copy(t),n.multiply(this.deviceOrientationFilterToWorldQ),n.multiply(this.resetQ),n.multiply(this.worldToScreenQ),n.multiplyQuaternions(this.deviceOrientationFixQ,n),this.yawOnly&&(n.x=0,n.z=0,n.normalize()),this.orientationOut_[0]=n.x,this.orientationOut_[1]=n.y,this.orientationOut_[2]=n.z,this.orientationOut_[3]=n.w,this.orientationOut_;var i,n,r=this.filter.getOrientation();return t=this.posePredictor.getPrediction(r,this.gyroscope,this.previousTimestampS),(n=new ce).copy(this.filterToWorldQ),n.multiply(this.resetQ),n.multiply(t),n.multiply(this.worldToScreenQ),this.yawOnly&&(n.x=0,n.z=0,n.normalize()),this.orientationOut_[0]=n.x,this.orientationOut_[1]=n.y,this.orientationOut_[2]=n.z,this.orientationOut_[3]=n.w,this.orientationOut_},De.prototype.resetPose=function(){this.resetQ.copy(this.filter.getOrientation()),this.resetQ.x=0,this.resetQ.y=0,this.resetQ.z*=-1,this.resetQ.normalize(),m()&&this.resetQ.multiply(this.inverseWorldToScreenQ),this.resetQ.multiply(this.originalPoseAdjustQ)},De.prototype.onDeviceOrientation_=function(e){this._deviceOrientationQ=this._deviceOrientationQ||new ce;var t=e.alpha,i=e.beta,n=e.gamma;t=(t||0)*Math.PI/180,i=(i||0)*Math.PI/180,n=(n||0)*Math.PI/180,this._deviceOrientationQ.setFromEulerYXZ(i,t,-n)},De.prototype.onDeviceMotion_=function(e){this.updateDeviceMotion_(e)},De.prototype.updateDeviceMotion_=function(e){var t=e.accelerationIncludingGravity,i=e.rotationRate,n=e.timeStamp/1e3,r=n-this.previousTimestampS;return r<0?(P("fusion-pose-sensor:invalid:non-monotonic","Invalid timestamps detected: non-monotonic timestamp from devicemotion"),void(this.previousTimestampS=n)):r<=a||r>u?(P("fusion-pose-sensor:invalid:outside-threshold","Invalid timestamps detected: Timestamp from devicemotion outside expected range."),void(this.previousTimestampS=n)):(this.accelerometer.set(-t.x,-t.y,-t.z),i&&(y()?this.gyroscope.set(-i.beta,i.alpha,i.gamma):this.gyroscope.set(i.alpha,i.beta,i.gamma),this.isDeviceMotionInRadians||this.gyroscope.multiplyScalar(Math.PI/180),this.filter.addGyroMeasurement(this.gyroscope,n)),this.filter.addAccelMeasurement(this.accelerometer,n),void(this.previousTimestampS=n))},De.prototype.onOrientationChange_=function(e){this.setScreenTransform_()},De.prototype.onMessage_=function(e){var t=e.data;t&&t.type&&"devicemotion"===t.type.toLowerCase()&&this.updateDeviceMotion_(t.deviceMotionEvent)},De.prototype.setScreenTransform_=function(){switch(this.worldToScreenQ.set(0,0,0,1),e.orientation){case 0:break;case 90:this.worldToScreenQ.setFromAxisAngle(new oe(0,0,1),-Math.PI/2);break;case-90:this.worldToScreenQ.setFromAxisAngle(new oe(0,0,1),Math.PI/2)}this.inverseWorldToScreenQ.copy(this.worldToScreenQ),this.inverseWorldToScreenQ.inverse()},De.prototype.start=function(){this.onDeviceMotionCallback_=this.onDeviceMotion_.bind(this),this.onOrientationChangeCallback_=this.onOrientationChange_.bind(this),this.onMessageCallback_=this.onMessage_.bind(this),this.onDeviceOrientationCallback_=this.onDeviceOrientation_.bind(this),h()&&L()&&e.addEventListener("message",this.onMessageCallback_),e.addEventListener("orientationchange",this.onOrientationChangeCallback_),this.isWithoutDeviceMotion?e.addEventListener("deviceorientation",this.onDeviceOrientationCallback_):e.addEventListener("devicemotion",this.onDeviceMotionCallback_)},De.prototype.stop=function(){e.removeEventListener("devicemotion",this.onDeviceMotionCallback_),e.removeEventListener("deviceorientation",this.onDeviceOrientationCallback_),e.removeEventListener("orientationchange",this.onOrientationChangeCallback_),e.removeEventListener("message",this.onMessageCallback_)};var we=60,Te=new oe(1,0,0),xe=new oe(0,0,1),Ee=new ce;Ee.setFromAxisAngle(Te,-Math.PI/2),Ee.multiply((new ce).setFromAxisAngle(xe,Math.PI/2));var je=function(){function e(t){r(this,e),this.config=t,this.sensor=null,this.fusionSensor=null,this._out=new Float32Array(4),this.api=null,this.errors=[],this._sensorQ=new ce,this._outQ=new ce,this._onSensorRead=this._onSensorRead.bind(this),this._onSensorError=this._onSensorError.bind(this),this.init()}return o(e,[{key:"init",value:function(){var e=null;try{(e=new RelativeOrientationSensor({frequency:we,referenceFrame:"screen"})).addEventListener("error",this._onSensorError)}catch(e){this.errors.push(e),"SecurityError"===e.name?(console.error("Cannot construct sensors due to the Feature Policy"),console.warn('Attempting to fall back using "devicemotion"; however this will fail in the future without correct permissions.'),this.useDeviceMotion()):"ReferenceError"===e.name?this.useDeviceMotion():console.error(e)}e&&(this.api="sensor",this.sensor=e,this.sensor.addEventListener("reading",this._onSensorRead),this.sensor.start())}},{key:"useDeviceMotion",value:function(){this.api="devicemotion",this.fusionSensor=new De(this.config.K_FILTER,this.config.PREDICTION_TIME_S,this.config.YAW_ONLY,this.config.DEBUG),this.sensor&&(this.sensor.removeEventListener("reading",this._onSensorRead),this.sensor.removeEventListener("error",this._onSensorError),this.sensor=null)}},{key:"getOrientation",value:function(){if(this.fusionSensor)return this.fusionSensor.getOrientation();if(!this.sensor||!this.sensor.quaternion)return this._out[0]=this._out[1]=this._out[2]=0,this._out[3]=1,this._out;var e=this.sensor.quaternion;this._sensorQ.set(e[0],e[1],e[2],e[3]);var t=this._outQ;return t.copy(Ee),t.multiply(this._sensorQ),this.config.YAW_ONLY&&(t.x=t.z=0,t.normalize()),this._out[0]=t.x,this._out[1]=t.y,this._out[2]=t.z,this._out[3]=t.w,this._out}},{key:"_onSensorError",value:function(e){this.errors.push(e.error),"NotAllowedError"===e.error.name?console.error("Permission to access sensor was denied"):"NotReadableError"===e.error.name?console.error("Sensor could not be read"):console.error(e.error),this.useDeviceMotion()}},{key:"_onSensorRead",value:function(){}}]),e}(),ze="<svg width='198' height='240' viewBox='0 0 198 240' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M149.625 109.527l6.737 3.891v.886c0 .177.013.36.038.549.01.081.02.162.027.242.14 1.415.974 2.998 2.105 3.999l5.72 5.062.081-.09s4.382-2.53 5.235-3.024l25.97 14.993v54.001c0 .771-.386 1.217-.948 1.217-.233 0-.495-.076-.772-.236l-23.967-13.838-.014.024-27.322 15.775-.85-1.323c-4.731-1.529-9.748-2.74-14.951-3.61a.27.27 0 0 0-.007.024l-5.067 16.961-7.891 4.556-.037-.063v27.59c0 .772-.386 1.217-.948 1.217-.232 0-.495-.076-.772-.236l-42.473-24.522c-.95-.549-1.72-1.877-1.72-2.967v-1.035l-.021.047a5.111 5.111 0 0 0-1.816-.399 5.682 5.682 0 0 0-.546.001 13.724 13.724 0 0 1-1.918-.041c-1.655-.153-3.2-.6-4.404-1.296l-46.576-26.89.005.012-10.278-18.75c-1.001-1.827-.241-4.216 1.698-5.336l56.011-32.345a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.659 3.227 1.853l.005-.003.227.413-.006.004a9.63 9.63 0 0 0 1.477 2.018l.277.27c1.914 1.85 4.468 2.801 7.113 2.801 1.949 0 3.948-.517 5.775-1.572.013 0 7.319-4.219 7.319-4.219a4.194 4.194 0 0 1 2.099-.572c1.326 0 2.572.658 3.226 1.853l3.25 5.928.022-.018 6.785 3.917-.105-.182 46.881-26.965m0-1.635c-.282 0-.563.073-.815.218l-46.169 26.556-5.41-3.124-3.005-5.481c-.913-1.667-2.699-2.702-4.66-2.703-1.011 0-2.02.274-2.917.792a3825 3825 0 0 1-7.275 4.195l-.044.024a9.937 9.937 0 0 1-4.957 1.353c-2.292 0-4.414-.832-5.976-2.342l-.252-.245a7.992 7.992 0 0 1-1.139-1.534 1.379 1.379 0 0 0-.06-.122l-.227-.414a1.718 1.718 0 0 0-.095-.154c-.938-1.574-2.673-2.545-4.571-2.545-1.011 0-2.02.274-2.917.792L3.125 155.502c-2.699 1.559-3.738 4.94-2.314 7.538l10.278 18.75c.177.323.448.563.761.704l46.426 26.804c1.403.81 3.157 1.332 5.072 1.508a15.661 15.661 0 0 0 2.146.046 4.766 4.766 0 0 1 .396 0c.096.004.19.011.283.022.109 1.593 1.159 3.323 2.529 4.114l42.472 24.522c.524.302 1.058.455 1.59.455 1.497 0 2.583-1.2 2.583-2.852v-26.562l7.111-4.105a1.64 1.64 0 0 0 .749-.948l4.658-15.593c4.414.797 8.692 1.848 12.742 3.128l.533.829a1.634 1.634 0 0 0 2.193.531l26.532-15.317L193 192.433c.523.302 1.058.455 1.59.455 1.497 0 2.583-1.199 2.583-2.852v-54.001c0-.584-.312-1.124-.818-1.416l-25.97-14.993a1.633 1.633 0 0 0-1.636.001c-.606.351-2.993 1.73-4.325 2.498l-4.809-4.255c-.819-.725-1.461-1.933-1.561-2.936a7.776 7.776 0 0 0-.033-.294 2.487 2.487 0 0 1-.023-.336v-.886c0-.584-.312-1.123-.817-1.416l-6.739-3.891a1.633 1.633 0 0 0-.817-.219' fill='#455A64'/><path d='M96.027 132.636l46.576 26.891c1.204.695 1.979 1.587 2.242 2.541l-.01.007-81.374 46.982h-.001c-1.654-.152-3.199-.6-4.403-1.295l-46.576-26.891 83.546-48.235' fill='#FAFAFA'/><path d='M63.461 209.174c-.008 0-.015 0-.022-.002-1.693-.156-3.228-.609-4.441-1.309l-46.576-26.89a.118.118 0 0 1 0-.203l83.546-48.235a.117.117 0 0 1 .117 0l46.576 26.891c1.227.708 2.021 1.612 2.296 2.611a.116.116 0 0 1-.042.124l-.021.016-81.375 46.981a.11.11 0 0 1-.058.016zm-50.747-28.303l46.401 26.79c1.178.68 2.671 1.121 4.32 1.276l81.272-46.922c-.279-.907-1.025-1.73-2.163-2.387l-46.517-26.857-83.313 48.1z' fill='#607D8B'/><path d='M148.327 165.471a5.85 5.85 0 0 1-.546.001c-1.894-.083-3.302-1.038-3.145-2.132a2.693 2.693 0 0 0-.072-1.105l-81.103 46.822c.628.058 1.272.073 1.918.042.182-.009.364-.009.546-.001 1.894.083 3.302 1.038 3.145 2.132l79.257-45.759' fill='#FFF'/><path d='M69.07 211.347a.118.118 0 0 1-.115-.134c.045-.317-.057-.637-.297-.925-.505-.61-1.555-1.022-2.738-1.074a5.966 5.966 0 0 0-.535.001 14.03 14.03 0 0 1-1.935-.041.117.117 0 0 1-.103-.092.116.116 0 0 1 .055-.126l81.104-46.822a.117.117 0 0 1 .171.07c.104.381.129.768.074 1.153-.045.316.057.637.296.925.506.61 1.555 1.021 2.739 1.073.178.008.357.008.535-.001a.117.117 0 0 1 .064.218l-79.256 45.759a.114.114 0 0 1-.059.016zm-3.405-2.372c.089 0 .177.002.265.006 1.266.056 2.353.488 2.908 1.158.227.274.35.575.36.882l78.685-45.429c-.036 0-.072-.001-.107-.003-1.267-.056-2.354-.489-2.909-1.158-.282-.34-.402-.724-.347-1.107a2.604 2.604 0 0 0-.032-.91L63.846 208.97a13.91 13.91 0 0 0 1.528.012c.097-.005.194-.007.291-.007z' fill='#607D8B'/><path d='M2.208 162.134c-1.001-1.827-.241-4.217 1.698-5.337l56.011-32.344c1.939-1.12 4.324-.546 5.326 1.281l.232.41a9.344 9.344 0 0 0 1.47 2.021l.278.27c3.325 3.214 8.583 3.716 12.888 1.23l7.319-4.22c1.94-1.119 4.324-.546 5.325 1.282l3.25 5.928-83.519 48.229-10.278-18.75z' fill='#FAFAFA'/><path d='M12.486 181.001a.112.112 0 0 1-.031-.005.114.114 0 0 1-.071-.056L2.106 162.19c-1.031-1.88-.249-4.345 1.742-5.494l56.01-32.344a4.328 4.328 0 0 1 2.158-.588c1.415 0 2.65.702 3.311 1.882.01.008.018.017.024.028l.227.414a.122.122 0 0 1 .013.038 9.508 9.508 0 0 0 1.439 1.959l.275.266c1.846 1.786 4.344 2.769 7.031 2.769 1.977 0 3.954-.538 5.717-1.557a.148.148 0 0 1 .035-.013l7.284-4.206a4.321 4.321 0 0 1 2.157-.588c1.427 0 2.672.716 3.329 1.914l3.249 5.929a.116.116 0 0 1-.044.157l-83.518 48.229a.116.116 0 0 1-.059.016zm49.53-57.004c-.704 0-1.41.193-2.041.557l-56.01 32.345c-1.882 1.086-2.624 3.409-1.655 5.179l10.221 18.645 83.317-48.112-3.195-5.829c-.615-1.122-1.783-1.792-3.124-1.792a4.08 4.08 0 0 0-2.04.557l-7.317 4.225a.148.148 0 0 1-.035.013 11.7 11.7 0 0 1-5.801 1.569c-2.748 0-5.303-1.007-7.194-2.835l-.278-.27a9.716 9.716 0 0 1-1.497-2.046.096.096 0 0 1-.013-.037l-.191-.347a.11.11 0 0 1-.023-.029c-.615-1.123-1.783-1.793-3.124-1.793z' fill='#607D8B'/><path d='M42.434 155.808c-2.51-.001-4.697-1.258-5.852-3.365-1.811-3.304-.438-7.634 3.059-9.654l12.291-7.098a7.599 7.599 0 0 1 3.789-1.033c2.51 0 4.697 1.258 5.852 3.365 1.811 3.304.439 7.634-3.059 9.654l-12.291 7.098a7.606 7.606 0 0 1-3.789 1.033zm13.287-20.683a7.128 7.128 0 0 0-3.555.971l-12.291 7.098c-3.279 1.893-4.573 5.942-2.883 9.024 1.071 1.955 3.106 3.122 5.442 3.122a7.13 7.13 0 0 0 3.556-.97l12.291-7.098c3.279-1.893 4.572-5.942 2.883-9.024-1.072-1.955-3.106-3.123-5.443-3.123z' fill='#607D8B'/><path d='M149.588 109.407l6.737 3.89v.887c0 .176.013.36.037.549.011.081.02.161.028.242.14 1.415.973 2.998 2.105 3.999l7.396 6.545c.177.156.358.295.541.415 1.579 1.04 2.95.466 3.062-1.282.049-.784.057-1.595.023-2.429l-.003-.16v-1.151l25.987 15.003v54c0 1.09-.77 1.53-1.72.982l-42.473-24.523c-.95-.548-1.72-1.877-1.72-2.966v-34.033' fill='#FAFAFA'/><path d='M194.553 191.25c-.257 0-.54-.085-.831-.253l-42.472-24.521c-.981-.567-1.779-1.943-1.779-3.068v-34.033h.234v34.033c0 1.051.745 2.336 1.661 2.866l42.473 24.521c.424.245.816.288 1.103.122.285-.164.442-.52.442-1.002v-53.933l-25.753-14.868.003 1.106c.034.832.026 1.654-.024 2.439-.054.844-.396 1.464-.963 1.746-.619.309-1.45.173-2.28-.373a5.023 5.023 0 0 1-.553-.426l-7.397-6.544c-1.158-1.026-1.999-2.625-2.143-4.076a9.624 9.624 0 0 0-.027-.238 4.241 4.241 0 0 1-.038-.564v-.82l-6.68-3.856.117-.202 6.738 3.89.058.034v.954c0 .171.012.351.036.533.011.083.021.165.029.246.138 1.395.948 2.935 2.065 3.923l7.397 6.545c.173.153.35.289.527.406.758.499 1.504.63 2.047.359.49-.243.786-.795.834-1.551.05-.778.057-1.591.024-2.417l-.004-.163v-1.355l.175.1 25.987 15.004.059.033v54.068c0 .569-.198.996-.559 1.204a1.002 1.002 0 0 1-.506.131' fill='#607D8B'/><path d='M145.685 163.161l24.115 13.922-25.978 14.998-1.462-.307c-6.534-2.17-13.628-3.728-21.019-4.616-4.365-.524-8.663 1.096-9.598 3.62a2.746 2.746 0 0 0-.011 1.928c1.538 4.267 4.236 8.363 7.995 12.135l.532.845-25.977 14.997-24.115-13.922 75.518-43.6' fill='#FFF'/><path d='M94.282 220.818l-.059-.033-24.29-14.024.175-.101 75.577-43.634.058.033 24.29 14.024-26.191 15.122-.045-.01-1.461-.307c-6.549-2.174-13.613-3.725-21.009-4.614a13.744 13.744 0 0 0-1.638-.097c-3.758 0-7.054 1.531-7.837 3.642a2.62 2.62 0 0 0-.01 1.848c1.535 4.258 4.216 8.326 7.968 12.091l.016.021.526.835.006.01.064.102-.105.061-25.977 14.998-.058.033zm-23.881-14.057l23.881 13.788 24.802-14.32c.546-.315.846-.489 1.017-.575l-.466-.74c-3.771-3.787-6.467-7.881-8.013-12.168a2.851 2.851 0 0 1 .011-2.008c.815-2.199 4.203-3.795 8.056-3.795.557 0 1.117.033 1.666.099 7.412.891 14.491 2.445 21.041 4.621.836.175 1.215.254 1.39.304l25.78-14.884-23.881-13.788-75.284 43.466z' fill='#607D8B'/><path d='M167.23 125.979v50.871l-27.321 15.773-6.461-14.167c-.91-1.996-3.428-1.738-5.624.574a10.238 10.238 0 0 0-2.33 4.018l-6.46 21.628-27.322 15.774v-50.871l75.518-43.6' fill='#FFF'/><path d='M91.712 220.567a.127.127 0 0 1-.059-.016.118.118 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.519-43.6a.117.117 0 0 1 .175.101v50.871c0 .041-.023.08-.059.1l-27.321 15.775a.118.118 0 0 1-.094.01.12.12 0 0 1-.071-.063l-6.46-14.168c-.375-.822-1.062-1.275-1.934-1.275-1.089 0-2.364.686-3.5 1.881a10.206 10.206 0 0 0-2.302 3.972l-6.46 21.627a.118.118 0 0 1-.054.068L91.77 220.551a.12.12 0 0 1-.058.016zm.117-50.92v50.601l27.106-15.65 6.447-21.583a10.286 10.286 0 0 1 2.357-4.065c1.18-1.242 2.517-1.954 3.669-1.954.969 0 1.731.501 2.146 1.411l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M168.543 126.213v50.87l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.624.574a10.248 10.248 0 0 0-2.33 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6' fill='#FFF'/><path d='M93.025 220.8a.123.123 0 0 1-.059-.015.12.12 0 0 1-.058-.101v-50.871c0-.042.023-.08.058-.101l75.518-43.6a.112.112 0 0 1 .117 0c.036.02.059.059.059.1v50.871a.116.116 0 0 1-.059.101l-27.321 15.774a.111.111 0 0 1-.094.01.115.115 0 0 1-.071-.062l-6.46-14.168c-.375-.823-1.062-1.275-1.935-1.275-1.088 0-2.363.685-3.499 1.881a10.19 10.19 0 0 0-2.302 3.971l-6.461 21.628a.108.108 0 0 1-.053.067l-27.322 15.775a.12.12 0 0 1-.058.015zm.117-50.919v50.6l27.106-15.649 6.447-21.584a10.293 10.293 0 0 1 2.357-4.065c1.179-1.241 2.516-1.954 3.668-1.954.969 0 1.732.502 2.147 1.412l6.407 14.051 27.152-15.676v-50.601l-75.284 43.466z' fill='#607D8B'/><path d='M169.8 177.083l-27.322 15.774-6.46-14.168c-.91-1.995-3.428-1.738-5.625.574a10.246 10.246 0 0 0-2.329 4.019l-6.461 21.627-27.321 15.774v-50.87l75.518-43.6v50.87z' fill='#FAFAFA'/><path d='M94.282 220.917a.234.234 0 0 1-.234-.233v-50.871c0-.083.045-.161.117-.202l75.518-43.601a.234.234 0 1 1 .35.202v50.871a.233.233 0 0 1-.116.202l-27.322 15.775a.232.232 0 0 1-.329-.106l-6.461-14.168c-.36-.789-.992-1.206-1.828-1.206-1.056 0-2.301.672-3.415 1.844a10.099 10.099 0 0 0-2.275 3.924l-6.46 21.628a.235.235 0 0 1-.107.136l-27.322 15.774a.23.23 0 0 1-.116.031zm.233-50.969v50.331l26.891-15.525 6.434-21.539a10.41 10.41 0 0 1 2.384-4.112c1.201-1.265 2.569-1.991 3.753-1.991 1.018 0 1.818.526 2.253 1.48l6.354 13.934 26.982-15.578v-50.331l-75.051 43.331z' fill='#607D8B'/><path d='M109.894 199.943c-1.774 0-3.241-.725-4.244-2.12a.224.224 0 0 1 .023-.294.233.233 0 0 1 .301-.023c.78.547 1.705.827 2.75.827 1.323 0 2.754-.439 4.256-1.306 5.311-3.067 9.631-10.518 9.631-16.611 0-1.927-.442-3.56-1.278-4.724a.232.232 0 0 1 .323-.327c1.671 1.172 2.591 3.381 2.591 6.219 0 6.242-4.426 13.863-9.865 17.003-1.574.908-3.084 1.356-4.488 1.356zm-2.969-1.542c.813.651 1.82.877 2.968.877h.001c1.321 0 2.753-.327 4.254-1.194 5.311-3.067 9.632-10.463 9.632-16.556 0-1.979-.463-3.599-1.326-4.761.411 1.035.625 2.275.625 3.635 0 6.243-4.426 13.883-9.865 17.023-1.574.909-3.084 1.317-4.49 1.317-.641 0-1.243-.149-1.799-.341z' fill='#607D8B'/><path d='M113.097 197.23c5.384-3.108 9.748-10.636 9.748-16.814 0-2.051-.483-3.692-1.323-4.86-1.784-1.252-4.374-1.194-7.257.47-5.384 3.108-9.748 10.636-9.748 16.814 0 2.051.483 3.692 1.323 4.86 1.784 1.252 4.374 1.194 7.257-.47' fill='#FAFAFA'/><path d='M108.724 198.614c-1.142 0-2.158-.213-3.019-.817-.021-.014-.04.014-.055-.007-.894-1.244-1.367-2.948-1.367-4.973 0-6.242 4.426-13.864 9.865-17.005 1.574-.908 3.084-1.363 4.49-1.363 1.142 0 2.158.309 3.018.913a.23.23 0 0 1 .056.056c.894 1.244 1.367 2.972 1.367 4.997 0 6.243-4.426 13.783-9.865 16.923-1.574.909-3.084 1.276-4.49 1.276zm-2.718-1.109c.774.532 1.688.776 2.718.776 1.323 0 2.754-.413 4.256-1.28 5.311-3.066 9.631-10.505 9.631-16.598 0-1.909-.434-3.523-1.255-4.685-.774-.533-1.688-.799-2.718-.799-1.323 0-2.755.441-4.256 1.308-5.311 3.066-9.631 10.506-9.631 16.599 0 1.909.434 3.517 1.255 4.679z' fill='#607D8B'/><path d='M149.318 114.262l-9.984 8.878 15.893 11.031 5.589-6.112-11.498-13.797' fill='#FAFAFA'/><path d='M169.676 120.84l-9.748 5.627c-3.642 2.103-9.528 2.113-13.147.024-3.62-2.089-3.601-5.488.041-7.591l9.495-5.608-6.729-3.885-81.836 47.071 45.923 26.514 3.081-1.779c.631-.365.869-.898.618-1.39-2.357-4.632-2.593-9.546-.683-14.262 5.638-13.92 24.509-24.815 48.618-28.07 8.169-1.103 16.68-.967 24.704.394.852.145 1.776.008 2.407-.357l3.081-1.778-25.825-14.91' fill='#FAFAFA'/><path d='M113.675 183.459a.47.47 0 0 1-.233-.062l-45.924-26.515a.468.468 0 0 1 .001-.809l81.836-47.071a.467.467 0 0 1 .466 0l6.729 3.885a.467.467 0 0 1-.467.809l-6.496-3.75-80.9 46.533 44.988 25.973 2.848-1.644c.192-.111.62-.409.435-.773-2.416-4.748-2.658-9.814-.7-14.65 2.806-6.927 8.885-13.242 17.582-18.263 8.657-4.998 19.518-8.489 31.407-10.094 8.198-1.107 16.79-.97 24.844.397.739.125 1.561.007 2.095-.301l2.381-1.374-25.125-14.506a.467.467 0 0 1 .467-.809l25.825 14.91a.467.467 0 0 1 0 .809l-3.081 1.779c-.721.417-1.763.575-2.718.413-7.963-1.351-16.457-1.486-24.563-.392-11.77 1.589-22.512 5.039-31.065 9.977-8.514 4.916-14.456 11.073-17.183 17.805-1.854 4.578-1.623 9.376.666 13.875.37.725.055 1.513-.8 2.006l-3.081 1.78a.476.476 0 0 1-.234.062' fill='#455A64'/><path d='M153.316 128.279c-2.413 0-4.821-.528-6.652-1.586-1.818-1.049-2.82-2.461-2.82-3.975 0-1.527 1.016-2.955 2.861-4.02l9.493-5.607a.233.233 0 1 1 .238.402l-9.496 5.609c-1.696.979-2.628 2.263-2.628 3.616 0 1.34.918 2.608 2.585 3.571 3.549 2.049 9.343 2.038 12.914-.024l9.748-5.628a.234.234 0 0 1 .234.405l-9.748 5.628c-1.858 1.072-4.296 1.609-6.729 1.609' fill='#607D8B'/><path d='M113.675 182.992l-45.913-26.508M113.675 183.342a.346.346 0 0 1-.175-.047l-45.913-26.508a.35.35 0 1 1 .35-.607l45.913 26.508a.35.35 0 0 1-.175.654' fill='#455A64'/><path d='M67.762 156.484v54.001c0 1.09.77 2.418 1.72 2.967l42.473 24.521c.95.549 1.72.11 1.72-.98v-54.001' fill='#FAFAFA'/><path d='M112.727 238.561c-.297 0-.62-.095-.947-.285l-42.473-24.521c-1.063-.613-1.895-2.05-1.895-3.27v-54.001a.35.35 0 1 1 .701 0v54.001c0 .96.707 2.18 1.544 2.663l42.473 24.522c.344.198.661.243.87.122.206-.119.325-.411.325-.799v-54.001a.35.35 0 1 1 .7 0v54.001c0 .655-.239 1.154-.675 1.406a1.235 1.235 0 0 1-.623.162' fill='#455A64'/><path d='M112.86 147.512h-.001c-2.318 0-4.499-.522-6.142-1.471-1.705-.984-2.643-2.315-2.643-3.749 0-1.445.952-2.791 2.68-3.788l12.041-6.953c1.668-.962 3.874-1.493 6.212-1.493 2.318 0 4.499.523 6.143 1.472 1.704.984 2.643 2.315 2.643 3.748 0 1.446-.952 2.791-2.68 3.789l-12.042 6.952c-1.668.963-3.874 1.493-6.211 1.493zm12.147-16.753c-2.217 0-4.298.497-5.861 1.399l-12.042 6.952c-1.502.868-2.33 1.998-2.33 3.182 0 1.173.815 2.289 2.293 3.142 1.538.889 3.596 1.378 5.792 1.378h.001c2.216 0 4.298-.497 5.861-1.399l12.041-6.953c1.502-.867 2.33-1.997 2.33-3.182 0-1.172-.814-2.288-2.292-3.142-1.539-.888-3.596-1.377-5.793-1.377z' fill='#607D8B'/><path d='M165.63 123.219l-5.734 3.311c-3.167 1.828-8.286 1.837-11.433.02-3.147-1.817-3.131-4.772.036-6.601l5.734-3.31 11.397 6.58' fill='#FAFAFA'/><path d='M154.233 117.448l9.995 5.771-4.682 2.704c-1.434.827-3.352 1.283-5.399 1.283-2.029 0-3.923-.449-5.333-1.263-1.29-.744-2-1.694-2-2.674 0-.991.723-1.955 2.036-2.713l5.383-3.108m0-.809l-5.734 3.31c-3.167 1.829-3.183 4.784-.036 6.601 1.568.905 3.623 1.357 5.684 1.357 2.077 0 4.159-.46 5.749-1.377l5.734-3.311-11.397-6.58M145.445 179.667c-1.773 0-3.241-.85-4.243-2.245-.067-.092-.057-.275.023-.356.08-.081.207-.12.3-.055.781.548 1.706.812 2.751.811 1.322 0 2.754-.446 4.256-1.313 5.31-3.066 9.631-10.522 9.631-16.615 0-1.927-.442-3.562-1.279-4.726a.235.235 0 0 1 .024-.301.232.232 0 0 1 .3-.027c1.67 1.172 2.59 3.38 2.59 6.219 0 6.242-4.425 13.987-9.865 17.127-1.573.908-3.083 1.481-4.488 1.481zM142.476 178c.814.651 1.82 1.002 2.969 1.002 1.322 0 2.753-.452 4.255-1.32 5.31-3.065 9.631-10.523 9.631-16.617 0-1.98-.463-3.63-1.325-4.793.411 1.035.624 2.26.624 3.62 0 6.242-4.425 13.875-9.865 17.015-1.573.909-3.084 1.376-4.489 1.376a5.49 5.49 0 0 1-1.8-.283z' fill='#607D8B'/><path d='M148.648 176.704c5.384-3.108 9.748-10.636 9.748-16.813 0-2.052-.483-3.693-1.322-4.861-1.785-1.252-4.375-1.194-7.258.471-5.383 3.108-9.748 10.636-9.748 16.813 0 2.051.484 3.692 1.323 4.86 1.785 1.253 4.374 1.195 7.257-.47' fill='#FAFAFA'/><path d='M144.276 178.276c-1.143 0-2.158-.307-3.019-.911a.217.217 0 0 1-.055-.054c-.895-1.244-1.367-2.972-1.367-4.997 0-6.241 4.425-13.875 9.865-17.016 1.573-.908 3.084-1.369 4.489-1.369 1.143 0 2.158.307 3.019.91a.24.24 0 0 1 .055.055c.894 1.244 1.367 2.971 1.367 4.997 0 6.241-4.425 13.875-9.865 17.016-1.573.908-3.084 1.369-4.489 1.369zm-2.718-1.172c.773.533 1.687.901 2.718.901 1.322 0 2.754-.538 4.256-1.405 5.31-3.066 9.631-10.567 9.631-16.661 0-1.908-.434-3.554-1.256-4.716-.774-.532-1.688-.814-2.718-.814-1.322 0-2.754.433-4.256 1.3-5.31 3.066-9.631 10.564-9.631 16.657 0 1.91.434 3.576 1.256 4.738z' fill='#607D8B'/><path d='M150.72 172.361l-.363-.295a24.105 24.105 0 0 0 2.148-3.128 24.05 24.05 0 0 0 1.977-4.375l.443.149a24.54 24.54 0 0 1-2.015 4.46 24.61 24.61 0 0 1-2.19 3.189M115.917 191.514l-.363-.294a24.174 24.174 0 0 0 2.148-3.128 24.038 24.038 0 0 0 1.976-4.375l.443.148a24.48 24.48 0 0 1-2.015 4.461 24.662 24.662 0 0 1-2.189 3.188M114 237.476V182.584 237.476' fill='#607D8B'/><g><path d='M81.822 37.474c.017-.135-.075-.28-.267-.392-.327-.188-.826-.21-1.109-.045l-6.012 3.471c-.131.076-.194.178-.191.285.002.132.002.461.002.578v.043l-.007.128-6.591 3.779c-.001 0-2.077 1.046-2.787 5.192 0 0-.912 6.961-.898 19.745.015 12.57.606 17.07 1.167 21.351.22 1.684 3.001 2.125 3.001 2.125.331.04.698-.027 1.08-.248l75.273-43.551c1.808-1.069 2.667-3.719 3.056-6.284 1.213-7.99 1.675-32.978-.275-39.878-.196-.693-.51-1.083-.868-1.282l-2.086-.79c-.727.028-1.416.467-1.534.535L82.032 37.072l-.21.402' fill='#FFF'/><path d='M144.311 1.701l2.085.79c.358.199.672.589.868 1.282 1.949 6.9 1.487 31.887.275 39.878-.39 2.565-1.249 5.215-3.056 6.284L69.21 93.486a1.78 1.78 0 0 1-.896.258l-.183-.011c0 .001-2.782-.44-3.003-2.124-.56-4.282-1.151-8.781-1.165-21.351-.015-12.784.897-19.745.897-19.745.71-4.146 2.787-5.192 2.787-5.192l6.591-3.779.007-.128v-.043c0-.117 0-.446-.002-.578-.003-.107.059-.21.191-.285l6.012-3.472a.98.98 0 0 1 .481-.11c.218 0 .449.053.627.156.193.112.285.258.268.392l.211-.402 60.744-34.836c.117-.068.806-.507 1.534-.535m0-.997l-.039.001c-.618.023-1.283.244-1.974.656l-.021.012-60.519 34.706a2.358 2.358 0 0 0-.831-.15c-.365 0-.704.084-.98.244l-6.012 3.471c-.442.255-.699.69-.689 1.166l.001.15-6.08 3.487c-.373.199-2.542 1.531-3.29 5.898l-.006.039c-.009.07-.92 7.173-.906 19.875.014 12.62.603 17.116 1.172 21.465l.002.015c.308 2.355 3.475 2.923 3.836 2.98l.034.004c.101.013.204.019.305.019a2.77 2.77 0 0 0 1.396-.392l75.273-43.552c1.811-1.071 2.999-3.423 3.542-6.997 1.186-7.814 1.734-33.096-.301-40.299-.253-.893-.704-1.527-1.343-1.882l-.132-.062-2.085-.789a.973.973 0 0 0-.353-.065' fill='#455A64'/><path d='M128.267 11.565l1.495.434-56.339 32.326' fill='#FFF'/><path d='M74.202 90.545a.5.5 0 0 1-.25-.931l18.437-10.645a.499.499 0 1 1 .499.864L74.451 90.478l-.249.067M75.764 42.654l-.108-.062.046-.171 5.135-2.964.17.045-.045.171-5.135 2.964-.063.017M70.52 90.375V46.421l.063-.036L137.84 7.554v43.954l-.062.036L70.52 90.375zm.25-43.811v43.38l66.821-38.579V7.985L70.77 46.564z' fill='#607D8B'/><path d='M86.986 83.182c-.23.149-.612.384-.849.523l-11.505 6.701c-.237.139-.206.252.068.252h.565c.275 0 .693-.113.93-.252L87.7 83.705c.237-.139.428-.253.425-.256a11.29 11.29 0 0 1-.006-.503c0-.274-.188-.377-.418-.227l-.715.463' fill='#607D8B'/><path d='M75.266 90.782H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.236-.138.615-.371.844-.519l.715-.464a.488.488 0 0 1 .266-.089c.172 0 .345.13.345.421 0 .214.001.363.003.437l.006.004-.004.069c-.003.075-.003.075-.486.356l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.108.866-.234l11.505-6.702c.168-.098.294-.173.361-.214-.004-.084-.004-.218-.004-.437l-.095-.171-.131.049-.714.463c-.232.15-.616.386-.854.525l-11.505 6.702-.029.018z' fill='#607D8B'/><path d='M75.266 89.871H74.7c-.2 0-.316-.056-.346-.166-.03-.11.043-.217.215-.317l11.505-6.702c.258-.151.694-.268.993-.268h.565c.2 0 .316.056.346.166.03.11-.043.217-.215.317l-11.505 6.702a2.282 2.282 0 0 1-.992.268zm-.6-.25l.034.001h.566c.252 0 .649-.107.866-.234l11.505-6.702.03-.018-.035-.001h-.565c-.252 0-.649.108-.867.234l-11.505 6.702-.029.018zM74.37 90.801v-1.247 1.247' fill='#607D8B'/><path d='M68.13 93.901c-.751-.093-1.314-.737-1.439-1.376-.831-4.238-1.151-8.782-1.165-21.352-.015-12.784.897-19.745.897-19.745.711-4.146 2.787-5.192 2.787-5.192l74.859-43.219c.223-.129 2.487-1.584 3.195.923 1.95 6.9 1.488 31.887.275 39.878-.389 2.565-1.248 5.215-3.056 6.283L69.21 93.653c-.382.221-.749.288-1.08.248 0 0-2.781-.441-3.001-2.125-.561-4.281-1.152-8.781-1.167-21.351-.014-12.784.898-19.745.898-19.745.71-4.146 2.787-5.191 2.787-5.191l6.598-3.81.871-.119 6.599-3.83.046-.461L68.13 93.901' fill='#FAFAFA'/><path d='M68.317 94.161l-.215-.013h-.001l-.244-.047c-.719-.156-2.772-.736-2.976-2.292-.568-4.34-1.154-8.813-1.168-21.384-.014-12.654.891-19.707.9-19.777.725-4.231 2.832-5.338 2.922-5.382l6.628-3.827.87-.119 6.446-3.742.034-.334a.248.248 0 0 1 .273-.223.248.248 0 0 1 .223.272l-.059.589-6.752 3.919-.87.118-6.556 3.785c-.031.016-1.99 1.068-2.666 5.018-.007.06-.908 7.086-.894 19.702.014 12.539.597 16.996 1.161 21.305.091.691.689 1.154 1.309 1.452a1.95 1.95 0 0 1-.236-.609c-.781-3.984-1.155-8.202-1.17-21.399-.014-12.653.891-19.707.9-19.777.725-4.231 2.832-5.337 2.922-5.382-.004.001 74.444-42.98 74.846-43.212l.028-.017c.904-.538 1.72-.688 2.36-.433.555.221.949.733 1.172 1.52 2.014 7.128 1.46 32.219.281 39.983-.507 3.341-1.575 5.515-3.175 6.462L69.335 93.869a2.023 2.023 0 0 1-1.018.292zm-.147-.507c.293.036.604-.037.915-.217l75.273-43.551c1.823-1.078 2.602-3.915 2.934-6.106 1.174-7.731 1.731-32.695-.268-39.772-.178-.631-.473-1.032-.876-1.192-.484-.193-1.166-.052-1.921.397l-.034.021-74.858 43.218c-.031.017-1.989 1.069-2.666 5.019-.007.059-.908 7.085-.894 19.702.015 13.155.386 17.351 1.161 21.303.09.461.476.983 1.037 1.139.114.025.185.037.196.039h.001z' fill='#455A64'/><path d='M69.317 68.982c.489-.281.885-.056.885.505 0 .56-.396 1.243-.885 1.525-.488.282-.884.057-.884-.504 0-.56.396-1.243.884-1.526' fill='#FFF'/><path d='M68.92 71.133c-.289 0-.487-.228-.487-.625 0-.56.396-1.243.884-1.526a.812.812 0 0 1 .397-.121c.289 0 .488.229.488.626 0 .56-.396 1.243-.885 1.525a.812.812 0 0 1-.397.121m.794-2.459a.976.976 0 0 0-.49.147c-.548.317-.978 1.058-.978 1.687 0 .486.271.812.674.812a.985.985 0 0 0 .491-.146c.548-.317.978-1.057.978-1.687 0-.486-.272-.813-.675-.813' fill='#8097A2'/><path d='M68.92 70.947c-.271 0-.299-.307-.299-.439 0-.491.361-1.116.79-1.363a.632.632 0 0 1 .303-.096c.272 0 .301.306.301.438 0 .491-.363 1.116-.791 1.364a.629.629 0 0 1-.304.096m.794-2.086a.812.812 0 0 0-.397.121c-.488.283-.884.966-.884 1.526 0 .397.198.625.487.625a.812.812 0 0 0 .397-.121c.489-.282.885-.965.885-1.525 0-.397-.199-.626-.488-.626' fill='#8097A2'/><path d='M69.444 85.35c.264-.152.477-.031.477.272 0 .303-.213.67-.477.822-.263.153-.477.031-.477-.271 0-.302.214-.671.477-.823' fill='#FFF'/><path d='M69.23 86.51c-.156 0-.263-.123-.263-.337 0-.302.214-.671.477-.823a.431.431 0 0 1 .214-.066c.156 0 .263.124.263.338 0 .303-.213.67-.477.822a.431.431 0 0 1-.214.066m.428-1.412c-.1 0-.203.029-.307.09-.32.185-.57.618-.57.985 0 .309.185.524.449.524a.63.63 0 0 0 .308-.09c.32-.185.57-.618.57-.985 0-.309-.185-.524-.45-.524' fill='#8097A2'/><path d='M69.23 86.322l-.076-.149c0-.235.179-.544.384-.661l.12-.041.076.151c0 .234-.179.542-.383.66l-.121.04m.428-1.038a.431.431 0 0 0-.214.066c-.263.152-.477.521-.477.823 0 .214.107.337.263.337a.431.431 0 0 0 .214-.066c.264-.152.477-.519.477-.822 0-.214-.107-.338-.263-.338' fill='#8097A2'/><path d='M139.278 7.769v43.667L72.208 90.16V46.493l67.07-38.724' fill='#455A64'/><path d='M72.083 90.375V46.421l.063-.036 67.257-38.831v43.954l-.062.036-67.258 38.831zm.25-43.811v43.38l66.821-38.579V7.985L72.333 46.564z' fill='#607D8B'/></g><path d='M125.737 88.647l-7.639 3.334V84l-11.459 4.713v8.269L99 100.315l13.369 3.646 13.368-15.314' fill='#455A64'/></g></svg>";function Ie(){this.loadIcon_();var e=document.createElement("div");(o=e.style).position="fixed",o.top=0,o.right=0,o.bottom=0,o.left=0,o.backgroundColor="gray",o.fontFamily="sans-serif",o.zIndex=1e6;var t=document.createElement("img");t.src=this.icon,(o=t.style).marginLeft="25%",o.marginTop="25%",o.width="50%",e.appendChild(t);var i=document.createElement("div");(o=i.style).textAlign="center",o.fontSize="16px",o.lineHeight="24px",o.margin="24px 25%",o.width="50%",i.innerHTML="Place your phone into your Cardboard viewer.",e.appendChild(i);var n=document.createElement("div");(o=n.style).backgroundColor="#CFD8DC",o.position="fixed",o.bottom=0,o.width="100%",o.height="48px",o.padding="14px 24px",o.boxSizing="border-box",o.color="#656A6B",e.appendChild(n);var r=document.createElement("div");r.style.float="left",r.innerHTML="No Cardboard viewer?";var o,s=document.createElement("a");s.href="https://www.google.com/get/cardboard/get-cardboard/",s.innerHTML="get one",s.target="_blank",(o=s.style).float="right",o.fontWeight=600,o.textTransform="uppercase",o.borderLeft="1px solid gray",o.paddingLeft="24px",o.textDecoration="none",o.color="#656A6B",n.appendChild(r),n.appendChild(s),this.overlay=e,this.text=i,this.hide()}Ie.prototype.show=function(e){e||this.overlay.parentElement?e&&(this.overlay.parentElement&&this.overlay.parentElement!=e&&this.overlay.parentElement.removeChild(this.overlay),e.appendChild(this.overlay)):document.body.appendChild(this.overlay),this.overlay.style.display="block";var t=this.overlay.querySelector("img").style;m()?(t.width="20%",t.marginLeft="40%",t.marginTop="3%"):(t.width="50%",t.marginLeft="25%",t.marginTop="25%")},Ie.prototype.hide=function(){this.overlay.style.display="none"},Ie.prototype.showTemporarily=function(e,t){this.show(t),this.timer=setTimeout(this.hide.bind(this),e)},Ie.prototype.disableShowTemporarily=function(){clearTimeout(this.timer)},Ie.prototype.update=function(){this.disableShowTemporarily(),!m()&&I()?this.show():this.hide()},Ie.prototype.loadIcon_=function(){this.icon=c("image/svg+xml",ze)};var be="CardboardV1",Oe="WEBVR_CARDBOARD_VIEWER",Se="webvr-polyfill-viewer-selector";function Le(e){try{this.selectedKey=localStorage.getItem(Oe)}catch(e){console.error("Failed to load viewer profile: %s",e)}this.selectedKey||(this.selectedKey=e||be),this.dialog=this.createDialog_(Ae.Viewers),this.root=null,this.onChangeCallbacks_=[]}function ke(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Ce(e,t){return e(t={exports:{}},t.exports),t.exports}Le.prototype.show=function(e){this.root=e,e.appendChild(this.dialog),this.dialog.querySelector("#"+this.selectedKey).checked=!0,this.dialog.style.display="block"},Le.prototype.hide=function(){this.root&&this.root.contains(this.dialog)&&this.root.removeChild(this.dialog),this.dialog.style.display="none"},Le.prototype.getCurrentViewer=function(){return Ae.Viewers[this.selectedKey]},Le.prototype.getSelectedKey_=function(){var e=this.dialog.querySelector("input[name=field]:checked");return e?e.id:null},Le.prototype.onChange=function(e){this.onChangeCallbacks_.push(e)},Le.prototype.fireOnChange_=function(e){for(var t=0;t<this.onChangeCallbacks_.length;t++)this.onChangeCallbacks_[t](e)},Le.prototype.onSave_=function(){if(this.selectedKey=this.getSelectedKey_(),this.selectedKey&&Ae.Viewers[this.selectedKey]){this.fireOnChange_(Ae.Viewers[this.selectedKey]);try{localStorage.setItem(Oe,this.selectedKey)}catch(e){console.error("Failed to save viewer profile: %s",e)}this.hide()}else console.error("ViewerSelector.onSave_: this should never happen!")},Le.prototype.createDialog_=function(e){var t=document.createElement("div");t.classList.add(Se),t.style.display="none";var i=document.createElement("div");(o=i.style).position="fixed",o.left=0,o.top=0,o.width="100%",o.height="100%",o.background="rgba(0, 0, 0, 0.3)",i.addEventListener("click",this.hide.bind(this));var n=280,r=document.createElement("div"),o=r.style;for(var s in o.boxSizing="border-box",o.position="fixed",o.top="24px",o.left="50%",o.marginLeft=-n/2+"px",o.width=n+"px",o.padding="24px",o.overflow="hidden",o.background="#fafafa",o.fontFamily="'Roboto', sans-serif",o.boxShadow="0px 5px 20px #666",r.appendChild(this.createH1_("Select your viewer")),e)r.appendChild(this.createChoice_(s,e[s].label));return r.appendChild(this.createButton_("Save",this.onSave_.bind(this))),t.appendChild(i),t.appendChild(r),t},Le.prototype.createH1_=function(e){var t=document.createElement("h1"),i=t.style;return i.color="black",i.fontSize="20px",i.fontWeight="bold",i.marginTop=0,i.marginBottom="24px",t.innerHTML=e,t},Le.prototype.createChoice_=function(e,t){var i=document.createElement("div");i.style.marginTop="8px",i.style.color="black";var n=document.createElement("input");n.style.fontSize="30px",n.setAttribute("id",e),n.setAttribute("type","radio"),n.setAttribute("value",e),n.setAttribute("name","field");var r=document.createElement("label");return r.style.marginLeft="4px",r.setAttribute("for",e),r.innerHTML=t,i.appendChild(n),i.appendChild(r),i},Le.prototype.createButton_=function(e,t){var i=document.createElement("button");i.innerHTML=e;var n=i.style;return n.float="right",n.textTransform="uppercase",n.color="#1094f7",n.fontSize="14px",n.letterSpacing=0,n.border=0,n.background="none",n.marginTop="16px",i.addEventListener("click",t),i},void 0!==e||void 0!==i||"undefined"!=typeof self&&self;var Pe=ke(Ce((function(i,n){!function(e,t){i.exports=t()}(0,(function(){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(i,n,r){var o=function(){function e(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,i,n){return i&&e(t.prototype,i),n&&e(t,n),t}}();function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=r(1),u=void 0!==t&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(t.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!e.MSStream,c=function(){function t(){s(this,t),u?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("playsinline",""),this.noSleepVideo.setAttribute("src",a),this.noSleepVideo.addEventListener("timeupdate",function(e){this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return o(t,[{key:"enable",value:function(){u?(this.disable(),this.noSleepTimer=e.setInterval((function(){e.location.href="/",e.setTimeout(e.stop,0)}),15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){u?this.noSleepTimer&&(e.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),t}();i.exports=c},function(e,t,i){e.exports="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQADQGgcIQADQGgcAAAACQGeYUQn/wALKCEAA0BoHAAAAAkBnmNEJ/8ACykhAANAaBwhAANAaBwAAAANQZpoNExDP/6plgAMuSEAA0BoHAAAAAtBnoZFESwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBnqVEJ/8ACykhAANAaBwAAAAJAZ6nRCf/AAsoIQADQGgcIQADQGgcAAAADUGarDRMQz/+qZYADLghAANAaBwAAAALQZ7KRRUsK/8ACPkhAANAaBwAAAAJAZ7pRCf/AAsoIQADQGgcIQADQGgcAAAACQGe60Qn/wALKCEAA0BoHAAAAA1BmvA0TEM//qmWAAy5IQADQGgcIQADQGgcAAAAC0GfDkUVLCv/AAj5IQADQGgcAAAACQGfLUQn/wALKSEAA0BoHCEAA0BoHAAAAAkBny9EJ/8ACyghAANAaBwAAAANQZs0NExDP/6plgAMuCEAA0BoHAAAAAtBn1JFFSwr/wAI+SEAA0BoHCEAA0BoHAAAAAkBn3FEJ/8ACyghAANAaBwAAAAJAZ9zRCf/AAsoIQADQGgcIQADQGgcAAAADUGbeDRMQz/+qZYADLkhAANAaBwAAAALQZ+WRRUsK/8ACPghAANAaBwhAANAaBwAAAAJAZ+1RCf/AAspIQADQGgcAAAACQGft0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bm7w0TEM//qmWAAy4IQADQGgcAAAAC0Gf2kUVLCv/AAj5IQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHAAAAAkBn/tEJ/8ACykhAANAaBwAAAANQZvgNExDP/6plgAMuSEAA0BoHCEAA0BoHAAAAAtBnh5FFSwr/wAI+CEAA0BoHAAAAAkBnj1EJ/8ACyghAANAaBwhAANAaBwAAAAJAZ4/RCf/AAspIQADQGgcAAAADUGaJDRMQz/+qZYADLghAANAaBwAAAALQZ5CRRUsK/8ACPkhAANAaBwhAANAaBwAAAAJAZ5hRCf/AAsoIQADQGgcAAAACQGeY0Qn/wALKSEAA0BoHCEAA0BoHAAAAA1Bmmg0TEM//qmWAAy5IQADQGgcAAAAC0GehkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGepUQn/wALKSEAA0BoHAAAAAkBnqdEJ/8ACyghAANAaBwAAAANQZqsNExDP/6plgAMuCEAA0BoHCEAA0BoHAAAAAtBnspFFSwr/wAI+SEAA0BoHAAAAAkBnulEJ/8ACyghAANAaBwhAANAaBwAAAAJAZ7rRCf/AAsoIQADQGgcAAAADUGa8DRMQz/+qZYADLkhAANAaBwhAANAaBwAAAALQZ8ORRUsK/8ACPkhAANAaBwAAAAJAZ8tRCf/AAspIQADQGgcIQADQGgcAAAACQGfL0Qn/wALKCEAA0BoHAAAAA1BmzQ0TEM//qmWAAy4IQADQGgcAAAAC0GfUkUVLCv/AAj5IQADQGgcIQADQGgcAAAACQGfcUQn/wALKCEAA0BoHAAAAAkBn3NEJ/8ACyghAANAaBwhAANAaBwAAAANQZt4NExC//6plgAMuSEAA0BoHAAAAAtBn5ZFFSwr/wAI+CEAA0BoHCEAA0BoHAAAAAkBn7VEJ/8ACykhAANAaBwAAAAJAZ+3RCf/AAspIQADQGgcAAAADUGbuzRMQn/+nhAAYsAhAANAaBwhAANAaBwAAAAJQZ/aQhP/AAspIQADQGgcAAAACQGf+UQn/wALKCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHCEAA0BoHAAACiFtb292AAAAbG12aGQAAAAA1YCCX9WAgl8AAAPoAAAH/AABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAGGlvZHMAAAAAEICAgAcAT////v7/AAAF+XRyYWsAAABcdGtoZAAAAAPVgIJf1YCCXwAAAAEAAAAAAAAH0AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAygAAAMoAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAB9AAABdwAAEAAAAABXFtZGlhAAAAIG1kaGQAAAAA1YCCX9WAgl8AAV+QAAK/IFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAUcbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAE3HN0YmwAAACYc3RzZAAAAAAAAAABAAAAiGF2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAygDKAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAyYXZjQwFNQCj/4QAbZ01AKOyho3ySTUBAQFAAAAMAEAAr8gDxgxlgAQAEaO+G8gAAABhzdHRzAAAAAAAAAAEAAAA8AAALuAAAABRzdHNzAAAAAAAAAAEAAAABAAAB8GN0dHMAAAAAAAAAPAAAAAEAABdwAAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAADqYAAAAAQAAF3AAAAABAAAAAAAAAAEAAAu4AAAAAQAAOpgAAAABAAAXcAAAAAEAAAAAAAAAAQAAC7gAAAABAAA6mAAAAAEAABdwAAAAAQAAAAAAAAABAAALuAAAAAEAAC7gAAAAAQAAF3AAAAABAAAAAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAEEc3RzegAAAAAAAAAAAAAAPAAAAzQAAAAQAAAADQAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAAPAAAADQAAAA0AAAARAAAADwAAAA0AAAANAAAAEQAAAA8AAAANAAAADQAAABEAAAANAAAADQAAAQBzdGNvAAAAAAAAADwAAAAwAAADZAAAA3QAAAONAAADoAAAA7kAAAPQAAAD6wAAA/4AAAQXAAAELgAABEMAAARcAAAEbwAABIwAAAShAAAEugAABM0AAATkAAAE/wAABRIAAAUrAAAFQgAABV0AAAVwAAAFiQAABaAAAAW1AAAFzgAABeEAAAX+AAAGEwAABiwAAAY/AAAGVgAABnEAAAaEAAAGnQAABrQAAAbPAAAG4gAABvUAAAcSAAAHJwAAB0AAAAdTAAAHcAAAB4UAAAeeAAAHsQAAB8gAAAfjAAAH9gAACA8AAAgmAAAIQQAACFQAAAhnAAAIhAAACJcAAAMsdHJhawAAAFx0a2hkAAAAA9WAgl/VgIJfAAAAAgAAAAAAAAf8AAAAAAAAAAAAAAABAQAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACsm1kaWEAAAAgbWRoZAAAAADVgIJf1YCCXwAArEQAAWAAVcQAAAAAACdoZGxyAAAAAAAAAABzb3VuAAAAAAAAAAAAAAAAU3RlcmVvAAAAAmNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAidzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAIABICAgBRAFQAAAAADDUAAAAAABYCAgAISEAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAABYAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAQAAAAEAAAAUc3RzegAAAAAAAAAGAAAAWAAAAXBzdGNvAAAAAAAAAFgAAAOBAAADhwAAA5oAAAOtAAADswAAA8oAAAPfAAAD5QAAA/gAAAQLAAAEEQAABCgAAAQ9AAAEUAAABFYAAARpAAAEgAAABIYAAASbAAAErgAABLQAAATHAAAE3gAABPMAAAT5AAAFDAAABR8AAAUlAAAFPAAABVEAAAVXAAAFagAABX0AAAWDAAAFmgAABa8AAAXCAAAFyAAABdsAAAXyAAAF+AAABg0AAAYgAAAGJgAABjkAAAZQAAAGZQAABmsAAAZ+AAAGkQAABpcAAAauAAAGwwAABskAAAbcAAAG7wAABwYAAAcMAAAHIQAABzQAAAc6AAAHTQAAB2QAAAdqAAAHfwAAB5IAAAeYAAAHqwAAB8IAAAfXAAAH3QAAB/AAAAgDAAAICQAACCAAAAg1AAAIOwAACE4AAAhhAAAIeAAACH4AAAiRAAAIpAAACKoAAAiwAAAItgAACLwAAAjCAAAAFnVkdGEAAAAObmFtZVN0ZXJlbwAAAHB1ZHRhAAAAaG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAAO2lsc3QAAAAzqXRvbwAAACtkYXRhAAAAAQAAAABIYW5kQnJha2UgMC4xMC4yIDIwMTUwNjExMDA="}])}))}))),_e=1e3,Be=[0,0,.5,1],Ue=[.5,0,.5,1],Re=e.requestAnimationFrame,Qe=e.cancelAnimationFrame;function Ye(){this.leftProjectionMatrix=new Float32Array(16),this.leftViewMatrix=new Float32Array(16),this.rightProjectionMatrix=new Float32Array(16),this.rightViewMatrix=new Float32Array(16),this.pose=null}function Fe(e){Object.defineProperties(this,{hasPosition:{writable:!1,enumerable:!0,value:e.hasPosition},hasExternalDisplay:{writable:!1,enumerable:!0,value:e.hasExternalDisplay},canPresent:{writable:!1,enumerable:!0,value:e.canPresent},maxLayers:{writable:!1,enumerable:!0,value:e.maxLayers},hasOrientation:{enumerable:!0,get:function(){return _("VRDisplayCapabilities.prototype.hasOrientation","VRDisplay.prototype.getFrameData"),e.hasOrientation}}})}function Ve(e){var t=!("wakelock"in(e=e||{}))||e.wakelock;this.isPolyfilled=!0,this.displayId=_e++,this.displayName="",this.depthNear=.01,this.depthFar=1e4,this.isPresenting=!1,Object.defineProperty(this,"isConnected",{get:function(){return _("VRDisplay.prototype.isConnected","VRDisplayCapabilities.prototype.hasExternalDisplay"),!1}}),this.capabilities=new Fe({hasPosition:!1,hasOrientation:!1,hasExternalDisplay:!1,canPresent:!1,maxLayers:1}),this.stageParameters=null,this.waitingForPresent_=!1,this.layer_=null,this.originalParent_=null,this.fullscreenElement_=null,this.fullscreenWrapper_=null,this.fullscreenElementCachedStyle_=null,this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null,t&&I()&&(this.wakelock_=new Pe)}Ve.prototype.getFrameData=function(e){return S(e,this._getPose(),this)},Ve.prototype.getPose=function(){return _("VRDisplay.prototype.getPose","VRDisplay.prototype.getFrameData"),this._getPose()},Ve.prototype.resetPose=function(){return _("VRDisplay.prototype.resetPose"),this._resetPose()},Ve.prototype.getImmediatePose=function(){return _("VRDisplay.prototype.getImmediatePose","VRDisplay.prototype.getFrameData"),this._getPose()},Ve.prototype.requestAnimationFrame=function(e){return Re(e)},Ve.prototype.cancelAnimationFrame=function(e){return Qe(e)},Ve.prototype.wrapForFullscreen=function(e){if(h())return e;if(!this.fullscreenWrapper_){this.fullscreenWrapper_=document.createElement("div");var t=["height: "+Math.min(screen.height,screen.width)+"px !important","top: 0 !important","left: 0 !important","right: 0 !important","border: 0","margin: 0","padding: 0","z-index: 999999 !important","position: fixed"];this.fullscreenWrapper_.setAttribute("style",t.join("; ")+";"),this.fullscreenWrapper_.classList.add("webvr-polyfill-fullscreen-wrapper")}if(this.fullscreenElement_==e)return this.fullscreenWrapper_;if(this.fullscreenElement_&&(this.originalParent_?this.originalParent_.appendChild(this.fullscreenElement_):this.fullscreenElement_.parentElement.removeChild(this.fullscreenElement_)),this.fullscreenElement_=e,this.originalParent_=e.parentElement,this.originalParent_||document.body.appendChild(e),!this.fullscreenWrapper_.parentElement){var i=this.fullscreenElement_.parentElement;i.insertBefore(this.fullscreenWrapper_,this.fullscreenElement_),i.removeChild(this.fullscreenElement_)}this.fullscreenWrapper_.insertBefore(this.fullscreenElement_,this.fullscreenWrapper_.firstChild),this.fullscreenElementCachedStyle_=this.fullscreenElement_.getAttribute("style");var n=this;function r(){if(n.fullscreenElement_){var e=["position: absolute","top: 0","left: 0","width: "+Math.max(screen.width,screen.height)+"px","height: "+Math.min(screen.height,screen.width)+"px","border: 0","margin: 0","padding: 0"];n.fullscreenElement_.setAttribute("style",e.join("; ")+";")}}return r(),this.fullscreenWrapper_},Ve.prototype.removeFullscreenWrapper=function(){if(this.fullscreenElement_){var e=this.fullscreenElement_;this.fullscreenElementCachedStyle_?e.setAttribute("style",this.fullscreenElementCachedStyle_):e.removeAttribute("style"),this.fullscreenElement_=null,this.fullscreenElementCachedStyle_=null;var t=this.fullscreenWrapper_.parentElement;return this.fullscreenWrapper_.removeChild(e),this.originalParent_===t?t.insertBefore(e,this.fullscreenWrapper_):this.originalParent_&&this.originalParent_.appendChild(e),t.removeChild(this.fullscreenWrapper_),e}},Ve.prototype.requestPresent=function(e){var t=this.isPresenting,i=this;return e instanceof Array||(_("VRDisplay.prototype.requestPresent with non-array argument","an array of VRLayers as the first argument"),e=[e]),new Promise((function(n,r){if(i.capabilities.canPresent)if(0==e.length||e.length>i.capabilities.maxLayers)r(new Error("Invalid number of layers."));else{var o=e[0];if(o.source){var s=o.leftBounds||Be,a=o.rightBounds||Ue;if(t){var u=i.layer_;u.source!==o.source&&(u.source=o.source);for(var c=0;c<4;c++)u.leftBounds[c]=s[c],u.rightBounds[c]=a[c];return i.wrapForFullscreen(i.layer_.source),i.updatePresent_(),void n()}if(i.layer_={predistorted:o.predistorted,source:o.source,leftBounds:s.slice(0),rightBounds:a.slice(0)},i.waitingForPresent_=!1,i.layer_&&i.layer_.source){var l=i.wrapForFullscreen(i.layer_.source),p=function(){var e=x();i.isPresenting=l===e,i.isPresenting?(screen.orientation&&screen.orientation.lock&&screen.orientation.lock("landscape-primary").catch((function(e){console.error("screen.orientation.lock() failed due to",e.message)})),i.waitingForPresent_=!1,i.beginPresent_(),n()):(screen.orientation&&screen.orientation.unlock&&screen.orientation.unlock(),i.removeFullscreenWrapper(),i.disableWakeLock(),i.endPresent_(),i.removeFullscreenListeners_()),i.fireVRDisplayPresentChange_()},A=function(){i.waitingForPresent_&&(i.removeFullscreenWrapper(),i.removeFullscreenListeners_(),i.disableWakeLock(),i.waitingForPresent_=!1,i.isPresenting=!1,r(new Error("Unable to present.")))};i.addFullscreenListeners_(l,p,A),w(l)?(i.enableWakeLock(),i.waitingForPresent_=!0):(h()||d())&&(i.enableWakeLock(),i.isPresenting=!0,i.beginPresent_(),i.fireVRDisplayPresentChange_(),n())}i.waitingForPresent_||h()||(T(),r(new Error("Unable to present.")))}else n()}else r(new Error("VRDisplay is not capable of presenting."))}))},Ve.prototype.exitPresent=function(){var e=this.isPresenting,t=this;return this.isPresenting=!1,this.layer_=null,this.disableWakeLock(),new Promise((function(i,n){e?(!T()&&h()&&(t.endPresent_(),t.fireVRDisplayPresentChange_()),d()&&(t.removeFullscreenWrapper(),t.removeFullscreenListeners_(),t.endPresent_(),t.fireVRDisplayPresentChange_()),i()):n(new Error("Was not presenting to VRDisplay."))}))},Ve.prototype.getLayers=function(){return this.layer_?[this.layer_]:[]},Ve.prototype.fireVRDisplayPresentChange_=function(){var t=new CustomEvent("vrdisplaypresentchange",{detail:{display:this}});e.dispatchEvent(t)},Ve.prototype.fireVRDisplayConnect_=function(){var t=new CustomEvent("vrdisplayconnect",{detail:{display:this}});e.dispatchEvent(t)},Ve.prototype.addFullscreenListeners_=function(e,t,i){this.removeFullscreenListeners_(),this.fullscreenEventTarget_=e,this.fullscreenChangeHandler_=t,this.fullscreenErrorHandler_=i,t&&(document.fullscreenEnabled?e.addEventListener("fullscreenchange",t,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenchange",t,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenchange",t,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenchange",t,!1)),i&&(document.fullscreenEnabled?e.addEventListener("fullscreenerror",i,!1):document.webkitFullscreenEnabled?e.addEventListener("webkitfullscreenerror",i,!1):document.mozFullScreenEnabled?document.addEventListener("mozfullscreenerror",i,!1):document.msFullscreenEnabled&&e.addEventListener("msfullscreenerror",i,!1))},Ve.prototype.removeFullscreenListeners_=function(){if(this.fullscreenEventTarget_){var e=this.fullscreenEventTarget_;if(this.fullscreenChangeHandler_){var t=this.fullscreenChangeHandler_;e.removeEventListener("fullscreenchange",t,!1),e.removeEventListener("webkitfullscreenchange",t,!1),document.removeEventListener("mozfullscreenchange",t,!1),e.removeEventListener("msfullscreenchange",t,!1)}if(this.fullscreenErrorHandler_){var i=this.fullscreenErrorHandler_;e.removeEventListener("fullscreenerror",i,!1),e.removeEventListener("webkitfullscreenerror",i,!1),document.removeEventListener("mozfullscreenerror",i,!1),e.removeEventListener("msfullscreenerror",i,!1)}this.fullscreenEventTarget_=null,this.fullscreenChangeHandler_=null,this.fullscreenErrorHandler_=null}},Ve.prototype.enableWakeLock=function(){this.wakelock_&&this.wakelock_.enable()},Ve.prototype.disableWakeLock=function(){this.wakelock_&&this.wakelock_.disable()},Ve.prototype.beginPresent_=function(){},Ve.prototype.endPresent_=function(){},Ve.prototype.submitFrame=function(e){},Ve.prototype.getEyeParameters=function(e){return null};var He={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1},Ge={LEFT:"left",RIGHT:"right"};function We(t){var i=b({},He);t=b(i,t||{}),Ve.call(this,{wakelock:t.MOBILE_WAKE_LOCK}),this.config=t,this.displayName="Cardboard VRDisplay",this.capabilities=new Fe({hasPosition:!1,hasOrientation:!0,hasExternalDisplay:!1,canPresent:!0,maxLayers:1}),this.stageParameters=null,this.bufferScale_=this.config.BUFFER_SCALE,this.poseSensor_=new je(this.config),this.distorter_=null,this.cardboardUI_=null,this.dpdb_=new ge(this.config.DPDB_URL,this.onDeviceParamsUpdated_.bind(this)),this.deviceInfo_=new Ae(this.dpdb_.getDeviceParams(),t.ADDITIONAL_VIEWERS),this.viewerSelector_=new Le(t.DEFAULT_VIEWER),this.viewerSelector_.onChange(this.onViewerChanged_.bind(this)),this.deviceInfo_.setViewer(this.viewerSelector_.getCurrentViewer()),this.config.ROTATE_INSTRUCTIONS_DISABLED||(this.rotateInstructions_=new Ie),h()&&e.addEventListener("resize",this.onResize_.bind(this))}return We.prototype=Object.create(Ve.prototype),We.prototype._getPose=function(){return{position:null,orientation:this.poseSensor_.getOrientation(),linearVelocity:null,linearAcceleration:null,angularVelocity:null,angularAcceleration:null}},We.prototype._resetPose=function(){this.poseSensor_.resetPose&&this.poseSensor_.resetPose()},We.prototype._getFieldOfView=function(e){var t;if(e==Ge.LEFT)t=this.deviceInfo_.getFieldOfViewLeftEye();else{if(e!=Ge.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=this.deviceInfo_.getFieldOfViewRightEye()}return t},We.prototype._getEyeOffset=function(e){var t;if(e==Ge.LEFT)t=[.5*-this.deviceInfo_.viewer.interLensDistance,0,0];else{if(e!=Ge.RIGHT)return console.error("Invalid eye provided: %s",e),null;t=[.5*this.deviceInfo_.viewer.interLensDistance,0,0]}return t},We.prototype.getEyeParameters=function(e){var t=this._getEyeOffset(e),i=this._getFieldOfView(e),n={offset:t,renderWidth:.5*this.deviceInfo_.device.width*this.bufferScale_,renderHeight:this.deviceInfo_.device.height*this.bufferScale_};return Object.defineProperty(n,"fieldOfView",{enumerable:!0,get:function(){return _("VRFieldOfView","VRFrameData's projection matrices"),i}}),n},We.prototype.onDeviceParamsUpdated_=function(e){this.config.DEBUG&&console.log("DPDB reported that device params were updated."),this.deviceInfo_.updateDeviceParams(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_)},We.prototype.updateBounds_=function(){this.layer_&&this.distorter_&&(this.layer_.leftBounds||this.layer_.rightBounds)&&this.distorter_.setTextureBounds(this.layer_.leftBounds,this.layer_.rightBounds)},We.prototype.beginPresent_=function(){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2")),t&&(this.layer_.predistorted?this.config.CARDBOARD_UI_DISABLED||(t.canvas.width=N()*this.bufferScale_,t.canvas.height=D()*this.bufferScale_,this.cardboardUI_=new te(t)):(this.config.CARDBOARD_UI_DISABLED||(this.cardboardUI_=new te(t)),this.distorter_=new Y(t,this.cardboardUI_,this.config.BUFFER_SCALE,this.config.DIRTY_SUBMIT_FRAME_BINDINGS),this.distorter_.updateDeviceInfo(this.deviceInfo_)),this.cardboardUI_&&this.cardboardUI_.listen(function(e){this.viewerSelector_.show(this.layer_.source.parentElement),e.stopPropagation(),e.preventDefault()}.bind(this),function(e){this.exitPresent(),e.stopPropagation(),e.preventDefault()}.bind(this)),this.rotateInstructions_&&(m()&&I()?this.rotateInstructions_.showTemporarily(3e3,this.layer_.source.parentElement):this.rotateInstructions_.update()),this.orientationHandler=this.onOrientationChange_.bind(this),e.addEventListener("orientationchange",this.orientationHandler),this.vrdisplaypresentchangeHandler=this.updateBounds_.bind(this),e.addEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler),this.fireVRDisplayDeviceParamsChange_())},We.prototype.endPresent_=function(){this.distorter_&&(this.distorter_.destroy(),this.distorter_=null),this.cardboardUI_&&(this.cardboardUI_.destroy(),this.cardboardUI_=null),this.rotateInstructions_&&this.rotateInstructions_.hide(),this.viewerSelector_.hide(),e.removeEventListener("orientationchange",this.orientationHandler),e.removeEventListener("vrdisplaypresentchange",this.vrdisplaypresentchangeHandler)},We.prototype.updatePresent_=function(){this.endPresent_(),this.beginPresent_()},We.prototype.submitFrame=function(e){if(this.distorter_)this.updateBounds_(),this.distorter_.submitFrame();else if(this.cardboardUI_&&this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var i=t.canvas;i.width==this.lastWidth&&i.height==this.lastHeight||this.cardboardUI_.onResize(),this.lastWidth=i.width,this.lastHeight=i.height,this.cardboardUI_.render()}},We.prototype.onOrientationChange_=function(e){this.viewerSelector_.hide(),this.rotateInstructions_&&this.rotateInstructions_.update(),this.onResize_()},We.prototype.onResize_=function(e){if(this.layer_){var t=this.layer_.source.getContext("webgl");t||(t=this.layer_.source.getContext("experimental-webgl")),t||(t=this.layer_.source.getContext("webgl2"));var i=["position: absolute","top: 0","left: 0","width: 100vw","height: 100vh","border: 0","margin: 0","padding: 0px","box-sizing: content-box"];t.canvas.setAttribute("style",i.join("; ")+";"),O(t.canvas)}},We.prototype.onViewerChanged_=function(e){this.deviceInfo_.setViewer(e),this.distorter_&&this.distorter_.updateDeviceInfo(this.deviceInfo_),this.fireVRDisplayDeviceParamsChange_()},We.prototype.fireVRDisplayDeviceParamsChange_=function(){var t=new CustomEvent("vrdisplaydeviceparamschange",{detail:{vrdisplay:this,deviceInfo:this.deviceInfo_}});e.dispatchEvent(t)},We.VRFrameData=Ye,We.VRDisplay=Ve,We}))}))),c="0.10.12",l={ADDITIONAL_VIEWERS:[],DEFAULT_VIEWER:"",PROVIDE_MOBILE_VRDISPLAY:!0,MOBILE_WAKE_LOCK:!0,DEBUG:!1,DPDB_URL:"https://dpdb.webvr.rocks/dpdb.json",K_FILTER:.98,PREDICTION_TIME_S:.04,CARDBOARD_UI_DISABLED:!1,ROTATE_INSTRUCTIONS_DISABLED:!1,YAW_ONLY:!1,BUFFER_SCALE:.5,DIRTY_SUBMIT_FRAME_BINDINGS:!1};function h(i){this.config=a(a({},l),i),this.polyfillDisplays=[],this.enabled=!1,this.hasNative="getVRDisplays"in t,this.native={},this.native.getVRDisplays=t.getVRDisplays,this.native.VRFrameData=e.VRFrameData,this.native.VRDisplay=e.VRDisplay,(!this.hasNative||this.config.PROVIDE_MOBILE_VRDISPLAY&&o())&&(this.enable(),this.getVRDisplays().then((function(e){e&&e[0]&&e[0].fireVRDisplayConnect_&&e[0].fireVRDisplayConnect_()})))}h.prototype.getPolyfillDisplays=function(){if(this._polyfillDisplaysPopulated)return this.polyfillDisplays;if(o()){var e=new u({ADDITIONAL_VIEWERS:this.config.ADDITIONAL_VIEWERS,DEFAULT_VIEWER:this.config.DEFAULT_VIEWER,MOBILE_WAKE_LOCK:this.config.MOBILE_WAKE_LOCK,DEBUG:this.config.DEBUG,DPDB_URL:this.config.DPDB_URL,CARDBOARD_UI_DISABLED:this.config.CARDBOARD_UI_DISABLED,K_FILTER:this.config.K_FILTER,PREDICTION_TIME_S:this.config.PREDICTION_TIME_S,ROTATE_INSTRUCTIONS_DISABLED:this.config.ROTATE_INSTRUCTIONS_DISABLED,YAW_ONLY:this.config.YAW_ONLY,BUFFER_SCALE:this.config.BUFFER_SCALE,DIRTY_SUBMIT_FRAME_BINDINGS:this.config.DIRTY_SUBMIT_FRAME_BINDINGS});this.polyfillDisplays.push(e)}return this._polyfillDisplaysPopulated=!0,this.polyfillDisplays},h.prototype.enable=function(){if(this.enabled=!0,this.hasNative&&this.native.VRFrameData){var i=this.native.VRFrameData,n=new this.native.VRFrameData,r=this.native.VRDisplay.prototype.getFrameData;e.VRDisplay.prototype.getFrameData=function(e){e instanceof i?r.call(this,e):(r.call(this,n),e.pose=n.pose,s(n.leftProjectionMatrix,e.leftProjectionMatrix),s(n.rightProjectionMatrix,e.rightProjectionMatrix),s(n.leftViewMatrix,e.leftViewMatrix),s(n.rightViewMatrix,e.rightViewMatrix))}}t.getVRDisplays=this.getVRDisplays.bind(this),e.VRDisplay=u.VRDisplay,e.VRFrameData=u.VRFrameData},h.prototype.getVRDisplays=function(){var e=this;return this.config,this.hasNative?this.native.getVRDisplays.call(t).then((function(t){return t.length>0?t:e.getPolyfillDisplays()})):Promise.resolve(this.getPolyfillDisplays())},h.version=c,h.VRFrameData=u.VRFrameData,h.VRDisplay=u.VRDisplay;var d=Object.freeze({default:h}),p=d&&h||d;return void 0!==i&&i.window&&(i.document||(i.document=i.window.document),i.navigator||(i.navigator=i.window.navigator)),p}("undefined"!=typeof window?window:{screen:{width:512,height:512}},"undefined"!=typeof navigator?navigator:{userAgent:"node"});function _r(e,t){var i,n,o,s,a=new r.Vector3,u=new r.Vector3,c=null;"VRFrameData"in window&&(c=new window.VRFrameData),"undefined"!=typeof navigator&&navigator.getVRDisplays&&navigator.getVRDisplays().then((function(e){n=e,e.length>0?i=e[0]:t&&t(new Error("HMD not available"))})).catch((function(){console.warn("THREE.VREffect: Unable to get VR Displays")})),this.isPresenting=!1,this.scale=1;var l=this,h=e.getSize(new r.Vector2),d=!1,p=e.getPixelRatio();this.getVRDisplay=function(){return i},this.setVRDisplay=function(e){i=e},this.getVRDisplays=function(){return console.warn("THREE.VREffect: getVRDisplays() is being deprecated."),n},this.setSize=function(t,n,o){if(h=new r.Vector2(t,n),d=o,l.isPresenting){var s=i.getEyeParameters("left");e.setPixelRatio(1),e.setSize(2*s.renderWidth,s.renderHeight,!1)}else e.setPixelRatio(p),e.setSize(t,n,o)};var A=e.domElement,f=[0,0,.5,1],M=[.5,0,.5,1];function g(){var t=l.isPresenting;if(l.isPresenting=void 0!==i&&i.isPresenting,l.isPresenting){var n=i.getEyeParameters("left"),o=n.renderWidth,s=n.renderHeight;t||(p=e.getPixelRatio(),h=e.getSize(new r.Vector2),e.setPixelRatio(1),e.setSize(2*o,s,!1))}else t&&(e.setPixelRatio(p),e.setSize(h.width,h.height,d))}window.addEventListener("vrdisplaypresentchange",g,!1),this.setFullScreen=function(e){return new Promise((function(t,n){void 0!==i?l.isPresenting!==e?e?(i.requestPresent([{source:A}]),t()):(i.exitPresent(),t()):t():n(new Error("No VR hardware found."))}))},this.requestPresent=function(){return this.setFullScreen(!0)},this.exitPresent=function(){return this.setFullScreen(!1)},this.requestAnimationFrame=function(e){return void 0!==i?i.requestAnimationFrame(e):window.requestAnimationFrame(e)},this.cancelAnimationFrame=function(e){void 0!==i?i.cancelAnimationFrame(e):window.cancelAnimationFrame(e)},this.submitFrame=function(){void 0!==i&&l.isPresenting&&i.submitFrame()},this.autoSubmitFrame=!0;var y=new r.PerspectiveCamera;y.layers.enable(1);var m=new r.PerspectiveCamera;function v(e,t,i,n){var o=Math.PI/180;return function(e,t,i,n){i=void 0===i?.01:i,n=void 0===n?1e4:n;var o=(t=void 0===t||t)?-1:1,s=new r.Matrix4,a=s.elements,u=function(e){var t=2/(e.leftTan+e.rightTan),i=(e.leftTan-e.rightTan)*t*.5,n=2/(e.upTan+e.downTan);return{scale:[t,n],offset:[i,(e.upTan-e.downTan)*n*.5]}}(e);return a[0]=u.scale[0],a[1]=0,a[2]=u.offset[0]*o,a[3]=0,a[4]=0,a[5]=u.scale[1],a[6]=-u.offset[1]*o,a[7]=0,a[8]=0,a[9]=0,a[10]=n/(i-n)*-o,a[11]=n*i/(i-n),a[12]=0,a[13]=0,a[14]=o,a[15]=0,s.transpose(),s}({upTan:Math.tan(e.upDegrees*o),downTan:Math.tan(e.downDegrees*o),leftTan:Math.tan(e.leftDegrees*o),rightTan:Math.tan(e.rightDegrees*o)},t,i,n)}m.layers.enable(2),this.render=function(t,n){var h,d;if(i&&l.isPresenting){var p=t.autoUpdate;p&&(t.updateMatrixWorld(),t.autoUpdate=!1);var A=i.getEyeParameters("left"),g=i.getEyeParameters("right");a.fromArray(A.offset),u.fromArray(g.offset),Array.isArray(t)&&(console.warn("THREE.VREffect.render() no longer supports arrays. Use object.layers instead."),t=t[0]);var N,D,w=e.getSize(new r.Vector2),T=i.getLayers();if(T.length){var x=T[0];N=null!==x.leftBounds&&4===(null===(h=x.leftBounds)||void 0===h?void 0:h.length)?x.leftBounds:f,D=null!==x.rightBounds&&4===(null===(d=x.rightBounds)||void 0===d?void 0:d.length)?x.rightBounds:M}else N=f,D=M;o={x:Math.round(w.width*N[0]),y:Math.round(w.height*N[1]),width:Math.round(w.width*N[2]),height:Math.round(w.height*N[3])},s={x:Math.round(w.width*D[0]),y:Math.round(w.height*D[1]),width:Math.round(w.width*D[2]),height:Math.round(w.height*D[3])},e.setScissorTest(!0),e.autoClear&&e.clear(),null===n.parent&&n.updateMatrixWorld(),n.matrixWorld.decompose(y.position,y.quaternion,y.scale),n.matrixWorld.decompose(m.position,m.quaternion,m.scale);var E=this.scale;return y.translateOnAxis(a,E),m.translateOnAxis(u,E),i.getFrameData&&c?(i.depthNear=n.near,i.depthFar=n.far,i.getFrameData(c),y.projectionMatrix.elements=[].slice.call(c.leftProjectionMatrix),m.projectionMatrix.elements=[].slice.call(c.rightProjectionMatrix)):(y.projectionMatrix=v(A.fieldOfView,!0,n.near,n.far),m.projectionMatrix=v(g.fieldOfView,!0,n.near,n.far)),e.setViewport(o.x,o.y,o.width,o.height),e.setScissor(o.x,o.y,o.width,o.height),e.render(t,y),e.setViewport(s.x,s.y,s.width,s.height),e.setScissor(s.x,s.y,s.width,s.height),e.render(t,m),e.setViewport(0,0,w.width,w.height),e.setScissorTest(!1),p&&(t.autoUpdate=!0),void(l.autoSubmitFrame&&l.submitFrame())}e.render(t,n)},this.dispose=function(){window.removeEventListener("vrdisplaypresentchange",g,!1)}}var Br=new r.SphereBufferGeometry(.1,32,32);function Ur(e,t){e.setValues({color:t})}var Rr=function(e){function i(){var t=e.call(this)||this,i=new r.MeshBasicMaterial({color:8900346,opacity:.5,transparent:!0});return t.mesh=new r.Mesh(Br,i),t.current=!1,t.add(t.mesh),t.loading=!1,t.disabled=!1,t.progress=0,t.opacity=1,t.needsRender=!0,t}return t.__extends(i,e),i.prototype.setDisabled=function(e){this.disabled!==e&&(this.disabled=e)},i.prototype.setLoading=function(e){this.loading!==e&&(this.loading=e)},i.prototype.setProgress=function(e){this.progress!==e&&(this.progress=e)},i.prototype.setOpacity=function(e){this.opacity!==e&&(this.opacity=e)},i.prototype.setCurrent=function(e){this.current!==e&&(this.current=e,this.draw())},i.prototype.draw=function(){this.progress>0?Ur(this.mesh.material,16776960):this.current?Ur(this.mesh.material,65280):Ur(this.mesh.material,8900346)},i.prototype.dispose=function(){this.remove(this.mesh),Array.isArray(this.mesh.material)?this.mesh.material.forEach((function(e){return e.dispose()})):this.mesh.material.dispose()},i}(r.Object3D),Qr=null,Yr=[{zh:"1. 进入: 将手机横屏放入VR眼镜中",en:"1. Enter: Put your phone<br/> horizontally into the VR glasses",ja:"1. 入力:電話をVRメガネに水平に置きます"},{zh:"2. 前进: 视角中心对准蓝点, 直至变绿",en:"2. Forward: align the center of the viewing<br/> angle with the blue dot, until it turns green",ja:"2. 前方:緑色に変わるまで、<br/>視野角の中心を青い点に合わせます"},{zh:"3. 退出: 将手机竖屏再触碰屏幕",en:"3. Exit: Put the phone in portrait<br/> orientation and then touch the screen",ja:"3. 終了:電話を縦向きにしてから<br/>画面にタッチします"}];var Fr=function(e){function i(t){var n=this;Re(Qr)&&(Qr=new Pr(t.webvrPolyfillConfig||{}));var r=i.parseArgs(t);return(n=e.call(this,r)||this).effect=new _r(n.renderer),n.effect.setSize(n.element.offsetWidth,n.element.offsetHeight),n.effect.isPresenting=!0,n.initHelper(n.element),n}return t.__extends(i,e),i.parseArgs=function(i){var n=t.__assign(t.__assign({},i),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return e.parseArgs.call(this,n)},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.destroyHelper();for(var t=0,i=this.panoMeshes;t<i.length;t++){var n=i[t];this.helper.remove(n),n.dispose()}this.panoMeshes.length=0},i.prototype.isReady=function(){return!1},i.prototype.updateRenderSize=function(){this.effect.isPresenting=!1,this.effect.setSize(this.element.offsetWidth,this.element.offsetHeight),this.effect.isPresenting=!0,this.needsRender=!0,this.setHelperElementSize()},i.prototype.updatePanoMeshes=function(){var e=this;this.panoMeshes.forEach((function(t){e.helper.remove(t),t.dispose()})),this.panoMeshes.length=0;for(var t=0;t<this.work.observers.length;t++){var i=this.work.observers[t],n=new Rr;n.name="panoSphere_"+this.work.workCode+"_"+t,n.position.copy(i.position),n.needsRender=!0,this.helper.add(n),this.panoMeshes[t]=n}},i.prototype.updateTime=function(e,t){var i,n;if(!this.destroyed){this.needsRender=!0,this.intersect(e);var o={},s={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var a=this.locationMotion.getKeyFrameSegment(e),u=a[0],c=a[1],l=this.panoResourceFromLocationMotionKeyframe(u),h=this.panoResourceFromLocationMotionKeyframe(c),d=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),p=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),A=l.position,f=h.position,M=this.locationMotion.value.count-c.value.count+1;o.modelAlpha=this.locationMotion.value.modelAlpha,o.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),o.useBlackTransition="instant"===h.effect,h.panoPicture&&(M<1?l.panoPicture&&(o.pano0=l.panoPicture):o.pano0=h.panoPicture,o.pano1=h.panoPicture),"fade"===h.effect&&(o.pano0&&l.panoPicture&&(o.pano0={map:o.pano0.map,luminanceMap:o.pano0.luminanceMap,matrix:l.panoPicture.matrix.clone().setPosition(h.position)}),A.copy(f)),o.progress=M,s.distance=this.locationMotion.value.distance,s.offset=new r.Vector3(A.x+(f.x-A.x)*M,A.y+(f.y-A.y)*M,A.z+(f.z-A.z)*M);for(var g=[],y=[],m=0,v=this.locationMotion.keyframes;m<v.length;m++){var N=(S=v[m]).key,D=S.progress;void 0!==N&&(g.push(N),D>=this.locationMotion.progress&&y.push(N))}for(var w=0,T=Object.keys(this.panoResources);w<T.length;w++){var x=T[w];if(!(y.indexOf(x)>=0)){var E=this.panoResources[x];if(E.panoPicture){var j=E.panoPicture.map;if(j){if(j===(null===(i=o.pano0)||void 0===i?void 0:i.map))continue;if(j===(null===(n=o.pano1)||void 0===n?void 0:n.map))continue;j.dispose(),E.panoPicture=null}}g.indexOf(x)>=0||delete this.panoResources[x]}}this.currentPanoIndex=M<.5?l.panoIndex:h.panoIndex,this.emit("movingToPano",p.panoIndex,d.panoIndex,this.locationMotion.progress)}for(var z=this.work.observers[this.currentPanoIndex].visibleNodes.concat(this.currentPanoIndex),I=[],b=0,O=this.locationMotion.keyframes;b<O.length;b++){var S;(S=O[b]).progress>=this.locationMotion.progress&&I.push(this.panoResourceFromLocationMotionKeyframe(S).panoIndex)}for(var L=0;L<this.work.observers.length;L++){var k=this.work.observers[L],C=this.panoMeshes[L];if(C.visible=!0,I.indexOf(L)>=0)C.visible=!1;else if(k.loadable||k.active)if(-1===z.indexOf(L))C.visible=!1;else{C.visible=!0;var P=C.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);P<.01?C.setOpacity(0):C.setOpacity(xn(1.5/P,0,1))}else C.visible=!0}!1===En(o)&&(this.model.setMaterial(o),this.boundingMesh.setMaterial(o)),s.offset&&this.camera.position.copy(s.offset);var _=this.camera.pose.longitude,B=this.camera.pose.latitude,U=this.effect.getVRDisplay();if(U){var R=U.getPose();R&&R.orientation&&this.camera.quaternion.fromArray(R.orientation)}this.camera.updateMatrixWorld(),this.camera.computePose(),_===this.camera.pose.longitude&&B===this.camera.pose.latitude||(this.cameraMotion.set(Xt(this.camera.pose,["longitude","latitude"]),0).catch(Qe),this.emit("cameraDirectionUpdate",Xt(this.camera.pose,["longitude","latitude"]),!0),this.emit("cameraUpdate",jn(Xt(this.camera.pose,["longitude","latitude","fov","offset"])),!0))}},i.prototype.render=function(){this.effect.render(this.scene,this.camera)},i.prototype.setCamera=function(e){},i.prototype.initHelper=function(e){for(var t=this,i="five_webvr_helper_"+Fe(),n=1,r=document.getElementsByTagName("meta"),o=0;o<r.length;o++){var s=r[o];if("viewport"===s.getAttribute("name")){var a=(s.getAttribute("content")||"").match(/initial\-scale\=([\d|\.]+)/);a&&(n=Number(a[1])),isNaN(n)&&(n=1)}}var u=document.createElement("style");u.setAttribute("type","text/css");var c,l,h="\n ."+(c=i)+"{\n font-family:sans-serif;\n background:#394043;color:#ffffff;\n position:absolute;display:none;\n -webkit-tap-highlight-color:rgba(0,0,0,0);\n }\n ."+c+" img{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,-100%);\n -moz-transform:translate(-50%,-100%);\n transform:translate(-50%,-100%);\n pointer-events:none;\n width:"+(l=function(e){return Math.floor(e*n)+"px"})(132)+";\n height:"+l(162)+";\n }\n ."+c+" ol{\n position:absolute;top:50%;left:50%;\n -webkit-transform:translate(-50%,0);\n -moz-transform:translate(-50%,0);\n transform:translate(-50%,0);\n pointer-events:none;\n margin-top:"+l(38)+";\n font-size:"+l(16)+";\n line-height:"+l(30)+";\n }\n ."+c+" li{\n list-style-type:none;\n white-space:nowrap;\n position:relative;\n padding-left:"+l(14)+";\n margin-bottom:"+l(12)+";\n }\n @media screen and (orientation: portrait){\n ."+c+"{display: block!important}\n }\n ";"styleSheet"in u?u.styleSheet.cssText=h:u.appendChild(document.createTextNode(h));var d=this.helperElement=document.createElement("div");d.className=i,d.innerHTML='\n <img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTMycHgiIGhlaWdodD0iMTYycHgiIHZpZXdCb3g9IjAgMCAxMzIgMTYyIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0Ni4xICg0NDQ2MykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+R3JvdXA8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjY1Ljk4NTM0MjMgOTMuMTg5NjU1MiAwIDkzLjE4OTY1NTIgMCAwLjI0NzE1NTE3MiAxMzEuOTcwNjg1IDAuMjQ3MTU1MTcyIDEzMS45NzA2ODUgOTMuMTg5NjU1MiI+PC9wb2x5Z29uPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IuWKoOi9vemhtS1jb3B5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTE4LjAwMDAwMCwgLTE4NC4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTguMDAwMDAwLCAxODQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iUGFnZS0xIj4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iaXBob25lIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNS4wMDAwMDAsIDAuMDAwMDAwKSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4yMDIzNzg3LDMyLjI2OTE1MzIgQzYyLjIwODU3NTQsMzQuNDI4MDQyOSA2MC42ODkzNDU5LDM3LjA2MDgzNTEgNTguODA3NjA4MiwzOC4xNDI4NjEgTDU1Ljg3MDM2MjMsMzkuODQwMjM3NyBMNTUuMTc5NDI3OSwzOC42Mzc0MTMgTDU1LjEzNTAxOCwyMi4xNTMwMzY0IEw1Ni4zMTM0Mjc5LDIyLjE0Njg0MTYgQzU2LjMxMzQyNzksMjMuNDk1MjQ0MiA1Ny4yNjk3ODg1LDI0LjAzOTM1NDUgNTguNDQ3MTY1NiwyMy4zNTU4NjEgQzU5LjYxODM0NTksMjIuNjc4NTYyMyA2MC41NjIzMTMxLDIxLjAzOTAwMzkgNjAuNTYyMzEzMSwxOS42OTY3OTYxIEw2Mi4xNjQxNjU2LDE5LjY5MDYwMTMgTDYyLjIwMjM3ODcsMzIuMjY5MTUzMiBaIiBpZD0iRmlsbC0xIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4xMjAxNjg5LDUuMjYzNjIyNzMgTDYyLjE2MzU0NTksMTkuNjkxMzI0IEw2MC41NjI3MjYyLDE5LjY5NjQ4NjQgQzYwLjU1NTQ5NjcsMTguMzQxODg5IDU5LjYwNTMzMjgsMTcuNzk3Nzc4NiA1OC40Mjc5NTU3LDE4LjQ3NTA3NzMgQzU3LjI1Njc3NTQsMTkuMTUyMzc2IDU2LjMwNjYxMTUsMjAuNzk4MTI5MiA1Ni4zMTI4MDgyLDIyLjE0NzU2NDMgTDU1LjEzNTQzMTEsMjIuMTUyNzI2NiBMNTUuMDkxMDIxMyw3LjAxMDU1Nzc5IEw1NC4zOTQ5MjMsNS44MDc3MzMxMiBMNTguNzA2ODA4MiwzLjMxOTQ4NjM2IEM2MC41ODc1MTMxLDIuMjMxMjY1NTggNjIuMTIwMTY4OSwzLjEwNDczMzEyIDYyLjEyMDE2ODksNS4yNjM2MjI3MyIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNjAuMTEyNjM3NywxOS45NTYxNTE5IEM2MC4xMTI2Mzc3LDIxLjAxMzM5ODcgNTkuMzY0OSwyMi4zMTEyMTA0IDU4LjQ0MDU1NTcsMjIuODQyOTMxMiBDNTcuNTE2MjExNSwyMy4zNzU2ODQ0IDU2Ljc2MjI3NywyMi45NDUxNDU1IDU2Ljc2MjI3NywyMS44ODY4NjYyIEM1Ni43NTYwODAzLDIwLjgyMzQyNDcgNTcuNTAzODE4LDE5LjUyNTYxMyA1OC40MzQzNTksMTguOTkzODkyMiBDNTkuMzUyNTA2NiwxOC40NjIxNzE0IDYwLjEwNjQ0MSwxOC44OTI3MTA0IDYwLjExMjYzNzcsMTkuOTU2MTUxOSIgaWQ9IkZpbGwtNyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOS4wMTA4NTkwMiw1My4yOTE1MzQ0IEw4Ljk5MTIzNjA3LDQ1LjYxOTI2ODIgQzguOTkxMjM2MDcsNDUuNDc0NzIyNyA4Ljg5MDAyMjk1LDQ1LjQxNjkwNDUgOC43NjQwMjI5NSw0NS40ODYwNzk5IEM4LjYzNjk5MDE2LDQ1LjU2MzUxNDkgOC41NDE5NzM3Nyw0NS43MzM4NzIxIDguNTQxOTczNzcsNDUuODc4NDE3NSBMOC41NjA1NjM5Myw1My41NTE3MTYyIEM4LjU2MDU2MzkzLDUzLjY5MTA5OTQgOC42NjI4MDk4NCw1My43NDY4NTI2IDguNzgyNjEzMTEsNTMuNjc3Njc3MyBDOC45MDk2NDU5LDUzLjYwMjMwNzEgOS4wMTA4NTkwMiw1My40MzE5NSA5LjAxMDg1OTAyLDUzLjI5MTUzNDQgTDkuMDEwODU5MDIsNTMuMjkxNTM0NCBaIE01NS4xNzk1MzExLDM4LjYzNzcyMjcgTDU1Ljg3MDQ2NTYsMzkuODQwNTQ3NCBMOS4xODc0NjU1Nyw2Ni43ODE3NTUyIEM3LjMwNzc5MzQ0LDY3Ljg3MTAwODQgNS43NzUxMzc3LDY2Ljk5NjUwODQgNS43NzUxMzc3LDY0LjgzODY1MTMgTDUuNjkyNTE0NzUsMzcuODMyMzk4MSBDNS42ODYzMTgwMywzNS42NzU1NzM0IDcuMjA1NTQ3NTQsMzMuMDQxNzQ4NyA5LjA4NzI4NTI1LDMxLjk1ODY5MDMgTDU0LjM5NDYxMzEsNS44MDgzNTI2IEw1NS4wOTA3MTE1LDcuMDExMTc3MjcgTDExLjg5ODUzMTEsMzEuOTM5MDczNCBMMTEuOTg3MzUwOCw2My41NjU2MTg4IEw1NS4xNzk1MzExLDM4LjYzNzcyMjcgWiIgaWQ9IkZpbGwtOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IEM1NC44NjYyODY5LDAuMDAwNTE2MjMzNzY2IDU0LjM0Njc5NTEsMC4xNTAyMjQwMjYgNTMuNzk4Mzg1MiwwLjQ2NzE5MTU1OCBMNC4xNzkxNzIxMywyOS4xMDU3NzYgQzIuMjk5NSwzMC4xOTA4OTk0IDAuNzgwMjcwNDkyLDMyLjgyMTYyNjYgMC43ODU0MzQ0MjYsMzQuOTgxNTQ4NyBMMC44NjI4OTM0NDMsNjEuOTg3ODAxOSBDMC44NjU5OTE4MDMsNjMuMDYwNTM1NyAxLjI0Mzk5MTgsNjMuODE1MjY5NSAxLjg1NTQwMTY0LDY0LjE2OTQwNTggTDYuNzY0MjM3Nyw2Ny4wMjIxMTM2IEM2LjE1Mzg2MDY2LDY2LjY2Njk0NDggNS43NzQ4Mjc4Nyw2NS45MTIyMTEgNS43NzE3Mjk1MSw2NC44Mzk0NzczIEw1LjY5NTMwMzI4LDM3LjgzMzIyNCBDNS42ODkxMDY1NiwzNS42NzQzMzQ0IDcuMjA4MzM2MDcsMzMuMDQyNTc0NyA5LjA4ODAwODIsMzEuOTU3NDUxMyBMNTguNzA3MjIxMywzLjMxODg2Njg4IEM1OS4yNTY2NjM5LDMuMDAxODk5MzUgNTkuNzc1MTIzLDIuODUyMTkxNTYgNjAuMjM0NzEzMSwyLjg1MjE5MTU2IEM2MC41NjgzMDMzLDIuODUyMTkxNTYgNjAuODY5ODc3LDIuOTMwNjU5MDkgNjEuMTMwMTM5MywzLjA4MTM5OTM1IEw1Ni4yMjAyNzA1LDAuMjMwNzU2NDk0IEM1NS45NjEwNDEsMC4wNzg5ODM3NjYyIDU1LjY1ODQzNDQsMC4wMDA1MTYyMzM3NjYgNTUuMzI1ODc3LDAuMDAwNTE2MjMzNzY2IE01NS4zMjU4NzcsMC42MzM0MTg4MzEgQzU1LjU0Mzc5NTEsMC42MzM0MTg4MzEgNTUuNzM3OTU5LDAuNjgxOTQ0ODA1IDU1LjkwMjE3MjEsMC43NzY5MzE4MTggTDU4Ljg5NjIyMTMsMi41MTY2Mzk2MSBDNTguNzI4OTA5OCwyLjU4Nzg3OTg3IDU4LjU2MDU2NTYsMi42NzM1NzQ2OCA1OC4zOTExODg1LDIuNzcxNjU5MDkgTDguNzcxOTc1NDEsMzEuNDEwMjQzNSBDNi42ODQ3MTMxMSwzMi42MTQxMDA2IDUuMDU0OTc1NDEsMzUuNDM2ODY2OSA1LjA2MjIwNDkyLDM3LjgzNTI4OSBMNS4xMzg2MzExNSw2NC44NDE1NDIyIEM1LjEzODYzMTE1LDY1LjAyMTE5MTYgNS4xNDg5NTkwMiw2NS4xOTU2Nzg2IDUuMTY3NTQ5MTgsNjUuMzYyOTM4MyBMMi4xNzM1LDYzLjYyMzIzMDUgQzEuNzM4Njk2NzIsNjMuMzcwMjc2IDEuNDk4MDU3MzgsNjIuNzg3OTY0MyAxLjQ5NTk5MTgsNjEuOTg1NzM3IEwxLjQxOTU2NTU3LDM0Ljk3OTQ4MzggQzEuNDEzMzY4ODUsMzMuMDU5MDk0MiAyLjgyMzEyMjk1LDMwLjYxOTM3MzQgNC40OTUyMDQ5MiwyOS42NTQwMTYyIEw1NC4xMTU0NTA4LDEuMDE0Mzk5MzUgQzU0LjU0ODE4ODUsMC43NjU1NzQ2NzUgNTQuOTY2NDY3MiwwLjYzMzQxODgzMSA1NS4zMjU4NzcsMC42MzM0MTg4MzEiIGlkPSJGaWxsLTM1Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjA4ODUyNDU5LDMyLjI3NDIxMjMgQzkuMDMzNzg2ODksMzIuMjc0MjEyMyA4Ljk4MDA4MTk3LDMyLjI1OTc1NzggOC45Mjk0NzU0MSwzMi4yMzE4ODEyIEw0LjM4OTM0NDI2LDI5LjU5MzkyNjYgQzQuMjM3NTI0NTksMjkuNTA2MTY2OSA0LjE4NTg4NTI1LDI5LjMxMjA2MyA0LjI3MzY3MjEzLDI5LjE2MTMyMjcgQzQuMzYyNDkxOCwyOS4wMDk1NSA0LjU1NjY1NTc0LDI4Ljk1OTk5MTYgNC43MDc0NDI2MiwyOS4wNDY3MTg4IEw5LjI0NzU3Mzc3LDMxLjY4NDY3MzQgQzkuMzk4MzYwNjYsMzEuNzcyNDMzMSA5LjQ1LDMxLjk2NTUwNDUgOS4zNjIyMTMxMSwzMi4xMTcyNzczIEM5LjMwMzM0NDI2LDMyLjIxNzQyNjYgOS4xOTY5NjcyMSwzMi4yNzQyMTIzIDkuMDg4NTI0NTksMzIuMjc0MjEyMyIgaWQ9IkZpbGwtMzciPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTU4LjcwNzYzNDQsMy42MzUzMTgxOCBDNTguNjUyODk2NywzLjYzNTMxODE4IDU4LjU5OTE5MTgsMy42MjE4OTYxIDU4LjU0ODU4NTIsMy41OTI5ODcwMSBMNTMuOTY5MjA4MiwwLjkzMjMxODE4MiBDNTMuODE4NDIxMywwLjg0NDU1ODQ0MiA1My43NjY3ODIsMC42NTA0NTQ1NDUgNTMuODU0NTY4OSwwLjQ5OTcxNDI4NiBDNTMuOTQyMzU1NywwLjM0NjkwOTA5MSA1NC4xMzY1MTk3LDAuMjk4MzgzMTE3IDU0LjI4NzMwNjYsMC4zODUxMTAzOSBMNTguODY2NjgzNiwzLjA0NTc3OTIyIEM1OS4wMTc0NzA1LDMuMTMzNTM4OTYgNTkuMDY5MTA5OCwzLjMyNjYxMDM5IDU4Ljk4MTMyMywzLjQ3ODM4MzEyIEM1OC45MjI0NTQxLDMuNTc5NTY0OTQgNTguODE2MDc3LDMuNjM1MzE4MTggNTguNzA3NjM0NCwzLjYzNTMxODE4IiBpZD0iRmlsbC0zOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMy4zMjA5MjYyMyw2My4zMzk5MjE0IEMyLjc5NjI3MDQ5LDYzLjMzOTkyMTQgMi4zNzA3NjIzLDYyLjkxNTU3NzMgMi4zNzA3NjIzLDYyLjM5MDA1MTMgTDIuMzcwNzYyMyw1OC4xMzAwOTAzIEMyLjM3MDc2MjMsNTcuNjA0NTY0MyAyLjc5NjI3MDQ5LDU3LjE4MDIyMDEgMy4zMjA5MjYyMyw1Ny4xODAyMjAxIEMzLjg0NTU4MTk3LDU3LjE4MDIyMDEgNC4yNzAwNTczOCw1Ny42MDQ1NjQzIDQuMjcwMDU3MzgsNTguMTMwMDkwMyBMNC4yNzAwNTczOCw2Mi4zOTAwNTEzIEM0LjI3MDA1NzM4LDYyLjkxNTU3NzMgMy44NDU1ODE5Nyw2My4zMzk5MjE0IDMuMzIwOTI2MjMsNjMuMzM5OTIxNCIgaWQ9IkZpbGwtNDEiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTQ3IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgNjguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9IkNsaXAtNDYiPjwvZz4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBDODAuMzMyNzcwNiw1MC4yNzIxNzI0IDgxLjQ3MTM3MTgsNDguNjk5MjkzMSA4Mi43NjcwNzczLDQ3Ljk1MDUzNDUgQzgzLjM3MDM5MDIsNDcuNjAyMDg2MiA4My45NDIxMjAyLDQ3LjQ3OTcyNDEgODQuMzM4OTMwMSw0Ny42MTUwNTE3IEM4NC42MTI2NDc5LDQ3LjcwNzQzMSA4NC44MTgzNDExLDQ3LjkyNjIyNDEgODQuOTY3MzQ3Miw0OC4yODQzOTY2IEw4OC41NTQwMjIxLDU2LjkxOTQzMSBDODguNTYzNzM5OSw1Ni45NDEzMTAzIDg4LjU3NjY5NjksNTYuOTYwNzU4NiA4OC41ODcyMjQ1LDU2Ljk4MTAxNzIgQzg4LjU5Nzc1MjEsNTcuMDAwNDY1NSA4OC42MDU4NTAzLDU3LjAxOTkxMzggODguNjE3OTk3NSw1Ny4wMzg1NTE3IEM4OC42MzUwMDM3LDU3LjA2NDQ4MjggODguNjU1MjQ5MSw1Ny4wODcxNzI0IDg4LjY3NDY4NDcsNTcuMTA5ODYyMSBDODguNjg1MjEyMyw1Ny4xMjM2Mzc5IDg4LjY5NDkzMDEsNTcuMTM4MjI0MSA4OC43MDYyNjc1LDU3LjE0OTU2OSBDODguNzMyMTgxNiw1Ny4xNzYzMTAzIDg4Ljc2MDUyNTIsNTcuMTk5ODEwMyA4OC43ODk2Nzg1LDU3LjIyMTY4OTcgQzg4Ljc5Nzc3NjcsNTcuMjI4MTcyNCA4OC44MDUwNjUsNTcuMjM1NDY1NSA4OC44MTMxNjMyLDU3LjI0MTk0ODMgQzg5LjAwNzUxOSw1Ny4zNzgwODYyIDg5LjI2MjYxMSw1Ny40MjEwMzQ1IDg5LjQ5OTg4NzEsNTcuMzMyNzA2OSBMODkuODMxMTAxOCw1Ny4yMDc5MTM4IEw5MC4wNzQ4NTY0LDU3LjExODc3NTkgQzkwLjIxMDkwNTUsNTcuMDY4NTM0NSA5MC4zNDc3NjQ0LDU3LjAxODI5MzEgOTAuNDg1NDMzMSw1Ni45Njk2NzI0IEM5MC43ODY2ODQ3LDU2Ljg2MTg5NjYgOTEuMDkwMzY1Niw1Ni43NTk3OTMxIDkxLjM5NDA0NjYsNTYuNjU3Njg5NyBMOTIuMzY1MDE2LDU2LjM0MTY1NTIgQzkyLjgwMjMxNjYsNTYuMjAzMDg2MiA5My4yNDA0MjcsNTYuMDY4NTY5IDkzLjY4MjU4NjUsNTUuOTQwNTM0NSBDOTMuODUxMDI4Miw1NS44OTE5MTM4IDk0LjAxOTQ2OTksNTUuODQ0OTEzOCA5NC4xODc5MTE3LDU1Ljc5NjI5MzEgTDk0LjI3OTQyMDksNTUuNzcxMTcyNCBDOTQuNjg0MzI4OCw1NS42NTc3MjQxIDk1LjA5MDA0NjYsNTUuNTQ5OTQ4MyA5NS40OTczODQsNTUuNDQ2MjI0MSBMOTUuNjA2NzA5Miw1NS40MTcwNTE3IEM5NS43NjMwMDM3LDU1LjM3NjUzNDUgOTUuOTIwMTA4LDU1LjMzNjAxNzIgOTYuMDc3MjEyMyw1NS4yOTc5MzEgQzk2LjU2NjM0MTEsNTUuMTc3MTg5NyA5Ny4wNTU0Njk5LDU1LjA2Mzc0MTQgOTcuNTQ2MjE4NCw1NC45NTUxNTUyIEw5Ny44NTM5NDg1LDU0Ljg4NTQ2NTUgQzk4LjQ0NDMwNDMsNTQuNzU5MDUxNyA5OS4wMzcwODk2LDU0LjY0MjM2MjEgOTkuNjI3NDQ1NCw1NC41MzM3NzU5IEwxMDAuMDIxMDE2LDU0LjQ2NjUxNzIgQzEwMC42MTU0MjEsNTQuMzYxMTcyNCAxMDEuMjA5MDE2LDU0LjI2NjM2MjEgMTAxLjgwNDIzMSw1NC4xNzk2NTUyIEwxMDIuMjY1MDE2LDU0LjExMjM5NjYgQzEwMi45NjA2NDgsNTQuMDE2Nzc1OSAxMDMuNjQ3MzcyLDUzLjkzNDEyMDcgMTA0LjMwNTc1Miw1My44NjYwNTE3IEwxMDQuODM2MTgyLDUzLjgxNzQzMSBDMTA1LjIyNjUxMyw1My43ODE3NzU5IDEwNS42MTUyMjUsNTMuNzQ3NzQxNCAxMDYuMDA0NzQ2LDUzLjcyMDE4OTcgQzEwNi4yMTQ0ODgsNTMuNzA0NzkzMSAxMDYuNDIxODAxLDUzLjY5MjYzNzkgMTA2LjYzMDczNCw1My42Nzk2NzI0IEMxMDcuMDAwMDEsNTMuNjU3NzkzMSAxMDcuMzY2ODU2LDUzLjYzODM0NDggMTA3LjczNTMyMyw1My42MjM3NTg2IEMxMDcuOTUyMzUzLDUzLjYxNDg0NDggMTA4LjE2OTM4NCw1My42MDUxMjA3IDEwOC4zODU2MDUsNTMuNTk4NjM3OSBDMTA4LjY0Nzk4NSw1My41OTIxNTUyIDEwOC45MTAzNjYsNTMuNTg3MjkzMSAxMDkuMTczNTU2LDUzLjU4NDA1MTcgQzEwOS42NzgwNzEsNTMuNTc1OTQ4MyAxMTAuMTc4NTM3LDUzLjU3Njc1ODYgMTEwLjY4MDYyMyw1My41ODQ4NjIxIEwxMTAuNzY0MDM0LDUzLjU4NTY3MjQgQzExMC45ODE4NzUsNTMuNTg4OTEzOCAxMTEuMTk5NzE1LDUzLjU5MjE1NTIgMTExLjQxNTEyNiw1My41OTc4Mjc2IEMxMTEuNjI4MTA4LDUzLjYwNTEyMDcgMTExLjg0MDI4LDUzLjYxNDg0NDggMTEyLjA1MjQ1Miw1My42MjM3NTg2IEMxMTIuMzE0MDIyLDUzLjYzNDI5MzEgMTEyLjU3NDc4Myw1My42NDcyNTg2IDExMi44MzQ3MzQsNTMuNjYyNjU1MiBDMTEzLjA0NDQ3Niw1My42NzQ4MTAzIDExMy4yNTQyMTgsNTMuNjg5Mzk2NiAxMTMuNDYzOTYxLDUzLjcwNDc5MzEgQzExMy43MjQ3MjEsNTMuNzI0MjQxNCAxMTMuOTg1NDgyLDUzLjc0NDUgMTE0LjI0MzgxMyw1My43NjcxODk3IEMxMTQuNDMzMzEsNTMuNzg1MDE3MiAxMTQuNjIxOTk4LDUzLjgwMjg0NDggMTE0LjgwOTA2NSw1My44MjIyOTMxIEMxMTUuMDczODc1LDUzLjg0OTAzNDUgMTE1LjMzNjI1NSw1My44Nzk4Mjc2IDExNS41OTYyMDYsNTMuOTExNDMxIEMxMTUuNzgwMDM0LDUzLjkzMzMxMDMgMTE1Ljk2MzA1Myw1My45NTYgMTE2LjE0NDQ1Miw1My45ODAzMTAzIEMxMTYuNDEyNTAxLDU0LjAxNjc3NTkgMTE2LjY3ODEyLDU0LjA1NzI5MzEgMTE2Ljk0MTMxLDU0LjA5ODYyMDcgTDExNy4wOTExMjYsNTQuMTIxMzEwMyBDMTE3LjIxMDE2OSw1NC4xMzkxMzc5IDExNy4zMjY3ODMsNTQuMTU3Nzc1OSAxMTcuNDQyNTg3LDU0LjE3NjQxMzggQzExNy43MzA4ODEsNTQuMjI1ODQ0OCAxMTguMDE1MTI2LDU0LjI3OTMyNzYgMTE4LjMwMDk5MSw1NC4zMzUyNDE0IEwxMTguNDQ2NzU4LDU0LjM2MTk4MjggQzExOC41MzUwMjgsNTQuMzc4MTg5NyAxMTguNjIzMjk4LDU0LjM5NTIwNjkgMTE4LjcxMjM3OCw1NC40MTMwMzQ1IEMxMTkuMDE3Njc5LDU0LjQ3NDYyMDcgMTE5LjMxNzMxLDU0LjU0NDMxMDMgMTE5LjYxNTMyMyw1NC42MTQgTDExOS45NzE2NDIsNTQuNjk0MjI0MSBDMTIwLjM4NDY0OCw1NC43OTU1MTcyIDEyMC43OTE5ODUsNTQuOTAyNDgyOCAxMjEuMTkyODQ0LDU1LjAxNjc0MTQgQzEyMS42MjkzMzUsNTUuMTQyMzQ0OCAxMjIuMDU2OTE4LDU1LjI3NjA1MTcgMTIyLjQ3ODgzMiw1NS40MTc4NjIxIEMxMjIuNTU0MTQ1LDU1LjQ0MjE3MjQgMTIyLjYyNzAyOCw1NS40Njk3MjQxIDEyMi43MDA3MjEsNTUuNDk1NjU1MiBMMTIyLjg1NjIwNiw1NS41NTMxODk3IEMxMjMuMTQ1MzEsNTUuNjU0NDgyOCAxMjMuNDMyNzk1LDU1Ljc1NjU4NjIgMTIzLjcxNjIzMSw1NS44Njc2MDM0IEMxMjMuNzc2OTY3LDU1Ljg5MTEwMzQgMTIzLjgzNTI3NCw1NS45MTYyMjQxIDEyMy44OTQzOSw1NS45NDA1MzQ1IEwxMjQuMDQwOTY3LDU2LjAwMTMxMDMgQzEyNC40MTc1MzEsNTYuMTU0NDY1NSAxMjQuNzg1MTg4LDU2LjMxNDkxMzggMTI1LjE0MzkzNiw1Ni40ODI2NTUyIEwxMjUuMjMwNTg3LDU2LjUyMzE3MjQgQzEyNS4zMjc3NjQsNTYuNTY3NzQxNCAxMjUuNDI0OTQyLDU2LjYxMzEyMDcgMTI1LjUyMjEyLDU2LjY2MTc0MTQgQzEyNS44NTk4MTMsNTYuODI3MDUxNyAxMjYuMTYwMjU1LDU2Ljk4MTgyNzYgMTI2LjQzNTU5Myw1Ny4xMzA5MzEgQzEyNi40MzU1OTMsNTcuMzczMjI0MSAxMjYuNDM1NTkzLDU3LjY4NjgyNzYgMTI2LjQzNjQwMiw1OC4wMDM2NzI0IEwxMjYuNDM2NDAyLDU4LjAyNzE3MjQgQzExNy40MzUyOTgsNTMuNTMzIDEwMy4wNTg2MzYsNTMuNTYyMTcyNCA5MC4wMjU0NTc3LDU4LjE5ODE1NTIgTDg4LjQ5ODE0NDgsNTguMTg2IEw3OC44MzI5OTE0LDU1LjY4NzcwNjkgTDc5Ljg2NTUwNjcsNTEuOTU3Njg5NyBaIE03Ni4yNDQwMDk4LDU3LjQ1OTkzMSBMNzYuMjQ3MjQ5MSw1Ni40MjI2ODk3IEM3Ni4yNDcyNDkxLDU2LjQxNTM5NjYgNzYuMjQ0ODE5Niw1Ni40MDg5MTM4IDc2LjI0NDgxOTYsNTYuNDAxNjIwNyBDNzYuMjQ0MDA5OCw1Ni4zODg2NTUyIDc2LjI0NTYyOTQsNTYuMzc0ODc5MyA3Ni4yNDQwMDk4LDU2LjM2MTkxMzggTDc2LjI0NDAwOTgsNTYuMjI5MDE3MiBDNzYuMjQ0MDA5OCw1NS45NjI0MTM4IDc2LjEwMjI5Miw1NS43MTY4NzkzIDc1Ljg3MTQ5NDUsNTUuNTgzOTgyOCBDNzUuNzMyMjA2MSw1NS41MDM3NTg2IDc1LjU3MzQ4MjIsNTUuNDc3ODI3NiA3NS40MTg4MDc0LDU1LjQ5NDg0NDggQzc1LjI5MzI4NTksNTUuNDE3ODYyMSA3NS4xNjQ1MjUyLDU1LjM0MzMxMDMgNzUuMDQyMjQyOSw1NS4yNjM4OTY2IEM3NS4wMDQxODE2LDU1LjIzODc3NTkgNzQuOTY4NTQ5Nyw1NS4yMTI4NDQ4IDc0LjkyOTY3ODUsNTUuMTg2OTEzOCBDNzQuNjg5MTYzMiw1NS4wMjgwODYyIDc0LjQ1MjY5NjksNTQuODY1MjA2OSA3NC4yMjY3NTgzLDU0LjY5ODI3NTkgQzc0LjIxMjk5MTQsNTQuNjg3NzQxNCA3NC4xOTkyMjQ1LDU0LjY3NzIwNjkgNzQuMTg1NDU3Nyw1NC42Njc0ODI4IEM3My42Nzc3MDMxLDU0LjI4OTg2MjEgNzMuMjA1NTgwNCw1My44OTQ0MTM4IDcyLjc3Mzk0ODUsNTMuNDgwMzI3NiBDNzMuNDc3Njc4NSw1MS45MzAxMzc5IDczLjg0NjE0NDgsNTAuMzY2OTgyOCA3My44NDIwOTU3LDQ4LjkzMDI0MTQgQzczLjgzNzIzNjgsNDcuMTYyODc5MyA3My4yNDYwNzEyLDQ1Ljc1NTMxMDMgNzIuMTc3MTE0MSw0NC45NjYwMzQ1IEM3MS43MzczODQsNDQuNjQwMjc1OSA3MS4yMjgwMDk4LDQ0LjQzNjg3OTMgNzAuNjc3MzM1LDQ0LjM0NjEyMDcgQzcwLjY4Nzg2MjYsNDQuMzIzNDMxIDcwLjY5ODM5MDIsNDQuMjk3NSA3MC43MDg5MTc4LDQ0LjI3NDgxMDMgQzcwLjcxMDUzNzQsNDQuMjcxNTY5IDcwLjczMzIxMjMsNDQuMjI3IDcwLjczNDgzMTksNDQuMjIzNzU4NiBDNzAuNzk3OTk3NSw0NC4wOTI0ODI4IDcwLjg2NzY0MTcsNDMuOTYyODI3NiA3MC45MzcyODU5LDQzLjgzMDc0MTQgTDcxLjE4MjY2MDEsNDMuMzU2Njg5NyBDNzEuMjM2MTA4LDQzLjI2MjY4OTcgNzEuMjkxOTg1Myw0My4xNjc4NzkzIDcxLjM0ODY3MjQsNDMuMDczMDY5IEw3MS40MTUwNzczLDQyLjk2Mjg2MjEgQzcxLjUzNDkzMDEsNDIuNzYxMDg2MiA3MS42NTg4MzE5LDQyLjU1ODUgNzEuNzkwMDIyMSw0Mi4zNTY3MjQxIEM3MS44NzAxOTM5LDQyLjIzMjc0MTQgNzEuOTUzNjA0OSw0Mi4xMDg3NTg2IDcyLjAzNzgyNTgsNDEuOTg2Mzk2NiBDNzIuMTc1NDk0NSw0MS43ODYyNDE0IDcyLjMxODAyMjEsNDEuNTg2ODk2NiA3Mi40NjU0MDg2LDQxLjM4OTE3MjQgTDcyLjU2MTc3NjcsNDEuMjU3ODk2NiBDNzIuNjU0OTA1NSw0MS4xMzIyOTMxIDcyLjc0ODAzNDQsNDEuMDA1ODc5MyA3Mi44NDUyMTIzLDQwLjg4MjcwNjkgQzcyLjg4NDg5MzMsNDAuODMxNjU1MiA3Mi45MjcwMDM3LDQwLjc4MjIyNDEgNzIuOTY5MTE0MSw0MC43MzExNzI0IEw3My4wNTk4MTM1LDQwLjYyMzM5NjYgQzczLjIwOTYyOTQsNDAuNDQwMjU4NiA3My4zNTk0NDU0LDQwLjI1NzkzMSA3My41MzM1NTU4LDQwLjA1Nzc3NTkgQzczLjc2NTk3MywzOS43OTAzNjIxIDc0LjAxMDUzNzQsMzkuNTI0NTY5IDc0LjI2NDAwOTgsMzkuMjU5NTg2MiBDNzQuMzQ0MTgxNiwzOS4xNzUzMTAzIDc0LjQyNTE2MzIsMzkuMDkxMDM0NSA3NC41MDg1NzQyLDM5LjAwNjc1ODYgQzc0Ljc1NzE4NzcsMzguNzUxNSA3NS4wMTM4OTk0LDM4LjUwMDI5MzEgNzUuMjg1MTg3NywzOC4yNDM0MTM4IEw3NS4zNjEzMTA0LDM4LjE3MTI5MzEgQzc1LjQ1NjA1ODksMzguMDgxMzQ0OCA3NS41NTU2NjYzLDM3Ljk5MzgyNzYgNzUuNjU1MjczNiwzNy45MDM4NzkzIEw3NS44NzM5MjM5LDM3LjcwODU4NjIgQzc2LjAzODMxNjYsMzcuNTYxMTAzNCA3Ni4yMDE4OTk0LDM3LjQxNTI0MTQgNzYuMzcyNzcwNiwzNy4yNjkzNzkzIEM3Ni40NzM5OTc1LDM3LjE4NDI5MzEgNzYuNTc3NjU0LDM3LjA5ODM5NjYgNzYuNjgxMzEwNCwzNy4wMTMzMTAzIEw3Ni43ODkwMTYsMzYuOTIzMzYyMSBDNzcuMDIzODYyNiwzNi43MzEzMTAzIDc3LjI2MDMyODgsMzYuNTM5MjU4NiA3Ny41MDQwODM0LDM2LjM0ODgyNzYgQzc3LjY1NzEzODcsMzYuMjMwNTE3MiA3Ny44MTE4MTM1LDM2LjExMjIwNjkgNzcuOTY3Mjk4MiwzNS45OTQ3MDY5IEM3OC4yMTc1MzEzLDM1LjgwNTg5NjYgNzguNDc1MDUyOCwzNS42MTk1MTcyIDc4LjczNDE5MzksMzUuNDMzOTQ4MyBMNzguODA0NjQ3OSwzNS4zODQ1MTcyIEM3OC45MzkwNzczLDM1LjI4ODg5NjYgNzkuMDc0MzE2NiwzNS4xOTI0NjU1IDc5LjIxMDM2NTYsMzUuMDk3NjU1MiBDNzkuNTAxMDg5NiwzNC44OTgzMTAzIDc5Ljc5OTkxMTcsMzQuNzAwNTg2MiA4MC4xMDAzNTM0LDM0LjUwNTI5MzEgTDgwLjI3Njg5MzMsMzQuMzg4NjAzNCBDODAuMzcwMDIyMSwzNC4zMjc4Mjc2IDgwLjQ2MjM0MTEsMzQuMjY2MjQxNCA4MC41NjExMzg3LDM0LjIwNDY1NTIgTDgwLjgzNDg1NjQsMzQuMDM0NDgyOCBDODEuMTkzNjA0OSwzMy44MTE2Mzc5IDgxLjU1NTU5MjYsMzMuNTkwNDEzOCA4MS45MzA1Mzc0LDMzLjM3MTYyMDcgQzgyLjM0NzU5MjYsMzMuMTI5MzI3NiA4Mi43NzE5MzYyLDMyLjg5MzUxNzIgODMuMjAxMTM4NywzMi42NjA5NDgzIEM4My4yOTAyMTg0LDMyLjYxMzk0ODMgODMuMzc4NDg4MywzMi41NjY5NDgzIDgzLjQ2ODM3NzksMzIuNTIwNzU4NiBMODQuMjAyODgxLDMyLjEzOTA4NjIgQzg0LjMwMjQ4ODMsMzIuMDg3MjI0MSA4NC40MDI5MDU1LDMyLjAzNTM2MjEgODQuNTAxNzAzMSwzMS45ODUxMjA3IEw4NS4yOTM3MDMxLDMxLjYwMTAxNzIgQzg1LjQ3MjY3MjQsMzEuNTEzNSA4NS42NTI0NTE1LDMxLjQyNjc5MzEgODUuODM0NjYwMSwzMS4zNDI1MTcyIEM4Ni4wMTg0ODgzLDMxLjI1NjYyMDcgODYuMjA0NzQ2LDMxLjE3MzE1NTIgODYuMzkxMDAzNywzMS4wODg4NzkzIEM4Ni42NTc0MzMxLDMwLjk2ODk0ODMgODYuOTI1NDgyMiwzMC44NDkwMTcyIDg3LjE5NTE1MDksMzAuNzMzOTQ4MyBDODcuMzg1NDU3NywzMC42NTA0ODI4IDg3LjU3NjU3NDIsMzAuNTcwMjU4NiA4Ny43NzAxMjAyLDMwLjQ5MDAzNDUgQzg4LjAzOTc4OSwzMC4zNzczOTY2IDg4LjMxMTg4NzEsMzAuMjY2Mzc5MyA4OC41ODQ3OTUxLDMwLjE1Nzc5MzEgQzg4Ljc3NjcyMTUsMzAuMDgxNjIwNyA4OC45Njk0NTc3LDMwLjAwNDYzNzkgODkuMTYwNTc0MiwyOS45MzA4OTY2IEM4OS40MTA4MDc0LDI5LjgzNTI3NTkgODkuNjYxMDQwNSwyOS43NDIwODYyIDg5LjkxMjg5MzMsMjkuNjQ5NzA2OSBDODkuOTE1MzIyNywyOS42NDg4OTY2IDkwLjAwNDQwMjUsMjkuNjE1NjcyNCA5MC4wMDYwMjIxLDI5LjYxNDg2MjEgTDkwLjE0NDUwMDYsMjkuNTYzIEM5MC4yODYyMTg0LDI5LjUxMTk0ODMgOTAuNDI3MTI2NCwyOS40NTkyNzU5IDkwLjU3MTI3MzYsMjkuNDA5MDM0NSBDOTAuNjg1NDU3NywyOS4zNjc3MDY5IDkwLjgwMTI2MTMsMjkuMzI4ODEwMyA5MC45MTYyNTUyLDI5LjI4OTkxMzggTDkxLjAyODgxOTYsMjkuMjUxODI3NiBDOTEuMTc5NDQ1NCwyOS4xOTkxNTUyIDkxLjMzMDg4MSwyOS4xNDcyOTMxIDkxLjQ4MzkzNjIsMjkuMDk1NDMxIEw5Mi40NTI0NzYxLDI4Ljc4MDIwNjkgQzkyLjg4OTc3NjcsMjguNjQyNDQ4MyA5My4zMjcwNzczLDI4LjUwNzkzMSA5My43NjY4MDc0LDI4LjM3OTg5NjYgQzkzLjk2NjAyMjEsMjguMzIyMzYyMSA5NC4xNjYwNDY2LDI4LjI2NjQ0ODMgOTQuMzY3NjkwOCwyOC4yMDk3MjQxIEM5NC43NzA5NzkxLDI4LjA5Nzg5NjYgOTUuMTc1ODg3MSwyNy45ODg1IDk1LjU4MzIyNDUsMjcuODgzOTY1NSBMOTUuNzIyNTEyOSwyNy44NDkxMjA3IEM5NS44Njk4OTk0LDI3LjgxMDIyNDEgOTYuMDE2NDc2MSwyNy43NzIxMzc5IDk2LjE2Mzg2MjYsMjcuNzM1NjcyNCBDOTYuNjUyMTgxNiwyNy42MTY1NTE3IDk3LjE0MTMxMDQsMjcuNTAyMjkzMSA5Ny42MzY5MTc4LDI3LjM5MzcwNjkgTDk3Ljk0MDU5ODgsMjcuMzI0ODI3NiBDOTguNTMwOTU0NiwyNy4xOTc2MDM0IDk5LjEyMjkzMDEsMjcuMDgxNzI0MSA5OS43MTQwOTU3LDI2Ljk3MzEzNzkgTDEwMC4xMDc2NjYsMjYuOTA1ODc5MyBDMTAwLjcwMTI2MSwyNi44MDA1MzQ1IDEwMS4yOTQwNDcsMjYuNzA1NzI0MSAxMDEuODg3NjQyLDI2LjYxODIwNjkgTDEwMi4zNTI0NzYsMjYuNTUwOTQ4MyBDMTAzLjAzMjcyMSwyNi40NTY5NDgzIDEwMy43MTk0NDUsMjYuMzc1MTAzNCAxMDQuMzkyNDAyLDI2LjMwNjIyNDEgTDEwNC45MjQ0NTIsMjYuMjU2NzkzMSBDMTA1LjMxMzE2MywyNi4yMjAzMjc2IDEwNS43MDEwNjUsMjYuMTg3MTAzNCAxMDYuMDg5Nzc3LDI2LjE1OTU1MTcgQzEwNi4yOTc4OTksMjYuMTQ0MTU1MiAxMDYuNTA1MjEyLDI2LjEzMTE4OTcgMTA2LjcxODE5NCwyNi4xMTgyMjQxIEMxMDYuOTY1OTk4LDI2LjEwMzYzNzkgMTA3LjIxMjE4MiwyNi4wOTIyOTMxIDEwNy40NTkxNzUsMjYuMDgwOTQ4MyBMMTA3LjUxOTkxMiw0NS4yODQ1IEw4OS42Mjc4MzgsNTUuNjIxMjU4NiBMODYuMzQyNDE0Nyw0Ny43MTMxMDM0IEM4Ni4wMjkwMTYsNDYuOTU3MDUxNyA4NS41MDE4MjU4LDQ2LjQzNTE4OTcgODQuODE3NTMxMyw0Ni4yMDI2MjA3IEM4NC4wMDIwNDY2LDQ1LjkyNTQ4MjggODMuMDEwODMxOSw0Ni4wODgzNjIxIDgyLjAyMjg1NjQsNDYuNjU5NjU1MiBDODAuMzgyMTY5Myw0Ny42MDc3NTg2IDc5LjAwNTQ4MjIsNDkuNDg0NTE3MiA3OC40MzA1MTI5LDUxLjU1OSBMNzYuMjQ0MDA5OCw1OS40NTkwNTE3IEw3Ni4yNDQwMDk4LDU3LjQ1OTkzMSBaIE01OC4wMzEyNDkxLDExLjkwMTUzNDUgTDMuMjI1MzM0OTcsNDMuNjE4NDMxIEwzLjIyNTMzNDk3LDM3Ljc5NTI5MzEgQzMuMjI1MzM0OTcsMzUuMDY3NjcyNCA0LjY5MTEwMTg0LDMyLjUyNTYyMDcgNy4wNTA5MDU1MiwzMS4xNjAxODk3IEw1NC4zMDQ0NzYxLDMuODE0MjkzMSBDNTUuMDgyNzA5MiwzLjM2MjkzMTAzIDU2LjAxMDc1ODMsMy4zNjIxMjA2OSA1Ni43ODgxODE2LDMuODEyNjcyNDEgQzU3LjU2NjQxNDcsNC4yNjE2MDM0NSA1OC4wMzEyNDkxLDUuMDY2Mjc1ODYgNTguMDMxMjQ5MSw1Ljk2NDk0ODI4IEw1OC4wMzEyNDkxLDExLjkwMTUzNDUgWiBNMTI3LjIwOTc3NywyNS40Mzk5NjU1IEMxMjcuMTQ5ODUsMjUuNDA2NzQxNCAxMjcuMDg5OTI0LDI1LjM3NDMyNzYgMTI3LjAyOTk5OCwyNS4zNDI3MjQxIEMxMjYuOTUzMDY1LDI1LjMwMjIwNjkgMTI2Ljg4MDE4MiwyNS4yNjA4NzkzIDEyNi44MDMyNDksMjUuMjIwMzYyMSBDMTI2LjgwMjQzOSwyNS4yMTk1NTE3IDEyNi44MDE2MjksMjUuMjE5NTUxNyAxMjYuODAxNjI5LDI1LjIxOTU1MTcgQzEyNi42NDEyODYsMjUuMTM1Mjc1OSAxMjYuNDc5MzIzLDI1LjA1NDI0MTQgMTI2LjMxNTc0LDI0Ljk3MzIwNjkgQzEyNi4yOTcxMTQsMjQuOTY0MjkzMSAxMjYuMjc5Mjk4LDI0Ljk1NTM3OTMgMTI2LjI2MTQ4MiwyNC45NDU2NTUyIEMxMjYuMTU3ODI2LDI0Ljg5NTQxMzggMTI2LjA1MDkzLDI0Ljg0NTk4MjggMTI1LjkwNjc4MywyNC43Nzg3MjQxIEMxMjUuOTAzNTQ0LDI0Ljc3NjI5MzEgMTI1Ljg2NDY3MiwyNC43NTg0NjU1IDEyNS44NjA2MjMsMjQuNzU2MDM0NSBDMTI1Ljg0MzYxNywyNC43NDc5MzEgMTI1LjgyNDk5MSwyNC43NDE0NDgzIDEyNS44MDc5ODUsMjQuNzMyNTM0NSBDMTI1LjQ5Mjk2NywyNC41ODgyOTMxIDEyNS4xNzE0NywyNC40NDgxMDM0IDEyNC44NDUxMTQsMjQuMzEzNTg2MiBDMTI0Ljc5MjQ3NiwyNC4yOTA4OTY2IDEyNC43NDIyNjcsMjQuMjY2NTg2MiAxMjQuNjg4ODIsMjQuMjQ1NTE3MiBMMTI0LjU2MDg2OSwyNC4xOTEyMjQxIEMxMjQuNDg3OTg1LDI0LjE2MTI0MTQgMTI0LjQxNTEwMiwyNC4xMzEyNTg2IDEyNC4zNDA1OTksMjQuMTAyMDg2MiBDMTI0LjMxOTU0NCwyNC4wOTMxNzI0IDEyNC4yOTYwNTksMjQuMDg1ODc5MyAxMjQuMjc0MTk0LDI0LjA3Nzc3NTkgQzEyNC4yNTIzMjksMjQuMDY4ODYyMSAxMjQuMjI4MDM0LDI0LjA2MDc1ODYgMTI0LjIwNjE2OSwyNC4wNTE4NDQ4IEMxMjMuOTUzNTA3LDIzLjk1NjIyNDEgMTIzLjY5NzYwNSwyMy44NjMwMzQ1IDEyMy40MzkyNzQsMjMuNzcxNDY1NSBMMTIzLjI4NzgzOCwyMy43MTYzNjIxIEMxMjMuMjA1MjM3LDIzLjY4NjM3OTMgMTIzLjEyMTgyNiwyMy42NTYzOTY2IDEyMy4wMzc2MDUsMjMuNjI4MDM0NSBDMTIyLjU5NTQ0NSwyMy40Nzg5MzEgMTIyLjE0NTk5OCwyMy4zMzk1NTE3IDEyMS42ODY4MzIsMjMuMjA3NDY1NSBDMTIxLjI2ODE1NywyMy4wODgzNDQ4IDEyMC44NDMwMDQsMjIuOTc2NTE3MiAxMjAuNDEwNTYyLDIyLjg3MDM2MjEgQzEyMC4zMzM2MjksMjIuODUxNzI0MSAxMjAuMjU1MDc3LDIyLjgzNDcwNjkgMTIwLjE3NzMzNSwyMi44MTY4NzkzIEwxMjAuMDQxMjg2LDIyLjc4Njg5NjYgQzExOS43Mjg2OTcsMjIuNzEzOTY1NSAxMTkuNDE0NDg4LDIyLjY0MTg0NDggMTE5LjA5NDYxMSwyMi41NzYyMDY5IEwxMTguNjY3ODM4LDIyLjQ5NTk4MjggQzExOC4zNzIyNTUsMjIuNDM4NDQ4MyAxMTguMDc2NjcyLDIyLjM4MTcyNDEgMTE3Ljc3NzA0LDIyLjMzMTQ4MjggQzExNy42NTQ3NTgsMjIuMzExMjI0MSAxMTcuNTMxNjY2LDIyLjI5MjU4NjIgMTE3LjQwODU3NCwyMi4yNzMxMzc5IEwxMTcuMjU3MTM5LDIyLjI0OTYzNzkgQzExNi45ODE4MDEsMjIuMjA2Njg5NyAxMTYuNzA3Mjc0LDIyLjE2NDU1MTcgMTE2LjQzMDMxNywyMi4xMjcyNzU5IEMxMTYuMjY1MTE0LDIyLjEwNTM5NjYgMTE2LjA5OTEwMiwyMi4wODUxMzc5IDExNS45MzMwOSwyMi4wNjQwNjkgTDExNS44NjQyNTUsMjIuMDU1OTY1NSBDMTE1LjYwOTE2MywyMi4wMjUxNzI0IDExNS4zNTI0NTIsMjEuOTk1MTg5NyAxMTUuMTEwMzE3LDIxLjk3MDg3OTMgQzExNS4xMDQ2NDgsMjEuOTcwMDY5IDExNS4wNTI4MiwyMS45NjM1ODYyIDExNS4wNDc5NjEsMjEuOTYzNTg2MiBDMTE0Ljg1NTIyNSwyMS45NDQxMzc5IDExNC42NjAwNTksMjEuOTI0Njg5NyAxMTQuNDYzMjc0LDIxLjkwNjg2MjEgQzExNC4xOTY4NDQsMjEuODgzMzYyMSAxMTMuOTI4Nzk1LDIxLjg2MjI5MzEgMTEzLjY1OTEyNiwyMS44NDI4NDQ4IEMxMTMuNDQyMDk2LDIxLjgyNjYzNzkgMTEzLjIyNTA2NSwyMS44MTEyNDE0IDExMy4wMTQ1MTMsMjEuNzk5MDg2MiBMMTEyLjkyMDU3NCwyMS43OTQyMjQxIEMxMTIuNjgxNjc5LDIxLjc4MDQ0ODMgMTEyLjQ0MTE2MywyMS43NjgyOTMxIDExMi4xOTk4MzgsMjEuNzU3NzU4NiBDMTExLjk4MzYxNywyMS43NDg4NDQ4IDExMS43NjY1ODcsMjEuNzM5OTMxIDExMS41NDc5MzYsMjEuNzMzNDQ4MyBDMTExLjMyMzYxNywyMS43MjYxNTUyIDExMS4wOTg0ODgsMjEuNzIyOTEzOCAxMTAuODcyNTUsMjEuNzIwNDgyOCBMMTEwLjc4ODMyOSwyMS43MTg4NjIxIEMxMTAuMjc0MDk2LDIxLjcxMDc1ODYgMTA5Ljc2MTQ4MiwyMS43MDk5NDgzIDEwOS4yMzgzNDEsMjEuNzE3MjQxNCBDMTA4Ljk2ODY3MiwyMS43MjEyOTMxIDEwOC42OTk4MTMsMjEuNzI0NTM0NSAxMDguNDI4NTI1LDIxLjczMzQ0ODMgQzEwOC4yNTQ0MTUsMjEuNzM4MzEwMyAxMDguMDc5NDk0LDIxLjc0NTYwMzQgMTA3LjkwNDU3NCwyMS43NTI4OTY2IEwxMDcuNzU3MTg4LDIxLjc1Nzc1ODYgQzEwNy4zODIyNDMsMjEuNzczOTY1NSAxMDcuMDA1Njc5LDIxLjc5MjYwMzQgMTA2LjYyMDIwNiwyMS44MTY5MTM4IEMxMDYuNDA3MjI1LDIxLjgyOTA2OSAxMDYuMTk1MDUzLDIxLjg0Mjg0NDggMTA1Ljk4MjA3MSwyMS44NTc0MzEgQzEwNS41ODQ0NTIsMjEuODg2NjAzNCAxMDUuMTg2MDIyLDIxLjkyMTQ0ODMgMTA0Ljc4NTE2MywyMS45NTc5MTM4IEwxMDQuMjQwOTY3LDIyLjAwODE1NTIgQzEwMy41NjM5NjEsMjIuMDc3MDM0NSAxMDIuODYwMjMxLDIyLjE2MTMxMDMgMTAyLjE1MDAyMiwyMi4yNjAxNzI0IEwxMDEuNjczMDQsMjIuMzI5MDUxNyBDMTAxLjA2NDg2OSwyMi40MTczNzkzIDEwMC40NTc1MDcsMjIuNTE1NDMxIDk5Ljg0NjA5NTcsMjIuNjIzMjA2OSBMOTkuNDQ2MDQ2NiwyMi42OTIwODYyIEM5OC44Mzk0OTQ1LDIyLjgwMzEwMzQgOTguMjMzNzUyMSwyMi45MjIyMjQxIDk3LjYyMzE1MDksMjMuMDUzNSBMOTcuMzEyMTgxNiwyMy4xMjQgQzk2LjgxMDA5NTcsMjMuMjM1MDE3MiA5Ni4zMDgwMDk4LDIzLjM1MDA4NjIgOTUuODA4MzUzNCwyMy40NzQ4NzkzIEM5NS42MzkxMDE4LDIzLjUxNTM5NjYgOTUuNDcwNjYwMSwyMy41NTkxNTUyIDk1LjMwMjIxODQsMjMuNjAyOTEzOCBMOTUuMjEyMzI4OCwyMy42MjU2MDM0IEM5NC43OTYwODM0LDIzLjczMjU2OSA5NC4zODA2NDc5LDIzLjg0NDM5NjYgOTMuOTY2MDIyMSwyMy45NTk0NjU1IEM5My43NjExMzg3LDI0LjAxNyA5My41NTYyNTUyLDI0LjA3NDUzNDUgOTMuMzUwNTYyLDI0LjEzMzY4OTcgQzkyLjkwMDMwNDMsMjQuMjY0OTY1NSA5Mi40NTE2NjYzLDI0LjQwMjcyNDEgOTIuMDAzODM4LDI0LjU0NDUzNDUgTDkxLjgxNzU4MDQsMjQuNjAyMDY5IEM5MS43MjIwMjIxLDI0LjYzMTI0MTQgOTEuNjI3MjczNiwyNC42NjA0MTM4IDkxLjUzMzMzNSwyNC42OTEyMDY5IEM5MS40MTUxMDE4LDI0LjcyOTI5MzEgOTEuMjk2ODY4NywyNC43Njk4MTAzIDkxLjE3ODYzNTYsMjQuODEwMzI3NiBMOTAuMDc0MDQ2NiwyNS4xODg3NTg2IEM4OS45MjUwNDA1LDI1LjI0MTQzMSA4OS43Nzc2NTQsMjUuMjk1NzI0MSA4OS42MzAyNjc1LDI1LjM1MDAxNzIgTDg5LjM5Nzg1MDMsMjUuNDM1OTEzOCBDODkuMTQwMzI4OCwyNS41MzE1MzQ1IDg4Ljg4MjgwNzQsMjUuNjI2MzQ0OCA4OC42MjYwOTU3LDI1LjcyNTIwNjkgQzg4LjQyNjg4MSwyNS44MDIxODk3IDg4LjIzMDA5NTcsMjUuODc5MTcyNCA4OC4wMzQxMjAyLDI1Ljk1ODU4NjIgQzg3Ljc1MzExNDEsMjYuMDcwNDEzOCA4Ny40NzM3Mjc2LDI2LjE4MzA1MTcgODcuMTk1OTYwNywyNi4yOTk3NDE0IEM4Ny4xMDkzMTA0LDI2LjMzNjIwNjkgODcuMDIyNjYwMSwyNi4zNzI2NzI0IDg2LjkzNjAwOTgsMjYuNDA5OTQ4MyBDODYuODk4NzU4MywyNi40MjUzNDQ4IDg2Ljg2MDY5NjksMjYuNDQxNTUxNyA4Ni44MjI2MzU2LDI2LjQ1Njk0ODMgQzg2Ljc1MDU2MiwyNi40ODc3NDE0IDg2LjY3NzY3ODUsMjYuNTE3NzI0MSA4Ni42MDU2MDQ5LDI2LjU0OTMyNzYgQzg2LjMyNzgzOCwyNi42NjkyNTg2IDg2LjA1MjUwMDYsMjYuNzkxNjIwNyA4NS43Nzg3ODI4LDI2LjkxNTYwMzQgQzg1LjcxMDc1ODMsMjYuOTQ2Mzk2NiA4NS42NDM1NDM2LDI2Ljk3NzE4OTcgODUuNTc1NTE5LDI3LjAwNzE3MjQgQzg1LjQ4NjQzOTMsMjcuMDQ4NSA4NS4zOTY1NDk3LDI3LjA4OTAxNzIgODUuMzA3NDY5OSwyNy4xMjk1MzQ1IEM4NS4yNzM0NTc3LDI3LjE0NTc0MTQgODUuMjM5NDQ1NCwyNy4xNTk1MTcyIDg1LjIwNjI0MjksMjcuMTc1NzI0MSBDODUuMDQxMDQwNSwyNy4yNTI3MDY5IDg0Ljg3ODI2NzUsMjcuMzMxMzEwMyA4NC43MTU0OTQ1LDI3LjQwOTkxMzggTDg0LjIwNzczOTksMjcuNjU0NjM3OSBDODQuMTk1NTkyNiwyNy42NjExMjA3IDg0LjE4MzQ0NTQsMjcuNjY2NzkzMSA4NC4xNzEyOTgyLDI3LjY3MjQ2NTUgQzg0LjA3MDg4MSwyNy43MjE4OTY2IDgzLjk3MDQ2MzgsMjcuNzY5NzA2OSA4My44NzA4NTY0LDI3LjgxOTk0ODMgQzgzLjg1ODcwOTIsMjcuODI2NDMxIDgzLjg0NjU2MiwyNy44MzIxMDM0IDgzLjgzNDQxNDcsMjcuODM3Nzc1OSBDODMuNzI1ODk5NCwyNy44OTI4NzkzIDgzLjYxOTgxMzUsMjcuOTQ3OTgyOCA4My41MTI5MTc4LDI4LjAwMzg5NjYgTDgzLjE1NDk3OTEsMjguMTkwMjc1OSBDODIuOTM2MzI4OCwyOC4zMDQ1MzQ1IDgyLjcxNTI0OTEsMjguNDE1NTUxNyA4Mi40OTkwMjgyLDI4LjUzMjI0MTQgTDgyLjQ5MzM1OTUsMjguNTM1NDgyOCBDODIuMDUxMiwyOC43NzQ1MzQ1IDgxLjYxMzA4OTYsMjkuMDE3NjM3OSA4MS4xODIyNjc1LDI5LjI2ODg0NDggQzgwLjc5NTE3NTUsMjkuNDkzMzEwMyA4MC40MjAyMzA3LDI5LjcyMzQ0ODMgODAuMDUwOTU0NiwyOS45NTI3NzU5IEw3OS43NjI2NjAxLDMwLjEzMTA1MTcgQzc5Ljc1NjE4MTYsMzAuMTM1MTAzNCA3OS43NTA1MTI5LDMwLjEzOTE1NTIgNzkuNzQ0ODQ0MiwzMC4xNDIzOTY2IEM3OS42MDE1MDY3LDMwLjIzMjM0NDggNzkuNDY1NDU3NywzMC4zMjU1MzQ1IDc5LjMyNDU0OTcsMzAuNDE3MTAzNCBMNzkuMjg4MTA4LDMwLjQ0MDYwMzQgQzc5LjIyNzM3MTgsMzAuNDgwMzEwMyA3OS4xNjk4NzQ4LDMwLjUyMDAxNzIgNzkuMTA5OTQ4NSwzMC41NTk3MjQxIEM3Mi4zODkyODU5LDM0Ljk3NzcyNDEgNjguNDQyMjQyOSw0MC4zMjM1NjkgNjguMDcyMTU3MSw0NS41NTY3NzU5IEw2OC4wNTExMDE4LDQ1Ljg0NzY4OTcgQzY4LjA0Nzg2MjYsNDUuOTA5Mjc1OSA2OC4wNTExMDE4LDQ1Ljk3MDg2MjEgNjguMDQ4NjcyNCw0Ni4wMzMyNTg2IEM2OC4wNDU0MzMxLDQ2LjE0ODMyNzYgNjguMDMyNDc2MSw0Ni4yNjQyMDY5IDY4LjAzMjQ3NjEsNDYuMzc4NDY1NSBDNjguMDM4MTQ0OCw1MC4wMjUwMTcyIDY5Ljc5OTQ5NDUsNTMuMjI3NSA3My4xNDU2NTQsNTUuNzUwOTEzOCBDNzMuMTU1MzcxOCw1NS43NTgyMDY5IDczLjE2NTg5OTQsNTUuNzY2MzEwMyA3My4xNzY0MjcsNTUuNzczNjAzNCBDNzMuMzYxODc0OCw1NS45MTI5ODI4IDczLjU1MDU2Miw1Ni4wNDk5MzEgNzMuNzQ1NzI3Niw1Ni4xODUyNTg2IEM3My43ODM3ODksNTYuMjExMTg5NyA3My44MjE4NTAzLDU2LjIzNzkzMSA3My44NTk5MTE3LDU2LjI2Mzg2MjEgQzczLjg3NDQ4ODMsNTYuMjczNTg2MiA3My44ODY2MzU2LDU2LjI4MzMxMDMgNzMuOTAwNDAyNSw1Ni4yOTMwMzQ1IEw3My4xODkzODQsNTYuNzAzMDY5IEwzOC41NjQ4OTMzLDM2LjY5OTcwNjkgTDY4LjIyODQ1MTUsMTkuNTMzMzYyMSBDNjguMjMyNTAwNiwxOS41MzA5MzEgNjguMjM3MzU5NSwxOS41Mjc2ODk3IDY4LjI0MTQwODYsMTkuNTI2MDY5IEw5My4zNzY0NzYxLDQuOTc5NTY4OTcgTDEyOC4wMDAxNTcsMjQuOTgzNzQxNCBMMTI3LjIwOTc3NywyNS40Mzk5NjU1IFogTTEyOC4wMDUwMTYsMjkuMjMzMTg5NyBDMTI4LjAxMzkyNCwyOS4xNzI0MTM4IDEyOC4wMTIzMDQsMjkuMTEwODI3NiAxMjguMDA1MDE2LDI5LjA0OTI0MTQgTDEyOC4wMTE0OTQsMjYuNjk3NjIwNyBMMTI4Ljc0NDM3OCwyNi4yNzQ2MjA3IEwxMjguNzQ0Mzc4LDU3Ljc0MTkzMSBMMTI3LjkyOTcwMyw1OC4yMTM1NTE3IEwxMjguMDA1MDE2LDI5LjIzMzE4OTcgWiBNMTA4LjI2NjU2Miw0Ni41NzM3NTg2IEwxMTkuNDkyMjMxLDUzLjA1OTc1ODYgQzExOS4zMzE4ODcsNTMuMDIzMjkzMSAxMTkuMTczMTYzLDUyLjk4NjAxNzIgMTE5LjAxMDM5LDUyLjk1Mjc5MzEgQzExOC45MTQwMjIsNTIuOTMyNTM0NSAxMTguODE2MDM0LDUyLjkxNDcwNjkgMTE4LjcxODA0Nyw1Mi44OTYwNjkgTDExOC41ODExODgsNTIuODcwOTQ4MyBDMTE4LjI4NjQxNSw1Mi44MTQyMjQxIDExNy45OTI0NTIsNTIuNzU4MzEwMyAxMTcuNjkyMDEsNTIuNzA3MjU4NiBDMTE3LjU2ODEwOCw1Mi42ODYxODk3IDExNy40NDI1ODcsNTIuNjY3NTUxNyAxMTcuMzE3ODc1LDUyLjY0ODEwMzQgTDExNy4xNjk2NzksNTIuNjI0NjAzNCBDMTE2Ljg5NTk2MSw1Mi41ODI0NjU1IDExNi42MjE0MzMsNTIuNTQxMTM3OSAxMTYuMzQyODU2LDUyLjUwMzA1MTcgQzExNi4xNTQ5NzksNTIuNDc4NzQxNCAxMTUuOTY2MjkyLDUyLjQ1NDQzMSAxMTUuNzc1OTg1LDUyLjQzMTc0MTQgQzExNS41MDU1MDcsNTIuMzk5MzI3NiAxMTUuMjM1MDI4LDUyLjM2NzcyNDEgMTE0Ljk2MDUwMSw1Mi4zMzkzNjIxIEMxMTQuNzY3NzY0LDUyLjMxOTEwMzQgMTE0LjU3MjU5OSw1Mi4zMDEyNzU5IDExNC4zNzgyNDMsNTIuMjgyNjM3OSBDMTE0LjExMTgxMyw1Mi4yNTkxMzc5IDExMy44NDIxNDUsNTIuMjM4MDY5IDExMy41NzI0NzYsNTIuMjE3ODEwMyBDMTEzLjM1NjI1NSw1Mi4yMDI0MTM4IDExMy4xMzkyMjUsNTIuMTg3MDE3MiAxMTIuOTIyMTk0LDUyLjE3NDg2MjEgQzExMi42NTQxNDUsNTIuMTU4NjU1MiAxMTIuMzg0NDc2LDUyLjE0NTY4OTcgMTEyLjExNTYxNyw1Mi4xMzQzNDQ4IEMxMTEuODk4NTg3LDUyLjEyNDYyMDcgMTExLjY4MDc0Niw1Mi4xMTU3MDY5IDExMS40NjA0NzYsNTIuMTA5MjI0MSBDMTExLjIzNjE1Nyw1Mi4xMDE5MzEgMTExLjAxMTAyOCw1Mi4wOTg2ODk3IDExMC43ODY3MDksNTIuMDk1NDQ4MyBMMTEwLjcwMjQ4OCw1Mi4wOTM4Mjc2IEMxMTAuMTg2NjM2LDUyLjA4NjUzNDUgMTA5LjY2ODM1Myw1Mi4wODU3MjQxIDEwOS4xNTI1MDEsNTIuMDkzMDE3MiBDMTA4Ljg4MjgzMiw1Mi4wOTcwNjkgMTA4LjYxMzE2Myw1Mi4xMDExMjA3IDEwOC4zNDI2ODUsNTIuMTA5MjI0MSBDMTA4LjExOTk4NSw1Mi4xMTU3MDY5IDEwNy44OTY0NzYsNTIuMTI0NjIwNyAxMDcuNjczNzc3LDUyLjEzNDM0NDggQzEwNy4yOTcyMTIsNTIuMTQ4OTMxIDEwNi45MTk4MzgsNTIuMTY4Mzc5MyAxMDYuNTQxNjU0LDUyLjE5MTg3OTMgQzEwNi4zMjcwNTMsNTIuMjA0ODQ0OCAxMDYuMTEyNDUyLDUyLjIxNzgxMDMgMTA1Ljg5Nzg1LDUyLjIzNDAxNzIgQzEwNS40OTg2MTEsNTIuMjYyMzc5MyAxMDUuMDk4NTYyLDUyLjI5NjQxMzggMTA0LjY5OTMyMyw1Mi4zMzM2ODk3IEwxMDQuNTIzNTkzLDUyLjM0OTA4NjIgQzEwNC40MDA1MDEsNTIuMzYwNDMxIDEwNC4yNzc0MDksNTIuMzcxNzc1OSAxMDQuMTUzNTA3LDUyLjM4MzkzMSBDMTAzLjQ3ODkzLDUyLjQ1MjgxMDMgMTAyLjc3NTIsNTIuNTM3ODk2NiAxMDIuMDYwMTMzLDUyLjYzNTk0ODMgTDEwMS41ODk2MjksNTIuNzA0ODI3NiBDMTAwLjk4MDY0OCw1Mi43OTMxNTUyIDEwMC4zNzE2NjYsNTIuODkwMzk2NiA5OS43NjI2ODQ3LDUyLjk5ODE3MjQgTDk5LjM1OTM5NjMsNTMuMDY3ODYyMSBDOTguNzUzNjU0LDUzLjE3OTY4OTcgOTguMTQ3MTAxOCw1My4yOTggOTcuNTQxMzU5NSw1My40Mjc2NTUyIEw5Ny4yMjcxNTA5LDUzLjQ5OTc3NTkgQzk2LjcyMzQ0NTQsNTMuNjA5OTgyOCA5Ni4yMjIxNjkzLDUzLjcyNjY3MjQgOTUuNzIwODkzMyw1My44NTA2NTUyIEM5NS42OTE3Mzk5LDUzLjg1NzEzNzkgOTUuNjYyNTg2NSw1My44NjUyNDE0IDk1LjYzNDI0MjksNTMuODcxNzI0MSBMMTA4LjI2NjU2Miw0Ni41NzM3NTg2IFogTTEwOS4wMDkxNjMsNDUuMjgyODc5MyBMMTA4Ljk0ODQyNywyNi4wMjkwODYyIEMxMDkuMDUyODkzLDI2LjAyNjY1NTIgMTA5LjE1NjU1LDI2LjAyNDIyNDEgMTA5LjI2MDIwNiwyNi4wMjI2MDM0IEMxMDkuNzY1NTMxLDI2LjAxNTMxMDMgMTEwLjI2NTk5OCwyNi4wMTUzMTAzIDExMC43NjY0NjQsMjYuMDIzNDEzOCBMMTEwLjg0OTg3NSwyNi4wMjQyMjQxIEMxMTEuMDY4NTI1LDI2LjAyODI3NTkgMTExLjI4NzE3NSwyNi4wMzE1MTcyIDExMS41MDI1ODcsMjYuMDM4IEMxMTEuNzE0NzU4LDI2LjA0MzY3MjQgMTExLjkyNTMxLDI2LjA1MzM5NjYgMTEyLjEzNzQ4MiwyNi4wNjMxMjA3IEMxMTIuMzcxNTE5LDI2LjA3MjAzNDUgMTEyLjYwMzEyNiwyNi4wODMzNzkzIDExMi44Mzk1OTMsMjYuMDk3MTU1MiBDMTEyLjg0MTIxMiwyNi4wOTcxNTUyIDExMi45MTgxNDUsMjYuMTAxMjA2OSAxMTIuOTE5NzY0LDI2LjEwMTIwNjkgQzExMy4xMzExMjYsMjYuMTEzMzYyMSAxMTMuMzQwODY5LDI2LjEyNzk0ODMgMTEzLjU1MDYxMSwyNi4xNDQxNTUyIEMxMTMuODExMzcyLDI2LjE2Mjc5MzEgMTE0LjA3MTMyMywyNi4xODMwNTE3IDExNC4zMzA0NjQsMjYuMjA3MzYyMSBDMTE0LjUxOTE1MSwyNi4yMjM1NjkgMTE0LjcwNjIxOCwyNi4yNDEzOTY2IDExNC45NDEwNjUsMjYuMjY2NTE3MiBDMTE1LjE5MDQ4OCwyNi4yOTI0NDgzIDExNS40Mzc0ODIsMjYuMzIgMTE1LjY4Mjg1NiwyNi4zNDk5ODI4IEMxMTUuODY2Njg1LDI2LjM3MjY3MjQgMTE2LjA0ODg5MywyNi4zOTUzNjIxIDExNi4yMjk0ODIsMjYuNDE4ODYyMSBDMTE2LjQ5NzUzMSwyNi40NTUzMjc2IDExNi43NjMxNTEsMjYuNDk1ODQ0OCAxMTcuMDI5NTgsMjYuNTM3OTgyOCBMMTE3LjE0NTM4NCwyNi41NTU4MTAzIEMxMTcuMjczMzM1LDI2LjU3NTI1ODYgMTE3LjQwMjA5NiwyNi41OTQ3MDY5IDExNy41MzAwNDcsMjYuNjE2NTg2MiBDMTE3LjgxNzUzMSwyNi42NjUyMDY5IDExOC4xMDE3NzcsMjYuNzE4Njg5NyAxMTguMzg1MjEyLDI2Ljc3Mzc5MzEgTDExOC43OTc0MDksMjYuODUyMzk2NiBDMTE5LjEwMjcwOSwyNi45MTQ3OTMxIDExOS40MDMxNTEsMjYuOTgzNjcyNCAxMTkuNzAyNzgzLDI3LjA1NDE3MjQgTDEyMC4wNTgyOTIsMjcuMTMzNTg2MiBDMTIwLjQ3MTI5OCwyNy4yMzQwNjkgMTIwLjg3NzgyNiwyNy4zNDE4NDQ4IDEyMS4yNzc4NzUsMjcuNDU2MTAzNCBDMTIxLjcxNDM2NiwyNy41ODA4OTY2IDEyMi4xNDM1NjgsMjcuNzE0NjAzNCAxMjIuNTY0NjcyLDI3Ljg1NjQxMzggQzEyMi42MzUxMjYsMjcuODc5OTEzOCAxMjIuNzA1NTgsMjcuOTA1MDM0NSAxMjIuNzc1MjI1LDI3LjkzMTc3NTkgTDEyMi45NDUyODYsMjcuOTkyNTUxNyBDMTIzLjIzMjc3MSwyOC4wOTQ2NTUyIDEyMy41MjAyNTUsMjguMTk2NzU4NiAxMjMuNzk5NjQyLDI4LjMwNTM0NDggQzEyMy44NjExODgsMjguMzI5NjU1MiAxMjMuOTIwMzA0LDI4LjM1Mzk2NTUgMTIzLjk4MDIzMSwyOC4zNzkwODYyIEwxMjQuMTI3NjE3LDI4LjQ0MDY3MjQgQzEyNC41MDMzNzIsMjguNTkzODI3NiAxMjQuODcxODM4LDI4Ljc1NDI3NTkgMTI1LjIzMzAxNiwyOC45MjM2Mzc5IEwxMjUuNjA2MzQxLDI5LjA5OTQ4MjggQzEyNS43Nzk2NDIsMjkuMTg0NTY5IDEyNS45NTA1MTMsMjkuMjcyMDg2MiAxMjYuMTE3MzM1LDI5LjM1NzE3MjQgQzEyNi4yNTE3NjQsMjkuNDI3NjcyNCAxMjYuMzgyMTQ1LDI5LjUwMTQxMzggMTI2LjUxNDE0NSwyOS41NzI3MjQxIEwxMjYuNDQ3NzQsNTUuMzU3MDg2MiBMMTA5LjAwOTE2Myw0NS4yODI4NzkzIFogTTc5LjEwOTEzODcsMzIuMzU0NjM3OSBDNzkuMTM3NDgyMiwzMi4zMzUxODk3IDc5LjE2NDIwNjEsMzIuMzE1NzQxNCA3OS4xOTE3Mzk5LDMyLjI5NjI5MzEgQzc5LjU4NzczOTksMzIuMDIxNTg2MiA3OS45OTUwNzczLDMxLjc1MjU1MTcgODAuNDEyMTMyNSwzMS40ODU5NDgzIEM4MC40NTUwNTI4LDMxLjQ1NzU4NjIgODAuNDk4NzgyOCwzMS40MjkyMjQxIDgwLjU0MjUxMjksMzEuNDAxNjcyNCBDODAuOTkzNTgwNCwzMS4xMTQ4MTAzIDgxLjQ1NTk4NTMsMzAuODM0NDMxIDgxLjkzMDUzNzQsMzAuNTU4MTAzNCBDODIuMzUwMDIyMSwzMC4zMTMzNzkzIDgyLjc3Njc5NTEsMzAuMDc1OTQ4MyA4My4yMDY4MDc0LDI5Ljg0MzM3OTMgTDg0LjAxODI0MjksMjkuNDIwMzc5MyBDODQuMTcwNDg4MywyOS4zNDI1ODYyIDg0LjMyMTExNDEsMjkuMjYxNTUxNyA4NC40NzQxNjkzLDI5LjE4NDU2OSBMODQuNTAxNzAzMSwyOS4xNzA3OTMxIEw4NS4zMDUwNDA1LDI4Ljc4MDIwNjkgQzg1LjQ4NDgxOTYsMjguNjk0MzEwMyA4NS42NjI5NzkxLDI4LjYwNjc5MzEgODUuODQ0Mzc3OSwyOC41MjI1MTcyIEM4Ni4wMjQ5NjY5LDI4LjQzOTA1MTcgODYuMjA3OTg1MywyOC4zNTYzOTY2IDg2LjM5MTAwMzcsMjguMjczNzQxNCBDODYuNjU3NDMzMSwyOC4xNTM4MTAzIDg2LjkyNTQ4MjIsMjguMDM0Njg5NyA4Ny4xOTUxNTA5LDI3LjkxODgxMDMgQzg3LjM4NjI2NzUsMjcuODM2MTU1MiA4Ny41NzgxOTM5LDI3Ljc1NTEyMDcgODcuNzcwMTIwMiwyNy42NzQwODYyIEM4OC4wMzk3ODksMjcuNTYyMjU4NiA4OC4zMTE4ODcxLDI3LjQ1MjA1MTcgODguNTg0Nzk1MSwyNy4zNDM0NjU1IEM4OC43NzY3MjE1LDI3LjI2NjQ4MjggODguOTY5NDU3NywyNy4xOTExMjA3IDg5LjE2MDU3NDIsMjcuMTE2NTY5IEM4OS40MTA4MDc0LDI3LjAyMDk0ODMgODkuNjYxMDQwNSwyNi45MjY5NDgzIDg5LjkxMjg5MzMsMjYuODM0NTY5IEM4OS45MTUzMjI3LDI2LjgzMzc1ODYgOTAuMDA0NDAyNSwyNi44MDA1MzQ1IDkwLjAwNjAyMjEsMjYuNzk5NzI0MSBMOTAuMTQ0NTAwNiwyNi43NDk0ODI4IEM5MC4yODYyMTg0LDI2LjY5NjgxMDMgOTAuNDI3MTI2NCwyNi42NDQ5NDgzIDkwLjU3MTI3MzYsMjYuNTkzODk2NiBMOTEuNjU0ODA3NCwyNi4yMjI3NTg2IEM5MS43NjczNzE4LDI2LjE4Mzg2MjEgOTEuODc5OTM2MiwyNi4xNDQ5NjU1IDkxLjk5NTczOTksMjYuMTA4NSBMOTIuNDUyNDc2MSwyNS45NjU4NzkzIEM5Mi44ODk3NzY3LDI1LjgyNzMxMDMgOTMuMzI3MDc3MywyNS42OTM2MDM0IDkzLjc2NjgwNzQsMjUuNTY1NTY5IEM5My45NjY4MzE5LDI1LjUwNzIyNDEgOTQuMTY2ODU2NCwyNS40NTEzMTAzIDk0LjM2NzY5MDgsMjUuMzk1Mzk2NiBDOTQuNzcwOTc5MSwyNS4yODE5NDgzIDk1LjE3NjY5NjksMjUuMTczMzYyMSA5NS41ODMyMjQ1LDI1LjA2ODgyNzYgTDk1LjY3MzkyMzksMjUuMDQ2MTM3OSBDOTUuODM3NTA2NywyNS4wMDQgOTYuMDAwMjc5OCwyNC45NjE4NjIxIDk2LjE2Mzg2MjYsMjQuOTIxMzQ0OCBDOTYuNjUyMTgxNiwyNC44MDE0MTM4IDk3LjE0MTMxMDQsMjQuNjg3MTU1MiA5Ny42MzA0MzkzLDI0LjU4MDE4OTcgTDk3Ljk0MDU5ODgsMjQuNTA5Njg5NyBDOTguNTMwOTU0NiwyNC4zODMyNzU5IDk5LjEyMjkzMDEsMjQuMjY2NTg2MiA5OS43MTQwOTU3LDI0LjE1OCBMMTAwLjEwNjg1NiwyNC4wODk5MzEgQzEwMC43MDEyNjEsMjMuOTg1Mzk2NiAxMDEuMjk0MDQ3LDIzLjg5MDU4NjIgMTAxLjg4NzY0MiwyMy44MDM4NzkzIEwxMDIuMzUyNDc2LDIzLjczNjYyMDcgQzEwMy4wNDY0ODgsMjMuNjQxIDEwMy43MzI0MDIsMjMuNTU4MzQ0OCAxMDQuMzkyNDAyLDIzLjQ5MTA4NjIgTDEwNC45MjI4MzIsMjMuNDQyNDY1NSBDMTA1LjMxMjM1MywyMy40MDYgMTA1LjcwMTA2NSwyMy4zNzI3NzU5IDEwNi4wODk3NzcsMjMuMzQ0NDEzOCBDMTA2LjI5Nzg5OSwyMy4zMjk4Mjc2IDEwNi41MDUyMTIsMjMuMzE2MDUxNyAxMDYuNzE5MDA0LDIzLjMwMzg5NjYgQzEwNy4wODc0NywyMy4yODEyMDY5IDEwNy40NTM1MDcsMjMuMjYyNTY5IDEwNy44MTc5MjQsMjMuMjQ3MTcyNCBMMTA3Ljk2NTMxLDIzLjI0MTUgQzEwOC4xMzM3NTIsMjMuMjM1MDE3MiAxMDguMzAzMDA0LDIzLjIyNzcyNDEgMTA4LjQ3MjI1NSwyMy4yMjI4NjIxIEMxMDguNzM1NDQ1LDIzLjIxNTU2OSAxMDguOTk3ODI2LDIzLjIxMTUxNzIgMTA5LjI2MDIwNiwyMy4yMDc0NjU1IEMxMDkuNzY1NTMxLDIzLjIwMDk4MjggMTEwLjI2NTk5OCwyMy4yMDE3OTMxIDExMC43NjY0NjQsMjMuMjA4Mjc1OSBMMTEwLjg0OTg3NSwyMy4yMDkwODYyIEMxMTEuMDY4NTI1LDIzLjIxMzEzNzkgMTExLjI4NzE3NSwyMy4yMTYzNzkzIDExMS41MDQyMDYsMjMuMjIyODYyMSBDMTExLjcxNjM3OCwyMy4yMjkzNDQ4IDExMS45MjYxMiwyMy4yMzkwNjkgMTEyLjEzNTg2MywyMy4yNDcxNzI0IEMxMTIuMzY5ODk5LDIzLjI1Njg5NjYgMTEyLjYwMzEyNiwyMy4yNjkwNTE3IDExMi44Mzk1OTMsMjMuMjgyMDE3MiBDMTEyLjg0MTIxMiwyMy4yODIwMTcyIDExMi45MTgxNDUsMjMuMjg2MDY5IDExMi45MTk3NjQsMjMuMjg2MDY5IEMxMTMuMTMxMTI2LDIzLjI5OTAzNDUgMTEzLjM0MDg2OSwyMy4zMTM2MjA3IDExMy41NTA2MTEsMjMuMzI5MDE3MiBDMTEzLjgxMTM3MiwyMy4zNDc2NTUyIDExNC4wNzEzMjMsMjMuMzY5NTM0NSAxMTQuMzMyMDgzLDIzLjM5MjIyNDEgQzExNC41MTk5NjEsMjMuNDA5MjQxNCAxMTQuNzA3MDI4LDIzLjQyNzA2OSAxMTQuOTQxMDY1LDIzLjQ1MTM3OTMgQzExNS4xOTA0ODgsMjMuNDc3MzEwMyAxMTUuNDM3NDgyLDIzLjUwNTY3MjQgMTE1LjY4Mjg1NiwyMy41MzU2NTUyIEwxMTUuNzUxNjkxLDIzLjU0NDU2OSBDMTE1LjkxMTIyNSwyMy41NjMyMDY5IDExNi4wNzA3NTgsMjMuNTgyNjU1MiAxMTYuMjI5NDgyLDIzLjYwNDUzNDUgQzExNi40OTgzNDEsMjMuNjQxODEwMyAxMTYuNzYzOTYxLDIzLjY4MTUxNzIgMTE3LjAyNzk2MSwyMy43MjIwMzQ1IEwxMTcuMTgxODI2LDIzLjc0NzE1NTIgQzExNy4yOTg0MzksMjMuNzY0MTcyNCAxMTcuNDE0MjQzLDIzLjc4MTE4OTcgMTE3LjUzMDA0NywyMy44MDE0NDgzIEMxMTcuODE3NTMxLDIzLjg1MDA2OSAxMTguMTAxNzc3LDIzLjkwNDM2MjEgMTE4LjM4NzY0MiwyMy45NTk0NjU1IEwxMTguNzk3NDA5LDI0LjAzNzI1ODYgQzExOS4xMDI3MDksMjQuMDk5NjU1MiAxMTkuNDAzMTUxLDI0LjE2OTM0NDggMTE5LjcwNTIxMiwyNC4yMzkwMzQ1IEwxMjAuMDU3NDgyLDI0LjMxODQ0ODMgQzEyMC40NzA0ODgsMjQuNDE5NzQxNCAxMjAuODc3ODI2LDI0LjUyNTg5NjYgMTIxLjI3Nzg3NSwyNC42NDA5NjU1IEMxMjEuNzE0MzY2LDI0Ljc2NTc1ODYgMTIyLjE0Mjc1OCwyNC44OTg2NTUyIDEyMi41NjQ2NzIsMjUuMDQxMjc1OSBDMTIyLjYzNTEyNiwyNS4wNjQ3NzU5IDEyMi43MDU1OCwyNS4wOTA3MDY5IDEyMi43NzUyMjUsMjUuMTE2NjM3OSBMMTIyLjk0NjA5NiwyNS4xNzgyMjQxIEMxMjMuMjMzNTgsMjUuMjc4NzA2OSAxMjMuNTIwMjU1LDI1LjM4MTYyMDcgMTIzLjc5OTY0MiwyNS40OTEwMTcyIEMxMjMuODYyODA3LDI1LjUxNDUxNzIgMTIzLjkyMjczNCwyNS41NDA0NDgzIDEyMy45ODM0NywyNS41NjYzNzkzIEwxMjQuMTI3NjE3LDI1LjYyNjM0NDggQzEyNC41MDQxODIsMjUuNzc4Njg5NyAxMjQuODcyNjQ4LDI1Ljk0MDc1ODYgMTI1LjI1NjUwMSwyNi4xMTkwMzQ1IEMxMjUuMjYwNTUsMjYuMTIwNjU1MiAxMjUuMzEzOTk4LDI2LjE0NjU4NjIgMTI1LjMxODA0NywyNi4xNDgyMDY5IEMxMjUuNDE2MDM0LDI2LjE5MzU4NjIgMTI1LjUxMzIxMiwyNi4yMzk3NzU5IDEyNS42MDc5NjEsMjYuMjg1MTU1MiBDMTI1Ljc4MDQ1MiwyNi4zNzAyNDE0IDEyNS45NTEzMjMsMjYuNDU2OTQ4MyAxMjYuMTE3MzM1LDI2LjU0MzY1NTIgQzEyNi4xMTk3NjQsMjYuNTQ0NDY1NSAxMjYuMTIzMDA0LDI2LjU0NjA4NjIgMTI2LjEyNTQzMywyNi41NDc3MDY5IEMxMjYuMjU5MDUzLDI2LjYxNzM5NjYgMTI2LjM5MTA1MywyNi42ODg3MDY5IDEyNi41MjIyNDMsMjYuNzYxNjM3OSBMMTI2LjUxOTAwNCwyNy44OTEyNTg2IEMxMjYuNDMzMTYzLDI3Ljg0NzUgMTI2LjM0ODk0MiwyNy44MDM3NDE0IDEyNi4yNjE0ODIsMjcuNzYwNzkzMSBMMTI1Ljg2MTQzMywyNy41NzExNzI0IEMxMjUuNDc5MiwyNy4zOTM3MDY5IDEyNS4wODgwNTksMjcuMjIzNTM0NSAxMjQuNjg4ODIsMjcuMDU5ODQ0OCBMMTI0LjU1ODQzOSwyNy4wMDYzNjIxIEMxMjQuNDg3MTc1LDI2Ljk3NjM3OTMgMTI0LjQxNDI5MiwyNi45NDU1ODYyIDEyNC4zNDA1OTksMjYuOTE3MjI0MSBDMTI0LjA0NjYzNiwyNi44MDEzNDQ4IDEyMy43NDQ1NzQsMjYuNjkzNTY5IDEyMy40MzkyNzQsMjYuNTg1NzkzMSBMMTIzLjI4NzgzOCwyNi41MzE1IEMxMjMuMjA1MjM3LDI2LjUwMTUxNzIgMTIzLjEyMTgyNiwyNi40NzA3MjQxIDEyMy4wMzc2MDUsMjYuNDQyMzYyMSBDMTIyLjU5NDYzNiwyNi4yOTQwNjkgMTIyLjE0NTk5OCwyNi4xNTM4NzkzIDEyMS42ODY4MzIsMjYuMDIyNjAzNCBDMTIxLjI2NzM0NywyNS45MDI2NzI0IDEyMC44NDMwMDQsMjUuNzkwODQ0OCAxMjAuNDEwNTYyLDI1LjY4NTUgQzEyMC4zMzg0ODgsMjUuNjY4NDgyOCAxMjAuMjYzOTg1LDI1LjY1MTQ2NTUgMTIwLjE4OTQ4MiwyNS42MzYwNjkgTDEyMC4wNDEyODYsMjUuNjAyMDM0NSBDMTE5LjcyODY5NywyNS41MjkxMDM0IDExOS40MTQ0ODgsMjUuNDU2OTgyOCAxMTkuMDk0NjExLDI1LjM5MTM0NDggTDExOC42Njc4MzgsMjUuMzEwMzEwMyBDMTE4LjM3MjI1NSwyNS4yNTI3NzU5IDExOC4wNzY2NzIsMjUuMTk2ODYyMSAxMTcuNzc3MDQsMjUuMTQ1ODEwMyBDMTE3LjY0MTgwMSwyNS4xMjM5MzEgMTE3LjUwNTc1MiwyNS4xMDIwNTE3IDExNy4zNjk3MDMsMjUuMDgyNjAzNCBMMTE3LjI1Nzk0OCwyNS4wNjM5NjU1IEMxMTYuOTgyNjExLDI1LjAyMTgyNzYgMTE2LjcwNzI3NCwyNC45Nzk2ODk3IDExNi40Mjc4ODcsMjQuOTQyNDEzOCBDMTE2LjI0MTYyOSwyNC45MTcyOTMxIDExNi4wNTM3NTIsMjQuODk0NjAzNCAxMTUuODY0MjU1LDI0Ljg3MDI5MzEgQzExNS42MDgzNTMsMjQuODM5NSAxMTUuMzUyNDUyLDI0LjgxMDMyNzYgMTE1LjA0Nzk2MSwyNC43Nzg3MjQxIEMxMTQuODU1MjI1LDI0Ljc1OTI3NTkgMTE0LjY2MDA1OSwyNC43Mzk4Mjc2IDExNC40NjQwODMsMjQuNzIyODEwMyBDMTE0LjE5NzY1NCwyNC42OTc2ODk3IDExMy45Mjg3OTUsMjQuNjc3NDMxIDExMy42NTkxMjYsMjQuNjU3MTcyNCBDMTEzLjQ0MjA5NiwyNC42NDE3NzU5IDExMy4yMjUwNjUsMjQuNjI1NTY5IDExMy4wMTQ1MTMsMjQuNjE0MjI0MSBMMTEyLjkyMDU3NCwyNC42MDkzNjIxIEMxMTIuNjgwODY5LDI0LjU5NDc3NTkgMTEyLjQ0MDM1MywyNC41ODM0MzEgMTEyLjE5OTgzOCwyNC41NzI4OTY2IEMxMTEuOTgzNjE3LDI0LjU2Mzk4MjggMTExLjc2NzM5NiwyNC41NTUwNjkgMTExLjU0NzkzNiwyNC41NDc3NzU5IEMxMTEuMzIzNjE3LDI0LjU0MTI5MzEgMTExLjA5ODQ4OCwyNC41MzgwNTE3IDExMC44NzI1NSwyNC41MzQgTDExMC43ODgzMjksMjQuNTMyMzc5MyBDMTEwLjI3NDA5NiwyNC41MjUwODYyIDEwOS43NjE0ODIsMjQuNTI0Mjc1OSAxMDkuMjM4MzQxLDI0LjUzMTU2OSBDMTA4Ljk2ODY3MiwyNC41MzU2MjA3IDEwOC42OTk4MTMsMjQuNTQwNDgyOCAxMDguNDI4NTI1LDI0LjU0ODU4NjIgQzEwOC40MTMxMzksMjQuNTQ5Mzk2NiAxMDguMzk2OTQyLDI0LjU1MDIwNjkgMTA4LjM4MTU1NiwyNC41NTAyMDY5IEMxMDguMzIzMjQ5LDI0LjUzNTYyMDcgMTA4LjI2MzMyMywyNC41MjUwODYyIDEwOC4yMDA5NjcsMjQuNTI1MDg2MiBMMTA4LjE5ODUzNywyNC41MjUwODYyIEMxMDguMTE5MTc1LDI0LjUyNTg5NjYgMTA4LjA0Mzg2MywyNC41NDIxMDM0IDEwNy45NzI1OTksMjQuNTY0NzkzMSBDMTA3LjkwMTMzNSwyNC41NjgwMzQ1IDEwNy44MjkyNjEsMjQuNTcwNDY1NSAxMDcuNzU3OTk4LDI0LjU3Mjg5NjYgQzEwNy4zODMwNTMsMjQuNTg5MTAzNCAxMDcuMDA3Mjk4LDI0LjYwNzc0MTQgMTA2LjYyMDIwNiwyNC42MzA0MzEgQzEwNi40MDcyMjUsMjQuNjQ0MjA2OSAxMDYuMTk1MDUzLDI0LjY1NzE3MjQgMTA1Ljk4MjA3MSwyNC42NzI1NjkgQzEwNS41ODQ0NTIsMjQuNzAwOTMxIDEwNS4xODUyMTIsMjQuNzM1Nzc1OSAxMDQuNzg2NzgzLDI0Ljc3MjI0MTQgTDEwNC42MTEwNTMsMjQuNzg5MjU4NiBDMTA0LjQ4Nzk2MSwyNC43OTg5ODI4IDEwNC4zNjQwNTksMjQuODEwMzI3NiAxMDQuMjQwMTU3LDI0LjgyMzI5MzEgQzEwMy41NTAxOTQsMjQuODk0NjAzNCAxMDIuODQ2NDY0LDI0Ljk3ODA2OSAxMDIuMTUwMDIyLDI1LjA3NDUgTDEwMS42NzMwNCwyNS4xNDMzNzkzIEMxMDEuMDY0ODY5LDI1LjIzMjUxNzIgMTAwLjQ1NjY5NywyNS4zMzA1NjkgOTkuODQ5MzM1LDI1LjQzNjcyNDEgTDk5LjQ0NTIzNjgsMjUuNTA2NDEzOCBDOTguODM5NDk0NSwyNS42MTgyNDE0IDk4LjIzMzc1MjEsMjUuNzM4MTcyNCA5Ny42Mjk2Mjk0LDI1Ljg2NzAxNzIgTDk3LjMxMjE4MTYsMjUuOTM5MTM3OSBDOTYuODEwMDk1NywyNi4wNDg1MzQ1IDk2LjMwODgxOTYsMjYuMTY2MDM0NSA5NS44MDgzNTM0LDI2LjI4ODM5NjYgQzk1LjY1NTI5ODIsMjYuMzI2NDgyOCA5NS41MDIyNDI5LDI2LjM2NjE4OTcgOTUuMzQ5MTg3NywyNi40MDU4OTY2IEw5NS4yMTM5NDg1LDI2LjQ0MDc0MTQgQzk0Ljc5NjA4MzQsMjYuNTQ3NzA2OSA5NC4zODA2NDc5LDI2LjY1ODcyNDEgOTMuOTY3NjQxNywyNi43NzQ2MDM0IEM5My43NjE5NDg1LDI2LjgzMTMyNzYgOTMuNTU2MjU1MiwyNi44ODg4NjIxIDkzLjM1MDU2MiwyNi45NDg4Mjc2IEM5Mi45MDAzMDQzLDI3LjA4MDEwMzQgOTIuNDUxNjY2MywyNy4yMTc4NjIxIDkyLjAwMzgzOCwyNy4zNTk2NzI0IEw5MS4wMDkzODQsMjcuNjgzIEM5MC44NTE0Njk5LDI3LjczNDg2MjEgOTAuNjk1OTg1MywyNy43ODk5NjU1IDkwLjU0NDU0OTcsMjcuODQyNjM3OSBMOTAuNDM5MjczNiwyNy44Nzc0ODI4IEM5MC4zMTY5OTE0LDI3LjkxOTYyMDcgOTAuMTk0NzA5MiwyNy45NjA5NDgzIDkwLjA3NDA0NjYsMjguMDAzMDg2MiBDODkuOTI1MDQwNSwyOC4wNTU3NTg2IDg5Ljc3NzY1NCwyOC4xMTAwNTE3IDg5LjYzMDI2NzUsMjguMTY1MTU1MiBMODkuMzk3ODUwMywyOC4yNTAyNDE0IEM4OS4xNDAzMjg4LDI4LjM0NTA1MTcgODguODgyODA3NCwyOC40NDA2NzI0IDg4LjYyNjA5NTcsMjguNTQwMzQ0OCBDODguNDI2ODgxLDI4LjYxNjUxNzIgODguMjMwMDk1NywyOC42OTQzMTAzIDg4LjAzNDEyMDIsMjguNzczNzI0MSBDODcuNzUzMTE0MSwyOC44ODQ3NDE0IDg3LjQ3MzcyNzYsMjguOTk4MTg5NyA4Ny4xOTc1ODA0LDI5LjExNDg3OTMgQzg2Ljk5OTE3NTUsMjkuMTk1OTEzOCA4Ni44MDE1ODA0LDI5LjI4MDE4OTcgODYuNjA1NjA0OSwyOS4zNjM2NTUyIEM4Ni4zMjc4MzgsMjkuNDg0Mzk2NiA4Ni4wNTI1MDA2LDI5LjYwNTk0ODMgODUuNzc4NzgyOCwyOS43Mjk5MzEgQzg1LjU4NjA0NjYsMjkuODE2NjM3OSA4NS4zOTQ5MzAxLDI5LjkwMjUzNDUgODUuMjA2MjQyOSwyOS45OTE2NzI0IEM4NS4wMTY3NDYsMzAuMDc5MTg5NyA4NC44MzA0ODgzLDMwLjE2OTEzNzkgODQuNjQzNDIwOSwzMC4yNTk4OTY2IEw4NC4yMDc3Mzk5LDMwLjQ2ODk2NTUgQzg0LjA4MzAyODIsMzAuNTMwNTUxNyA4My45NTkxMjY0LDMwLjU5MDUxNzIgODMuODM0NDE0NywzMC42NTI5MTM4IEM4My43MjU4OTk0LDMwLjcwNzIwNjkgODMuNjE5ODEzNSwzMC43NjMxMjA3IDgzLjUxMjkxNzgsMzAuODE5MDM0NSBMODIuNzgyNDYzOCwzMS4xOTc0NjU1IEM4Mi42ODUyODU5LDMxLjI0NzcwNjkgODIuNTg4MTA4LDMxLjI5ODc1ODYgODIuNDkzMzU5NSwzMS4zNDk4MTAzIEM4Mi4wNTEyLDMxLjU4ODg2MjEgODEuNjEzMDg5NiwzMS44MzI3NzU5IDgxLjE4MTQ1NzcsMzIuMDgzOTgyOCBDODAuNzk0MzY1NiwzMi4zMDkyNTg2IDgwLjQxOTQyMDksMzIuNTM3Nzc1OSA4MC4wNDg1MjUyLDMyLjc2ODcyNDEgTDc5Ljc2MzQ2OTksMzIuOTQ1Mzc5MyBDNzkuNjU5ODEzNSwzMy4wMTEwMTcyIDc5LjU1ODU4NjUsMzMuMDc3NDY1NSA3OS40NTczNTk1LDMzLjE0MzkxMzggTDc5LjI4ODEwOCwzMy4yNTU3NDE0IEM3OC45NzYzMjg4LDMzLjQ1OTEzNzkgNzguNjY2OTc5MSwzMy42NjMzNDQ4IDc4LjM2NTcyNzYsMzMuODcwNzkzMSBDNzguMjIxNTgwNCwzMy45NzA0NjU1IDc4LjA4MDY3MjQsMzQuMDcwMTM3OSA3Ny45Mzk3NjQ0LDM0LjE3MDYyMDcgTDc3Ljg2OTMxMDQsMzQuMjIwODYyMSBDNzcuNTk4ODMxOSwzNC40MTQ1MzQ1IDc3LjMzMDc4MjgsMzQuNjA4MjA2OSA3Ny4wNzAwMjIxLDM0LjgwNTEyMDcgQzc2LjkwODA1ODksMzQuOTI3NDgyOCA3Ni43NDc3MTUzLDM1LjA0OTg0NDggNzYuNTg5ODAxMiwzNS4xNzMwMTcyIEM3Ni4zMzQ3MDkyLDM1LjM3MTU1MTcgNzYuMDg2MDk1NywzNS41NzA4OTY2IDc1Ljg0MTUzMTMsMzUuNzczNDgyOCBMNzUuNzMzODI1OCwzNS44NjI2MjA3IEM3NS42MjQ1MDA2LDM1Ljk1MjU2OSA3NS41MTQzNjU2LDM2LjA0MjUxNzIgNzUuNDA3NDY5OSwzNi4xMzQwODYyIEM3NS4yMjc2OTA4LDM2LjI4ODA1MTcgNzUuMDU0MzkwMiwzNi40NDI4Mjc2IDc0Ljg4MTA4OTYsMzYuNTk2NzkzMSBMNzQuNjYyNDM5MywzNi43OTI4OTY2IEM3NC41NTQ3MzM3LDM2Ljg4OTMyNzYgNzQuNDQ3ODM4LDM2Ljk4NDk0ODMgNzQuMzM0NDYzOCwzNy4wOTAyOTMxIEw3NC4yNTc1MzEzLDM3LjE2NDg0NDggQzczLjk3NzMzNSwzNy40MjkwMTcyIDczLjcwNjA0NjYsMzcuNjk1NjIwNyA3My40NDUyODU5LDM3Ljk2MjIyNDEgQzczLjM1NzAxNiwzOC4wNTIxNzI0IDczLjI2OTU1NTgsMzguMTQyMTIwNyA3My4xODUzMzUsMzguMjMyMDY5IEM3Mi45MTY0NzYxLDM4LjUxMzI1ODYgNzIuNjU3MzM1LDM4Ljc5NTI1ODYgNzIuMzkzMzM1LDM5LjA5NzUxNzIgQzcyLjIyNDg5MzMsMzkuMjkxMTg5NyA3Mi4wNjUzNTk1LDM5LjQ4NDg2MjEgNzEuOTA3NDQ1NCwzOS42NzkzNDQ4IEw3MS44MjcyNzM2LDM5Ljc3NDk2NTUgQzcxLjc3NjI1NTIsMzkuODM1NzQxNCA3MS43MjYwNDY2LDM5Ljg5NTcwNjkgNzEuNjc3NDU3NywzOS45NTcyOTMxIEM3MS41NjgxMzI1LDQwLjA5NTg2MjEgNzEuNDY2MDk1Nyw0MC4yMzM2MjA3IDcxLjM2NDA1ODksNDAuMzcxMzc5MyBMNzEuMjcwMTIwMiw0MC40OTk0MTM4IEM3MS4yMTE4MTM1LDQwLjU3NzIwNjkgNzEuMTU5MTc1NSw0MC42NTU4MTAzIDcxLjEwMjQ4ODMsNDAuNzMzNjAzNCBDNzIuNjkxMzQ3MiwzNy44MDk4NzkzIDc1LjQyNzcxNTMsMzQuOTIxODEwMyA3OS4xMDkxMzg3LDMyLjM1NDYzNzkgTDc5LjEwOTEzODcsMzIuMzU0NjM3OSBaIE03MS42NjIwNzEyLDUyLjI3ODU4NjIgQzcxLjYxODM0MTEsNTIuMjI0MjkzMSA3MS41NzM4MDEyLDUyLjE3MTYyMDcgNzEuNTMyNTAwNiw1Mi4xMTczMjc2IEM3MS40MzA0NjM4LDUxLjk4NTI0MTQgNzEuMzM1NzE1Myw1MS44NTE1MzQ1IDcxLjI0MTc3NjcsNTEuNzE3MDE3MiBDNzEuMTk2NDI3LDUxLjY1MjE4OTcgNzEuMTQ5NDU3Nyw1MS41ODgxNzI0IDcxLjEwNjUzNzQsNTEuNTIzMzQ0OCBDNzEuMDE3NDU3Nyw1MS4zODk2Mzc5IDcwLjkzNDA0NjYsNTEuMjU0MzEwMyA3MC44NTMwNjUsNTEuMTE4MTcyNCBDNzAuODEwOTU0Niw1MS4wNDg0ODI4IDcwLjc2ODAzNDQsNTAuOTc4NzkzMSA3MC43MjgzNTM0LDUwLjkwODI5MzEgQzcwLjY1Mzg1MDMsNTAuNzc2MjA2OSA3MC41ODMzOTYzLDUwLjY0MjUgNzAuNTE1MzcxOCw1MC41MDc5ODI4IEM3MC40NzU2OTA4LDUwLjQzMDE4OTcgNzAuNDM2MDA5OCw1MC4zNTMyMDY5IDcwLjM5OTU2ODEsNTAuMjc0NjAzNCBDNzAuMzM4ODMxOSw1MC4xNDY1NjkgNzAuMjgyOTU0Niw1MC4wMTY5MTM4IDcwLjIyODY5NjksNDkuODg3MjU4NiBDNzAuMTkxNDQ1NCw0OS43OTgxMjA3IDcwLjE1NDE5MzksNDkuNzA4MTcyNCA3MC4xMjAxODE2LDQ5LjYxNzQxMzggQzcwLjA3NDgzMTksNDkuNDk4MjkzMSA3MC4wMzI3MjE1LDQ5LjM3NzU1MTcgNjkuOTkyMjMwNyw0OS4yNTY4MTAzIEM2OS45NTc0MDg2LDQ5LjE1MDY1NTIgNjkuOTIzMzk2Myw0OS4wNDQ1IDY5Ljg5MTgxMzUsNDguOTM4MzQ0OCBDNjkuODYwMjMwNyw0OC44MzEzNzkzIDY5LjgzMTg4NzEsNDguNzIyNzkzMSA2OS44MDQzNTM0LDQ4LjYxNDIwNjkgQzY5Ljc3Mjc3MDYsNDguNDg4NjAzNCA2OS43NDI4MDc0LDQ4LjM2MTM3OTMgNjkuNzE2ODkzMyw0OC4yMzMzNDQ4IEM2OS42OTgyNjc1LDQ4LjE0MzM5NjYgNjkuNjgwNDUxNSw0OC4wNTM0NDgzIDY5LjY2NTA2NSw0Ny45NjE4NzkzIEM2OS42NTI5MTc4LDQ3Ljg5MzgxMDMgNjkuNjQ0ODE5Niw0Ny44MjQ5MzEgNjkuNjM1MTAxOCw0Ny43NTY4NjIxIEM2OS42NTA0ODgzLDQ3LjY0NTg0NDggNjkuNjY5MTE0MSw0Ny41Mjk5NjU1IDY5LjY5MzQwODYsNDcuMzkxMzk2NiBDNjkuNzEzNjU0LDQ3LjI3NzEzNzkgNjkuNzMzODk5NCw0Ny4xNjIwNjkgNjkuNzU4MTkzOSw0Ny4wNDk0MzEgQzY5Ljc5Nzg3NDgsNDYuODYwNjIwNyA2OS44NDY0NjM4LDQ2LjY3MTgxMDMgNjkuODk2NjcyNCw0Ni40ODM4MTAzIEw2OS45MjkwNjUsNDYuMzYzMDY5IEM2OS45NDYwNzEyLDQ2LjI5NSA2OS45NjM4ODcxLDQ2LjIyNjkzMSA2OS45ODgxODE2LDQ2LjE1MDc1ODYgTDcwLjAzNTk2MDcsNDYuMDAyNDY1NSBDNzAuMDU4NjM1Niw0NS45MzExNTUyIDcwLjA4MzczOTksNDUuODU3NDEzOCA3MC4xMDg4NDQyLDQ1Ljc4NDQ4MjggQzcwLjU2MDcyMTUsNDUuNzk1ODI3NiA3MC45NjIzOTAyLDQ1LjkxOTgxMDMgNzEuMjkyNzk1MSw0Ni4xNjUzNDQ4IEM3MS45NzIyMzA3LDQ2LjY2Njk0ODMgNzIuMzQ4Nzk1MSw0Ny42NTE1MTcyIDcyLjM1Mjg0NDIsNDguOTM0MjkzMSBDNzIuMzU1MjczNiw0OS45NjQyNDE0IDcyLjExMTUxOSw1MS4xMjMwMzQ1IDcxLjY2MjA3MTIsNTIuMjc4NTg2MiBMNzEuNjYyMDcxMiw1Mi4yNzg1ODYyIFogTTc0LjAyMTg3NDgsNTcuOTQzNzA2OSBMNzQuNzU0NzU4Myw1Ny41MTk4OTY2IEw3NC43NTQ3NTgzLDU3LjUyOTYyMDcgTDc0LjczNTMyMjcsNjQuNTQ4MDE3MiBMNzQuNzM1MzIyNyw2NC41NDg4Mjc2IEM3NC43MzQ1MTI5LDY0LjYwNjM2MjEgNzQuNzQyNjExLDY0LjY2MjI3NTkgNzQuNzU0NzU4Myw2NC43MTU3NTg2IEw3NC43NTQ3NTgzLDg4Ljk4ODAxNzIgTDczLjkzOTI3MzYsODkuNDU4ODI3NiBMNzQuMDIxODc0OCw1Ny45NDM3MDY5IFogTTM3Ljc0MDUwMDYsNjkuMjE5NjU1MiBMMzcuODIyMjkyLDM3Ljk5MjIwNjkgTDcyLjUzMTgxMzUsNTguMDQ1IEw3Mi40NTQwNzEyLDg3LjgyMTkzMSBDNzIuNDQ2NzgyOCw4Ny44NjQwNjkgNzIuNDQ0MzUzNCw4Ny45MDUzOTY2IDcyLjQ0NDM1MzQsODcuOTQ3NTM0NSBDNzIuNDQ1MTYzMiw4OC4wMDUwNjkgNzIuNDQ1MTYzMiw4OC42MjgyMjQxIDcyLjQ0NTk3Myw4OS4yNTA1NjkgTDcyLjQ0NTk3Myw4OS4yNjkyMDY5IEwzNy43NDA1MDA2LDY5LjIxOTY1NTIgWiBNNTguNzMzMzU5NSwxMy4yMTc1MzQ1IEw2Ni41MjI5NzkxLDE4Ljc5ODM3OTMgTDM2LjcwNzk4NTMsMzYuMDUyMjQxNCBDMzYuNzAwNjk2OSwzNi4wNTcxMDM0IDM2LjY5NDIxODQsMzYuMDYyNzc1OSAzNi42ODc3Mzk5LDM2LjA2NzYzNzkgQzM2LjY3NzIxMjMsMzYuMDczMzEwMyAzNi42NjY2ODQ3LDM2LjA3ODk4MjggMzYuNjU2OTY2OSwzNi4wODYyNzU5IEMzNi42MzUxMDE4LDM2LjEwMTY3MjQgMzYuNjE0MDQ2NiwzNi4xMTcwNjkgMzYuNTkzODAxMiwzNi4xMzU3MDY5IEMzNi41ODczMjI3LDM2LjE0MDU2OSAzNi41ODE2NTQsMzYuMTQ2MjQxNCAzNi41NzUxNzU1LDM2LjE1MTkxMzggQzM2LjU3MTEyNjQsMzYuMTU1OTY1NSAzNi41NjcwNzczLDM2LjE2MDAxNzIgMzYuNTYyMjE4NCwzNi4xNjQwNjkgQzM2LjU1ODk3OTEsMzYuMTY3MzEwMyAzNi41NTU3Mzk5LDM2LjE3MDU1MTcgMzYuNTUyNTAwNiwzNi4xNzI5ODI4IEMzNi41Mjk4MjU4LDM2LjE5NTY3MjQgMzYuNTA4NzcwNiwzNi4yMTk5ODI4IDM2LjQ4OTMzNSwzNi4yNDUxMDM0IEMzNi40ODY5MDU1LDM2LjI0ODM0NDggMzYuNDg1Mjg1OSwzNi4yNTE1ODYyIDM2LjQ4Mjg1NjQsMzYuMjU0ODI3NiBDMzYuNDc3MTg3NywzNi4yNjIxMjA3IDM2LjQ3MjMyODgsMzYuMjY5NDEzOCAzNi40NjY2NjAxLDM2LjI3NTg5NjYgQzM2LjQ2NTg1MDMsMzYuMjc4MzI3NiAzNi40NjQyMzA3LDM2LjI3OTk0ODMgMzYuNDYyNjExLDM2LjI4MjM3OTMgQzM2LjQ1MjA4MzQsMzYuMjk3Nzc1OSAzNi40Mzk5MzYyLDM2LjMxMDc0MTQgMzYuNDMwMjE4NCwzNi4zMjY5NDgzIEMzNi4zNTAwNDY2LDM2LjQ2NzEzNzkgMzYuMzIwODkzMywzNi42MjE5MTM4IDM2LjMzNTQ2OTksMzYuNzcxODI3NiBMMzYuMjUzNjc4NSw2OC4xODk3MDY5IEwzLjg1Mzc1MjE1LDQ0Ljk3ODE4OTcgTDU4LjczMzM1OTUsMTMuMjE3NTM0NSBaIE0xMzAuNzI5MjM3LDIyLjgzMTQ2NTUgTDk0LjYxNzExNDEsMS45NjgzMjc1OSBDOTQuMjMzMjYxMywxLjc0NjI5MzEgOTMuODA0MDU4OSwxLjYzNTI3NTg2IDkzLjM3NTY2NjMsMS42MzUyNzU4NiBDOTIuOTQ2NDYzOCwxLjYzNTI3NTg2IDkyLjUxNzI2MTMsMS43NDYyOTMxIDkyLjEzMjU5ODgsMS45NjkxMzc5MyBMNjguMDM4MTQ0OCwxNS45MTM1NTE3IEw2MS4yNjA3OTUxLDExLjA1NTUzNDUgTDYxLjI2MDc5NTEsNS45NjI1MTcyNCBDNjEuMjYwNzk1MSwyLjgxMTg5NjU1IDU4LjY5NjEwOCwwLjI0NzE1NTE3MiA1NS41NDM0OTQ1LDAuMjQ3MTU1MTcyIEM1NC41NDgyMzA3LDAuMjQ3MTU1MTcyIDUzLjU2MTA2NSwwLjUxNTM3OTMxIDUyLjY4NzI3MzYsMS4wMjE4NDQ4MyBMNS40MzUzMjI3LDI4LjM2NjkzMSBDMi4wODM0OTQ0OCwzMC4zMDI4NDQ4IC0wLjAwMDE2MTk2MzE5LDMzLjkxNjE3MjQgLTAuMDAwMTYxOTYzMTksMzcuNzk1MjkzMSBMLTAuMDAwMTYxOTYzMTksNDQuOTEwOTMxIEMtMC4wMDAxNjE5NjMxOSw0NS43MTE1NTE3IDAuMzg2MTIwMjQ1LDQ2LjQ2NDM2MjEgMS4wMzcyMTIyNyw0Ni45MzAzMTAzIEwzNS41NDk5NDg1LDcxLjY2Mjg0NDggQzM1LjU2MjkwNTUsNzEuNjcyNTY5IDM1LjU3NjY3MjQsNzEuNjgyMjkzMSAzNS41ODk2Mjk0LDcxLjY5MTIwNjkgTDM1LjY2ODk5MTQsNzEuNzQ1NSBDMzUuNzIyNDM5Myw3MS43ODI3NzU5IDM1Ljc3NzUwNjcsNzEuODE3NjIwNyAzNS44MzQxOTM5LDcxLjg1MDAzNDUgTDcxLjUyNTIxMjMsOTIuNDY2MDE3MiBDNzEuOTk0OTA1NSw5Mi45MzUyMDY5IDcyLjYzMDYxMSw5My4xODk2NTUyIDczLjI3OTI3MzYsOTMuMTg5NjU1MiBDNzMuNzAwMzc3OSw5My4xODk2NTUyIDc0LjEyNzk2MDcsOTMuMDgxODc5MyA3NC41MTkxMDE4LDkyLjg1NTc5MzEgTDc2Ljc0MzY2NjMsOTEuNTY4OTY1NSBDNzcuNTExMzcxOCw5MS4xMjQ4OTY2IDc3Ljk4MzQ5NDUsOTAuMzA0ODI3NiA3Ny45ODM0OTQ1LDg5LjQxODMxMDMgTDc3Ljk4MzQ5NDUsNjUuMjQ4OTY1NSBDNzguMDA1MzU5NSw2NS4xODkgNzguMDI1NjA0OSw2NS4xMjc0MTM4IDc4LjA0MjYxMSw2NS4wNjUwMTcyIEw3OS42NTY1NzQyLDU5LjIzMzc3NTkgTDc5LjgxNjEwOCw1OS4yNzUxMDM0IEw4Ny43NzkwMjgyLDYxLjMzNjYyMDcgQzg3Ljk3NTAwMzcsNjEuMzg3NjcyNCA4OC4xNzY2NDc5LDYxLjQxNDQxMzggODguMzc5OTExNyw2MS40MTYwMzQ1IEw5MC4xMjc0OTQ1LDYxLjQzMDYyMDcgTDkwLjE0ODU0OTcsNjEuNDMwNjIwNyBDOTAuNDMzNjA0OSw2MS40MzA2MjA3IDkwLjcxNjIzMDcsNjEuMzgyIDkwLjk4NTA4OTYsNjEuMjg1NTY5IEM5Ny4wMjA2NDc5LDU5LjEyMzU2OSAxMDMuNzcyMDgzLDU3LjkzMjM2MjEgMTA5Ljk5NDcwOSw1Ny45MzIzNjIxIEMxMTYuMTk5NTE5LDU3LjkzMjM2MjEgMTIxLjc0OTE4OCw1OS4xMTU0NjU1IDEyNS42NzE5MzYsNjEuMjY5MzYyMSBDMTI1Ljk1NzgwMSw2MS41MjYyNDE0IDEyNi4zMDE5NzMsNjEuNzE0MjQxNCAxMjYuNjgwMTU3LDYxLjgxNjM0NDggQzEyNi44OTMxMzksNjEuODczODc5MyAxMjcuMTEwOTc5LDYxLjkwMjI0MTQgMTI3LjMyODAxLDYxLjkwMjI0MTQgQzEyNy43NTk2NDIsNjEuOTAyMjQxNCAxMjguMTg4MDM0LDYxLjc5MDQxMzggMTI4LjU2ODY0OCw2MS41NyBMMTMwLjcyODQyNyw2MC4zMjI4NzkzIEMxMzEuNDk2OTQyLDU5Ljg3OTYyMDcgMTMxLjk3MDY4NSw1OS4wNTk1NTE3IDEzMS45NzA2ODUsNTguMTcxNDEzOCBMMTMxLjk3MDY4NSwyNC45ODIxMjA3IEMxMzEuOTcwNjg1LDI0LjA5NDc5MzEgMTMxLjQ5Njk0MiwyMy4yNzQ3MjQxIDEzMC43MjkyMzcsMjIuODMxNDY1NSBMMTMwLjcyOTIzNywyMi44MzE0NjU1IFoiIGlkPSJGaWxsLTQ1IiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTk3LjUyODgwNzQsMjkuMzM4NDUzNCBDOTguMjg1OTg1MywyOC45MDA4NjcyIDk5LjAwMDI0MjksMjguNjc5NjQzMSA5OS42MjYyMzA3LDI4LjY3OTY0MzEgQzEwMC4wMjMwNCwyOC42Nzk2NDMxIDEwMC4zODM0MDksMjguNzY4NzgxIDEwMC42OTU5OTgsMjguOTQ5NDg3OSBDMTAxLjQ5MjA0NywyOS40MDczMzI4IDEwMS45MzMzOTYsMzAuNDM1NjYwMyAxMDEuOTM3NDQ1LDMxLjg0MjQxOSBDMTAxLjk0NjM1MywzNS4wOTUxNDMxIDk5LjY1MDUyNTIsMzkuMDcxNTA1MiA5Ni44MjAyMTg0LDQwLjcwNTk3MDcgQzk1LjU4MjgxOTYsNDEuNDE5ODg0NSA5NC40NTk2MDQ5LDQxLjU1NzY0MzEgOTMuNjU2MjY3NSw0MS4wOTQ5MzYyIEM5Mi44NTk0MDg2LDQwLjYzNTQ3MDcgOTIuNDE4MDU4OSwzOS42MDc5NTM0IDkyLjQxNDgxOTYsMzguMjAxMTk0OCBDOTIuNDA1MTAxOCwzNC45NDg0NzA3IDk0LjY5OTMxMDQsMzAuOTczNzI5MyA5Ny41Mjg4MDc0LDI5LjMzODQ1MzQgTTkyLjkxMzY2NjMsNDIuMzg3NDM2MiBDOTMuNDU4NjcyNCw0Mi43MDAyMjkzIDk0LjA2ODQ2MzgsNDIuODU2NjI1OSA5NC43MjExNzU1LDQyLjg1NjYyNTkgQzk1LjYwODczMzcsNDIuODU2NjI1OSA5Ni41NzY0NjM4LDQyLjU2NzMzMjggOTcuNTY0NDM5Myw0MS45OTY4NSBDMTAwLjg2MjAxLDQwLjA5MjUzOTcgMTAzLjQzNzIyNSwzNS42Mjk5NzA3IDEwMy40MjY2OTcsMzEuODM4MzY3MiBDMTAzLjQyMTAyOCwyOS44NzY1MjI0IDEwMi43MTQ4NjksMjguMzkxOTcwNyAxMDEuNDM4NTk5LDI3LjY1Njk4NzkgQzEwMC4xNTQyMzEsMjYuOTE3MTQzMSA5OC41MDEzOTYzLDI3LjA1NjUyMjQgOTYuNzgzNzc2NywyOC4wNDc1NzQxIEM5My40ODc4MjU4LDI5Ljk1MTg4NDUgOTAuOTE0MjMwNywzNC40MTQ0NTM0IDkwLjkyNTU2ODEsMzguMjA0NDM2MiBDOTAuOTMwNDI3LDQwLjE2NTQ3MDcgOTEuNjM3Mzk2Myw0MS42NTE2NDMxIDkyLjkxMzY2NjMsNDIuMzg3NDM2MiIgaWQ9IkZpbGwtNDMiIGZpbGw9IiNGRkZGRkYiIG1hc2s9InVybCgjbWFzay0yKSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03NC42MjY2OTc1LDU0LjgyNTc1MjggTDc3LjA0MDEwMDIsNTkuMDQ5MjA3NSBMNzcuMDQwMTAwMiw1OS4wNDkyMDc1IEM3Ny4zMDY0OTY4LDU5LjUxNTQwMTUgNzcuMTU3MTc5OCw2MC4xMDg3NjczIDc2LjcwMTg1Niw2MC4zOTMzNDQ3IEw3MS44NzUwNTA3LDYzLjQxMDA5OCBMNzEuODc1MDUwNyw2My40MTAwOTggQzcxLjQwNjcxNDEsNjMuNzAyODA4NCA3MC43ODk3NjM4LDYzLjU2MDQzNTIgNzAuNDk3MDUzNCw2My4wOTIwOTg3IEM3MC4zMzg5NjQ1LDYyLjgzOTE1NjMgNzAuMzAyMDQzNSw2Mi41Mjg4NDY4IDcwLjM5NjM2ODQsNjIuMjQ1ODcyIEw3Mi44MDk3NzExLDU1LjAwNTY2NCBMNzIuODA5NzcxMSw1NS4wMDU2NjQgQzcyLjk4NDQxODksNTQuNDgxNzIwNyA3My41NTA3Mzg4LDU0LjE5ODU2MDcgNzQuMDc0NjgyMiw1NC4zNzMyMDg0IEM3NC4zMDgwOTMxLDU0LjQ1MTAxMjEgNzQuNTA0NjI5MSw1NC42MTIxMzMxIDc0LjYyNjY5NzUsNTQuODI1NzUyOCBaIiBpZD0iVHJpYW5nbGUiIGZpbGwtb3BhY2l0eT0iMC4yNjYwNDk1OTIiIGZpbGw9IiNGRkZGRkYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDczLjc1ODUyMSwgNTguOTQxOTI3KSByb3RhdGUoMTgwLjAwMDAwMCkgdHJhbnNsYXRlKC03My43NTg1MjEsIC01OC45NDE5MjcpICI+PC9wYXRoPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="/>\n <ol>\n '+Yr.map((function(e){var t;return"<li>"+(null!==(t=e[navigator.language.split("-")[0]])&&void 0!==t?t:e.zh)+"</li>"})).join("")+"\n </ol>\n ";var p=new zn(d);e.parentNode&&(e.parentNode.insertBefore(u,e),e.parentNode.insertBefore(d,e),this.setHelperElementSize(),p.on("tap",(function(){return t.emit("vrWantsToExit")}))),this.destroyHelper=function(){p.destroy(),u.parentNode&&u.parentNode.removeChild(u),d.parentNode&&d.parentNode.removeChild(d)}},i.prototype.destroyHelper=function(){},i.prototype.setHelperElementSize=function(){if(this.helperElement){var e=new r.Vector2(this.element.offsetWidth,this.element.offsetHeight),t=e.x*this.scissor.left,i=e.y*(1-this.scissor.bottom-this.scissor.height),n=e.x*this.scissor.width,o=e.y*this.scissor.height;this.helperElement.style.marginLeft=t+"px",this.helperElement.style.marginTop=i+"px",this.helperElement.style.width=n+"px",this.helperElement.style.height=o+"px"}},i.prototype.intersect=function(e){if(!1!==this.locationMotion.ended){if(this.activePanoMesh&&this.activeTime&&e-this.activeTime>2e3){var t=this.panoMeshes.indexOf(this.activePanoMesh);return t>=0&&this.moveToPano(t,{},!0),delete this.activePanoMesh,void delete this.activeTime}for(var i=0,n=this.panoMeshes;i<n.length;i++){(h=n[i]).setCurrent(!1)}for(var o=this.camera.getWorldDirection(new r.Vector3),s=new r.Raycaster(this.camera.position,o),a=void 0,u=[],c=0,l=this.panoMeshes;c<l.length;c++){var h;if(!1!==(h=l[c]).visible){var d=s.intersectObject(h,!0)[0];d&&u.push({panoMesh:h,intersection:d})}}var p=u.sort((function(e,t){return e.intersection.distance-t.intersection.distance}))[0];if(p&&(a=p.intersection,p.panoMesh.setCurrent(!0),this.activePanoMesh!==p.panoMesh&&(this.activePanoMesh=p.panoMesh,this.activeTime=e)),a||this.model.empty||(a=this.model.intersectRaycaster(s)[0]),a&&a.face){var A=a.face.normal,f=new r.Quaternion;f.setFromUnitVectors(new r.Vector3(0,0,-1),A),this.intersectMesh.quaternion.copy(f);var M=A.clone().multiplyScalar(.05),g=a.point.clone().add(M);this.intersectMesh.position.copy(g),this.intersectMesh.visible=!0,this.emit("intersectionOnModelUpdate",a,this.intersectMesh)}else this.intersectMesh.visible=!1,this.emit("intersectionHidden")}else this.intersectMesh.visible=!1},i.prototype.onPanGesture=function(){},i.prototype.onTapGesture=function(){},i.prototype.onPinchGesture=function(){},i.prototype.onMouseMove=function(){},i.prototype.onMouseOut=function(){},i}(Cr),Vr=function(e){function i(t){var n,r,o,s,a=this,u=i.parseArgs(t);return(a=e.call(this,u)||this).currentPanoIndex=u.initial[0],a.locationMotion=new Yn({x:a.camera.pose.offset.x,y:a.camera.pose.offset.y,z:a.camera.pose.offset.z,distance:a.camera.pose.distance,modelAlpha:null!==(r=null===(n=a.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==r?r:0,perspToOrtho:null!==(s=null===(o=a.model.getMaterial())||void 0===o?void 0:o.perspToOrtho)&&void 0!==s?s:0}),a}return t.__extends(i,e),i.parseArgs=function(t){return e.parseArgs.call(this,t)},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.destroy=function(){e.prototype.destroy.call(this),this.locationMotion.dispose()},i.prototype.isReady=function(){return!1!==this.locationMotion.ended&&e.prototype.isReady.call(this)},i.prototype.updateWork=function(e,t,i,n,r){this.work=e,this.currentPanoIndex=t,this.hideIntersectMesh();var o={duration:0,longitude:i.longitude,latitude:i.latitude,fov:i.fov};return this.moveToPano(t,o,r),!0},i.prototype.updateTime=function(e,t){if(!this.destroyed){var i={},n={};if(!this.locationMotion.ended){this.locationMotion.update(e),i.modelAlpha=this.locationMotion.value.modelAlpha,i.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),n.distance=this.locationMotion.value.distance,n.offset=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z);var o=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),s=Tn(this.work.observers,(function(e){return e.position.distanceTo(o)}));this.currentPanoIndex=this.work.observers.indexOf(s)}this.cameraMotion.ended||(this.cameraMotion.update(e),n.longitude=this.cameraMotion.value.longitude,n.latitude=this.cameraMotion.value.latitude,n.fov=this.cameraMotion.value.fov),En(i)||this.model.setMaterial(i),En(n)||this.setCamera(n)}},i.prototype.initAnimation=function(e,t,i,n){var r,o,s,a=this;this.destroyed||(this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:xn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:xn(null!==(s=t.fov)&&void 0!==s?s:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){a.emit("initAnimationWillStart",e,t,a.userAction)},moveEndCallback:function(e,t){a.emit("initAnimationEnded",e,t,a.userAction)},moveCancelCallback:function(){var e=a.currentPanoIndex,t={longitude:a.camera.pose.longitude,latitude:a.camera.pose.latitude,fov:a.camera.pose.fov,offset:a.camera.pose.offset.clone()};a.emit("initAnimationEnded",e,t,a.userAction)}},n))},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1],t=this.locationMotion.getKeyFrameSegment(He())[1];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:new r.Vector3(t.value.x,t.value.y,t.value.z)}},i.prototype.moveToPano=function(e,t,i){void 0===t&&(t={});var n=this.work.observers[e];n&&this.moveToPosition(n.position,t,i)},i.prototype.moveToPosition=function(e,t,i){var n,o,s,a=this;void 0===t&&(t={}),this.userAction=i;for(var u=He(),c=new r.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z).distanceTo(e),l=this.locationMotion.getProgressVelocity(u),h=0,d=1;d<this.locationMotion.keyframes.length;d++){var p=this.locationMotion.keyframes[d-1].value,A=p.x,f=p.y,M=p.z,g=this.locationMotion.keyframes[d].value,y=g.x,m=g.y,v=g.z;h+=Math.sqrt(Math.pow(y-A,2)+Math.pow(m-f,2)+Math.pow(v-M,2))}var N=0===c?0:l*h/c,D=this.calculateMovingDuration(t.duration,c),w={x:e.x,y:e.y,z:e.z,distance:0,modelAlpha:1,perspToOrtho:0},T={longitude:t.longitude,latitude:t.latitude,fov:t.fov},x={longitude:null!==(n=T.longitude)&&void 0!==n?n:this.camera.pose.longitude,latitude:null!==(o=T.latitude)&&void 0!==o?o:this.camera.pose.latitude,fov:null!==(s=T.fov)&&void 0!==s?s:this.camera.pose.fov,offset:e.clone()},E=Tn(this.work.observers,(function(t){return t.position.distanceTo(e)})),j=this.work.observers.indexOf(E);this.emit("moveToPano",j,this.userAction),t.moveStartCallback&&t.moveStartCallback(j,x),this.emit("panoWillArrive",j,x,this.userAction),this.cameraMotion.set(T,D).catch(Qe),this.locationMotion.set(w,D,N).then((function(){var e=jn(a.camera.pose);t.moveEndCallback&&t.moveEndCallback(j,e),a.emit("panoArrived",j,e,a.userAction)}),(function(){t.moveCancelCallback&&t.moveCancelCallback(),a.emit("moveToPanoCanceled",j)}))},i.prototype.onTapGesture=function(e){var t=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","tap",t,!0)){var i=this.relativeClientPosition(e.center),n=new r.Raycaster;if(n.setFromCamera(i,this.camera),!this.emit("wantsTapGesture",n,i)){this.emit("gesture","tap",t,!0),this.emit("tapGesture",n,i),this.interiaMovement=!1;var o=this.model.intersectRaycaster(n)[0];if(o&&o.face){var s=o.face.normal,a=o.point;if(new r.Vector3(0,1,0).angleTo(s)>Math.PI/3){var u=this.camera.position.clone().setY(a.y),c=a.clone().sub(u).setLength(.3),l=a.clone().sub(c);n.set(l,new r.Vector3(0,-1,0)),o=this.model.intersectRaycaster(n)[0]}}if(o){var h=o.point.clone(),d=Tn(this.work.observers.filter((function(e){return Math.abs(e.standingPosition.y-h.y)<1})),(function(e){return e.standingPosition.distanceTo(h)}));if(d)return h.y=d.position.y,void this.moveToPosition(h,{},!0)}this.cameraBounce()}}},i}(Zn),Hr=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("{vs|z-rp@-}n{|]|vv|{H{vs|z-znA-}n{|ZnvH{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}H<<{vs|z-sy|n-pnyrHn\bv{t-rp@-}n{|d|yq]|vv|{H<<-n\bv{t-sy|n-vU|yrHp|{-sy|n-]V-J-@;>A>BF?CHp|{-sy|n-aNb-J-C;?E@>EB?Hp|{-sy|n-pnyr-J->@;>Hrp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5:rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--rpA-|yq]|vv|{-J-z|qryZnv-7-rpA5}|vv|{9->;=6H--}n{|d|yq]|vv|{-J-5rpA5|yq]|vv|{;\b\t9->;=6-7-}n{|Znv6;\b\tH--rp?-p||q-J-|P||q5}n{|d|yq]|vv|{6H--sy|n-qvn{pr-J-pnyrH--vs-5p||q;\b-I-=;>B6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-=;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5=;>B-:-p||q;\b66H----qvn{pr-J-pnyrH--\f-ryr-vs-5p||q;\b-KJ-=;>B-33-p||q;\b-IJ-=;EB6-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9-5p||q;\b-:-=;>B6-<-=;D6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----vs5-}n{|Qv}ynprzr{;-JJ-=;=6\n------qvn{pr-J-pnyrH----\fryr\n------qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----\f--\f-ryr-\n----rp?-n{s|zrqP||q-J-rp?5p||q;9->;=6H----rpA-}n{|Qv}ynprzr{-J-rr?Q5}n{|Qv}ynprzr{Zn}9-n{s|zrqP||q6H----qvn{pr-J-pnyr-7-}n{|Qv}ynprzr{;H----qvn{pr-J-qvn{pr-7-p|5]V-7-5p||q;\b-:-=;EB66H----qvn{pr-J-pnyrH--\f--rpA-ry]|vv|{-J-rpA5}|vv|{-8-}n{|]|vv|{-8-{|znyv\tr5|yq]|vv|{;\b\t6-7-qvn{pr9->;=6H--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-ry]|vv|{H\f"),Gr=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var i=113,n=126,r=0,o="";return arguments[r].split(o).map((function(e){return e.charCodeAt(r)>n?e:String.fromCharCode((e.charCodeAt(r)+i)%n)})).join(o)}("{vs|z-sy|n-|}npv\bH{vs|z-nz}yrPor-}n{|Zn}H{vs|z-nz}yr?Q-}n{|Qv}ynprzr{Zn}Hn\bv{t-rp@-}n{|d|yq]|vv|{H|vq-znv{56-\n--rpA-}n{|P|y|-J-rrPor5}n{|Zn}9-}n{|d|yq]|vv|{;\b\t6H--tylSntP|y|-J-rpA5}n{|P|y|;to9-|}npv\b6H\f"),Wr=Object.assign({opacity:new r.Uniform(1),scale:new r.Uniform(13.1),panoMap:new r.Uniform(null),panoDisplacementMap:new r.Uniform(null),panoPosition:new r.Uniform(new r.Vector3),panoMatrix:new r.Uniform(new r.Matrix4)},{emissive:new r.Uniform(new r.Color(0)),emissiveMap:new r.Uniform(null),specular:new r.Uniform(new r.Color(1118481)),specularMap:new r.Uniform(null),normalMap:new r.Uniform(null),bumpMap:new r.Uniform(null),shininess:new r.Uniform(30)},r.UniformsLib.common,r.UniformsLib.lights),qr=new r.SphereBufferGeometry(.01,128,128);var Kr=function(){function e(e){void 0===e&&(e={}),this.textureLoader=new xi({allowHosts:this.allowHosts,networkSubscribe:this.networkSubscribe}),this.allowHosts=e.allowHosts,this.networkSubscribe=e.networkSubscribe}return e.prototype.setAllowHosts=function(e){this.allowHosts=e,this.textureLoader.setAllowHosts(e)},e.prototype.setNetworkSubscribe=function(e){this.networkSubscribe=e,this.textureLoader.setNetworkSubscribe(e)},e.prototype.load=function(e,i,n,o,s,a,u,c){var l=[0,0],h=function(e,t){l[t]=e,u(.8*l[0]+.2*l[1])},d=[this.textureLoader.load(e,{},void 0,void 0,(function(e){return h(e,1)}),c),this.textureLoader.loadCube(i,{},void 0,void 0,(function(e){return h(e,0)}),c)];return Promise.all(d).then((function(e){var i=e[0],a=e[1],u={body:function(e,t,i,n){var o=new r.ShaderMaterial({side:r.BackSide,vertexShader:Hr,fragmentShader:Gr,transparent:!0,uniforms:r.UniformsUtils.clone(Wr)}),s=t;return s.needsUpdate=!0,s.minFilter=r.LinearFilter,s.magFilter=r.LinearFilter,e.needsUpdate=!0,e.minFilter=r.LinearFilter,e.magFilter=r.LinearFilter,o.uniforms.opacity.value=0,o.uniforms.panoMap.value=s,o.uniforms.panoDisplacementMap.value=e,o.uniforms.panoPosition.value=i,o.uniforms.panoMatrix.value=n,Object.assign(new r.Mesh(qr,o),{frustumCulled:!1,dispose:function(){this.material instanceof r.ShaderMaterial&&(this.material.uniforms.panoDisplacementMap.value.dispose(),this.material.uniforms.panoDisplacementMap.value=null,this.material.dispose())}})}(i.body,a.body,n,o),meta:t.__spreadArray([i.meta],a.meta,!0)};return s(u),u})).catch((function(e){for(var t=0,i=d;t<i.length;t++){i[t].then((function(e){return e.body.dispose()})).catch(Qe)}return a(e),Promise.reject(e)}))},e}(),Zr=new r.Vector3(-1,1,1),Xr=function(e){function i(t){var n,o,s,a,u,c,l,h=this,d=i.parseArgs(t);return(h=e.call(this,d)||this).currentPanoIndex=d.initial[0],h.maxAccessibleDistance=d.maxAccessibleDistance,h.panoTapTriggerRadius=d.panoTapTriggerRadius,h.panoCircleMeshCreator=d.panoCircleMeshCreator,h.boundingMesh=h.generateBoundingMesh(),h.boundingMesh.setMaterial(h.model.getMaterial()||{}),h.boundingMesh.visible=!1,h.scene.add(h.boundingMesh),h.panoModelGroup=new r.Group,h.panoModelGroup.name="panoModels",h.scene.add(h.panoModelGroup),h.panoMeshes=[],h.updatePanoMeshes(),h.helper.remove(h.intersectMesh),h.locationMotion=new Yn({count:0,distance:h.camera.pose.distance,modelAlpha:null!==(o=null===(n=h.model.getMaterial())||void 0===n?void 0:n.modelAlpha)&&void 0!==o?o:0,perspToOrtho:null!==(a=null===(s=h.model.getMaterial())||void 0===s?void 0:s.perspToOrtho)&&void 0!==a?a:0}),h.panoResources={},h.panoResources[h.locationMotion.keyframes[0].key=h.locationMotion.keyframes[1].key=Fe()]={panoIndex:h.currentPanoIndex,workCode:h.work.workCode,matrix:null!==(l=null===(c=null===(u=h.model.getMaterial())||void 0===u?void 0:u.pano1)||void 0===c?void 0:c.matrix)&&void 0!==l?l:new r.Matrix4,position:h.camera.pose.offset.clone(),effect:"fly"},h.depthTextureLoader=new Kr({allowHosts:h.work.allowHosts,networkSubscribe:h.networkSubscribe}),h}return t.__extends(i,e),i.parseArgs=function(i){var n,r,o,s=e.parseArgs.call(this,i);return t.__assign(t.__assign({},s),{maxAccessibleDistance:null!==(n=i.maxAccessibleDistance)&&void 0!==n?n:5,panoTapTriggerRadius:null!==(r=i.panoTapTriggerRadius)&&void 0!==r?r:1,panoCircleMeshCreator:null!==(o=i.panoCircleMeshCreator)&&void 0!==o?o:cr})},i.initAnimationEndPose=function(t){var i=this.parseArgs(t);return e.initAnimationEndPose.call(this,i)},i.prototype.destroy=function(){var t,i=this;if(e.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.pendingTextureTask,this.model&&(this.model.visible=!0),this.panoModelGroup){for(var n=0,r=this.panoModelGroup.children;n<r.length;n++){var o=r[n];"function"==typeof o.dispose&&o.dispose()}this.scene.remove(this.panoModelGroup)}this.boundingMesh&&(this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.panoMeshes&&(this.panoMeshes.forEach((function(e){i.helper.remove(e),e.dispose()})),this.panoMeshes.length=0);for(var s=null!==(t=this.model.getMaterial())&&void 0!==t?t:{},a=s.pano0,u=s.pano1,c=0,l=Object.keys(this.panoResources);c<l.length;c++){var h=l[c],d=this.panoResources[h];d.panoModel&&d.panoModel.material.uniforms.panoMap.value!==(null==a?void 0:a.map)&&d.panoModel.material.uniforms.panoMap.value!==(null==u?void 0:u.map)&&(this.panoModelGroup.remove(d.panoModel),d.panoModel.material.uniforms.panoMap.value.dispose(),d.panoModel.dispose(),delete d.panoModel),delete this.panoResources[h]}this.interiaMovement=!1},i.prototype.isReady=function(){return!1===this.locationMotion.ended&&e.prototype.isReady.call(this)},i.prototype.updateWork=function(e,t,i,n,r){this.userAction=r,this.work=e,this.currentPanoIndex=t,this.depthTextureLoader.setAllowHosts(this.work.allowHosts);var o={},s=!0;this.boundingMesh&&(o=this.boundingMesh.getMaterial()||{},s=this.boundingMesh.visible,this.scene.remove(this.boundingMesh),this.boundingMesh.dispose()),this.boundingMesh=this.generateBoundingMesh(!0),this.boundingMesh.visible=s,this.boundingMesh.setMaterial(o),this.scene.add(this.boundingMesh),this.hideIntersectMesh(),this.updatePanoMeshes();for(var a=0,u=this.panoMeshes;a<u.length;a++){u[a].visible=!1}return this.moveToPano(t,{effect:"fade",duration:n,longitude:i.longitude,latitude:i.latitude,fov:i.fov},r),!0},i.prototype.updateTime=function(e,t){var i,n,o;if(!this.destroyed){var s={},a={};if(!1===this.locationMotion.ended){this.locationMotion.update(e);var u=this.locationMotion.getKeyFrameSegment(e),c=u[0],l=u[1],h=this.panoResourceFromLocationMotionKeyframe(c),d=this.panoResourceFromLocationMotionKeyframe(l),p=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),A=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),f=(new r.Vector3).copy(h.position),M=(new r.Vector3).copy(d.position),g=this.locationMotion.value.count-l.value.count+1;s.modelAlpha=this.locationMotion.value.modelAlpha,s.perspToOrtho=xn(1-10*(1-this.locationMotion.value.perspToOrtho),0,1),s.useBlackTransition="instant"===d.effect;for(var y=0,m=this.panoModelGroup.children;y<m.length;y++){var v=m[y];v.visible=v===h.panoModel||v===d.panoModel}h.panoModel&&(h.panoModel.material.uniforms.opacity.value=1-g,h.panoModel.material.depthTest=0!==g),d.panoModel&&(d.panoModel.material.uniforms.opacity.value=g,d.panoModel.material.depthTest=1!==g),d.panoModel&&(g<1?h.panoModel&&(s.pano0={map:h.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:h.matrix}):s.pano0={map:d.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:d.matrix},s.pano1={map:d.panoModel.material.uniforms.panoMap.value,luminanceMap:null,matrix:d.matrix}),"fade"===d.effect&&(s.pano0&&(s.pano0={map:s.pano0.map,luminanceMap:null,matrix:h.matrix.clone().setPosition(d.position)}),f.copy(M)),s.progress=g,a.distance=this.locationMotion.value.distance,a.offset=new r.Vector3(f.x+(M.x-f.x)*g,f.y+(M.y-f.y)*g,f.z+(M.z-f.z)*g);for(var N=[],D=[],w=0,T=this.locationMotion.keyframes;w<T.length;w++){var x=T[w],E=x.key,j=x.progress;void 0!==E&&(N.push(E),j>=this.locationMotion.progress&&D.push(E))}for(var z=0,I=Object.keys(this.panoResources);z<I.length;z++){var b=I[z];if(!(D.indexOf(b)>=0)){var O=this.panoResources[b];if(O.panoModel){if(O.panoModel.material.uniforms.panoMap.value===(null===(i=s.pano0)||void 0===i?void 0:i.map))continue;if(O.panoModel.material.uniforms.panoMap.value===(null===(n=s.pano1)||void 0===n?void 0:n.map))continue;this.panoModelGroup.remove(O.panoModel),O.panoModel.material.uniforms.panoMap.value.dispose(),O.panoModel.dispose(),delete O.panoModel}N.indexOf(b)>=0||delete this.panoResources[b]}}h.workCode===d.workCode?this.currentPanoIndex=g<.5?h.panoIndex:d.panoIndex:this.currentPanoIndex=d.panoIndex,this.emit("movingToPano",A.panoIndex,p.panoIndex,this.locationMotion.progress)}!1===this.cameraMotion.ended&&(this.cameraMotion.update(e),a.longitude=this.cameraMotion.value.longitude,a.latitude=this.cameraMotion.value.latitude,a.fov=this.cameraMotion.value.fov),!1===En(s)&&(this.model.setMaterial(s),this.boundingMesh.setMaterial(s)),!1===En(a)&&this.setCamera(a),this.boundingMesh.visible=Boolean(null===(o=this.boundingMesh.getMaterial())||void 0===o?void 0:o.pano0)&&this.boundingMesh.boundingBox.containsPoint(this.camera.position)}},i.prototype.getTargetPose=function(){var e=this.cameraMotion.getKeyFrameSegment(He())[1],t=this.locationMotion.getKeyFrameSegment(He())[1],i=this.panoResourceFromLocationMotionKeyframe(t),n=this.work.observers[i.panoIndex];return{longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,offset:n?n.position.clone():this.camera.position.clone()}},i.prototype.moveToPano=function(e,i,n){var o,s,a=this;void 0===i&&(i={});var u=this.work.observers[e].images.depth,c=t.__assign({key:"pano."+e,basisLoaderInitialized:wi.isInitialized()},Xt(this.imageOptions,["format","size","quality"])),l=null!==(o=this.imageOptions.transform)&&void 0!==o?o:ti,h={right:l(this.work.observers[e].images.right,t.__assign(t.__assign({},c),{key:"pano."+e+".right"})),left:l(this.work.observers[e].images.left,t.__assign(t.__assign({},c),{key:"pano."+e+".left"})),up:l(this.work.observers[e].images.up,t.__assign(t.__assign({},c),{key:"pano."+e+".up"})),down:l(this.work.observers[e].images.down,t.__assign(t.__assign({},c),{key:"pano."+e+".down"})),front:l(this.work.observers[e].images.front,t.__assign(t.__assign({},c),{key:"pano."+e+".front"})),back:l(this.work.observers[e].images.back,t.__assign(t.__assign({},c),{key:"pano."+e+".back"}))},d=this.work.observers[e],p=d.position,A=d.quaternion,f=(new r.Matrix4).compose(p,A,new r.Vector3(-1,1,1)),M="pano:"+Wn(h);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===M)return;var g=this.pendingTextureTask.panoIndex;null===(s=this.panoMeshes[g])||void 0===s||s.setProgress(0),this.emit("textureAbort",g,this.work.observers[g]),this.pendingTextureTask.onError(new Error("texture aborted"))}this.pending=!0,this.pendingTextureTask={panoIndex:e,hash:M,onLoad:function(t){a.pending=!1,a.destroyed?t.body.dispose():(t.body.name=M,a.emit("panoLoaded",e),a.doMoveToPano(e,t.body,i,n))},onError:function(t){a.pending=!1,i.moveCancelCallback&&i.moveCancelCallback(),a.emit("panoLoadError",t,e),a.emit("moveToPanoCanceled",e)}},this.depthTextureLoader.load(u,h,p,f,(function(t){var i,n;(null===(i=a.pendingTextureTask)||void 0===i?void 0:i.hash)===M?(a.pendingTextureTask.onLoad(t),null===(n=a.panoMeshes[e])||void 0===n||n.setProgress(0),delete a.pendingTextureTask,a.emit("textureLoaded",e,a.work.observers[e],t.meta)):t.body.dispose()}),(function(t){var i,n;(null===(i=a.pendingTextureTask)||void 0===i?void 0:i.hash)===M&&(a.pendingTextureTask.onError(t),null===(n=a.panoMeshes[e])||void 0===n||n.setProgress(0),delete a.pendingTextureTask,a.emit("textureError",t,e,a.work.observers[e]),a.emit("error",t))}),(function(t){var i,n;(null===(i=a.pendingTextureTask)||void 0===i?void 0:i.hash)===M&&(null===(n=a.panoMeshes[e])||void 0===n||n.setProgress(t)),a.emit("textureLoading",t,e,a.work.observers[e])}),this.renderer),this.emit("textureStartLoad",e,this.work.observers[e])},i.prototype.setCamera=function(t){e.prototype.setCamera.call(this,t);var i=this.work.observers[this.currentPanoIndex];if(i)for(var n=i.visibleNodes.concat(this.currentPanoIndex),r=this.getForwardPanoIndexOrNot(),o=0;o<this.work.observers.length;o++){var s=this.work.observers[o],a=this.panoMeshes[o];if(a.visible=!0,a.setCurrent(r===o),a)if(s.loadable||s.active)if(-1===n.indexOf(o))a.visible=!1;else{a.visible=!0;var u=a.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);u<.01?a.setOpacity(0):a.setOpacity(xn(1.5/u,0,1))}else a.visible=!0}},i.prototype.initAnimation=function(e,t,i,n){var r,o,s,a=this;if(!this.destroyed){var u=!1;this.pending=!1,this.userAction=n,this.moveToPano(e,{longitude:null!==(r=t.longitude)&&void 0!==r?r:this.defaultLongitude,latitude:xn(null!==(o=t.latitude)&&void 0!==o?o:this.defaultLatitude,this.minLatitude,this.maxLatitude),fov:xn(null!==(s=t.fov)&&void 0!==s?s:this.defaultFov,this.minFov,this.maxFov),duration:i,moveStartCallback:function(e,t){u=!0,a.emit("initAnimationWillStart",e,t,a.userAction)},moveEndCallback:function(e,t){a.emit("initAnimationEnded",e,t,a.userAction)},moveCancelCallback:function(){var e=jn(a.camera.pose);!1===u&&a.emit("initAnimationWillStart",a.currentPanoIndex,e,a.userAction),a.emit("initAnimationEnded",a.currentPanoIndex,e,a.userAction)}},n)}},i.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},i.prototype.locationMotionKeyframesLength=function(e){for(var t=0,i=1;i<e.length;i++){var n=this.panoResourceFromLocationMotionKeyframe(e[i-1]).position,r=this.panoResourceFromLocationMotionKeyframe(e[i]).position;t+=n.distanceTo(r)*(e[i].value.count-e[i-1].value.count)}return t},i.prototype.updatePanoMeshes=function(){for(var e=[],t=0,i=this.panoMeshes;t<i.length;t++){(r=i[t]).loading&&e.push(r.name),this.helper.remove(r),r.dispose()}this.panoMeshes.length=0;for(var n=0;n<this.work.observers.length;n++){var r,o=this.work.observers[n];(r=this.panoCircleMeshCreator()).name="panoCircle_"+this.work.workCode+"_"+n,r.position.copy(o.standingPosition),r.needsRender=!0,this.helper.add(r),!1===o.active&&(r.setDisabled(!0),e.indexOf(r.name)>=0&&(r.setDisabled(!1),r.setLoading(!0))),this.panoMeshes[n]=r}},i.prototype.generateBoundingMesh=function(e){void 0===e&&(e=!1);for(var t=this.model.bounding.clone(),i=0,n=this.work.observers;i<n.length;i++){var o=n[i];t.expandByPoint(o.standingPosition),t.expandByPoint((new r.Vector3).fromArray([o.position.x,2*o.position.y-o.standingPosition.y,o.position.z]))}e&&t.expandByPoint(this.camera.position);var s=at(t,new r.Vector3(1,0,1));return s.name="panorama_bounding",s.frustumCulled=!1,s},i.prototype.doMoveToPano=function(e,i,n,o){var s,a,u,c,l=this;void 0===n&&(n={}),this.userAction=o;var h=He(),d=Fe(),p=this.work.observers[e],A=this.panoResources[d]={panoIndex:e,workCode:this.work.workCode,effect:null!==(s=n.effect)&&void 0!==s?s:"fly",panoModel:i,matrix:(new r.Matrix4).compose(p.position,p.quaternion,Zr),position:p.position.clone()};i.visible=!1,i.renderOrder=-1,this.panoModelGroup.add(i);var f,M,g;if(this.locationMotion.ended){var y=this.locationMotion.getKeyFrameSegment(h);y[0];var m=y[1],v=this.locationMotion.value,N=this.panoResourceFromLocationMotionKeyframe(m).position,D=A.position;f=Math.max(N.distanceTo(D),1),M=[{key:m.key,progress:0,value:t.__assign(t.__assign({},v),{count:0})},{key:d,progress:1,value:{distance:0,perspToOrtho:0,modelAlpha:0,count:1}}],g=0}else{var w=this.locationMotion.getKeyFrameSegment(h),T=w[0],x=(m=w[1],v=this.locationMotion.value,this.panoResourceFromLocationMotionKeyframe(T).position),E=(N=this.panoResourceFromLocationMotionKeyframe(m).position,D=A.position,m.value.count-v.count),j=Math.max(x.distanceTo(N),1)*E;f=j+Math.max(N.distanceTo(D),1),M=[{key:T.key,progress:0,value:t.__assign({},v)},{key:m.key,progress:j/f,value:m.value},{key:d,progress:1,value:{count:m.value.count+1,distance:0,perspToOrtho:0,modelAlpha:0}}];var z=this.locationMotionKeyframesLength(this.locationMotion.keyframes),I=this.locationMotionKeyframesLength(M);g=this.locationMotion.getProgressVelocity(h)*z/I}var b=this.calculateMovingDuration(n.duration,f),O={longitude:n.longitude,latitude:n.latitude,fov:n.fov},S={longitude:null!==(a=O.longitude)&&void 0!==a?a:this.camera.pose.longitude,latitude:null!==(u=O.latitude)&&void 0!==u?u:this.camera.pose.latitude,fov:null!==(c=O.fov)&&void 0!==c?c:this.camera.pose.fov,offset:p.position.clone()};n.moveStartCallback&&n.moveStartCallback(e,S),this.emit("panoWillArrive",e,S,this.userAction),this.cameraMotion.set(O,b).catch(Qe),this.locationMotion.setKeyFrames(M,b,g).then((function(){var t={longitude:l.camera.pose.longitude,latitude:l.camera.pose.latitude,fov:l.camera.pose.fov,offset:l.camera.pose.offset.clone()};n.moveEndCallback&&n.moveEndCallback(e,t),l.emit("panoArrived",e,t,o)}),(function(){n.moveCancelCallback&&n.moveCancelCallback(),l.emit("moveToPanoCanceled",e)}))},i.prototype.getForwardPanoIndexOrNot=function(e){var t=this,i=this.camera.getWorldDirection(new r.Vector3),n=this.camera.position.clone(),o=this.work.observers[this.currentPanoIndex];if(!o)return null;var s=o.accessibleNodes.filter((function(e){if(e===t.currentPanoIndex)return!1;var i=t.work.observers[e],o=i.standingPosition.clone().sub(n);return 0!==o.length()&&(!(o.angleTo(new r.Vector3(0,-1,0))<Math.PI/12)&&(i.loadable||i.active))})),a=(e?e.ray.direction.clone():i.clone()).setY(0);if(0===a.length())return null;for(var u=s.slice().sort((function(e,i){var r=t.work.observers[e].position.clone().setY(n.y),o=t.work.observers[i].position.clone().setY(n.y);return r.distanceTo(n)-o.distanceTo(n)})),c=0,l=[Math.PI/8,Math.PI/6,Math.PI/4,Math.PI/3];c<l.length;c++)for(var h=l[c],d=0,p=u;d<p.length;d++){var A=p[d],f=this.work.observers[A].position.clone().setY(n.y).sub(n);if(0!==f.length()&&a.angleTo(f)<h)return A}return null},i.prototype.onTapGesture=function(e){var i=this,n=e.pointers.map((function(e){return Xt(e,["x","y"])}));if(!this.emit("wantsGesture","tap",n,!0)){var o=this.relativeClientPosition(e.center),s=new r.Raycaster;if(s.setFromCamera(o,this.camera),!this.emit("wantsTapGesture",s,o)){this.emit("gesture","tap",n,!0),this.emit("tapGesture",s,o),this.interiaMovement=!1;var a=this.camera.getWorldDirection(new r.Vector3).setY(0),u=null,c=this.work.observers[this.currentPanoIndex];if(c){var l=c.accessibleNodes.filter((function(e){if(e===i.currentPanoIndex)return!1;var t=i.work.observers[e];return!(t.position.distanceTo(i.camera.position)>i.maxAccessibleDistance)&&(t.loadable||t.active)})),h=s.intersectObject(this.boundingMesh,!0)[0];if(h){var d=Tn(l,(function(e){var t=i.work.observers[e].standingPosition.clone();return t.clone().sub(i.camera.position).setY(0).angleTo(a)>Math.PI/2?1/0:t.distanceTo(h.point)}),!0),p=d[0];d[1]<this.panoTapTriggerRadius&&(u=p)}Re(u)&&(u=this.getForwardPanoIndexOrNot(s));for(var A=0,f=this.locationMotion.keyframes;A<f.length;A++){var M=f[A],g=this.panoResourceFromLocationMotionKeyframe(M);if(!(M.progress<this.locationMotion.progress)&&g.panoIndex===u){u=null;break}}if(this.emit("panoSelected",u),Re(u))!0===this.locationMotion.ended&&this.cameraBounce();else{var y=this.work.observers[u];if(y.active){for(var m={},v=Math.PI/6,N=Math.PI/12,D=new r.Vector3(0,1,0),w=y.position.clone().setY(0).sub(c.position.clone().setY(0)).normalize(),T=w.clone().applyAxisAngle(D,v),x=w.clone().applyAxisAngle(D,-v),E=[],j=[],z=[],I=0,b=y.accessibleNodes;I<b.length;I++){if((p=b[I])!==this.currentPanoIndex&&p!==u){var O=this.work.observers[p].position.clone().sub(y.position).setY(0);w.angleTo(O)<v?z.push(O):T.angleTo(O)<v?E.push(O):x.angleTo(O)<v&&j.push(O)}}var S=(z.length>0?z:t.__spreadArray(t.__spreadArray([],E,!0),j,!0)).slice().sort((function(e,t){return e.angleTo(w)-t.angleTo(w)}))[0];S&&S.angleTo(a)>N&&(m.longitude=Math.atan2(-S.x,-S.z)),this.cameraMotion.value.latitude<-Math.PI/4&&(m.latitude=xn(0,this.minLatitude,this.maxLatitude)),this.emit("wantsMoveToPano",u,m,!0)}else this.panoMeshes[u]&&(this.panoMeshes[u].setDisabled(!1),this.panoMeshes[u].setLoading(!0))}}}}},i}(Zn),Jr=["Panorama","DepthPanorama","Model"],$r={Floorplan:Vn,Topview:Hn,Panorama:Cr,VRPanorama:Fr,Model:Vr,DepthPanorama:Xr};function eo(e){for(var t=0,i=Jr;t<i.length;t++){var n=i[t];if("string"==typeof e){if(n===e)return!0}else if(e instanceof Fn&&e instanceof $r[n])return!0}return!1}var to=["cameraDirectionUpdate","cameraUpdate","cameraPositionUpdate","panoSelected","moveToPano","moveToPanoCanceled","panoWillArrive","movingToPano","panoArrived","panoWillLoad","panoLoaded","panoLoadError","initAnimationEnded","initAnimationWillStart","wantsGesture","gesture","wantsTapGesture","tapGesture","wantsPanGesture","wantsInteriaPan","panGesture","interiaPan","wantsPinchGesture","pinchGesture","wantsMouseWheel","mouseWheel","wantsShowIntersectionOnModel","intersectionOnModelUpdate","intersectionHidden","textureStartLoad","textureLoading","textureAbort","textureLoaded","textureError"];function io(e){for(var t,i,n={},r=0,o=e.split(/(\;|\,)/);r<o.length;r++){var s=o[r].split("="),a=null===(t=s[0])||void 0===t?void 0:t.trim(),u=null===(i=s[1])||void 0===i?void 0:i.trim();a&&u&&(n[a]=u)}return n}function no(){for(var e,t=document.getElementsByTagName("meta"),i=0;i<t.length;i++){var n=t[i];if("viewport"===n.getAttribute("name")){var r=io(null!==(e=n.getAttribute("content"))&&void 0!==e?e:""),o=Number(r["initial-scale"]);if(!isNaN(o))return o}}return 1}var ro=[351,63],oo=[20,20],so=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),ao=new Float32Array([0,0,1,0,0,1,1,1]),uo=new Uint8Array([0,1,2,1,3,2]),co=new r.BufferGeometry;co.setAttribute("position",new r.BufferAttribute(so,3)),co.setAttribute("uv",new r.BufferAttribute(ao,2)),co.setIndex(new r.BufferAttribute(uo,1));var lo=new r.MeshBasicMaterial({transparent:!0,depthTest:!1}),ho=new r.Mesh(co,lo),po=new r.Scene;po.add(ho);var Ao=new r.OrthographicCamera(-.5,.5,.5,-.5,.1,1);Ao.position.set(0,0,.5),Ao.lookAt(0,0,0);var fo=new r.Vector4,Mo=new r.Vector4;function go(e){if(lo.map){var t=e.getViewport(fo),i=e.getScissor(Mo),n=e.getScissorTest(),o=e.autoClear;e.setViewport(i.x+oo[0]/3,i.y+oo[1]/3,ro[0]/3,ro[1]/3),e.setScissor(i.x+oo[0]/3,i.y+oo[1]/3,ro[0]/3,ro[1]/3),e.setScissorTest(!0),e.autoClear=!1,e.render(po,Ao),e.setViewport(t),e.setScissor(i),e.setScissorTest(n),e.autoClear=o}else{var s=new r.Texture,a=new Image;a.onload=function(){s.image=a,s.wrapS=r.ClampToEdgeWrapping,s.wrapT=r.ClampToEdgeWrapping,s.minFilter=r.LinearFilter,s.needsUpdate=!0,lo.needsUpdate=!0,a.onload=function(){}},a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR+0lEQVR4AezYg3LEQACH8d1cbdu23Q5qG9G47z/TN/h6tn2b/H+TUTLc7yjcOXV46OUAnUs6EbUp022ZBXc1NhoZYYd7fjDRvdcHAwrlK2QBVJ4sgoqONmY45RUT23sZ6H42F2hK5CtkMbjhZlDmUUcvq1zyieUVyjbE4I1GBfItwxG56YaUZTQwyh4P6NgJ4YYYvCuQb5kOyI03pORjiqe4Lwpq5pt1vJqfUwKWJVbSMYfppYconG+maNNQOWBZuwHTzicGel75NtFOkxr5apmV8cikcko0DrDQs863AeGl0cE0+1xy573m0/wf0cEKW6H7BWtggiMG8sy3oHRDpJMw4NWb6am/bv9znkqEzjd61t5oo5clTrjhwevO75EJRBKSRt745Z16ZEjcM73sccZplBPm8PyTcxZAkSRdHm/acJ0Z3JZhHB0BxqDHgWFZFmm0ZbCw87twI/zc3e/Cz93vPneXtU/WdQS3oTviXdY/q5PsJKfoGuQjZuO/0in1qsj85cuXrxqeAOJpGqdJOqrUutgVl2Qb0BWqp/RE8AWWVB7t2KrIzY2Wx2fWKl7yfswgxqj8lYummYa3hfwF9MuQRmbfQE4ocPDjtUWQ6Tq1M2w7gC2EcrMGtWS6xlpGKEDDcb1vUQ25zT4lrC2s0dU4gFPppKkbeIYr7NMpqjStuFg5rNU9epGyt8PXyfX4DE1bKLhR/1XPxwJhp5DAV67T9ZPwFdovhBMIGUYoRBN4wim6S3eoXVEHXdLgmwY0x6BQnO4xPJ0Ar5OVxhQF0L9UslRM4yaQQfQImnBegi8vhY2A1k6YLlrj61TwDdNQnIISwiPvpD7TwYQTssZXK47vg8y9Gp2nxRcATkozOEmdCeObSt3IIo+xf/00IDRKAaZ89PBTkHqpkA5LagKeNZKlIhqX8RcQ95GHtdYA62Y6rOg5LLsOSnoyvk4V38hFhytef+V9/3DER1P48W89o1GxE9o5vns2Mk+F7yiftafEN4nhmUv9DKEeyqI0U+l0CQg+B//sZ5+6lOuqKaTgm0LH41RHw/CsLZRk4huiYxrvP2SNr1OSS+Dr1ulBMR+K9SqHa58Oec49VgL3mXHvDr7QfuM7LMNrH1/IS30Moe64SLYBuFVJ+MbnJY7L+GrVQkFcl4ISx/fEll4ZWnz18DpcSzUCX602LqD9svDLzmdaLkP28P1+VsJjsx/4hmh6x/gmm/i6pbrGneCL9iCOg0dQUvF1UwEdVvG19r2uTXxXLz0J37eLjfZoF++tTtPnU/cWp5e8n3An0m/G+U7qjiy4PpHyV16HKx5flCxAV/H9A88nUnZ7l7KN78SBxPcQgzLAepxEScU3l7pZ6fL2+Dot8fXECfj+QRoGYAwlAfBSPrXQXQri0Pd85NJKcVw8XUdt1LZapk7YRhO1RdpmFJwW8ozekYvx2/fjM5Hr5MfQ95HvcY2a/9hoNK4yEntL+dEuGseTdNmxIPqd5v2YRjeaX8pQ8IW2ohuP7+dTN87RMK4aitx8XPsH0r2oBqNRqrv7+gmjjY7uIr6TBxBfL2MlxNRKSVp8S5CTuGgHXxfkFvh69Pq3LD4pkkd2bdRvHaSNC3/l2sQXAccdlIS+lc57qhPJwxPybT7XSxnUrdqnXuHlJHS+mjZfJfUZR9s2FuQR+EQKdSi9Am8UTnsEvlYS+L6TFwW6kl74Vjr6AFHsX89rgg8njRltK0XPOL7NyDL0IurV4VtMwafB1709vu9X4OjWHoP3z1Ii7eaQdG00Lx5n8HXyDSva/dU0Pq2vZnKYxHYMYRo1WY5ov1G7Vh4r3y+kMdgbilxeOrV0aqOFenFl8GGJig7rG0bbPRqiSRpP2AL0w+yon9dHbi43zFetnKcuw9ZLeSa+7kTw/TDfuFu0Z7Vp/uhyHfPkAZ5ufP9wLIfD49E3clR818rR089Lzyy+VRREPneICnYLX9cT8PVKQs36TbQ3i6NcCwYkxEAQ3phN4CjAvC4mFr5vrlKe7AizBKj8cu33s7i9GbeY7BHYujTjjd3Bx54SSyT4m8mxOoYOAGX/DtwvnGE1M+5v5Bgt1hbkJRW9Cxv9X81GL2i5jqaoJ4avBcCsLYp+Ru+VC5sWPpFhXt8/EPvJL2F/alJDEeIjUhcrP5P45rDeATPj+wKl7gBf1fcq+HpVnfHO1vEf//UCHgt/OxfDE3onj5UkfTaThrg3NCGoBUCtZjvgMnwQB0bG5XENeraJ5XEWvtiHkqSVRqN+uQ4lEx2o+69SeY1dC++Wcsj+LCW+H0ZE4KtDWHkGwCtrxstbFqr51e9wbz42E2fpjRQsqEn50PnM4eumO9IbujCi393Hd+3q72TI+p9DPyyfraF+c3rOx0KJyB2z7Fa1yCO8HoHzlDFhPiWD8XoB3aPppRrUQdRp1D8qE9exdgr+Zbpqf8BLfmZ/bMYbh87k58VCSswCjQoLPPw4Jnp4uFi/YQlfKB5eBd/gr6aqB973zbDAF+v5PN+NZEvm+84bSkhxUPE9C9wqbeJ7Hi+gA9Jr5ZM7x9el4mulyK0Bb2xiMTj3/iBtK77Tnii27H/MlCfsjcJY+2oTg2/U4TYWQERE0r+aCouBcx5zEZzEYrqui8JXsQW/X8FLHJ3IVbWXhQV3zAJCjFQst1F25y1arlXwhRR4Bb4rZ3VPy5d+bHEtHIPF27K16ItYuKXM5kHD10M9DKFeSpbqLlOYAlRiC99yCiDmbUf0206jPPO7b/iud71avBkHf+kQP0OrWHBFrhmt75ZyPzbLg5KmWK9oH4Oq1eFZOm0c6n48mdfer46HcLUZU3pGB8R9IDBbJ+N7v1q0J2xhudZ45tcL8PN16vq9WizwtRLwFQtKER+NDypj4QQOdJNY3NC7GEsaGtiSmDsA+CZhyx+hXFHjYrgGGXpZNvDNpn5gWWuiWkUtyEB0UcrO8Y2L9KI9K+cXLmxqruGd6pcKfycj/ij3URVgu6bPUaycN1qXTHD+KoOmjGORnH57q8rh+e9sTHk5r1+7zpEXk36bp7iiXRrBW61e5k/D0fn+EXF/OxYEypFW3ZH1HzPt4Pv5PN2Rd7VJLDZeboGnbpSPwPDcBw5f6AIysadFOR9Hr7vksoFvE91jdbdYvzpYqyIvdQPU87uKL45u3u213CA8qkYPT6H1YgwIfkz7RI5xJdomfjoV4PXjfjgaRkNGhHwG1mNt1oq0y/j+SaZ5pV0LnrlG89Dl1YkmEsc3nKKzMKskJD+fx6NhlFiohdTe5EsZIig5WPgWUYCC9Dx5TG/sA5x15LCBbzXDtx/+uh74VmMZjLDamh8JvhzQtSsoeVTNNXB/Euv96LRR/qjO+By5xTxxJ683/FB00Pj0fZz9F2GPa70Ld2hbbVptWmjWabbGCl/ZAiTsbJa5hQ9OK/eWFE4xva9nG3z1zwCtnFXjYr6c3ykxPn9QiYWEWPhA4uuiDnzBpt4EMcg0QOm28M0gP76hJuELbIdZi4PqaILpJI+RYz4ZV42y+q49wBcxIbyXTmtXgevRWPl3MmjSSJU5vB3J0TA2Uu8mtP+R5/Au4iiF6NrUUiuCieOiJpnJq8gSXzwFLFiLP8X6bV0bYvzt8TXj75eLtKPRauY1RM1HR7GwEHpFbonIWAPwjxpfqJSCyBVUsk/DFOChhC18kyiPHFvwdVGh6XFbmfLx+RRi4jaqYiCnUDO1wc4u4ovo7pfS+XFD32e9GzndwxJiHcbQ/Vz6JrBMDGYyYK5l7YOsfkS2MVePfGkLsNXLGl9hIVbWXAv9fQ5i/j6UFL1RaQffB9qlwn3tS4WxMhaxETCMz6T9ZTqCk5FznoOKL9SEXMMIUwAZW6dNfCEVX61azdxwmIbg4aHdwtcj5KVBeNiqrb2+g5M8hTskSB6exHZ5bMEIF/wCoOT128zvdXziMLbvuDu/Usmh0oG7doMmafKNSmt8hQWUnmzhjJf/RskXCzQL8aYNfLG/QPGLY5KjKtcuNPGsyGytmj0/kPi6qdXwwJCPvOTYI3zTaICCNEh9FGSWM54OX4+A1UI80RV98czWKceJf65ervsleJm164/7ganACHHn+IPz8Nby1ptcnRztRWbipArvp4/gRchodbIFvsBSWPBaW+CHtzWfauFfcmnKRuyr+Fiu1WbzGKtCPWWMHjIgU1/Mgn2B74GKfbkajHwtVIHy3uBbh0Ocj9oplCC+kIJvYuKvI9bbkUUQ2+JaG7AeknwvhLd0YUxx+SZIf4XkGeqHUCNt9N8sQdvYlwtl9H4hMzqI5dHosMIX2taCl2s6LRowaubPyld/IgcvHBJPnKGnHDLh0ArfqzlYtkv5D8++4RsAvPbwTaJzgDcIDzxIRXuEbx4NIsYupjt7gi/6idL3j1AIqPY+OPH5PGO67x/jUS9NvF6hTte7x2kaCvtSZJiMlxjxMSqEtqXr3GPMn/9y4cXUypS/ymPxbIAvmurtYl9o7dqmBV9KdbLOgsik4B3d6xW/lO7w/kfe+yfx7bFuGkwY3/C6sURDj8584rCxJH5QtnYFVrFQVL35HNoQgO0jvt228XVRC4WQPLtANyiEzb1gD/BNoy5kHa5QEnUmiq/uG2fubeXh+kwuNj8IRxAoOqiLIqfTaNw84SfLWsDmqo08k30prHVKbHuYDo7ez6U7EsLX0oJX1ltV2AOg2KfoMPPA/sTx/ZPMqF9YiN11AsHLFrHgaAT3GBvw7hO+U9TH4bX10rgVx7YgMr0p7Pow4tL8XcY3l1kJMfVQmsA3fa/wFQh3JK9eivtV+tCaD4cUjdZvIRI9BfDUDd6PkkbfKhVbOJf/jUpuQcXXlgVNv68ejr4gTflk5AZ71+jR4AvEdPg6PDNpaz6a2AQm2otoWKvVS+LVTyL4OnaE7wSNUjfdpnZb+KbQdcA7Jr5ek0od8MD9dNjiN43t4etk1v0ITfyw6gS+Q4l5XwGwbXli+u/sj6pWGu9XfyYXx75d18+lf6t0tnau/pXKv8+xzorIkltn0l4r2dYCXlO8XDRbu9xw/9g/Zko2FXSFtKPxOxn3q+caluteK5lJsboXwVP/S27cPVz28X3i3/Ll/v8eDVMPDmzwvDbwddMt+NoROhq3yXcC4D7KpmTyA+XnqEzSFQrawDeLrsNemHrEL2+24r7NlENZUMa2vyxkH2DIs628e669ubdsR4VXC7C9u79eIVJtOwgdgO/dOICHGK6jQHaIwdXN4Lwt0LWHr4d6kX8tV+ozqAs+uYCSmO2w+jd4zGNeUYL4nqZxeN5WKVgooSAClmEaYhqhdit89QC7niSbCEM2sdkBuHYxQg9ri5ZjkuhI6DMP+J7cTvEtokEx0aPscyddoFJKpSZqV7G1GTxcpmEthpnw5058c6GfwqpwzGOtGjXSJI3FLYhc+O+jSr9aGhPWQlRshS8AticLX7wnsgbXxt6gsWCpRBa0vRGQM8oB9dhmP3QAwFX4c079dJNq6Qi5xbuyTmpPSJ1Ur4UtF7GoTtmUL3zxaWqMU8P/k3cXSQ1EQRjHGdzdHTa4u7tzBs7CedhykNwF2/5jq56iU11db6Lv2yTj8hs3JoiU9sZZp5/62J5v1z9NjrDHaSbnbFMf52sHrDUVaidDxNG0o9+uLjfosfdb3jT5d5j757riJgst9NIZQ2Pn+ySZll80vjI6Wz/hQJG4vPG0L/H6poQch/dW3vL3B0u8jl0HvVj5PvHCElEF8DUAFikVYTcvmfBdDzQlvvMXSV5lP5zrXj/fJ54zuWaeeuoqkW8AwCIaqeTZKkmYrpPwR2eqN9X72W7EG57vU67OBeuMV8KXLUzv93UTTj42tvaFS++GVsc5JRyLSLJ8nzO555hFBmiSRCqMr4GwrcmGkib5xSvcwmzFK6e8s7DMa2xH4YZdZumSOwsVzFeBWdr37tpIhOpSwXqONNgZq/2KgvBt54znHN1HzlljTO4oVD5fb+prNIJXQNL1ofDKQisbPLJDv3jNSLq9OkYBEIihKIj3v7S1TRQCX5Kdl1ZQlol7LF+E++fwirfiq2sf4cTXxc6hzxffPuLEeqSWrPGWMF58TWr5viyJAP5/4EV4KePiaSE8eNRgjDy8/tyRW+FZjhS+2tlovNJovtJovNJ0uhK6Wo64SDdxEbM//KesjwAAAABJRU5ErkJggg==",lo.map=s}}var yo=new r.Box3(new r.Vector3(-50,-50,-50),new r.Vector3(50,50,50)),mo=new r.Vector2,vo=new r.Frustum,No=new r.Matrix4,Do=new r.Clock,wo=new WeakMap,To=function(e){function i(i){var n,o,s,a,u,c,l,h,d,p,A,f,M,g,y,m;void 0===i&&(i={});var v=e.call(this)||this;if(v.ident=Fe(),v.panoIndex=0,v.needsRender=!1,v.onlyRenderIfNeeds=null===(n=i.onlyRenderIfNeeds)||void 0===n||n,v.imageOptions=t.__assign({},null!==(o=i.imageOptions)&&void 0!==o?o:{}),v.textureOptions=t.__assign({},null!==(s=i.textureOptions)&&void 0!==s?s:{}),v.poweredByRealsee=null===(a=i.poweredByRealsee)||void 0===a||a,v.extraElements=[],v.controllerInits={Panorama:null!==(u=i.panorama)&&void 0!==u?u:{},Model:null!==(c=i.model)&&void 0!==c?c:{},Floorplan:null!==(l=i.floorplan)&&void 0!==l?l:{},Topview:null!==(h=i.topview)&&void 0!==h?h:{},DepthPanorama:null!==(d=i.depthPanorama)&&void 0!==d?d:{},VRPanorama:null!==(p=i.vrPanorama)&&void 0!==p?p:{}},v.fps={testCount:0,testTime:He()},v.modeChangeDuration=null!==(A=i.modeChangeDuration)&&void 0!==A?A:1e3,v.panoramaLikeSavedPose={},"undefined"!=typeof window)if(i.renderer)i.renderer instanceof Ue&&v.throwError(new Error("cannot render a internal renderer")),v.renderer=i.renderer;else try{v.renderer=new Ue({preserveDrawingBuffer:i.preserveDrawingBuffer,backgroundColor:i.backgroundColor,backgroundAlpha:i.backgroundAlpha,antialias:i.antialias});var N=no();v.renderer.setPixelRatio(1===N?window.devicePixelRatio:1),v.renderer.setSize(512,512)}catch(e){e instanceof Error&&v.throwError(e)}v.getPixelsRenderTarget=new r.WebGLRenderTarget(1,1,{encoding:null!==(M=null===(f=v.renderer)||void 0===f?void 0:f.outputEncoding)&&void 0!==M?M:r.sRGBEncoding}),v.scissor=Object.assign({left:0,bottom:0,width:1,height:1},i.scissor),v.camera=new _e(80),v.scene=new Be,v.lastLoadWorkTask=Promise.resolve(),v.networkSubscribe=new kt,v.networkSubscribe.on("network",(function(e,t,i,n){var r;v.emit("network",e,t,i,n),null===(r=v.analysis)||void 0===r||r.network(v.work,e,t,i,n)})),v.model=new Xi({allowHosts:[],networkSubscribe:v.networkSubscribe});var D=at(yo);if(v.model.add(D),v.model.name="model_empty",v.model.empty=!0,v.model.loaded=!1,v.model.visible=!1,v.readyCallbacks=[],v.modelPending=!1,v.syncingState=!1,v.scene.add(v.model),v.helperGroup=new r.Group,v.helperGroup.name="helper",v.scene.add(v.helperGroup),v.videoTexture=new r.VideoTexture(i.videoInstance||function(){var e=document.createElement("video");e.loop=!0,e.autoplay=!0,e.playsInline=!0,e.muted=!0,e.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),e.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),e}()),v.plugins={},i.plugins)for(var w=0,T=i.plugins;w<T.length;w++){var x=T[w];if("function"==typeof x)x(v);else if(Array.isArray(x)){var E=x[0],j=x[1],z=x[2],I=E(v,z);"string"==typeof j&&(v.plugins[j]&&v.throwError(new Error("plugin name "+j+" is exists.")),v.plugins[j]=I)}}return function(e){(t=new r.DirectionalLight(16777215,.5)).position.copy(new r.Vector3(1,1,1)),e.add(t);var t=new r.DirectionalLight(16777215,.3);e.add(t),t=new r.AmbientLight(16777215,.3),e.add(t)}(v.scene),v.state={mode:null!==(g=v.currentMode)&&void 0!==g?g:"Panorama",panoIndex:null!==(y=v.panoIndex)&&void 0!==y?y:0,longitude:v.camera.pose.longitude,latitude:v.camera.pose.latitude,fov:v.camera.pose.fov,offset:v.camera.pose.offset.clone()},v.stateSynced=!1,v._enableIOSEDR=!0,v.destroyed=!1,v.paused=!0,"undefined"!=typeof window&&(!1!==i.play&&v.play(),!1!==(null!==(m=i.initialBasisLoader)&&void 0!==m&&m)&&("string"==typeof i.initialBasisLoader?v.initBasisLoader(i.initialBasisLoader):v.initBasisLoader()),v.stopAnimationLoop=We.shared.add((function(e,t){v.updateTime(e,t)}),!1,0,10)),v}return t.__extends(i,e),i.prototype.dispose=function(){var e;if(!0!==this.destroyed){this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var t=this.getElement();t&&t.parentNode&&t.parentNode.removeChild(t),this.scene.remove(this.model);var i=this.model.getMaterial();i&&(i.pano0&&i.pano0.map.dispose(),i.pano1&&i.pano1.map!==(null===(e=i.pano0)||void 0===e?void 0:e.map)&&i.pano1.map.dispose()),this.renderer instanceof Ue&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},i.prototype.setScissor=function(e){Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize()},Object.defineProperty(i.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpersVisibleChange",e),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR=e,this.currentMode&&this.changeMode(this.currentMode,{},0,!1,!0)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"enablePostProcessing",{get:function(){return void 0!==this.screenBuffer},set:function(e){var t,i;if(e){if(!this.screenBuffer){var n=this.getDrawingBufferSize(mo);this.screenBuffer=new r.WebGLRenderTarget(n.x,n.y,{encoding:null!==(i=null===(t=this.renderer)||void 0===t?void 0:t.outputEncoding)&&void 0!==i?i:r.sRGBEncoding})}}else this.screenBuffer&&(this.screenBuffer.dispose(),delete this.screenBuffer);this.needsRender=!0},enumerable:!1,configurable:!0}),i.prototype.appendTo=function(e,t){if(void 0===t&&(t={}),this.renderer)if(this.renderer instanceof Ue){var i=this.getElement();if(i){e.appendChild(i),this.refresh(t);var n=window.getComputedStyle(e).position;"relative"!==n&&"absolute"!==n&&"fixed"!==n&&"sticky"!==n&&(e.style.position="relative")}}else this.throwError(new Error("cannot call appendTo method when render a external renderer"))},i.prototype.refresh=function(e,t){if(void 0===e&&(e={}),this.renderer){var i=this.getElement();if(i){var n=i.parentNode;if(n&&n.nodeName){var o=e.width,s=void 0===o?n.offsetWidth:o,a=e.height,u=void 0===a?n.offsetHeight:a;this.renderer instanceof Ue&&(t&&this.renderer.setPixelRatio(t),this.renderer.setSize(s,u))}var c=this.renderer.getSize(new r.Vector2);this.camera.aspect=c.x/c.y,this.scissor&&(this.camera.aspect*=this.scissor.width/this.scissor.height),this.camera.updateProjectionMatrix(),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(),this.needsRender=!0}}},i.prototype.addExtraElement=function(e){var t=this;return-1===this.extraElements.indexOf(e)&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return t.removeExtraElement(e)}},i.prototype.removeExtraElement=function(e){var t=this.extraElements.indexOf(e);-1!==t&&(this.extraElements.splice(t,1),this.controller&&this.controller.unbindExtraElement(e))},i.prototype.getPose=function(){var e=this.camera.copyPose();return{longitude:e.longitude,latitude:e.latitude,fov:e.fov,offset:e.offset}},i.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},i.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},i.prototype.updateCamera=function(e,t,i){return void 0===i&&(i=!0),this.controller?this.controller.updateCamera(e,t,i):Promise.reject(new Error("controller is not initialized."))},i.prototype.getLongitudeAndLatitude=function(){var e=this.getPose();return{longitude:e.longitude,latitude:e.latitude}},i.prototype.getOffset=function(){return this.getPose().offset},i.prototype.getCameraLocal=function(){if("number"==typeof this.panoIndex&&this.controller&&this.work){var e=this.work.observers[this.panoIndex],t=new r.Object3D;return t.position.copy(e.position),t.quaternion.copy(e.quaternion),t.scale.set(1,1,1),t.updateMatrixWorld(!0),function(e,t){var i=new r.Vector3(0,0,-1);i.applyQuaternion(e.quaternion);var n=t.quaternion.clone().inverse();return i.applyQuaternion(n),{theta:Math.atan2(i.x,-i.z),phi:-Math.asin(i.y),lookAtVector:i}}(this.camera,t)}},i.prototype.initBasisLoader=function(e){try{if(!this.renderer)throw new Error("renderer is not initialized.");if("undefined"==typeof Promise||"undefined"==typeof WeakMap||"undefined"==typeof WebAssembly)throw new Error("Basis loader not support.");"string"==typeof e&&wi.setTranscoderPath(e),wi.workerConfig.format||wi.detectSupport(this.renderer),wi._allocateWorker(0)}catch(e){e instanceof Error&&this.throwError(e)}},Object.defineProperty(i.prototype,"work",{get:function(){var e=wo.get(this);if(e&&An.get(e))return e},enumerable:!1,configurable:!0}),i.prototype.load=function(e,t,i,n){var r=this;if(void 0===n&&(n=!0),!this.renderer)throw new Error("renderer is not initialized");var o=this.lastLoadWorkTask.then((function(){return!(o=e)||"object"!=typeof o&&"function"!=typeof o||"function"!=typeof o.then?r.load_(e,t,i,n):e.then((function(e){return r.load_(e,t,i,n)}));var o}));return this.lastLoadWorkTask=o.catch((function(e){r.throwError(e)})),o},i.prototype.load_=function(e,n,r,o){var s,a,u,c,l,h,d,p,A,f=this;void 0===o&&(o=!0);var M,g,y,m=Mn(e),v=this.work;void 0===n&&(n=v?"inherit":"initial"),"inherit"===n?(M="number"==typeof this.panoIndex&&m.observers[this.panoIndex]?this.panoIndex:m.initial.panoIndex,g=null!==(s=this.currentMode)&&void 0!==s?s:m.initial.mode,y={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):"initial"===n?(g=null!==(a=this.currentMode)&&void 0!==a?a:m.initial.mode,M=m.initial.panoIndex,y=g===i.Mode.Panorama||g===i.Mode.DepthPanorama||g===i.Mode.Model||g===i.Mode.VRPanorama?{longitude:m.initial.longitude,latitude:m.initial.latitude,fov:m.initial.fov}:{longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov}):(M=null!==(u=n.panoIndex)&&void 0!==u?u:m.initial.panoIndex,g=null!==(l=null!==(c=n.mode)&&void 0!==c?c:this.currentMode)&&void 0!==l?l:"Panorama",y={longitude:null!==(h=n.longitude)&&void 0!==h?h:m.initial.longitude,latitude:null!==(d=n.latitude)&&void 0!==d?d:m.initial.latitude,fov:null!==(p=n.fov)&&void 0!==p?p:m.initial.fov}),this.emit("willLoad",e,m,{panoIndex:M,mode:g,longitude:y.longitude,latitude:y.latitude,fov:y.fov});var N=function(){var i;wo.set(f,m),f.panoIndex=M,f.panoramaLikeSavedPose.longitude=m.initial.longitude,f.panoramaLikeSavedPose.latitude=m.initial.latitude,f.panoramaLikeSavedPose.fov=m.initial.fov;var n=f.controller?null!=r?r:f.modeChangeDuration:0,s=t.__assign(t.__assign({initial:[M,y,n,o]},f.commonParams()),f.controllerInits[g]);f.controller?!1===f.controller.updateWork(m,M,y,n,!0)&&(f.controller.destroy(),f.controller=f.applyController(g,s)):f.controller=f.applyController(g,s),f.emit("load",e,m,{panoIndex:M,mode:g,longitude:y.longitude,latitude:y.latitude,fov:y.fov}),null===(i=f.analysis)||void 0===i||i.work(m)},D=function(e){var t,i;void 0===e&&(e=Qe),m.model&&((null===(t=null==v?void 0:v.model)||void 0===t?void 0:t.file)!==(null===(i=m.model)||void 0===i?void 0:i.file)?(f.emit("modelWillLoad",m.model),f.loadModel(m.model,m.allowHosts,e,!0)):e&&(!0===f.model.loaded?e():f.once("modelLoaded",(function(){return e()}))))};return g===i.Mode.Floorplan||g===i.Mode.Topview||g===i.Mode.Model?D((function(){N(),f.needsRender=!0})):(this.controller||(this.camera.setFromPose({distance:0,fov:m.initial.fov,longitude:m.initial.longitude,latitude:m.initial.latitude,offset:m.observers[m.initial.panoIndex].position}),this.needsRender=!0),N(),null===(A=this.controller)||void 0===A||A.once("panoLoaded",(function(){f.needsRender=!0,f.emit("cameraUpdate",f.camera.copyPose(),o),D()}))),this.ready().then((function(){f.emit("loaded",e,f.work)}))},i.prototype.changeMode=function(e,n,r,o,s){var a=this;if(void 0===n&&(n={}),void 0===r&&(r=this.modeChangeDuration),void 0===o&&(o=!0),void 0===s&&(s=!1),!this.renderer)throw new Error("renderer is not initialized.");return new Promise((function(u,c){if(!i.Mode.hasOwnProperty(e)){var l=new Error('mode "'+e+'" is not existed');return a.throwError(l),void c(l)}if((e===i.Mode.Floorplan||e===i.Mode.Topview||e===i.Mode.Model)&&(Re(a.model)||!0!==a.model.loaded)){l=new Error("model is not ready.");return a.throwError(l),void c(l)}if(Re(a.controller)){l=new Error("controller is not ready.");return a.throwError(l),void c(l)}var h=a.controller,d=a.currentMode,p=function(){var l,p,A,f;if(a.emit("wantsChangeMode",e,d))c(new Error("change mode canceled."));else{if(a.controller&&!1===s&&d===e)e===i.Mode.Panorama||e===i.Mode.DepthPanorama||e===i.Mode.Model||e===i.Mode.VRPanorama?"number"==typeof n.panoIndex&&n.panoIndex!==a.panoIndex?a.controller.moveToPano(null!==(p=null!==(l=n.panoIndex)&&void 0!==l?l:a.panoIndex)&&void 0!==p?p:0,t.__assign({duration:r},n),o):a.updateCamera(n,r,o).catch((function(){})):("number"==typeof n.panoIndex&&n.panoIndex!==a.panoIndex&&(a.panoIndex=n.panoIndex),a.updateCamera(n,r,o).catch((function(){})));else{h.destroy();var M=null!==(f=null!==(A=n.panoIndex)&&void 0!==A?A:a.panoIndex)&&void 0!==f?f:0,g=eo(e)?a.panoramaLikeSavedPose:{};"number"!=typeof n.longitude&&"number"!=typeof n.latitude||(g.longitude=n.longitude,g.latitude=n.latitude),"number"==typeof n.fov&&(g.fov=n.fov);var y=t.__assign(t.__assign({initial:[M,g,r,o]},a.commonParams()),a.controllerInits[e]);a.saveControllerPose(h),a.controller=a.applyController(e,y);var m=$r[e].initAnimationEndPose(y);a.emit("modeChange",e,d,M,m)}u()}};e===i.Mode.VRPanorama?("undefined"!=typeof DeviceOrientationEvent&&"function"==typeof DeviceOrientationEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((function(e){if("granted"==e)return Promise.resolve();var t=new Error("Request DeviceOrientation Permission denied.");return Promise.reject(t)})):Promise.resolve()).then((function(){return p()})).catch((function(e){e instanceof Error&&(a.throwError(e),c(e))})):p()}))},i.prototype.getPixels=function(e,t,i,n,o){if(void 0===o&&(o=1),!this.renderer)throw new Error("renderer is not initialized.");var s=this.getPixelsRenderTarget,a=this.renderer.getSize(new r.Vector2);e=Math.min(Math.max(e,Math.floor(i/2)),Math.floor(a.x-i)),t=Math.min(Math.max(t,Math.floor(n/2)),Math.floor(a.y-n)),e*=o,t*=o,i*=o,n*=o,s.setSize(a.x*o,a.y*o),s.scissor.set(e,t,i,n),s.scissorTest=!0,this.renderer.setRenderTarget(s);var u=new Uint8Array(i*n*4);return this.controller?this.controller.render(Do.getDelta()):this.renderer.render(this.scene,this.camera),this.renderer.readRenderTargetPixels(s,e,t,i,n,u),this.renderer.setRenderTarget(null),s.setSize(1,1),s.scissor.set(0,0,0,0),s.scissorTest=!1,u},i.prototype.getElement=function(){var e;return null===(e=this.renderer)||void 0===e?void 0:e.domElement},i.prototype.render=function(e,t){var i=this;if(void 0===t&&(t=!1),!this.renderer)return null;if(t){var n=this.renderer.getSize(new r.Vector2);this.scene.traverseVisible((function(e){e.setResolution&&e.setResolution(n.x,n.y)}))}if(this.controller&&this.screenBuffer&&null===this.renderer.getRenderTarget()){var o=this.getDrawingBufferSize(mo);this.screenBuffer.setSize(o.x,o.y),this.renderer.setRenderTarget(this.screenBuffer),this.controller.render(Do.getDelta()),this.poweredByRealsee&&go(this.renderer),this.renderer.setRenderTarget(null);var s=Ji(this.renderer.getContext());return s&&this.throwError(s),e&&We.shared.add(e,!0),this.screenBuffer}return this.aroundScissor((function(){if(i.renderer){i.controller?i.controller.render(Do.getDelta()):i.renderer.render(i.scene,i.camera),i.poweredByRealsee&&go(i.renderer);var t=Ji(i.renderer.getContext());t&&i.throwError(t)}e&&We.shared.add(e,!0)})),null},i.prototype.updateTime=function(e,t){var i=this;if(!this.destroyed){this.syncingState=this.syncState(e,t),this.controller&&this.controller.updateTime(e,t),this.syncingState=!1;var n=new r.Vector2(512,512);this.renderer&&this.renderer.getSize(n);var o=[];if(No.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),vo.setFromProjectionMatrix(No),this.scene.traverse((function(e){e.setResolution&&e.setResolution(n.x,n.y),e.mixer instanceof r.AnimationMixer&&e.mixer.update(Do.getDelta()),(e instanceof r.Mesh||e instanceof r.Line||e instanceof r.Points)&&(e instanceof r.ImmediateRenderObject||!e.frustumCulled||vo.intersectsObject(e))&&o.push(e)})),this.renderer&&!1===this.paused){var s=void 0;if(!0!==this.onlyRenderIfNeeds)s=this.render();else{for(var a=0,u=o;a<u.length;a++){var c=u[a],l=function(e){!0===e.needsRender?(e.needsRender=!1,i.needsRender=!0):e.mixer&&e.mixer.stats.actions.inUse>0&&(i.needsRender=!0)};l(c),c.traverseAncestors(l)}this.controller&&!0===this.controller.needsRender&&(this.controller.needsRender=!1,this.needsRender=!0),!1!==this.needsRender&&(s=this.render())}this.needsRender=!1,this.controller&&this.screenBuffer&&this.aroundScissor((function(){return i.controller.postProcessing(i.screenBuffer,Do.getDelta())})),this.hasListener("renderFrame")&&this.emit("renderFrame",void 0!==s)}this.hasListener("fps")&&(this.fps.testTime&&e-this.fps.testTime<1e3?this.fps.testCount++:(this.emit("fps",this.fps.testCount),this.fps.testTime=e,this.fps.testCount=0))}},i.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof Ue&&this.renderer.clear(!0,!0,!0)},i.prototype.play=function(){this.needsRender=!0,this.paused=!1},i.prototype.moveToPano=function(e,t,n){void 0===t&&(t={}),void 0===n&&(n=!0);var r=this,o=r.controller,s=r.currentMode,a=r.renderer;o?a?s===i.Mode.Floorplan||s===i.Mode.Topview?Re(e)||(this.panoIndex=e,this.changeMode(i.Mode.Panorama,t,void 0,n)):o.moveToPano(e,t,n):this.throwError(new Error("renderer is not initialized.")):this.throwError(new Error("controller is not initialized."))},i.prototype.preloadPano=function(e,i){var n=this;if(void 0===i&&(i=Qe),!this.work)return Promise.reject(new Error("work never loaded"));var r=this.work.observers[e],o=He();return Promise.all(["right","left","up","down","front","back"].map((function(i){var o=t.__assign({key:"cube."+e+"."+i,basisLoaderInitialized:wi.isInitialized()},Xt(n.imageOptions,["size","format","quality"])),s=r.images[i];return function(e,t){return void 0===t&&(t={}),e in Pt?Pt[e]:Pt[e]=new Promise((function(i,n){var r=document.createElement("link");r.href=e,r.rel="preload",r.as="fetch";var o=He(),s=document.head||document.getElementsByTagName("head")[0];s&&s.appendChild(r);var a=!1;r.onload=function(){var n;if(!0!==a){a=!0,i();var r=He(),s={source:e,requestTime:o,responseTime:r,costs:r-o,headers:{}};null===(n=t.networkSubscribe)||void 0===n||n.emit("network",e,"Link","preload",JSON.stringify(s))}},r.onerror=function(i){var r;if(!0!==a){a=!0;var o=new zt(e,"Link",0);n(o),null===(r=t.networkSubscribe)||void 0===r||r.emit("network",e,"Link","error",o.message)}}}))}(n.imageOptions.transform?n.imageOptions.transform(s,o):ti(s,o),{networkSubscribe:n.networkSubscribe})}))).then((function(){var e=He()-o;return i(e),e}))},i.prototype.project2d=function(e,t){if(void 0===t&&(t=!1),!this.renderer)return null;if(!1===this.model.empty&&t){var i=this.camera.position,n=e.clone().sub(i),o=new r.Raycaster(i,n.clone().normalize()),s=this.model.intersectRaycaster(o)[0];if(s&&s.distance+.01<n.length())return null}var a=e.clone().project(this.camera);if(Math.abs(a.z)>1)return null;var u=this.renderer.getSize(new r.Vector2),c=u.x*this.scissor.width,l=u.y*this.scissor.height,h=u.x*this.scissor.left+(a.x+1)/2*c,d=u.y*(1-this.scissor.bottom-this.scissor.height)+(1-a.y)/2*l;return new r.Vector2(h,d)},i.prototype.getRenderObjects=function(e){No.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),vo.setFromProjectionMatrix(No),e||(e=this.scene);var t=[];return e.traverseVisible((function(e){(e instanceof r.Mesh||e instanceof r.Line||e instanceof r.Points)&&(e instanceof r.ImmediateRenderObject||!e.frustumCulled||vo.intersectsObject(e))&&t.push(e)})),t},i.prototype.getCurrentState=function(){return t.__assign(t.__assign({},this.getPose()),{mode:this.currentMode||i.Mode.Panorama,panoIndex:this.panoIndex||0})},i.prototype.setState=function(e,n,o){var s,a,u,c,l,h,d,p;void 0===n&&(n=!1),void 0===o&&(o=!0),!(e=Object.assign({},e)).offset||e instanceof r.Vector3||(e.offset=new r.Vector3(e.offset.x,e.offset.y,e.offset.z));var A,f,M,g,y=null!==(s=e.panoIndex)&&void 0!==s?s:this.state.panoIndex,m=null!==(a=e.mode)&&void 0!==a?a:this.state.mode;if(this.work)if(this.work.observers[y])if(e.mode!==i.Mode.Floorplan&&e.mode!==i.Mode.Topview&&e.mode!==i.Mode.Model||!Re(this.model)&&!0===this.model.loaded){if(this.state.mode!==m){var v=void 0;v=eo(this.state.mode)&&eo(m)?t.__assign({},this.state):eo(m)?t.__assign({},this.panoramaLikeSavedPose):t.__assign({},e),"number"==typeof e.longitude&&(v.longitude=e.longitude),"number"==typeof e.latitude&&(v.latitude=e.latitude),"number"==typeof e.fov&&(v.fov=e.fov);var N=t.__assign(t.__assign({initial:[y,v,this.modeChangeDuration,!1]},this.commonParams()),this.controllerInits[m]),D=$r[m].initAnimationEndPose(N);A=D.longitude,f=D.latitude,M=D.fov,g=D.offset}else A=null!==(u=e.longitude)&&void 0!==u?u:this.state.longitude,f=null!==(c=e.latitude)&&void 0!==c?c:this.state.latitude,M=null!==(l=e.fov)&&void 0!==l?l:this.state.fov,g=null!==(h=e.offset)&&void 0!==h?h:this.state.offset;var w={panoIndex:y,mode:m,longitude:A,latitude:f,fov:M,offset:g};this.emit("setState",w),Dn(this.state,w)||(Nn(this.state,w),this.controller&&(this.controller.userAction=o),n&&this.state.mode===w.mode&&(this.syncingState=this.syncState(He(),0,n),this.syncingState&&(null===(d=this.controller)||void 0===d||d.updateTime(He(),0),this.syncingState=!1)),this.emit("stateChange",this.state,o),null===(p=this.analysis)||void 0===p||p.state(this.work,this.state))}else this.throwError(new Error("model is not ready."));else this.throwError(new Error("panoIndex not found in work"));else this.throwError(new Error("work never load."))},i.prototype.aroundScissor=function(e){if(this.renderer){var t=new r.Vector2,i=0!==this.scissor.left||0!==this.scissor.bottom||1!==this.scissor.width||0!==this.scissor.height;if(i){this.renderer.getSize(t);var n=Math.floor(t.x*this.scissor.left),o=Math.floor(t.y*this.scissor.bottom),s=Math.floor(t.x*this.scissor.width),a=Math.floor(t.y*this.scissor.height);this.renderer.setViewport(n,o,s,a),this.renderer.setScissor(n,o,s,a),this.renderer.setScissorTest(!0)}e(),i&&(this.renderer.setViewport(0,0,t.x,t.y),this.renderer.setScissor(0,0,t.x,t.y),this.renderer.setScissorTest(!1))}},i.prototype.syncState=function(e,t,n){void 0===n&&(n=!1);var o=this.stateSynced;if(this.stateSynced=!1,!this.controller)return!1;if(this.state.mode!==this.currentMode){var s={mode:this.state.mode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.changeMode(this.state.mode,s,this.modeChangeDuration,this.controller.userAction),!0}if(!1===this.controller.isReady())return!1;if(this.readyCallbacks.length){var a=this.currentMode;if(!(a===i.Mode.Floorplan||a===i.Mode.Topview||a===i.Mode.Model)||!this.modelPending)for(var u=void 0;u=this.readyCallbacks.shift();)u()}if(this.controller instanceof $r.Model){if(!this.camera.pose.offset.equals(this.state.offset)){var c={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,c,!1),!0}}else if(this.state.panoIndex!==this.panoIndex){c={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPano(this.state.panoIndex,c,!1),!0}if(this.controller instanceof $r.Topview){var l=1,h=n?this.state.fov:rn(this.camera.pose.fov,this.state.fov,l),d=n?new r.Vector3(this.state.offset.x,this.state.offset.y,this.state.offset.z):new r.Vector3(rn(this.camera.pose.offset.x,this.state.offset.x,.2),rn(this.camera.pose.offset.y,this.state.offset.y,.2),rn(this.camera.pose.offset.z,this.state.offset.z,.2));if(Math.abs(h-this.camera.pose.fov)>.001||d.distanceTo(this.camera.pose.offset)>.001)return this.controller.cameraMotion.set({fov:h},0).catch(Qe),this.controller.locationMotion.set({x:d.x,y:d.y,z:d.z},0).catch(Qe),!0}else{l=1;var p=Math.PI/45,A=(h=n?this.state.fov:rn(this.camera.pose.fov,this.state.fov,l),n?{longitude:this.state.longitude,latitude:this.state.latitude}:function(e,t,i){if(e.longitude===t.longitude&&e.latitude===t.latitude)return{longitude:t.longitude,latitude:t.latitude};var n=en(e.longitude),r=e.latitude,o=en(t.longitude),s=t.latitude;o-n>tn?n+=nn:n-o>tn&&(n-=nn);var a=i/Math.sqrt(Math.pow(o-n,2)+Math.pow(s-r,2));return a>=1?{longitude:t.longitude,latitude:t.latitude}:{longitude:n+(o-n)*a,latitude:r+(s-r)*a}}({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},p)),f=A.longitude,M=A.latitude;if(Math.abs(f-this.camera.pose.longitude)>.001||Math.abs(M-this.camera.pose.latitude)>.001||Math.abs(h-this.camera.pose.fov)>.001)return this.controller.cameraMotion.set({longitude:f,latitude:M,fov:h},0).catch(Qe),!0}return this.stateSynced=!0,!1===o&&this.emit("stateSynced",this.state),!1},i.prototype.ready=function(){var e=this;return new Promise((function(t){return e.readyCallbacks.push(t)}))},i.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},i.prototype.loadModel=function(e,t,n,r){var o=this,s=e.async||!1;this.emit("modelWillLoad",e);var a=new Xi({allowHosts:t,networkSubscribe:this.networkSubscribe});a.once("bvhLoaded",(function(){o.emit("modelBvhLoaded",a)})),a.once("geometryLoaded",(function(){o.emit("modelGeometryLoaded",a)})),a.on("error",(function(e){o.emit("modelLoadError",e,a),o.throwError(e),o.modelPending=!1})),a.on("shownFloorChange",(function(e,t){o.emit("modelShownFloorChange",e,t)})),a.once("loaded",(function(){var e;if(!o.destroyed){a.bounding.max.y-a.bounding.min.y<1.5&&(a.bounding.max.y=a.bounding.min.y+10);var t,r=o.model;r&&(r.show(),t=r.getMaterial()||{},o.scene.remove(r),r.dispose(),a.setTransparent(r.getTransparent())),o.model=Object.assign(a,{loaded:!0}),null===(e=o.controller)||void 0===e||e.updateModel(o.model),t&&o.model.setMaterial(t),r&&o.currentMode!==i.Mode.Panorama&&(s=!1);var u=function(){var e;null===(e=o.renderer)||void 0===e||e.compile(o.scene,o.camera),n(),o.emit("modelLoaded",a),o.emit("modelMaterialLoaded",a),a.buildBVH(),o.needsRender=!0,o.modelPending=!1};if(s){var c=[].concat(o.model.children);o.model.children.length=0;var l=at(yo);l.name="uniformKeeper",l.visible=!1,l.setMaterial(t||{}),o.model.add(l),o.scene.add(o.model);var h=function(){Ft((function(){var e=c.shift();e?(o.model.setMaterial.call(e,o.model.getMaterial()||{}),o.model.add(e),null===o.model.shownFloor?o.model.show():o.model.show(o.model.shownFloor),We.shared.add(h,!0,2)):(o.model.remove(l),u())}))};h()}else r?(o.scene.add(o.model),u()):Ft((function(){o.scene.add(o.model),u()}))}})),this.modelPending=!0,a.load(e,this.textureOptions)},i.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,helper:this.helperGroup,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),model:this.model,work:this.work,imageOptions:this.imageOptions,enableIOSEDR:this._enableIOSEDR,extraElements:this.extraElements,videoTexture:this.videoTexture,networkSubscribe:this.networkSubscribe}},i.prototype.saveControllerPose=function(e){void 0===e&&(e=this.controller),e&&eo(e)&&(this.panoramaLikeSavedPose.longitude=this.camera.pose.longitude,this.panoramaLikeSavedPose.latitude=this.camera.pose.latitude,this.panoramaLikeSavedPose.fov=this.camera.pose.fov)},i.prototype.applyController=function(e,n){var r=this;if(!this.renderer)throw new Error("renderer is not initialized.");var o=$r[e];e===this.currentMode||this.model.empty||this.model.show(),this.model.setTransparent(e===i.Mode.Floorplan||e===i.Mode.Topview||e===i.Mode.Model),this.currentMode=e;for(var s=new o(n),a=function(e){s.on(e,(function(){for(var i=[],n=0;n<arguments.length;n++)i[n]=arguments[n];var o=r.emit.apply(r,t.__spreadArray([e],i,!1));if(o)return!1}))},u=0,c=to;u<c.length;u++){a(c[u])}var l=$r[e].initAnimationEndPose(n),h=n.initial[3],d={panoIndex:n.initial[0],mode:e,longitude:l.longitude,latitude:l.latitude,fov:l.fov,offset:l.offset};return Dn(this.state,d)||(Nn(this.state,d),this.emit("stateChange",this.state,h)),this.emit("currentStateChange",this.getCurrentState(),h),s.on("cameraUpdate",(function(i,n){var o;if(r.controller){var s=t.__assign(t.__assign({},r.controller.getTargetPose()),{panoIndex:r.panoIndex,mode:e});n&&!1===r.syncingState&&r.state.mode===s.mode&&!Dn(r.state,s)&&(Nn(r.state,s),r.emit("stateChange",r.state,n),null===(o=r.analysis)||void 0===o||o.state(r.work,r.state))}r.emit("currentStateChange",r.getCurrentState(),n)})),s.on("initAnimationWillStart",(function(i,n,o){var s,a=t.__assign(t.__assign({},n),{panoIndex:i,mode:e});o&&r.state.mode===a.mode&&!Dn(r.state,a)&&(Nn(r.state,a),r.emit("stateChange",r.state,o),null===(s=r.analysis)||void 0===s||s.state(r.work,r.state))})),s.on("initAnimationEnded",(function(i,n,o){var s,a=t.__assign(t.__assign({},n),{panoIndex:i,mode:e});o&&r.state.mode===a.mode&&!Dn(r.state,a)&&(Nn(r.state,a),r.emit("stateChange",r.state,o),null===(s=r.analysis)||void 0===s||s.state(r.work,r.state))})),s.on("panoWillArrive",(function(i,n,o){var s;r.panoIndex=i;var a=t.__assign(t.__assign({},n),{panoIndex:i,mode:e});o&&r.state.mode===a.mode&&!Dn(r.state,a)&&(Nn(r.state,a),r.emit("stateChange",r.state,o),null===(s=r.analysis)||void 0===s||s.state(r.work,r.state))})),s.on("panoArrived",(function(i,n,o){var s,a=t.__assign(t.__assign({},n),{panoIndex:i,mode:e});o&&r.state.mode===a.mode&&!Dn(r.state,a)&&(Nn(r.state,a),r.emit("stateChange",r.state,o),null===(s=r.analysis)||void 0===s||s.state(r.work,r.state))})),s.on("moveToPano",(function(e,t){r.emit("currentStateChange",r.getCurrentState(),t)})),s.on("wantsMoveToPano",(function(e,t,i){var n=r.emit("wantsMoveToPano",e,t,i);n||(n=r.emit("wantsToMoveToPano",e,t,i)),n||r.moveToPano(e,t,i)})),s.on("vrWantsToExit",(function(){r.currentMode===i.Mode.VRPanorama&&r.changeMode(i.Mode.Panorama)})),s.on("error",(function(e){return r.throwError(e)})),s},i.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",DepthPanorama:"DepthPanorama",VRPanorama:"VRPanorama"},i.Line=null,i}(vt);exports.AnimationFrameLoop=We,exports.BVH=Mt,exports.BVHNode=pt,exports.BVHVector3=dt,exports.Camera=_e,exports.Five=To,exports.InternalWebGLRenderer=Ue,exports.Model=Xi,exports.NetworkSubscribe=kt,exports.PBMContainer=Ke,exports.PBMGroup=Ze,exports.PBMMaterial=rt,exports.PBMMesh=qe,exports.PROXY_CONTROLLER_EVENT_NAMES=to,exports.Scene=Be,exports.Subscribe=vt,exports.defaultImageURLTransform=ti,exports.getViewportScale=no,exports.parseWork=Mn;