@realsee/five 5.0.0-alpha.19 → 5.0.0-alpha.190

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 (251) hide show
  1. package/README.md +18 -8
  2. package/docs/.nojekyll +1 -0
  3. package/docs/assets/highlight.css +134 -0
  4. package/docs/assets/icons.css +1043 -0
  5. package/docs/assets/main.js +52 -0
  6. package/docs/assets/search.js +1 -0
  7. package/docs/assets/style.css +1414 -0
  8. package/docs/classes/five.AnimationFrameLoop.html +15 -0
  9. package/docs/classes/five.BVH.html +10 -0
  10. package/docs/classes/five.BVHIntersect.html +1 -0
  11. package/docs/classes/five.BVHNode.html +7 -0
  12. package/docs/classes/five.BVHVector3.html +1 -0
  13. package/docs/classes/five.Camera.html +11 -0
  14. package/docs/classes/five.Clipper.html +1 -0
  15. package/docs/classes/five.Five.html +328 -0
  16. package/docs/classes/five.InternalWebGLRenderer.html +1 -0
  17. package/docs/classes/five.IntersectMesh.html +1 -0
  18. package/docs/classes/five.Model.html +91 -0
  19. package/docs/classes/five.NetworkSubscribe.html +50 -0
  20. package/docs/classes/five.PBMContainer.html +17 -0
  21. package/docs/classes/five.PBMGroup.html +19 -0
  22. package/docs/classes/five.PBMMaterial.html +29 -0
  23. package/docs/classes/five.PBMMesh.html +7 -0
  24. package/docs/classes/five.PanoCircleMesh.html +7 -0
  25. package/docs/classes/five.PanoCircleMeshCustom.html +7 -0
  26. package/docs/classes/five.PanoCircleMeshSolid.html +7 -0
  27. package/docs/classes/five.Scene.html +3 -0
  28. package/docs/classes/five.Subscribe.html +56 -0
  29. package/docs/classes/five.TextureLoader.html +1 -0
  30. package/docs/classes/five.Tile3D.html +34 -0
  31. package/docs/classes/five.Tile3DModel.html +15 -0
  32. package/docs/classes/five.TileBoundingSphere.html +1 -0
  33. package/docs/classes/five.TileCacheNode.html +1 -0
  34. package/docs/classes/five.TileCubeTextureTarget.html +1 -0
  35. package/docs/classes/five.TileCullingVolume.html +1 -0
  36. package/docs/classes/five.TileOrientedBoundingBox.html +1 -0
  37. package/docs/classes/five.TileRequestScheduler.html +16 -0
  38. package/docs/classes/five.Tileset3D.html +11 -0
  39. package/docs/classes/five.Tileset3DTraverser.html +1 -0
  40. package/docs/classes/five.TilesetCache.html +1 -0
  41. package/docs/classes/five.Work.html +32 -0
  42. package/docs/classes/five.XRButton.html +1 -0
  43. package/docs/classes/gltf_loader.DDSLoader.html +1 -0
  44. package/docs/classes/gltf_loader.DRACOLoader.html +1 -0
  45. package/docs/classes/gltf_loader.GLTFLoader.html +17 -0
  46. package/docs/classes/gltf_loader.GLTFObject.html +7 -0
  47. package/docs/classes/gltf_loader.GLTFParser.html +1 -0
  48. package/docs/classes/gltf_loader.THREEGLTFLoader.html +1 -0
  49. package/docs/classes/line.Line.html +1 -0
  50. package/docs/classes/line.LineGeometry.html +1 -0
  51. package/docs/classes/line.LineMaterial.html +1 -0
  52. package/docs/classes/line.LineSegmentsGeometry.html +1 -0
  53. package/docs/classes/line.THREE_Line2.html +1 -0
  54. package/docs/classes/line.THREE_LineSegments2.html +1 -0
  55. package/docs/classes/react.Store.html +29 -0
  56. package/docs/classes/server.BVH.html +10 -0
  57. package/docs/classes/server.BVHIntersect.html +1 -0
  58. package/docs/classes/server.BVHNode.html +7 -0
  59. package/docs/classes/server.BVHVector3.html +1 -0
  60. package/docs/classes/server.Model.html +70 -0
  61. package/docs/classes/server.PBMContainer.html +7 -0
  62. package/docs/classes/server.PBMGroup.html +9 -0
  63. package/docs/classes/server.PBMMesh.html +7 -0
  64. package/docs/classes/sticker.Sticker.html +32 -0
  65. package/docs/classes/vfx.Airflow.html +1 -0
  66. package/docs/classes/vfx.Flame.html +1 -0
  67. package/docs/classes/vfx.Particle.html +89 -0
  68. package/docs/classes/vfx.SpotLight.html +1 -0
  69. package/docs/index.html +166 -434
  70. package/docs/interfaces/five.AddableObject.html +9 -0
  71. package/docs/interfaces/five.AnimationFrame.html +1 -0
  72. package/docs/interfaces/five.CameraPose.html +1 -0
  73. package/docs/interfaces/five.ClipperParameter.html +1 -0
  74. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +28 -0
  75. package/docs/interfaces/five.EventCallback.html +400 -0
  76. package/docs/interfaces/five.FiveInitArgs.html +109 -0
  77. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +17 -0
  78. package/docs/interfaces/five.ImageOptions.html +18 -0
  79. package/docs/interfaces/five.ImageURLMappings.html +1 -0
  80. package/docs/interfaces/five.ImageURLOptions.html +15 -0
  81. package/docs/interfaces/five.IntersectMeshInterface.html +3 -0
  82. package/docs/interfaces/five.Intersection.html +7 -0
  83. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +15 -0
  84. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +20 -0
  85. package/docs/interfaces/five.ModelEventCallback.html +22 -0
  86. package/docs/interfaces/five.MotionKeyframe.html +1 -0
  87. package/docs/interfaces/five.MovePanoOptions.html +42 -0
  88. package/docs/interfaces/five.NetworkOptions.html +9 -0
  89. package/docs/interfaces/five.PBMPanoPicture.html +7 -0
  90. package/docs/interfaces/five.PBMParameters.html +29 -0
  91. package/docs/interfaces/five.PanoCircleMeshCustomOptions.html +1 -0
  92. package/docs/interfaces/five.PanoCircleMeshInterface.html +19 -0
  93. package/docs/interfaces/five.PanoCircleMeshOptions.html +1 -0
  94. package/docs/interfaces/five.PanoCircleMeshSolidOptions.html +1 -0
  95. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +35 -0
  96. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +20 -0
  97. package/docs/interfaces/five.Pose.html +37 -0
  98. package/docs/interfaces/five.Scissor.html +14 -0
  99. package/docs/interfaces/five.State.html +21 -0
  100. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -0
  101. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -0
  102. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -0
  103. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -0
  104. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -0
  105. package/docs/interfaces/five.TextureOptions.html +20 -0
  106. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +3 -0
  107. package/docs/interfaces/five.TileBoundingVolume.html +19 -0
  108. package/docs/interfaces/five.TileContent.html +1 -0
  109. package/docs/interfaces/five.TileCubeNode.html +1 -0
  110. package/docs/interfaces/five.TileCubeTree.html +1 -0
  111. package/docs/interfaces/five.Tileset3dOptions.html +1 -0
  112. package/docs/interfaces/five.TilesetJSON.html +1 -0
  113. package/docs/interfaces/five.TilesetJSONNode.html +1 -0
  114. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +9 -0
  115. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +31 -0
  116. package/docs/interfaces/five.WebXRSelectParams.html +1 -0
  117. package/docs/interfaces/five.WorkCubeImage.html +13 -0
  118. package/docs/interfaces/five.WorkImage.html +21 -0
  119. package/docs/interfaces/five.WorkInitial.html +13 -0
  120. package/docs/interfaces/five.WorkModel.html +11 -0
  121. package/docs/interfaces/five.WorkModelTiles.html +3 -0
  122. package/docs/interfaces/five.WorkObserver.html +27 -0
  123. package/docs/interfaces/five.WorkTile.html +1 -0
  124. package/docs/interfaces/five.WorkVideo.html +9 -0
  125. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +31 -0
  126. package/docs/interfaces/gltf_loader.DDS.html +1 -0
  127. package/docs/interfaces/gltf_loader.GLTF.html +7 -0
  128. package/docs/interfaces/gltf_loader.GLTFReference.html +1 -0
  129. package/docs/interfaces/gltf_loader.THREEGLTF.html +1 -0
  130. package/docs/interfaces/react.FiveActionReactCallbacks.html +52 -0
  131. package/docs/interfaces/react.FiveInjectionTypes.html +181 -0
  132. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -0
  133. package/docs/interfaces/server.Intersection.html +7 -0
  134. package/docs/interfaces/server.ModelEventCallback.html +18 -0
  135. package/docs/interfaces/sticker.IntersectionLike.html +8 -0
  136. package/docs/interfaces/vfx.ParticleArgs.html +75 -0
  137. package/docs/interfaces/vfx.ParticleTweenKeyframe.html +1 -0
  138. package/docs/interfaces/vue.FiveActionVueCallbacks.html +60 -0
  139. package/docs/modules/five.SubscribeMixinType.html +1 -0
  140. package/docs/modules/five.html +479 -3002
  141. package/docs/modules/gltf_loader.html +1 -155
  142. package/docs/modules/line.html +1 -202
  143. package/docs/modules/react.html +130 -1507
  144. package/docs/modules/server.html +18 -526
  145. package/docs/modules/sticker.html +1 -151
  146. package/docs/modules/vfx.html +1 -0
  147. package/docs/modules/vue.html +115 -0
  148. package/docs/modules.html +1 -136
  149. package/exporters/staticify.js +210 -0
  150. package/five/index.d.ts +1425 -285
  151. package/five/index.js +362 -1
  152. package/gltf-loader/index.d.ts +90 -5
  153. package/gltf-loader/index.js +260 -1
  154. package/line/index.d.ts +15 -2
  155. package/line/index.js +260 -1
  156. package/package.json +12 -12
  157. package/react/index.d.ts +73 -72
  158. package/react/index.js +260 -1
  159. package/scripts/five-staticify.js +26 -0
  160. package/server/index.d.ts +221 -27
  161. package/server/index.js +357 -1
  162. package/sticker/index.d.ts +2 -1
  163. package/sticker/index.js +260 -1
  164. package/templates/quick-start/package.json +1 -1
  165. package/umd/five-gltf-loader.js +1 -2
  166. package/umd/five-line.js +1 -2
  167. package/umd/five-react.js +1 -2
  168. package/umd/five-sticker.js +1 -2
  169. package/umd/five-vfx.js +1 -0
  170. package/umd/five-vue.js +1 -0
  171. package/umd/five.js +1 -1
  172. package/umd/five.js.LICENSE.txt +58 -118
  173. package/vfx/index.d.ts +264 -0
  174. package/vfx/index.js +260 -0
  175. package/vue/index.d.ts +441 -0
  176. package/vue/index.js +260 -0
  177. package/docs/assets/css/main.css +0 -2660
  178. package/docs/assets/js/main.js +0 -248
  179. package/docs/assets/js/search.js +0 -1
  180. package/docs/classes/five.camera.html +0 -323
  181. package/docs/classes/five.five-1.html +0 -2670
  182. package/docs/classes/five.hashcubetexture.html +0 -252
  183. package/docs/classes/five.internalwebglrenderer.html +0 -212
  184. package/docs/classes/five.model.html +0 -982
  185. package/docs/classes/five.pbmgroup.html +0 -427
  186. package/docs/classes/five.pbmmaterial.html +0 -533
  187. package/docs/classes/five.pbmmesh.html +0 -254
  188. package/docs/classes/five.scene.html +0 -263
  189. package/docs/classes/five.subscribe.html +0 -569
  190. package/docs/classes/gltf_loader.gltfloader.html +0 -412
  191. package/docs/classes/gltf_loader.gltfobject.html +0 -287
  192. package/docs/classes/line.line-1.html +0 -381
  193. package/docs/classes/line.linegeometry.html +0 -524
  194. package/docs/classes/line.linematerial.html +0 -300
  195. package/docs/classes/line.linesegmentsgeometry.html +0 -471
  196. package/docs/classes/react.store.html +0 -605
  197. package/docs/classes/server.model.html +0 -823
  198. package/docs/classes/server.pbmgroup.html +0 -366
  199. package/docs/classes/server.pbmmesh.html +0 -335
  200. package/docs/classes/sticker.sticker-1.html +0 -465
  201. package/docs/interfaces/five.addableobject.html +0 -234
  202. package/docs/interfaces/five.depthpanoramacontrollercustominitargs.html +0 -420
  203. package/docs/interfaces/five.eventcallback.html +0 -2548
  204. package/docs/interfaces/five.fiveinitargs.html +0 -707
  205. package/docs/interfaces/five.floorplancontrollercustominitargs.html +0 -295
  206. package/docs/interfaces/five.imageoptions.html +0 -332
  207. package/docs/interfaces/five.intersection.html +0 -227
  208. package/docs/interfaces/five.intersectmeshinterface.html +0 -188
  209. package/docs/interfaces/five.modelcontrollercustominitargs.html +0 -366
  210. package/docs/interfaces/five.modeleventcallback.html +0 -367
  211. package/docs/interfaces/five.movepanooptions.html +0 -469
  212. package/docs/interfaces/five.panocirclemeshinterface.html +0 -361
  213. package/docs/interfaces/five.panoramacontrollercustominitargs.html +0 -464
  214. package/docs/interfaces/five.panoramalikecontrollercustominitargs.html +0 -364
  215. package/docs/interfaces/five.pbmparameters.html +0 -474
  216. package/docs/interfaces/five.pose.html +0 -270
  217. package/docs/interfaces/five.scissor.html +0 -252
  218. package/docs/interfaces/five.state.html +0 -300
  219. package/docs/interfaces/five.subscribemixintype.emit.html +0 -180
  220. package/docs/interfaces/five.subscribemixintype.haslistener.html +0 -171
  221. package/docs/interfaces/five.subscribemixintype.off.html +0 -198
  222. package/docs/interfaces/five.subscribemixintype.on.html +0 -213
  223. package/docs/interfaces/five.subscribemixintype.once.html +0 -210
  224. package/docs/interfaces/five.topviewcontrollercustominitargs.html +0 -226
  225. package/docs/interfaces/five.vrpanoramacontrollercustominitargs.html +0 -452
  226. package/docs/interfaces/gltf_loader.gltf.html +0 -304
  227. package/docs/interfaces/react.fiveactionreactcallbacks.html +0 -580
  228. package/docs/interfaces/react.fiveinjectiontypes.html +0 -1625
  229. package/docs/interfaces/react.injectfivetoprops.html +0 -280
  230. package/docs/interfaces/server.intersection.html +0 -308
  231. package/docs/interfaces/server.modeleventcallback.html +0 -409
  232. package/docs/interfaces/sticker.intersectionlike.html +0 -223
  233. package/docs/modules/five.subscribemixintype.html +0 -143
  234. package/scripts/export-five-resource/chfs.exe +0 -0
  235. package/scripts/export-five-resource/fileify.js +0 -192
  236. package/scripts/export-five-resource/format-work.js +0 -71
  237. package/scripts/export-five-resource/staticify.js +0 -327
  238. package/scripts/transcode-model/BufferGeometryUtils.js +0 -832
  239. package/scripts/transcode-model/LoaderSupport.js +0 -1545
  240. package/scripts/transcode-model/MTLLoader.js +0 -602
  241. package/scripts/transcode-model/OBJLoader2.js +0 -1470
  242. package/scripts/transcode-model/obj2pbm.js +0 -65
  243. /package/docs/assets/{images/icons.png → icons.png} +0 -0
  244. /package/docs/assets/{images/icons@2x.png → icons@2x.png} +0 -0
  245. /package/docs/assets/{images/widgets.png → widgets.png} +0 -0
  246. /package/docs/assets/{images/widgets@2x.png → widgets@2x.png} +0 -0
  247. /package/resource/{basis_transcoder.js → basis/basis_transcoder.js} +0 -0
  248. /package/resource/{basis_transcoder.wasm → basis/basis_transcoder.wasm} +0 -0
  249. /package/resource/{draco_decoder.js → gltf/draco_decoder.js} +0 -0
  250. /package/resource/{draco_decoder.wasm → gltf/draco_decoder.wasm} +0 -0
  251. /package/resource/{draco_wasm_wrapper.js → gltf/draco_wasm_wrapper.js} +0 -0
package/server/index.js CHANGED
@@ -1 +1,357 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),t=require("tslib"),r=require("protobufjs"),i=require("http"),n=require("https");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=s(e),u=s(r),d=o(i),c=o(n),l=Number(a.REVISION);if(l<115||l>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');var h,f,p,m,y={};y.EPSILON=1e-6,y.BVHVector3=function(e,t,r){this.x=e||0,this.y=t||0,this.z=r||0},y.BVHVector3.prototype={constructor:y.BVHVector3,copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},set:function(e,t,r){return this.x=e,this.y=t,this.z=r,this},setFromArray:function(e,t){this.x=e[t],this.y=e[t+1],this.z=e[t+2]},add:function(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this},multiplyScalar:function(e){return this.x*=e,this.y*=e,this.z*=e,this},subVectors:function(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},cross:function(e){var t=this.x,r=this.y,i=this.z;return this.x=r*e.z-i*e.y,this.y=i*e.x-t*e.z,this.z=t*e.y-r*e.x,this},crossVectors:function(e,t){var r=e.x,i=e.y,n=e.z,o=t.x,s=t.y,a=t.z;return this.x=i*a-n*s,this.y=n*o-r*a,this.z=r*s-i*o,this},clone:function(){return new y.BVHVector3(this.x,this.y,this.z)}},y.BVH=function(e,t){this._trianglesArray=e,this._maxTrianglesPerNode=t||10,this._bboxArray=this.calcBoundingBoxes(e),this._bboxHelper=new Float32Array(this._bboxArray.length),this._bboxHelper.set(this._bboxArray);var r=e.length/9,i=this.calcExtents(0,r,y.EPSILON);this._rootNode=new y.BVHNode(i[0],i[1],0,r,0),this._nodesToSplit=[this._rootNode]},y.BVH.prototype.splitNode=function(e){if(e){var t=0,r=function(){t++;var i=this._nodesToSplit.pop();i?(this._splitNode(i),t%255==0?setTimeout(r):r()):(t=0,e())}.bind(this);r()}else for(;this._nodesToSplit.length>0;)this._splitNode(this._nodesToSplit.pop())},y.BVH.prototype.dispose=function(){this._trianglesArray=new Float32Array,this._bboxArray=new Float32Array,this._bboxHelper=new Float32Array,this._rootNode=null,this._nodesToSplit=null},y.BVH.prototype.intersectRay=function(e,t,r){for(var i,n=[this._rootNode],o=[],s=[],a=new y.BVHVector3(1/t.x,1/t.y,1/t.z);n.length>0;){var u=n.pop();if(y.BVH.intersectNodeBox(e,a,u))for(u._node0&&n.push(u._node0),u._node1&&n.push(u._node1),i=u._startIndex;i<u._endIndex;i++)o.push(this._bboxArray[7*i])}var d=new y.BVHVector3,c=new y.BVHVector3,l=new y.BVHVector3,h=new y.BVHVector3(e.x,e.y,e.z),f=new y.BVHVector3(t.x,t.y,t.z);for(i=0;i<o.length;i++){var p=o[i];d.setFromArray(this._trianglesArray,9*p),c.setFromArray(this._trianglesArray,9*p+3),l.setFromArray(this._trianglesArray,9*p+6);var m=y.BVH.intersectRayTriangle(d,c,l,h,f,r);m&&s.push({triangle:[d.clone(),c.clone(),l.clone()],triangleIndex:p,intersectionPoint:m})}return s},y.BVH.prototype.calcBoundingBoxes=function(e){for(var t,r,i,n,o,s,a,u,d,c,l,h,f,p,m,v=e.length/9,_=new Float32Array(7*v),g=0;g<v;g++)t=e[9*g],r=e[9*g+1],i=e[9*g+2],n=e[9*g+3],o=e[9*g+4],s=e[9*g+5],a=e[9*g+6],u=e[9*g+7],d=e[9*g+8],c=Math.min(Math.min(t,n),a),l=Math.min(Math.min(r,o),u),h=Math.min(Math.min(i,s),d),f=Math.max(Math.max(t,n),a),p=Math.max(Math.max(r,o),u),m=Math.max(Math.max(i,s),d),y.BVH.setBox(_,g,g,c,l,h,f,p,m);return _},y.BVH.prototype.calcExtents=function(e,t,r){if(r=r||0,e>=t)return[{x:0,y:0,z:0},{x:0,y:0,z:0}];for(var i=Number.MAX_VALUE,n=Number.MAX_VALUE,o=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=-Number.MAX_VALUE,u=-Number.MAX_VALUE,d=e;d<t;d++)i=Math.min(this._bboxArray[7*d+1],i),n=Math.min(this._bboxArray[7*d+2],n),o=Math.min(this._bboxArray[7*d+3],o),s=Math.max(this._bboxArray[7*d+4],s),a=Math.max(this._bboxArray[7*d+5],a),u=Math.max(this._bboxArray[7*d+6],u);return[{x:i-r,y:n-r,z:o-r},{x:s+r,y:a+r,z:u+r}]},y.BVH.prototype._splitNode=function(e){if(!(e.elementCount()<=this._maxTrianglesPerNode||0===e.elementCount())){var t=e._startIndex,r=e._endIndex,i=[[],[],[]],n=[[],[],[]],o=[e.centerX(),e.centerY(),e.centerZ()],s=[e._extentsMax.x-e._extentsMin.x,e._extentsMax.y-e._extentsMin.y,e._extentsMax.z-e._extentsMin.z],a=[];a.length=3;for(var u=t;u<r;u++){a[0]=.5*(this._bboxArray[7*u+1]+this._bboxArray[7*u+4]),a[1]=.5*(this._bboxArray[7*u+2]+this._bboxArray[7*u+5]),a[2]=.5*(this._bboxArray[7*u+3]+this._bboxArray[7*u+6]);for(var d=0;d<3;d++)a[d]<o[d]?i[d].push(u):n[d].push(u)}var c=[];if(c.length=3,c[0]=0===i[0].length||0===n[0].length,c[1]=0===i[1].length||0===n[1].length,c[2]=0===i[2].length||0===n[2].length,!(c[0]&&c[1]&&c[2])){var l,h,f=[0,1,2];for(f.sort((function(e,t){return s[t]-s[e]})),d=0;d<3;d++){var p=f[d];if(!c[p]){l=i[p],h=n[p];break}}var m,v=t,_=v+l.length,g=_,b=r,x=e._startIndex,w=l.concat(h);for(u=0;u<w.length;u++)m=w[u],y.BVH.copyBox(this._bboxArray,m,this._bboxHelper,x),x++;var B=this._bboxHelper.subarray(7*e._startIndex,7*e._endIndex);this._bboxArray.set(B,7*e._startIndex);var A=this.calcExtents(v,_,y.EPSILON),V=this.calcExtents(g,b,y.EPSILON),D=new y.BVHNode(A[0],A[1],v,_,e._level+1),z=new y.BVHNode(V[0],V[1],g,b,e._level+1);e._node0=D,e._node1=z,e.clearShapes(),this._nodesToSplit.push(D),this._nodesToSplit.push(z)}}},y.BVH._calcTValues=function(e,t,r,i){var n={min:0,max:0};return i>=0?(n.min=(e-r)*i,n.max=(t-r)*i):(n.min=(t-r)*i,n.max=(e-r)*i),n},y.BVH.intersectNodeBox=function(e,t,r){var i=y.BVH._calcTValues(r._extentsMin.x,r._extentsMax.x,e.x,t.x),n=y.BVH._calcTValues(r._extentsMin.y,r._extentsMax.y,e.y,t.y);if(i.min>n.max||n.min>i.max)return!1;(n.min>i.min||i.min!=i.min)&&(i.min=n.min),(n.max<i.max||i.max!=i.max)&&(i.max=n.max);var o=y.BVH._calcTValues(r._extentsMin.z,r._extentsMax.z,e.z,t.z);return!(i.min>o.max||o.min>i.max)&&((o.min>i.min||i.min!=i.min)&&(i.min=o.min),(o.max<i.max||i.max!=i.max)&&(i.max=o.max),!(i.max<0))},y.BVH.intersectRayTriangle=(h=new y.BVHVector3,f=new y.BVHVector3,p=new y.BVHVector3,m=new y.BVHVector3,function(e,t,r,i,n,o){f.subVectors(t,e),p.subVectors(r,e),m.crossVectors(f,p);var s,a=n.dot(m);if(a>0){if(o)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}h.subVectors(i,e);var u=s*n.dot(p.crossVectors(h,p));if(u<0)return null;var d=s*n.dot(f.cross(h));if(d<0)return null;if(u+d>a)return null;var c=-s*h.dot(m);if(c<0)return null;var l=c/a;return(new y.BVHVector3).copy(n).multiplyScalar(l).add(i)}),y.BVH.setBox=function(e,t,r,i,n,o,s,a,u){e[7*t]=r,e[7*t+1]=i,e[7*t+2]=n,e[7*t+3]=o,e[7*t+4]=s,e[7*t+5]=a,e[7*t+6]=u},y.BVH.copyBox=function(e,t,r,i){r[7*i]=e[7*t],r[7*i+1]=e[7*t+1],r[7*i+2]=e[7*t+2],r[7*i+3]=e[7*t+3],r[7*i+4]=e[7*t+4],r[7*i+5]=e[7*t+5],r[7*i+6]=e[7*t+6]},y.BVH.getBox=function(e,t,r){r.triangleId=e[7*t],r.minX=e[7*t+1],r.minY=e[7*t+2],r.minZ=e[7*t+3],r.maxX=e[7*t+4],r.maxY=e[7*t+5],r.maxZ=e[7*t+6]},y.BVHNode=function(e,t,r,i,n){this._extentsMin=e,this._extentsMax=t,this._startIndex=r,this._endIndex=i,this._level=n,this._node0=null,this._node1=null},y.BVHNode.prototype.elementCount=function(){return this._endIndex-this._startIndex},y.BVHNode.prototype.centerX=function(){return.5*(this._extentsMin.x+this._extentsMax.x)},y.BVHNode.prototype.centerY=function(){return.5*(this._extentsMin.y+this._extentsMax.y)},y.BVHNode.prototype.centerZ=function(){return.5*(this._extentsMin.z+this._extentsMax.z)},y.BVHNode.prototype.clearShapes=function(){this._startIndex=-1,this._endIndex=-1},y.BVHNode.calcBoundingSphereRadius=function(e,t){var r=.5*(e.x+t.x),i=.5*(e.y+t.y),n=.5*(e.z+t.z),o=(r-e.x)*(r-e.x)+(i-e.y)*(i-e.y)+(n-e.z)*(n-e.z),s=(r-t.x)*(r-t.x)+(i-t.y)*(i-t.y)+(n-t.z)*(n-t.z);return Math.sqrt(Math.max(o,s))};var v=y.BVH;function _(e){return null==e}var g={computeTangents:function(e){var t=e.index,r=e.attributes;if(null!==t&&void 0!==r.position&&void 0!==r.normal&&void 0!==r.uv){var i=t.array,n=r.position.array,o=r.normal.array,s=r.uv.array,u=n.length/3;void 0===r.tangent&&e.setAttribute("tangent",new a.BufferAttribute(new Float32Array(4*u),4));for(var d=r.tangent.array,c=[],l=[],h=0;h<u;h++)c[h]=new a.Vector3,l[h]=new a.Vector3;var f=new a.Vector3,p=new a.Vector3,m=new a.Vector3,y=new a.Vector2,v=new a.Vector2,_=new a.Vector2,g=new a.Vector3,b=new a.Vector3,x=e.groups;0===x.length&&(x=[{start:0,count:i.length}]);h=0;for(var w=x.length;h<w;++h)for(var B=k=(P=x[h]).start,A=k+P.count;B<A;B+=3)E(i[B+0],i[B+1],i[B+2]);var V,D,z,M=new a.Vector3,S=new a.Vector3,N=new a.Vector3,I=new a.Vector3;for(h=0,w=x.length;h<w;++h){var P,k;for(B=k=(P=x[h]).start,A=k+P.count;B<A;B+=3)H(i[B+0]),H(i[B+1]),H(i[B+2])}}else console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");function E(e,t,r){f.fromArray(n,3*e),p.fromArray(n,3*t),m.fromArray(n,3*r),y.fromArray(s,2*e),v.fromArray(s,2*t),_.fromArray(s,2*r);var i=p.x-f.x,o=m.x-f.x,a=p.y-f.y,u=m.y-f.y,d=p.z-f.z,h=m.z-f.z,x=v.x-y.x,w=_.x-y.x,B=v.y-y.y,A=_.y-y.y,V=1/(x*A-w*B);g.set((A*i-B*o)*V,(A*a-B*u)*V,(A*d-B*h)*V),b.set((x*o-w*i)*V,(x*u-w*a)*V,(x*h-w*d)*V),c[e].add(g),c[t].add(g),c[r].add(g),l[e].add(b),l[t].add(b),l[r].add(b)}function H(e){N.fromArray(o,3*e),I.copy(N),D=c[e],M.copy(D),M.sub(N.multiplyScalar(N.dot(D))).normalize(),S.crossVectors(I,D),z=S.dot(l[e]),V=z<0?-1:1,d[4*e]=M.x,d[4*e+1]=M.y,d[4*e+2]=M.z,d[4*e+3]=V}},mergeBufferGeometries:function(e,t){for(var r=null!==e[0].index,i=new Set(Object.keys(e[0].attributes)),n=new Set(Object.keys(e[0].morphAttributes)),o={},s={},u=new a.BufferGeometry,d=0,c=0;c<e.length;++c){var l=e[c];if(r!==(null!==l.index))return null;for(var h in l.attributes){if(!i.has(h))return null;void 0===o[h]&&(o[h]=[]),o[h].push(l.attributes[h])}for(var h in l.morphAttributes){if(!n.has(h))return null;void 0===s[h]&&(s[h]=[]),s[h].push(l.morphAttributes[h])}if(u.userData.mergedUserData=u.userData.mergedUserData||[],u.userData.mergedUserData.push(l.userData),t){var f;if(r)f=l.index.count;else{if(void 0===l.attributes.position)return null;f=l.attributes.position.count}u.addGroup(d,f,c),d+=f}}if(r){var p=0,m=[];for(c=0;c<e.length;++c){for(var y=e[c].index,v=0;v<y.count;++v)m.push(y.getX(v)+p);p+=e[c].attributes.position.count}u.setIndex(m)}for(var h in o){var _=this.mergeBufferAttributes(o[h]);if(!_)return null;u.setAttribute(h,_)}for(var h in s){var g=s[h][0].length;if(0===g)break;u.morphAttributes=u.morphAttributes||{},u.morphAttributes[h]=[];for(c=0;c<g;++c){var b=[];for(v=0;v<s[h].length;++v)b.push(s[h][v][c]);var x=this.mergeBufferAttributes(b);if(!x)return null;u.morphAttributes[h].push(x)}}return u},mergeBufferAttributes:function(e){for(var t,r,i,n=0,o=0;o<e.length;++o){var s=e[o];if(s.isInterleavedBufferAttribute)return null;if(void 0===t&&(t=s.array.constructor),t!==s.array.constructor)return null;if(void 0===r&&(r=s.itemSize),r!==s.itemSize)return null;if(void 0===i&&(i=s.normalized),i!==s.normalized)return null;n+=s.array.length}var u=new t(n),d=0;for(o=0;o<e.length;++o)u.set(e[o].array,d),d+=e[o].array.length;return new a.BufferAttribute(u,r,i)},interleaveAttributes:function(e){for(var t,r=0,i=0,n=0,o=e.length;n<o;++n){var s=e[n];if(void 0===t&&(t=s.array.constructor),t!==s.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;r+=s.array.length,i+=s.itemSize}var u=new a.InterleavedBuffer(new t(r),i),d=0,c=[],l=["getX","getY","getZ","getW"],h=["setX","setY","setZ","setW"],f=0;for(o=e.length;f<o;f++){var p=(s=e[f]).itemSize,m=s.count,y=new a.InterleavedBufferAttribute(u,p,d,s.normalized);c.push(y),d+=p;for(var v=0;v<m;v++)for(var _=0;_<p;_++)y[h[_]](v,s[l[_]](v))}return c},estimateBytesUsed:function(e){var t=0;for(var r in e.attributes){var i=e.getAttribute(r);t+=i.count*i.itemSize*i.array.BYTES_PER_ELEMENT}var n=e.getIndex();return t+=n?n.count*n.itemSize*n.array.BYTES_PER_ELEMENT:0},mergeVertices:function(e,t){void 0===t&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var r={},i=e.getIndex(),n=e.getAttribute("position"),o=i?i.count:n.count,s=0,u=Object.keys(e.attributes),d={},c={},l=[],h=["getX","getY","getZ","getW"],f=0,p=u.length;f<p;f++){d[b=u[f]]=[],(A=e.morphAttributes[b])&&(c[b]=new Array(A.length).fill().map((function(){return[]})))}var m=Math.log10(1/t),y=Math.pow(10,m);for(f=0;f<o;f++){var v=i?i.getX(f):f,_="",g=0;for(p=u.length;g<p;g++)for(var b=u[g],x=(B=e.getAttribute(b)).itemSize,w=0;w<x;w++)_+=~~(B[h[w]](v)*y)+",";if(_ in r)l.push(r[_]);else{for(g=0,p=u.length;g<p;g++){b=u[g];var B=e.getAttribute(b),A=e.morphAttributes[b],V=(x=B.itemSize,d[b]),D=c[b];for(w=0;w<x;w++){var z=h[w];if(V.push(B[z](v)),A)for(var M=0,S=A.length;M<S;M++)D[M].push(A[M][z](v))}}r[_]=s,l.push(s),s++}}var N=e.clone();for(f=0,p=u.length;f<p;f++){b=u[f];var I=e.getAttribute(b),P=new I.array.constructor(d[b]);B=new a.BufferAttribute(P,I.itemSize,I.normalized);if(N.setAttribute(b,B),b in c)for(g=0;g<c[b].length;g++){var k=e.morphAttributes[b][g],E=(P=new k.array.constructor(c[b][g]),new a.BufferAttribute(P,k.itemSize,k.normalized));N.morphAttributes[b][g]=E}}return N.setIndex(l),N}},b=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return t.__extends(r,e),r}(a.Mesh);function x(e){return new Promise((function(t,r){(/^https\:/.test(e)?c.default:d.default).get(e,(function(e){var i=[];e.on("data",(function(e){return i.push(e)})),e.on("end",(function(){t(Buffer.concat(i).buffer)})),e.on("error",(function(e){return r(e)}))})).on("error",(function(e){return r(e)}))}))}var w=(new a.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1);function B(e,t){return new a.BufferAttribute(e,t)}function A(e){var t=e.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function V(e){var t=e.indices,r=e.vertices,i=e.uvs,n=new a.BufferGeometry;return n.setIndex(B(new Uint32Array(t),1)),n.setAttribute("position",B(new Float32Array(r),3)),_(i)||n.setAttribute("uv",B(new Float32Array(i),2)),n.applyMatrix4(w),n.computeVertexNormals(),n}var D=u.parse("\nmessage Model {\n repeated Chunk chunks = 1;\n}\nmessage Chunk {\n required Vertices vertices = 1;\n required Faces faces = 2;\n required string name = 3;\n optional string texture = 4;\n}\nmessage Vertices {\n repeated float xyz = 1 [packed=true];\n repeated float uvs = 2 [packed=true];\n}\nmessage Faces {\n repeated uint32 indices = 1 [packed=true];\n}\n").root.lookup("Model");function z(e){for(var t=0,r=e;t<r.length;t++){(u=r[t]).chunkName=(i=u.name,n=void 0,(n=i.match(/(chunk)-?(\d+)/))?parseInt(n[2],10):0),u.floorName=A(u.name)}var i,n;e.sort((function(e,t){return 1e3*e.floorName+e.chunkName-(1e3*t.floorName+t.chunkName)}));for(var o=[],s=[],a=0;a<e.length;a++){var u,d=A((u=e[a]).name),c=o[d]=o[d]||{geometries:[]};(h=V({vertices:u.vertices.xyz,uvs:u.vertices.uvs,indices:u.faces.indices})).name="model_geo_chunk_"+a,c.geometries.push(h)}for(var l=0;l<o.length;l++){if(c=o[l]){var h=g.mergeBufferGeometries(c.geometries,!0);c.geometries.forEach((function(e){return e.dispose()}));var f=new b(h);f.floorIndex=l,f.name="model_floor_"+l,s.push(f)}}return{objects:s}}var M={};function S(e){return Array.prototype.reduce.call(e,(function(e,t,r){return e|t<<8*r}),0)}function N(e){for(var t=new Uint8Array(e),r=S(t.slice(0,4)),i=[],n=[],o=4+4*r,s=0;s<r;s++)n[s]=S(t.slice(4+4*s,8+4*s)),i[s]=s===r-1?t.subarray(o,o+n[s]):t.slice(o,o+n[s]),o+=n[s];return Promise.resolve(function(e){for(var t,r=[],i=e.length,n=function(i){var n={data:e[i],offset:0,readByte:function(){return this.data[this.offset++]}},o=n.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++}};M.decompressFile(n,s),t=new Uint8Array(s.offset);for(var a=0;a<s.offset;a++)t[a]=s.data[Math.floor(a/o)][a%o];r.push(t)},o=0;o<i;o++)n(o);return r}(i))}M.OutWindow=function(){this._windowSize=0},M.OutWindow.prototype.create=function(e){this._buffer&&this._windowSize===e||(this._buffer=[]),this._windowSize=e,this._pos=0,this._streamPos=0},M.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}},M.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},M.OutWindow.prototype.setStream=function(e){this.releaseStream(),this._stream=e},M.OutWindow.prototype.init=function(e){e||(this._streamPos=0,this._pos=0)},M.OutWindow.prototype.copyBlock=function(e,t){var r=this._pos-e-1;for(r<0&&(r+=this._windowSize);t--;)r>=this._windowSize&&(r=0),this._buffer[this._pos++]=this._buffer[r++],this._pos>=this._windowSize&&this.flush()},M.OutWindow.prototype.putByte=function(e){this._buffer[this._pos++]=e,this._pos>=this._windowSize&&this.flush()},M.OutWindow.prototype.getByte=function(e){var t=this._pos-e-1;return t<0&&(t+=this._windowSize),this._buffer[t]},M.RangeDecoder=function(){},M.RangeDecoder.prototype.setStream=function(e){this._stream=e},M.RangeDecoder.prototype.releaseStream=function(){this._stream=null},M.RangeDecoder.prototype.init=function(){var e=5;for(this._code=0,this._range=-1;e--;)this._code=this._code<<8|this._stream.readByte()},M.RangeDecoder.prototype.decodeDirectBits=function(e){for(var t,r=0,i=e;i--;)this._range>>>=1,t=this._code-this._range>>>31,this._code-=this._range&t-1,r=r<<1|1-t,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return r},M.RangeDecoder.prototype.decodeBit=function(e,t){var r=e[t],i=(this._range>>>11)*r;return(2147483648^this._code)<(2147483648^i)?(this._range=i,e[t]+=2048-r>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=i,this._code-=i,e[t]-=r>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},M.initBitModels=function(e,t){for(;t--;)e[t]=1024},M.BitTreeDecoder=function(e){this._models=[],this._numBitLevels=e},M.BitTreeDecoder.prototype.init=function(){M.initBitModels(this._models,1<<this._numBitLevels)},M.BitTreeDecoder.prototype.decode=function(e){for(var t=1,r=this._numBitLevels;r--;)t=t<<1|e.decodeBit(this._models,t);return t-(1<<this._numBitLevels)},M.BitTreeDecoder.prototype.reverseDecode=function(e){for(var t,r=1,i=0,n=0;n<this._numBitLevels;++n)r=r<<1|(t=e.decodeBit(this._models,r)),i|=t<<n;return i},M.reverseDecode2=function(e,t,r,i){for(var n,o=1,s=0,a=0;a<i;++a)o=o<<1|(n=r.decodeBit(e,t+o)),s|=n<<a;return s},M.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new M.BitTreeDecoder(8),this._numPosStates=0},M.LenDecoder.prototype.create=function(e){for(;this._numPosStates<e;++this._numPosStates)this._lowCoder[this._numPosStates]=new M.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new M.BitTreeDecoder(3)},M.LenDecoder.prototype.init=function(){var e=this._numPosStates;for(M.initBitModels(this._choice,2);e--;)this._lowCoder[e].init(),this._midCoder[e].init();this._highCoder.init()},M.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)},M.Decoder2=function(){this._decoders=[]},M.Decoder2.prototype.init=function(){M.initBitModels(this._decoders,768)},M.Decoder2.prototype.decodeNormal=function(e){var t=1;do{t=t<<1|e.decodeBit(this._decoders,t)}while(t<256);return 255&t},M.Decoder2.prototype.decodeWithMatchByte=function(e,t){var r,i,n=1;do{if(r=t>>7&1,t<<=1,n=n<<1|(i=e.decodeBit(this._decoders,(1+r<<8)+n)),r!==i){for(;n<256;)n=n<<1|e.decodeBit(this._decoders,n);break}}while(n<256);return 255&n},M.LiteralDecoder=function(){},M.LiteralDecoder.prototype.create=function(e,t){var r;if(!this._coders||this._numPrevBits!==t||this._numPosBits!==e)for(this._numPosBits=e,this._posMask=(1<<e)-1,this._numPrevBits=t,this._coders=[],r=1<<this._numPrevBits+this._numPosBits;r--;)this._coders[r]=new M.Decoder2},M.LiteralDecoder.prototype.init=function(){for(var e=1<<this._numPrevBits+this._numPosBits;e--;)this._coders[e].init()},M.LiteralDecoder.prototype.getDecoder=function(e,t){return this._coders[((e&this._posMask)<<this._numPrevBits)+((255&t)>>>8-this._numPrevBits)]},M.Decoder=function(){this._outWindow=new M.OutWindow,this._rangeDecoder=new M.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new M.BitTreeDecoder(4),this._lenDecoder=new M.LenDecoder,this._repLenDecoder=new M.LenDecoder,this._literalDecoder=new M.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new M.BitTreeDecoder(6),this._posSlotDecoder[1]=new M.BitTreeDecoder(6),this._posSlotDecoder[2]=new M.BitTreeDecoder(6),this._posSlotDecoder[3]=new M.BitTreeDecoder(6)},M.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)},M.Decoder.prototype.setLcLpPb=function(e,t,r){var i=1<<r;return!(e>8||t>4||r>4)&&(this._literalDecoder.create(t,e),this._lenDecoder.create(i),this._repLenDecoder.create(i),this._posStateMask=i-1,!0)},M.Decoder.prototype.init=function(){var e=4;for(this._outWindow.init(!1),M.initBitModels(this._isMatchDecoders,192),M.initBitModels(this._isRep0LongDecoders,192),M.initBitModels(this._isRepDecoders,12),M.initBitModels(this._isRepG0Decoders,12),M.initBitModels(this._isRepG1Decoders,12),M.initBitModels(this._isRepG2Decoders,12),M.initBitModels(this._posDecoders,114),this._literalDecoder.init();e--;)this._posSlotDecoder[e].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},M.Decoder.prototype.decode=function(e,t,r){var i,n,o,s,a,u,d=0,c=0,l=0,h=0,f=0,p=0,m=0;for(this._rangeDecoder.setStream(e),this._outWindow.setStream(t),this.init();r<0||p<r;)if(i=p&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(d<<4)+i))n=this._literalDecoder.getDecoder(p++,m),m=d>=7?n.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(c)):n.decodeNormal(this._rangeDecoder),this._outWindow.putByte(m),d=d<4?0:d-(d<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,d))o=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,d)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(d<<4)+i)&&(d=d<7?9:11,o=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,d)?s=l:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,d)?s=h:(s=f,f=h),h=l),l=c,c=s),0===o&&(o=2+this._repLenDecoder.decode(this._rangeDecoder,i),d=d<7?8:11);else if(f=h,h=l,l=c,o=2+this._lenDecoder.decode(this._rangeDecoder,i),d=d<7?7:10,(a=this._posSlotDecoder[o<=5?o-2:3].decode(this._rangeDecoder))>=4){if(c=(2|1&a)<<(u=(a>>1)-1),a<14)c+=M.reverseDecode2(this._posDecoders,c-a-1,this._rangeDecoder,u);else if(c+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(c+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===c)break;return!1}}else c=a;if(c>=p||c>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(c,o),p+=o,m=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},M.Decoder.prototype.setDecoderProperties=function(e){var t,r,i,n,o;return!(e.size<5)&&(r=(t=e.readByte())%9,i=(t=~~(t/9))%5,n=~~(t/5),!!this.setLcLpPb(r,i,n)&&(o=e.readByte(),o|=e.readByte()<<8,o|=e.readByte()<<16,o+=16777216*e.readByte(),this.setDictionarySize(o)))},M.decompress=function(e,t,r,i){var n=new M.Decoder;if(!n.setDecoderProperties(e))throw"Incorrect stream properties";if(!n.decode(t,r,i))throw"Error in data stream";return!0},M.decompressFile=function(e,t){var r,i=new M.Decoder;if(!i.setDecoderProperties(e))throw"Incorrect stream properties";if(r=e.readByte(),r|=e.readByte()<<8,r|=e.readByte()<<16,r+=16777216*e.readByte(),e.readByte(),e.readByte(),e.readByte(),e.readByte(),!i.decode(e,t,r))throw"Error in data stream";return!0};var I=function(e){function r(){var t=null!==e&&e.apply(this,arguments)||this;return t.floorIndex=0,t.needsRender=!0,t}return t.__extends(r,e),r.prototype.disposeGeometry=function(){this.traverse((function(e){e instanceof b&&e.geometry.dispose()}))},r}(a.Group),P=u.parse("\nmessage Model {\n repeated Mesh meshes = 1;\n}\nmessage Mesh {\n required string name = 1;\n repeated Chunk chunks = 2;\n repeated Matrix matrix = 3;\n}\nmessage Matrix {\n repeated float elements = 1;\n}\nmessage Chunk {\n required Geometry geometry = 2;\n repeated Material material = 3;\n}\nmessage Geometry {\n required Position position = 1;\n optional UV uv = 2;\n optional UV uv2 = 3;\n required Normal normal = 4;\n repeated Group groups = 5;\n}\nmessage Position {\n repeated float array = 1[packed=true];\n}\nmessage UV {\n repeated float array = 1[packed=true];\n}\nmessage Normal {\n repeated float array = 1[packed=true];\n}\nmessage Group {\n required uint32 start = 1;\n required uint32 count = 2;\n required uint32 materialIndex = 3;\n}\nmessage Material {\n optional Color kd = 1;\n optional Color ks = 2;\n optional Color ke = 3;\n optional string mapkd = 4;\n optional string mapks = 5;\n optional string mapke = 6;\n optional string norm = 7;\n optional string mapbump = 8;\n optional string bump = 9;\n optional string mapd = 10;\n optional float ns = 11;\n optional float d = 12;\n optional float tr = 13;\n optional string mapkdrepeat = 14;\n}\nmessage Color {\n repeated float rgb = 1;\n}\n").root.lookup("Model");var k={};function E(e){var t,r=[];function i(e,t,r){var i=function(e){var t=e.position,r=e.normal,i=e.uv,n=e.uv2,o=e.groups,s=new a.BufferGeometry;return s.setAttribute("position",new a.BufferAttribute(new Float32Array(t.array),3)),r&&s.setAttribute("normal",new a.BufferAttribute(new Float32Array(r.array),3)),i&&s.setAttribute("uv",new a.BufferAttribute(new Float32Array(i.array),2)),n&&s.setAttribute("uv2",new a.BufferAttribute(new Float32Array(n.array),2)),o.forEach((function(e){return s.addGroup(e.start,e.count,e.materialIndex)})),s}(e);i.applyMatrix4(r);var n=new a.Vector3,o=new a.Quaternion,s=new a.Vector3;return r.decompose(n,o,s),s.x*s.y*s.z<0&&i.attributes.normal&&i.attributes.position&&i.attributes.uv&&function(e){for(var t=[0,0,0],r=0;r<e.attributes.normal.array.length/9;r++)t[0]=e.attributes.normal.array[9*r],t[1]=e.attributes.normal.array[9*r+1],t[2]=e.attributes.normal.array[9*r+2],e.attributes.normal.array[9*r]=e.attributes.normal.array[9*r+6],e.attributes.normal.array[9*r+1]=e.attributes.normal.array[9*r+7],e.attributes.normal.array[9*r+2]=e.attributes.normal.array[9*r+8],e.attributes.normal.array[9*r+6]=t[0],e.attributes.normal.array[9*r+7]=t[1],e.attributes.normal.array[9*r+8]=t[2];for(r=0;r<e.attributes.position.array.length/9;r++)t[0]=e.attributes.position.array[9*r],t[1]=e.attributes.position.array[9*r+1],t[2]=e.attributes.position.array[9*r+2],e.attributes.position.array[9*r]=e.attributes.position.array[9*r+6],e.attributes.position.array[9*r+1]=e.attributes.position.array[9*r+7],e.attributes.position.array[9*r+2]=e.attributes.position.array[9*r+8],e.attributes.position.array[9*r+6]=t[0],e.attributes.position.array[9*r+7]=t[1],e.attributes.position.array[9*r+8]=t[2];for(r=0;r<e.attributes.uv.array.length/6;r++)t[0]=e.attributes.uv.array[6*r],t[1]=e.attributes.uv.array[6*r+1],e.attributes.uv.array[6*r]=e.attributes.uv.array[6*r+4],e.attributes.uv.array[6*r+1]=e.attributes.uv.array[6*r+5],e.attributes.uv.array[6*r+4]=t[0],e.attributes.uv.array[6*r+5]=t[1];e.attributes.normal.needsUpdate=!0,e.attributes.position.needsUpdate=!0,e.attributes.uv.needsUpdate=!0}(i),new b(i)}return(t=e,P.decode(t)).meshes.forEach((function(e){var t=e.name,n=e.chunks,o=e.matrix;"Ceiling"!==t&&"CeilingDrop"!==t&&o.map((function(e){var o,s=new a.Matrix4;if(s.elements=e.elements,1===n.length){var u=n[0],d=u.geometry;u.material;o=i(d,0,s)}else o=new I,n.forEach((function(e,t){var r=e.geometry,n=(e.material,i(r,0,s));n.name="chunk"+t,o.add(n)}));o.floorIndex=0,o.name=t,r.push(o)}))})),{objects:r}}function H(){Object.keys(k).forEach((function(e){k[e].dispose(),delete k[e]}))}function L(e){return e.$$FIVE_EVENT$$||(e.$$FIVE_EVENT$$={}),e.$$FIVE_EVENT$$}var T=function(){function e(){}return e.prototype.hasListener=function(e){var t=L(this);return t&&t[e]&&t[e].length>0},e.prototype.on=function(e,t,r){var i=this,n=L(this);return n[e]||(n[e]=[]),n[e].push([t,r||!1]),function(){return i.off(e,t)}},e.prototype.once=function(e,t){return this.on(e,t,!0)},e.prototype.off=function(e,t){if(void 0!==e){var r,i=L(this);if(i[e]||(i[e]=[]),void 0!==t){for(var n=0;n<i[e].length&&i[e][n][0]!==t;n++);n<i[e].length&&i[e].splice(n,1)}else i[e].length=0}else(r=this).$$FIVE_EVENT$$||delete r.$$FIVE_EVENT$$},e.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];for(var i=!1,n=L(this),o=n[e]||[],s=0,a=o.slice();s<a.length;s++){var u=a[s],d=u[0],c=u[1],l=void 0!==c&&c,h=d.apply(void 0,t);l&&this.off(e,d),!1===h&&(i=!0)}return i},e}();function R(e){var r;return new((r=a.Triangle).bind.apply(r,t.__spreadArray([void 0],e.map((function(e){return new a.Vector3(e.x,e.y,e.z)})))))}var O={at3d:function(e){return Promise.resolve().then((function(){return x(e.file)})).then((function(e){return N(e)})).then((function(e){for(var t=[],r=0,i=e;r<i.length;r++){var n=i[r],o=D.decode(n);t.push.apply(t,o.chunks)}return t})).then((function(e){return z(e)}))},pbm:function(e){return Promise.resolve().then((function(){return x(e.file)})).then((function(e){var t=new Uint8Array(e),r=D.decode(t);return[].concat(r.chunks)})).then((function(e){return z(e)}))},dome:function(e){return Promise.resolve().then((function(){return H()})).then((function(){return x(e.file)})).then((function(e){return E(new Uint8Array(e))}))},domez:function(e){return Promise.resolve().then((function(){return H()})).then((function(){return x(e.file)})).then((function(e){return N(e)})).then((function(e){var t=e.reduce((function(e,t){return e+t.length}),0),r=new Uint8Array(t),i=0;return e.forEach((function(e){r.set(e,i),i+=e.length})),r})).then((function(e){return E(e)}))}},q=function(e){function r(){var t=e.call(this)||this;return t.empty=!1,t.name="model",t.loaded=!1,t.bvhs=[],t.bounding=new a.Box3,t.shownfloor=null,t}return t.__extends(r,e),r.prototype.getEdges=function(e){var t;void 0===e&&(e=30/180*Math.PI);for(var r=Math.cos(e),i=[],n=0,o=this.children;n<o.length;n++){var s=o[n];if(s instanceof b){for(var u={},d=["a","b","c"],c=g.mergeVertices(s.geometry),l=c.getAttribute("position").array,h=(null===(t=c.getIndex())||void 0===t?void 0:t.array)||[],f=[],p=[],m=0,y=l.length;m<y;m+=3)f.push(new a.Vector3(l[m],l[m+1],l[m+2]));for(m=0,y=h.length;m<y;m+=3){var v=h[m],_=h[m+1],x=h[m+2],w=(new a.Vector3).crossVectors(f[_].clone().sub(f[v]),f[x].clone().sub(f[v])).normalize();p.push({a:v,b:_,c:x,normal:w})}for(m=0,y=p.length;m<y;m++)for(var B=p[m],A=0;A<3;A++){var V=B[d[A]],D=B[d[(A+1)%3]],z=[Math.min(V,D),Math.max(V,D)];void 0===u[M=z[0]+"-"+z[1]]?u[M]={index1:z[0],index2:z[1],face1:m}:u[M].face2=m}for(var M in u){var S=u[M];if(void 0===S.face2||p[S.face1].normal.dot(p[S.face2].normal)<=r){var N=f[S.index1],I=f[S.index2];i.push(new a.Line3(N,I))}}c.dispose(),f.length=0,p.length=0}}return i},r.prototype.hasFloors=function(){var e=[];return this.traverse((function(t){t instanceof b&&(e[t.floorIndex]=!0)})),e.length},r.prototype.show=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=0!==e.length;this.shownfloor=r?e[0]:null,this.needsRender=!0},r.prototype.intersectRaycaster=function(e,t){var r=e.ray,i=r.origin,n=r.direction;if(_(t))if(_(this.shownfloor)){var o=this.hasFloors();t=[];for(var s=0;s<o;s++)t.push(s)}else t=[this.shownfloor];var u=[],d=[];Array.isArray(t)?d.push.apply(d,t):d.push(t);for(var c=function(t){var r=l.bvhs&&l.bvhs[t];if(r){(o=r.intersectRay(i,n,!0).map((function(e){var t=e.intersectionPoint,r=e.triangle,n=new a.Vector3(t.x,t.y,t.z);return{point:n,face:{normal:R(r).getNormal(new a.Vector3)},distance:i.distanceTo(n)}}))).length&&u.push.apply(u,o)}else{var o,s=[];l.traverse((function(e){e instanceof b&&e.floorIndex===t&&s.push(e)})),(o=e.intersectObjects(s).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,o)}},l=this,h=0,f=d;h<f.length;h++){c(f[h])}return u.filter((function(t){var r=t.distance;return r<=e.far&&r>=e.near})).sort((function(e,t){return e.distance-t.distance}))},r.prototype.buildBVH=function(){var e=this,t=[];this.traverse((function(e){e instanceof b&&(t[e.floorIndex]=t[e.floorIndex]||[],t[e.floorIndex].push(e.geometry))}));var r=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),r=new Float32Array(3*t);return e.reduce((function(e,t){for(var i=t.index?t.index.array:null,n=t.attributes.position.array,o=i?i.length:n.length/3,s=0;s<o;s++){var a=3*(e+s),u=i?3*i[s]:3*s;r[a+0]=n[u+0],r[a+1]=n[u+1],r[a+2]=n[u+2]}return e+o}),0),new v(r,5)}));return this.bvhs=[],Promise.all(r.map((function(e){return new Promise((function(t){return e.splitNode(t)}))}))).then((function(){e.bvhs=r,e.bvhs.loaded=!0,e.emit("bvhLoaded")}))},r.prototype.load=function(e){var t=this;if(!0===this.loaded)throw new Error("model 只能被 load 一次");var r=O[function(e,t){void 0===t&&(t=[]);var r=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(e);if(r)for(var i=String(r[1]).trim().split("."),n=0,o=t;n<o.length;n++){var s=o[n];if(i.indexOf(s)>=0)return s}}(e.file,Object.keys(O))||""];if(!r)throw new Error("文件类型错误");r(e).then((function(e){for(var r=e.objects,i=[],n=0,o=r;n<o.length;n++){var s=o[n];s.traverse((function(e){e instanceof b&&(e.geometry.computeBoundingBox(),e.geometry.computeBoundingSphere(),i.push(e.geometry.boundingBox))})),t.add(s)}t.emit("geometryLoaded"),i.length=0,t.emit("loaded"),t.loaded=!0})).catch((function(e){t.emit("error",e)}))},r.prototype.dispose=function(){for(this.off(),this.disposeGeometry();this.children.length;)this.remove(this.children[0]);this.bvhs.length=0,delete this.bvhs.loaded},r}(I);Object.assign(q.prototype,{on:T.prototype.on,once:T.prototype.once,off:T.prototype.off,emit:T.prototype.emit,hasListener:T.prototype.hasListener});function C(e){return 0===e.indexOf("//")||/^[0-9a-z]+\:\/\//i.test(e)}function F(){return(65536*(1+Math.random())|0).toString(16).substring(1)}function W(e){return"number"==typeof e}exports.Model=q,exports.PBMGroup=I,exports.PBMMesh=b,exports.Subscribe=T,exports.parseWork=function(e){"string"==typeof e&&"{"===e.trim()[0]&&(e=JSON.parse(e));var t={uuid:(F()+F()+"-"+F()+"-4"+F().substr(0,3)+"-"+F()+"-"+F()+F()+F()).toLowerCase(),initial:{mode:"Panorama",latitude:0,longitude:0,panoIndex:0,fov:80},observers:[]},r=e.base_url||"",i=function(t,i){var n,o;if(C(t))return t;var s=(null===(n=e.panorama)||void 0===n?void 0:n.base_url)||r||"",a=(null===(o=e.panorama)||void 0===o?void 0:o.pano_high_cube_base_url)||"";return a||s?s+a+i+"/"+t:r+t},n=function(e){return C(e)?e:r+e},o=function(e,t){return C(e)?e:t?t+e:r+e};if(e.initial&&(W(e.initial.latitude)&&(t.initial.latitude=e.initial.latitude),W(e.initial.longitude)?t.initial.longitude=e.initial.longitude:W(e.initial.heading)&&(t.initial.longitude=-(360*(e.initial.heading-.25)+90)/180*Math.PI),W(e.initial.fov)&&(t.initial.fov=e.initial.fov),W(e.initial.panoIndex)?t.initial.panoIndex=e.initial.panoIndex:W(e.initial.pano_index)?t.initial.panoIndex=e.initial.pano_index:W(e.initial.pano)&&(t.initial.panoIndex=e.initial.pano)),e.model){var s={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof e.model.bvh?s.bvh=e.model.bvh:"boolean"==typeof e.bvh&&(s.bvh=e.bvh),"boolean"==typeof e.model.async?s.async=e.model.async:"boolean"==typeof e.modelAsync&&(s.async=e.modelAsync),e.model.file?s.file=n(e.model.file):e.model.file_url&&(s.file=n(e.model.file_url)),e.model.textureBase?s.textureBase=e.model.textureBase:e.model.material_base_url&&(s.textureBase=e.model.material_base_url),Array.isArray(e.model.textures)?s.textures=e.model.textures.map((function(e){return o(e,s.textureBase)})):Array.isArray(e.model.material_textures)&&(s.textures=e.model.material_textures.map((function(e){return o(e,s.textureBase)}))),s.file&&(t.model=s)}if(e.observers&&Array.isArray(e.observers)){var u=[];e.panorama&&(Array.isArray(e.panorama)?u=e.panorama:Array.isArray(e.panorama.list)?u=e.panorama.list:Array.isArray(e.panorama.info)&&(u=e.panorama.info));for(var d=0;d<e.observers.length;d++){var c={},l=e.observers[d];if(!l)break;var h=u[d]||{};l=Object.assign({},l,h,{active:!1!==l.active&&!1!==h.active}),c.panoIndex=d,c.active=!1!==l.active,c.loadable=!0===l.loadable,c.images={up:i(l.images?l.images.up:l.up,d),down:i(l.images?l.images.down:l.down,d),right:i(l.images?l.images.right:l.right,d),left:i(l.images?l.images.left:l.left,d),front:i(l.images?l.images.front:l.front,d),back:i(l.images?l.images.back:l.back,d)};var f=l.images?l.images.depth:l.depth;f&&(c.images.depth=i(f,d));var p=l.images?l.images.tiles:l.tiles;if(p&&(c.images.tiles=i(p,d)),l.position instanceof a.Vector3)c.position=l.position.clone();else{if(!Array.isArray(l.position))break;c.position=(new a.Vector3).fromArray(l.position)}if(l.standingPosition instanceof a.Vector3)c.standingPosition=l.standingPosition.clone();else if(Array.isArray(l.standingPosition))c.standingPosition=(new a.Vector3).fromArray(l.standingPosition);else if(l.standing_position instanceof a.Vector3)c.standingPosition=l.standing_position.clone();else{if(!Array.isArray(l.standing_position))break;c.standingPosition=(new a.Vector3).fromArray(l.standing_position)}if(l.quaternion instanceof a.Quaternion)c.quaternion=l.quaternion.clone();else if(Array.isArray(l.quaternion))c.quaternion=(new a.Quaternion).fromArray(l.quaternion);else{if(!l.quaternion)break;var m=l.quaternion,y=m.x,v=m.y,_=m.z,g=m.w;c.quaternion=new a.Quaternion(y,v,_,g)}if(Array.isArray(l.accessibleNodes)?c.accessibleNodes=l.accessibleNodes.slice():Array.isArray(l.accessible_nodes)&&(c.accessibleNodes=l.accessible_nodes.slice()),Array.isArray(l.visibleNodes)?c.visibleNodes=l.visibleNodes.slice():Array.isArray(l.visible_nodes)&&(c.visibleNodes=l.visible_nodes.slice()),W(l.floorIndex)?c.floorIndex=l.floorIndex:W(l.floor_index)?c.floorIndex=l.floor_index:c.floorIndex=0,l.video){var b={};"string"==typeof l.video.source&&(b.source=l.video.source),l.video.matrix instanceof a.Matrix4?b.matrix=l.video.matrix.clone():Array.isArray(l.video.matrix)&&(b.matrix=(new a.Matrix4).fromArray(l.video.matrix)),l.video.size instanceof a.Vector2?b.size=l.video.size.clone():Array.isArray(l.video.size)&&(b.size=(new a.Vector2).fromArray(l.video.size)),b.source&&b.matrix&&b.size&&(c.video=b)}t.observers[d]=c}}for(var x=0,w=t.observers;x<w.length;x++){if(!(c=w[x]).accessibleNodes){c.accessibleNodes=[];for(var B=0;B<t.observers.length;B++)t.observers[B]!==c&&c.accessibleNodes.push(B)}if(!c.visibleNodes){c.visibleNodes=[];for(B=0;B<t.observers.length;B++)t.observers[B]!==c&&c.visibleNodes.push(B)}}return Object.freeze(t),t},exports.stringifyWork=function(e){for(var t,r,i,n,o={pano_index:e.initial.panoIndex,pano:e.initial.panoIndex,longitude:e.initial.longitude,latitude:e.initial.latitude},s=null===(r=null===(t=e.model)||void 0===t?void 0:t.bvh)||void 0===r||r,a=null!==(n=null===(i=e.model)||void 0===i?void 0:i.async)&&void 0!==n&&n,u=e.model?{file_url:e.model.file,material_textures:e.model.textures.slice(),material_base_url:e.model.textureBase}:void 0,d={list:[]},c=[],l=0;l<e.observers.length;l++){var h=e.observers[l];c[l]={index:l,active:h.active,visible_nodes:h.visibleNodes.slice(),accessible_nodes:h.accessibleNodes.slice(),quaternion:{x:h.quaternion.x,y:h.quaternion.y,z:h.quaternion.z,w:h.quaternion.w},standing_position:h.standingPosition.toArray(),position:h.position.toArray(),floor:h.floorIndex,floor_index:h.floorIndex},d.list[l]={index:l,active:h.active,loadable:h.loadable,up:h.images.up,down:h.images.down,right:h.images.right,left:h.images.left,front:h.images.front,back:h.images.back},h.video&&(d.list[l].video={source:h.video.source,matrix:h.video.matrix.toArray(),size:h.video.size.toArray()}),h.images.depth&&(d.list[l].depth=h.images.depth),h.images.tiles&&(d.list[l].tiles=h.images.tiles)}var f={bvh:s,modelAsync:a,initial:o,observers:c,panorama:d};return u&&(f.model=u),f};
1
+ /**
2
+ * @realsee/five
3
+ *
4
+ * Generated: 2023-03-21
5
+ * Version: 5.0.0-alpha.190
6
+ *
7
+ * Terms:
8
+ * Realsee SDK License Agreement
9
+ *
10
+ * Update: July 28, 2021
11
+ *
12
+ * THIS LICENSE AGREEMENT BETWEEN YOU AND 【BEIKE REALSEE TECHNOLOGY (HK)
13
+ * LIMITED】(“Realsee”) FORMS A LEGALLY BINDING CONTRACT BETWEEN YOU AND REALSEE IN
14
+ * RELATION TO YOUR USE OF THE SDK. This License Agreement accompanies the Realsee
15
+ * Software Development Kit(s) for the software and related explanatory materials
16
+ * (the "SDK") and includes any upgrades, modified versions, updates, additions,
17
+ * and copies of the SDK licensed to You by Realsee.
18
+ * BY DOWNLOADING, INSTALLING, OR OTHERWISE ACCESSING OR USING THE SDK, YOU AGREE
19
+ * THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE BOUND BY THIS AGREEMENT. YOU ARE
20
+ * AGREEING ON YOUR OWN BEHALF AND/OR ON BEHALF OF YOUR COMPANY OR ORGANIZATION TO
21
+ * THE TERMS AND CONDITIONS STATED BELOW.
22
+ * This Agreement applies to Your use of the SDK in the country in which You
23
+ * legally install it (“Territory”) and is subject to the laws of such Territory
24
+ * and further subject to Section 12 below. Different terms, conditions, and
25
+ * limitations may apply to the use of the SDK in any additional countries.
26
+ * 1. DEFINITIONS.
27
+ * “Agreement” means this Realsee SDK License Agreement.
28
+ * “Developer”, “You” and “Your” means the person(s) or entity acquiring or using
29
+ * the SDK or otherwise exercising rights under the terms of this Agreement.
30
+ * “Documentation” means the technical or other specifications or documentation
31
+ * that Realsee may provide to You for use in connection with the SDK.
32
+ * “Integrated Product” means any software, website, or on-line service developed
33
+ * by You based on or using the SDK (collectively, the “Integrated Product”).
34
+ * “Intellectual Property” means any patents, patent rights, trademarks, service
35
+ * marks, registered and unregistered designs, applications for any of the
36
+ * foregoing, copyright, and any other similar protected rights in any country and
37
+ * to the extent recognised by any relevant jurisdiction as intellectual property,
38
+ * trade secrets, know-how and confidential information. Realsee reserves all
39
+ * rights not expressly granted to You.
40
+ * “Realsee” means [Beike Realsee Technology (HK) Limited, a company incorporated
41
+ * and validly existing under the laws of Hong Kong].
42
+ * “SDK” means the Realsee-proprietary Software Development Kits (SDK) provided
43
+ * hereunder, includes all development tools (including any compiler and debugger),
44
+ * application programming interfaces (“APIs”), libraries, binary utilities, header
45
+ * files, Documentation, content, data, code samples, and other materials provided
46
+ * to You in connection with this Agreement, whether delivered through a download,
47
+ * or any other media or form, and is licensed, not sold, to You by Realsee for use
48
+ * only under the terms of this Agreement. The terms of this Agreement will govern
49
+ * any updates provided by Realsee that replace and/or supplement the original SDK
50
+ * delivered to You, unless such update is accompanied by a separate license, in
51
+ * which case the terms of such license will govern.
52
+ * 2. LICENSED USES AND RESTRICTIONS.
53
+ * 2.1 Subject to the restrictions contained in this Section 2, Realsee grants to
54
+ * You during the term, a limited, non-exclusive, revocable, non-sublicensable,
55
+ * non-transferable license to install and use the SDK within the Territory only
56
+ * for the purpose of internal development.
57
+ * 2.2 Restrictions. You acknowledge and agree that, You shall not, and shall
58
+ * ensure that Your affiliates, employees, agents, representatives, officers,
59
+ * representatives, and subcontractors do not (directly or indirectly):
60
+ * 2.2.1 decompile, reverse engineer, disassemble or attempt to derive the source
61
+ * code of, those components of the SDK provided in object code form, or any part
62
+ * thereof;
63
+ * 2.2.2 remove, alter, or obscure any copyright notice or other proprietary rights
64
+ * notice on any part of the SDK;
65
+ * 2.2.3 sell, assign, pledge, rent, lease, lend, upload to or host on any website
66
+ * or server for use by any third party except You, redistribute, or sublicense the
67
+ * SDK (or any part thereof), or operate the SDK (or any part thereof) in the
68
+ * capacity of a service bureau or other hosted services provider, in whole or in
69
+ * part, nor may You enable others to do so;
70
+ * 2.2.4 or alter, modify, customize or improve the SDK, or any part thereof;
71
+ * 2.2.5 use the SDK (or any part thereof) for any illegal purpose, in any manner
72
+ * that is inconsistent with the terms of this Agreement, or to engage in any
73
+ * illegal activity;
74
+ * 2.2.6 use the SDK (or any part thereof) in any manner that may damage the
75
+ * operation of Realsee’s products or services; or
76
+ * 2.2.7 use the SDK or any information contained therein or otherwise provided by
77
+ * Realsee for the purpose of developing, or having developed, any product
78
+ * competitive with any Realsee product or service, as determined by Realsee in its
79
+ * sole discretion;
80
+ * 2.2.8 include any portion of the SDK in Your Developer products.
81
+ * 2.3 Realsee has the right to impose reasonable conditions such as a reasonable
82
+ * fee for use of the SDK in Integrated Product in the future.
83
+ * 2.4 You may make a limited number of copies of the SDK to be used by Your
84
+ * employees or consultants as provided herein, and not for general business
85
+ * purposes, and such employees or consultants shall be subject to the obligations
86
+ * and restrictions in this Agreement.
87
+ * 2.5 All licenses not expressly granted in this Agreement are reserved and no
88
+ * other licenses, immunity, or rights, express or implied, are granted by Realsee,
89
+ * by implication, estoppel, or otherwise.
90
+ * 3. CONFIDENTIALITY.
91
+ * The SDK and all source code, Documentation, specifications, engineering details,
92
+ * and related information pertaining to the SDK, whether in oral, written,
93
+ * graphic, or electronic form, are and shall remain the confidential and
94
+ * proprietary information of Realsee or its licensors (collectively, the
95
+ * “Confidential Information”). You shall (i) disclose Confidential Information to
96
+ * only those directors and employees (collectively, “Affiliates”) whose duties
97
+ * justify their need to know such information and who have been clearly informed
98
+ * of their obligation to maintain the confidential, proprietary, and/or trade
99
+ * secret status of such Confidential Information; and (ii) use Confidential
100
+ * Information solely in accordance with the license granted hereunder. In any
101
+ * event, You and Your Affiliates shall treat Confidential Information as strictly
102
+ * confidential and shall use the same care to prevent disclosure of such
103
+ * information as You use with respect to Your own similar confidential and/or
104
+ * proprietary information, which shall not be less than the care a reasonable
105
+ * person would use under similar circumstances. All Confidential Information, and
106
+ * any copies thereof, shall be returned promptly to Realsee upon request. You
107
+ * shall ensure that Your Affiliates comply with the provisions of this Section 3,
108
+ * and You shall be liable for any breach of this Section 3 resulting from the act
109
+ * or omission of any of Your Affiliates. You shall not disclose Confidential
110
+ * Information to any third party, including, without limitation, any of Your
111
+ * subcontractors.
112
+ * 4. PROPRIETARY RIGHTS.
113
+ * 4.1 As between You and Realsee, Realsee and/or its licensors retain ownership of
114
+ * all right, title, and interest in, to, and under the SDK, including, without
115
+ * limitation, all patents, copyrights, trade secrets, trademarks and other
116
+ * intellectual property and other proprietary rights therein, and reserve all
117
+ * rights not expressly granted to You.
118
+ * 4.2 The items contained in the SDK are the intellectual property of Realsee and
119
+ * its licensors and are protected by PRC copyright and patent law, international
120
+ * treaty provisions and applicable laws of the country in which it is being used.
121
+ * You agree to protect all copyright and other ownership interests of Realsee
122
+ * and/or its licensors in all items in the SDK supplied under this License
123
+ * Agreement. You agree that all copies of the items in the SDK, reproduced for any
124
+ * reason by You, contain the same copyright notices, and other proprietary notices
125
+ * as appropriate, as appear on or in the original items delivered by Realsee in
126
+ * the SDK. Realsee and/or its licensors retain title and ownership of the items in
127
+ * the SDK, the media on which it is loaded, and all subsequent copies, regardless
128
+ * of the form or media in or on which the original and other copies may exist.
129
+ * Except as stated above, this Agreement does not grant You any rights to patents,
130
+ * copyrights, trade secrets, trademarks or any other rights in respect to the
131
+ * items in the SDK.
132
+ * 5. TERM AND TERMINATION.
133
+ * 5.1 This Agreement is effective until terminated. Realsee has the right to
134
+ * terminate this Agreement immediately, without judicial intervention, if You fail
135
+ * to comply with any term herein. Upon any such termination You must remove all
136
+ * full and partial copies of the items in the SDK from Your computer and
137
+ * discontinue the use of the items in the SDK.
138
+ * 5.2 Realsee may at any time, terminate the Agreement with You if: (A) You have
139
+ * breached any provision of the Agreement; or (B) Realsee is required to do so by
140
+ * law; or (C) Realsee decides to no longer provide the SDK or certain parts of the
141
+ * SDK to users in the country in which You are resident or from which You use the
142
+ * service, or the provision of the SDK or certain SDK services to You by Realsee
143
+ * is, in Realsee's sole discretion, no longer legally or commercially viable.
144
+ * 5.3 When the Agreement comes to an end, all of the legal rights, obligations and
145
+ * liabilities that You and Realsee have benefited from, been subject to (or which
146
+ * have accrued over time whilst the Agreement has been in force) or which are
147
+ * expressed to continue indefinitely, shall be unaffected by this cessation, and
148
+ * the provisions of Section 3, 4, 6, 7 and 8 shall continue to apply to such
149
+ * rights, obligations and liabilities indefinitely.
150
+ * 6. DISCLAIMER OF WARRANTY.
151
+ * YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT, TO THE EXTENT PERMITTED BY APPLICABLE
152
+ * LAW, USE OF THE SDK (OR ANY PART THEREOF) IS AT YOUR SOLE RISK AND THAT THE
153
+ * ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS
154
+ * WITH YOU. REALSEE LICENSES THE SDK TO YOU ONLY ON AN "AS-IS" BASIS. REALSEE
155
+ * MAKES NO REPRESENTATION WITH RESPECT TO THE ADEQUACY OF ANY ITEMS IN THE SDK,
156
+ * WHETHER OR NOT USED BY YOU IN THE DEVELOPMENT OF INTEGRATED PRODUCT, FOR ANY
157
+ * PARTICULAR PURPOSE OR WITH RESPECT TO THEIR ADEQUACY TO PRODUCE ANY PARTICULAR
158
+ * RESULT. REALSEE AND ITS LICENSORS SHALL NOT BE LIABLE FOR LOSS OR DAMAGE ARISING
159
+ * OUT OF THIS AGREEMENT OR FROM THE DISTRIBUTION OR USE OF INTEGRATED PRODUCT
160
+ * CONTAINING PORTIONS OF THE SDK. REALSEE AND ITS LICENSORS DISCLAIM ALL
161
+ * WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED
162
+ * CONDITIONS OR WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
163
+ * OR NONINFRINGEMENT OF ANY THIRD PARTY RIGHT IN RESPECT OF THE ITEMS IN THE SDK
164
+ * OR ANY SERVICES RELATED TO THE SDK.
165
+ * REALSEE IS UNDER NO OBLIGATION TO PROVIDE ANY SUPPORT UNDER THIS LICENSE
166
+ * AGREEMENT, INCLUDING UPGRADES OR FUTURE VERSIONS OF THE SDK OR ANY PORTIONS
167
+ * THEREOF, TO YOU, END USER OR TO ANY OTHER PARTY.
168
+ * 7. LIMITATION OF LIABILITY.
169
+ * TO THE EXTENT NOT PROHIBITED BY APPLICABLE LAW, IN NO EVENT WILL REALSEE OR ITS
170
+ * LICENSORS BE LIABLE FOR ANY DIRECT, INCIDENTAL, SPECIAL, INDIRECT, OR
171
+ * CONSEQUENTIAL DAMAGES, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE,
172
+ * LOSS OF BUSINESS, REVENUE, OR PROFITS, LOSS OF OPPORTUNITY (WHETHER DIRECT OR
173
+ * INDIRECT), CORRUPTION OR LOSS OF DATA, LOSS OF REPUTATION OR SAVINGS, DOWNTIME,
174
+ * OR DAMAGE TO, LOSS OF OR REPLACEMENT OF DATA OR TRANSACTIONS, COST OF
175
+ * PROCUREMENT OF SUBSTITUTE SERVICES, BUSINESS INTERRUPTION, OR ANY OTHER
176
+ * COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR INABILITY
177
+ * TO USE THE SDK (OR ANY PART THEREOF), ANY INTEGRATED PRODUCT, OR ANY THIRD PARTY
178
+ * SOFTWARE, APPLICATIONS, OR SERVICES IN CONJUNCTION WITH THE SDK (OR ANY PART
179
+ * THEREOF), HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT,
180
+ * OR OTHERWISE) AND EVEN IF REALSEE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
181
+ * DAMAGES. IN NO EVENT WILL REALSEE’S TOTAL LIABILITY TO YOU FOR ALL DAMAGES
182
+ * EXCEED ONE HUNDRED DOLLARS ($100.00). THE FOREGOING LIMITATIONS WILL APPLY EVEN
183
+ * IF THE ABOVE STATED REMEDY FAILS OF ITS ESSENTIAL PURPOSE. THE LIMITATIONS
184
+ * CONTAINED IN SECTIONS 6 AND THIS SECTION 7 ARE A FUNDAMENTAL PART OF THE BASIS
185
+ * OF REALSEE’S BARGAIN HEREUNDER, AND REALSEE WOULD NOT ENTER INTO THIS AGREEMENT
186
+ * OR PROVIDE YOU WITH ACCESS TO THE SDK ABSENT SUCH LIMITATIONS.
187
+ * 8. INDEMNIFICATION.
188
+ * To the extent permitted by applicable law, You agree to indemnify, defend and
189
+ * hold harmless Realsee, its affiliates and each of their directors, officers,
190
+ * employees, independent contractors, and agents (each a “Realsee Indemnified
191
+ * Party”) from any and all claims, losses, liabilities, damages, expenses, and
192
+ * costs (including without limitation attorneys’ fees and court costs) incurred by
193
+ * a Realsee Indemnified Party as a result of: (i) Your non-compliance with any
194
+ * terms of this Agreement; (ii) Your use of the SDK (or any part thereof); or
195
+ * (iii) Your use of any Integrated Product, including any claim that Integrated
196
+ * Product infringes the copyright, trademark, trade secret or other intellectual
197
+ * property right of a third party.
198
+ * 9. ACKNOWLEDGEMENTS.
199
+ * Portions of the SDK may utilize or include third party software and other
200
+ * copyrighted material. Acknowledgments, licensing terms, and disclaimers for such
201
+ * material are contained in Documentation for the SDK or may otherwise accompany
202
+ * such material, and Your use of such materials governed by their respective
203
+ * terms. In the event of conflict between the terms of this Agreement and an
204
+ * applicable open source or third party agreement, the open source or third party
205
+ * agreement will control solely with respect to the open source software or third
206
+ * party software. Moreover, You shall not subject any items (including not limited
207
+ * to source code, object code, and any software) included in the SDK to any open
208
+ * source license.
209
+ * 10. NON-BLOCKING OF REALSEE DEVELOPMENT.
210
+ * You acknowledge that Realsee is currently developing or may develop technologies
211
+ * and products in the future that have or may have design and/or functionality
212
+ * similar to Integrated Product that You may develop based on Your license herein.
213
+ * Nothing in this Agreement shall impair, limit or curtail Realsee's right to
214
+ * continue with its development, maintenance and/or distribution of Realsee's
215
+ * technology or products.
216
+ * 11. GENERAL.
217
+ * 11.1 Export Control. You may not use or otherwise export or re-export the SDK
218
+ * (or any part thereof) except as authorized by United States law and the laws of
219
+ * the jurisdiction(s) in which the SDK (or any part thereof) was obtained. In
220
+ * particular, but without limitation, the SDK may not be exported or re-exported
221
+ * (i) into any U.S. embargoed countries or (ii) to anyone on the U.S. Treasury
222
+ * Department's list of Specially Designated Nationals or the U.S. Department of
223
+ * Commerce Denied Person's List or Entity List. By using the SDK (or any part
224
+ * thereof), You represent and warrant that You are not located in any such country
225
+ * or on any such list.
226
+ * 11.2 Governing Law. This Agreement and the rights of the parties hereunder shall
227
+ * be governed by and construed in accordance with the laws of People’s Republic of
228
+ * China (for purpose of this Agreement, excluding Hong Kong, Taiwan, and Macau),
229
+ * without reference to its conflict of laws principles. Any dispute, controversy
230
+ * or claim arising from or in connection with this Agreement, or the breach,
231
+ * termination or invalidity thereof, shall be submitted to China International
232
+ * Economic and Trade Arbitration Commission (“CIETAC”) for arbitration in Beijing
233
+ * which shall be conducted in accordance with the CIETAC's arbitration rules in
234
+ * effect at the time of applying for arbitration. The arbitral award is final and
235
+ * binding upon both parties.
236
+ * 11.3 Severability. If any provision of this Agreement is held by a court of
237
+ * competent jurisdiction to be unenforceable for any reason, the remaining
238
+ * provisions hereof will be unaffected and remain in full force and effect.
239
+ * 11.4. Modifications. Realsee reserves the right, from time to time, with or
240
+ * without notice to You, to make revisions to this Agreement in our sole and
241
+ * absolute discretion. The most current version of this Agreement will supersede
242
+ * all previous versions and shall be made available on the website where the SDK
243
+ * is made available, or by such other means as Realsee may determine in its
244
+ * discretion. Any modified versions of this Agreement hereto shall take effect
245
+ * from the time that it is made available. You shall be responsible for regularly
246
+ * checking for notice of any such modifications. You agree that Your continued use
247
+ * of the SDK constitutes Your agreement to the modified Agreement.
248
+ * 11.5 Relationship of the Parties. This Agreement will not be construed as
249
+ * creating an agency, partnership, joint venture, fiduciary duty, or any other
250
+ * form of legal association between You and Realsee, and You will not represent to
251
+ * the contrary, whether expressly, by implication, appearance, or otherwise.
252
+ * 11.6 Entire Agreement; Governing Language. This Agreement constitutes the entire
253
+ * agreement between You and Realsee with respect to the use of the SDK licensed
254
+ * hereunder and supersedes all prior understandings regarding such subject matter.
255
+ * No amendment to or modification of this Agreement will be binding unless in
256
+ * writing and signed by Realsee. You and Realsee hereto confirm that this
257
+ * Agreement and all related documents shall be drafted in English.
258
+ */
259
+
260
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three"),e=require("http"),r=require("https"),n=require("protobufjs/minimal");function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}function o(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}})),e.default=t,Object.freeze(e)}var s=o(t),a=i(e),u=i(r),l=o(n),c=Number(s.REVISION);if(c<115||c>117)throw new Error('"Five" needs "THREE.js" version between 125 - 117.');
261
+ /**
262
+ * @license
263
+ * The 'jsrsasign'(RSA-Sign JavaScript Library) License
264
+ *
265
+ * Copyright (c) 2010-2021 Kenji Urushima
266
+ *
267
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
268
+ * of this software and associated documentation files (the "Software"), to deal
269
+ * in the Software without restriction, including without limitation the rights
270
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
271
+ * copies of the Software, and to permit persons to whom the Software is
272
+ * furnished to do so, subject to the following conditions:
273
+ *
274
+ * The above copyright notice and this permission notice shall be included in
275
+ * all copies or substantial portions of the Software.
276
+ *
277
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
278
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
279
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
280
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
281
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
282
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
283
+ * THE SOFTWARE.
284
+ *
285
+ * LICENSE: MIT License
286
+ */
287
+ /**
288
+ * @license
289
+ * RSA and ECC in JavaScript
290
+ *
291
+ * Copyright (c) 2003-2005 Tom Wu All Rights Reserved.
292
+ *
293
+ * Permission is hereby granted, free of charge, to any person obtaining
294
+ * a copy of this software and associated documentation files (the
295
+ * "Software"), to deal in the Software without restriction, including
296
+ * without limitation the rights to use, copy, modify, merge, publish,
297
+ * distribute, sublicense, and/or sell copies of the Software, and to
298
+ * permit persons to whom the Software is furnished to do so, subject to
299
+ * the following conditions:
300
+ *
301
+ * The above copyright notice and this permission notice shall be
302
+ * included in all copies or substantial portions of the Software.
303
+ *
304
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
305
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
306
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
307
+ *
308
+ * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
309
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
310
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
311
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
312
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
313
+ *
314
+ * In addition, the following condition applies:
315
+ *
316
+ * All redistributions must retain an intact copy of this copyright notice
317
+ * and disclaimer.
318
+ *
319
+ * http://www-cs-students.stanford.edu/~tjw/jsbn/
320
+ * LICENSE: BSD License
321
+ * PART: ext/{base64,jsbn,jsbn2,prgn4,rng,rsa,rsa2}
322
+ */
323
+ /**
324
+ * @license
325
+ * CryptoJS
326
+ *
327
+ * Copyright (c) 2009-2013 Jeff Mott
328
+ *
329
+ * Permission is hereby granted, free of charge, to any person obtaining
330
+ * a copy of this software and associated documentation files (the
331
+ * "Software"), to deal in the Software without restriction, including
332
+ * without limitation the rights to use, copy, modify, merge, publish,
333
+ * distribute, sublicense, and/or sell copies of the Software, and to
334
+ * permit persons to whom the Software is furnished to do so, subject to
335
+ * the following conditions:
336
+ *
337
+ * The above copyright notice and this permission notice shall be
338
+ * included in all copies or substantial portions of the Software.
339
+ *
340
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
341
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
342
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
343
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
344
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
345
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
346
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
347
+ *
348
+ * https://code.google.com/p/crypto-js/wiki/License
349
+ * PART: ext/cryptojs
350
+ */var h,f={},p=p||function(t,e){var r={},n=r.lib={},i=n.Base=function(){function t(){}return{extend:function(e){t.prototype=this;var r=new t;return e&&r.mixIn(e),r.hasOwnProperty("init")||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),o=n.WordArray=i.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||a).stringify(this)},concat:function(t){var e=this.words,r=t.words,n=this.sigBytes,i=t.sigBytes;if(this.clamp(),n%4)for(var o=0;o<i;o++){var s=r[o>>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(o=0;o<i;o+=4)e[n+o>>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=i.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var r=[],n=0;n<e;n+=4)r.push(4294967296*t.random()|0);return new o.init(r,e)}}),s=r.enc={},a=s.Hex={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i<r;i++){var o=e[i>>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n<e;n+=2)r[n>>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new o.init(r,e/2)}},u=s.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i<r;i++){var o=e[i>>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n<e;n++)r[n>>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new o.init(r,e)}},l=s.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},c=n.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r=this._data,n=r.words,i=r.sigBytes,s=this.blockSize,a=i/(4*s),u=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*s,l=t.min(4*u,i);if(u){for(var c=0;c<u;c+=s)this._doProcessBlock(n,c);var h=n.splice(0,u);r.sigBytes-=l}return new o.init(h,l)},clone:function(){var t=i.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0});n.Hasher=c.extend({cfg:i.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){c.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){return t&&this._append(t),this._doFinalize()},blockSize:16,_createHelper:function(t){return function(e,r){return new t.init(r).finalize(e)}},_createHmacHelper:function(t){return function(e,r){return new h.HMAC.init(t,r).finalize(e)}}});var h=r.algo={};return r}(Math);function d(t,e,r){null!=t&&("number"==typeof t?this.fromNumber(t,e,r):null==e&&"string"!=typeof t?this.fromString(t,256):this.fromString(t,e))}function v(){return new d(null)}!function(t){for(var e=p,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function(t){return 4294967296*(t-(0|t))|0},u=2,l=0;64>l;){var c;t:{c=u;for(var h=t.sqrt(c),f=2;f<=h;f++)if(!(c%f)){c=!1;break t}c=!0}c&&(8>l&&(o[l]=a(t.pow(u,.5))),s[l]=a(t.pow(u,1/3)),l++),u++}var d=[];i=i.SHA256=n.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],a=r[3],u=r[4],l=r[5],c=r[6],h=r[7],f=0;64>f;f++){if(16>f)d[f]=0|t[e+f];else{var p=d[f-15],v=d[f-2];d[f]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+d[f-7]+((v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10)+d[f-16]}p=h+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&l^~u&c)+s[f]+d[f],v=((n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22))+(n&i^n&o^i&o),h=c,c=l,l=u,u=a+p|0,a=o,o=i,i=n,n=p+v|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+a|0,r[4]=r[4]+u|0,r[5]=r[5]+l|0,r[6]=r[6]+c|0,r[7]=r[7]+h|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=t.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),p.lib.Cipher||function(t){var e=(d=p).lib,r=e.Base,n=e.WordArray,i=e.BufferedBlockAlgorithm,o=d.enc.Base64,s=d.algo.EvpKDF,a=e.Cipher=i.extend({cfg:r.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){i.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(t){return{encrypt:function(e,r,n){return("string"==typeof r?v:f).encrypt(t,e,r,n)},decrypt:function(e,r,n){return("string"==typeof r?v:f).decrypt(t,e,r,n)}}}});e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var u=d.mode={},l=function(t,e,r){var n=this._iv;n?this._iv=undefined:n=this._prevBlock;for(var i=0;i<r;i++)t[e+i]^=n[i]},c=(e.BlockCipherMode=r.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}})).extend();c.Encryptor=c.extend({processBlock:function(t,e){var r=this._cipher,n=r.blockSize;l.call(this,t,e,n),r.encryptBlock(t,e),this._prevBlock=t.slice(e,e+n)}}),c.Decryptor=c.extend({processBlock:function(t,e){var r=this._cipher,n=r.blockSize,i=t.slice(e,e+n);r.decryptBlock(t,e),l.call(this,t,e,n),this._prevBlock=i}}),u=u.CBC=c,c=(d.pad={}).Pkcs7={pad:function(t,e){for(var r,i=(r=(r=4*e)-t.sigBytes%r)<<24|r<<16|r<<8|r,o=[],s=0;s<r;s+=4)o.push(i);r=n.create(o,r),t.concat(r)},unpad:function(t){t.sigBytes-=255&t.words[t.sigBytes-1>>>2]}},e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:u,padding:c}),reset:function(){a.reset.call(this);var t=(e=this.cfg).iv,e=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var r=e.createEncryptor;else r=e.createDecryptor,this._minBufferSize=1;this._mode=r.call(e,this,t&&t.words)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4});var h=e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}}),f=(u=(d.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext;return((t=t.salt)?n.create([1398893684,1701076831]).concat(t).concat(e):e).toString(o)},parse:function(t){var e=(t=o.parse(t)).words;if(1398893684==e[0]&&1701076831==e[1]){var r=n.create(e.slice(2,4));e.splice(0,4),t.sigBytes-=16}return h.create({ciphertext:t,salt:r})}},e.SerializableCipher=r.extend({cfg:r.extend({format:u}),encrypt:function(t,e,r,n){n=this.cfg.extend(n);var i=t.createEncryptor(r,n);return e=i.finalize(e),i=i.cfg,h.create({ciphertext:e,key:r,iv:i.iv,algorithm:t,mode:i.mode,padding:i.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,r,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),t.createDecryptor(r,n).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}})),d=(d.kdf={}).OpenSSL={execute:function(t,e,r,i){return i||(i=n.random(8)),t=s.create({keySize:e+r}).compute(t,i),r=n.create(t.words.slice(e),4*r),t.sigBytes=4*e,h.create({key:t,iv:r,salt:i})}},v=e.PasswordBasedCipher=f.extend({cfg:f.cfg.extend({kdf:d}),encrypt:function(t,e,r,n){return r=(n=this.cfg.extend(n)).kdf.execute(r,t.keySize,t.ivSize),n.iv=r.iv,(t=f.encrypt.call(this,t,e,r.key,n)).mixIn(r),t},decrypt:function(t,e,r,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),r=n.kdf.execute(r,t.keySize,t.ivSize,e.salt),n.iv=r.iv,f.decrypt.call(this,t,e,r.key,n)}})}(),function(){for(var t=p,e=t.lib.BlockCipher,r=t.algo,n=[],i=[],o=[],s=[],a=[],u=[],l=[],c=[],h=[],f=[],d=[],v=0;256>v;v++)d[v]=128>v?v<<1:v<<1^283;var y=0,g=0;for(v=0;256>v;v++){var m=(m=g^g<<1^g<<2^g<<3^g<<4)>>>8^255&m^99;n[y]=m,i[m]=y;var b=d[y],x=d[b],w=d[x],S=257*d[m]^16843008*m;o[y]=S<<24|S>>>8,s[y]=S<<16|S>>>16,a[y]=S<<8|S>>>24,u[y]=S,S=16843009*w^65537*x^257*b^16843008*y,l[m]=S<<24|S>>>8,c[m]=S<<16|S>>>16,h[m]=S<<8|S>>>24,f[m]=S,y?(y=b^d[d[d[w^b]]],g^=d[d[g]]):y=g=1}var A=[0,1,2,4,8,16,32,64,128,27,54];r=r.AES=e.extend({_doReset:function(){for(var t=(r=this._key).words,e=r.sigBytes/4,r=4*((this._nRounds=e+6)+1),i=this._keySchedule=[],o=0;o<r;o++)if(o<e)i[o]=t[o];else{var s=i[o-1];o%e?6<e&&4==o%e&&(s=n[s>>>24]<<24|n[s>>>16&255]<<16|n[s>>>8&255]<<8|n[255&s]):(s=n[(s=s<<8|s>>>24)>>>24]<<24|n[s>>>16&255]<<16|n[s>>>8&255]<<8|n[255&s],s^=A[o/e|0]<<24),i[o]=i[o-e]^s}for(t=this._invKeySchedule=[],e=0;e<r;e++)o=r-e,s=e%4?i[o]:i[o-4],t[e]=4>e||4>=o?s:l[n[s>>>24]]^c[n[s>>>16&255]]^h[n[s>>>8&255]]^f[n[255&s]]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,o,s,a,u,n)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,l,c,h,f,i),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,n,i,o,s,a){for(var u=this._nRounds,l=t[e]^r[0],c=t[e+1]^r[1],h=t[e+2]^r[2],f=t[e+3]^r[3],p=4,d=1;d<u;d++){var v=n[l>>>24]^i[c>>>16&255]^o[h>>>8&255]^s[255&f]^r[p++],y=n[c>>>24]^i[h>>>16&255]^o[f>>>8&255]^s[255&l]^r[p++],g=n[h>>>24]^i[f>>>16&255]^o[l>>>8&255]^s[255&c]^r[p++];f=n[f>>>24]^i[l>>>16&255]^o[c>>>8&255]^s[255&h]^r[p++],l=v,c=y,h=g}v=(a[l>>>24]<<24|a[c>>>16&255]<<16|a[h>>>8&255]<<8|a[255&f])^r[p++],y=(a[c>>>24]<<24|a[h>>>16&255]<<16|a[f>>>8&255]<<8|a[255&l])^r[p++],g=(a[h>>>24]<<24|a[f>>>16&255]<<16|a[l>>>8&255]<<8|a[255&c])^r[p++],f=(a[f>>>24]<<24|a[l>>>16&255]<<16|a[c>>>8&255]<<8|a[255&h])^r[p++],t[e]=v,t[e+1]=y,t[e+2]=g,t[e+3]=f},keySize:8});t.AES=e._createHelper(r)}(),"undefined"!=typeof navigator&&"Microsoft Internet Explorer"==navigator.appName?(d.prototype.am=function(t,e,r,n,i,o){for(var s=32767&e,a=e>>15;--o>=0;){var u=32767&this[t],l=this[t++]>>15,c=a*u+l*s;i=((u=s*u+((32767&c)<<15)+r[n]+(1073741823&i))>>>30)+(c>>>15)+a*l+(i>>>30),r[n++]=1073741823&u}return i},h=30):"undefined"!=typeof navigator&&"Netscape"!=navigator.appName?(d.prototype.am=function(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},h=26):(d.prototype.am=function(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],l=this[t++]>>14,c=a*u+l*s;i=((u=s*u+((16383&c)<<14)+r[n]+i)>>28)+(c>>14)+a*l,r[n++]=268435455&u}return i},h=28),d.prototype.DB=h,d.prototype.DM=(1<<h)-1,d.prototype.DV=1<<h;d.prototype.FV=Math.pow(2,52),d.prototype.F1=52-h,d.prototype.F2=2*h-52;var y,g,m=new Array;for(y="0".charCodeAt(0),g=0;g<=9;++g)m[y++]=g;for(y="a".charCodeAt(0),g=10;g<36;++g)m[y++]=g;for(y="A".charCodeAt(0),g=10;g<36;++g)m[y++]=g;function b(t){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(t)}function x(t,e){var r=m[t.charCodeAt(e)];return null==r?-1:r}function w(t){var e=v();return e.fromInt(t),e}function S(t){var e,r=1;return 0!=(e=t>>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function A(t){this.m=t}function P(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}A.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},A.prototype.revert=function(t){return t},A.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},A.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},A.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},P.prototype.convert=function(t){var e=v();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(d.ZERO)>0&&this.m.subTo(e,e),e},P.prototype.revert=function(t){var e=v();return t.copyTo(e),this.reduce(e),e},P.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=32767&t[e],n=r*this.mpl+((r*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},P.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},P.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},d.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},d.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},d.prototype.fromString=function(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:x(t,n);s<0?"-"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this[this.t++]=s>>this.DB-o):this[this.t-1]|=s<<o,(o+=r)>=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&d.ZERO.subTo(this,this)},d.prototype.clamp=function(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t},d.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},d.prototype.drShiftTo=function(t,e){for(var r=t;r<this.t;++r)e[r-t]=this[r];e.t=Math.max(this.t-t,0),e.s=this.s},d.prototype.lShiftTo=function(t,e){var r,n=t%this.DB,i=this.DB-n,o=(1<<i)-1,s=Math.floor(t/this.DB),a=this.s<<n&this.DM;for(r=this.t-1;r>=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<<n;for(r=s-1;r>=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},d.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<<n)-1;e[0]=this[r]>>n;for(var s=r+1;s<this.t;++s)e[s-r-1]|=(this[s]&o)<<i,e[s-r]=this[s]>>n;n>0&&(e[this.t-r-1]|=(this.s&o)<<i),e.t=this.t-r,e.clamp()}},d.prototype.subTo=function(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this[r]-t[r],e[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this[r],e[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t[r],e[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},d.prototype.multiplyTo=function(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i<n.t;++i)e[i+r.t]=r.am(0,n[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&d.ZERO.subTo(e,e)},d.prototype.squareTo=function(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e[r],t,2*r,0,1);(t[r+e.t]+=e.am(r+1,2*e[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},d.prototype.divRemTo=function(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t)return null!=e&&e.fromInt(0),void(null!=r&&this.copyTo(r));null==r&&(r=v());var o=v(),s=this.s,a=t.s,u=this.DB-S(n[n.t-1]);u>0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var l=o.t,c=o[l-1];if(0!=c){var h=c*(1<<this.F1)+(l>1?o[l-2]>>this.F2:0),f=this.FV/h,p=(1<<this.F1)/h,y=1<<this.F2,g=r.t,m=g-l,b=null==e?v():e;for(o.dlShiftTo(m,b),r.compareTo(b)>=0&&(r[r.t++]=1,r.subTo(b,r)),d.ONE.dlShiftTo(l,b),b.subTo(o,o);o.t<l;)o[o.t++]=0;for(;--m>=0;){var x=r[--g]==c?this.DM:Math.floor(r[g]*f+(r[g-1]+y)*p);if((r[g]+=o.am(0,x,r,m,0,l))<x)for(o.dlShiftTo(m,b),r.subTo(b,r);r[g]<--x;)r.subTo(b,r)}null!=e&&(r.drShiftTo(l,e),s!=a&&d.ZERO.subTo(e,e)),r.t=l,r.clamp(),u>0&&r.rShiftTo(u,r),s<0&&d.ZERO.subTo(r,r)}}},d.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},d.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},d.prototype.exp=function(t,e){if(t>4294967295||t<1)return d.ONE;var r=v(),n=v(),i=e.convert(this),o=S(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<<o)>0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},d.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<<e)-1,i=!1,o="",s=this.t,a=this.DB-s*this.DB%e;if(s-- >0)for(a<this.DB&&(r=this[s]>>a)>0&&(i=!0,o=b(r));s>=0;)a<e?(r=(this[s]&(1<<a)-1)<<e-a,r|=this[--s]>>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=b(r));return i?o:"0"},d.prototype.negate=function(){var t=v();return d.ZERO.subTo(this,t),t},d.prototype.abs=function(){return this.s<0?this.negate():this},d.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},d.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+S(this[this.t-1]^this.s&this.DM)},d.prototype.mod=function(t){var e=v();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(d.ZERO)>0&&t.subTo(e,e),e},d.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new A(e):new P(e),this.exp(t,r)},d.ZERO=w(0),d.ONE=w(1),d.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},d.prototype.toRadix=function(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=w(r),i=v(),o=v(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},d.prototype.intValue=
351
+ /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
352
+ 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]},d.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1};
353
+ /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
354
+ var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function _(t){var e,r,n,i="",o=0;for(e=0;e<t.length&&"="!=t.charAt(e);++e)(n=E.indexOf(t.charAt(e)))<0||(0==o?(i+=b(n>>2),r=3&n,o=1):1==o?(i+=b(r<<2|n>>4),r=15&n,o=2):2==o?(i+=b(r),i+=b(n>>2),r=3&n,o=3):(i+=b(r<<2|n>>4),i+=b(15&n),o=0));return 1==o&&(i+=b(r<<2)),i}
355
+ /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */function N(t,e){return new d(t,e)}function C(t,e,r){for(var n="",i=0;n.length<e;)n+=r(String.fromCharCode.apply(String,t.concat([(4278190080&i)>>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function I(){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 R(t,e,r){for(var n="",i=0;n.length<e;)n+=r(t+String.fromCharCode.apply(String,[(4278190080&i)>>24,(16711680&i)>>16,(65280&i)>>8,255&i])),i+=1;return n}function D(t){return _(function(t){return t.length%4==2?t+="==":t.length%4==3&&(t+="="),(t=t.replace(/-/g,"+")).replace(/_/g,"/")}(t))}function T(t){return decodeURIComponent(function(t){return t.replace(/(..)/g,"%$1")}(t))}function z(t){for(var e="",r=0;r<t.length-1;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e}function O(t){for(var e="",r=0;r<t.length;r++)e+=("0"+t.charCodeAt(r).toString(16)).slice(-2);return e}function B(t){return function(t){var e,r,n="";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=E.charAt(r>>6)+E.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=E.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=E.charAt(r>>2)+E.charAt((3&r)<<4));(3&n.length)>0;)n+="=";return n}(t)}function H(t,e){var r=function(t){var e=B(t).replace(/(.{64})/g,"$1\r\n");return e.replace(/\r\n$/,"")}(t);return"-----BEGIN "+e+"-----\r\n"+r+"\r\n-----END "+e+"-----\r\n"}function k(t,e){if(-1==t.indexOf("-----BEGIN "))throw"can't find PEM header: "+e;return function(t){return _(t.replace(/[^0-9A-Za-z\/+=]*/g,""))}(t=void 0!==e?(t=t.replace(new RegExp("^[^]*-----BEGIN "+e+"-----"),"")).replace(new RegExp("-----END "+e+"-----[^]*$"),""):(t=t.replace(/^[^]*-----BEGIN [^-]+-----/,"")).replace(/-----END [^-]+-----[^]*$/,""))}function q(t){var e="malformed hex value";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?function(t){if(!t.match(/^[0-9A-Fa-f]{32}$/))throw"malformed IPv6 address octet";for(var e=(t=t.toLowerCase()).match(/.{1,4}/g),r=0;r<8;r++)e[r]=e[r].replace(/^0+/,""),""==e[r]&&(e[r]="0");var n=(t=":"+e.join(":")+":").match(/:(0:){2,}/g);if(null===n)return t.slice(1,-1);var i="";for(r=0;r<n.length;r++)n[r].length>i.length&&(i=n[r]);return(t=t.replace(i,"::")).slice(1,-1)}(t):t;try{return parseInt(t.substr(0,2),16)+"."+parseInt(t.substr(2,2),16)+"."+parseInt(t.substr(4,2),16)+"."+parseInt(t.substr(6,2),16)}catch(t){throw e}}function V(t){return!(t.length%2!=0||!t.match(/^[0-9a-f]+$/)&&!t.match(/^[0-9A-F]+$/))}function U(t){return t.length%2==1?"0"+t:t.substr(0,1)>"7"?"00"+t:t}I.prototype.doPublic=function(t){return t.modPowInt(this.e,this.n)},I.prototype.setPublic=function(t,e){if(this.isPublic=!0,this.isPrivate=!1,"string"!=typeof t)this.n=t,this.e=e;else{if(!(null!=t&&null!=e&&t.length>0&&e.length>0))throw"Invalid RSA public key";this.n=N(t,16),this.e=parseInt(e,16)}},I.prototype.encrypt=function(t){var e=function(t,e){if(e<t.length+11)throw"Message too long for RSA";for(var r=new Array,n=t.length-1;n>=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new SecureRandom,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new d(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var r=this.doPublic(e);if(null==r)return null;var n=r.toString(16);return 0==(1&n.length)?n:"0"+n},I.prototype.encryptOAEP=function(t,e,r){var n=function(t,e,r,n){var i=f.crypto.MessageDigest,o=f.crypto.Util,s=null;if(r||(r="sha1"),"string"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function(t){return z(o.hashHex(O(t),s))}),t.length+2*n+2>e)throw"Message too long for RSA";var a,u="";for(a=0;a<e-t.length-2*n-2;a+=1)u+="\0";var l=r("")+u+""+t,c=new Array(n);(new SecureRandom).nextBytes(c);var h=C(c,l.length,r),p=[];for(a=0;a<l.length;a+=1)p[a]=l.charCodeAt(a)^h.charCodeAt(a);var v=C(p,c.length,r),y=[0];for(a=0;a<c.length;a+=1)y[a+1]=c[a]^v.charCodeAt(a);return new d(y.concat(p))}(t,this.n.bitLength()+7>>3,e,r);if(null==n)return null;var i=this.doPublic(n);if(null==i)return null;var o=i.toString(16);return 0==(1&o.length)?o:"0"+o},I.prototype.type="RSA",I.prototype.doPrivate=function(t){if(null==this.p||null==this.q)return t.modPow(this.d,this.n);for(var e=t.mod(this.p).modPow(this.dmp1,this.p),r=t.mod(this.q).modPow(this.dmq1,this.q);e.compareTo(r)<0;)e=e.add(this.p);return e.subtract(r).multiply(this.coeff).mod(this.p).multiply(this.q).add(r)},I.prototype.setPrivate=function(t,e,r){if(this.isPrivate=!0,"string"!=typeof t)this.n=t,this.e=e,this.d=r;else{if(!(null!=t&&null!=e&&t.length>0&&e.length>0))throw"Invalid RSA private key";this.n=N(t,16),this.e=parseInt(e,16),this.d=N(r,16)}},I.prototype.setPrivateEx=function(t,e,r,n,i,o,s,a){if(this.isPrivate=!0,this.isPublic=!1,null==t)throw"RSASetPrivateEx N == null";if(null==e)throw"RSASetPrivateEx E == null";if(0==t.length)throw"RSASetPrivateEx N.length == 0";if(0==e.length)throw"RSASetPrivateEx E.length == 0";if(!(null!=t&&null!=e&&t.length>0&&e.length>0))throw"Invalid RSA private key in RSASetPrivateEx";this.n=N(t,16),this.e=parseInt(e,16),this.d=N(r,16),this.p=N(n,16),this.q=N(i,16),this.dmp1=N(o,16),this.dmq1=N(s,16),this.coeff=N(a,16)},I.prototype.decrypt=function(t){if(t.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var e=N(t,16),r=this.doPrivate(e);return null==r?null:
356
+ /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/ */
357
+ function(t,e){for(var r=t.toByteArray(),n=0;n<r.length&&0==r[n];)++n;if(r.length-n!=e-1||2!=r[n])return null;for(++n;0!=r[n];)if(++n>=r.length)return null;for(var i="";++n<r.length;){var o=255&r[n];o<128?i+=String.fromCharCode(o):o>191&&o<224?(i+=String.fromCharCode((31&o)<<6|63&r[n+1]),++n):(i+=String.fromCharCode((15&o)<<12|(63&r[n+1])<<6|63&r[n+2]),n+=2)}return i}(r,this.n.bitLength()+7>>3)},I.prototype.decryptOAEP=function(t,e,r){if(t.length!=Math.ceil(this.n.bitLength()/4))throw new Error("wrong ctext length");var n=N(t,16),i=this.doPrivate(n);return null==i?null:function(t,e,r,n){var i=f.crypto.MessageDigest,o=f.crypto.Util,s=null;for(r||(r="sha1"),"string"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function(t){return z(o.hashHex(O(t),s))}),t=t.toByteArray(),a=0;a<t.length;a+=1)t[a]&=255;for(;t.length<e;)t.unshift(0);if((t=String.fromCharCode.apply(String,t)).length<2*n+2)throw"Cipher too short";var a,u=t.substr(1,n),l=t.substr(n+1),c=R(l,n,r),h=[];for(a=0;a<u.length;a+=1)h[a]=u.charCodeAt(a)^c.charCodeAt(a);var p=R(String.fromCharCode.apply(String,h),t.length-n,r),d=[];for(a=0;a<l.length;a+=1)d[a]=l.charCodeAt(a)^p.charCodeAt(a);if((d=String.fromCharCode.apply(String,d)).substr(0,n)!==r(""))throw"Hash mismatch";var v=(d=d.substr(n)).indexOf("");if((-1!=v?d.substr(0,v).lastIndexOf("\0"):-1)+1!=v)throw"Malformed data";return d.substr(v+1)}(i,this.n.bitLength()+7>>3,e,r)},void 0!==f.lang&&f.lang||(f.lang={}),f.lang.String=function(){},f.lang.String.isHex=function(t){return V(t)},f.lang.String.isMail=function(t){return null!==t.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/)};var M=function(t,e,r){return null==r&&(r="0"),t.length>=e?t:new Array(e-t.length+1).join(r)+t};void 0!==f.crypto&&f.crypto||(f.crypto={}),f.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",ripemd160:"3021300906052b2403020105000414"},this.DEFAULTPROVIDER={md5:"cryptojs",sha1:"cryptojs",sha224:"cryptojs",sha256:"cryptojs",sha384:"cryptojs",sha512:"cryptojs",ripemd160:"cryptojs",hmacmd5:"cryptojs",hmacsha1:"cryptojs",hmacsha224:"cryptojs",hmacsha256:"cryptojs",hmacsha384:"cryptojs",hmacsha512:"cryptojs",hmacripemd160:"cryptojs",MD5withRSA:"cryptojs/jsrsa",SHA1withRSA:"cryptojs/jsrsa",SHA224withRSA:"cryptojs/jsrsa",SHA256withRSA:"cryptojs/jsrsa",SHA384withRSA:"cryptojs/jsrsa",SHA512withRSA:"cryptojs/jsrsa",RIPEMD160withRSA:"cryptojs/jsrsa",MD5withECDSA:"cryptojs/jsrsa",SHA1withECDSA:"cryptojs/jsrsa",SHA224withECDSA:"cryptojs/jsrsa",SHA256withECDSA:"cryptojs/jsrsa",SHA384withECDSA:"cryptojs/jsrsa",SHA512withECDSA:"cryptojs/jsrsa",RIPEMD160withECDSA:"cryptojs/jsrsa",SHA1withDSA:"cryptojs/jsrsa",SHA224withDSA:"cryptojs/jsrsa",SHA256withDSA:"cryptojs/jsrsa",MD5withRSAandMGF1:"cryptojs/jsrsa",SHAwithRSAandMGF1:"cryptojs/jsrsa",SHA1withRSAandMGF1:"cryptojs/jsrsa",SHA224withRSAandMGF1:"cryptojs/jsrsa",SHA256withRSAandMGF1:"cryptojs/jsrsa",SHA384withRSAandMGF1:"cryptojs/jsrsa",SHA512withRSAandMGF1:"cryptojs/jsrsa",RIPEMD160withRSAandMGF1:"cryptojs/jsrsa"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:p.algo.MD5,sha1:p.algo.SHA1,sha224:p.algo.SHA224,sha256:p.algo.SHA256,sha384:p.algo.SHA384,sha512:p.algo.SHA512,ripemd160:p.algo.RIPEMD160},this.hashString=function(t,e){return new f.crypto.MessageDigest({alg:e}).digestString(t)},this.hashHex=function(t,e){return new f.crypto.MessageDigest({alg:e}).digestHex(t)},this.sha1=function(t){return this.hashString(t,"sha1")},this.sha256=function(t){return this.hashString(t,"sha256")},this.sha256Hex=function(t){return this.hashHex(t,"sha256")},this.sha512=function(t){return this.hashString(t,"sha512")},this.sha512Hex=function(t){return this.hashHex(t,"sha512")}},f.crypto.MessageDigest=function(t){this.setAlgAndProvider=function(t,e){if(null!==(t=f.crypto.MessageDigest.getCanonicalAlgName(t))&&void 0===e&&(e=f.crypto.Util.DEFAULTPROVIDER[t]),-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(t)&&"cryptojs"==e){try{this.md=f.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[t].create()}catch(e){throw"setAlgAndProvider hash alg set fail alg="+t+"/"+e}this.updateString=function(t){this.md.update(t)},this.updateHex=function(t){var e=p.enc.Hex.parse(t);this.md.update(e)},this.digest=function(){return this.md.finalize().toString(p.enc.Hex)},this.digestString=function(t){return this.updateString(t),this.digest()},this.digestHex=function(t){return this.updateHex(t),this.digest()}}if(-1!=":sha256:".indexOf(t)&&"sjcl"==e){try{this.md=new sjcl.hash.sha256}catch(e){throw"setAlgAndProvider hash alg set fail alg="+t+"/"+e}this.updateString=function(t){this.md.update(t)},this.updateHex=function(t){var e=sjcl.codec.hex.toBits(t);this.md.update(e)},this.digest=function(){var t=this.md.finalize();return sjcl.codec.hex.fromBits(t)},this.digestString=function(t){return this.updateString(t),this.digest()},this.digestHex=function(t){return this.updateHex(t),this.digest()}}},this.updateString=function(t){throw"updateString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.updateHex=function(t){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(t){throw"digestString(str) not supported for this alg/prov: "+this.algName+"/"+this.provName},this.digestHex=function(t){throw"digestHex(hex) not supported for this alg/prov: "+this.algName+"/"+this.provName},void 0!==t&&void 0!==t.alg&&(this.algName=t.alg,void 0===t.prov&&(this.provName=f.crypto.Util.DEFAULTPROVIDER[this.algName]),this.setAlgAndProvider(this.algName,this.provName))},f.crypto.MessageDigest.getCanonicalAlgName=function(t){return"string"==typeof t&&(t=(t=t.toLowerCase()).replace(/-/,"")),t},f.crypto.MessageDigest.getHashLength=function(t){var e=f.crypto.MessageDigest,r=e.getCanonicalAlgName(t);if(void 0===e.HASHLENGTH[r])throw"not supported algorithm: "+t;return e.HASHLENGTH[r]},f.crypto.MessageDigest.HASHLENGTH={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,ripemd160:20},f.crypto.Signature=function(t){var e=null;if(this._setAlgNames=function(){var t=this.algName.match(/^(.+)with(.+)$/);t&&(this.mdAlgName=t[1].toLowerCase(),this.pubkeyAlgName=t[2].toLowerCase(),"rsaandmgf1"==this.pubkeyAlgName&&"sha"==this.mdAlgName&&(this.mdAlgName="sha1"))},this._zeroPaddingOfSignature=function(t,e){for(var r="",n=e/4-t.length,i=0;i<n;i++)r+="0";return r+t},this.setAlgAndProvider=function(t,e){if(this._setAlgNames(),"cryptojs/jsrsa"!=e)throw new Error("provider not supported: "+e);if(-1!=":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:".indexOf(this.mdAlgName)){try{this.md=new f.crypto.MessageDigest({alg:this.mdAlgName})}catch(t){throw new Error("setAlgAndProvider hash alg set fail alg="+this.mdAlgName+"/"+t)}this.init=function(t,e){var r=null;try{r=void 0===e?G.getKey(t):G.getKey(t,e)}catch(t){throw"init failed:"+t}if(!0===r.isPrivate)this.prvKey=r,this.state="SIGN";else{if(!0!==r.isPublic)throw"init failed.:"+r;this.pubKey=r,this.state="VERIFY"}},this.updateString=function(t){this.md.updateString(t)},this.updateHex=function(t){this.md.updateHex(t)},this.verify=function(t){if(this.sHashHex=this.md.digest(),this.pubKey instanceof I&&"rsaandmgf1"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHashPSS(this.sHashHex,t,this.mdAlgName,this.pssSaltLen);if(this.pubKey instanceof I&&"rsa"===this.pubkeyAlgName)return this.pubKey.verifyWithMessageHash(this.sHashHex,t);throw"Signature: unsupported public key alg: "+this.pubkeyAlgName}}},this.init=function(t,e){throw"init(key, pass) not supported for this alg:prov="+this.algProvName},this.updateString=function(t){throw"updateString(str) not supported for this alg:prov="+this.algProvName},this.updateHex=function(t){throw"updateHex(hex) not supported for this alg:prov="+this.algProvName},this.verify=function(t){throw"verify(hSigVal) not supported for this alg:prov="+this.algProvName},this.initParams=t,void 0!==t&&(void 0!==t.alg&&(this.algName=t.alg,void 0===t.prov?this.provName=f.crypto.Util.DEFAULTPROVIDER[this.algName]:this.provName=t.prov,this.algProvName=this.algName+":"+this.provName,this.setAlgAndProvider(this.algName,this.provName),this._setAlgNames()),void 0!==t.psssaltlen&&(this.pssSaltLen=t.psssaltlen),void 0!==t.prvkeypem)){if(void 0!==t.prvkeypas)throw"both prvkeypem and prvkeypas parameters not supported";try{e=G.getKey(t.prvkeypem);this.init(e)}catch(t){throw"fatal error to load pem private key: "+t}}},f.crypto.OID=new function(){this.oidhex2name={"2a864886f70d010101":"rsaEncryption","2a8648ce3d0201":"ecPublicKey","2a8648ce380401":"dsa","2a8648ce3d030107":"secp256r1","2b8104001f":"secp192k1","2b81040021":"secp224r1","2b8104000a":"secp256k1","2b81040023":"secp521r1","2b81040022":"secp384r1","2a8648ce380403":"SHA1withDSA","608648016503040301":"SHA224withDSA","608648016503040302":"SHA256withDSA"}};var F,K,L,j,Y,Q,Z,W,G=(F=function(t,e,r){return K(p.AES,t,e,r)},K=function(t,e,r,n){var i=p.enc.Hex.parse(e),o=p.enc.Hex.parse(r),s=p.enc.Hex.parse(n),a={};a.key=o,a.iv=s,a.ciphertext=i;var u=t.decrypt(a,o,{iv:s});return p.enc.Hex.stringify(u)},L=function(t,e,r){return j(p.AES,t,e,r)},j=function(t,e,r,n){var i=p.enc.Hex.parse(e),o=p.enc.Hex.parse(r),s=p.enc.Hex.parse(n),a=t.encrypt(i,o,{iv:s}),u=p.enc.Hex.parse(a.toString());return p.enc.Base64.stringify(u)},Y={"AES-256-CBC":{proc:F,eproc:L,keylen:32,ivlen:16},"AES-192-CBC":{proc:F,eproc:L,keylen:24,ivlen:16},"AES-128-CBC":{proc:F,eproc:L,keylen:16,ivlen:16},"DES-EDE3-CBC":{proc:function(t,e,r){return K(p.TripleDES,t,e,r)},eproc:function(t,e,r){return j(p.TripleDES,t,e,r)},keylen:24,ivlen:8},"DES-CBC":{proc:function(t,e,r){return K(p.DES,t,e,r)},eproc:function(t,e,r){return j(p.DES,t,e,r)},keylen:8,ivlen:8}},Q=function(t){var e={},r=t.match(new RegExp("DEK-Info: ([^,]+),([0-9A-Fa-f]+)","m"));r&&(e.cipher=r[1],e.ivsalt=r[2]);var n=t.match(new RegExp("-----BEGIN ([A-Z]+) PRIVATE KEY-----"));n&&(e.type=n[1]);var i=-1,o=0;-1!=t.indexOf("\r\n\r\n")&&(i=t.indexOf("\r\n\r\n"),o=2),-1!=t.indexOf("\n\n")&&(i=t.indexOf("\n\n"),o=1);var s=t.indexOf("-----END");if(-1!=i&&-1!=s){var a=t.substring(i+2*o,s-o);a=a.replace(/\s+/g,""),e.data=a}return e},Z=function(t,e,r){for(var n=r.substring(0,16),i=p.enc.Hex.parse(n),o=p.enc.Utf8.parse(e),s=Y[t].keylen+Y[t].ivlen,a="",u=null;;){var l=p.algo.MD5.create();if(null!=u&&l.update(u),l.update(o),l.update(i),u=l.finalize(),(a+=p.enc.Hex.stringify(u)).length>=2*s)break}var c={};return c.keyhex=a.substr(0,2*Y[t].keylen),c.ivhex=a.substr(2*Y[t].keylen,2*Y[t].ivlen),c},W=function(t,e,r,n){var i=p.enc.Base64.parse(t),o=p.enc.Hex.stringify(i);return(0,Y[e].proc)(o,r,n)},{version:"1.0.0",parsePKCS5PEM:function(t){return Q(t)},getKeyAndUnusedIvByPasscodeAndIvsalt:function(t,e,r){return Z(t,e,r)},decryptKeyB64:function(t,e,r,n){return W(t,e,r,n)},getDecryptedKeyHex:function(t,e){var r=Q(t),n=r.cipher,i=r.ivsalt,o=r.data,s=Z(n,e,i).keyhex;return W(o,n,s,i)},getEncryptedPKCS5PEMFromPrvKeyHex:function(t,e,r,n,i){var o="";if(void 0!==n&&null!=n||(n="AES-256-CBC"),void 0===Y[n])throw"KEYUTIL unsupported algorithm: "+n;if(void 0===i||null==i){var s=function(t){var e=p.lib.WordArray.random(t);return p.enc.Hex.stringify(e)}(Y[n].ivlen);i=s.toUpperCase()}var a=function(t,e,r,n){return(0,Y[e].eproc)(t,r,n)}(e,n,Z(n,r,i).keyhex,i);return o="-----BEGIN "+t+" PRIVATE KEY-----\r\n",o+="Proc-Type: 4,ENCRYPTED\r\n",o+="DEK-Info: "+n+","+i+"\r\n",o+="\r\n",o+=a.replace(/(.{64})/g,"$1\r\n"),o+="\r\n-----END "+t+" PRIVATE KEY-----\r\n"},parseHexOfEncryptedPKCS8:function(t){var e=J,r=e.getChildIdx,n=e.getV,i={},o=r(t,0);if(2!=o.length)throw"malformed format: SEQUENCE(0).items != 2: "+o.length;i.ciphertext=n(t,o[1]);var s=r(t,o[0]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0).items != 2: "+s.length;if("2a864886f70d01050d"!=n(t,s[0]))throw"this only supports pkcs5PBES2";var a=r(t,s[1]);if(2!=s.length)throw"malformed format: SEQUENCE(0.0.1).items != 2: "+a.length;var u=r(t,a[1]);if(2!=u.length)throw"malformed format: SEQUENCE(0.0.1.1).items != 2: "+u.length;if("2a864886f70d0307"!=n(t,u[0]))throw"this only supports TripleDES";i.encryptionSchemeAlg="TripleDES",i.encryptionSchemeIV=n(t,u[1]);var l=r(t,a[0]);if(2!=l.length)throw"malformed format: SEQUENCE(0.0.1.0).items != 2: "+l.length;if("2a864886f70d01050c"!=n(t,l[0]))throw"this only supports pkcs5PBKDF2";var c=r(t,l[1]);if(c.length<2)throw"malformed format: SEQUENCE(0.0.1.0.1).items < 2: "+c.length;i.pbkdf2Salt=n(t,c[0]);var h=n(t,c[1]);try{i.pbkdf2Iter=parseInt(h,16)}catch(t){throw"malformed format pbkdf2Iter: "+h}return i},getPBKDF2KeyHexFromParam:function(t,e){var r=p.enc.Hex.parse(t.pbkdf2Salt),n=t.pbkdf2Iter,i=p.PBKDF2(e,r,{keySize:6,iterations:n});return p.enc.Hex.stringify(i)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function(t,e){var r=k(t,"ENCRYPTED PRIVATE KEY"),n=this.parseHexOfEncryptedPKCS8(r),i=G.getPBKDF2KeyHexFromParam(n,e),o={};o.ciphertext=p.enc.Hex.parse(n.ciphertext);var s=p.enc.Hex.parse(i),a=p.enc.Hex.parse(n.encryptionSchemeIV),u=p.TripleDES.decrypt(o,s,{iv:a});return p.enc.Hex.stringify(u)},getKeyFromEncryptedPKCS8PEM:function(t,e){var r=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(t,e);return this.getKeyFromPlainPrivatePKCS8Hex(r)},parsePlainPrivatePKCS8Hex:function(t){var e=J,r=e.getChildIdx,n=e.getV,i={algparam:null};if("30"!=t.substr(0,2))throw new Error("malformed plain PKCS8 private key(code:001)");var o=r(t,0);if(o.length<3)throw new Error("malformed plain PKCS8 private key(code:002)");if("30"!=t.substr(o[1],2))throw new Error("malformed PKCS8 private key(code:003)");var s=r(t,o[1]);if(2!=s.length)throw new Error("malformed PKCS8 private key(code:004)");if("06"!=t.substr(s[0],2))throw new Error("malformed PKCS8 private key(code:005)");if(i.algoid=n(t,s[0]),"06"==t.substr(s[1],2)&&(i.algparam=n(t,s[1])),"04"!=t.substr(o[2],2))throw new Error("malformed PKCS8 private key(code:006)");return i.keyidx=e.getVidx(t,o[2]),i},getKeyFromPlainPrivatePKCS8PEM:function(t){var e=k(t,"PRIVATE KEY");return this.getKeyFromPlainPrivatePKCS8Hex(e)},getKeyFromPlainPrivatePKCS8Hex:function(t){var e,r=this.parsePlainPrivatePKCS8Hex(t);if("2a864886f70d010101"==r.algoid)e=new I;else if(f.crypto.DSA&&"2a8648ce380401"==r.algoid)e=new f.crypto.DSA;else{if(!f.crypto.ECDSA||"2a8648ce3d0201"!=r.algoid)throw"unsupported private key algorithm";e=new f.crypto.ECDSA}return e.readPKCS8PrvKeyHex(t),e},_getKeyFromPublicPKCS8Hex:function(t){var e,r=J.getVbyList(t,0,[0,0],"06");if("2a864886f70d010101"===r)e=new I;else if(f.crypto.DSA&&"2a8648ce380401"===r)e=new f.crypto.DSA;else{if(!f.crypto.ECDSA||"2a8648ce3d0201"!==r)throw"unsupported PKCS#8 public key hex";e=new f.crypto.ECDSA}return e.readPKCS8PubKeyHex(t),e},parsePublicRawRSAKeyHex:function(t){var e=J,r=e.getChildIdx,n=e.getV,i={};if("30"!=t.substr(0,2))throw"malformed RSA key(code:001)";var o=r(t,0);if(2!=o.length)throw"malformed RSA key(code:002)";if("02"!=t.substr(o[0],2))throw"malformed RSA key(code:003)";if(i.n=n(t,o[0]),"02"!=t.substr(o[1],2))throw"malformed RSA key(code:004)";return i.e=n(t,o[1]),i},parsePublicPKCS8Hex:function(t){var e=J,r=e.getChildIdx,n=e.getV,i={algparam:null},o=r(t,0);if(2!=o.length)throw"outer DERSequence shall have 2 elements: "+o.length;var s=o[0];if("30"!=t.substr(s,2))throw"malformed PKCS8 public key(code:001)";var a=r(t,s);if(2!=a.length)throw"malformed PKCS8 public key(code:002)";if("06"!=t.substr(a[0],2))throw"malformed PKCS8 public key(code:003)";if(i.algoid=n(t,a[0]),"06"==t.substr(a[1],2)?i.algparam=n(t,a[1]):"30"==t.substr(a[1],2)&&(i.algparam={},i.algparam.p=e.getVbyList(t,a[1],[0],"02"),i.algparam.q=e.getVbyList(t,a[1],[1],"02"),i.algparam.g=e.getVbyList(t,a[1],[2],"02")),"03"!=t.substr(o[1],2))throw"malformed PKCS8 public key(code:004)";return i.key=n(t,o[1]).substr(2),i}});G.getKey=function(t,e,r){var n=(m=J).getChildIdx;m.getV;var i=m.getVbyList,o=f.crypto,s=o.ECDSA,a=o.DSA,u=I,l=k,c=G;if(void 0!==u&&t instanceof u)return t;if(void 0!==s&&t instanceof s)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new s({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new s({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(R=new u).setPublic(t.n,t.e),R;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(R=new u).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),R;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(R=new u).setPrivate(t.n,t.e,t.d),R;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(R=new a).setPublic(t.p,t.q,t.g,t.y),R;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(R=new a).setPrivate(t.p,t.q,t.g,t.y,t.x),R;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(R=new u).setPublic(D(t.n),D(t.e)),R;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(R=new u).setPrivateEx(D(t.n),D(t.e),D(t.d),D(t.p),D(t.q),D(t.dp),D(t.dq),D(t.qi)),R;if("RSA"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(R=new u).setPrivate(D(t.n),D(t.e),D(t.d)),R;if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var h=(C=new s({curve:t.crv})).ecparams.keylen/4,p="04"+("0000000000"+D(t.x)).slice(-h)+("0000000000"+D(t.y)).slice(-h);return C.setPublicKeyHex(p),C}if("EC"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){h=(C=new s({curve:t.crv})).ecparams.keylen/4,p="04"+("0000000000"+D(t.x)).slice(-h)+("0000000000"+D(t.y)).slice(-h);var v=("0000000000"+D(t.d)).slice(-h);return C.setPublicKeyHex(p),C.setPrivateKeyHex(v),C}if("pkcs5prv"===r){var y,g=t,m=J;if(9===(y=n(g,0)).length)(R=new u).readPKCS5PrvKeyHex(g);else if(6===y.length)(R=new a).readPKCS5PrvKeyHex(g);else{if(!(y.length>2&&"04"===g.substr(y[1],2)))throw"unsupported PKCS#1/5 hexadecimal key";(R=new s).readPKCS5PrvKeyHex(g)}return R}if("pkcs8prv"===r)return R=c.getKeyFromPlainPrivatePKCS8Hex(t);if("pkcs8pub"===r)return c._getKeyFromPublicPKCS8Hex(t);if("x509pub"===r)return $.getPublicKeyFromCertHex(t);if(-1!=t.indexOf("-END CERTIFICATE-",0)||-1!=t.indexOf("-END X509 CERTIFICATE-",0)||-1!=t.indexOf("-END TRUSTED CERTIFICATE-",0))return $.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf("-END PUBLIC KEY-")){var b=k(t,"PUBLIC KEY");return c._getKeyFromPublicPKCS8Hex(b)}if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var x=l(t,"RSA PRIVATE KEY");return c.getKey(x,null,"pkcs5prv")}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){var w=i(O=l(t,"DSA PRIVATE KEY"),0,[1],"02"),S=i(O,0,[2],"02"),A=i(O,0,[3],"02"),P=i(O,0,[4],"02"),E=i(O,0,[5],"02");return(R=new a).setPrivate(new d(w,16),new d(S,16),new d(A,16),new d(P,16),new d(E,16)),R}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1==t.indexOf("4,ENCRYPTED")){x=l(t,"EC PRIVATE KEY");return c.getKey(x,null,"pkcs5prv")}if(-1!=t.indexOf("-END PRIVATE KEY-"))return c.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf("-END RSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var _=c.getDecryptedKeyHex(t,e),N=new I;return N.readPKCS5PrvKeyHex(_),N}if(-1!=t.indexOf("-END EC PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var C,R=i(O=c.getDecryptedKeyHex(t,e),0,[1],"04"),T=i(O,0,[2,0],"06"),z=i(O,0,[3,0],"03").substr(2);if(void 0===f.crypto.OID.oidhex2name[T])throw"undefined OID(hex) in KJUR.crypto.OID: "+T;return(C=new s({curve:f.crypto.OID.oidhex2name[T]})).setPublicKeyHex(z),C.setPrivateKeyHex(R),C.isPublic=!1,C}if(-1!=t.indexOf("-END DSA PRIVATE KEY-")&&-1!=t.indexOf("4,ENCRYPTED")){var O;w=i(O=c.getDecryptedKeyHex(t,e),0,[1],"02"),S=i(O,0,[2],"02"),A=i(O,0,[3],"02"),P=i(O,0,[4],"02"),E=i(O,0,[5],"02");return(R=new a).setPrivate(new d(w,16),new d(S,16),new d(A,16),new d(P,16),new d(E,16)),R}if(-1!=t.indexOf("-END ENCRYPTED PRIVATE KEY-"))return c.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error("not supported argument")},void 0!==f.asn1&&f.asn1||(f.asn1={}),f.asn1.ASN1Util={},f.asn1.ASN1Util.oidHexToInt=function(t){for(var e="",r=parseInt(t.substr(0,2),16),n=(e=Math.floor(r/40)+"."+r%40,""),i=2;i<t.length;i+=2){var o=("00000000"+parseInt(t.substr(i,2),16).toString(2)).slice(-8);if(n+=o.substr(1,7),"0"==o.substr(0,1))e=e+"."+new d(n,2).toString(10),n=""}return e};var J=new function(){};function X(t){for(var e in f.crypto.Util.DIGESTINFOHEAD){var r=f.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function $(t){var e,r=J,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,l=r.getTLVbyListEx,c=r.getIdxbyList,h=r.getIdxbyListEx,p=r.getVidx,d=r.getInt,v=r.oidname,y=r.hextooidstr,g=k;try{e=f.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}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 t=u(this.hex,0,[0,0]);if("a0"==t.substr(0,2)){var e=u(t,0,[0]),r=d(e,0);if(r<0||2<r)throw new Error("malformed version field");return this.version=r+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 t=l(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return v(a(t,0,[0],"06"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(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 u(this.hex,0,[0,5+this.foffset],"30")},this.getSubjectString=function(){return this.getSubject().str},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,"%$1"),t=decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,"%$1"),t=decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyIdx=function(){return c(this.hex,0,[0,6+this.foffset],"30")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return c(this.hex,t,[1,0],"30")},this.getPublicKey=function(){return G.getKey(this.getPublicKeyHex(),null,"pkcs8pub")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],"30");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],"03",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],"30"),i=new f.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=c(a,0,[0,7,0],"30"),o=n(a,e)}else{a=k(t);var u=c(a,0,[0,3,0,0],"06");if("2a864886f70d01090e"!=i(a,u))return void(this.aExtInfo=new Array);e=c(a,0,[0,3,0,1,0],"30"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var l=0;l<o.length;l++){var h={critical:!1},f=0;3===n(a,o[l]).length&&(h.critical=!0,f=1),h.oid=r.hextooidstr(s(a,o[l],[0],"06"));var d=c(a,o[l],[1+f]);h.vidx=p(a,d),this.aExtInfo.push(h)}},this.getExtInfo=function(t){var e=this.aExtInfo,r=t;if(t.match(/^[0-9.]+$/)||(r=f.asn1.x509.OID.name2oid(t)),""!==r)for(var n=0;n<e.length;n++)if(e[n].oid===r)return e[n]},this.getExtBasicConstraints=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("basicConstraints");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:"basicConstraints"};if(e&&(n.critical=!0),"3000"===t)return n;if("30030101ff"===t)return n.cA=!0,n;if("30060101ff02"===t.substr(0,12)){var s=i(t,10),a=parseInt(s,16);return n.cA=!0,n.pathLen=a,n}throw new Error("hExtV parse error: "+t)},this.getExtKeyUsage=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("keyUsage");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:"keyUsage"};return e&&(n.critical=!0),n.names=this.getExtKeyUsageString(t).split(","),n},this.getExtKeyUsageBin=function(t){if(void 0===t){var e=this.getExtInfo("keyUsage");if(void 0===e)return"";t=o(this.hex,e.vidx)}if(8!=t.length&&10!=t.length)throw new Error("malformed key usage value: "+t);var r="000000000000000"+parseInt(t.substr(6),16).toString(2);return 8==t.length&&(r=r.slice(-8)),10==t.length&&(r=r.slice(-16)),""==(r=r.replace(/0+$/,""))&&(r="0"),r},this.getExtKeyUsageString=function(t){for(var e=this.getExtKeyUsageBin(t),r=new Array,n=0;n<e.length;n++)"1"==e.substr(n,1)&&r.push($.KEYUSAGE_NAME[n]);return r.join(",")},this.getExtSubjectKeyIdentifier=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("subjectKeyIdentifier");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:"subjectKeyIdentifier"};e&&(n.critical=!0);var s=i(t,0);return n.kid={hex:s},n},this.getExtAuthorityKeyIdentifier=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("authorityKeyIdentifier");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var s={extname:"authorityKeyIdentifier"};e&&(s.critical=!0);for(var a=n(t,0),u=0;u<a.length;u++){var l=t.substr(a[u],2);if("80"===l&&(s.kid={hex:i(t,a[u])}),"a1"===l){var c=o(t,a[u]),h=this.getGeneralNames(c);s.issuer=h[0].dn}"82"===l&&(s.sn={hex:i(t,a[u])})}return s},this.getExtExtKeyUsage=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("extKeyUsage");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var s={extname:"extKeyUsage",array:[]};e&&(s.critical=!0);for(var a=n(t,0),u=0;u<a.length;u++)s.array.push(v(i(t,a[u])));return s},this.getExtExtKeyUsageName=function(){var t=this.getExtInfo("extKeyUsage");if(void 0===t)return t;var e=new Array,r=o(this.hex,t.vidx);if(""===r)return e;for(var s=n(r,0),a=0;a<s.length;a++)e.push(v(i(r,s[a])));return e},this.getExtSubjectAltName=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("subjectAltName");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:"subjectAltName",array:[]};return e&&(n.critical=!0),n.array=this.getGeneralNames(t),n},this.getExtIssuerAltName=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("issuerAltName");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var n={extname:"issuerAltName",array:[]};return e&&(n.critical=!0),n.array=this.getGeneralNames(t),n},this.getGeneralNames=function(t){for(var e=n(t,0),r=[],i=0;i<e.length;i++){var s=this.getGeneralName(o(t,e[i]));void 0!==s&&r.push(s)}return r},this.getGeneralName=function(t){var e=t.substr(0,2),r=i(t,0),n=z(r);return"81"==e?{rfc822:n}:"82"==e?{dns:n}:"86"==e?{uri:n}:"87"==e?{ip:q(r)}:"a4"==e?{dn:this.getX500Name(r)}:void 0},this.getExtSubjectAltName2=function(){var t,e,r,s=this.getExtInfo("subjectAltName");if(void 0===s)return s;for(var a=new Array,u=o(this.hex,s.vidx),l=n(u,0),c=0;c<l.length;c++)r=u.substr(l[c],2),t=i(u,l[c]),"81"===r&&(e=T(t),a.push(["MAIL",e])),"82"===r&&(e=T(t),a.push(["DNS",e])),"84"===r&&(e=$.hex2dn(t,0),a.push(["DN",e])),"86"===r&&(e=T(t),a.push(["URI",e])),"87"===r&&(e=q(t),a.push(["IP",e]));return a},this.getExtCRLDistributionPoints=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("cRLDistributionPoints");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:"cRLDistributionPoints",array:[]};e&&(i.critical=!0);for(var s=n(t,0),a=0;a<s.length;a++){var u=o(t,s[a]);i.array.push(this.getDistributionPoint(u))}return i},this.getDistributionPoint=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=t.substr(r[i],2),a=o(t,r[i]);"a0"==s&&(e.dpname=this.getDistributionPointName(a))}return e},this.getDistributionPointName=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=t.substr(r[i],2),a=o(t,r[i]);"a0"==s&&(e.full=this.getGeneralNames(a))}return e},this.getExtCRLDistributionPointsURI=function(){var t=this.getExtInfo("cRLDistributionPoints");if(void 0===t)return t;for(var e=new Array,r=n(this.hex,t.vidx),i=0;i<r.length;i++)try{var o=T(s(this.hex,r[i],[0,0,0],"86"));e.push(o)}catch(t){}return e},this.getExtAIAInfo=function(){var t=this.getExtInfo("authorityInfoAccess");if(void 0===t)return t;for(var e={ocsp:[],caissuer:[]},r=n(this.hex,t.vidx),i=0;i<r.length;i++){var o=s(this.hex,r[i],[0],"06"),a=s(this.hex,r[i],[1],"86");"2b06010505073001"===o&&e.ocsp.push(T(a)),"2b06010505073002"===o&&e.caissuer.push(T(a))}return e},this.getExtAuthorityInfoAccess=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("authorityInfoAccess");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:"authorityInfoAccess",array:[]};e&&(i.critical=!0);for(var u=n(t,0),l=0;l<u.length;l++){var c=a(t,u[l],[0],"06"),h=T(s(t,u[l],[1],"86"));if("2b06010505073001"==c)i.array.push({ocsp:h});else{if("2b06010505073002"!=c)throw new Error("unknown method: "+c);i.array.push({caissuer:h})}}return i},this.getExtCertificatePolicies=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("certificatePolicies");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:"certificatePolicies",array:[]};e&&(i.critical=!0);for(var s=n(t,0),a=0;a<s.length;a++){var u=o(t,s[a]),l=this.getPolicyInformation(u);i.array.push(l)}return i},this.getPolicyInformation=function(t){var e={},r=s(t,0,[0],"06");e.policyoid=v(r);var i=h(t,0,[1],"30");if(-1!=i){e.array=[];for(var a=n(t,i),u=0;u<a.length;u++){var l=o(t,a[u]),c=this.getPolicyQualifierInfo(l);e.array.push(c)}}return e},this.getPolicyQualifierInfo=function(t){var e={},r=s(t,0,[0],"06");if("2b06010505070201"===r){var n=a(t,0,[1],"16");e.cps=z(n)}else if("2b06010505070202"===r){var i=u(t,0,[1],"30");e.unotice=this.getUserNotice(i)}return e},this.getUserNotice=function(t){for(var e={},r=n(t,0),i=0;i<r.length;i++){var s=o(t,r[i]);"30"!=s.substr(0,2)&&(e.exptext=this.getDisplayText(s))}return e},this.getDisplayText=function(t){var e={};return e.type={"0c":"utf8",16:"ia5","1a":"vis","1e":"bmp"}[t.substr(0,2)],e.str=z(i(t,0)),e},this.getExtCRLNumber=function(t,e){var r={extname:"cRLNumber"};if(e&&(r.critical=!0),"02"==t.substr(0,2))return r.num={hex:i(t,0)},r;throw new Error("hExtV parse error: "+t)},this.getExtCRLReason=function(t,e){var r={extname:"cRLReason"};if(e&&(r.critical=!0),"0a"==t.substr(0,2))return r.code=parseInt(i(t,0),16),r;throw new Error("hExtV parse error: "+t)},this.getExtOcspNonce=function(t,e){var r={extname:"ocspNonce"};e&&(r.critical=!0);var n=i(t,0);return r.hex=n,r},this.getExtOcspNoCheck=function(t,e){var r={extname:"ocspNoCheck"};return e&&(r.critical=!0),r},this.getExtAdobeTimeStamp=function(t,e){if(void 0===t&&void 0===e){var r=this.getExtInfo("adobeTimeStamp");if(void 0===r)return;t=o(this.hex,r.vidx),e=r.critical}var i={extname:"adobeTimeStamp"};e&&(i.critical=!0);var s=n(t,0);if(s.length>1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var l=o(t,s[2]);"0101ff"==l&&(i.reqauth=!0),"010100"==l&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n<t.length;n++)for(var i=t[n],o=0;o<i.length;o++)r.push(i[o]);for(n=0;n<r.length;n++){var s=r[n],a=s.ds,u=s.value,l=s.type;if("prn"!=a&&"utf8"!=a&&"ia5"!=a)return"mixed";if("ia5"==a){if("CN"!=l)return"mixed";if(f.lang.String.isMail(u))continue;return"mixed"}if("C"==l){if("prn"==a)continue;return"mixed"}if(null==e)e=a;else if(e!==a)return"mixed"}return null==e?"prn":e},this.getX500Name=function(t){var e=this.getX500NameArray(t);return{array:e,str:this.dnarraytostr(e)}},this.getX500NameArray=function(t){for(var e=[],r=n(t,0),i=0;i<r.length;i++)e.push(this.getRDN(o(t,r[i])));return e},this.getRDN=function(t){for(var e=[],r=n(t,0),i=0;i<r.length;i++)e.push(this.getAttrTypeAndValue(o(t,r[i])));return e},this.getAttrTypeAndValue=function(t){var e={type:null,value:null,ds:null},r=n(t,0),i=s(t,r[0],[],"06"),o=s(t,r[1],[]),a=f.asn1.ASN1Util.oidHexToInt(i);return e.type=f.asn1.x509.OID.oid2atype(a),e.ds=this.HEX2STAG[t.substr(r[1],2)],"bmp"!=e.ds?e.value=T(o):e.value=function(t){return t.match(/.{4}/g).map((function(t){var e=parseInt(t.substr(0,2),16),r=parseInt(t.substr(2),16);if(0==e&r<128)return String.fromCharCode(r);if(e<8){var n=128|63&r;return T((192|(7&e)<<3|(192&r)>>6).toString(16)+n.toString(16))}n=128|(15&e)<<2|(192&r)>>6;var i=128|63&r;return T((224|(240&e)>>4).toString(16)+n.toString(16)+i.toString(16))})).join("")}(o),e},this.readCertPEM=function(t){this.readCertHex(g(t))},this.readCertHex=function(t){this.hex=t,this.getVersion();try{c(this.hex,0,[0,7],"a3"),this.parseExt()}catch(t){}},this.getParam=function(){var t={};return t.version=this.getVersion(),t.serial={hex:this.getSerialNumberHex()},t.sigalg=this.getSignatureAlgorithmField(),t.issuer=this.getIssuer(),t.notbefore=this.getNotBefore(),t.notafter=this.getNotAfter(),t.subject=this.getSubject(),t.sbjpubkey=H(this.getPublicKeyHex(),"PUBLIC KEY"),this.aExtInfo.length>0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&(-1!=h(this.hex,0,[0,"[3]"])&&(t=l(this.hex,0,[0,"[3]",0],"30")));for(var e=[],r=n(t,0),i=0;i<r.length;i++){var s=o(t,r[i]),a=this.getExtParam(s);null!=a&&e.push(a)}return e},this.getExtParam=function(t){var e=n(t,0).length;if(2!=e&&3!=e)throw new Error("wrong number elements in Extension: "+e+" "+t);var r=y(s(t,0,[0],"06")),i=!1;3==e&&"0101ff"==u(t,0,[1])&&(i=!0);var o=u(t,0,[e-1,0]),a=void 0;if("2.5.29.14"==r?a=this.getExtSubjectKeyIdentifier(o,i):"2.5.29.15"==r?a=this.getExtKeyUsage(o,i):"2.5.29.17"==r?a=this.getExtSubjectAltName(o,i):"2.5.29.18"==r?a=this.getExtIssuerAltName(o,i):"2.5.29.19"==r?a=this.getExtBasicConstraints(o,i):"2.5.29.31"==r?a=this.getExtCRLDistributionPoints(o,i):"2.5.29.32"==r?a=this.getExtCertificatePolicies(o,i):"2.5.29.35"==r?a=this.getExtAuthorityKeyIdentifier(o,i):"2.5.29.37"==r?a=this.getExtExtKeyUsage(o,i):"1.3.6.1.5.5.7.1.1"==r?a=this.getExtAuthorityInfoAccess(o,i):"2.5.29.20"==r?a=this.getExtCRLNumber(o,i):"2.5.29.21"==r?a=this.getExtCRLReason(o,i):"1.3.6.1.5.5.7.48.1.2"==r?a=this.getExtOcspNonce(o,i):"1.3.6.1.5.5.7.48.1.5"==r?a=this.getExtOcspNoCheck(o,i):"1.2.840.113583.1.1.9.1"==r&&(a=this.getExtAdobeTimeStamp(o,i)),null!=a)return a;var l={extname:r,extn:o};return i&&(l.critical=!0),l},this.findExt=function(t,e){for(var r=0;r<t.length;r++)if(t[r].extname==e)return t[r];return null},this.dnarraytostr=function(t){return"/"+t.map((function(t){return function(t){return t.map((function(t){return function(t){return t.type+"="+t.value}(t).replace(/\+/,"\\+")})).join("+")}(t).replace(/\//,"\\/")})).join("/")},this.getInfo=function(){var t,e,r,n,i=function(t){for(var e="",r=t.array,n=0;n<r.length;n++){var i=r[n];if(e+=" policy oid: "+i.policyoid+"\n",void 0!==i.array)for(var o=0;o<i.array.length;o++){var s=i.array[o];void 0!==s.cps&&(e+=" cps: "+s.cps+"\n")}}return e},o=function(t){for(var e="",r=t.array,n=0;n<r.length;n++){var i=r[n];try{void 0!==i.dpname.full[0].uri&&(e+=" "+i.dpname.full[0].uri+"\n")}catch(t){}try{void 0!==i.dname.full[0].dn.hex&&(e+=" "+$.hex2dn(i.dpname.full[0].dn.hex)+"\n")}catch(t){}}return e},s=function(t){for(var e="",r=t.array,n=0;n<r.length;n++){var i=r[n];void 0!==i.caissuer&&(e+=" caissuer: "+i.caissuer+"\n"),void 0!==i.ocsp&&(e+=" ocsp: "+i.ocsp+"\n")}return e};if(t="Basic Fields\n",t+=" serial number: "+this.getSerialNumberHex()+"\n",t+=" signature algorithm: "+this.getSignatureAlgorithmField()+"\n",t+=" issuer: "+this.getIssuerString()+"\n",t+=" notBefore: "+this.getNotBefore()+"\n",t+=" notAfter: "+this.getNotAfter()+"\n",t+=" subject: "+this.getSubjectString()+"\n",t+=" subject public key info: \n",t+=" key algorithm: "+(e=this.getPublicKey()).type+"\n","RSA"===e.type&&(t+=" n="+U(e.n.toString(16)).substr(0,16)+"...\n",t+=" e="+U(e.e.toString(16))+"\n"),null!=(r=this.aExtInfo)){t+="X509v3 Extensions:\n";for(var a=0;a<r.length;a++){var u=r[a],l=f.asn1.x509.OID.oid2name(u.oid);""===l&&(l=u.oid);var c="";if(!0===u.critical&&(c="CRITICAL"),t+=" "+l+" "+c+":\n","basicConstraints"===l){var h=this.getExtBasicConstraints();void 0===h.cA?t+=" {}\n":(t+=" cA=true",void 0!==h.pathLen&&(t+=", pathLen="+h.pathLen),t+="\n")}else if("keyUsage"===l)t+=" "+this.getExtKeyUsageString()+"\n";else if("subjectKeyIdentifier"===l)t+=" "+this.getExtSubjectKeyIdentifier().kid.hex+"\n";else if("authorityKeyIdentifier"===l){var p=this.getExtAuthorityKeyIdentifier();void 0!==p.kid&&(t+=" kid="+p.kid.hex+"\n")}else{if("extKeyUsage"===l)t+=" "+this.getExtExtKeyUsage().array.join(", ")+"\n";else if("subjectAltName"===l)t+=" "+(n=this.getExtSubjectAltName(),JSON.stringify(n.array).replace(/[\[\]\{\}\"]/g,""))+"\n";else if("cRLDistributionPoints"===l)t+=o(this.getExtCRLDistributionPoints());else if("authorityInfoAccess"===l)t+=s(this.getExtAuthorityInfoAccess());else"certificatePolicies"===l&&(t+=i(this.getExtCertificatePolicies()))}}}return t+="signature algorithm: "+this.getSignatureAlgorithmName()+"\n",t+="signature: "+this.getSignatureValueHex().substr(0,16)+"...\n"},"string"==typeof t&&(-1!=t.indexOf("-----BEGIN")?this.readCertPEM(t):f.lang.String.isHex(t)&&this.readCertHex(t))}function tt(t){return p.SHA256(t).toString()}J.getLblen=function(t,e){if("8"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0<r&&r<10?r+1:-2},J.getL=function(t,e){var r=J.getLblen(t,e);return r<1?"":t.substr(e+2,2*r)},J.getVblen=function(t,e){var r;return""==(r=J.getL(t,e))?-1:("8"===r.substr(0,1)?new d(r.substr(2),16):new d(r,16)).intValue()},J.getVidx=function(t,e){var r=J.getLblen(t,e);return r<0?r:e+2*(r+1)},J.getV=function(t,e){var r=J.getVidx(t,e),n=J.getVblen(t,e);return t.substr(r,2*n)},J.getTLV=function(t,e){return t.substr(e,2)+J.getL(t,e)+J.getV(t,e)},J.getTLVblen=function(t,e){return 2+2*J.getLblen(t,e)+2*J.getVblen(t,e)},J.getNextSiblingIdx=function(t,e){return J.getVidx(t,e)+2*J.getVblen(t,e)},J.getChildIdx=function(t,e){var r,n,i,o=J,s=[];r=o.getVidx(t,e),n=2*o.getVblen(t,e),"03"==t.substr(e,2)&&(r+=2,n-=2),i=0;for(var a=r;i<=n;){var u=o.getTLVblen(t,a);if((i+=u)<=n&&s.push(a),a+=u,i>=n)break}return s},J.getNthChildIdx=function(t,e,r){return J.getChildIdx(t,e)[r]},J.getIdxbyList=function(t,e,r,n){var i,o,s=J;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},J.getIdxbyListEx=function(t,e,r,n){var i,o,s=J;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u<o.length;u++){var l=t.substr(o[u],2);if("number"==typeof i&&!s.isContextTag(l)&&a==i||"string"==typeof i&&s.isContextTag(l,i))return s.getIdxbyListEx(t,o[u],r,n);s.isContextTag(l)||a++}return-1},J.getTLVbyList=function(t,e,r,n){var i=J,o=i.getIdxbyList(t,e,r,n);return-1==o||o>=t.length?null:i.getTLV(t,o)},J.getTLVbyListEx=function(t,e,r,n){var i=J,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},J.getVbyList=function(t,e,r,n,i){var o,s,a=J;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},J.getVbyListEx=function(t,e,r,n,i){var o,s,a=J;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),"03"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},J.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if("02"!=n&&"03"!=n)return r;var i=J.getV(t,e);return"02"==n?parseInt(i,16):function(t){try{var e=t.substr(0,2);if("00"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return"0"==i&&(i="00000000"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},J.getOID=function(t,e,r){null==r&&(r=null);try{return"06"!=t.substr(e,2)?r:function(t){if(!V(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s<i.length/2;s++)o.push(parseInt(i.substr(2*s,2),16));var a=[],u="";for(s=0;s<o.length;s++)128&o[s]?u+=M((127&o[s]).toString(2),7):(u+=M((127&o[s]).toString(2),7),a.push(new String(parseInt(u,2))),u="");var l=e.join(".");return a.length>0&&(l=l+"."+a.join(".")),l}catch(t){return null}}(J.getV(t,e))}catch(t){return r}},J.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=J.getOID(t,e,r);if(n==r)return r;var i=f.asn1.x509.OID.oid2name(n);return""==i?n:i}catch(t){return r}},J.getString=function(t,e,r){null==r&&(r=null);try{return z(J.getV(t,e))}catch(t){return r}},J.hextooidstr=function(t){var e=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a<o.length/2;a++)s.push(parseInt(o.substr(2*a,2),16));var u=[],l="";for(a=0;a<s.length;a++)128&s[a]?l+=e((127&s[a]).toString(2),7):(l+=e((127&s[a]).toString(2),7),u.push(new String(parseInt(l,2))),l="");var c=r.join(".");return u.length>0&&(c=c+"."+u.join(".")),c},J.isContextTag=function(t,e){var r,n;t=t.toLowerCase();try{r=parseInt(t,16)}catch(t){return-1}if(void 0===e)return 128==(192&r);try{return null!=e.match(/^\[[0-9]+\]$/)&&(!((n=parseInt(e.substr(1,e.length-1),10))>31)&&(128==(192&r)&&(31&r)==n))}catch(t){return!1}},J.isASN1HEX=function(t){var e=J;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},J.checkStrictDER=function(t,e,r,n,i){var o=J;if(void 0===r){if("string"!=typeof t)throw new Error("not hex string");if(t=t.toLowerCase(),!f.lang.String.isHex(t))throw new Error("not hex string");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error("L of TLV too long: idx="+e);var s=o.getVblen(t,e);if(s>n)throw new Error("value of L too long than hex: idx="+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error("V string length and L's value not the same:"+u+"/"+2*s);if(0===e&&t.length!=a.length)throw new Error("total length and TLV length unmatch:"+t.length+"!="+a.length);var l=t.substr(e,2);if("02"===l){var c=o.getVidx(t,e);if("00"==t.substr(c,2)&&t.charCodeAt(c+2)<56)throw new Error("not least zeros for DER INTEGER")}if(32&parseInt(l,16)){for(var h=o.getVblen(t,e),p=0,d=o.getChildIdx(t,e),v=0;v<d.length;v++){p+=o.getTLV(t,d[v]).length,o.checkStrictDER(t,d[v],r,n,i)}if(2*h!=p)throw new Error("sum of children's TLV length and L unmatch: "+2*h+"!="+p)}},J.oidname=function(t){var e=f.asn1;f.lang.String.isHex(t)&&(t=e.ASN1Util.oidHexToInt(t));var r=e.x509.OID.oid2name(t);return""===r&&(r=t),r},void 0!==f.asn1&&f.asn1||(f.asn1={}),void 0!==f.asn1.x509&&f.asn1.x509||(f.asn1.x509={}),f.asn1.x509.AlgorithmIdentifier={},f.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV={SHAwithRSAandMGF1:"300d06092a864886f70d01010a3000",SHA256withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040201a11a301806092a864886f70d010108300b0609608648016503040201a203020120",SHA384withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a203020130",SHA512withRSAandMGF1:"303d06092a864886f70d01010a3030a00d300b0609608648016503040203a11a301806092a864886f70d010108300b0609608648016503040203a203020140"},f.asn1.x509.OID=new function(t){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(t){if(void 0!==this.objCache[t])return this.objCache[t];if(void 0===this.name2oidList[t])throw"Name of ObjectIdentifier not defined: "+t;var e=this.name2oidList[t],r=new f.asn1.DERObjectIdentifier({oid:e});return this.objCache[t]=r,r},this.atype2obj=function(t){if(void 0!==this.objCache[t])return this.objCache[t];var e;if(t.match(/^\d+\.\d+\.[0-9.]+$/))e=t;else if(void 0!==this.atype2oidList[t])e=this.atype2oidList[t];else{if(void 0===this.name2oidList[t])throw"AttributeType name undefined: "+t;e=this.name2oidList[t]}var r=new f.asn1.DERObjectIdentifier({oid:e});return this.objCache[t]=r,r}},f.asn1.x509.OID.oid2name=function(t){var e=f.asn1.x509.OID.name2oidList;for(var r in e)if(e[r]==t)return r;return""},f.asn1.x509.OID.oid2atype=function(t){var e=f.asn1.x509.OID.atype2oidList;for(var r in e)if(e[r]==t)return r;return t},f.asn1.x509.OID.name2oid=function(t){if(t.match(/^[0-9.]+$/))return t;var e=f.asn1.x509.OID.name2oidList;return void 0===e[t]?"":e[t]},I.getPosArrayOfChildrenFromHex=function(t){return J.getChildIdx(t,0)},I.getHexValueArrayOfChildrenFromHex=function(t){var e,r=J.getV,n=r(t,(e=I.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),l=r(t,e[6]),c=r(t,e[7]),h=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,l,c,h),e},I.prototype.readPrivateKeyFromPEMString=function(t){var e=k(t),r=I.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},I.prototype.readPKCS5PrvKeyHex=function(t){var e=I.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},I.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,l=J,c=l.getVbyListEx;if(!1===l.isASN1HEX(t))throw new Error("not ASN.1 hex string");try{e=c(t,0,[2,0,1],"02"),r=c(t,0,[2,0,2],"02"),n=c(t,0,[2,0,3],"02"),i=c(t,0,[2,0,4],"02"),o=c(t,0,[2,0,5],"02"),s=c(t,0,[2,0,6],"02"),a=c(t,0,[2,0,7],"02"),u=c(t,0,[2,0,8],"02")}catch(t){throw new Error("malformed PKCS#8 plain RSA private key")}this.setPrivateEx(e,r,n,i,o,s,a,u)},I.prototype.readPKCS5PubKeyHex=function(t){var e=J,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error("keyHex is not ASN.1 hex string");var n=e.getChildIdx(t,0);if(2!==n.length||"02"!==t.substr(n[0],2)||"02"!==t.substr(n[1],2))throw new Error("wrong hex for PKCS#5 public key");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},I.prototype.readPKCS8PubKeyHex=function(t){var e=J;if(!1===e.isASN1HEX(t))throw new Error("not ASN.1 hex string");if("06092a864886f70d010101"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error("not PKCS8 RSA public key");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},I.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new $).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)},I.prototype.verify=function(t,e){if(null==(e=e.toLowerCase()).match(/^[0-9a-f]+$/))return!1;var r=N(e,16),n=this.n.bitLength();if(r.bitLength()>n)return!1;var i=this.doPublic(r).toString(16);if(i.length+3!=n/4)return!1;var o=X(i.replace(/^1f+00/,""));if(0==o.length)return!1;var s,a=o[0];return o[1]==(s=t,f.crypto.Util.hashString(s,a))},I.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=N(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=X(this.doPublic(r).toString(16).replace(/^1f+00/,""));return 0!=n.length&&(n[0],n[1]==t)},I.prototype.verifyPSS=function(t,e,r,n){var i=function(t){return f.crypto.Util.hashHex(t,r)}(O(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},I.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new d(e,16),s=function(t){return f.crypto.Util.hashHex(t,r)},a=z(t),u=a.length,l=this.n.bitLength()-1,c=Math.ceil(l/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=c-u-2;else if(n<-2)throw new Error("invalid salt length");if(c<u+n+2)throw new Error("data too long");var h=this.doPublic(o).toByteArray();for(i=0;i<h.length;i+=1)h[i]&=255;for(;h.length<c;)h.unshift(0);if(188!==h[c-1])throw new Error("encoded message does not end in 0xbc");var p=(h=String.fromCharCode.apply(String,h)).substr(0,c-u-1),v=h.substr(p.length,u),y=65280>>8*c-l&255;if(0!=(p.charCodeAt(0)&y))throw new Error("bits beyond keysize not zero");var g=pss_mgf1_str(v,p.length,s),m=[];for(i=0;i<p.length;i+=1)m[i]=p.charCodeAt(i)^g.charCodeAt(i);m[0]&=~y;var b=c-u-n-2;for(i=0;i<b;i+=1)if(0!==m[i])throw new Error("leftmost octets not zero");if(1!==m[b])throw new Error("0x01 marker not found");return v===z(s(O("\0\0\0\0\0\0\0\0"+a+String.fromCharCode.apply(String,m.slice(-n)))))},I.SALT_LEN_HLEN=-1,I.SALT_LEN_MAX=-2,I.SALT_LEN_RECOVER=-2,$.hex2dn=function(t,e){void 0===e&&(e=0);var r=new $;return J.getTLV(t,e),r.getX500Name(t).str},$.hex2rdn=function(t,e){if(void 0===e&&(e=0),"31"!==t.substr(e,2))throw new Error("malformed RDN");for(var r=new Array,n=J.getChildIdx(t,e),i=0;i<n.length;i++)r.push($.hex2attrTypeValue(t,n[i]));return(r=r.map((function(t){return t.replace("+","\\+")}))).join("+")},$.hex2attrTypeValue=function(t,e){var r=J,n=r.getV;if(void 0===e&&(e=0),"30"!==t.substr(e,2))throw new Error("malformed attribute type and value");var i=r.getChildIdx(t,e);2!==i.length||t.substr(i[0],2);var o=n(t,i[0]),s=f.asn1.ASN1Util.oidHexToInt(o);return f.asn1.x509.OID.oid2atype(s)+"="+z(n(t,i[1]))},$.getPublicKeyFromCertHex=function(t){var e=new $;return e.readCertHex(t),e.getPublicKey()},$.getPublicKeyFromCertPEM=function(t){var e=new $;return e.readCertPEM(t),e.getPublicKey()},$.getPublicKeyInfoPropOfCertPEM=function(t){var e,r,n=J.getVbyList,i={};return i.algparam=null,(e=new $).readCertPEM(t),r=e.getPublicKeyHex(),i.keyhex=n(r,0,[1],"03").substr(2),i.algoid=n(r,0,[0,0],"06"),"2a8648ce3d0201"===i.algoid&&(i.algparam=n(r,0,[0,1],"06")),i},$.KEYUSAGE_NAME=["digitalSignature","nonRepudiation","keyEncipherment","dataEncipherment","keyAgreement","keyCertSign","cRLSign","encipherOnly","decipherOnly"];var et,rt=[(et=new $,et.readCertPEM(function(){var t=113,e=126,r=0,n="";return arguments[r].split(n).map((function(n){return n.charCodeAt(r)>e?n:String.fromCharCode((n.charCodeAt(r)+t)%e)})).join(n)}(":::::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:::::")),et)];function nt(t,e){var r=t.getIssuerHex();if(r===t.getSubjectHex())return t.verifySignature(t.getPublicKey());var n=function(t,e){for(var r=0,n=e;r<n.length;r++){var i=n[r];if(i.getSubjectHex()===t)return i}}(r,e);return!!n&&(!1!==t.verifySignature(n.getPublicKey())&&nt(n,e))}function it(t){return t.getIssuerHex()!==t.getSubjectHex()&&nt(t,rt)}!function(t){var e=new $;"string"==typeof t?e.readCertPEM(t):e.readCertHex(t.hex);var r=it(e);rt.push(e)}(function(){var t=113,e=126,r=0,n="";return arguments[r].split(n).map((function(n){return n.charCodeAt(r)>e?n:String.fromCharCode((n.charCodeAt(r)+t)%e)})).join(n)}(":::::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 ot=function(t,e){return ot=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},ot(t,e)};function st(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}ot(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}var at=function(){return at=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var i in e=arguments[r])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},at.apply(this,arguments)};function ut(t,e,r){if(r||2===arguments.length)for(var n,i=0,o=e.length;i<o;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}var lt,ct,ht,ft,pt=function(){function t(t,e,r){this.x=t,this.y=e,this.z=r}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},t.prototype.set=function(t,e,r){return this.x=t,this.y=e,this.z=r,this},t.prototype.fromArray=function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this},t.prototype.multiplyScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this},t.prototype.subVectors=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z},t.prototype.cross=function(t){var e=this.x,r=this.y,n=this.z;return this.x=r*t.z-n*t.y,this.y=n*t.x-e*t.z,this.z=e*t.y-r*t.x,this},t.prototype.crossVectors=function(t,e){var r=t.x,n=t.y,i=t.z,o=e.x,s=e.y,a=e.z;return this.x=n*a-i*s,this.y=i*o-r*a,this.z=r*s-n*o,this},t.prototype.clone=function(){return new t(this.x,this.y,this.z)},t}(),dt=function(){function t(t,e,r,n){this.extents=t,this.startIndex=e,this.endIndex=r,this.level=n,this.node0=null,this.node1=null}return t.prototype.clearShapes=function(){this.startIndex=-1,this.endIndex=-1},t}(),vt=(lt=new pt(0,0,0),ct=new pt(0,0,0),ht=new pt(0,0,0),ft=new pt(0,0,0),function(t,e,r,n,i,o){ct.subVectors(e,t),ht.subVectors(r,t),ft.crossVectors(ct,ht);var s,a=i.dot(ft);if(a>0){if(o)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}lt.subVectors(n,t);var u=s*i.dot(ht.crossVectors(lt,ht));if(u<0)return null;var l=s*i.dot(ct.cross(lt));if(l<0)return null;if(u+l>a)return null;var c=-s*lt.dot(ft);if(c<0)return null;var h=c/a;return new pt(0,0,0).copy(i).multiplyScalar(h).add(n)}),yt=function(t,e){this.min=t,this.max=e};function gt(t,e,r){var n=new yt(0,0);e.x>=0?(n.min=(r.extents[0]-t.x)*e.x,n.max=(r.extents[3]-t.x)*e.x):(n.min=(r.extents[3]-t.x)*e.x,n.max=(r.extents[0]-t.x)*e.x);var i=new yt(0,0);if(e.y>=0?(i.min=(r.extents[1]-t.y)*e.y,i.max=(r.extents[4]-t.y)*e.y):(i.min=(r.extents[4]-t.y)*e.y,i.max=(r.extents[1]-t.y)*e.y),n.min>i.max||i.min>n.max)return!1;i.min>n.min&&(n.min=i.min),i.max<n.max&&(n.max=i.max);var o=new yt(0,0);return e.z>=0?(o.min=(r.extents[2]-t.z)*e.z,o.max=(r.extents[5]-t.z)*e.z):(o.min=(r.extents[5]-t.z)*e.z,o.max=(r.extents[2]-t.z)*e.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=[0,0,0,0,0,0];function bt(t,e,r,n,i){if(r>=n)return mt;var o,s=r,a=6*t[s],u=e[a],l=e[a+1],c=e[a+2],h=e[a+3],f=e[a+4],p=e[a+5];for(++s;s<n;s++)(o=e[a=6*t[s]])<u&&(u=o),(o=e[a+1])<l&&(l=o),(o=e[a+2])<c&&(c=o),(o=e[a+3])>h&&(h=o),(o=e[a+4])>f&&(f=o),(o=e[a+5])>p&&(p=o);return[u-i,l-i,c-i,h+i,f+i,p+i]}var xt=function(t,e,r){this.triangle=t,this.triangleIndex=e,this.intersectionPoint=r},wt=function(){function t(t,e){this.trianglesArray=t,this.maxTrianglesPerNode=e;var r,n,i,o,s,a,u=t.length/9,l=new Uint32Array(u),c=new Float32Array(6*u);r=o=t[0],n=s=t[1],i=a=t[2];for(var h=0,f=void 0,p=void 0,d=void 0,v=void 0,y=void 0,g=void 0,m=void 0,b=void 0,x=void 0;h<u;h++)b=6*h,f=v=t[x=9*h],(m=t[x+3])<f?f=m:m>v&&(v=m),(m=t[x+6])<f?f=m:m>v&&(v=m),f<r&&(r=f),v>o&&(o=v),p=y=t[x+1],(m=t[x+4])<p?p=m:m>y&&(y=m),(m=t[x+7])<p?p=m:m>y&&(y=m),p<n&&(n=p),y>s&&(s=y),d=g=t[x+2],(m=t[x+5])<d?d=m:m>g&&(g=m),(m=t[x+8])<d?d=m:m>g&&(g=m),d<i&&(i=d),g>a&&(a=g),l[h]=h,c[b]=f,c[b+1]=p,c[b+2]=d,c[b+3]=v,c[b+4]=y,c[b+5]=g;this.offsetArray=l,this.bboxArray=c,this.rootNode=new dt([r,n,i,o,s,a],0,u,0),this.nodesToSplit=[],u>this.maxTrianglesPerNode&&this.nodesToSplit.push(this.rootNode),this.splitNode()}return t.prototype.splitNode=function(){var t,e=this.offsetArray,r=this.bboxArray,n=this.maxTrianglesPerNode,i=this.nodesToSplit;function o(t){var o=t.startIndex,s=t.endIndex,a=t.extents,u=[0,1,2],l=[a[3]-a[0],a[4]-a[1],a[5]-a[2]];u.sort((function(t,e){return l[e]-l[t]}));for(var c=0;c<3;c++){for(var h=u[c],f=a[h]+a[h+3],p=o,d=s-1,v=null;p<d;)null===v?r[6*e[p]+h]+r[6*e[p]+h+3]<f?p++:v=e[p]:(r[6*e[d]+h]+r[6*e[d]+h+3]>=f||(e[p]=e[d],e[d]=v,v=null,p++),d--);if(!(p<=o)){var y=bt(e,r,o,p,1e-6),g=new dt(y,o,p,t.level+1);t.node0=g,g.endIndex-g.startIndex>n&&i.push(g);var m=bt(e,r,p,s,1e-6),b=new dt(m,p,s,t.level+1);return t.node1=b,b.endIndex-b.startIndex>n&&i.push(b),void t.clearShapes()}}}for(;t=i.shift();)o(t)},t.prototype.intersectRay=function(t,e,r){for(var n=[this.rootNode],i=[],o=[],s=new pt(1/e.x,1/e.y,1/e.z);n.length>0;){var a=n.pop();if(gt(t,s,a)){a.node0&&n.push(a.node0),a.node1&&n.push(a.node1);for(var u=a.startIndex;u<a.endIndex;u++)i.push(this.offsetArray[u])}}for(var l=new pt(0,0,0),c=new pt(0,0,0),h=new pt(0,0,0),f=new pt(t.x,t.y,t.z),p=new pt(e.x,e.y,e.z),d=(u=0,void 0),v=void 0;u<i.length;u++){v=9*(d=i[u]),l.set(this.trianglesArray[v],this.trianglesArray[v+1],this.trianglesArray[v+2]),c.set(this.trianglesArray[v+3],this.trianglesArray[v+3+1],this.trianglesArray[v+3+2]),h.set(this.trianglesArray[v+6],this.trianglesArray[v+6+1],this.trianglesArray[v+6+2]);var y=vt(l,c,h,f,p,r);if(y){var g=new xt([l.clone(),c.clone(),h.clone()],d,y);o.push(g)}}return o},t.prototype.dispose=function(){this.trianglesArray=new Float32Array,this.bboxArray=new Float32Array,this.offsetArray=new Uint32Array,this.rootNode=null,this.nodesToSplit.length=0},t}(),St=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.floorIndex=0,e.needsRender=!0,e}return st(e,t),e}(s.Mesh);function At(t,e){for(var r=0,n=t.children;r<n.length;r++){var i=n[r];!1!==e(i)&&At(i,e)}}function Pt(){}var Et=new s.BoxBufferGeometry(1,1,1,1,1);Et.deleteAttribute("uv"),Et.deleteAttribute("normal"),Et.groups=[],Et.scale(-1,1,1);var _t=new s.ShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\nvarying vec3 worldPosition;\nvoid main() {\n vec4 transform = vec4(position, 1.0);\n worldPosition = (modelMatrix * transform).xyz;\n gl_Position = projectionMatrix * modelViewMatrix * transform;\n}\n",fragmentShader:"\nuniform samplerCube map;\nvarying vec3 worldPosition;\nvoid main() {\n gl_FragColor = textureCube(map, worldPosition);\n}\n",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:s.NoBlending,lights:!1,toneMapped:!1,fog:!1}),Nt=new s.Scene;Nt.matrixAutoUpdate=!1;var Ct,It=new s.Mesh(Et,_t);function Rt(t,e,r){_t.uniforms.map.value=t;var n=r.autoClear;r.autoClear=!1;var i=new s.CubeCamera(.1,2,e);i.matrixAutoUpdate=!1,i.update(r,Nt),r.autoClear=n,_t.uniforms.map.value=null}It.matrixAutoUpdate=!1,Nt.add(It);var Dt=null!==(Ct=Math.SQRT1_2)&&void 0!==Ct?Ct:Math.sqrt(2),Tt={up:new s.Quaternion(Dt,0,0,Dt),down:new s.Quaternion(-Dt,0,0,Dt),left:new s.Quaternion(0,Dt,0,Dt),right:new s.Quaternion(0,-Dt,0,Dt),front:new s.Quaternion(0,0,0,1),back:new s.Quaternion(0,1,0,0)},zt=function(){var t=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),e=new Float32Array([0,0,1,0,0,1,1,1]),r=new Uint8Array([0,1,2,1,3,2]),n=new s.BufferGeometry;return n.setAttribute("position",new s.BufferAttribute(t,3)),n.setAttribute("uv",new s.BufferAttribute(e,2)),n.setIndex(new s.BufferAttribute(r,1)),n}(),Ot=[];function Bt(t){t.uniforms.map.value=null,Ot.push(t)}var Ht,kt=(Ht="$$FIVE_EVENT$$","undefined"==typeof Symbol?"$Symbol<".concat(Ht,">$"):Symbol(Ht));function qt(t){return t[kt]||(t[kt]={}),t[kt]}var Vt=function(){function t(){}return t.prototype.hasListener=function(t){var e=qt(this);return e&&e[t]&&e[t].length>0},t.prototype.on=function(t,e,r){var n=this,i=qt(this);return i[t]||(i[t]=[]),i[t].push([e,r||!1]),function(){return n.off(t,e)}},t.prototype.once=function(t,e){return this.on(t,e,!0)},t.prototype.off=function(t,e){if(void 0!==t){var r,n=qt(this);if(n[t]||(n[t]=[]),void 0!==e){for(var i=0;i<n[t].length&&n[t][i][0]!==e;i++);i<n[t].length&&n[t].splice(i,1)}else n[t].length=0}else(r=this)[kt]||delete r[kt]},t.prototype.emit=function(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];for(var n=!1,i=qt(this),o=i[t]||[],s=0,a=o.slice();s<a.length;s++){var u=a[s],l=u[0],c=u[1],h=void 0!==c&&c,f=l.apply(void 0,e);h&&this.off(t,l),!1===f&&(n=!0)}return n},t}(),Ut="undefined"!=typeof performance&&void 0!==performance.timing?performance.timing.navigationStart:Date.now(),Mt="undefined"!=typeof performance?function(){return Ut+performance.now()}:function(){return Date.now()};function Ft(t){Object.freeze(t);var e="function"==typeof t,r=Object.prototype.hasOwnProperty;return Object.getOwnPropertyNames(t).forEach((function(n){!r.call(t,n)||e&&("caller"===n||"callee"===n||"arguments"===n)||null===t[n]||"object"!=typeof t[n]&&"function"!=typeof t[n]||Object.isFrozen(t[n])||Ft(t[n])})),t}var Kt=/^([^.]+)(\.([^.]+))*$/;function Lt(t,e){return Kt.test(t)&&Kt.test(e)&&function(t,e){if("*"===t)return!0;var r=t.split(".").reverse(),n=e.split(".").reverse();if(r.length<=1)return t===e;for(var i=0;i<r.length;i++)if(r[i]!==n[i])return!1;return!0}(t,e)}var jt=Ft(JSON.parse(function(){var t=113,e=126,r=0,n="";return arguments[r].split(n).map((function(n){return n.charCodeAt(r)>e?n:String.fromCharCode((n.charCodeAt(r)+t)%e)})).join(n)}("h/y|pnyu|/9/xr;p|z/9/yvn{wvn;p|z/9/rnyrr;p|z/9/rnyrr;p{/9/rnyrr;w}/9/uv;p|z/9/uv;p{/9/ywpq{;p|z/9/rnyrr:pq{;p|z/9/rnyrr:pq{;p{/9/pnyp{|qr;vr/j")));!function(t){function e(e,r,n){return t.call(this,"[NETWORK]: request proxy error(type: ".concat(r,", reason: ").concat(n,"): ").concat(e))||this}st(e,t)}(Error),function(t){function e(e,r,n){var i=t.call(this,"[NETWORK]: response error(type: ".concat(r,", status: ").concat(n,"): ").concat(e))||this;return i.httpStatus=n,i}st(e,t)}(Error),function(t){function e(e,r){return t.call(this,"[NETWORK]: request abort(type: ".concat(r,"): ").concat(e))||this}st(e,t)}(Error),function(t){function e(e,r,n){return t.call(this,"[NETWORK]: request timeout(type: ".concat(r,", timeout: ").concat(n,"ms): ").concat(e))||this}st(e,t)}(Error),function(t){function e(e,r,n){return t.call(this,"[NETWORK]: request forbidden(type: ".concat(r,", reason: ").concat(n,"): ").concat(e))||this}st(e,t)}(Error),function(t){function e(){return null!==t&&t.apply(this,arguments)||this}st(e,t)}(Vt);var Yt=function(){if("undefined"!=typeof window){var t=window;return t.requestAnimationFrame||t.mozRequestAnimationFrame||t.webkitRequestAnimationFrame||t.msRequestAnimationFrame||function(t){return setTimeout(t,16)}}return function(t){return setTimeout(t,16)}}(),Qt=16,Zt=function(){function t(){this.frames=[],this.stoped=!1,this.time=Mt(),this.context=null,this.loop=this.loop.bind(this),this.loop()}return Object.defineProperty(t,"shared",{get:function(){return this.sharedInstance||(this.sharedInstance=new t),this.sharedInstance},enumerable:!1,configurable:!0}),t.getFrameTime=function(){return Qt},t.prototype.loop=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if(!this.stoped){var r=Mt(),n=r-this.time;this.time=r;var i=[];Qt=n;for(var o=0,s=this.frames;o<s.length;o++){var a=s[o];if(a.delay>0)a.delay=a.delay-1;else{try{a.callback.apply(a,ut([r,n],t,!1))}catch(t){console.error(t)}a.once&&i.push(a)}}i.length>0&&(this.frames=this.frames.filter((function(t){return-1===i.indexOf(t)}))),this.requestAnimationFrame(this.loop)}},t.prototype.setContext=function(t){this.cancelAnimationFrame(this.requestId),this.context=t,this.requestId=this.requestAnimationFrame(this.loop)},t.prototype.getContext=function(){return this.context},t.prototype.requestAnimationFrame=function(t){return this.context?this.context.requestAnimationFrame(t):Yt(t)},t.prototype.cancelAnimationFrame=function(t){this.context?this.context.cancelAnimationFrame(t):function(t){var e;if("undefined"!=typeof window){var r=window;e=r.cancelAnimationFrame||r.mozCancelAnimationFrame||r.webkitCancelAnimationFrame||r.msCancelAnimationFrame||function(t){return window.clearTimeout(t)}}else e=function(t){return window.clearTimeout(t)};e(t)}(this.loop),this.requestId=null},t.prototype.remove=function(t){var e=this.frames.indexOf(t);e>=0&&this.frames.splice(e,1)},t.prototype.add=function(t,e,r,n){var i=this;void 0===e&&(e=!1),void 0===r&&(r=0),void 0===n&&(n=5);var o={callback:t,once:e,delay:r,order:n};return this.frames.push(o),this.frames.sort((function(t,e){return t.order-e.order})),function(){return i.remove(o)}},t.prototype.disponse=function(){this.stoped=!0,this.frames.length=0},t}(),Wt=[],Gt=0;Zt.shared.add((function(){if(Gt=10,Wt.length)for(var t=0,e=Wt.splice(0,Gt);t<e.length;t++){var r=e[t];Gt--,r()}})),new s.WebGLRenderTarget(1,1),new s.OrthographicCamera(-1,1,1,-1,0,1).matrixAutoUpdate=!1;var Jt=new s.BufferGeometry;Jt.setAttribute("position",new s.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3));var Xt=new s.Mesh(Jt);Xt.matrixAutoUpdate=!1;var $t=new s.Scene;$t.add(Xt),$t.matrixAutoUpdate=!1,new s.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 ",depthTest:!1,depthWrite:!1,stencilWrite:!1,colorWrite:!1,blending:s.NoBlending,lights:!1,toneMapped:!1}),new s.RawShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\n void main() {\n gl_Position = vec4(0, 0, 0, 0);\n }\n ",fragmentShader:"\n uniform samplerCube map;\n void main() {\n gl_FragColor = textureCube(map, vec3(0, 0, 0));\n }\n ",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:s.NoBlending,lights:!1,toneMapped:!1});var te=function(){function t(t,e,r,n,i){this.tileTree=e,this.tileSources=r,this.options=n,this.renderer=i,this.name="",this.needsRender=!1,this.disposed=!1,this.loadedCubeNodes=new Set,this.loadingCubeNodes=new Set,this.baseCubeTexture=null,this._cubeRenderTarget=null,this.textures=[],this.baseCubeTexture=t}return Object.defineProperty(t.prototype,"cubeRenderTarget",{get:function(){return this._cubeRenderTarget},set:function(t){var e,r,n,i,o;if(null===t)throw new Error("cannot set cubeRenderTarget to null.");t.width!==this.options.textureSize&&t.setSize(this.options.textureSize,this.options.textureSize),t.texture.format=null!==(e=this.options.format)&&void 0!==e?e:s.RGBAFormat,t.texture.minFilter=null!==(r=this.options.minFilter)&&void 0!==r?r:s.LinearFilter,t.texture.magFilter=null!==(n=this.options.magFilter)&&void 0!==n?n:s.LinearFilter,t.texture.wrapS=null!==(i=this.options.wrapS)&&void 0!==i?i:s.ClampToEdgeWrapping,t.texture.wrapT=null!==(o=this.options.wrapT)&&void 0!==o?o:s.ClampToEdgeWrapping,this.baseCubeTexture&&(Rt(this.baseCubeTexture,t,this.renderer),this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this._cubeRenderTarget&&Rt(this._cubeRenderTarget.texture,t,this.renderer),this._cubeRenderTarget=t},enumerable:!1,configurable:!0}),t.prototype.requestTile=function(t){var e,r,n,i,o,a,u=this,l=this.tileSources.filter((function(e){return e.level===t.level}))[0];if(l){var c=l.size,h=Math.pow(2,t.level)*t.position.y,f=Math.pow(2,t.level)*t.position.x,p="".concat((null!==(n=null===(r=null===(e=this.options.imageURL)||void 0===e?void 0:e.options)||void 0===r?void 0:r.key)&&void 0!==n?n:"pano.0").replace(/^pano/,"pano_tile"),".").concat(t.face,".").concat(t.level,".").concat(h,".").concat(f),d=at(at({},null!==(o=null===(i=this.options.imageURL)||void 0===i?void 0:i.options)&&void 0!==o?o:{basisLoaderInitialized:!1,key:"unknown"}),{key:p,size:c*t.size===this.options.tileImageSize?void 0:this.options.tileImageSize,quality:void 0,cut:[c*t.position.x,c*t.position.y,c*t.size,c*t.size]});this.loadingCubeNodes.add(t),this.options.textureLoader.loadTexture(l[t.face],{imageURL:{transform:null===(a=this.options.imageURL)||void 0===a?void 0:a.transform,options:at({},d)},format:s.RGBAFormat,viaAjax:!1}).then((function(e){u.disposed?e.body.dispose():(u.textures.push({face:t.face,level:t.level,position:t.position,size:new s.Vector2(t.size,t.size),texture:e.body}),u.loadedCubeNodes.add(t))})).catch(Pt).then((function(){u.disposed||u.loadingCubeNodes.delete(t)}))}else this.loadedCubeNodes.add(t)},t.prototype.update=function(t,e){var r=this;if(!this.disposed){var n=[];At(this.tileTree,(function(i){return!r.loadingCubeNodes.has(i)&&(!(i.level>e)&&(!!t.intersectsBox(i.box)&&(r.loadedCubeNodes.has(i)?void 0:(n.push(i),!1))))}));for(var i=0,o=n;i<o.length;i++){var a=o[i];this.requestTile(a)}if(this.cubeRenderTarget&&this.textures.length){var u=this.textures.splice(0,4);!function(t,e,r){var n=new s.Scene,i=new s.Group;i.scale.set(1,1,-1),n.add(i);for(var o=[],a=0,u=t;a<u.length;a++){var l=u[a],c=Ot.pop()||new s.ShaderMaterial({uniforms:{map:{value:null}},vertexShader:"\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",fragmentShader:"\nuniform sampler2D map;\nvarying vec2 vUv;\nvoid main() {\n gl_FragColor = texture2D(map, vUv);\n}\n",depthTest:!1,depthWrite:!1,stencilWrite:!1,blending:s.NoBlending,lights:!1,toneMapped:!1,fog:!1});o.push(c),c.uniforms.map.value=l.texture;var h=new s.Group,f=new s.Mesh(zt,c);f.position.set(l.position.x+l.size.x/2-.5,1-(l.position.y+l.size.y/2)-.5,-.5),f.scale.set(l.size.x,l.size.y,1),h.quaternion.copy(Tt[l.face]),h.add(f),i.add(h)}var p=r.autoClear;r.autoClear=!1;var d=new s.CubeCamera(.1,2,e);d.matrixAutoUpdate=!1,d.update(r,n),r.autoClear=p;for(var v=0,y=o;v<y.length;v++)Bt(c=y[v])}(u,this.cubeRenderTarget,this.renderer),this.needsRender=!0;for(var l=0,c=u;l<c.length;l++){c[l].texture.dispose()}}}},Object.defineProperty(t.prototype,"tilePending",{get:function(){return this.loadingCubeNodes.size},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"texture",{get:function(){if(!this._cubeRenderTarget)throw new Error("cubeRenderTarget never set.");return this._cubeRenderTarget.texture},enumerable:!1,configurable:!0}),t.prototype.dispose=function(){if(!this.disposed){this.disposed=!0,this.baseCubeTexture&&(this.baseCubeTexture.dispose(),this.baseCubeTexture=null),this.loadingCubeNodes.clear(),this.loadedCubeNodes.clear();for(var t=0,e=this.textures;t<e.length;t++){e[t].texture.dispose()}this.textures.length=0}},t}(),ee=function(){var t=113,e=126,r=0,n="";return arguments[r].split(n).map((function(n){return n.charCodeAt(r)>e?n:String.fromCharCode((n.charCodeAt(r)+t)%e)})).join(n)}("n\bv{t-rp@-[|znyHn\bv{t-rp@-cvr]|vv|{Hn\bv{t-rpA-|yq]|vv|{H0v{pyqr-Ip|zz|{K0v{pyqr-Il}nlrrK0v{pyqr-I?l}nlrrK0v{pyqr-Ip|y|l}nlrrK0v{pyqr-Iunq|zn}l}nlrrK|vq-znv{56-\n--0v{pyqr-IlrrK--0v{pyqr-I?lrrK--0v{pyqr-Ip|y|lrrK--0v{pyqr-Iortv{{|znylrrK--0v{pyqr-Iqrsny{|znylrrK--rpA-n{s|zrq-J-rpA5}|vv|{9->;=6H--rpA-z]|vv|{-J-z|qrycvrZnv-7-n{s|zrqH--[|zny-J-{|znyv\tr5n{s|zrq[|zny6H--cvr]|vv|{-J-:z]|vv|{;\b\tH--|yq]|vv|{-J-z|qryZnv-7-n{s|zrqH--tyl]|vv|{-J-}|wrpv|{Znv-7-z|qrycvrZnv-7-n{s|zrqH--0v{pyqr-Iunq|zn}lrrK\f"),re=function(){var t=113,e=126,r=0,n="";return arguments[r].split(n).map((function(n){return n.charCodeAt(r)>e?n:String.fromCharCode((n.charCodeAt(r)+t)%e)})).join(n)}("0qrsv{r-OYNPXlP\\Y\\_-rpA5=;=EC9-=;>=C9-=;>AF9->;=60qrsv{r-aNb-C;?E@>EB?{vs|z-nz}yrPor-}n{|=lzn}H{vs|z-znA-}n{|=lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|=lyzv{n{prZn}H0r{qvs{vs|z-nz}yrPor-}n{|>lzn}H{vs|z-znA-}n{|>lznvH0vs-qrsv{rq5b`RlYbZV[N[PR6--{vs|z-nz}yrPor-}n{|>lyzv{n{prZn}H0r{qvs{vs|z-rp@-qvssrH{vs|z-rp@-rzvvrH{vs|z-rp@-}rpynH{vs|z-sy|n-uv{v{rH{vs|z-sy|n-r}|rH{vs|z-sy|n-|}npv\bH{vs|z-sy|n-z|qryNy}unH{vs|z-sy|n-}|trH{vs|z-sy|n-sy||V{qrH0vs-qrsv{rq5b`RlNYYlP\\Y\\_6{vs|z-rp@-z|qryP|y|V{s|H0r{qvs0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6--{vs|z-rp?-}n{|cvqr|lv\trH--{vs|z-znA-}n{|cvqr|lznvH--{vs|z-sy|n-}n{|cvqr|lny}unH--{vs|z-nz}yr?Q-}n{|cvqr|lzn}H0r{qvs0vs-qrsv{rq5b`RlPYV]SY\\\\_6--{vs|z-rp@-sy||V{s|H0r{qvsn\bv{t-rpA-|yq]|vv|{H0vs-qrsv{rq5b`RlPbaR_6--0vs-[bZlPYV]]V[TlN__NflYR[TaU-K-=----{vs|z-sy|n-pyv}}rSy||h[bZlPYV]]V[TlO\\ejH----{vs|z-nz}yr?Q-pyv}}r]yn{rarrH--0r{qvs0r{qvs0vs-[bZlSY\\\\_lP\\b[a-K-=--{vs|z-nz}yr?Q-ty|onySy||V{s|arrH0r{qvs0v{pyqr-Ip|zz|{K0v{pyqr-I}npxv{tK0v{pyqr-Ip|y|l}nlsntzr{K0v{pyqr-Il}nlsntzr{K0v{pyqr-I?l}nlsntzr{K0v{pyqr-Izn}l}nlsntzr{K0v{pyqr-Iny}unzn}l}nlsntzr{K0v{pyqr-In|zn}l}nlsntzr{K0v{pyqr-Iyvtuzn}l}nlsntzr{K0v{pyqr-Irzvvrzn}l}nlsntzr{K0v{pyqr-Ir{zn}l}nlsntzr{K0v{pyqr-Itnqvr{zn}l}nlsntzr{K0v{pyqr-Is|tl}nlsntzr{K0v{pyqr-IoqsK0v{pyqr-Iyvtul}nlortv{K0v{pyqr-Iyvtul}u|{tl}nlsntzr{K0v{pyqr-Iunq|zn}l}nlsntzr{Krp?-|P||q5rp@-rp|6-\n--sy|n--J-yr{tu5rp|6H--sy|n-urn-J-np|5rp|;\b-<-6H--sy|n-}uv-J-nn{5rp|;9-rp|;\t6H--r{-rp?5=;B-8-}uv-<-aNb9-urn-<-]V6H\f|vq-znv{56-\n--0vs-qrsv{rq5b`RlNYYlP\\Y\\_6----tylSntP|y|-J-rpA5z|qryP|y|V{s|;9z|qryP|y|V{s|;t9z|qryP|y|V{s|;o9>;=6H----r{H--0r{qvsvs-5q|5cvr]|vv|{9-[|zny6-I-=;=6-\n----qvpnqH--\f--<<前置裁切计算------0vs-qrsv{rq5b`RlPbaR_6----rpA-}yn{rH-------s|5-v{-v-J-=H-v-I-[bZlPYV]]V[TlO\\eH-v886\n------o||y-pyv}}rq-J-rH------v{-pr{Sy||V{qr-J-v{5pyv}}rSy||hvj6H------<<-s|-5-v{-w-J-=H-w-I-CH-w-88-6-\n------<<---}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-w6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H------<<---pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------<<-\f--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8->6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-?6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-@6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-A6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH--------}yn{r-J-rr?Q5pyv}}r]yn{rarr9-rp?5sy|n5v-7-C-8-B6-<-sy|n5[bZlPYV]]V[TlN__NflYR[TaU69-=;B6-6H--------pyv}}rq-J-5-q|5-cvr]|vv|{9-}yn{r;\b\t-6-K-}yn{r;-6-33-pyv}}rqH------rp?-sy||bH------sy||b;-J-sy|n5pr{Sy||V{qr6-<-sy|n5[bZlSY\\\\_lP\\b[a6H------sy||b;\b-J-=;BH------rpA-lsy||V{s|H------lsy||V{s|-J-rr?Q5ty|onySy||V{s|arr9-sy||b6H------------o||y-v{antrSy||-J-|yq]|vv|{;\b-I-lsy||V{s|;-33-|yq]|vv|{;\b-K-lsy||V{s|;tH------pyv}}rq-J-5pr{Sy||V{qr-JJ-:>-\v\v-v{antrSy||6-33-pyv}}rqH------vs5pyv}}rq6-\n--------qvpnqH------\f----\f--0r{qvs--<<楼层切割计算--0vs-qrsv{rq5b`RlPYV]SY\\\\_6----vs-5|yq]|vv|{;\b-I-sy||V{s|;-\v\v-|yq]|vv|{;\b-K-sy||V{s|;t6-\n------qvpnqH----\f--0r{qvs--rpA-qvssrP|y|-J-rpA5qvssr;to9-|}npv\b6H--_rsyrprqYvtu-rsyrprqYvtu-J-_rsyrprqYvtu5rp@5=;=69-rp@5=;=69-rp@5=;=69-rp@5=;=66H--rp@-|nyRzvvr_nqvn{pr-J-rzvvrH--0v{pyqr-Izn}lsntzr{K--0v{pyqr-Ip|y|lsntzr{K--0v{pyqr-Iny}unzn}lsntzr{K--0v{pyqr-Iny}unrlsntzr{K--0v{pyqr-I}rpynzn}lsntzr{K--0v{pyqr-I{|znylsntzr{lortv{K--0v{pyqr-I{|znylsntzr{lzn}K--0v{pyqr-Irzvvrzn}lsntzr{K--0v{pyqr-Iyvtul}u|{tlsntzr{K--0v{pyqr-Iyvtulsntzr{lortv{K--<<-调整曝光值--vnqvn{pr-J-vnqvn{pr-7-r}|rH--0v{pyqr-Iyvtulsntzr{lzn}K--0v{pyqr-Iyvtulsntzr{lr{qK--0v{pyqr-In|zn}lsntzr{K--<<-减少方向光对模型的影响--rp@-|t|v{tYvtu-J-5rsyrprqYvtu;qvrpQvssr-7-=;?6-8----rsyrprqYvtu;v{qvrpQvssr-8----rsyrprqYvtu;v{qvrp`}rpyn-8----|nyRzvvr_nqvn{prH--<<-修复黑色面片的问题--vs-5|t|v{tYvtu;-K-=;=-\v\v-|t|v{tYvtu;t-K-=;=-\v\v-|t|v{tYvtu;o-K-=;=6-\n----tylSntP|y|-J-rpA5|t|v{tYvtu9-qvssrP|y|;n6H--\f-ryr-\n----tylSntP|y|-J-rpA5OYNPXlP\\Y\\_;\b\t9-qvssrP|y|;n6H--\f--rp@-}n{|=a|crr-J-5|yq]|vv|{;\b\t-:-}n{|=lznvh@j;\b\t6-7-zn@5}n{|=lznv6H--rp@-}n{|>a|crr-J-5|yq]|vv|{;\b\t-:-}n{|>lznvh@j;\b\t6-7-zn@5}n{|>lznv6H--rpA-}n{|P|y|H--rpA-}n{|=P|y|-J-rrPor5}n{|=lzn}9-}n{|=a|crr6H--rpA-}n{|>P|y|-J-rrPor5}n{|>lzn}9-}n{|>a|crr6H--0vs-qrsv{rq5b`RlYbZV[N[PR6----}n{|=P|y|;n-J->;=-:-rrPor5}n{|=lyzv{n{prZn}9-}n{|=a|crr6;H----}n{|>P|y|;n-J->;=-:-rrPor5}n{|>lyzv{n{prZn}9-}n{|>a|crr6;H--0r{qvs--0vs-qrsv{rq5b`RlOYNPXla_N[`VaV\\[6----sy|n-oynpx]|tr-J-np|5:?;=-7-}|tr-8->;=6H----}n{|P|y|-J-zv5}n{|=P|y|9-OYNPXlP\\Y\\_9-zv{5>;=9-oynpx]|tr66H----}n{|P|y|-J-zv5}n{|P|y|9-}n{|>P|y|9-zn5=;=9-oynpx]|tr-:-?;=66H--0ryr----}n{|P|y|-J-zv5}n{|=P|y|9-}n{|>P|y|9-}|tr6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\lcVQR\\6----rp@-pnzrna|crr-J-|yq]|vv|{;\b\t-:-pnzrn]|vv|{H----rpA-zn}P||q-J-rpA5pnzrna|crr9->;=6-7-}n{|cvqr|lznvH----rp?--J-rp?5------=;B-8-zn}P||q;-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;9------=;B-:-zn}P||q;\b-<-zn}P||q;\t-<-}n{|cvqr|lv\tr;\b----6H----rpA-vqr|P|y|-J-rr?Q5}n{|cvqr|lzn}9-6H----sy|n-znpu-J-5>;=-:-r}5=;=9-zn}P||q;\t66-7-5>;=-:-r}5=;B9-no5;-:-=;B666-7-5>;=-:-r}5=;B9-no5;\b-:-=;B666H----sy|n-ny}un-J-pynz}5=;=9->;=9-B;=-7-5>;=-:-pynz}5qvn{pr59-rp?5=;B9-=;B66-<-=;BB-9-=;=9->;=666H----}n{|P|y|-J-zv5}n{|P|y|9-vqr|P|y|9-znpu-7-ny}un-7-}n{|cvqr|lny}un6H--0r{qvs--0vs-qrsv{rq5b`Rl]N[\\l\\]NPVaf6----tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H----tylSntP|y|;n-J-|}npv\bH--0ryr----tylSntP|y|-J-rpA5tylSntP|y|;to9-|}npv\b6H----tylSntP|y|-J-zv5}n{|P|y|9-tylSntP|y|9-z|qryNy}un6H--0r{qvs\f"),ne=new s.WebGLCubeRenderTarget(1).texture;ne.name="EMPTY_TEXTURE";var ie=Object.assign({modelAlpha:new s.Uniform(0),progress:new s.Uniform(0),pano0_map:new s.Uniform(ne),pano0_luminanceMap:new s.Uniform(null),pano0_matrix:new s.Uniform(new s.Matrix4),pano1_map:new s.Uniform(ne),pano1_luminanceMap:new s.Uniform(null),pano1_matrix:new s.Uniform(new s.Matrix4),floorIndex:new s.Uniform(-1),floorInfo:new s.Uniform(null),clipperPlanesArray:new s.Uniform(new Float32Array),clipperPlanesTexture:new s.Uniform(null),clipperFloors:new s.Uniform([]),modelColorInfo:new s.Uniform(null),globalFloorInfo:new s.Uniform([]),globalFloorInfoTexture:new s.Uniform(null)},{exposure:new s.Uniform(1),emissive:new s.Uniform(new s.Color(0)),emissiveMap:new s.Uniform(null),specular:new s.Uniform(new s.Color(1118481)),specularMap:new s.Uniform(null),normalMap:new s.Uniform(null),bumpMap:new s.Uniform(null),shininess:new s.Uniform(30)},s.UniformsUtils.clone(s.UniformsLib.common),s.UniformsUtils.clone(s.UniformsLib.lights)),oe=function(t){function e(e){void 0===e&&(e={});var r,n,i,o,a,u,l,c,h,f=this;f=t.call(this,{vertexShader:ee,fragmentShader:re,uniforms:s.UniformsUtils.clone(ie),defines:{USE_MAP:!0,USE_UV:!0,USE_LUMINANCE:!1,USE_PANO_OPACITY:!1,USE_BLACK_TRANSITION:!1,USE_PANO_VIDEO:!1,USE_ALL_COLOR:!1,USE_CLIPFLOOR:!1,USE_CUTER:!1,NUM_FLOOR_COUNT:0,NUM_CLIPPING_ARRAY_LENGTH:0,NUM_CLIPPING_BOX:0},blending:s.NoBlending,lights:!0})||this;var p=null,d=null;return Object.defineProperties(f,{pano0:{get:function(){return p},set:function(t){p=t,null===t?(this.uniforms.pano0_map.value=ne,this.uniforms.pano0_luminanceMap.value=null,this.uniforms.pano0_matrix.value.identity()):(this.uniforms.pano0_map.value=t.map instanceof te?t.map.texture:t.map,this.uniforms.pano0_luminanceMap.value=t.luminanceMap instanceof te?t.luminanceMap.texture:t.luminanceMap,this.uniforms.pano0_matrix.value.copy(t.matrix));var e=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==e&&(this.defines.USE_LUMINANCE=e,this.needsUpdate=!0)}},pano1:{get:function(){return d},set:function(t){d=t,null===t?(this.uniforms.pano1_map.value=ne,this.uniforms.pano1_luminanceMap.value=null,this.uniforms.pano1_matrix.value.identity()):(this.uniforms.pano1_map.value=t.map instanceof te?t.map.texture:t.map,this.uniforms.pano1_luminanceMap.value=t.luminanceMap instanceof te?t.luminanceMap.texture:t.luminanceMap,this.uniforms.pano1_matrix.value.copy(t.matrix));var e=null!==this.uniforms.pano0_luminanceMap.value&&null!==this.uniforms.pano1_luminanceMap.value;this.defines.USE_LUMINANCE!==e&&(this.defines.USE_LUMINANCE=e,this.needsUpdate=!0)}},modelAlpha:{get:function(){return this.uniforms.modelAlpha.value},set:function(t){this.uniforms.modelAlpha.value=t}},progress:{get:function(){return this.uniforms.progress.value},set:function(t){this.uniforms.progress.value=t}},useBlackTransition:{get:function(){return this.defines.USE_BLACK_TRANSITION},set:function(t){this.defines.USE_BLACK_TRANSITION!==t&&(this.defines.USE_BLACK_TRANSITION=t,this.needsUpdate=!0)}},modelColorInfo:{get:function(){return this.uniforms.modelColorInfo.value},set:function(t){this.uniforms.modelColorInfo.value=t;var e=null!==t;this.defines.USE_ALL_COLOR!==e&&(this.defines.USE_ALL_COLOR=e,this.needsUpdate=!0)}},opacity:{get:function(){return this.uniforms.opacity.value},set:function(t){this.uniforms.opacity.value=t;var e=t<1?s.NormalBlending:s.NoBlending;e!==this.blending&&(this.blending=e,this.needsUpdate=!0)}},floorIndex:{get:function(){return this.uniforms.floorIndex.value},set:function(t){this.uniforms.floorIndex.value=t}},floorInfo:{get:function(){return this.uniforms.floorInfo.value},set:function(t){var e,r=this.defines.USE_CLIPFLOOR;t&&!t.equals(new s.Vector3(0,0,0))?(e=!0,this.uniforms.floorInfo.value=t):(e=!1,this.uniforms.floorInfo.value=null),r!==e&&(this.defines.USE_CLIPFLOOR=e,this.needsUpdate=!0)}},clippers:{get:function(){return this._clippers},set:function(t){this._clippers=t}},clipperPlanesArray:{get:function(){return this.uniforms.clipperPlanesArray.value},set:function(t){var e=!1;if(t instanceof Float32Array&&t.length>0&&t.length%6==0){var r=t.length/4;!0!==this.defines.USE_CUTER&&(this.defines.USE_CUTER=!0,e=!0),this.defines.NUM_CLIPPING_ARRAY_LENGTH!==r&&(this.defines.NUM_CLIPPING_ARRAY_LENGTH=r,e=!0),this.defines.NUM_CLIPPING_BOX!==r/6&&(this.defines.NUM_CLIPPING_BOX=r/6,e=!0),this.uniforms.clipperPlanesArray.value=t;var n=new s.DataTexture(t,r,1,s.RGBAFormat,s.FloatType);n.wrapS=s.ClampToEdgeWrapping,n.wrapT=s.ClampToEdgeWrapping,n.minFilter=s.NearestFilter,n.magFilter=s.NearestFilter,this.uniforms.clipperPlanesTexture.value&&this.uniforms.clipperPlanesTexture.value.dispose(),this.uniforms.clipperPlanesTexture.value=n}else!1!==this.defines.USE_CUTER&&(this.defines.USE_CUTER=!1,e=!0),0!==this.defines.NUM_CLIPPING_ARRAY_LENGTH&&(this.defines.NUM_CLIPPING_ARRAY_LENGTH=0,e=!0),0!==this.defines.NUM_CLIPPING_BOX&&(this.defines.NUM_CLIPPING_BOX=0,e=!0),this.uniforms.clipperPlanesArray.value=new Float32Array,this.uniforms.clipperPlanesTexture.value=null;e&&(this.needsUpdate=!0)}},clipperFloors:{get:function(){return this.uniforms.clipperFloors.value},set:function(t){this.uniforms.clipperFloors.value=t}},globalFloorInfo:{get:function(){return this.uniforms.globalFloorInfo.value},set:function(t){var e=this.defines.NUM_FLOOR_COUNT;if(t&&e!==t.length){this.defines.NUM_FLOOR_COUNT=t.length,this.uniforms.globalFloorInfo.value=t;var r=[];t.forEach((function(t){r.push(t.x),r.push(t.y),r.push(t.z)}));var n=t.length,i=new s.DataTexture(new Float32Array(r),n,1,s.RGBFormat,s.FloatType);i.wrapS=s.ClampToEdgeWrapping,i.wrapT=s.ClampToEdgeWrapping,i.minFilter=s.NearestFilter,i.magFilter=s.NearestFilter,this.uniforms.globalFloorInfoTexture.value&&this.uniforms.globalFloorInfoTexture.value.dispose(),this.uniforms.globalFloorInfoTexture.value=i,this.needsUpdate=!0}}}}),f.pano0=null!==(r=e.pano0)&&void 0!==r?r:null,f.pano1=null!==(n=e.pano1)&&void 0!==n?n:null,f.modelAlpha=null!==(i=e.modelAlpha)&&void 0!==i?i:1,f.progress=null!==(o=e.progress)&&void 0!==o?o:0,f.useBlackTransition=null!==(a=e.useBlackTransition)&&void 0!==a&&a,f.modelColorInfo=null!==(u=e.modelColorInfo)&&void 0!==u?u:null,f.opacity=null!==(l=e.opacity)&&void 0!==l?l:1,f.originOpacity=1,f.floorIndex=null!==(c=e.floorIndex)&&void 0!==c?c:-1,f.floorInfo=null!==(h=e.floorInfo)&&void 0!==h?h:null,f.clippers=null,f.clipperPlanesArray=null,f.clipperFloors=null,f.globalFloorInfo=null,f}return st(e,t),e}(s.ShaderMaterial);function se(t){return new Promise((function(e,r){(/^https\:/.test(t)?u.default:a.default).get(t,(function(t){var n=[];t.on("data",(function(t){return n.push(t)})),t.on("end",(function(){e(Buffer.concat(n).buffer)})),t.on("error",(function(t){return r(t)}))})).on("error",(function(t){return r(t)}))}))}const ae=l.Reader,ue=l.util,le=l.roots["@REALSEE/FIVE:five/server/model/proto/pbm.proto"]||(l.roots["@REALSEE/FIVE:five/server/model/proto/pbm.proto"]={}),ce=le.Model=(()=>{function t(t){if(this.chunks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.chunks=ue.emptyArray,t.prototype.createAt=ue.Long?ue.Long.fromBits(0,0,!0):0,t.prototype.description="",t.decode=function(t,e){t instanceof ae||(t=ae.create(t));let r=void 0===e?t.len:t.pos+e,n=new le.Model;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 1:n.chunks&&n.chunks.length||(n.chunks=[]),n.chunks.push(le.Chunk.decode(t,t.uint32()));break;case 2:n.createAt=t.uint64();break;case 3:n.description=t.string();break;default:t.skipType(7&e)}}return n},t})();le.Chunk=(()=>{function t(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.vertices=null,t.prototype.faces=null,t.prototype.name="",t.prototype.texture="",t.decode=function(t,e){t instanceof ae||(t=ae.create(t));let r=void 0===e?t.len:t.pos+e,n=new le.Chunk;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 1:n.vertices=le.Vertices.decode(t,t.uint32());break;case 2:n.faces=le.Faces.decode(t,t.uint32());break;case 3:n.name=t.string();break;case 4:n.texture=t.string();break;default:t.skipType(7&e)}}if(!n.hasOwnProperty("vertices"))throw ue.ProtocolError("missing required 'vertices'",{instance:n});if(!n.hasOwnProperty("faces"))throw ue.ProtocolError("missing required 'faces'",{instance:n});if(!n.hasOwnProperty("name"))throw ue.ProtocolError("missing required 'name'",{instance:n});return n},t})(),le.Vertices=(()=>{function t(t){if(this.xyz=[],this.uvs=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.xyz=ue.emptyArray,t.prototype.uvs=ue.emptyArray,t.decode=function(t,e){t instanceof ae||(t=ae.create(t));let r=void 0===e?t.len:t.pos+e,n=new le.Vertices;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 1:if(n.xyz&&n.xyz.length||(n.xyz=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.xyz.push(t.float())}else n.xyz.push(t.float());break;case 2:if(n.uvs&&n.uvs.length||(n.uvs=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.uvs.push(t.float())}else n.uvs.push(t.float());break;default:t.skipType(7&e)}}return n},t})(),le.Faces=(()=>{function t(t){if(this.indices=[],this.normals=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.indices=ue.emptyArray,t.prototype.normals=ue.emptyArray,t.decode=function(t,e){t instanceof ae||(t=ae.create(t));let r=void 0===e?t.len:t.pos+e,n=new le.Faces;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 1:if(n.indices&&n.indices.length||(n.indices=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.indices.push(t.uint32())}else n.indices.push(t.uint32());break;case 2:if(n.normals&&n.normals.length||(n.normals=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.normals.push(t.float())}else n.normals.push(t.float());break;default:t.skipType(7&e)}}return n},t})();var he=(new s.Matrix4).set(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1).elements;function fe(t){var e=t.match(/(group|floor)-?(\d+)/);return e?parseInt(e[2],10):0}function pe(t){var e=t.match(/(chunk)-?(\d+)/);return e?parseInt(e[2],10):0}function de(t){var e,r;return 1e6*fe(t.name)+1e3*pe(t.name)+(e=t.name,(r=e.match(/(sub)-?(\d+)/))?parseInt(r[2],10):0)}function ve(t){for(var e=function(t){for(var e,r,n,i="number"==typeof t.createAt?t.createAt:null===t.createAt||void 0===t.createAt?0:t.createAt.toNumber(),o=null!==(e=t.description)&&void 0!==e?e:"",s=[],a=!0,u=0,l=t.chunks;u<l.length;u++)if(!(rt=l[u]).faces.normals||0===rt.faces.normals.length){a=!1;break}for(var c=t.chunks.sort((function(t,e){return de(t)-de(e)})),h=[],f=0,p=c;f<p.length;f++){var d=fe((rt=p[f]).name);h[d]||(h[d]=[]),h[d].push(rt)}for(var v=0;v<h.length;v++){var y=h[v];if(y)if(a){for(var g=0,m=0;m<y.length;m++)g+=(rt=y[m]).faces.indices.length;for(var b=3*g,x=2*g,w=3*g,S=new ArrayBuffer(4*b+4*x+4*w),A=new Float32Array(S,0,b),P=new Float32Array(S,4*b,x),E=new Float32Array(S,4*b+4*x,w),_=[],N=[1/0,1/0,1/0,-1/0,-1/0,-1/0],C=0,I=0;I<y.length;I++){var R=[1/0,1/0,1/0,-1/0,-1/0,-1/0],D=(rt=y[I]).vertices.xyz,T=rt.vertices.uvs,z=rt.faces.indices,O=rt.faces.normals,B=z.length;for(m=0;m<B;m++){var H=z[m],k=D[3*H],q=D[3*H+1],V=D[3*H+2],U=1/(he[3]*k+he[7]*q+he[11]*V+he[15]),M=(he[0]*k+he[4]*q+he[8]*V+he[12])*U,F=(he[1]*k+he[5]*q+he[9]*V+he[13])*U,K=(he[2]*k+he[6]*q+he[10]*V+he[14])*U;A[3*C+3*m]=M,A[3*C+3*m+1]=F,A[3*C+3*m+2]=K,P[2*C+2*m]=T[2*H],P[2*C+2*m+1]=T[2*H+1];var L=3*Math.floor(m/3),j=O[L],Y=O[L+1],Q=O[L+2],Z=1/(he[3]*j+he[7]*Y+he[11]*Q+he[15]),W=(he[0]*j+he[4]*Y+he[8]*Q+he[12])*Z,G=(he[1]*j+he[5]*Y+he[9]*Q+he[13])*Z,J=(he[2]*j+he[6]*Y+he[10]*Q+he[14])*Z;E[3*C+3*m]=W,E[3*C+3*m+1]=G,E[3*C+3*m+2]=J,M<R[0]&&(R[0]=M),F<R[1]&&(R[1]=F),K<R[2]&&(R[2]=K),M>R[3]&&(R[3]=M),F>R[4]&&(R[4]=F),K>R[5]&&(R[5]=K)}R[0]<N[0]&&(N[0]=R[0]),R[1]<N[1]&&(N[1]=R[1]),R[2]<N[2]&&(N[2]=R[2]),R[3]>N[3]&&(N[3]=R[3]),R[4]>N[4]&&(N[4]=R[4]),R[5]>N[5]&&(N[5]=R[5]),_.push({materialIndex:I,name:rt.name,chunkName:pe(rt.name),start:C,count:rt.faces.indices.length,texture:null!==(r=rt.texture)&&void 0!==r?r:void 0}),C+=B}s.push({createAt:i,description:o,floorIndex:v,vertices:A,uvs:P,indices:null,normals:E,groups:_,extents:N})}else{g=0;var X=0;for(m=0;m<y.length;m++)X+=(rt=y[m]).vertices.xyz.length/3,g+=rt.faces.indices.length;b=3*X,x=2*X,w=3*X;var $=g,tt=(S=new ArrayBuffer(4*b+4*x+4*w+4*$),A=new Float32Array(S,0,b),P=new Float32Array(S,4*b,x),E=new Float32Array(S,4*b+4*x,w),new Uint32Array(S,4*b+4*x+4*w,$)),et=(_=[],N=[1/0,1/0,1/0,-1/0,-1/0,-1/0],0);for(C=0,I=0;I<y.length;I++){R=[1/0,1/0,1/0,-1/0,-1/0,-1/0],D=(rt=y[I]).vertices.xyz,T=rt.vertices.uvs,z=rt.faces.indices;var rt,nt=D.length/3;for(B=z.length,m=0;m<nt;m++)k=D[3*m],q=D[3*m+1],V=D[3*m+2],U=1/(he[3]*k+he[7]*q+he[11]*V+he[15]),M=(he[0]*k+he[4]*q+he[8]*V+he[12])*U,F=(he[1]*k+he[5]*q+he[9]*V+he[13])*U,K=(he[2]*k+he[6]*q+he[10]*V+he[14])*U,A[3*C+3*m]=M,A[3*C+3*m+1]=F,A[3*C+3*m+2]=K,P[2*C+2*m]=T[2*m],P[2*C+2*m+1]=T[2*m+1],M<R[0]&&(R[0]=M),F<R[1]&&(R[1]=F),K<R[2]&&(R[2]=K),M>R[3]&&(R[3]=M),F>R[4]&&(R[4]=F),K>R[5]&&(R[5]=K);for(R[0]<N[0]&&(N[0]=R[0]),R[1]<N[1]&&(N[1]=R[1]),R[2]<N[2]&&(N[2]=R[2]),R[3]>N[3]&&(N[3]=R[3]),R[4]>N[4]&&(N[4]=R[4]),R[5]>N[5]&&(N[5]=R[5]),m=0;m<B;m++)tt[et+m]=C+z[m];_.push({materialIndex:I,name:rt.name,chunkName:pe(rt.name),start:et,count:rt.faces.indices.length,texture:null!==(n=rt.texture)&&void 0!==n?n:void 0}),C+=nt,et+=B}for(m=0;m<g;m+=3){var it,ot,st,at,ut,lt,ct,ht,ft,pt,dt,vt,yt,gt,mt,bt;j=void 0,Y=void 0,Q=void 0,it=3*tt[m],ot=3*tt[m+1],st=3*tt[m+2],at=A[it],ut=A[it+1],lt=A[it+2],ct=A[ot],ht=A[ot+1],ft=A[ot+2],pt=A[st],j=(vt=A[st+1]-ht)*(bt=lt-ft)-(yt=A[st+2]-ft)*(mt=ut-ht),Y=yt*(gt=at-ct)-(dt=pt-ct)*bt,Q=dt*mt-vt*gt,E[it]+=j,E[it+1]+=Y,E[it+2]+=Q,E[ot]+=j,E[ot+1]+=Y,E[ot+2]+=Q,E[st]+=j,E[st+1]+=Y,E[st+2]+=Q}s.push({createAt:i,description:o,floorIndex:v,vertices:A,uvs:P,indices:tt,normals:E,groups:_,extents:N})}}return s}(t),r=0,n="",i=[],o=0,a=e;o<a.length;o++){var u=a[o],l=u.createAt,c=u.description,h=u.floorIndex,f=u.vertices,p=u.uvs,d=u.indices,v=u.normals,y=u.groups,g=u.extents,m=new s.Box3;m.min.x=g[0],m.min.y=g[1],m.min.z=g[2],m.max.x=g[3],m.max.y=g[4],m.max.z=g[5];var b=new s.BufferGeometry;b.setAttribute("position",new s.BufferAttribute(f,3)),b.setAttribute("uv",new s.BufferAttribute(p,2)),b.setAttribute("normal",new s.BufferAttribute(v,3)),d&&b.setIndex(new s.BufferAttribute(d,1)),b.boundingBox=m,b.boundingSphere=m.getBoundingSphere(new s.Sphere);for(var x=0,w=y;x<w.length;x++){var S=w[x];b.addGroup(S.start,S.count,S.materialIndex)}for(var A=[],P=0,E=y;P<E.length;P++){S=E[P];var _=new oe;A.push(_),_.defines.USE_MAP=!1,_.uniforms.diffuse.value=new s.Color(16777215),_.uniforms.floorIndex.value=h}var N=new St(b,A);N.name="model_floor_"+h,N.floorIndex=h,N.userData.createAt=l,N.userData.description=c,r=l,n=c,i.push(N)}return{createAt:r,description:n,objects:i}}var ye={};function ge(t){return Array.prototype.reduce.call(t,(function(t,e,r){return t|e<<8*r}),0)}function me(t){for(var e=new Uint8Array(t),r=ge(e.slice(0,4)),n=[],i=[],o=4+4*r,s=0;s<r;s++)i[s]=ge(e.slice(4+4*s,8+4*s)),n[s]=s===r-1?e.subarray(o,o+i[s]):e.slice(o,o+i[s]),o+=i[s];return Promise.resolve(function(t){for(var e,r=[],n=t.length,i=function(n){var i={data:t[n],offset:0,readByte:function(){return this.data[this.offset++]}},o=i.data.length,s={data:[],offset:0,writeByte:function(t){var e=Math.floor(this.offset/o);this.data[e]||(this.data[e]=new Uint8Array(o)),this.data[e][this.offset%o]=t,this.offset++}};ye.decompressFile(i,s),e=new Uint8Array(s.offset);for(var a=0;a<s.offset;a++)e[a]=s.data[Math.floor(a/o)][a%o];r.push(e)},o=0;o<n;o++)i(o);return r}(n))}ye.OutWindow=function(){this._windowSize=0},ye.OutWindow.prototype.create=function(t){this._buffer&&this._windowSize===t||(this._buffer=[]),this._windowSize=t,this._pos=0,this._streamPos=0},ye.OutWindow.prototype.flush=function(){var t=this._pos-this._streamPos;if(0!==t){for(;t--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},ye.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},ye.OutWindow.prototype.setStream=function(t){this.releaseStream(),this._stream=t},ye.OutWindow.prototype.init=function(t){t||(this._streamPos=0,this._pos=0)},ye.OutWindow.prototype.copyBlock=function(t,e){var r=this._pos-t-1;for(r<0&&(r+=this._windowSize);e--;)r>=this._windowSize&&(r=0),this._buffer[this._pos++]=this._buffer[r++],this._pos>=this._windowSize&&this.flush()},ye.OutWindow.prototype.putByte=function(t){this._buffer[this._pos++]=t,this._pos>=this._windowSize&&this.flush()},ye.OutWindow.prototype.getByte=function(t){var e=this._pos-t-1;return e<0&&(e+=this._windowSize),this._buffer[e]},ye.RangeDecoder=function(){},ye.RangeDecoder.prototype.setStream=function(t){this._stream=t},ye.RangeDecoder.prototype.releaseStream=function(){this._stream=null},ye.RangeDecoder.prototype.init=function(){var t=5;for(this._code=0,this._range=-1;t--;)this._code=this._code<<8|this._stream.readByte()},ye.RangeDecoder.prototype.decodeDirectBits=function(t){for(var e,r=0,n=t;n--;)this._range>>>=1,e=this._code-this._range>>>31,this._code-=this._range&e-1,r=r<<1|1-e,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return r},ye.RangeDecoder.prototype.decodeBit=function(t,e){var r=t[e],n=(this._range>>>11)*r;return(2147483648^this._code)<(2147483648^n)?(this._range=n,t[e]+=2048-r>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=n,this._code-=n,t[e]-=r>>>5,0==(4278190080&this._range)&&(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},ye.initBitModels=function(t,e){for(;e--;)t[e]=1024},ye.BitTreeDecoder=function(t){this._models=[],this._numBitLevels=t},ye.BitTreeDecoder.prototype.init=function(){ye.initBitModels(this._models,1<<this._numBitLevels)},ye.BitTreeDecoder.prototype.decode=function(t){for(var e=1,r=this._numBitLevels;r--;)e=e<<1|t.decodeBit(this._models,e);return e-(1<<this._numBitLevels)},ye.BitTreeDecoder.prototype.reverseDecode=function(t){for(var e,r=1,n=0,i=0;i<this._numBitLevels;++i)r=r<<1|(e=t.decodeBit(this._models,r)),n|=e<<i;return n},ye.reverseDecode2=function(t,e,r,n){for(var i,o=1,s=0,a=0;a<n;++a)o=o<<1|(i=r.decodeBit(t,e+o)),s|=i<<a;return s},ye.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new ye.BitTreeDecoder(8),this._numPosStates=0},ye.LenDecoder.prototype.create=function(t){for(;this._numPosStates<t;++this._numPosStates)this._lowCoder[this._numPosStates]=new ye.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new ye.BitTreeDecoder(3)},ye.LenDecoder.prototype.init=function(){var t=this._numPosStates;for(ye.initBitModels(this._choice,2);t--;)this._lowCoder[t].init(),this._midCoder[t].init();this._highCoder.init()},ye.LenDecoder.prototype.decode=function(t,e){return 0===t.decodeBit(this._choice,0)?this._lowCoder[e].decode(t):0===t.decodeBit(this._choice,1)?8+this._midCoder[e].decode(t):16+this._highCoder.decode(t)},ye.Decoder2=function(){this._decoders=[]},ye.Decoder2.prototype.init=function(){ye.initBitModels(this._decoders,768)},ye.Decoder2.prototype.decodeNormal=function(t){var e=1;do{e=e<<1|t.decodeBit(this._decoders,e)}while(e<256);return 255&e},ye.Decoder2.prototype.decodeWithMatchByte=function(t,e){var r,n,i=1;do{if(r=e>>7&1,e<<=1,i=i<<1|(n=t.decodeBit(this._decoders,(1+r<<8)+i)),r!==n){for(;i<256;)i=i<<1|t.decodeBit(this._decoders,i);break}}while(i<256);return 255&i},ye.LiteralDecoder=function(){},ye.LiteralDecoder.prototype.create=function(t,e){var r;if(!this._coders||this._numPrevBits!==e||this._numPosBits!==t)for(this._numPosBits=t,this._posMask=(1<<t)-1,this._numPrevBits=e,this._coders=[],r=1<<this._numPrevBits+this._numPosBits;r--;)this._coders[r]=new ye.Decoder2},ye.LiteralDecoder.prototype.init=function(){for(var t=1<<this._numPrevBits+this._numPosBits;t--;)this._coders[t].init()},ye.LiteralDecoder.prototype.getDecoder=function(t,e){return this._coders[((t&this._posMask)<<this._numPrevBits)+((255&e)>>>8-this._numPrevBits)]},ye.Decoder=function(){this._outWindow=new ye.OutWindow,this._rangeDecoder=new ye.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new ye.BitTreeDecoder(4),this._lenDecoder=new ye.LenDecoder,this._repLenDecoder=new ye.LenDecoder,this._literalDecoder=new ye.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new ye.BitTreeDecoder(6),this._posSlotDecoder[1]=new ye.BitTreeDecoder(6),this._posSlotDecoder[2]=new ye.BitTreeDecoder(6),this._posSlotDecoder[3]=new ye.BitTreeDecoder(6)},ye.Decoder.prototype.setDictionarySize=function(t){return!(t<0)&&(this._dictionarySize!==t&&(this._dictionarySize=t,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},ye.Decoder.prototype.setLcLpPb=function(t,e,r){var n=1<<r;return!(t>8||e>4||r>4)&&(this._literalDecoder.create(e,t),this._lenDecoder.create(n),this._repLenDecoder.create(n),this._posStateMask=n-1,!0)},ye.Decoder.prototype.init=function(){var t=4;for(this._outWindow.init(!1),ye.initBitModels(this._isMatchDecoders,192),ye.initBitModels(this._isRep0LongDecoders,192),ye.initBitModels(this._isRepDecoders,12),ye.initBitModels(this._isRepG0Decoders,12),ye.initBitModels(this._isRepG1Decoders,12),ye.initBitModels(this._isRepG2Decoders,12),ye.initBitModels(this._posDecoders,114),this._literalDecoder.init();t--;)this._posSlotDecoder[t].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},ye.Decoder.prototype.decode=function(t,e,r){var n,i,o,s,a,u,l=0,c=0,h=0,f=0,p=0,d=0,v=0;for(this._rangeDecoder.setStream(t),this._outWindow.setStream(e),this.init();r<0||d<r;)if(n=d&this._posStateMask,0===this._rangeDecoder.decodeBit(this._isMatchDecoders,(l<<4)+n))i=this._literalDecoder.getDecoder(d++,v),v=l>=7?i.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(c)):i.decodeNormal(this._rangeDecoder),this._outWindow.putByte(v),l=l<4?0:l-(l<10?3:6);else{if(1===this._rangeDecoder.decodeBit(this._isRepDecoders,l))o=0,0===this._rangeDecoder.decodeBit(this._isRepG0Decoders,l)?0===this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(l<<4)+n)&&(l=l<7?9:11,o=1):(0===this._rangeDecoder.decodeBit(this._isRepG1Decoders,l)?s=h:(0===this._rangeDecoder.decodeBit(this._isRepG2Decoders,l)?s=f:(s=p,p=f),f=h),h=c,c=s),0===o&&(o=2+this._repLenDecoder.decode(this._rangeDecoder,n),l=l<7?8:11);else if(p=f,f=h,h=c,o=2+this._lenDecoder.decode(this._rangeDecoder,n),l=l<7?7:10,(a=this._posSlotDecoder[o<=5?o-2:3].decode(this._rangeDecoder))>=4){if(c=(2|1&a)<<(u=(a>>1)-1),a<14)c+=ye.reverseDecode2(this._posDecoders,c-a-1,this._rangeDecoder,u);else if(c+=this._rangeDecoder.decodeDirectBits(u-4)<<4,(c+=this._posAlignDecoder.reverseDecode(this._rangeDecoder))<0){if(-1===c)break;return!1}}else c=a;if(c>=d||c>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(c,o),d+=o,v=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},ye.Decoder.prototype.setDecoderProperties=function(t){var e,r,n,i,o;return!(t.size<5)&&(r=(e=t.readByte())%9,n=(e=~~(e/9))%5,i=~~(e/5),!!this.setLcLpPb(r,n,i)&&(o=t.readByte(),o|=t.readByte()<<8,o|=t.readByte()<<16,o+=16777216*t.readByte(),this.setDictionarySize(o)))},ye.decompress=function(t,e,r,n){var i=new ye.Decoder;if(!i.setDecoderProperties(t))throw"Incorrect stream properties";if(!i.decode(e,r,n))throw"Error in data stream";return!0},ye.decompressFile=function(t,e){var r,n=new ye.Decoder;if(!n.setDecoderProperties(t))throw"Incorrect stream properties";if(r=t.readByte(),r|=t.readByte()<<8,r|=t.readByte()<<16,r+=16777216*t.readByte(),t.readByte(),t.readByte(),t.readByte(),t.readByte(),!n.decode(t,e,r))throw"Error in data stream";return!0};var be=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.floorIndex=0,e.needsRender=!0,e}return st(e,t),e.prototype.disposeGeometry=function(){this.traverse((function(t){t instanceof St&&t.geometry.dispose()}))},e}(s.Group);const xe=l.Reader,we=l.util,Se=l.roots["@REALSEE/FIVE:five/server/model/proto/dome.proto"]||(l.roots["@REALSEE/FIVE:five/server/model/proto/dome.proto"]={}),Ae=Se.Model=(()=>{function t(t){if(this.meshes=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.meshes=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Model;for(;t.pos<r;){let e=t.uint32();if(e>>>3==1)n.meshes&&n.meshes.length||(n.meshes=[]),n.meshes.push(Se.Mesh.decode(t,t.uint32()));else t.skipType(7&e)}return n},t})();Se.Mesh=(()=>{function t(t){if(this.chunks=[],this.matrix=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.name="",t.prototype.chunks=we.emptyArray,t.prototype.matrix=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Mesh;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 1:n.name=t.string();break;case 2:n.chunks&&n.chunks.length||(n.chunks=[]),n.chunks.push(Se.Chunk.decode(t,t.uint32()));break;case 3:n.matrix&&n.matrix.length||(n.matrix=[]),n.matrix.push(Se.Matrix.decode(t,t.uint32()));break;default:t.skipType(7&e)}}if(!n.hasOwnProperty("name"))throw we.ProtocolError("missing required 'name'",{instance:n});return n},t})(),Se.Matrix=(()=>{function t(t){if(this.elements=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.elements=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Matrix;for(;t.pos<r;){let e=t.uint32();if(e>>>3==1)if(n.elements&&n.elements.length||(n.elements=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.elements.push(t.float())}else n.elements.push(t.float());else t.skipType(7&e)}return n},t})(),Se.Chunk=(()=>{function t(t){if(this.material=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.geometry=null,t.prototype.material=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Chunk;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 2:n.geometry=Se.Geometry.decode(t,t.uint32());break;case 3:n.material&&n.material.length||(n.material=[]),n.material.push(Se.Material.decode(t,t.uint32()));break;default:t.skipType(7&e)}}if(!n.hasOwnProperty("geometry"))throw we.ProtocolError("missing required 'geometry'",{instance:n});return n},t})(),Se.Geometry=(()=>{function t(t){if(this.groups=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.position=null,t.prototype.uv=null,t.prototype.uv2=null,t.prototype.normal=null,t.prototype.groups=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Geometry;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 1:n.position=Se.Position.decode(t,t.uint32());break;case 2:n.uv=Se.UV.decode(t,t.uint32());break;case 3:n.uv2=Se.UV.decode(t,t.uint32());break;case 4:n.normal=Se.Normal.decode(t,t.uint32());break;case 5:n.groups&&n.groups.length||(n.groups=[]),n.groups.push(Se.Group.decode(t,t.uint32()));break;default:t.skipType(7&e)}}if(!n.hasOwnProperty("position"))throw we.ProtocolError("missing required 'position'",{instance:n});if(!n.hasOwnProperty("normal"))throw we.ProtocolError("missing required 'normal'",{instance:n});return n},t})(),Se.Position=(()=>{function t(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.array=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Position;for(;t.pos<r;){let e=t.uint32();if(e>>>3==1)if(n.array&&n.array.length||(n.array=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.array.push(t.float())}else n.array.push(t.float());else t.skipType(7&e)}return n},t})(),Se.UV=(()=>{function t(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.array=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.UV;for(;t.pos<r;){let e=t.uint32();if(e>>>3==1)if(n.array&&n.array.length||(n.array=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.array.push(t.float())}else n.array.push(t.float());else t.skipType(7&e)}return n},t})(),Se.Normal=(()=>{function t(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.array=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Normal;for(;t.pos<r;){let e=t.uint32();if(e>>>3==1)if(n.array&&n.array.length||(n.array=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.array.push(t.float())}else n.array.push(t.float());else t.skipType(7&e)}return n},t})(),Se.Group=(()=>{function t(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.start=0,t.prototype.count=0,t.prototype.materialIndex=0,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Group;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 1:n.start=t.uint32();break;case 2:n.count=t.uint32();break;case 3:n.materialIndex=t.uint32();break;default:t.skipType(7&e)}}if(!n.hasOwnProperty("start"))throw we.ProtocolError("missing required 'start'",{instance:n});if(!n.hasOwnProperty("count"))throw we.ProtocolError("missing required 'count'",{instance:n});if(!n.hasOwnProperty("materialIndex"))throw we.ProtocolError("missing required 'materialIndex'",{instance:n});return n},t})(),Se.Material=(()=>{function t(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.kd=null,t.prototype.ks=null,t.prototype.ke=null,t.prototype.mapkd="",t.prototype.mapks="",t.prototype.mapke="",t.prototype.norm="",t.prototype.mapbump="",t.prototype.bump="",t.prototype.mapd="",t.prototype.ns=0,t.prototype.d=0,t.prototype.tr=0,t.prototype.mapkdrepeat="",t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Material;for(;t.pos<r;){let e=t.uint32();switch(e>>>3){case 1:n.kd=Se.Color.decode(t,t.uint32());break;case 2:n.ks=Se.Color.decode(t,t.uint32());break;case 3:n.ke=Se.Color.decode(t,t.uint32());break;case 4:n.mapkd=t.string();break;case 5:n.mapks=t.string();break;case 6:n.mapke=t.string();break;case 7:n.norm=t.string();break;case 8:n.mapbump=t.string();break;case 9:n.bump=t.string();break;case 10:n.mapd=t.string();break;case 11:n.ns=t.float();break;case 12:n.d=t.float();break;case 13:n.tr=t.float();break;case 14:n.mapkdrepeat=t.string();break;default:t.skipType(7&e)}}return n},t})(),Se.Color=(()=>{function t(t){if(this.rgb=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)null!=t[e[r]]&&(this[e[r]]=t[e[r]])}return t.prototype.rgb=we.emptyArray,t.decode=function(t,e){t instanceof xe||(t=xe.create(t));let r=void 0===e?t.len:t.pos+e,n=new Se.Color;for(;t.pos<r;){let e=t.uint32();if(e>>>3==1)if(n.rgb&&n.rgb.length||(n.rgb=[]),2==(7&e)){let e=t.uint32()+t.pos;for(;t.pos<e;)n.rgb.push(t.float())}else n.rgb.push(t.float());else t.skipType(7&e)}return n},t})();var Pe={};function Ee(t){var e,r=[];function n(t,e,r){var n=function(t){var e=t.position,r=t.normal,n=t.uv,i=t.uv2,o=t.groups,a=new s.BufferGeometry;return a.setAttribute("position",new s.BufferAttribute(new Float32Array(e.array),3)),r&&a.setAttribute("normal",new s.BufferAttribute(new Float32Array(r.array),3)),n&&a.setAttribute("uv",new s.BufferAttribute(new Float32Array(n.array),2)),i&&a.setAttribute("uv2",new s.BufferAttribute(new Float32Array(i.array),2)),o.forEach((function(t){return a.addGroup(t.start,t.count,t.materialIndex)})),a}(t);n.applyMatrix4(r);var i=new s.Vector3,o=new s.Quaternion,a=new s.Vector3;return r.decompose(i,o,a),a.x*a.y*a.z<0&&n.attributes.normal&&n.attributes.position&&n.attributes.uv&&function(t){for(var e=[0,0,0],r=0;r<t.attributes.normal.array.length/9;r++)e[0]=t.attributes.normal.array[9*r],e[1]=t.attributes.normal.array[9*r+1],e[2]=t.attributes.normal.array[9*r+2],t.attributes.normal.array[9*r]=t.attributes.normal.array[9*r+6],t.attributes.normal.array[9*r+1]=t.attributes.normal.array[9*r+7],t.attributes.normal.array[9*r+2]=t.attributes.normal.array[9*r+8],t.attributes.normal.array[9*r+6]=e[0],t.attributes.normal.array[9*r+7]=e[1],t.attributes.normal.array[9*r+8]=e[2];for(r=0;r<t.attributes.position.array.length/9;r++)e[0]=t.attributes.position.array[9*r],e[1]=t.attributes.position.array[9*r+1],e[2]=t.attributes.position.array[9*r+2],t.attributes.position.array[9*r]=t.attributes.position.array[9*r+6],t.attributes.position.array[9*r+1]=t.attributes.position.array[9*r+7],t.attributes.position.array[9*r+2]=t.attributes.position.array[9*r+8],t.attributes.position.array[9*r+6]=e[0],t.attributes.position.array[9*r+7]=e[1],t.attributes.position.array[9*r+8]=e[2];for(r=0;r<t.attributes.uv.array.length/6;r++)e[0]=t.attributes.uv.array[6*r],e[1]=t.attributes.uv.array[6*r+1],t.attributes.uv.array[6*r]=t.attributes.uv.array[6*r+4],t.attributes.uv.array[6*r+1]=t.attributes.uv.array[6*r+5],t.attributes.uv.array[6*r+4]=e[0],t.attributes.uv.array[6*r+5]=e[1];t.attributes.normal.needsUpdate=!0,t.attributes.position.needsUpdate=!0,t.attributes.uv.needsUpdate=!0}(n),new St(n)}return(e=t,Ae.decode(e).meshes).forEach((function(t){var e=t.name,i=t.chunks,o=t.matrix;"Ceiling"!==e&&"CeilingDrop"!==e&&o.map((function(t){var o,a=new s.Matrix4;if(a.elements=t.elements,1===i.length){var u=i[0],l=u.geometry;u.material;o=n(l,0,a)}else o=new be,i.forEach((function(t,e){var r=t.geometry,i=(t.material,n(r,0,a));i.name="chunk"+e,o.add(i)}));o.floorIndex=0,o.name=e,r.push(o)}))})),{objects:r,createAt:0,description:""}}function _e(){Object.keys(Pe).forEach((function(t){Pe[t].dispose(),delete Pe[t]}))}function Ne(t){return null==t}var Ce=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.needsRender=!0,e}return st(e,t),e.prototype.disposeGeometry=function(){this.traverse((function(t){t instanceof St&&t.geometry.dispose()}))},e}(s.Group),Ie=function(t,e){void 0===e&&(e=1e-4),e=Math.max(e,Number.EPSILON);for(var r={},n=t.getIndex(),i=t.getAttribute("position"),o=n?n.count:i.count,a=0,u=Object.keys(t.attributes),l={},c={},h=[],f=["getX","getY","getZ","getW"],p=0,d=u.length;p<d;p++){l[x=u[p]]=[],(P=t.morphAttributes[x])&&(c[x]=new Array(P.length).fill().map((function(){return[]})))}var v=Math.log10(1/e),y=Math.pow(10,v);for(p=0;p<o;p++){var g=n?n.getX(p):p,m="",b=0;for(d=u.length;b<d;b++)for(var x=u[b],w=(A=t.getAttribute(x)).itemSize,S=0;S<w;S++)m+="".concat(~~(A[f[S]](g)*y),",");if(m in r)h.push(r[m]);else{for(b=0,d=u.length;b<d;b++){x=u[b];var A=t.getAttribute(x),P=t.morphAttributes[x],E=(w=A.itemSize,l[x]),_=c[x];for(S=0;S<w;S++){var N=f[S];if(E.push(A[N](g)),P)for(var C=0,I=P.length;C<I;C++)_[C].push(P[C][N](g))}}r[m]=a,h.push(a),a++}}var R=t.clone();for(p=0,d=u.length;p<d;p++){x=u[p];var D=t.getAttribute(x),T=new D.array.constructor(l[x]);A=new s.BufferAttribute(T,D.itemSize,D.normalized);if(R.setAttribute(x,A),x in c)for(b=0;b<c[x].length;b++){var z=t.morphAttributes[x][b],O=(T=new z.array.constructor(c[x][b]),new s.BufferAttribute(T,z.itemSize,z.normalized));R.morphAttributes[x][b]=O}}return R.setIndex(h),R};function Re(t){var e;return new((e=s.Triangle).bind.apply(e,ut([void 0],t.map((function(t){return new s.Vector3(t.x,t.y,t.z)})),!1)))}var De={at3d:function(t){return Promise.resolve().then((function(){return se(t.file)})).then((function(t){return me(t)})).then((function(t){for(var e,r={chunks:[],createAt:void 0,description:void 0},n=0,i=t;n<i.length;n++){var o=i[n],s=ce.decode(o);s.chunks.length&&((e=r.chunks).push.apply(e,s.chunks),r.createAt=s.createAt,r.description=s.description)}return r})).then((function(t){return ve(t)}))},pbm:function(t){return Promise.resolve().then((function(){return se(t.file)})).then((function(t){var e=new Uint8Array(t);return ce.decode(e)})).then((function(t){return ve(t)}))},dome:function(t){return Promise.resolve().then((function(){return _e()})).then((function(){return se(t.file)})).then((function(t){return Ee(new Uint8Array(t))}))},domez:function(t){return Promise.resolve().then((function(){return _e()})).then((function(){return se(t.file)})).then((function(t){return me(t)})).then((function(t){var e=t.reduce((function(t,e){return t+e.length}),0),r=new Uint8Array(e),n=0;return t.forEach((function(t){r.set(t,n),n+=t.length})),r})).then((function(t){return Ee(t)}))}},Te=function(t){function e(){var e=t.call(this)||this;return e.empty=!1,e.name="model",e.loaded=!1,e.bvhs=[],e.bounding=new s.Box3,e.shownfloor=null,e.floorLength=0,e}return st(e,t),e.prototype.getEdges=function(t){var e;void 0===t&&(t=30/180*Math.PI);for(var r=Math.cos(t),n=[],i=0,o=this.children;i<o.length;i++){var a=o[i];if(a instanceof St){for(var u={},l=["a","b","c"],c=Ie(a.geometry),h=c.getAttribute("position").array,f=(null===(e=c.getIndex())||void 0===e?void 0:e.array)||[],p=[],d=[],v=0,y=h.length;v<y;v+=3)p.push(new s.Vector3(h[v],h[v+1],h[v+2]));for(v=0,y=f.length;v<y;v+=3){var g=f[v],m=f[v+1],b=f[v+2],x=(new s.Vector3).crossVectors(p[m].clone().sub(p[g]),p[b].clone().sub(p[g])).normalize();d.push({a:g,b:m,c:b,normal:x})}for(v=0,y=d.length;v<y;v++)for(var w=d[v],S=0;S<3;S++){var A=w[l[S]],P=w[l[(S+1)%3]],E=[Math.min(A,P),Math.max(A,P)];void 0===u[_=E[0]+"-"+E[1]]?u[_]={index1:E[0],index2:E[1],face1:v}:u[_].face2=v}for(var _ in u){var N=u[_];if(void 0===N.face2||d[N.face1].normal.dot(d[N.face2].normal)<=r){var C=p[N.index1],I=p[N.index2];n.push(new s.Line3(C,I))}}c.dispose(),p.length=0,d.length=0}}return n},e.prototype.hasFloors=function(){return this.hasFloors_()},e.prototype.hasFloors_=function(){var t=[];return this.traverse((function(e){e instanceof St&&(t[e.floorIndex]=!0)})),t.length},e.prototype.show=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=0!==t.length;this.shownfloor=r?t[0]:null,this.needsRender=!0},e.prototype.intersectRaycaster=function(t,e){var r=t.ray,n=r.origin,i=r.direction;if(Ne(e))if(Ne(this.shownfloor)){var o=this.hasFloors();e=[];for(var a=0;a<o;a++)e.push(a)}else e=[this.shownfloor];var u=[],l=[];Array.isArray(e)?l.push.apply(l,e):l.push(e);for(var c=function(e){var r=h.bvhs&&h.bvhs[e];if(r){var o=new pt(n.x,n.y,n.z),a=new pt(i.x,i.y,i.z),l=r.intersectRay(o,a,!0).map((function(t){var e=t.intersectionPoint,r=t.triangle,i=new s.Vector3(e.x,e.y,e.z);return{point:i,face:{normal:Re(r).getNormal(new s.Vector3)},distance:n.distanceTo(i)}}));l.length&&u.push.apply(u,l)}else{var c=[];h.traverse((function(t){t instanceof St&&t.floorIndex===e&&c.push(t)})),(l=t.intersectObjects(c).map((function(t){var e=t.face?{normal:t.face.normal}:void 0;return{point:t.point,face:e,distance:t.distance}}))).length&&u.push.apply(u,l)}},h=this,f=0,p=l;f<p.length;f++){c(p[f])}return u.filter((function(e){var r=e.distance;return r<=t.far&&r>=t.near})).sort((function(t,e){return t.distance-e.distance}))},e.prototype.buildBVH=function(){var t,e=[];this.traverse((function(t){t instanceof St&&(e[t.floorIndex]=e[t.floorIndex]||[],e[t.floorIndex].push(t.geometry))}));var r=e.map((function(t){var e=t.reduce((function(t,e){return t+(e.index?e.index.array.length:e.attributes.position.array.length)}),0),r=new Float32Array(3*e);return t.reduce((function(t,e){for(var n=e.index?e.index.array:null,i=e.attributes.position.array,o=n?n.length:i.length/3,s=0;s<o;s++){var a=3*(t+s),u=n?3*n[s]:3*s;r[a+0]=i[u+0],r[a+1]=i[u+1],r[a+2]=i[u+2]}return t+o}),0),new wt(r,10)}));this.bvhs.length=0,(t=this.bvhs).push.apply(t,r),this.bvhs.loaded=!0,this.emit("bvhLoaded")},e.prototype.load=function(t){var e=this;if(!0===this.loaded)throw new Error("model 只能被 load 一次");var r=De[function(t,e){void 0===e&&(e=[]);var r=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(t);if(r)for(var n=String(r[1]).trim().split("."),i=0,o=e;i<o.length;i++){var s=o[i];if(n.indexOf(s)>=0)return s}}(t.file,Object.keys(De))||""];if(!r)throw new Error("文件类型错误");return r(t).then((function(t){var r=t.createAt,n=t.description,i=t.objects;e.userData.createAt=r,e.userData.description=n,e.bounding.makeEmpty();for(var o=e.originModel=new Ce,s=0,a=i;s<a.length;s++){var u=a[s];u.traverse((function(t){if(t instanceof St){var r=t.geometry;r.boundingBox||r.computeBoundingBox(),r.boundingSphere||r.computeBoundingSphere(),e.bounding.union(r.boundingBox)}})),o.add(u)}e.add(o),e.floorLength=e.hasFloors_(),e.emit("geometryLoaded"),e.emit("loaded"),e.loaded=!0})).catch((function(t){return e.emit("error",t),Promise.reject(t)}))},e.prototype.dispose=function(){for(this.off(),this.disposeGeometry();this.children.length;)this.remove(this.children[0]);this.bvhs.length=0,delete this.bvhs.loaded},e}(be);Object.assign(Te.prototype,{on:Vt.prototype.on,once:Vt.prototype.once,off:Vt.prototype.off,emit:Vt.prototype.emit,hasListener:Vt.prototype.hasListener});function ze(t,e,r){return t<e?e:t>r?r:t}function Oe(t){return 0===t.indexOf("//")||/^[0-9a-z]+\:/i.test(t)}function Be(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=[];t=t.map((function(t){return(null!=t?t:"").trim()})).filter((function(t){return t.length>0&&!/^\/+$/.test(t)}));for(var n=0;n<t.length;n++){var i=0===n,o=n===t.length-1,s=t[n];i||(s=s.replace(/^\/+/,"")),o||(s=s.replace(/\/+$/,"")),r.push(s)}return r.join("/")}function He(t,e){if(t===e)return!0;if(t&&e&&"object"==typeof t&&"object"==typeof e){if(t.constructor!==e.constructor)return!1;var r,n,i;if(Array.isArray(t)){if((r=t.length)!=e.length)return!1;for(n=r;0!=n--;)if(!He(t[n],e[n]))return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(e).length)return!1;for(n=r;0!=n--;)if(!Object.prototype.hasOwnProperty.call(e,i[n]))return!1;for(n=r;0!=n--;){var o=i[n];if(!He(t[o],e[o]))return!1}return!0}return t!=t&&e!=e}function ke(t){return"number"==typeof t}var qe=function(){return new Error("Invalid input.")},Ve=function(){return new Error("Invalid certificate.")},Ue=function(){return new Error("Invalid signature.")};function Me(t,e){void 0===e&&(e=!1);var r=typeof t;if("string"===r)return JSON.stringify(t);if(!0===t)return"true";if(!1===t)return"false";if(null===t)return"null";if(t instanceof Array){for(var n="[",i=t.length-1,o=0;o<i;o++)n+=Me(t[o],!1)+",";return i>-1&&(n+=Me(t[o],!1)),n+"]"}if(t instanceof Object){if("function"==typeof t.toJSON)return Me(t.toJSON(),e);var s=Object.keys(t).sort(),a=s.length;for(n="",o=0;o<a;){var u=s[o],l=Me(t[u],!0);void 0!==l&&(o&&""!==n&&(n+=","),n+=JSON.stringify(u)+":"+l),o++}return"{"+n+"}"}switch(r){case"function":case"undefined":return e?void 0:null;case"number":return 0;default:return isFinite(t)?t:null}}function Fe(t){return String(Me(t,!1))}function Ke(t){var e,r,n;if(Array.isArray(t)){var i,o,s=void 0;if(t.length<=0)return qe();for(var a=function(e){var r=Ke(t[e]);if(r instanceof Error)return{value:r};if(s){if(s!==r.issuer)return{value:Ve()}}else s=r.issuer;i?r.expire.getTime()<i.getTime()&&(i=r.expire):i=r.expire,o=o?o.filter((function(t){return-1!==r.allowHosts.indexOf(t)})):r.allowHosts},u=0;u<t.length;u++){var l=a(u);if("object"==typeof l)return l.value}return Ft({issuer:s,expire:i,allowHosts:o})}var c=JSON.parse(t),h="undefined"!=typeof location?location.hostname:"",f=Date.now();if("object"!=typeof c)return qe();var p=new Date("string"==typeof c.expire_at&&/^\d+$/.test(c.expire_at)?Number(c.expire_at):c.expire_at),d=Array.isArray(c.allow_hosts)?c.allow_hosts:[];if(0===h.length||/^(([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])(\.(?!$)|$)){4}$/.test(h)||jt.filter((function(t){return Lt(t,h)})).length>0){var v=String(null!==(e=c.certificate)&&void 0!==e?e:"");if(v){var y=new $;return y.readCertPEM(v),Ft({issuer:y.getSubjectString(),expire:p,allowHosts:d})}return Ft({issuer:"none",expire:p,allowHosts:d})}var g=String(null!==(r=c.certificate)&&void 0!==r?r:"");if(!g)return Ve();var m=new $;m.readCertPEM(g);var b=String(null!==(n=c._signature)&&void 0!==n?n:"");if(!b)return Ue();var x=Fe(function(t,e){for(var r={},n=0,i=Object.keys(t);n<i.length;n++){var o=i[n];-1===e.indexOf(o)&&(r[o]=t[o])}return r}(c,["_signature"]));return!1===function(t,e,r){var n=new $;if("string"==typeof r?n.readCertPEM(r):n.readCertHex(r.hex),!1===it(n))return!1;var i=new I;return i.readCertPubKeyHex(n.hex,6),!!i.verify(t,_(e))}(x,b,m)?Ue():f<p.getTime()?0===d.filter((function(t){return Lt(t,h)})).length?function(t){return new Error("host(".concat(JSON.stringify(t),") is not allowed."))}(h):Ft({issuer:m.getSubjectString(),expire:p,allowHosts:d}):function(t){return new Error("date(".concat(t.toString(),") expired."))}(p)}var Le=new WeakMap,je=function(){function t(){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.boundingBox=new s.Box3,this.issuer="none",this.raw={works:[""],options:""}}return t.prototype.toJSON=function(){return this.raw.works},t.parse=We,t}();function Ye(t){return null==t?"null":Array.isArray(t)?"array":"object"==typeof t?"dict":"value"}function Qe(t,e){var r=Ye(t),n=Ye(e);if("null"===n)return t;if("value"===n)return e;if(n!==r)return JSON.parse(JSON.stringify(e));if("array"===n)for(var i=0;i<e.length;i++)t[i]=Qe(t[i],e[i]);else if("dict"===n)for(var o in e)t[o]=Qe(t[o],e[o]);return t}function Ze(t,e,r){for(var n,i=JSON.stringify(e),o=[],a=0,u=[].concat(t);a<u.length;a++){var l=u[a];l instanceof je?o.push.apply(o,l.raw.works):"string"==typeof l?o.push(l):o.push(JSON.stringify(l))}var c=Ke(o);if(c instanceof Error)return c;e=JSON.parse(i),t=o.map((function(t){return JSON.parse(t)})).reduce((function(t,e){return Qe(t,e)}));var h=new je;if(c instanceof Error)return c;h.issuer=c.issuer,h.expire=c.expire,h.allowHosts=c.allowHosts,h.raw={works:o,options:i};var f=null!==(n=t.base_url)&&void 0!==n?n:"";f&&"/"!==f[f.length-1]&&(f+="/");var p=function(t,e){return 0===t.indexOf(e)},d=function(t,n){var i,o=t;if(!0===e.jsonp){o=t.replace(/([\?\#].*)?$/i,"");var s=tt("".concat(o)).slice(0,7);o="".concat(o,".").concat(s,".jsonp")}if(!0===e.shortPath){var a=o.replace(f,"").split("."),u=null!==(i=a.shift())&&void 0!==i?i:"",l=a.join(".");o=Be(f,tt(u))+(l?"."+l:"")}var c=o.replace(f,"");return e.baseURL&&(o=Be(e.baseURL,c)),r&&r(t,o,c,n),o},v=function(e,r){var n,i,o,s,a,u,l=e;if(!Oe(e)){var c=null!==(u=null!==(s=null!==(i=null===(n=t.panorama)||void 0===n?void 0:n.pano_high_cube_base_url)&&void 0!==i?i:null===(o=t.panorama)||void 0===o?void 0:o.pano_cube_base_url)&&void 0!==s?s:null===(a=t.panorama)||void 0===a?void 0:a.base_url)&&void 0!==u?u:"";c&&(c=Be(c,String(r))),l=Be(c,l)}return Oe(l)||(l=Be(f,l)),p(l,f)||console.warn("".concat(l," is not start with base_url(").concat(f,").")),d(l,"panorama")},y=function(t){var e=t;return Oe(e)||(e=Be(f,t)),p(e,f)||console.warn("".concat(e," is not start with base_url(").concat(f,").")),d(e,"model")},g=function(t,e){void 0===e&&(e="");var r=t;return Oe(r)||(r=Be(e,r)),Oe(r)||(r=Be(f,r)),p(r,f)||console.warn("".concat(r," is not start with base_url(").concat(f,").")),d(r,"texture")};if(c instanceof Error)return c;if(h.workCode=String(t.work_code||t.code||t.vr_code||t.workCode),h.name=String(t.name),c instanceof Error)return c;if(t.model){var m={bvh:!0,async:!1,textureBase:"",textures:[]};"boolean"==typeof e.modelBvh?m.bvh=e.modelBvh:"boolean"==typeof t.model.bvh?m.bvh=t.model.bvh:"boolean"==typeof t.bvh&&(m.bvh=t.bvh),t.model.file?m.file=y(t.model.file):t.model.file_url&&(m.file=y(t.model.file_url)),t.model.textureBase?m.textureBase=g("",t.model.textureBase):t.model.material_base_url?m.textureBase=g("",t.model.material_base_url):m.file&&(m.textureBase=m.file.split("/").slice(0,-1).join("/").replace("/model/","/materials/")),Array.isArray(t.model.textures)?m.textures=t.model.textures.map((function(e){var r,n;return g(e,null!==(n=null!==(r=t.model.textureBase)&&void 0!==r?r:t.model.material_base_url)&&void 0!==n?n:"")})):Array.isArray(t.model.material_textures)&&(m.textures=t.model.material_textures.map((function(e){var r,n;return g(e,null!==(n=null!==(r=t.model.textureBase)&&void 0!==r?r:t.model.material_base_url)&&void 0!==n?n:"")}))),t.model.tiles&&(m.tiles=t.model.tiles),m.file&&(h.model=m)}if(c instanceof Error)return c;if(t.observers&&Array.isArray(t.observers)){var b=[];t.panorama&&(Array.isArray(t.panorama)?b=t.panorama:Array.isArray(t.panorama.list)?b=t.panorama.list:Array.isArray(t.panorama.info)&&(b=t.panorama.info));for(var x=0;x<t.observers.length;x++){var w={},S=t.observers[x];if(!S)break;var A=b[x];if(!A)break;S=Object.assign({},S,A,{active:!1!==S.active&&!1!==A.active}),w.panoIndex=x,w.active=!1!==S.active,w.loadable=!0===S.loadable,w.derivedId=S.derived_id,w.images={up:v(S.images?S.images.up:S.up,x),down:v(S.images?S.images.down:S.down,x),right:v(S.images?S.images.right:S.right,x),left:v(S.images?S.images.left:S.left,x),front:v(S.images?S.images.front:S.front,x),back:v(S.images?S.images.back:S.back,x)};var P=S.images?S.images.depth:S.depth;P&&(w.images.depth=v(P,x));var E=S.images?S.images.luminance:S.luminance;E&&(w.images.luminance={up:v(E.up,x),down:v(E.down,x),right:v(E.right,x),left:v(E.left,x),front:v(E.front,x),back:v(E.back,x)});var _=S.images?S.images.tiles:S.tiles;if(_){for(var N=[],C=function(t){var e,r=t.match(/\/cube_(\d+)\//);if(r){var n=Number(r[1]);if(0==((e=n)&e-1)&&0!==e)return n}return!1},I=function(t,e){return t.replace(/\/cube_(\d+)\//,(function(){return"/cube_".concat(e,"/")}))},R=0,D=_;R<D.length;R++){var T=D[R];if("number"==typeof T){var z=T,O=C(w.images.front);if(!1===O)continue;if((M=Math.max(O,512*Math.pow(2,z)))>2048){var B=I(w.images.up,M),H=I(w.images.down,M),k=I(w.images.right,M),q=I(w.images.left,M),V=I(w.images.front,M),U=I(w.images.back,M);N.push({level:z,size:M,up:B,down:H,right:k,left:q,front:V,back:U})}else{B=w.images.up,H=w.images.down,k=w.images.right,q=w.images.left,V=w.images.front,U=w.images.back;N.push({level:z,size:M,up:B,down:H,right:k,left:q,front:V,back:U})}}else{var M;if("number"!=typeof(z=T.level))continue;if("number"!=typeof(M=T.size))continue;B=v(T.up,x),H=v(T.down,x),k=v(T.right,x),q=v(T.left,x),V=v(T.front,x),U=v(T.back,x);N.push({level:z,size:M,up:B,down:H,right:k,left:q,front:V,back:U})}}N.sort((function(t,e){return t.level-e.level})),w.images.tiles=N}if(S.position instanceof s.Vector3)w.position=S.position.clone();else{if(!Array.isArray(S.position))break;w.position=(new s.Vector3).fromArray(S.position)}if(S.standingPosition instanceof s.Vector3)w.standingPosition=S.standingPosition.clone();else if(Array.isArray(S.standingPosition))w.standingPosition=(new s.Vector3).fromArray(S.standingPosition);else if(S.standing_position instanceof s.Vector3)w.standingPosition=S.standing_position.clone();else{if(!Array.isArray(S.standing_position))break;w.standingPosition=(new s.Vector3).fromArray(S.standing_position)}if(S.quaternion instanceof s.Quaternion)w.quaternion=S.quaternion.clone();else if(Array.isArray(S.quaternion))w.quaternion=(new s.Quaternion).fromArray(S.quaternion);else{if(!S.quaternion)break;var F=S.quaternion,K=F.x,L=F.y,j=F.z,Y=F.w;w.quaternion=new s.Quaternion(K,L,j,Y)}if(Array.isArray(S.accessibleNodes)?w.accessibleNodes=S.accessibleNodes.slice():Array.isArray(S.accessible_nodes)&&(w.accessibleNodes=S.accessible_nodes.slice()),Array.isArray(S.visibleNodes)?w.visibleNodes=S.visibleNodes.slice():Array.isArray(S.visible_nodes)&&(w.visibleNodes=S.visible_nodes.slice()),ke(S.floorIndex)?w.floorIndex=S.floorIndex:ke(S.floor_index)?w.floorIndex=S.floor_index:w.floorIndex=0,S.video){var Q={};"string"==typeof S.video.source&&(Q.source=S.video.source),S.video.matrix instanceof s.Matrix4?Q.matrix=S.video.matrix.clone():Array.isArray(S.video.matrix)&&(Q.matrix=(new s.Matrix4).fromArray(S.video.matrix)),S.video.size instanceof s.Vector2?Q.size=S.video.size.clone():Array.isArray(S.video.size)&&(Q.size=(new s.Vector2).fromArray(S.video.size)),Q.source&&Q.matrix&&Q.size&&(w.video=Q)}h.observers[x]=w}}if(c instanceof Error)return c;for(var Z=0,W=h.observers;Z<W.length;Z++){if((w=W[Z]).accessibleNodes)w.accessibleNodes=w.accessibleNodes.filter((function(t){return t<h.observers.length}));else{w.accessibleNodes=[];for(var G=0;G<h.observers.length;G++)h.observers[G]!==w&&w.accessibleNodes.push(G)}if(w.visibleNodes)w.visibleNodes=w.visibleNodes.filter((function(t){return t<h.observers.length}));else{w.visibleNodes=[];for(G=0;G<h.observers.length;G++)h.observers[G]!==w&&w.visibleNodes.push(G)}}if(c instanceof Error)return c;if(t.initial)if("Floorplan"!==t.initial.mode&&"Topview"!==t.initial.mode&&"Panorama"!==t.initial.mode&&"VRPanorama"!==t.initial.mode&&"Model"!==t.initial.mode&&"DepthPanorama"!==t.initial.mode||(h.initial.mode=t.initial.mode),ke(t.initial.latitude)&&(h.initial.latitude=t.initial.latitude),ke(t.initial.longitude)?h.initial.longitude=t.initial.longitude:ke(t.initial.heading)&&(h.initial.longitude=-(360*(t.initial.heading-.25)+90)/180*Math.PI),ke(t.initial.fov)&&(h.initial.fov=t.initial.fov),ke(t.initial.panoIndex)){var J=h.observers.length>0?h.observers.length-1:0;h.initial.panoIndex=ze(t.initial.panoIndex,0,J)}else if(ke(t.initial.pano_index)){J=h.observers.length>0?h.observers.length-1:0;h.initial.panoIndex=ze(t.initial.pano_index,0,J)}else if(ke(t.initial.pano)){J=h.observers.length>0?h.observers.length-1:0;h.initial.panoIndex=ze(t.initial.pano,0,J)}if(c instanceof Error)return c;h.boundingBox.makeEmpty();for(var X=0,$=h.observers;X<$.length;X++){w=$[X];h.boundingBox.expandByPoint(w.standingPosition),h.boundingBox.expandByPoint((new s.Vector3).fromArray([w.position.x,2*w.position.y-w.standingPosition.y,w.position.z]))}if(c instanceof Error)return c;var et=Ft(h);return Le.set(et,{works:o,options:i}),et}function We(t,e,r){"string"==typeof t&&"{"===t.trim()[0]&&(t=JSON.parse(t));var n=Le.get(t);if(n){if(e&&!He(JSON.parse(n.options),e))throw new Error("[PARSE FAILED]: work is parsed with different options.");return t}var i=Ze(t,null!=e?e:{},r);if(i instanceof Error)throw new Error("[PARSE FAILED]: "+i.message+"\nError work input:\n"+JSON.stringify(t));return i}exports.BVH=wt,exports.BVHIntersect=xt,exports.BVHNode=dt,exports.BVHVector3=pt,exports.Model=Te,exports.PBMContainer=Ce,exports.PBMGroup=be,exports.PBMMesh=St,exports.Subscribe=Vt,exports.Work=je,exports.parseWork=We;