/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@awayjs/graphics@0.5.101/bundle/awayjs-graphics.umd.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@awayjs/core"),require("@awayjs/renderer"),require("@awayjs/stage"),require("@awayjs/view")):"function"==typeof define&&define.amd?define(["exports","@awayjs/core","@awayjs/renderer","@awayjs/stage","@awayjs/view"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).AwayjsGraphics={},t.AwayjsCore,t.AwayjsRenderer,t.AwayjsStage,t.AwayjsView)}(this,(function(t,e,i,A,n){"use strict";var r=function(){function t(){this._pVertexBuffer=new Array(8),this._pBufferContext=new Array(8),this._pBufferDirty=new Array(8),this.numProcessedVertices=0,this.previousTime=Number.NEGATIVE_INFINITY,this.animationParticles=new Array;for(var e=0;e<8;e++)this._pBufferDirty[e]=!0;this._iUniqueId=t.SUBGEOM_ID_COUNT++}return t.prototype.createVertexData=function(t,e){this._numVertices=t,this._totalLenOfOneVertex=e,this._pVertexData=new Float32Array(t*e)},t.prototype.activateVertexBuffer=function(t,e,i,A){var n=i.stageIndex,r=i.context,o=this._pVertexBuffer[n];o&&this._pBufferContext[n]==r||(o=this._pVertexBuffer[n]=r.createVertexBuffer(this._numVertices,4*this._totalLenOfOneVertex),this._pBufferContext[n]=r,this._pBufferDirty[n]=!0),this._pBufferDirty[n]&&(o.uploadFromArray(this._pVertexData,0,this._numVertices),this._pBufferDirty[n]=!1),r.setVertexBufferAt(t,o,4*e,A)},t.prototype.dispose=function(){for(;this._pVertexBuffer.length;){var t=this._pVertexBuffer.pop();t&&t.dispose()}},t.prototype.invalidateBuffer=function(){for(var t=0;t<8;t++)this._pBufferDirty[t]=!0},Object.defineProperty(t.prototype,"vertexData",{get:function(){return this._pVertexData},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"numVertices",{get:function(){return this._numVertices},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"totalLenOfOneVertex",{get:function(){return this._totalLenOfOneVertex},enumerable:!1,configurable:!0}),t.SUBGEOM_ID_COUNT=0,t}(),o=function(){function t(t,e){if(t<=0||t>=1)throw new Error("life exceeds range (0,1)");this._life=t,this._color=e}return Object.defineProperty(t.prototype,"color",{get:function(){return this._color},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"life",{get:function(){return this._life},enumerable:!1,configurable:!0}),t}(),s=function(){function t(){this.orientation=new e.Quaternion,this.translation=new e.Vector3D}return t.prototype.toMatrix3D=function(t){return void 0===t&&(t=null),null==t&&(t=new e.Matrix3D),this.orientation.toMatrix3D(t),t.appendTranslation(this.translation.x,this.translation.y,this.translation.z),t},t.prototype.copyFrom=function(t){var e=t.orientation,i=t.translation;this.orientation.x=e.x,this.orientation.y=e.y,this.orientation.z=e.z,this.orientation.w=e.w,this.translation.x=i.x,this.translation.y=i.y,this.translation.z=i.z},t}(),a=function(t,e,i,A,n){this.index=t,this.startTime=e,this.totalTime=i+A,this.duration=i,this.delay=A,this.startVertexIndex=n.startVertexIndex,this.numVertices=n.numVertices},g=function(){},l=function(){function t(){}return t.GLOBAL=0,t.LOCAL_STATIC=1,t.LOCAL_DYNAMIC=2,t}(),h=function(t,e){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},h(t,e)};function I(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}h(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}"function"==typeof SuppressedError&&SuppressedError;var c=function(t){function e(){var e=t.call(this)||this;return e.joints=new Array,e}return I(e,t),Object.defineProperty(e.prototype,"numJoints",{get:function(){return this.joints.length},enumerable:!1,configurable:!0}),e.prototype.jointFromName=function(t){var e=this.jointIndexFromName(t);return-1!=e?this.joints[e]:null},e.prototype.jointIndexFromName=function(t){for(var e,i;i<this.joints.length;i++){if(this.joints[i].name==t)return e;e++}return-1},e.prototype.dispose=function(){this.joints.length=0},Object.defineProperty(e.prototype,"assetType",{get:function(){return e.assetType},enumerable:!1,configurable:!0}),e.assetType="[asset Skeleton]",e}(e.AssetBase),p=function(){this.parentIndex=-1},C=function(t){function e(){var e=t.call(this)||this;return e.jointPoses=new Array,e}return I(e,t),Object.defineProperty(e.prototype,"numJointPoses",{get:function(){return this.jointPoses.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"assetType",{get:function(){return e.assetType},enumerable:!1,configurable:!0}),e.prototype.jointPoseFromName=function(t){var e=this.jointPoseIndexFromName(t);return-1!=e?this.jointPoses[e]:null},e.prototype.jointPoseIndexFromName=function(t){for(var e,i;i<this.jointPoses.length;i++){if(this.jointPoses[i].name==t)return e;e++}return-1},e.prototype.clone=function(){for(var t=new e,i=this.jointPoses.length,A=0;A<i;A++){var n=new s,r=this.jointPoses[A];n.name=r.name,n.copyFrom(r),t.jointPoses[A]=n}return t},e.prototype.dispose=function(){this.jointPoses.length=0},e.assetType="[asset SkeletonPose]",e}(e.AssetBase),u=function(){function t(){}return t.ADDITIVE="additive",t.ABSOLUTE="absolute",t}(),d=function(t){function i(){var i=t.call(this)||this;return i._pLooping=!0,i._pTotalDuration=0,i._pStitchDirty=!0,i._pStitchFinalFrame=!1,i._pNumFrames=0,i._pDurations=new Array,i._pTotalDelta=new e.Vector3D,i.fixedFrameRate=!0,i}return I(i,t),Object.defineProperty(i.prototype,"looping",{get:function(){return this._pLooping},set:function(t){this._pLooping!=t&&(this._pLooping=t,this._pStitchDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"stitchFinalFrame",{get:function(){return this._pStitchFinalFrame},set:function(t){this._pStitchFinalFrame!=t&&(this._pStitchFinalFrame=t,this._pStitchDirty=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"totalDuration",{get:function(){return this._pStitchDirty&&this._pUpdateStitch(),this._pTotalDuration},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"totalDelta",{get:function(){return this._pStitchDirty&&this._pUpdateStitch(),this._pTotalDelta},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"lastFrame",{get:function(){return this._pStitchDirty&&this._pUpdateStitch(),this._pLastFrame},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"durations",{get:function(){return this._pDurations},enumerable:!1,configurable:!0}),i.prototype._pUpdateStitch=function(){this._pStitchDirty=!1,this._pLastFrame=this._pStitchFinalFrame?this._pNumFrames:this._pNumFrames-1,this._pTotalDuration=0,this._pTotalDelta.x=0,this._pTotalDelta.y=0,this._pTotalDelta.z=0},i}(i.AnimationNodeBase),_=function(){function t(t,i){this._pRootDelta=new e.Vector3D,this._pPositionDeltaDirty=!0,this._pStartTime=0,this._pAnimator=t,this._pAnimationNode=i}return Object.defineProperty(t.prototype,"positionDelta",{get:function(){return this._pPositionDeltaDirty&&this._pUpdatePositionDelta(),this._pRootDelta},enumerable:!1,configurable:!0}),t.prototype.offset=function(t){this._pStartTime=t,this._pPositionDeltaDirty=!0},t.prototype.update=function(t){this._pTime!=t-this._pStartTime&&this._pUpdateTime(t)},t.prototype.phase=function(t){},t.prototype._pUpdateTime=function(t){this._pTime=t-this._pStartTime,this._pPositionDeltaDirty=!0},t.prototype._pUpdatePositionDelta=function(){},t}(),f=function(t){function e(e,i,A){void 0===A&&(A=!1);var n=t.call(this,e,i)||this;return n._pDynamicProperties=new Array,n._pDynamicPropertiesDirty=new Object,n._pParticleAnimator=e,n._particleNode=i,n._pNeedUpdateTime=A,n}return I(e,t),Object.defineProperty(e.prototype,"needUpdateTime",{get:function(){return this._pNeedUpdateTime},enumerable:!1,configurable:!0}),e.prototype.setRenderState=function(t,e,i,A){},e.prototype._pUpdateDynamicProperties=function(t){this._pDynamicPropertiesDirty[t._iUniqueId]=!0;for(var e,i,A,n,r,o=t.animationParticles,s=t.vertexData,a=t.totalLenOfOneVertex,g=this._particleNode.dataLength,l=this._particleNode._iDataOffset,h=this._pDynamicProperties.length,I=0,c=0,p=0;I<h;){for(;c<h&&(r=o[c]).index==I;){for(n=this._pDynamicProperties[I],e=r.numVertices*a,i=r.startVertexIndex*a+l,p=0;p<e;p+=a)for(A=i+p,p=0;p<e;p+=a)A=i+p,s[A++]=n.x,s[A++]=n.y,s[A++]=n.z,4==g&&(s[A++]=n.w);c++}I++}t.invalidateBuffer()},e}(_),E=function(t){function i(e,i){var A=t.call(this,e,i)||this;return A._particleAccelerationNode=i,A._acceleration=A._particleAccelerationNode._acceleration,A.updateAccelerationData(),A}return I(i,t),Object.defineProperty(i.prototype,"acceleration",{get:function(){return this._acceleration},set:function(t){this._acceleration.x=t.x,this._acceleration.y=t.y,this._acceleration.z=t.z,this.updateAccelerationData()},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,e,n,r){var o=r.getRegisterIndex(this._pAnimationNode,i.ACCELERATION_INDEX);this._particleAccelerationNode.mode==l.LOCAL_STATIC?n.activateVertexBuffer(o,this._particleAccelerationNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3):t.setVertexConst(o,this._halfAcceleration.x,this._halfAcceleration.y,this._halfAcceleration.z)},i.prototype.updateAccelerationData=function(){this._particleAccelerationNode.mode==l.GLOBAL&&(this._halfAcceleration=new e.Vector3D(this._acceleration.x/2,this._acceleration.y/2,this._acceleration.z/2))},i.ACCELERATION_INDEX=0,i}(f),y=function(t){function e(i,A,n,r){void 0===r&&(r=1);var o=t.call(this)||this;return o._pDataLength=3,i+=e.MODES[A],o.name=i,o._pMode=A,o._priority=r,o._pDataLength=n,o._pOneData=new Array(o._pDataLength),o}return I(e,t),Object.defineProperty(e.prototype,"mode",{get:function(){return this._pMode},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"priority",{get:function(){return this._priority},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"dataLength",{get:function(){return this._pDataLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"oneData",{get:function(){return this._pOneData},enumerable:!1,configurable:!0}),e.prototype.getAGALVertexCode=function(t,e,i,A){return""},e.prototype.getAGALFragmentCode=function(t,e,i,A){return""},e.prototype.getAGALUVCode=function(t,e,i,A){return""},e.prototype._iGeneratePropertyOfOneParticle=function(t){},e.prototype._iProcessAnimationSetting=function(t){},e.GLOBAL="Global",e.LOCAL_STATIC="LocalStatic",e.LOCAL_DYNAMIC="LocalDynamic",e.MODES={0:e.GLOBAL,1:e.LOCAL_STATIC,2:e.LOCAL_DYNAMIC},e}(i.AnimationNodeBase),B=function(t){function i(i,A){void 0===A&&(A=null);var n=t.call(this,"ParticleAcceleration",i,3)||this;return n._pStateClass=E,n._acceleration=A||new e.Vector3D,n}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,A){var n=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();A.setRegisterIndex(this,E.ACCELERATION_INDEX,n.index);var r=i.getFreeVertexVectorTemp();i.addVertexTempUsages(r,1);var o="mul "+r+","+A.vertexTime+","+n+"\n";if(e.needVelocity){var s=i.getFreeVertexVectorTemp();o+="mul "+s+","+r+","+A.vertexTwoConst+"\n",o+="add "+A.velocityTarget+".xyz,"+s+".xyz,"+A.velocityTarget+".xyz\n"}return i.removeVertexTempUsage(r),o+="mul "+r+","+r+","+A.vertexTime+"\n",o+="add "+A.positionTarget+".xyz,"+r+","+A.positionTarget+".xyz\n"},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.ACCELERATION_VECTOR3D];if(!e)throw new Error("there is no "+i.ACCELERATION_VECTOR3D+" in param!");this._pOneData[0]=e.x/2,this._pOneData[1]=e.y/2,this._pOneData[2]=e.z/2},i.ACCELERATION_VECTOR3D="AccelerationVector3D",i}(y),m=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._particleBezierCurveNode=i,A._controlPoint=A._particleBezierCurveNode._iControlPoint,A._endPoint=A._particleBezierCurveNode._iEndPoint,A}return I(e,t),Object.defineProperty(e.prototype,"controlPoint",{get:function(){return this._controlPoint},set:function(t){this._controlPoint=t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"endPoint",{get:function(){return this._endPoint},set:function(t){this._endPoint=t},enumerable:!1,configurable:!0}),e.prototype.setRenderState=function(t,i,n,r){var o=r.getRegisterIndex(this._pAnimationNode,e.BEZIER_CONTROL_INDEX),s=r.getRegisterIndex(this._pAnimationNode,e.BEZIER_END_INDEX);this._particleBezierCurveNode.mode==l.LOCAL_STATIC?(n.activateVertexBuffer(o,this._particleBezierCurveNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3),n.activateVertexBuffer(s,this._particleBezierCurveNode._iDataOffset+3,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3)):(t.setVertexConst(o,this._controlPoint.x,this._controlPoint.y,this._controlPoint.z),t.setVertexConst(s,this._endPoint.x,this._endPoint.y,this._endPoint.z))},e.BEZIER_CONTROL_INDEX=0,e.BEZIER_END_INDEX=1,e}(f),Q=function(t){function i(i,A,n){void 0===A&&(A=null),void 0===n&&(n=null);var r=t.call(this,"ParticleBezierCurve",i,6)||this;return r._pStateClass=m,r._iControlPoint=A||new e.Vector3D,r._iEndPoint=n||new e.Vector3D,r}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,n){var r=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();n.setRegisterIndex(this,m.BEZIER_CONTROL_INDEX,r.index);var o=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();n.setRegisterIndex(this,m.BEZIER_END_INDEX,o.index);var s=i.getFreeVertexVectorTemp(),a=new A.ShaderRegisterElement(s.regName,s.index,0),g=new A.ShaderRegisterElement(s.regName,s.index,1),h=new A.ShaderRegisterElement(s.regName,s.index,2);i.addVertexTempUsages(s,1);var I=i.getFreeVertexVectorTemp(),c=new A.ShaderRegisterElement(I.regName,I.index);i.removeVertexTempUsage(s);var p="";return p+="sub "+a+","+n.vertexOneConst+","+n.vertexLife+"\n",p+="mul "+g+","+n.vertexLife+","+n.vertexLife+"\n",p+="mul "+h+","+n.vertexLife+","+a+"\n",p+="mul "+h+","+h+","+n.vertexTwoConst+"\n",p+="mul "+c+".xyz,"+h+","+r+"\n",p+="add "+n.positionTarget+".xyz,"+c+".xyz,"+n.positionTarget+".xyz\n",p+="mul "+c+".xyz,"+g+","+o+"\n",p+="add "+n.positionTarget+".xyz,"+c+".xyz,"+n.positionTarget+".xyz\n",e.needVelocity&&(p+="mul "+g+","+n.vertexLife+","+n.vertexTwoConst+"\n",p+="sub "+h+","+n.vertexOneConst+","+g+"\n",p+="mul "+h+","+n.vertexTwoConst+","+h+"\n",p+="mul "+c+".xyz,"+r+","+h+"\n",p+="add "+n.velocityTarget+".xyz,"+c+".xyz,"+n.velocityTarget+".xyz\n",p+="mul "+c+".xyz,"+o+","+g+"\n",p+="add "+n.velocityTarget+".xyz,"+c+".xyz,"+n.velocityTarget+".xyz\n"),p},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.BEZIER_CONTROL_VECTOR3D];if(!e)throw new Error("there is no "+i.BEZIER_CONTROL_VECTOR3D+" in param!");var A=t[i.BEZIER_END_VECTOR3D];if(!A)throw new Error("there is no "+i.BEZIER_END_VECTOR3D+" in param!");this._pOneData[0]=e.x,this._pOneData[1]=e.y,this._pOneData[2]=e.z,this._pOneData[3]=A.x,this._pOneData[4]=A.y,this._pOneData[5]=A.z},i.BEZIER_CONTROL_VECTOR3D="BezierControlVector3D",i.BEZIER_END_VECTOR3D="BezierEndVector3D",i}(y),D=function(t){function i(i,A){var n=t.call(this,i,A)||this;return n._matrix=new e.Matrix3D,n._billboardAxis=A._iBillboardAxis,n}return I(i,t),i.prototype.setRenderState=function(t,A,n,r){var o;if(this._billboardAxis){var s=A.entity.node.getMatrix3D().position,a=t.view.projection.transform.matrix3D.position.subtract(s),g=a.crossProduct(this._billboardAxis);g.normalize(),(a=this.billboardAxis.crossProduct(g)).normalize(),this._matrix.copyFrom(A.entity.node.getMatrix3D()),o=this._matrix.decompose(e.Orientation3D.AXIS_ANGLE),this._matrix.copyColumnFrom(0,g),this._matrix.copyColumnFrom(1,this.billboardAxis),this._matrix.copyColumnFrom(2,a),this._matrix.copyColumnFrom(3,s),this._matrix.appendRotation(-o[1].w*e.MathConsts.RADIANS_TO_DEGREES,o[1])}else this._matrix.copyFrom(A.entity.node.getMatrix3D()),this._matrix.append(t.view.projection.transform.inverseMatrix3D),o=this._matrix.decompose(e.Orientation3D.AXIS_ANGLE),this._matrix.identity(),this._matrix.appendRotation(-o[1].w*e.MathConsts.RADIANS_TO_DEGREES,o[1]);t.setVertexConstFromMatrix(r.getRegisterIndex(this._pAnimationNode,i.MATRIX_INDEX),this._matrix)},Object.defineProperty(i.prototype,"billboardAxis",{get:function(){return this.billboardAxis},set:function(t){this.billboardAxis=t?t.clone():null,this.billboardAxis&&this.billboardAxis.normalize()},enumerable:!1,configurable:!0}),i.MATRIX_INDEX=0,i}(f),v=function(t){function e(e){void 0===e&&(e=null);var i=t.call(this,"ParticleBillboard",l.GLOBAL,0,4)||this;return i._pStateClass=D,i._iBillboardAxis=e,i}return I(e,t),e.prototype.getAGALVertexCode=function(t,e,i,A){var n=i.getFreeVertexConstant();A.setRegisterIndex(this,D.MATRIX_INDEX,n.index),i.getFreeVertexConstant(),i.getFreeVertexConstant(),i.getFreeVertexConstant();for(var r,o=i.getFreeVertexVectorTemp(),s="m33 "+o+".xyz,"+A.scaleAndRotateTarget+","+n+"\nmov "+A.scaleAndRotateTarget+".xyz,"+o+"\n",a=0;a<A.rotationRegisters.length;a++)s+="m33 "+o+".xyz,"+(r=A.rotationRegisters[a])+","+n+"\nmov "+r+".xyz,"+r+"\n";return s},e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e.prototype._iProcessAnimationSetting=function(t){t.hasBillboard=!0},e}(y),x=function(t){function i(e,i){var A=t.call(this,e,i)||this;return A._particleColorNode=i,A._usesMultiplier=A._particleColorNode._iUsesMultiplier,A._usesOffset=A._particleColorNode._iUsesOffset,A._usesCycle=A._particleColorNode._iUsesCycle,A._usesPhase=A._particleColorNode._iUsesPhase,A._startColor=A._particleColorNode._iStartColor,A._endColor=A._particleColorNode._iEndColor,A._cycleDuration=A._particleColorNode._iCycleDuration,A._cyclePhase=A._particleColorNode._iCyclePhase,A.updateColorData(),A}return I(i,t),Object.defineProperty(i.prototype,"startColor",{get:function(){return this._startColor},set:function(t){this._startColor=t,this.updateColorData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"endColor",{get:function(){return this._endColor},set:function(t){this._endColor=t,this.updateColorData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"cycleDuration",{get:function(){return this._cycleDuration},set:function(t){this._cycleDuration=t,this.updateColorData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"cyclePhase",{get:function(){return this._cyclePhase},set:function(t){this._cyclePhase=t,this.updateColorData()},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,e,n,r){if(t.usesFragmentAnimation){var o=this._particleColorNode._iDataOffset;this._usesCycle&&t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,i.CYCLE_INDEX),this._cycleData.x,this._cycleData.y,this._cycleData.z,this._cycleData.w),this._usesMultiplier&&(this._particleColorNode.mode==l.LOCAL_STATIC?(n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.START_MULTIPLIER_INDEX),o,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4),o+=4,n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.DELTA_MULTIPLIER_INDEX),o,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4),o+=4):(t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,i.START_MULTIPLIER_INDEX),this._startMultiplierData.x,this._startMultiplierData.y,this._startMultiplierData.z,this._startMultiplierData.w),t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,i.DELTA_MULTIPLIER_INDEX),this._deltaMultiplierData.x,this._deltaMultiplierData.y,this._deltaMultiplierData.z,this._deltaMultiplierData.w))),this._usesOffset&&(this._particleColorNode.mode==l.LOCAL_STATIC?(n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.START_OFFSET_INDEX),o,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4),o+=4,n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.DELTA_OFFSET_INDEX),o,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4)):(t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,i.START_OFFSET_INDEX),this._startOffsetData.x,this._startOffsetData.y,this._startOffsetData.z,this._startOffsetData.w),t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,i.DELTA_OFFSET_INDEX),this._deltaOffsetData.x,this._deltaOffsetData.y,this._deltaOffsetData.z,this._deltaOffsetData.w)))}},i.prototype.updateColorData=function(){if(this._usesCycle){if(this._cycleDuration<=0)throw new Error("the cycle duration must be greater than zero");this._cycleData=new e.Vector3D(2*Math.PI/this._cycleDuration,this._cyclePhase*Math.PI/180,0,0)}this._particleColorNode.mode==l.GLOBAL&&(this._usesCycle?(this._usesMultiplier&&(this._startMultiplierData=new e.Vector3D((this._startColor.redMultiplier+this._endColor.redMultiplier)/2,(this._startColor.greenMultiplier+this._endColor.greenMultiplier)/2,(this._startColor.blueMultiplier+this._endColor.blueMultiplier)/2,(this._startColor.alphaMultiplier+this._endColor.alphaMultiplier)/2),this._deltaMultiplierData=new e.Vector3D((this._endColor.redMultiplier-this._startColor.redMultiplier)/2,(this._endColor.greenMultiplier-this._startColor.greenMultiplier)/2,(this._endColor.blueMultiplier-this._startColor.blueMultiplier)/2,(this._endColor.alphaMultiplier-this._startColor.alphaMultiplier)/2)),this._usesOffset&&(this._startOffsetData=new e.Vector3D((this._startColor.redOffset+this._endColor.redOffset)/510,(this._startColor.greenOffset+this._endColor.greenOffset)/510,(this._startColor.blueOffset+this._endColor.blueOffset)/510,(this._startColor.alphaOffset+this._endColor.alphaOffset)/510),this._deltaOffsetData=new e.Vector3D((this._endColor.redOffset-this._startColor.redOffset)/510,(this._endColor.greenOffset-this._startColor.greenOffset)/510,(this._endColor.blueOffset-this._startColor.blueOffset)/510,(this._endColor.alphaOffset-this._startColor.alphaOffset)/510))):(this._usesMultiplier&&(this._startMultiplierData=new e.Vector3D(this._startColor.redMultiplier,this._startColor.greenMultiplier,this._startColor.blueMultiplier,this._startColor.alphaMultiplier),this._deltaMultiplierData=new e.Vector3D(this._endColor.redMultiplier-this._startColor.redMultiplier,this._endColor.greenMultiplier-this._startColor.greenMultiplier,this._endColor.blueMultiplier-this._startColor.blueMultiplier,this._endColor.alphaMultiplier-this._startColor.alphaMultiplier)),this._usesOffset&&(this._startOffsetData=new e.Vector3D(this._startColor.redOffset/255,this._startColor.greenOffset/255,this._startColor.blueOffset/255,this._startColor.alphaOffset/255),this._deltaOffsetData=new e.Vector3D((this._endColor.redOffset-this._startColor.redOffset)/255,(this._endColor.greenOffset-this._startColor.greenOffset)/255,(this._endColor.blueOffset-this._startColor.blueOffset)/255,(this._endColor.alphaOffset-this._startColor.alphaOffset)/255))))},i.START_MULTIPLIER_INDEX=0,i.DELTA_MULTIPLIER_INDEX=1,i.START_OFFSET_INDEX=2,i.DELTA_OFFSET_INDEX=3,i.CYCLE_INDEX=4,i}(f),S=function(t){function e(e,i){var A=t.call(this,e,i,!0)||this;return A._particleTimeNode=i,A}return I(e,t),e.prototype.setRenderState=function(t,i,n,r){n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,e.TIME_STREAM_INDEX),this._particleTimeNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4);var o=this._pTime/1e3;t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,e.TIME_CONSTANT_INDEX),o,o,o,o)},e.TIME_STREAM_INDEX=0,e.TIME_CONSTANT_INDEX=1,e}(f),w=function(t){function e(e,i,A){void 0===e&&(e=!1),void 0===i&&(i=!1),void 0===A&&(A=!1);var n=t.call(this,"ParticleTime",l.LOCAL_STATIC,4,0)||this;return n._pStateClass=S,n._iUsesDuration=e,n._iUsesLooping=i,n._iUsesDelay=A,n}return I(e,t),e.prototype.getAGALVertexCode=function(t,e,i,A){var n=i.getFreeVertexAttribute();A.setRegisterIndex(this,S.TIME_STREAM_INDEX,n.index);var r=i.getFreeVertexConstant();A.setRegisterIndex(this,S.TIME_CONSTANT_INDEX,r.index);var o="";o+="sub "+A.vertexTime+","+r+","+n+".x\n";var s=i.getFreeVertexSingleTemp();if(o+="sge "+s+","+A.vertexTime+","+A.vertexZeroConst+"\n",o+="mul "+A.scaleAndRotateTarget+".xyz,"+A.scaleAndRotateTarget+".xyz,"+s+"\n",this._iUsesDuration)if(this._iUsesLooping){var a=i.getFreeVertexSingleTemp();this._iUsesDelay?(o+="div "+a+","+A.vertexTime+","+n+".z\n",o+="frc "+a+","+a+"\n",o+="mul "+A.vertexTime+","+a+","+n+".z\n",o+="slt "+a+","+A.vertexTime+","+n+".y\n",o+="mul "+A.scaleAndRotateTarget+".xyz,"+A.scaleAndRotateTarget+".xyz,"+a+"\n"):(o+="mul "+a+","+A.vertexTime+","+n+".w\n",o+="frc "+a+","+a+"\n",o+="mul "+A.vertexTime+","+a+","+n+".y\n")}else{var g=i.getFreeVertexSingleTemp();o+="sge "+g+","+n+".y,"+A.vertexTime+"\n",o+="mul "+A.scaleAndRotateTarget+".xyz,"+A.scaleAndRotateTarget+".xyz,"+g+"\n"}return o+="mul "+A.vertexLife+","+A.vertexTime+","+n+".w\n"},e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e.prototype._iGeneratePropertyOfOneParticle=function(t){this._pOneData[0]=t.startTime,this._pOneData[1]=t.duration,this._pOneData[2]=t.delay+t.duration,this._pOneData[3]=1/t.duration},e}(y),b=function(t){function e(e){return t.call(this,e)||this}return I(e,t),e}(e.ErrorBase),N=function(t){function i(){var e=t.call(this)||this;return e._animations=new Array,e._animationNames=new Array,e._animationDictionary=new Object,e}return I(i,t),i.prototype._pFindTempReg=function(t,e){void 0===e&&(e=null);for(var i,A=0;;){if(i="vt"+A,-1==t.indexOf(i)&&e!=i)return i;++A}},Object.defineProperty(i.prototype,"usesCPU",{get:function(){return this._usesCPU},enumerable:!1,configurable:!0}),i.prototype.resetGPUCompatibility=function(){this._usesCPU=!1},i.prototype.cancelGPUCompatibility=function(){this._usesCPU=!0},i.prototype.getAGALVertexCode=function(t,i,A){throw new e.AbstractMethodError},i.prototype.getAGALFragmentCode=function(t,i,A){throw new e.AbstractMethodError},i.prototype.getAGALUVCode=function(t,i,A){throw new e.AbstractMethodError},i.prototype.doneAGALCode=function(t){throw new e.AbstractMethodError},Object.defineProperty(i.prototype,"assetType",{get:function(){return i.assetType},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"animations",{get:function(){return this._animations},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"animationNames",{get:function(){return this._animationNames},enumerable:!1,configurable:!0}),i.prototype.hasAnimation=function(t){return null!=this._animationDictionary[t]},i.prototype.getAnimation=function(t){return this._animationDictionary[t]},i.prototype.addAnimation=function(t){if(this._animationDictionary[t.name])throw new b("root node name '"+t.name+"' already exists in the set");this._animationDictionary[t.name]=t,this._animations.push(t),this._animationNames.push(t.name)},i.prototype.dispose=function(){},i.assetType="[asset AnimationSet]",i}(e.AssetBase),R=function(t){function e(e,i,A){void 0===e&&(e=!1),void 0===i&&(i=!1),void 0===A&&(A=!1);var n=t.call(this)||this;return n._animationElements=new Object,n._particleNodes=new Array,n._localDynamicNodes=new Array,n._localStaticNodes=new Array,n._totalLenOfOneVertex=0,n.addAnimation(n._timeNode=new w(e,i,A)),n}return I(e,t),Object.defineProperty(e.prototype,"particleNodes",{get:function(){return this._particleNodes},enumerable:!1,configurable:!0}),e.prototype.addAnimation=function(e){var i,A=e;for(A._iProcessAnimationSetting(this),A.mode==l.LOCAL_STATIC?(A._iDataOffset=this._totalLenOfOneVertex,this._totalLenOfOneVertex+=A.dataLength,this._localStaticNodes.push(A)):A.mode==l.LOCAL_DYNAMIC&&this._localDynamicNodes.push(A),i=this._particleNodes.length-1;i>=0&&!(this._particleNodes[i].priority<=A.priority);i--);this._particleNodes.splice(i+1,0,A),t.prototype.addAnimation.call(this,e)},e.prototype.getAGALVertexCode=function(t,A,n){this._iAnimationRegisterData=t.animationRegisterData,null==this._iAnimationRegisterData&&(this._iAnimationRegisterData=t.animationRegisterData=new i.AnimationRegisterData),this._iAnimationRegisterData.reset(A,n,this.needVelocity);for(var r,o="",s=n.animatableAttributes.length,a=0;a<s;a++)o+="mov "+n.animationTargetRegisters[a]+","+n.animatableAttributes[a]+"\n";for(o+="mov "+this._iAnimationRegisterData.positionTarget+".xyz,"+this._iAnimationRegisterData.vertexZeroConst+"\n",this.needVelocity&&(o+="mov "+this._iAnimationRegisterData.velocityTarget+".xyz,"+this._iAnimationRegisterData.vertexZeroConst+"\n"),a=0;a<this._particleNodes.length;a++)(r=this._particleNodes[a]).priority<e.POST_PRIORITY&&(o+=r.getAGALVertexCode(t,this,A,this._iAnimationRegisterData));for(o+="add "+this._iAnimationRegisterData.scaleAndRotateTarget+".xyz,"+this._iAnimationRegisterData.scaleAndRotateTarget+".xyz,"+this._iAnimationRegisterData.positionTarget+".xyz\n",a=0;a<this._particleNodes.length;a++)(r=this._particleNodes[a]).priority>=e.POST_PRIORITY&&r.priority<e.COLOR_PRIORITY&&(o+=r.getAGALVertexCode(t,this,A,this._iAnimationRegisterData));for(this.hasColorMulNode&&(this._iAnimationRegisterData.colorMulTarget=A.getFreeVertexVectorTemp(),A.addVertexTempUsages(this._iAnimationRegisterData.colorMulTarget,1),this._iAnimationRegisterData.colorMulVary=A.getFreeVarying(),o+="mov "+this._iAnimationRegisterData.colorMulTarget+","+this._iAnimationRegisterData.vertexOneConst+"\n"),this.hasColorAddNode&&(this._iAnimationRegisterData.colorAddTarget=A.getFreeVertexVectorTemp(),A.addVertexTempUsages(this._iAnimationRegisterData.colorAddTarget,1),this._iAnimationRegisterData.colorAddVary=A.getFreeVarying(),o+="mov "+this._iAnimationRegisterData.colorAddTarget+","+this._iAnimationRegisterData.vertexZeroConst+"\n"),a=0;a<this._particleNodes.length;a++)(r=this._particleNodes[a]).priority>=e.COLOR_PRIORITY&&(o+=r.getAGALVertexCode(t,this,A,this._iAnimationRegisterData));return t.usesFragmentAnimation&&(this.hasColorAddNode||this.hasColorMulNode)&&(this.hasColorMulNode&&(o+="mov "+this._iAnimationRegisterData.colorMulVary+","+this._iAnimationRegisterData.colorMulTarget+"\n"),this.hasColorAddNode&&(o+="mov "+this._iAnimationRegisterData.colorAddVary+","+this._iAnimationRegisterData.colorAddTarget+"\n")),o},e.prototype.getAGALUVCode=function(t,e,i){var A="";if(this.hasUVNode){this._iAnimationRegisterData.setUVSourceAndTarget(i),A+="mov "+this._iAnimationRegisterData.uvTarget+".xy,"+this._iAnimationRegisterData.uvAttribute.toString()+"\n";for(var n=void 0,r=0;r<this._particleNodes.length;r++)n=this._particleNodes[r];A+=n.getAGALUVCode(t,this,e,this._iAnimationRegisterData),A+="mov "+this._iAnimationRegisterData.uvVar+","+this._iAnimationRegisterData.uvTarget+".xy\n"}else A+="mov "+i.animatedUV+","+i.uvInput+"\n";return A},e.prototype.getAGALFragmentCode=function(t,e,i){var A="";return t.usesFragmentAnimation&&(this.hasColorAddNode||this.hasColorMulNode)&&(this.hasColorMulNode&&(A+="mul "+i+","+i+","+this._iAnimationRegisterData.colorMulVary+"\n"),this.hasColorAddNode&&(A+="add "+i+","+i+","+this._iAnimationRegisterData.colorAddVary+"\n")),A},e.prototype.doneAGALCode=function(t){t.setVertexConst(this._iAnimationRegisterData.vertexZeroConst.index,0,1,2,0)},Object.defineProperty(e.prototype,"usesCPU",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.cancelGPUCompatibility=function(){},e.prototype.dispose=function(){for(var e in this._animationElements)this._animationElements[e].dispose();t.prototype.dispose.call(this)},e.prototype.getAnimationElements=function(t,e){var i=this._animationElements[e.id];return i||(this._iGenerateAnimationElements(t),this._animationElements[e.id])},e.prototype._iGenerateAnimationElements=function(t){if(null==this.initParticleFunc)throw new Error("no initParticleFunc set");var e,i,A,n,o,s,l=!1;for(e=0;e<t.numElements;e++)o=t.elements[e],this._animationElements[o.id]||((n=this._animationElements[o.id]=new r).createVertexData(o.numVertices,this._totalLenOfOneVertex),l=!0);if(l){var h,I,c,p,C,u,d,_,f,E,y,B=t.particles,m=B.length,Q=t.numParticles,D=new g;for(D.total=Q,D.startTime=0,D.duration=1e3,D.delay=.1,e=0,i=0;e<Q;){for(D.index=e,this.initParticleFunc.call(this.initParticleScope,D),A=0;A<this._localStaticNodes.length;A++)this._localStaticNodes[A]._iGeneratePropertyOfOneParticle(D);for(;i<m&&(h=B[i]).particleIndex==e;){for(A=0;A<t.numElements;A++)if((o=t.elements[A])==h.elements){n=this._animationElements[o.id];break}for(d=h.numVertices,_=n.vertexData,f=d*this._totalLenOfOneVertex,E=n.numProcessedVertices*this._totalLenOfOneVertex,A=0;A<this._localStaticNodes.length;A++)for(u=(s=this._localStaticNodes[A]).oneData,I=s.dataLength,c=E+s._iDataOffset,p=0;p<f;p+=this._totalLenOfOneVertex)for(y=c+p,C=0;C<I;C++)_[y+C]=u[C];this._localDynamicNodes.length&&n.animationParticles.push(new a(e,D.startTime,D.duration,D.delay,h)),n.numProcessedVertices+=d,i++}e++}}},e.POST_PRIORITY=9,e.COLOR_PRIORITY=18,e}(N),F=function(t){function i(i,A,n,r,o,s,a,g,l){void 0===A&&(A=!0),void 0===n&&(n=!0),void 0===r&&(r=!1),void 0===o&&(o=!1),void 0===s&&(s=null),void 0===a&&(a=null),void 0===g&&(g=1),void 0===l&&(l=0);var h=t.call(this,"ParticleColor",i,A&&n?16:8,R.COLOR_PRIORITY)||this;return h._pStateClass=x,h._iUsesMultiplier=A,h._iUsesOffset=n,h._iUsesCycle=r,h._iUsesPhase=o,h._iStartColor=s||new e.ColorTransform,h._iEndColor=a||new e.ColorTransform,h._iCycleDuration=g,h._iCyclePhase=l,h}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,A){var n="";if(t.usesFragmentAnimation){var r=i.getFreeVertexVectorTemp();if(this._iUsesCycle){var o=i.getFreeVertexConstant();A.setRegisterIndex(this,x.CYCLE_INDEX,o.index),i.addVertexTempUsages(r,1);var s=i.getFreeVertexSingleTemp();i.removeVertexTempUsage(r),n+="mul "+s+","+A.vertexTime+","+o+".x\n",this._iUsesPhase&&(n+="add "+s+","+s+","+o+".y\n"),n+="sin "+s+","+s+"\n"}if(this._iUsesMultiplier){var a=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute(),g=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();A.setRegisterIndex(this,x.START_MULTIPLIER_INDEX,a.index),A.setRegisterIndex(this,x.DELTA_MULTIPLIER_INDEX,g.index),n+="mul "+r+","+g+","+(this._iUsesCycle?s:A.vertexLife)+"\n",n+="add "+r+","+r+","+a+"\n",n+="mul "+A.colorMulTarget+","+r+","+A.colorMulTarget+"\n"}if(this._iUsesOffset){var h=this._pMode==l.LOCAL_STATIC?i.getFreeVertexAttribute():i.getFreeVertexConstant(),I=this._pMode==l.LOCAL_STATIC?i.getFreeVertexAttribute():i.getFreeVertexConstant();A.setRegisterIndex(this,x.START_OFFSET_INDEX,h.index),A.setRegisterIndex(this,x.DELTA_OFFSET_INDEX,I.index),n+="mul "+r+","+I+","+(this._iUsesCycle?s:A.vertexLife)+"\n",n+="add "+r+","+r+","+h+"\n",n+="add "+A.colorAddTarget+","+r+","+A.colorAddTarget+"\n"}}return n},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iProcessAnimationSetting=function(t){this._iUsesMultiplier&&(t.hasColorMulNode=!0),this._iUsesOffset&&(t.hasColorAddNode=!0)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.COLOR_START_COLORTRANSFORM];if(!e)throw new Error("there is no "+i.COLOR_START_COLORTRANSFORM+" in param!");var A=t[i.COLOR_END_COLORTRANSFORM];if(!A)throw new Error("there is no "+i.COLOR_END_COLORTRANSFORM+" in param!");var n=0;this._iUsesCycle?(this._iUsesMultiplier&&(this._pOneData[n++]=(e.redMultiplier+A.redMultiplier)/2,this._pOneData[n++]=(e.greenMultiplier+A.greenMultiplier)/2,this._pOneData[n++]=(e.blueMultiplier+A.blueMultiplier)/2,this._pOneData[n++]=(e.alphaMultiplier+A.alphaMultiplier)/2,this._pOneData[n++]=(e.redMultiplier-A.redMultiplier)/2,this._pOneData[n++]=(e.greenMultiplier-A.greenMultiplier)/2,this._pOneData[n++]=(e.blueMultiplier-A.blueMultiplier)/2,this._pOneData[n++]=(e.alphaMultiplier-A.alphaMultiplier)/2),this._iUsesOffset&&(this._pOneData[n++]=(e.redOffset+A.redOffset)/510,this._pOneData[n++]=(e.greenOffset+A.greenOffset)/510,this._pOneData[n++]=(e.blueOffset+A.blueOffset)/510,this._pOneData[n++]=(e.alphaOffset+A.alphaOffset)/510,this._pOneData[n++]=(e.redOffset-A.redOffset)/510,this._pOneData[n++]=(e.greenOffset-A.greenOffset)/510,this._pOneData[n++]=(e.blueOffset-A.blueOffset)/510,this._pOneData[n++]=(e.alphaOffset-A.alphaOffset)/510)):(this._iUsesMultiplier&&(this._pOneData[n++]=e.redMultiplier,this._pOneData[n++]=e.greenMultiplier,this._pOneData[n++]=e.blueMultiplier,this._pOneData[n++]=e.alphaMultiplier,this._pOneData[n++]=A.redMultiplier-e.redMultiplier,this._pOneData[n++]=A.greenMultiplier-e.greenMultiplier,this._pOneData[n++]=A.blueMultiplier-e.blueMultiplier,this._pOneData[n++]=A.alphaMultiplier-e.alphaMultiplier),this._iUsesOffset&&(this._pOneData[n++]=e.redOffset/255,this._pOneData[n++]=e.greenOffset/255,this._pOneData[n++]=e.blueOffset/255,this._pOneData[n++]=e.alphaOffset/255,this._pOneData[n++]=(A.redOffset-e.redOffset)/255,this._pOneData[n++]=(A.greenOffset-e.greenOffset)/255,this._pOneData[n++]=(A.blueOffset-e.blueOffset)/255,this._pOneData[n++]=(A.alphaOffset-e.alphaOffset)/255))},i.COLOR_START_COLORTRANSFORM="ColorStartColorTransform",i.COLOR_END_COLORTRANSFORM="ColorEndColorTransform",i}(y),T=function(t){function i(i,A){var n=t.call(this,i,A,!0)||this;return n._targetPos=new e.Vector3D,n._targetEuler=new e.Vector3D,n._temp=new e.Vector3D,n._particleFollowNode=A,n._smooth=A._iSmooth,n}return I(i,t),Object.defineProperty(i.prototype,"followTarget",{get:function(){return this._followTarget},set:function(t){this._followTarget=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"smooth",{get:function(){return this._smooth},set:function(t){this._smooth=t},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,e,n,r){this._followTarget&&(this._particleFollowNode._iUsesPosition&&(this._targetPos.x=this._followTarget.transform.position.x/e.entity.node.container.transform.scale.x,this._targetPos.y=this._followTarget.transform.position.y/e.entity.node.container.transform.scale.y,this._targetPos.z=this._followTarget.transform.position.z/e.entity.node.container.transform.scale.z),this._particleFollowNode._iUsesRotation&&(this._targetEuler.x=this._followTarget.transform.rotation.x,this._targetEuler.y=this._followTarget.transform.rotation.y,this._targetEuler.z=this._followTarget.transform.rotation.z)),this._prePos||(this._prePos=this._targetPos.clone()),this._preEuler||(this._preEuler=this._targetEuler.clone());var o=this._pTime/1e3,s=n.previousTime,a=o-s,g=s!=o;this._particleFollowNode._iUsesPosition&&this._particleFollowNode._iUsesRotation?(g&&this.processPositionAndRotation(o,a,n),n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.FOLLOW_POSITION_INDEX),this._particleFollowNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3),n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.FOLLOW_ROTATION_INDEX),this._particleFollowNode._iDataOffset+3,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3)):this._particleFollowNode._iUsesPosition?(g&&this.processPosition(o,a,n),n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.FOLLOW_POSITION_INDEX),this._particleFollowNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3)):this._particleFollowNode._iUsesRotation&&(g&&this.precessRotation(o,a,n),n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.FOLLOW_ROTATION_INDEX),this._particleFollowNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3)),this._prePos.copyFrom(this._targetPos),this._targetEuler.copyFrom(this._targetEuler),n.previousTime=o},i.prototype.processPosition=function(t,e,i){var A,n,r=i.animationParticles,o=i.vertexData,s=!1,a=r.length;this._smooth?(n=this._prePos.subtract(this._targetPos)).scaleBy(1/e):A=this._targetPos;for(var g=0;g<a;g++){var l=(t-r[g].startTime)/r[g].totalTime,h=(l-Math.floor(l))*r[g].totalTime;if(h-e<=0){var I=r[g].startVertexIndex*i.totalLenOfOneVertex+this._particleFollowNode._iDataOffset;if(this._smooth&&(this._temp.copyFrom(n),this._temp.scaleBy(h),A=this._targetPos.add(this._temp)),o[I]!=A.x||o[I+1]!=A.y||o[I+2]!=A.z){s=!0;for(var c=0;c<r[g].numVertices;c++)o[I++]=A.x,o[I++]=A.y,o[I++]=A.z}}}s&&i.invalidateBuffer()},i.prototype.precessRotation=function(t,e,i){var A,n,r=i.animationParticles,o=i.vertexData,s=!1,a=r.length;this._smooth?(n=this._preEuler.subtract(this._targetEuler)).scaleBy(1/e):A=this._targetEuler;for(var g=0;g<a;g++){var l=(t-r[g].startTime)/r[g].totalTime,h=(l-Math.floor(l))*r[g].totalTime;if(h-e<=0){var I=r[g].startVertexIndex*i.totalLenOfOneVertex+this._particleFollowNode._iDataOffset;if(this._smooth&&(this._temp.copyFrom(n),this._temp.scaleBy(h),A=this._targetEuler.add(this._temp)),o[I]!=A.x||o[I+1]!=A.y||o[I+2]!=A.z){s=!0;for(var c=0;c<r[g].numVertices;c++)o[I++]=A.x,o[I++]=A.y,o[I++]=A.z}}}s&&i.invalidateBuffer()},i.prototype.processPositionAndRotation=function(t,e,i){var A,n,r,o,s=i.animationParticles,a=i.vertexData,g=!1,l=s.length;this._smooth?((r=this._prePos.subtract(this._targetPos)).scaleBy(1/e),(o=this._preEuler.subtract(this._targetEuler)).scaleBy(1/e)):(A=this._targetPos,n=this._targetEuler);for(var h=0;h<l;h++){var I=(t-s[h].startTime)/s[h].totalTime,c=(I-Math.floor(I))*s[h].totalTime;if(c-e<=0){var p=s[h].startVertexIndex*i.totalLenOfOneVertex+this._particleFollowNode._iDataOffset;if(this._smooth&&(this._temp.copyFrom(r),this._temp.scaleBy(c),A=this._targetPos.add(this._temp),this._temp.copyFrom(o),this._temp.scaleBy(c),n=this._targetEuler.add(this._temp)),a[p]!=A.x||a[p+1]!=A.y||a[p+2]!=A.z||a[p+3]!=n.x||a[p+4]!=n.y||a[p+5]!=n.z){g=!0;for(var C=0;C<s[h].numVertices;C++)a[p++]=A.x,a[p++]=A.y,a[p++]=A.z,a[p++]=n.x,a[p++]=n.y,a[p++]=n.z}}}g&&i.invalidateBuffer()},i.FOLLOW_POSITION_INDEX=0,i.FOLLOW_ROTATION_INDEX=1,i}(f),O=function(t){function e(e,i,A){void 0===e&&(e=!0),void 0===i&&(i=!0),void 0===A&&(A=!1);var n=t.call(this,"ParticleFollow",l.LOCAL_DYNAMIC,e&&i?6:3,R.POST_PRIORITY)||this;return n._pStateClass=T,n._iUsesPosition=e,n._iUsesRotation=i,n._iSmooth=A,n}return I(e,t),e.prototype.getAGALVertexCode=function(t,e,i,A){var n="";if(this._iUsesRotation){var r=i.getFreeVertexAttribute();A.setRegisterIndex(this,T.FOLLOW_ROTATION_INDEX,r.index);var o=i.getFreeVertexVectorTemp();i.addVertexTempUsages(o,1);var s=i.getFreeVertexVectorTemp();i.addVertexTempUsages(s,1);var a=i.getFreeVertexVectorTemp(),g=void 0;e.hasBillboard&&(i.addVertexTempUsages(a,1),g=i.getFreeVertexVectorTemp()),i.removeVertexTempUsage(o),i.removeVertexTempUsage(s),e.hasBillboard&&i.removeVertexTempUsage(a);var l=A.rotationRegisters.length,h=void 0;if(n+="mov "+o+","+A.vertexZeroConst+"\n",n+="mov "+o+".x,"+A.vertexOneConst+"\n",n+="mov "+a+","+A.vertexZeroConst+"\n",n+="sin "+a+".y,"+r+".x\n",n+="cos "+a+".z,"+r+".x\n",n+="mov "+s+".x,"+A.vertexZeroConst+"\n",n+="mov "+s+".y,"+a+".z\n",n+="neg "+s+".z,"+a+".y\n",e.hasBillboard)n+="m33 "+g+".xyz,"+A.positionTarget+".xyz,"+o+"\n";else for(n+="m33 "+A.scaleAndRotateTarget+".xyz,"+A.scaleAndRotateTarget+".xyz,"+o+"\n",h=0;h<l;h++)n+="m33 "+A.rotationRegisters[h]+".xyz,"+A.rotationRegisters[h]+","+o+"\n";if(n+="mov "+o+","+A.vertexZeroConst+"\n",n+="cos "+o+".x,"+r+".y\n",n+="sin "+o+".z,"+r+".y\n",n+="mov "+s+","+A.vertexZeroConst+"\n",n+="mov "+s+".y,"+A.vertexOneConst+"\n",n+="mov "+a+","+A.vertexZeroConst+"\n",n+="neg "+a+".x,"+o+".z\n",n+="mov "+a+".z,"+o+".x\n",e.hasBillboard)n+="m33 "+g+".xyz,"+g+".xyz,"+o+"\n";else for(n+="m33 "+A.scaleAndRotateTarget+".xyz,"+A.scaleAndRotateTarget+".xyz,"+o+"\n",h=0;h<l;h++)n+="m33 "+A.rotationRegisters[h]+".xyz,"+A.rotationRegisters[h]+","+o+"\n";if(n+="mov "+s+","+A.vertexZeroConst+"\n",n+="sin "+s+".x,"+r+".z\n",n+="cos "+s+".y,"+r+".z\n",n+="mov "+o+","+A.vertexZeroConst+"\n",n+="mov "+o+".x,"+s+".y\n",n+="neg "+o+".y,"+s+".x\n",n+="mov "+a+","+A.vertexZeroConst+"\n",n+="mov "+a+".z,"+A.vertexOneConst+"\n",e.hasBillboard)n+="m33 "+g+".xyz,"+g+".xyz,"+o+"\n",n+="sub "+g+".xyz,"+g+".xyz,"+A.positionTarget+".xyz\n",n+="add "+A.scaleAndRotateTarget+".xyz,"+g+".xyz,"+A.scaleAndRotateTarget+".xyz\n";else for(n+="m33 "+A.scaleAndRotateTarget+".xyz,"+A.scaleAndRotateTarget+".xyz,"+o+"\n",h=0;h<l;h++)n+="m33 "+A.rotationRegisters[h]+".xyz,"+A.rotationRegisters[h]+","+o+"\n"}if(this._iUsesPosition){var I=i.getFreeVertexAttribute();A.setRegisterIndex(this,T.FOLLOW_POSITION_INDEX,I.index),n+="add "+A.scaleAndRotateTarget+".xyz,"+I+","+A.scaleAndRotateTarget+".xyz\n"}return n},e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e}(y),M=function(t){function i(e,i){var A=t.call(this,e,i)||this;return A._particleInitialColorNode=i,A._usesMultiplier=i._iUsesMultiplier,A._usesOffset=i._iUsesOffset,A._initialColor=i._iInitialColor,A.updateColorData(),A}return I(i,t),Object.defineProperty(i.prototype,"initialColor",{get:function(){return this._initialColor},set:function(t){this._initialColor=t},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,e,n,r){if(t.usesFragmentAnimation)if(this._particleInitialColorNode.mode==l.LOCAL_STATIC){var o=this._particleInitialColorNode._iDataOffset;this._usesMultiplier&&(n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.MULTIPLIER_INDEX),o,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4),o+=4),this._usesOffset&&n.activateVertexBuffer(r.getRegisterIndex(this._pAnimationNode,i.OFFSET_INDEX),o,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4)}else this._usesMultiplier&&t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,i.MULTIPLIER_INDEX),this._multiplierData.x,this._multiplierData.y,this._multiplierData.z,this._multiplierData.w),this._usesOffset&&t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,i.OFFSET_INDEX),this._offsetData.x,this._offsetData.y,this._offsetData.z,this._offsetData.w)},i.prototype.updateColorData=function(){this._particleInitialColorNode.mode==l.GLOBAL&&(this._usesMultiplier&&(this._multiplierData=new e.Vector3D(this._initialColor.redMultiplier,this._initialColor.greenMultiplier,this._initialColor.blueMultiplier,this._initialColor.alphaMultiplier)),this._usesOffset&&(this._offsetData=new e.Vector3D(this._initialColor.redOffset/255,this._initialColor.greenOffset/255,this._initialColor.blueOffset/255,this._initialColor.alphaOffset/255)))},i.MULTIPLIER_INDEX=0,i.OFFSET_INDEX=1,i}(f),P=function(t){function i(i,A,n,r){void 0===A&&(A=!0),void 0===n&&(n=!1),void 0===r&&(r=null);var o=t.call(this,"ParticleInitialColor",i,A&&n?8:4,R.COLOR_PRIORITY)||this;return o._pStateClass=M,o._iUsesMultiplier=A,o._iUsesOffset=n,o._iInitialColor=r||new e.ColorTransform,o}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,A){var n="";if(t.usesFragmentAnimation){if(this._iUsesMultiplier){var r=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();A.setRegisterIndex(this,M.MULTIPLIER_INDEX,r.index),n+="mul "+A.colorMulTarget+","+r+","+A.colorMulTarget+"\n"}if(this._iUsesOffset){var o=this._pMode==l.LOCAL_STATIC?i.getFreeVertexAttribute():i.getFreeVertexConstant();A.setRegisterIndex(this,M.OFFSET_INDEX,o.index),n+="add "+A.colorAddTarget+","+o+","+A.colorAddTarget+"\n"}}return n},i.prototype._iProcessAnimationSetting=function(t){this._iUsesMultiplier&&(t.hasColorMulNode=!0),this._iUsesOffset&&(t.hasColorAddNode=!0)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.COLOR_INITIAL_COLORTRANSFORM];if(!e)throw new Error("there is no "+i.COLOR_INITIAL_COLORTRANSFORM+" in param!");var A=0;this._iUsesMultiplier&&(this._pOneData[A++]=e.redMultiplier,this._pOneData[A++]=e.greenMultiplier,this._pOneData[A++]=e.blueMultiplier,this._pOneData[A++]=e.alphaMultiplier),this._iUsesOffset&&(this._pOneData[A++]=e.redOffset/255,this._pOneData[A++]=e.greenOffset/255,this._pOneData[A++]=e.blueOffset/255,this._pOneData[A++]=e.alphaOffset/255)},i.COLOR_INITIAL_COLORTRANSFORM="ColorInitialColorTransform",i}(y),L=function(t){function i(e,i){var A=t.call(this,e,i)||this;return A._particleOrbitNode=i,A._usesEulers=A._particleOrbitNode._iUsesEulers,A._usesCycle=A._particleOrbitNode._iUsesCycle,A._usesPhase=A._particleOrbitNode._iUsesPhase,A._eulers=A._particleOrbitNode._iEulers,A._radius=A._particleOrbitNode._iRadius,A._cycleDuration=A._particleOrbitNode._iCycleDuration,A._cyclePhase=A._particleOrbitNode._iCyclePhase,A.updateOrbitData(),A}return I(i,t),Object.defineProperty(i.prototype,"radius",{get:function(){return this._radius},set:function(t){this._radius=t,this.updateOrbitData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"cycleDuration",{get:function(){return this._cycleDuration},set:function(t){this._cycleDuration=t,this.updateOrbitData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"cyclePhase",{get:function(){return this._cyclePhase},set:function(t){this._cyclePhase=t,this.updateOrbitData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"eulers",{get:function(){return this._eulers},set:function(t){this._eulers=t,this.updateOrbitData()},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,e,n,r){var o=r.getRegisterIndex(this._pAnimationNode,i.ORBIT_INDEX);this._particleOrbitNode.mode==l.LOCAL_STATIC?this._usesPhase?n.activateVertexBuffer(o,this._particleOrbitNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4):n.activateVertexBuffer(o,this._particleOrbitNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3):t.setVertexConst(o,this._orbitData.x,this._orbitData.y,this._orbitData.z,this._orbitData.w),this._usesEulers&&t.setVertexConstFromMatrix(r.getRegisterIndex(this._pAnimationNode,i.EULERS_INDEX),this._eulersMatrix)},i.prototype.updateOrbitData=function(){if(this._usesEulers&&(this._eulersMatrix=new e.Matrix3D,this._eulersMatrix.appendRotation(this._eulers.x,e.Vector3D.X_AXIS),this._eulersMatrix.appendRotation(this._eulers.y,e.Vector3D.Y_AXIS),this._eulersMatrix.appendRotation(this._eulers.z,e.Vector3D.Z_AXIS)),this._particleOrbitNode.mode==l.GLOBAL)if(this._orbitData=new e.Vector3D(this._radius,0,this._radius*Math.PI*2,this._cyclePhase*Math.PI/180),this._usesCycle){if(this._cycleDuration<=0)throw new Error("the cycle duration must be greater than zero");this._orbitData.y=2*Math.PI/this._cycleDuration}else this._orbitData.y=2*Math.PI},i.ORBIT_INDEX=0,i.EULERS_INDEX=1,i}(f),U=function(t){function i(i,A,n,r,o,s,a,g){void 0===A&&(A=!0),void 0===n&&(n=!1),void 0===r&&(r=!1),void 0===o&&(o=100),void 0===s&&(s=1),void 0===a&&(a=0),void 0===g&&(g=null);var l=this,h=3;return r&&h++,(l=t.call(this,"ParticleOrbit",i,h)||this)._pStateClass=L,l._iUsesEulers=A,l._iUsesCycle=n,l._iUsesPhase=r,l._iRadius=o,l._iCycleDuration=s,l._iCyclePhase=a,l._iEulers=g||new e.Vector3D,l}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,n){var r=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();n.setRegisterIndex(this,L.ORBIT_INDEX,r.index);var o=i.getFreeVertexConstant();n.setRegisterIndex(this,L.EULERS_INDEX,o.index),i.getFreeVertexConstant(),i.getFreeVertexConstant(),i.getFreeVertexConstant();var s=i.getFreeVertexVectorTemp();i.addVertexTempUsages(s,1);var a=new A.ShaderRegisterElement(s.regName,s.index),g=i.getFreeVertexVectorTemp(),h=new A.ShaderRegisterElement(g.regName,g.index,0),I=new A.ShaderRegisterElement(g.regName,g.index,1),c=new A.ShaderRegisterElement(g.regName,g.index,2);i.removeVertexTempUsage(s);var p="";return this._iUsesCycle?(p+="mul "+c+","+n.vertexTime+","+r+".y\n",this._iUsesPhase&&(p+="add "+c+","+c+","+r+".w\n")):p+="mul "+c+","+n.vertexLife+","+r+".y\n",p+="cos "+h+","+c+"\n",p+="sin "+I+","+c+"\n",p+="mul "+a+".x,"+h+","+r+".x\n",p+="mul "+a+".y,"+I+","+r+".x\n",p+="mov "+a+".wz"+n.vertexZeroConst+"\n",this._iUsesEulers&&(p+="m44 "+a+","+a+","+o+"\n"),p+="add "+n.positionTarget+".xyz,"+a+".xyz,"+n.positionTarget+".xyz\n",e.needVelocity&&(p+="neg "+a+".x,"+I+"\n",p+="mov "+a+".y,"+h+"\n",p+="mov "+a+".zw,"+n.vertexZeroConst+"\n",this._iUsesEulers&&(p+="m44 "+a+","+a+","+o+"\n"),p+="mul "+a+","+a+","+r+".z\n",p+="div "+a+","+a+","+r+".y\n",this._iUsesCycle||(p+="div "+a+","+a+","+n.vertexLife+"\n"),p+="add "+n.velocityTarget+".xyz,"+n.velocityTarget+".xyz,"+a+".xyz\n"),p},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.ORBIT_VECTOR3D];if(!e)throw new Error("there is no "+i.ORBIT_VECTOR3D+" in param!");if(this._pOneData[0]=e.x,this._iUsesCycle&&e.y<=0)throw new Error("the cycle duration must be greater than zero");this._pOneData[1]=2*Math.PI/(this._iUsesCycle?e.y:1),this._pOneData[2]=e.x*Math.PI*2,this._iUsesPhase&&(this._pOneData[3]=e.z*Math.PI/180)},i.ORBIT_VECTOR3D="OrbitVector3D",i}(y),k=function(t){function i(e,i){var A=t.call(this,e,i)||this;return A._particleOscillatorNode=i,A._oscillator=A._particleOscillatorNode._iOscillator,A.updateOscillatorData(),A}return I(i,t),Object.defineProperty(i.prototype,"oscillator",{get:function(){return this._oscillator},set:function(t){this._oscillator=t,this.updateOscillatorData()},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,e,n,r){var o=r.getRegisterIndex(this._pAnimationNode,i.OSCILLATOR_INDEX);this._particleOscillatorNode.mode==l.LOCAL_STATIC?n.activateVertexBuffer(o,this._particleOscillatorNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4):t.setVertexConst(o,this._oscillatorData.x,this._oscillatorData.y,this._oscillatorData.z,this._oscillatorData.w)},i.prototype.updateOscillatorData=function(){if(this._particleOscillatorNode.mode==l.GLOBAL){if(this._oscillator.w<=0)throw new Error("the cycle duration must greater than zero");null==this._oscillatorData&&(this._oscillatorData=new e.Vector3D),this._oscillatorData.x=this._oscillator.x,this._oscillatorData.y=this._oscillator.y,this._oscillatorData.z=this._oscillator.z,this._oscillatorData.w=2*Math.PI/this._oscillator.w}},i.OSCILLATOR_INDEX=0,i}(f),V=function(t){function i(i,A){void 0===A&&(A=null);var n=t.call(this,"ParticleOscillator",i,4)||this;return n._pStateClass=k,n._iOscillator=A||new e.Vector3D,n}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,n){var r=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();n.setRegisterIndex(this,k.OSCILLATOR_INDEX,r.index);var o=i.getFreeVertexVectorTemp(),s=new A.ShaderRegisterElement(o.regName,o.index,0),a=new A.ShaderRegisterElement(o.regName,o.index,1),g=new A.ShaderRegisterElement(o.regName,o.index,2);i.addVertexTempUsages(o,1);var h=i.getFreeVertexVectorTemp(),I=new A.ShaderRegisterElement(h.regName,h.index);i.removeVertexTempUsage(o);var c="";return c+="mul "+s+","+n.vertexTime+","+r+".w\n",c+="sin "+a+","+s+"\n",c+="mul "+I+".xyz,"+a+","+r+".xyz\n",c+="add "+n.positionTarget+".xyz,"+I+".xyz,"+n.positionTarget+".xyz\n",e.needVelocity&&(c+="cos "+g+","+s+"\n",c+="mul "+I+".xyz,"+g+","+r+".xyz\n",c+="add "+n.velocityTarget+".xyz,"+I+".xyz,"+n.velocityTarget+".xyz\n"),c},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.OSCILLATOR_VECTOR3D];if(!e)throw new Error("there is no "+i.OSCILLATOR_VECTOR3D+" in param!");if(this._pOneData[0]=e.x,this._pOneData[1]=e.y,this._pOneData[2]=e.z,e.w<=0)throw new Error("the cycle duration must greater than zero");this._pOneData[3]=2*Math.PI/e.w},i.OSCILLATOR_VECTOR3D="OscillatorVector3D",i}(y),G=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._particlePositionNode=i,A._position=A._particlePositionNode._iPosition,A}return I(e,t),Object.defineProperty(e.prototype,"position",{get:function(){return this._position},set:function(t){this._position=t},enumerable:!1,configurable:!0}),e.prototype.getPositions=function(){return this._pDynamicProperties},e.prototype.setPositions=function(t){this._pDynamicProperties=t,this._pDynamicPropertiesDirty=new Object},e.prototype.setRenderState=function(t,i,n,r){this._particlePositionNode.mode!=l.LOCAL_DYNAMIC||this._pDynamicPropertiesDirty[n._iUniqueId]||this._pUpdateDynamicProperties(n);var o=r.getRegisterIndex(this._pAnimationNode,e.POSITION_INDEX);this._particlePositionNode.mode==l.GLOBAL?t.setVertexConst(o,this._position.x,this._position.y,this._position.z):n.activateVertexBuffer(o,this._particlePositionNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3)},e.POSITION_INDEX=0,e}(f),Y=function(t){function i(i,A){void 0===A&&(A=null);var n=t.call(this,"ParticlePosition",i,3)||this;return n._pStateClass=G,n._iPosition=A||new e.Vector3D,n}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,A){var n=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();return A.setRegisterIndex(this,G.POSITION_INDEX,n.index),"add "+A.positionTarget+".xyz,"+n+".xyz,"+A.positionTarget+".xyz\n"},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.POSITION_VECTOR3D];if(!e)throw new Error("there is no "+i.POSITION_VECTOR3D+" in param!");this._pOneData[0]=e.x,this._pOneData[1]=e.y,this._pOneData[2]=e.z},i.POSITION_VECTOR3D="PositionVector3D",i}(y),K=function(t){function i(i,A){var n=t.call(this,i,A)||this;return n._matrix=new e.Matrix3D,n}return I(i,t),i.prototype.setRenderState=function(t,e,A,n){this._pParticleAnimator.animationSet.hasBillboard&&(this._matrix.copyFrom(e.entity.node.getMatrix3D()),this._matrix.append(t.view.projection.transform.inverseMatrix3D),t.setVertexConstFromMatrix(n.getRegisterIndex(this._pAnimationNode,i.MATRIX_INDEX),this._matrix))},i.MATRIX_INDEX=0,i}(f),z=function(t){function e(){var e=t.call(this,"ParticleRotateToHeading",l.GLOBAL,0,3)||this;return e._pStateClass=K,e}return I(e,t),e.prototype.getAGALVertexCode=function(t,e,i,n){var r,o="",s=n.rotationRegisters.length;if(e.hasBillboard){var a=i.getFreeVertexVectorTemp();i.addVertexTempUsages(a,1);var g=i.getFreeVertexVectorTemp();i.addVertexTempUsages(g,1);var l=i.getFreeVertexVectorTemp(),h=i.getFreeVertexConstant();for(n.setRegisterIndex(this,K.MATRIX_INDEX,h.index),i.getFreeVertexConstant(),i.getFreeVertexConstant(),i.getFreeVertexConstant(),i.removeVertexTempUsage(a),i.removeVertexTempUsage(g),o+="m33 "+a+".xyz,"+n.velocityTarget+".xyz,"+h+"\n",o+="mov "+l+","+n.vertexZeroConst+"\n",o+="mov "+l+".xy,"+a+".xy\n",o+="nrm "+l+".xyz,"+l+".xyz\n",o+="mov "+g+","+n.vertexZeroConst+"\n",o+="mov "+g+".x,"+l+".y\n",o+="mov "+g+".y,"+l+".x\n",o+="mov "+a+","+n.vertexZeroConst+"\n",o+="mov "+a+".x,"+l+".x\n",o+="neg "+a+".y,"+l+".y\n",o+="mov "+l+","+n.vertexZeroConst+"\n",o+="mov "+l+".z,"+n.vertexOneConst+"\n",o+="m33 "+n.scaleAndRotateTarget+".xyz,"+n.scaleAndRotateTarget+".xyz,"+a+"\n",r=0;r<s;r++)o+="m33 "+n.rotationRegisters[r]+".xyz,"+n.rotationRegisters[r]+","+a+"\n"}else{var I=i.getFreeVertexVectorTemp();i.addVertexTempUsages(I,1);var c=i.getFreeVertexVectorTemp();i.addVertexTempUsages(c,1);var p=i.getFreeVertexVectorTemp();i.addVertexTempUsages(p,1);var C=i.getFreeVertexVectorTemp(),u=new A.ShaderRegisterElement(p.regName,p.index,3),d=new A.ShaderRegisterElement(C.regName,C.index,3),_=new A.ShaderRegisterElement(I.regName,I.index,3),f=d;for(i.removeVertexTempUsage(I),i.removeVertexTempUsage(c),i.removeVertexTempUsage(p),o+="mov "+c+".x,"+n.vertexOneConst+"\n",o+="mov "+c+".yz,"+n.vertexZeroConst+"\n",o+="nrm "+I+".xyz,"+n.velocityTarget+".xyz\n",o+="dp3 "+_+","+I+".xyz,"+c+".xyz\n",o+="crs "+I+".xyz,"+c+".xyz,"+I+".xyz\n",o+="nrm "+I+".xyz,"+I+".xyz\n",o+="dp3 "+p+".x,"+I+".xyz,"+I+".xyz\n",o+="sge "+p+".x,"+n.vertexZeroConst+","+p+".x\n",o+="add "+I+".z,"+p+".x,"+I+".z\n",o+="add "+f+","+_+","+n.vertexOneConst+"\n",o+="div "+f+","+f+","+n.vertexTwoConst+"\n",o+="sqt "+u+","+f+"\n",o+="sub "+f+","+n.vertexOneConst+","+_+"\n",o+="div "+f+","+f+","+n.vertexTwoConst+"\n",o+="sqt "+d+","+f+"\n",o+="mul "+p+".xyz,"+d+","+I+".xyz\n",o+="mul "+C+".xyz,"+d+","+I+".xyz\n",o+="neg "+C+".xyz,"+C+".xyz\n",o+="crs "+I+".xyz,"+p+".xyz,"+n.scaleAndRotateTarget+".xyz\n",o+="mul "+c+".xyz,"+u+","+n.scaleAndRotateTarget+".xyz\n",o+="add "+I+".xyz,"+I+".xyz,"+c+".xyz\n",o+="dp3 "+c+".w,"+p+".xyz,"+n.scaleAndRotateTarget+".xyz\n",o+="neg "+I+".w,"+c+".w\n",o+="crs "+p+".xyz,"+I+".xyz,"+C+".xyz\n",o+="mul "+c+".xyzw,"+I+".xyzw,"+u+"\n",o+="add "+p+".xyz,"+p+".xyz,"+c+".xyz\n",o+="mul "+c+".xyz,"+I+".w,"+C+".xyz\n",o+="add "+n.scaleAndRotateTarget+".xyz,"+p+".xyz,"+c+".xyz\n",r=0;r<s;r++)o+="mov "+c+".x,"+n.vertexOneConst+"\n",o+="mov "+c+".yz,"+n.vertexZeroConst+"\n",o+="nrm "+I+".xyz,"+n.velocityTarget+".xyz\n",o+="dp3 "+_+","+I+".xyz,"+c+".xyz\n",o+="crs "+I+".xyz,"+c+".xyz,"+I+".xyz\n",o+="nrm "+I+".xyz,"+I+".xyz\n",o+="dp3 "+p+".x,"+I+".xyz,"+I+".xyz\n",o+="sge "+p+".x,"+n.vertexZeroConst+","+p+".x\n",o+="add "+I+".z,"+p+".x,"+I+".z\n",o+="add "+f+","+_+","+n.vertexOneConst+"\n",o+="div "+f+","+f+","+n.vertexTwoConst+"\n",o+="sqt "+u+","+f+"\n",o+="sub "+f+","+n.vertexOneConst+","+_+"\n",o+="div "+f+","+f+","+n.vertexTwoConst+"\n",o+="sqt "+d+","+f+"\n",o+="mul "+p+".xyz,"+d+","+I+".xyz\n",o+="mul "+C+".xyz,"+d+","+I+".xyz\n",o+="neg "+C+".xyz,"+C+".xyz\n",o+="crs "+I+".xyz,"+p+".xyz,"+n.rotationRegisters[r]+".xyz\n",o+="mul "+c+".xyz,"+u+","+n.rotationRegisters[r]+".xyz\n",o+="add "+I+".xyz,"+I+".xyz,"+c+".xyz\n",o+="dp3 "+c+".w,"+p+".xyz,"+n.rotationRegisters[r]+".xyz\n",o+="neg "+I+".w,"+c+".w\n",o+="crs "+p+".xyz,"+I+".xyz,"+C+".xyz\n",o+="mul "+c+".xyzw,"+I+".xyzw,"+u+"\n",o+="add "+p+".xyz,"+p+".xyz,"+c+".xyz\n",o+="mul "+c+".xyz,"+I+".w,"+C+".xyz\n",o+="add "+n.rotationRegisters[r]+".xyz,"+p+".xyz,"+c+".xyz\n"}return o},e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e.prototype._iProcessAnimationSetting=function(t){t.needVelocity=!0},e}(y),J=function(t){function i(i,A){var n=t.call(this,i,A)||this;return n._matrix=new e.Matrix3D,n._particleRotateToPositionNode=A,n._position=n._particleRotateToPositionNode._iPosition,n}return I(i,t),Object.defineProperty(i.prototype,"position",{get:function(){return this._position},set:function(t){this._position=t},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,e,n,r){var o=r.getRegisterIndex(this._pAnimationNode,i.POSITION_INDEX);this._pParticleAnimator.animationSet.hasBillboard&&(this._matrix.copyFrom(e.entity.node.getMatrix3D()),this._matrix.append(t.view.projection.transform.inverseMatrix3D),t.setVertexConstFromMatrix(r.getRegisterIndex(this._pAnimationNode,i.MATRIX_INDEX),this._matrix)),this._particleRotateToPositionNode.mode==l.GLOBAL?(this._offset=e.entity.node.getMatrix3D().transformVector(this._position),t.setVertexConst(o,this._offset.x,this._offset.y,this._offset.z)):n.activateVertexBuffer(o,this._particleRotateToPositionNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3)},i.MATRIX_INDEX=0,i.POSITION_INDEX=1,i}(f),H=function(t){function i(i,A){void 0===A&&(A=null);var n=t.call(this,"ParticleRotateToPosition",i,3,3)||this;return n._pStateClass=J,n._iPosition=A||new e.Vector3D,n}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,n){var r=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();n.setRegisterIndex(this,J.POSITION_INDEX,r.index);var o,s="",a=n.rotationRegisters.length;if(e.hasBillboard){var g=i.getFreeVertexVectorTemp();i.addVertexTempUsages(g,1);var h=i.getFreeVertexVectorTemp();i.addVertexTempUsages(h,1);var I=i.getFreeVertexVectorTemp(),c=i.getFreeVertexConstant();for(n.setRegisterIndex(this,J.MATRIX_INDEX,c.index),i.getFreeVertexConstant(),i.getFreeVertexConstant(),i.getFreeVertexConstant(),i.removeVertexTempUsage(g),i.removeVertexTempUsage(h),s+="sub "+g+".xyz,"+r+".xyz,"+n.positionTarget+".xyz\n",s+="m33 "+g+".xyz,"+g+".xyz,"+c+"\n",s+="mov "+I+","+n.vertexZeroConst+"\n",s+="mov "+I+".xy,"+g+".xy\n",s+="nrm "+I+".xyz,"+I+".xyz\n",s+="mov "+h+","+n.vertexZeroConst+"\n",s+="mov "+h+".x,"+I+".y\n",s+="mov "+h+".y,"+I+".x\n",s+="mov "+g+","+n.vertexZeroConst+"\n",s+="mov "+g+".x,"+I+".x\n",s+="neg "+g+".y,"+I+".y\n",s+="mov "+I+","+n.vertexZeroConst+"\n",s+="mov "+I+".z,"+n.vertexOneConst+"\n",s+="m33 "+n.scaleAndRotateTarget+".xyz,"+n.scaleAndRotateTarget+".xyz,"+g+"\n",o=0;o<a;o++)s+="m33 "+n.rotationRegisters[o]+".xyz,"+n.rotationRegisters[o]+","+g+"\n"}else{var p=i.getFreeVertexVectorTemp();i.addVertexTempUsages(p,1);var C=i.getFreeVertexVectorTemp();i.addVertexTempUsages(C,1);var u=new A.ShaderRegisterElement(C.regName,C.index,0),d=new A.ShaderRegisterElement(C.regName,C.index,1),_=new A.ShaderRegisterElement(C.regName,C.index,2),f=new A.ShaderRegisterElement(C.regName,C.index,3),E=i.getFreeVertexVectorTemp();for(i.addVertexTempUsages(E,1),i.removeVertexTempUsage(p),i.removeVertexTempUsage(C),i.removeVertexTempUsage(E),s+="sub "+p+".xyz,"+r+".xyz,"+n.positionTarget+".xyz\n",s+="nrm "+p+".xyz,"+p+".xyz\n",s+="mov "+d+","+p+".y\n",s+="mul "+u+","+d+","+d+"\n",s+="sub "+u+","+n.vertexOneConst+","+u+"\n",s+="sqt "+u+","+u+"\n",s+="mul "+E+".x,"+u+","+n.scaleAndRotateTarget+".y\n",s+="mul "+E+".y,"+d+","+n.scaleAndRotateTarget+".z\n",s+="mul "+E+".z,"+d+","+n.scaleAndRotateTarget+".y\n",s+="mul "+E+".w,"+u+","+n.scaleAndRotateTarget+".z\n",s+="sub "+n.scaleAndRotateTarget+".y,"+E+".x,"+E+".y\n",s+="add "+n.scaleAndRotateTarget+".z,"+E+".z,"+E+".w\n",s+="abs "+E+".y,"+p+".y\n",s+="sge "+E+".z,"+E+".y,"+n.vertexOneConst+"\n",s+="mul "+E+".x,"+E+".y,"+p+".y\n",s+="mov "+p+".y,"+n.vertexZeroConst+"\n",s+="dp3 "+d+","+p+".xyz,"+p+".xyz\n",s+="sge "+f+","+n.vertexZeroConst+","+d+"\n",s+="mov "+p+".y,"+n.vertexZeroConst+"\n",s+="nrm "+p+".xyz,"+p+".xyz\n",s+="sub "+d+","+n.vertexOneConst+","+f+"\n",s+="mul "+d+","+d+","+p+".x\n",s+="mov "+u+","+p+".z\n",s+="neg "+u+","+u+"\n",s+="sub "+_+","+n.vertexOneConst+","+u+"\n",s+="mul "+_+","+E+".x,"+f+"\n",s+="add "+u+","+u+","+_+"\n",s+="mul "+E+".x,"+u+","+n.scaleAndRotateTarget+".x\n",s+="mul "+E+".y,"+d+","+n.scaleAndRotateTarget+".z\n",s+="mul "+E+".z,"+d+","+n.scaleAndRotateTarget+".x\n",s+="mul "+E+".w,"+u+","+n.scaleAndRotateTarget+".z\n",s+="sub "+n.scaleAndRotateTarget+".x,"+E+".x,"+E+".y\n",s+="add "+n.scaleAndRotateTarget+".z,"+E+".z,"+E+".w\n",o=0;o<a;o++)s+="sub "+p+".xyz,"+r+".xyz,"+n.positionTarget+".xyz\n",s+="nrm "+p+".xyz,"+p+".xyz\n",s+="mov "+d+","+p+".y\n",s+="mul "+u+","+d+","+d+"\n",s+="sub "+u+","+n.vertexOneConst+","+u+"\n",s+="sqt "+u+","+u+"\n",s+="mul "+E+".x,"+u+","+n.rotationRegisters[o]+".y\n",s+="mul "+E+".y,"+d+","+n.rotationRegisters[o]+".z\n",s+="mul "+E+".z,"+d+","+n.rotationRegisters[o]+".y\n",s+="mul "+E+".w,"+u+","+n.rotationRegisters[o]+".z\n",s+="sub "+n.rotationRegisters[o]+".y,"+E+".x,"+E+".y\n",s+="add "+n.rotationRegisters[o]+".z,"+E+".z,"+E+".w\n",s+="abs "+E+".y,"+p+".y\n",s+="sge "+E+".z,"+E+".y,"+n.vertexOneConst+"\n",s+="mul "+E+".x,"+E+".y,"+p+".y\n",s+="mov "+p+".y,"+n.vertexZeroConst+"\n",s+="dp3 "+d+","+p+".xyz,"+p+".xyz\n",s+="sge "+f+","+n.vertexZeroConst+","+d+"\n",s+="mov "+p+".y,"+n.vertexZeroConst+"\n",s+="nrm "+p+".xyz,"+p+".xyz\n",s+="sub "+d+","+n.vertexOneConst+","+f+"\n",s+="mul "+d+","+d+","+p+".x\n",s+="mov "+u+","+p+".z\n",s+="neg "+u+","+u+"\n",s+="sub "+_+","+n.vertexOneConst+","+u+"\n",s+="mul "+_+","+E+".x,"+f+"\n",s+="add "+u+","+u+","+_+"\n",s+="mul "+E+".x,"+u+","+n.rotationRegisters[o]+".x\n",s+="mul "+E+".y,"+d+","+n.rotationRegisters[o]+".z\n",s+="mul "+E+".z,"+d+","+n.rotationRegisters[o]+".x\n",s+="mul "+E+".w,"+u+","+n.rotationRegisters[o]+".z\n",s+="sub "+n.rotationRegisters[o]+".x,"+E+".x,"+E+".y\n",s+="add "+n.rotationRegisters[o]+".z,"+E+".z,"+E+".w\n"}return s},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.POSITION_VECTOR3D];if(!e)throw new Error("there is no "+i.POSITION_VECTOR3D+" in param!");this._pOneData[0]=e.x,this._pOneData[1]=e.y,this._pOneData[2]=e.z},i.POSITION_VECTOR3D="RotateToPositionVector3D",i}(y),q=function(t){function i(e,i){var A=t.call(this,e,i)||this;return A._particleRotationalVelocityNode=i,A._rotationalVelocity=A._particleRotationalVelocityNode._iRotationalVelocity,A.updateRotationalVelocityData(),A}return I(i,t),Object.defineProperty(i.prototype,"rotationalVelocity",{get:function(){return this._rotationalVelocity},set:function(t){this._rotationalVelocity=t,this.updateRotationalVelocityData()},enumerable:!1,configurable:!0}),i.prototype.getRotationalVelocities=function(){return this._pDynamicProperties},i.prototype.setRotationalVelocities=function(t){this._pDynamicProperties=t,this._pDynamicPropertiesDirty=new Object},i.prototype.setRenderState=function(t,e,n,r){this._particleRotationalVelocityNode.mode!=l.LOCAL_DYNAMIC||this._pDynamicPropertiesDirty[n._iUniqueId]||this._pUpdateDynamicProperties(n);var o=r.getRegisterIndex(this._pAnimationNode,i.ROTATIONALVELOCITY_INDEX);this._particleRotationalVelocityNode.mode==l.GLOBAL?t.setVertexConst(o,this._rotationalVelocityData.x,this._rotationalVelocityData.y,this._rotationalVelocityData.z,this._rotationalVelocityData.w):n.activateVertexBuffer(o,this._particleRotationalVelocityNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4)},i.prototype.updateRotationalVelocityData=function(){if(this._particleRotationalVelocityNode.mode==l.GLOBAL){if(this._rotationalVelocity.w<=0)throw new Error("the cycle duration must greater than zero");var t=this._rotationalVelocity.clone();t.length<=0?t.z=1:t.normalize(),this._rotationalVelocityData=new e.Vector3D(t.x,t.y,t.z,Math.PI/t.w)}},i.ROTATIONALVELOCITY_INDEX=0,i}(f),j=function(t){function i(i,A){void 0===A&&(A=null);var n=t.call(this,"ParticleRotationalVelocity",i,4)||this;return n._pStateClass=q,n._iRotationalVelocity=A||new e.Vector3D,n}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,n){var r=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();n.setRegisterIndex(this,q.ROTATIONALVELOCITY_INDEX,r.index);var o=i.getFreeVertexVectorTemp();i.addVertexTempUsages(o,1);var s=i.getFreeVertexVectorTemp();i.addVertexTempUsages(s,1);var a=i.getFreeVertexVectorTemp();i.addVertexTempUsages(a,1);var g=new A.ShaderRegisterElement(a.regName,a.index),h=i.getFreeVertexVectorTemp();h=new A.ShaderRegisterElement(h.regName,h.index);var I=new A.ShaderRegisterElement(g.regName,g.index,3),c=new A.ShaderRegisterElement(h.regName,h.index,3);i.removeVertexTempUsage(o),i.removeVertexTempUsage(s),i.removeVertexTempUsage(a);var p="";p+="mov "+o+".xyz,"+r+".xyz\n",p+="mov "+o+".w,"+n.vertexZeroConst+"\n",p+="mul "+I+","+n.vertexTime+","+r+".w\n",p+="sin "+c+","+I+"\n",p+="cos "+I+","+I+"\n",p+="mul "+g+".xyz,"+c+","+o+".xyz\n",p+="mul "+h+".xyz,"+c+","+o+".xyz\n",p+="neg "+h+".xyz,"+h+".xyz\n",p+="crs "+o+".xyz,"+g+".xyz,"+n.scaleAndRotateTarget+".xyz\n",p+="mul "+s+".xyz,"+I+","+n.scaleAndRotateTarget+".xyz\n",p+="add "+o+".xyz,"+o+".xyz,"+s+".xyz\n",p+="dp3 "+s+".w,"+g+".xyz,"+n.scaleAndRotateTarget+".xyz\n",p+="neg "+o+".w,"+s+".w\n",p+="crs "+g+".xyz,"+o+".xyz,"+h+".xyz\n",p+="mul "+s+".xyzw,"+o+".xyzw,"+I+"\n",p+="add "+g+".xyz,"+g+".xyz,"+s+".xyz\n",p+="mul "+s+".xyz,"+o+".w,"+h+".xyz\n",p+="add "+n.scaleAndRotateTarget+".xyz,"+g+".xyz,"+s+".xyz\n";for(var C=n.rotationRegisters.length,u=0;u<C;u++)p+="mov "+o+".xyz,"+r+".xyz\n",p+="mov "+o+".w,"+n.vertexZeroConst+"\n",p+="mul "+I+","+n.vertexTime+","+r+".w\n",p+="sin "+c+","+I+"\n",p+="cos "+I+","+I+"\n",p+="mul "+g+".xyz,"+c+","+o+".xyz\n",p+="mul "+h+".xyz,"+c+","+o+".xyz\n",p+="neg "+h+".xyz,"+h+".xyz\n",p+="crs "+o+".xyz,"+g+".xyz,"+n.rotationRegisters[u]+".xyz\n",p+="mul "+s+".xyz,"+I+","+n.rotationRegisters[u]+"\n",p+="add "+o+".xyz,"+o+".xyz,"+s+".xyz\n",p+="dp3 "+s+".w,"+g+".xyz,"+n.rotationRegisters[u]+"\n",p+="neg "+o+".w,"+s+".w\n",p+="crs "+g+".xyz,"+o+".xyz,"+h+".xyz\n",p+="mul "+s+".xyzw,"+o+".xyzw,"+I+"\n",p+="add "+g+".xyz,"+g+".xyz,"+s+".xyz\n",p+="mul "+s+".xyz,"+o+".w,"+h+".xyz\n",p+="add "+n.rotationRegisters[u]+","+g+".xyz,"+s+".xyz\n";return p},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.ROTATIONALVELOCITY_VECTOR3D];if(!e)throw new Error("there is no "+i.ROTATIONALVELOCITY_VECTOR3D+" in param!");if(e.length<=0?e.z=1:e.normalize(),this._pOneData[0]=e.x,this._pOneData[1]=e.y,this._pOneData[2]=e.z,e.w<=0)throw new Error("the cycle duration must greater than zero");this._pOneData[3]=Math.PI/e.w},i.ROTATIONALVELOCITY_VECTOR3D="RotationalVelocityVector3D",i}(y),X=function(t){function i(e,i){var A=t.call(this,e,i)||this;return A._particleScaleNode=i,A._usesCycle=A._particleScaleNode._iUsesCycle,A._usesPhase=A._particleScaleNode._iUsesPhase,A._minScale=A._particleScaleNode._iMinScale,A._maxScale=A._particleScaleNode._iMaxScale,A._cycleDuration=A._particleScaleNode._iCycleDuration,A._cyclePhase=A._particleScaleNode._iCyclePhase,A.updateScaleData(),A}return I(i,t),Object.defineProperty(i.prototype,"minScale",{get:function(){return this._minScale},set:function(t){this._minScale=t,this.updateScaleData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"maxScale",{get:function(){return this._maxScale},set:function(t){this._maxScale=t,this.updateScaleData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"cycleDuration",{get:function(){return this._cycleDuration},set:function(t){this._cycleDuration=t,this.updateScaleData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"cyclePhase",{get:function(){return this._cyclePhase},set:function(t){this._cyclePhase=t,this.updateScaleData()},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,e,n,r){var o=r.getRegisterIndex(this._pAnimationNode,i.SCALE_INDEX);this._particleScaleNode.mode==l.LOCAL_STATIC?this._usesCycle?this._usesPhase?n.activateVertexBuffer(o,this._particleScaleNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_4):n.activateVertexBuffer(o,this._particleScaleNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3):n.activateVertexBuffer(o,this._particleScaleNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_2):t.setVertexConst(o,this._scaleData.x,this._scaleData.y,this._scaleData.z,this._scaleData.w)},i.prototype.updateScaleData=function(){if(this._particleScaleNode.mode==l.GLOBAL)if(this._usesCycle){if(this._cycleDuration<=0)throw new Error("the cycle duration must be greater than zero");this._scaleData=new e.Vector3D((this._minScale+this._maxScale)/2,Math.abs(this._minScale-this._maxScale)/2,2*Math.PI/this._cycleDuration,this._cyclePhase*Math.PI/180)}else this._scaleData=new e.Vector3D(this._minScale,this._maxScale-this._minScale,0,0)},i.SCALE_INDEX=0,i}(f),W=function(t){function e(e,i,A,n,r,o,s){void 0===n&&(n=1),void 0===r&&(r=1),void 0===o&&(o=1),void 0===s&&(s=0);var a=t.call(this,"ParticleScale",e,i&&A?4:i||A?3:2,3)||this;return a._pStateClass=X,a._iUsesCycle=i,a._iUsesPhase=A,a._iMinScale=n,a._iMaxScale=r,a._iCycleDuration=o,a._iCyclePhase=s,a}return I(e,t),e.prototype.getAGALVertexCode=function(t,e,i,A){var n="",r=i.getFreeVertexSingleTemp(),o=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();return A.setRegisterIndex(this,X.SCALE_INDEX,o.index),this._iUsesCycle&&(n+="mul "+r+","+A.vertexTime+","+o+".z\n",this._iUsesPhase&&(n+="add "+r+","+r+","+o+".w\n"),n+="sin "+r+","+r+"\n"),n+="mul "+r+","+o+".y,"+(this._iUsesCycle?r:A.vertexLife)+"\n",n+="add "+r+","+o+".x,"+r+"\n",n+="mul "+A.scaleAndRotateTarget+".xyz,"+A.scaleAndRotateTarget+".xyz,"+r+"\n"},e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e.prototype._iGeneratePropertyOfOneParticle=function(t){var i=t[e.SCALE_VECTOR3D];if(!i)throw new Error("there is no "+e.SCALE_VECTOR3D+" in param!");if(this._iUsesCycle){if(this._pOneData[0]=(i.x+i.y)/2,this._pOneData[1]=Math.abs(i.x-i.y)/2,i.z<=0)throw new Error("the cycle duration must be greater than zero");this._pOneData[2]=2*Math.PI/i.z,this._iUsesPhase&&(this._pOneData[3]=i.w*Math.PI/180)}else this._pOneData[0]=i.x,this._pOneData[1]=i.y-i.x},e.SCALE_VECTOR3D="ScaleVector3D",e}(y),Z=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._usesMultiplier=i._iUsesMultiplier,A._usesOffset=i._iUsesOffset,A._startColor=i._iStartColor,A._endColor=i._iEndColor,A._segmentPoints=i._iSegmentPoints,A._numSegmentPoint=i._iNumSegmentPoint,A.updateColorData(),A}return I(e,t),Object.defineProperty(e.prototype,"startColor",{get:function(){return this._startColor},set:function(t){this._startColor=t,this.updateColorData()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"endColor",{get:function(){return this._endColor},set:function(t){this._endColor=t,this.updateColorData()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"numSegmentPoint",{get:function(){return this._numSegmentPoint},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"segmentPoints",{get:function(){return this._segmentPoints},set:function(t){this._segmentPoints=t,this.updateColorData()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"usesMultiplier",{get:function(){return this._usesMultiplier},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"usesOffset",{get:function(){return this._usesOffset},enumerable:!1,configurable:!0}),e.prototype.setRenderState=function(t,i,A,n){t.usesFragmentAnimation&&(this._numSegmentPoint>0&&t.setVertexConst(n.getRegisterIndex(this._pAnimationNode,e.TIME_DATA_INDEX),this._timeLifeData[0],this._timeLifeData[1],this._timeLifeData[2],this._timeLifeData[3]),this._usesMultiplier&&t.setVertexConstFromArray(n.getRegisterIndex(this._pAnimationNode,e.START_MULTIPLIER_INDEX),this._multiplierData),this._usesOffset&&t.setVertexConstFromArray(n.getRegisterIndex(this._pAnimationNode,e.START_OFFSET_INDEX),this._offsetData))},e.prototype.updateColorData=function(){var t;this._timeLifeData=new Float32Array(4),this._multiplierData=new Float32Array(4*(this._numSegmentPoint+1)),this._offsetData=new Float32Array(4*(this._numSegmentPoint+1));var e=0,i=this._numSegmentPoint>3?3:this._numSegmentPoint;for(t=0;t<i;t++)this._timeLifeData[e++]=0==t?this._segmentPoints[t].life:this._segmentPoints[t].life-this._segmentPoints[t-1].life;if(t=i,0==this._numSegmentPoint?this._timeLifeData[e++]=1:this._timeLifeData[e++]=1-this._segmentPoints[t-1].life,this._usesMultiplier){for(e=0,this._multiplierData[e++]=this._startColor.redMultiplier,this._multiplierData[e++]=this._startColor.greenMultiplier,this._multiplierData[e++]=this._startColor.blueMultiplier,this._multiplierData[e++]=this._startColor.alphaMultiplier,t=0;t<this._numSegmentPoint;t++)0==t?(this._multiplierData[e++]=(this._segmentPoints[t].color.redMultiplier-this._startColor.redMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._segmentPoints[t].color.greenMultiplier-this._startColor.greenMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._segmentPoints[t].color.blueMultiplier-this._startColor.blueMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._segmentPoints[t].color.alphaMultiplier-this._startColor.alphaMultiplier)/this._timeLifeData[t]):(this._multiplierData[e++]=(this._segmentPoints[t].color.redMultiplier-this._segmentPoints[t-1].color.redMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._segmentPoints[t].color.greenMultiplier-this._segmentPoints[t-1].color.greenMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._segmentPoints[t].color.blueMultiplier-this._segmentPoints[t-1].color.blueMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._segmentPoints[t].color.alphaMultiplier-this._segmentPoints[t-1].color.alphaMultiplier)/this._timeLifeData[t]);t=this._numSegmentPoint,0==this._numSegmentPoint?(this._multiplierData[e++]=this._endColor.redMultiplier-this._startColor.redMultiplier,this._multiplierData[e++]=this._endColor.greenMultiplier-this._startColor.greenMultiplier,this._multiplierData[e++]=this._endColor.blueMultiplier-this._startColor.blueMultiplier,this._multiplierData[e++]=this._endColor.alphaMultiplier-this._startColor.alphaMultiplier):(this._multiplierData[e++]=(this._endColor.redMultiplier-this._segmentPoints[t-1].color.redMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._endColor.greenMultiplier-this._segmentPoints[t-1].color.greenMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._endColor.blueMultiplier-this._segmentPoints[t-1].color.blueMultiplier)/this._timeLifeData[t],this._multiplierData[e++]=(this._endColor.alphaMultiplier-this._segmentPoints[t-1].color.alphaMultiplier)/this._timeLifeData[t])}if(this._usesOffset){for(e=0,this._offsetData[e++]=this._startColor.redOffset/255,this._offsetData[e++]=this._startColor.greenOffset/255,this._offsetData[e++]=this._startColor.blueOffset/255,this._offsetData[e++]=this._startColor.alphaOffset/255,t=0;t<this._numSegmentPoint;t++)0==t?(this._offsetData[e++]=(this._segmentPoints[t].color.redOffset-this._startColor.redOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._segmentPoints[t].color.greenOffset-this._startColor.greenOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._segmentPoints[t].color.blueOffset-this._startColor.blueOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._segmentPoints[t].color.alphaOffset-this._startColor.alphaOffset)/this._timeLifeData[t]/255):(this._offsetData[e++]=(this._segmentPoints[t].color.redOffset-this._segmentPoints[t-1].color.redOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._segmentPoints[t].color.greenOffset-this._segmentPoints[t-1].color.greenOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._segmentPoints[t].color.blueOffset-this._segmentPoints[t-1].color.blueOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._segmentPoints[t].color.alphaOffset-this._segmentPoints[t-1].color.alphaOffset)/this._timeLifeData[t]/255);t=this._numSegmentPoint,0==this._numSegmentPoint?(this._offsetData[e++]=(this._endColor.redOffset-this._startColor.redOffset)/255,this._offsetData[e++]=(this._endColor.greenOffset-this._startColor.greenOffset)/255,this._offsetData[e++]=(this._endColor.blueOffset-this._startColor.blueOffset)/255,this._offsetData[e++]=(this._endColor.alphaOffset-this._startColor.alphaOffset)/255):(this._offsetData[t]=(this._endColor.redOffset-this._segmentPoints[t-1].color.redOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._endColor.greenOffset-this._segmentPoints[t-1].color.greenOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._endColor.blueOffset-this._segmentPoints[t-1].color.blueOffset)/this._timeLifeData[t]/255,this._offsetData[e++]=(this._endColor.alphaOffset-this._segmentPoints[t-1].color.alphaOffset)/this._timeLifeData[t]/255)}},e.START_MULTIPLIER_INDEX=0,e.START_OFFSET_INDEX=1,e.TIME_DATA_INDEX=2,e}(f),$=function(t){function e(e,i,A,n,r,o){var s=t.call(this,"ParticleSegmentedColor",l.GLOBAL,0,R.COLOR_PRIORITY)||this;if(s._pStateClass=Z,A>4)throw new Error("the numSegmentPoint must be less or equal 4");return s._iUsesMultiplier=e,s._iUsesOffset=i,s._iNumSegmentPoint=A,s._iStartColor=n,s._iEndColor=r,s._iSegmentPoints=o,s}return I(e,t),e.prototype._iProcessAnimationSetting=function(t){this._iUsesMultiplier&&(t.hasColorMulNode=!0),this._iUsesOffset&&(t.hasColorAddNode=!0)},e.prototype.getAGALVertexCode=function(t,e,i,n){var r="";if(t.usesFragmentAnimation){var o=void 0;this._iUsesMultiplier&&(o=i.getFreeVertexVectorTemp(),i.addVertexTempUsages(o,1));var s=i.getFreeVertexVectorTemp();i.addVertexTempUsages(s,1);var a=i.getFreeVertexVectorTemp(),g=new A.ShaderRegisterElement(a.regName,a.index,0),l=new A.ShaderRegisterElement(a.regName,a.index,1);this._iUsesMultiplier&&i.removeVertexTempUsage(o),i.removeVertexTempUsage(s);var h=i.getFreeVertexConstant();n.setRegisterIndex(this,Z.TIME_DATA_INDEX,h.index);var I=void 0,c=void 0,p=void 0;if(this._iUsesMultiplier)for(c=i.getFreeVertexConstant(),n.setRegisterIndex(this,Z.START_MULTIPLIER_INDEX,c.index),p=new Array,I=0;I<this._iNumSegmentPoint+1;I++)p.push(i.getFreeVertexConstant());var C=void 0,u=void 0;if(this._iUsesOffset)for(C=i.getFreeVertexConstant(),n.setRegisterIndex(this,Z.START_OFFSET_INDEX,C.index),u=new Array,I=0;I<this._iNumSegmentPoint+1;I++)u.push(i.getFreeVertexConstant());for(this._iUsesMultiplier&&(r+="mov "+o+","+c+"\n"),this._iUsesOffset&&(r+="add "+n.colorAddTarget+","+n.colorAddTarget+","+C+"\n"),I=0;I<this._iNumSegmentPoint;I++){switch(I){case 0:r+="min "+l+","+n.vertexLife+","+h+".x\n";break;case 1:r+="sub "+g+","+n.vertexLife+","+h+".x\n",r+="max "+l+","+g+","+n.vertexZeroConst+"\n",r+="min "+l+","+l+","+h+".y\n";break;case 2:r+="sub "+g+","+g+","+h+".y\n",r+="max "+l+","+g+","+n.vertexZeroConst+"\n",r+="min "+l+","+l+","+h+".z\n";break;case 3:r+="sub "+g+","+g+","+h+".z\n",r+="max "+l+","+g+","+n.vertexZeroConst+"\n",r+="min "+l+","+l+","+h+".w\n"}this._iUsesMultiplier&&(r+="mul "+s+","+l+","+p[I]+"\n",r+="add "+o+","+o+","+s+"\n"),this._iUsesOffset&&(r+="mul "+s+","+l+","+u[I]+"\n",r+="add "+n.colorAddTarget+","+n.colorAddTarget+","+s+"\n")}if(0==this._iNumSegmentPoint)l=n.vertexLife;else{switch(this._iNumSegmentPoint){case 1:r+="sub "+g+","+n.vertexLife+","+h+".x\n";break;case 2:r+="sub "+g+","+g+","+h+".y\n";break;case 3:r+="sub "+g+","+g+","+h+".z\n";break;case 4:r+="sub "+g+","+g+","+h+".w\n"}r+="max "+l+","+g+","+n.vertexZeroConst+"\n"}this._iUsesMultiplier&&(r+="mul "+s+","+l+","+p[this._iNumSegmentPoint]+"\n",r+="add "+o+","+o+","+s+"\n",r+="mul "+n.colorMulTarget+","+n.colorMulTarget+","+o+"\n"),this._iUsesOffset&&(r+="mul "+s+","+l+","+u[this._iNumSegmentPoint]+"\n",r+="add "+n.colorAddTarget+","+n.colorAddTarget+","+s+"\n")}return r},e}(y),tt=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._particleSpriteSheetNode=i,A._usesCycle=A._particleSpriteSheetNode._iUsesCycle,A._usesPhase=A._particleSpriteSheetNode._iUsesCycle,A._totalFrames=A._particleSpriteSheetNode._iTotalFrames,A._numColumns=A._particleSpriteSheetNode._iNumColumns,A._numRows=A._particleSpriteSheetNode._iNumRows,A._cycleDuration=A._particleSpriteSheetNode._iCycleDuration,A._cyclePhase=A._particleSpriteSheetNode._iCyclePhase,A.updateSpriteSheetData(),A}return I(e,t),Object.defineProperty(e.prototype,"cyclePhase",{get:function(){return this._cyclePhase},set:function(t){this._cyclePhase=t,this.updateSpriteSheetData()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"cycleDuration",{get:function(){return this._cycleDuration},set:function(t){this._cycleDuration=t,this.updateSpriteSheetData()},enumerable:!1,configurable:!0}),e.prototype.setRenderState=function(t,i,n,r){if(!t.usesUVTransform&&(t.setVertexConst(r.getRegisterIndex(this._pAnimationNode,e.UV_INDEX_0),this._spriteSheetData[0],this._spriteSheetData[1],this._spriteSheetData[2],this._spriteSheetData[3]),this._usesCycle)){var o=r.getRegisterIndex(this._pAnimationNode,e.UV_INDEX_1);this._particleSpriteSheetNode.mode==l.LOCAL_STATIC?this._usesPhase?n.activateVertexBuffer(o,this._particleSpriteSheetNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3):n.activateVertexBuffer(o,this._particleSpriteSheetNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_2):t.setVertexConst(o,this._spriteSheetData[4],this._spriteSheetData[5])}},e.prototype.updateSpriteSheetData=function(){this._spriteSheetData=new Array(8);var t=this._totalFrames/this._numColumns;if(this._spriteSheetData[0]=t,this._spriteSheetData[1]=1/this._numColumns,this._spriteSheetData[2]=1/this._numRows,this._usesCycle){if(this._cycleDuration<=0)throw new Error("the cycle duration must be greater than zero");this._spriteSheetData[4]=t/this._cycleDuration,this._spriteSheetData[5]=this._cycleDuration,this._usesPhase&&(this._spriteSheetData[6]=this._cyclePhase)}},e.UV_INDEX_0=0,e.UV_INDEX_1=1,e}(f),et=function(t){function e(e,i,A,n,r,o,s,a){void 0===n&&(n=1),void 0===r&&(r=1),void 0===o&&(o=1),void 0===s&&(s=0),void 0===a&&(a=Number.MAX_VALUE);var g=t.call(this,"ParticleSpriteSheet",e,i?A?3:2:1,R.POST_PRIORITY+1)||this;return g._pStateClass=tt,g._iUsesCycle=i,g._iUsesPhase=A,g._iNumColumns=n,g._iNumRows=r,g._iCyclePhase=s,g._iCycleDuration=o,g._iTotalFrames=Math.min(a,n*r),g}return I(e,t),Object.defineProperty(e.prototype,"numColumns",{get:function(){return this._iNumColumns},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"numRows",{get:function(){return this._iNumRows},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"totalFrames",{get:function(){return this._iTotalFrames},enumerable:!1,configurable:!0}),e.prototype.getAGALUVCode=function(t,e,i,n){var r=i.getFreeVertexConstant(),o=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();n.setRegisterIndex(this,tt.UV_INDEX_0,r.index),n.setRegisterIndex(this,tt.UV_INDEX_1,o.index);var s=new A.ShaderRegisterElement(r.regName,r.index,0),a=new A.ShaderRegisterElement(r.regName,r.index,1),g=new A.ShaderRegisterElement(r.regName,r.index,2),h=new A.ShaderRegisterElement(o.regName,o.index,0),I=new A.ShaderRegisterElement(o.regName,o.index,1),c=new A.ShaderRegisterElement(o.regName,o.index,2),p=i.getFreeVertexVectorTemp(),C=new A.ShaderRegisterElement(p.regName,p.index,0),u=new A.ShaderRegisterElement(p.regName,p.index,1);p=new A.ShaderRegisterElement(p.regName,p.index,2);var d=new A.ShaderRegisterElement(p.regName,p.index,3),_=new A.ShaderRegisterElement(n.uvTarget.regName,n.uvTarget.index,0),f=new A.ShaderRegisterElement(n.uvTarget.regName,n.uvTarget.index,1),E="";return E+="mul "+_+","+_+","+a+"\n",this._iNumRows>1&&(E+="mul "+f+","+f+","+g+"\n"),this._iUsesCycle?(this._iUsesPhase?E+="add "+C+","+n.vertexTime+","+c+"\n":E+="mov "+C+","+n.vertexTime+"\n",E+="div "+C+","+C+","+I+"\n",E+="frc "+C+","+C+"\n",E+="mul "+C+","+C+","+I+"\n",E+="mul "+p+","+C+","+h+"\n"):E+="mul "+p.toString()+","+n.vertexLife+","+s+"\n",this._iNumRows>1&&(E+="frc "+d+","+p+"\n",E+="sub "+u+","+p+","+d+"\n",E+="mul "+u+","+u+","+g+"\n",E+="add "+f+","+f+","+u+"\n"),E+="div "+d+","+p+","+a+"\n",E+="frc "+p+","+d+"\n",E+="sub "+d+","+d+","+p+"\n",E+="mul "+p+","+d+","+a+"\n",this._iNumRows>1&&(E+="frc "+p+","+p+"\n"),E+="add "+_+","+_+","+p+"\n"},e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e.prototype._iProcessAnimationSetting=function(t){t.hasUVNode=!0},e.prototype._iGeneratePropertyOfOneParticle=function(t){if(this._iUsesCycle){var i=t[e.UV_VECTOR3D];if(!i)throw new Error("there is no "+e.UV_VECTOR3D+" in param!");if(i.x<=0)throw new Error("the cycle duration must be greater than zero");var A=this._iTotalFrames/this._iNumColumns;this._pOneData[0]=A/i.x,this._pOneData[1]=i.x,this._iUsesPhase&&(this._pOneData[2]=i.y)}},e.UV_VECTOR3D="UVVector3D",e}(y),it=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._particleUVNode=i,A}return I(e,t),e.prototype.setRenderState=function(t,i,A,n){if(!t.usesUVTransform){var r=n.getRegisterIndex(this._pAnimationNode,e.UV_INDEX),o=this._particleUVNode._iUvData;t.setVertexConst(r,o.x,o.y)}},e.UV_INDEX=0,e}(f),At=function(t){function i(e,i,A,n){void 0===i&&(i=1),void 0===A&&(A=1),void 0===n&&(n="x");var r=t.call(this,"ParticleUV",l.GLOBAL,4,R.POST_PRIORITY+1)||this;return r._pStateClass=it,r._cycle=i,r._scale=A,r._axis=n,r.updateUVData(),r}return I(i,t),Object.defineProperty(i.prototype,"cycle",{get:function(){return this._cycle},set:function(t){this._cycle=t,this.updateUVData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"scale",{get:function(){return this._scale},set:function(t){this._scale=t,this.updateUVData()},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"axis",{get:function(){return this._axis},set:function(t){this._axis=t},enumerable:!1,configurable:!0}),i.prototype.getAGALUVCode=function(t,e,i,n){var r="",o=i.getFreeVertexConstant();n.setRegisterIndex(this,it.UV_INDEX,o.index);var s="x"==this._axis?0:"y"==this._axis?1:2,a=new A.ShaderRegisterElement(n.uvTarget.regName,n.uvTarget.index,s),g=i.getFreeVertexSingleTemp();return 1!=this._scale&&(r+="mul "+a+","+a+","+o+".y\n"),r+="mul "+g+","+n.vertexTime+","+o+".x\n",r+="sin "+g+","+g+"\n",r+="add "+a+","+a+","+g+"\n"},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype.updateUVData=function(){this._iUvData=new e.Vector3D(2*Math.PI/this._cycle,this._scale,0,0)},i.prototype._iProcessAnimationSetting=function(t){t.hasUVNode=!0},i.U_AXIS="x",i.V_AXIS="y",i}(y),nt=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._particleVelocityNode=i,A._velocity=A._particleVelocityNode._iVelocity,A}return I(e,t),Object.defineProperty(e.prototype,"velocity",{get:function(){return this._velocity},set:function(t){this._velocity=t},enumerable:!1,configurable:!0}),e.prototype.getVelocities=function(){return this._pDynamicProperties},e.prototype.setVelocities=function(t){this._pDynamicProperties=t,this._pDynamicPropertiesDirty=new Object},e.prototype.setRenderState=function(t,i,n,r){this._particleVelocityNode.mode!=l.LOCAL_DYNAMIC||this._pDynamicPropertiesDirty[n._iUniqueId]||this._pUpdateDynamicProperties(n);var o=r.getRegisterIndex(this._pAnimationNode,e.VELOCITY_INDEX);this._particleVelocityNode.mode==l.GLOBAL?t.setVertexConst(o,this._velocity.x,this._velocity.y,this._velocity.z):n.activateVertexBuffer(o,this._particleVelocityNode._iDataOffset,t.stage,A.ContextGLVertexBufferFormat.FLOAT_3)},e.VELOCITY_INDEX=0,e}(f),rt=function(t){function i(i,A){void 0===A&&(A=null);var n=t.call(this,"ParticleVelocity",i,3)||this;return n._pStateClass=nt,n._iVelocity=A||new e.Vector3D,n}return I(i,t),i.prototype.getAGALVertexCode=function(t,e,i,A){var n=this._pMode==l.GLOBAL?i.getFreeVertexConstant():i.getFreeVertexAttribute();A.setRegisterIndex(this,nt.VELOCITY_INDEX,n.index);var r=i.getFreeVertexVectorTemp(),o="";return o+="mul "+r+","+A.vertexTime+","+n+"\n",o+="add "+A.positionTarget+".xyz,"+r+","+A.positionTarget+".xyz\n",e.needVelocity&&(o+="add "+A.velocityTarget+".xyz,"+n+".xyz,"+A.velocityTarget+".xyz\n"),o},i.prototype.getAnimationState=function(t){return t.getAnimationState(this)},i.prototype._iGeneratePropertyOfOneParticle=function(t){var e=t[i.VELOCITY_VECTOR3D];if(!e)throw new Error("there is no "+i.VELOCITY_VECTOR3D+" in param!");this._pOneData[0]=e.x,this._pOneData[1]=e.y,this._pOneData[2]=e.z},i.VELOCITY_VECTOR3D="VelocityVector3D",i}(y),ot=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._blendWeight=0,A._skeletonPose=new C,A._skeletonPoseDirty=!0,A._skeletonAnimationNode=i,A._inputA=e.getAnimationState(A._skeletonAnimationNode.inputA),A._inputB=e.getAnimationState(A._skeletonAnimationNode.inputB),A}return I(e,t),Object.defineProperty(e.prototype,"blendWeight",{get:function(){return this._blendWeight},set:function(t){this._blendWeight=t,this._pPositionDeltaDirty=!0,this._skeletonPoseDirty=!0},enumerable:!1,configurable:!0}),e.prototype.phase=function(t){this._skeletonPoseDirty=!0,this._pPositionDeltaDirty=!0,this._inputA.phase(t),this._inputB.phase(t)},e.prototype._pUpdateTime=function(e){this._skeletonPoseDirty=!0,this._inputA.update(e),this._inputB.update(e),t.prototype._pUpdateTime.call(this,e)},e.prototype.getSkeletonPose=function(t){return this._skeletonPoseDirty&&this.updateSkeletonPose(t),this._skeletonPose},e.prototype._pUpdatePositionDelta=function(){this._pPositionDeltaDirty=!1;var t=this._inputA.positionDelta,e=this._inputB.positionDelta;this._pRootDelta.x=t.x+this._blendWeight*(e.x-t.x),this._pRootDelta.y=t.y+this._blendWeight*(e.y-t.y),this._pRootDelta.z=t.z+this._blendWeight*(e.z-t.z)},e.prototype.updateSkeletonPose=function(t){var e;this._skeletonPoseDirty=!1;var i,A,n,r,o,a=this._skeletonPose.jointPoses,g=this._inputA.getSkeletonPose(t).jointPoses,l=this._inputB.getSkeletonPose(t).jointPoses,h=t.numJoints;a.length!=h&&(a.length=h);for(var I=0;I<h;++I)null==(e=a[I])&&(e=a[I]=new s),i=g[I],A=l[I],n=i.translation,r=A.translation,e.orientation.lerp(i.orientation,A.orientation,this._blendWeight),(o=e.translation).x=n.x+this._blendWeight*(r.x-n.x),o.y=n.y+this._blendWeight*(r.y-n.y),o.z=n.z+this._blendWeight*(r.z-n.z)},e}(_),st=function(t){function e(){var e=t.call(this)||this;return e._pStateClass=ot,e}return I(e,t),e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e}(i.AnimationNodeBase),at=function(t){function e(e,i,A,n){var r=t.call(this,e)||this;return r._animator=i,r._animationState=A,r._animationNode=n,r}return I(e,t),Object.defineProperty(e.prototype,"animator",{get:function(){return this._animator},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"animationState",{get:function(){return this._animationState},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"animationNode",{get:function(){return this._animationNode},enumerable:!1,configurable:!0}),e.prototype.clone=function(){return new e(this.type,this._animator,this._animationState,this._animationNode)},e.PLAYBACK_COMPLETE="playbackComplete",e.TRANSITION_COMPLETE="transitionComplete",e}(e.EventBase),gt=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._pFramesDirty=!0,A._animationClipNode=i,A}return I(e,t),Object.defineProperty(e.prototype,"blendWeight",{get:function(){return this._pFramesDirty&&this._pUpdateFrames(),this._pBlendWeight},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentFrame",{get:function(){return this._pFramesDirty&&this._pUpdateFrames(),this._pCurrentFrame},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextFrame",{get:function(){return this._pFramesDirty&&this._pUpdateFrames(),this._pNextFrame},enumerable:!1,configurable:!0}),e.prototype.update=function(t){this._animationClipNode.looping||(t>this._pStartTime+this._animationClipNode.totalDuration?t=this._pStartTime+this._animationClipNode.totalDuration:t<this._pStartTime&&(t=this._pStartTime)),this._pTime!=t-this._pStartTime&&this._pUpdateTime(t)},e.prototype.phase=function(t){var e=t*this._animationClipNode.totalDuration+this._pStartTime;this._pTime!=e-this._pStartTime&&this._pUpdateTime(e)},e.prototype._pUpdateTime=function(e){this._pFramesDirty=!0,this._pTimeDir=e-this._pStartTime>this._pTime?1:-1,t.prototype._pUpdateTime.call(this,e)},e.prototype._pUpdateFrames=function(){this._pFramesDirty=!1;var t=this._animationClipNode.looping,e=this._animationClipNode.totalDuration,i=this._animationClipNode.lastFrame,A=this._pTime;if(t&&(A>=e||A<0)&&(A%=e)<0&&(A+=e),!t&&A>=e)this.notifyPlaybackComplete(),this._pCurrentFrame=i,this._pNextFrame=i,this._pBlendWeight=0;else if(!t&&A<=0)this._pCurrentFrame=0,this._pNextFrame=0,this._pBlendWeight=0;else if(this._animationClipNode.fixedFrameRate){var n=A/e*i;this._pCurrentFrame=Math.floor(n),this._pBlendWeight=n-this._pCurrentFrame,this._pNextFrame=this._pCurrentFrame+1}else{this._pCurrentFrame=0,this._pNextFrame=0;var r=0,o=void 0,s=this._animationClipNode.durations;do{o=r,r+=s[this._pNextFrame],this._pCurrentFrame=this._pNextFrame++}while(A>r);this._pCurrentFrame==i&&(this._pCurrentFrame=0,this._pNextFrame=1),this._pBlendWeight=(A-o)/s[this._pCurrentFrame]}},e.prototype.notifyPlaybackComplete=function(){null==this._animationStatePlaybackComplete&&(this._animationStatePlaybackComplete=new at(at.PLAYBACK_COMPLETE,this._pAnimator,this,this._animationClipNode)),this._animationClipNode.dispatchEvent(this._animationStatePlaybackComplete)},e}(_),lt=function(t){function i(i,A){var n=t.call(this,i,A)||this;return n._rootPos=new e.Vector3D,n._skeletonPose=new C,n._skeletonPoseDirty=!0,n._skeletonClipNode=A,n._frames=n._skeletonClipNode.frames,n}return I(i,t),Object.defineProperty(i.prototype,"currentPose",{get:function(){return this._pFramesDirty&&this._pUpdateFrames(),this._currentPose},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"nextPose",{get:function(){return this._pFramesDirty&&this._pUpdateFrames(),this._nextPose},enumerable:!1,configurable:!0}),i.prototype.getSkeletonPose=function(t){return this._skeletonPoseDirty&&this.updateSkeletonPose(t),this._skeletonPose},i.prototype._pUpdateTime=function(e){this._skeletonPoseDirty=!0,t.prototype._pUpdateTime.call(this,e)},i.prototype._pUpdateFrames=function(){t.prototype._pUpdateFrames.call(this),this._currentPose=this._frames[this._pCurrentFrame],this._skeletonClipNode.looping&&this._pNextFrame>=this._skeletonClipNode.lastFrame?(this._nextPose=this._frames[0],this._pAnimator.dispatchCycleEvent()):this._nextPose=this._frames[this._pNextFrame]},i.prototype.updateSkeletonPose=function(t){if(this._skeletonPoseDirty=!1,this._skeletonClipNode.totalDuration){this._pFramesDirty&&this._pUpdateFrames();var e,i,A,n,r,o,a=this._currentPose.jointPoses,g=this._nextPose.jointPoses,l=t.numJoints,h=this._skeletonPose.jointPoses;if(h.length!=l&&(h.length=l),l!=a.length||l!=g.length)throw new Error("joint counts don't match!");for(var I=0;I<l;++I)null==(r=h[I])&&(r=h[I]=new s),A=a[I],n=g[I],e=A.translation,i=n.translation,this._skeletonClipNode.highQuality?r.orientation.slerp(A.orientation,n.orientation,this._pBlendWeight):r.orientation.lerp(A.orientation,n.orientation,this._pBlendWeight),I>0&&((o=r.translation).x=e.x+this._pBlendWeight*(i.x-e.x),o.y=e.y+this._pBlendWeight*(i.y-e.y),o.z=e.z+this._pBlendWeight*(i.z-e.z))}},i.prototype._pUpdatePositionDelta=function(){var t,e,i;this._pPositionDeltaDirty=!1,this._pFramesDirty&&this._pUpdateFrames();var A=this._skeletonClipNode.totalDelta;(this._pTimeDir>0&&this._pNextFrame<this._pOldFrame||this._pTimeDir<0&&this._pNextFrame>this._pOldFrame)&&(this._rootPos.x-=A.x*this._pTimeDir,this._rootPos.y-=A.y*this._pTimeDir,this._rootPos.z-=A.z*this._pTimeDir);var n=this._rootPos.x,r=this._rootPos.y,o=this._rootPos.z;this._skeletonClipNode.stitchFinalFrame&&this._pNextFrame==this._skeletonClipNode.lastFrame?(t=this._frames[0].jointPoses[0].translation,e=this._frames[1].jointPoses[0].translation,i=this._currentPose.jointPoses[0].translation,this._rootPos.x=i.x+t.x+this._pBlendWeight*(e.x-t.x),this._rootPos.y=i.y+t.y+this._pBlendWeight*(e.y-t.y),this._rootPos.z=i.z+t.z+this._pBlendWeight*(e.z-t.z)):(t=this._currentPose.jointPoses[0].translation,e=this._frames[this._pNextFrame].jointPoses[0].translation,this._rootPos.x=t.x+this._pBlendWeight*(e.x-t.x),this._rootPos.y=t.y+this._pBlendWeight*(e.y-t.y),this._rootPos.z=t.z+this._pBlendWeight*(e.z-t.z)),this._pRootDelta.x=this._rootPos.x-n,this._pRootDelta.y=this._rootPos.y-r,this._pRootDelta.z=this._rootPos.z-o,this._pOldFrame=this._pNextFrame},i}(gt),ht=function(t){function e(){var e=t.call(this)||this;return e._frames=new Array,e.highQuality=!1,e._pStateClass=lt,e}return I(e,t),Object.defineProperty(e.prototype,"frames",{get:function(){return this._frames},enumerable:!1,configurable:!0}),e.prototype.addFrame=function(t,e){this._frames.push(t),this._pDurations.push(e),this._pNumFrames=this._pDurations.length,this._pStitchDirty=!0},e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e.prototype._pUpdateStitch=function(){t.prototype._pUpdateStitch.call(this);for(var e,i,A=this._pNumFrames-1;A--;)this._pTotalDuration+=this._pDurations[A],e=this._frames[A].jointPoses[0].translation,i=this._frames[A+1].jointPoses[0].translation.subtract(e),this._pTotalDelta.x+=i.x,this._pTotalDelta.y+=i.y,this._pTotalDelta.z+=i.z;!this._pStitchFinalFrame&&this._pLooping||(this._pTotalDuration+=this._pDurations[this._pNumFrames-1],e=this._frames[0].jointPoses[0].translation,i=this._frames[1].jointPoses[0].translation.subtract(e),this._pTotalDelta.x+=i.x,this._pTotalDelta.y+=i.y,this._pTotalDelta.z+=i.z)},e}(d),It=function(t){function i(e,i){var A=t.call(this,e,i)||this;return A._blendWeight=0,A._skeletonPose=new C,A._skeletonPoseDirty=!0,A._skeletonAnimationNode=i,A._baseInput=e.getAnimationState(A._skeletonAnimationNode.baseInput),A._differenceInput=e.getAnimationState(A._skeletonAnimationNode.differenceInput),A}return I(i,t),Object.defineProperty(i.prototype,"blendWeight",{get:function(){return this._blendWeight},set:function(t){this._blendWeight=t,this._pPositionDeltaDirty=!0,this._skeletonPoseDirty=!0},enumerable:!1,configurable:!0}),i.prototype.phase=function(t){this._skeletonPoseDirty=!0,this._pPositionDeltaDirty=!0,this._baseInput.phase(t),this._baseInput.phase(t)},i.prototype._pUpdateTime=function(e){this._skeletonPoseDirty=!0,this._baseInput.update(e),this._differenceInput.update(e),t.prototype._pUpdateTime.call(this,e)},i.prototype.getSkeletonPose=function(t){return this._skeletonPoseDirty&&this.updateSkeletonPose(t),this._skeletonPose},i.prototype._pUpdatePositionDelta=function(){this._pPositionDeltaDirty=!1;var t=this._baseInput.positionDelta,e=this._differenceInput.positionDelta;this.positionDelta.x=t.x+this._blendWeight*e.x,this.positionDelta.y=t.y+this._blendWeight*e.y,this.positionDelta.z=t.z+this._blendWeight*e.z},i.prototype.updateSkeletonPose=function(t){var e;this._skeletonPoseDirty=!1;var A,n,r,o,a,g=this._skeletonPose.jointPoses,l=this._baseInput.getSkeletonPose(t).jointPoses,h=this._differenceInput.getSkeletonPose(t).jointPoses,I=t.numJoints;g.length!=I&&(g.length=I);for(var c=0;c<I;++c)null==(e=g[c])&&(e=g[c]=new s),A=l[c],n=h[c],r=A.translation,o=n.translation,i._tempQuat.multiply(n.orientation,A.orientation),e.orientation.lerp(A.orientation,i._tempQuat,this._blendWeight),(a=e.translation).x=r.x+this._blendWeight*o.x,a.y=r.y+this._blendWeight*o.y,a.z=r.z+this._blendWeight*o.z},i._tempQuat=new e.Quaternion,i}(_),ct=function(t){function e(){var e=t.call(this)||this;return e._pStateClass=It,e}return I(e,t),e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e}(i.AnimationNodeBase),pt=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._skeletonPose=new C,A._skeletonPoseDirty=!0,A._blendWeight=0,A._direction=0,A._blendDirty=!0,A._skeletonAnimationNode=i,A._forward=e.getAnimationState(A._skeletonAnimationNode.forward),A._backward=e.getAnimationState(A._skeletonAnimationNode.backward),A._left=e.getAnimationState(A._skeletonAnimationNode.left),A._right=e.getAnimationState(A._skeletonAnimationNode.right),A}return I(e,t),Object.defineProperty(e.prototype,"direction",{get:function(){return this._direction},set:function(t){this._direction!=t&&(this._direction=t,this._blendDirty=!0,this._skeletonPoseDirty=!0,this._pPositionDeltaDirty=!0)},enumerable:!1,configurable:!0}),e.prototype.phase=function(t){this._blendDirty&&this.updateBlend(),this._skeletonPoseDirty=!0,this._pPositionDeltaDirty=!0,this._inputA.phase(t),this._inputB.phase(t)},e.prototype._pUdateTime=function(e){this._blendDirty&&this.updateBlend(),this._skeletonPoseDirty=!0,this._inputA.update(e),this._inputB.update(e),t.prototype._pUpdateTime.call(this,e)},e.prototype.getSkeletonPose=function(t){return this._skeletonPoseDirty&&this.updateSkeletonPose(t),this._skeletonPose},e.prototype._pUpdatePositionDelta=function(){this._pPositionDeltaDirty=!1,this._blendDirty&&this.updateBlend();var t=this._inputA.positionDelta,e=this._inputB.positionDelta;this.positionDelta.x=t.x+this._blendWeight*(e.x-t.x),this.positionDelta.y=t.y+this._blendWeight*(e.y-t.y),this.positionDelta.z=t.z+this._blendWeight*(e.z-t.z)},e.prototype.updateSkeletonPose=function(t){var e;this._skeletonPoseDirty=!1,this._blendDirty&&this.updateBlend();var i,A,n,r,o,a=this._skeletonPose.jointPoses,g=this._inputA.getSkeletonPose(t).jointPoses,l=this._inputB.getSkeletonPose(t).jointPoses,h=t.numJoints;a.length!=h&&(a.length=h);for(var I=0;I<h;++I)null==(e=a[I])&&(e=a[I]=new s),i=g[I],A=l[I],n=i.translation,r=A.translation,e.orientation.lerp(i.orientation,A.orientation,this._blendWeight),(o=e.translation).x=n.x+this._blendWeight*(r.x-n.x),o.y=n.y+this._blendWeight*(r.y-n.y),o.z=n.z+this._blendWeight*(r.z-n.z)},e.prototype.updateBlend=function(){this._blendDirty=!1,(this._direction<0||this._direction>360)&&(this._direction%=360,this._direction<0&&(this._direction+=360)),this._direction<90?(this._inputA=this._forward,this._inputB=this._right,this._blendWeight=this._direction/90):this._direction<180?(this._inputA=this._right,this._inputB=this._backward,this._blendWeight=(this._direction-90)/90):this._direction<270?(this._inputA=this._backward,this._inputB=this._left,this._blendWeight=(this._direction-180)/90):(this._inputA=this._left,this._inputB=this._forward,this._blendWeight=(this._direction-270)/90)},e}(_),Ct=function(t){function e(){var e=t.call(this)||this;return e._pStateClass=pt,e}return I(e,t),e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e}(i.AnimationNodeBase),ut=function(t){function e(e,i){var A=t.call(this,e,i)||this;A._skeletonPose=new C,A._skeletonPoseDirty=!0,A._blendWeights=new Array,A._inputs=new Array,A._skeletonAnimationNode=i;for(var n=A._skeletonAnimationNode.numInputs;n--;)A._inputs[n]=e.getAnimationState(A._skeletonAnimationNode._iInputs[n]);return A}return I(e,t),e.prototype.phase=function(t){this._skeletonPoseDirty=!0,this._pPositionDeltaDirty=!0;for(var e=0;e<this._skeletonAnimationNode.numInputs;++e)this._blendWeights[e]&&this._inputs[e].update(t)},e.prototype._pUdateTime=function(e){for(var i=0;i<this._skeletonAnimationNode.numInputs;++i)this._blendWeights[i]&&this._inputs[i].update(e);t.prototype._pUpdateTime.call(this,e)},e.prototype.getSkeletonPose=function(t){return this._skeletonPoseDirty&&this.updateSkeletonPose(t),this._skeletonPose},e.prototype.getBlendWeightAt=function(t){return this._blendWeights[t]},e.prototype.setBlendWeightAt=function(t,e){this._blendWeights[t]=e,this._pPositionDeltaDirty=!0,this._skeletonPoseDirty=!0},e.prototype._pUpdatePositionDelta=function(){var t,e;this._pPositionDeltaDirty=!1,this.positionDelta.x=0,this.positionDelta.y=0,this.positionDelta.z=0;for(var i=0;i<this._skeletonAnimationNode.numInputs;++i)(e=this._blendWeights[i])&&(t=this._inputs[i].positionDelta,this.positionDelta.x+=e*t.x,this.positionDelta.y+=e*t.y,this.positionDelta.z+=e*t.z)},e.prototype.updateSkeletonPose=function(t){var e;this._skeletonPoseDirty=!1;var i,A,n,r,o,a,g,l,h,I,c,p,C,u,d,_,f,E=this._skeletonPose.jointPoses,y=t.numJoints;E.length!=y&&(E.length=y);for(var B=0;B<this._skeletonAnimationNode.numInputs;++B)if(e=this._blendWeights[B])if(i=this._inputs[B].getSkeletonPose(t).jointPoses,l)for(h=0;h<t.numJoints;++h)A=E[h],n=i[h],c=(g=l[h].orientation).x,p=g.y,C=g.z,I=g.w,g=n.orientation,o=n.translation,c*(d=g.x)+p*(_=g.y)+C*(f=g.z)+I*(u=g.w)<0&&(d=-d,_=-_,f=-f,u=-u),(a=A.orientation).x+=e*d,a.y+=e*_,a.z+=e*f,a.w+=e*u,(r=A.translation).x+=e*o.x,r.y+=e*o.y,r.z+=e*o.z;else for(l=i,h=0;h<y;++h)null==(A=E[h])&&(A=E[h]=new s),g=(n=i[h]).orientation,o=n.translation,(a=A.orientation).x=e*g.x,a.y=e*g.y,a.z=e*g.z,a.w=e*g.w,(r=A.translation).x=e*o.x,r.y=e*o.y,r.z=e*o.z;for(h=0;h<t.numJoints;++h)E[h].orientation.normalize()},e}(_),dt=function(t){function e(){var e=t.call(this)||this;return e._iInputs=new Array,e._pStateClass=ut,e}return I(e,t),Object.defineProperty(e.prototype,"numInputs",{get:function(){return this._numInputs},enumerable:!1,configurable:!0}),e.prototype.getInputIndex=function(t){return this._iInputs.indexOf(t)},e.prototype.getInputAt=function(t){return this._iInputs[t]},e.prototype.addInput=function(t){this._iInputs[this._numInputs++]=t},e.prototype.getAnimationState=function(t){return t.getAnimationState(this)},e}(i.AnimationNodeBase),_t=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._vertexClipNode=i,A._frames=A._vertexClipNode.frames,A}return I(e,t),Object.defineProperty(e.prototype,"currentElements",{get:function(){return this._pFramesDirty&&this._pUpdateFrames(),this._currentGraphics},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextElements",{get:function(){return this._pFramesDirty&&this._pUpdateFrames(),this._nextGraphics},enumerable:!1,configurable:!0}),e.prototype._pUpdateFrames=function(){t.prototype._pUpdateFrames.call(this),this._currentGraphics=this._frames[this._pCurrentFrame],this._vertexClipNode.looping&&this._pNextFrame>=this._vertexClipNode.lastFrame?(this._nextGraphics=this._frames[0],this._pAnimator.dispatchCycleEvent()):this._nextGraphics=this._frames[this._pNextFrame]},e.prototype._pUpdatePositionDelta=function(){},e}(gt),ft=function(t){function i(){var e=t.call(this)||this;return e._frames=new Array,e._translations=new Array,e._pStateClass=_t,e}return I(i,t),Object.defineProperty(i.prototype,"frames",{get:function(){return this._frames},enumerable:!1,configurable:!0}),i.prototype.addFrame=function(t,i,A){void 0===A&&(A=null),this._frames.push(t),this._pDurations.push(i),this._translations.push(A||new e.Vector3D),this._pNumFrames=this._pDurations.length,this._pStitchDirty=!0},i.prototype._pUpdateStitch=function(){t.prototype._pUpdateStitch.call(this);for(var e,i,A=this._pNumFrames-1;A--;)this._pTotalDuration+=this._pDurations[A],e=this._translations[A],i=this._translations[A+1].subtract(e),this._pTotalDelta.x+=i.x,this._pTotalDelta.y+=i.y,this._pTotalDelta.z+=i.z;this._pNumFrames>1&&(this._pStitchFinalFrame||!this._pLooping)&&(this._pTotalDuration+=this._pDurations[this._pNumFrames-1],e=this._translations[0],i=this._translations[1].subtract(e),this._pTotalDelta.x+=i.x,this._pTotalDelta.y+=i.y,this._pTotalDelta.z+=i.z)},i}(d),Et=function(t){function e(e,i){var A=t.call(this,e,i)||this;return A._crossfadeTransitionNode=i,A}return I(e,t),e.prototype._pUpdateTime=function(e){this.blendWeight=Math.abs(e-this._crossfadeTransitionNode.startBlend)/(1e3*this._crossfadeTransitionNode.blendSpeed),this.blendWeight>=1&&(this.blendWeight=1,null==this._animationStateTransitionComplete&&(this._animationStateTransitionComplete=new at(at.TRANSITION_COMPLETE,this._pAnimator,this,this._crossfadeTransitionNode)),this._crossfadeTransitionNode.dispatchEvent(this._animationStateTransitionComplete)),t.prototype._pUpdateTime.call(this,e)},e}(ot),yt=function(t){function e(){var e=t.call(this)||this;return e._pStateClass=Et,e}return I(e,t),e}(st),Bt=function(){function t(t){this.blendSpeed=.5,this.blendSpeed=t}return t.prototype.getAnimationNode=function(t,e,i,A){var n=new yt;return n.inputA=e,n.inputB=i,n.blendSpeed=this.blendSpeed,n.startBlend=A,n},t}(),mt=function(t){function e(e,i){var A=t.call(this,e)||this;return A._animator=i,A}return I(e,t),Object.defineProperty(e.prototype,"animator",{get:function(){return this._animator},enumerable:!1,configurable:!0}),e.prototype.clone=function(){return new e(this.type,this._animator)},e.START="animatorStart",e.STOP="animatorStop",e.CYCLE_COMPLETE="animatorCycleComplete",e}(e.EventBase),Qt=function(t){function i(i){var A=t.call(this)||this;return A._autoUpdate=!0,A._time=0,A._playbackSpeed=1,A._pOwners=new Array,A._pAbsoluteTime=0,A._animationStates=new Object,A.updatePosition=!0,A._pAnimationSet=i,A._broadcaster=new e.RequestAnimationFrame(A.onEnterFrame,A),A}return I(i,t),i.prototype.getAnimationState=function(t){var e=t.stateClass,i=t.id;return null==this._animationStates[i]&&(this._animationStates[i]=new e(this,t)),this._animationStates[i]},i.prototype.getAnimationStateByName=function(t){return this.getAnimationState(this._pAnimationSet.getAnimation(t))},Object.defineProperty(i.prototype,"absoluteTime",{get:function(){return this._pAbsoluteTime},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"animationSet",{get:function(){return this._pAnimationSet},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"activeState",{get:function(){return this._pActiveState},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"activeAnimation",{get:function(){return this._pAnimationSet.getAnimation(this._pActiveAnimationName)},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"activeAnimationName",{get:function(){return this._pActiveAnimationName},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"autoUpdate",{get:function(){return this._autoUpdate},set:function(t){this._autoUpdate!=t&&(this._autoUpdate=t,this._autoUpdate?this.start():this.stop())},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"time",{get:function(){return this._time},set:function(t){this._time!=t&&this.update(t)},enumerable:!1,configurable:!0}),i.prototype.phase=function(t){this._pActiveState.phase(t)},Object.defineProperty(i.prototype,"playbackSpeed",{get:function(){return this._playbackSpeed},set:function(t){this._playbackSpeed=t},enumerable:!1,configurable:!0}),i.prototype.setRenderState=function(t,i){throw new e.AbstractMethodError},i.prototype.start=function(){!this._isPlaying&&this._autoUpdate&&(this._time=this._pAbsoluteTime=e.getTimer(),this._isPlaying=!0,this._broadcaster.start(),this.hasEventListener(mt.START)&&(null==this._startEvent&&(this._startEvent=new mt(mt.START,this)),this.dispatchEvent(this._startEvent)))},i.prototype.stop=function(){this._isPlaying&&(this._isPlaying=!1,this._broadcaster.stop(),this.hasEventListener(mt.STOP)&&(null==this._stopEvent&&(this._stopEvent=new mt(mt.STOP,this)),this.dispatchEvent(this._stopEvent)))},i.prototype.update=function(t){var e=(t-this._time)*this.playbackSpeed;this._pUpdateDeltaTime(e),this._time=t},i.prototype.reset=function(t,e){void 0===e&&(e=0),this.getAnimationState(this._pAnimationSet.getAnimation(t)).offset(e+this._pAbsoluteTime)},i.prototype.addOwner=function(t){this._pOwners.push(t)},i.prototype.removeOwner=function(t){this._pOwners.splice(this._pOwners.indexOf(t),1)},i.prototype._pUpdateDeltaTime=function(t){this._pAbsoluteTime+=t,this._pActiveState.update(this._pAbsoluteTime),this.updatePosition&&this.applyPositionDelta()},i.prototype.onEnterFrame=function(t){this.update(e.getTimer())},i.prototype.applyPositionDelta=function(){var t,e=this._pActiveState.positionDelta,i=e.length;if(i>0){t=this._pOwners.length;for(var A=0;A<t;++A)this._pOwners[A].transform.translateLocal(e,i)}},i.prototype.dispatchCycleEvent=function(){this.hasEventListener(mt.CYCLE_COMPLETE)&&(null==this._cycleEvent&&(this._cycleEvent=new mt(mt.CYCLE_COMPLETE,this)),this.dispatchEvent(this._cycleEvent))},i.prototype.clone=function(){throw new e.AbstractMethodError},i.prototype.dispose=function(){},i.prototype.invalidateElements=function(){for(var t=this._pOwners.length,e=0;e<t;e++)this._pOwners[e].invalidateElements()},i.prototype.testGPUCompatibility=function(t){throw new e.AbstractMethodError},Object.defineProperty(i.prototype,"assetType",{get:function(){return i.assetType},enumerable:!1,configurable:!0}),i.prototype.getRenderableElements=function(t,e){return e},i.assetType="[asset Animator]",i}(e.AssetBase),Dt=function(t){function e(e){var i,A,n=t.call(this,e)||this;n._animationParticleStates=new Array,n._animatorParticleStates=new Array,n._timeParticleStates=new Array,n._totalLenOfOneVertex=0,n._animatorSubGeometries=new Object,n._particleAnimationSet=e;for(var r=0;r<n._particleAnimationSet.particleNodes.length;r++)A=n._particleAnimationSet.particleNodes[r],i=n.getAnimationState(A),A.mode==l.LOCAL_DYNAMIC?(n._animatorParticleStates.push(i),A._iDataOffset=n._totalLenOfOneVertex,n._totalLenOfOneVertex+=A.dataLength):n._animationParticleStates.push(i),i.needUpdateTime&&n._timeParticleStates.push(i);return n}return I(e,t),e.prototype.clone=function(){return new e(this._particleAnimationSet)},e.prototype.setRenderState=function(t,e){var i,A=this._particleAnimationSet._iAnimationRegisterData,n=e.renderable.particleCollection,r=e.renderable.elements,o=this._particleAnimationSet.getAnimationElements(n,r);for(i=0;i<this._animationParticleStates.length;i++)this._animationParticleStates[i].setRenderState(t,e,o,A);var s=this.getAnimatorElements(n,r);for(i=0;i<this._animatorParticleStates.length;i++)this._animatorParticleStates[i].setRenderState(t,e,s,A)},e.prototype.testGPUCompatibility=function(t){},e.prototype.start=function(){t.prototype.start.call(this);for(var e=0;e<this._timeParticleStates.length;e++)this._timeParticleStates[e].offset(this._pAbsoluteTime)},e.prototype._pUpdateDeltaTime=function(t){this._pAbsoluteTime+=t;for(var e=0;e<this._timeParticleStates.length;e++)this._timeParticleStates[e].update(this._pAbsoluteTime)},e.prototype.resetTime=function(t){void 0===t&&(t=0);for(var e=0;e<this._timeParticleStates.length;e++)this._timeParticleStates[e].offset(this._pAbsoluteTime+t);this.update(this.time)},e.prototype.dispose=function(){for(var t in this._animatorSubGeometries)this._animatorSubGeometries[t].dispose()},e.prototype.getAnimatorElements=function(t,e){if(this._animatorParticleStates.length){var i=this._animatorSubGeometries[e.id]=new r;i.createVertexData(e.numVertices,this._totalLenOfOneVertex),i.animationParticles=this._particleAnimationSet.getAnimationElements(t,e).animationParticles}},e}(Qt),vt=function(t){function e(e){void 0===e&&(e=4);var i=t.call(this)||this;return i._jointsPerVertex=e,i}return I(e,t),Object.defineProperty(e.prototype,"jointsPerVertex",{get:function(){return this._jointsPerVertex},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"matricesIndex",{get:function(){return this._matricesIndex},enumerable:!1,configurable:!0}),e.prototype.getAGALVertexCode=function(t,e,i){this._matricesIndex=e.numUsedVertexConstants;var A=this._matricesIndex,n=this._matricesIndex+1,r=this._matricesIndex+2,o=e.getFreeVertexAttribute();t.jointIndexIndex=o.index;var s=e.getFreeVertexAttribute();t.jointWeightIndex=s.index;for(var a=[o+".x",o+".y",o+".z",o+".w"],g=[s+".x",s+".y",s+".z",s+".w"],l=e.getFreeVertexVectorTemp(),h="dp4",I="",c=i.animatableAttributes.length,p=0;p<c;++p){for(var C=i.animatableAttributes[p],u=i.animationTargetRegisters[p],d=0;d<this._jointsPerVertex;++d)e.getFreeVertexConstant(),e.getFreeVertexConstant(),e.getFreeVertexConstant(),I+=h+" "+l+".x, "+C+", vc["+a[d]+"+"+A+"]\n"+h+" "+l+".y, "+C+", vc["+a[d]+"+"+n+"]\n"+h+" "+l+".z, "+C+", vc["+a[d]+"+"+r+"]\nmov "+l+".w, "+C+".w\nmul "+l+", "+l+", "+g[d]+"\n",I+=0==d?"mov "+u+", "+l+"\n":"add "+u+", "+u+", "+l+"\n";h="dp3"}return I},e.prototype.getAGALFragmentCode=function(t,e,i){return""},e.prototype.getAGALUVCode=function(t,e,i){return"mov "+i.animatedUV+","+i.uvInput+"\n"},e.prototype.doneAGALCode=function(t){},e}(N),xt=function(t){function e(e,i,A){void 0===A&&(A=!1);var n=t.call(this,e)||this;n._globalPose=new C,n._morphedElements=new Object,n._morphedElementsDirty=new Object,n._skeletonAnimationSet=e,n._skeleton=i,n._forceCPU=A,n._jointsPerVertex=e.jointsPerVertex,n._numJoints=n._skeleton.numJoints,n._globalMatrices=new Float32Array(12*n._numJoints);for(var r=0,o=0;o<n._numJoints;++o)n._globalMatrices[r++]=1,n._globalMatrices[r++]=0,n._globalMatrices[r++]=0,n._globalMatrices[r++]=0,n._globalMatrices[r++]=0,n._globalMatrices[r++]=1,n._globalMatrices[r++]=0,n._globalMatrices[r++]=0,n._globalMatrices[r++]=0,n._globalMatrices[r++]=0,n._globalMatrices[r++]=1,n._globalMatrices[r++]=0;return n._onTransitionCompleteDelegate=function(t){return n.onTransitionComplete(t)},n._onIndicesUpdateDelegate=function(t){return n.onIndicesUpdate(t)},n._onVerticesUpdateDelegate=function(t){return n.onVerticesUpdate(t)},n}return I(e,t),Object.defineProperty(e.prototype,"globalMatrices",{get:function(){return this._globalPropertiesDirty&&this.updateGlobalProperties(),this._globalMatrices},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"globalPose",{get:function(){return this._globalPropertiesDirty&&this.updateGlobalProperties(),this._globalPose},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"skeleton",{get:function(){return this._skeleton},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"forceCPU",{get:function(){return this._forceCPU},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"useCondensedIndices",{get:function(){return this._useCondensedIndices},set:function(t){this._useCondensedIndices=t},enumerable:!1,configurable:!0}),e.prototype.clone=function(){return new e(this._skeletonAnimationSet,this._skeleton,this._forceCPU)},e.prototype.play=function(t,e,i){if(void 0===e&&(e=null),void 0===i&&(i=NaN),this._pActiveAnimationName!=t){if(this._pActiveAnimationName=t,!this._pAnimationSet.hasAnimation(t))throw new Error("Animation root node "+t+" not found!");e&&this._pActiveNode?(this._pActiveNode=e.getAnimationNode(this,this._pActiveNode,this._pAnimationSet.getAnimation(t),this._pAbsoluteTime),this._pActiveNode.addEventListener(at.TRANSITION_COMPLETE,this._onTransitionCompleteDelegate)):this._pActiveNode=this._pAnimationSet.getAnimation(t),this._pActiveState=this.getAnimationState(this._pActiveNode),this.updatePosition&&(this._pActiveState.update(this._pAbsoluteTime),this._pActiveState.positionDelta),this._activeSkeletonState=this._pActiveState,this.start(),isNaN(i)||this.reset(t,i)}},e.prototype.setRenderState=function(t,e){this._globalPropertiesDirty&&this.updateGlobalProperties();var i=e.renderable.elements;if(i.useCondensedIndices=this._useCondensedIndices,this._useCondensedIndices)this.updateCondensedMatrices(i.condensedIndexLookUp),t.setVertexConstFromArray(this._skeletonAnimationSet.matricesIndex,this._condensedMatrices);else{if(this._pAnimationSet.usesCPU)return void(this._morphedElementsDirty[i.id]&&this.morphElements(e,i));t.setVertexConstFromArray(this._skeletonAnimationSet.matricesIndex,this._globalMatrices)}},e.prototype.testGPUCompatibility=function(t){!this._useCondensedIndices&&(this._forceCPU||this._jointsPerVertex>4||t.numUsedVertexConstants+3*this._numJoints>128)&&this._pAnimationSet.cancelGPUCompatibility()},e.prototype._pUpdateDeltaTime=function(e){t.prototype._pUpdateDeltaTime.call(this,e),this._globalPropertiesDirty=!0,this._pAnimationSet.usesCPU&&this.invalidateElements()},e.prototype.updateCondensedMatrices=function(t){var e,i=0,A=0,n=t.length;this._condensedMatrices=new Float32Array(12*n);for(var r=0;r<n;r++)for(e=12*t[r],A=12;A--;)this._condensedMatrices[i++]=this._globalMatrices[e++]},e.prototype.updateGlobalProperties=function(){this._globalPropertiesDirty=!1,this.localToGlobalPose(this._activeSkeletonState.getSkeletonPose(this._skeleton),this._globalPose,this._skeleton);for(var t,e,i,A,n,r,o,s,a,g,l,h,I,c,p,C,u,d,_,f,E,y,B,m,Q,D,v,x,S,w,b,N,R,F,T,O,M=0,P=this._globalPose.jointPoses,L=this._skeleton.joints,U=0;U<this._numJoints;++U)F=(R=P[U]).orientation,T=R.translation,r=(O=2*(e=F.x))*(i=F.y),o=O*(A=F.z),s=O*(n=F.w),(O=2*i)*A,O*n,2*A*n,a=2*i*A,g=2*i*n,l=2*A*n,h=(O=(e*=e)-(i*=i))-(A*=A)+(n*=n),I=r-l,c=o+g,p=r+l,C=-O-A+n,u=a-s,d=o-g,_=a+s,f=-e-i+A+n,E=(t=L[U].inverseBindPose)[0],y=t[4],B=t[8],m=t[12],Q=t[1],D=t[5],v=t[9],x=t[13],S=t[2],w=t[6],b=t[10],N=t[14],this._globalMatrices[M]=h*E+I*Q+c*S,this._globalMatrices[M+1]=h*y+I*D+c*w,this._globalMatrices[M+2]=h*B+I*v+c*b,this._globalMatrices[M+3]=h*m+I*x+c*N+T.x,this._globalMatrices[M+4]=p*E+C*Q+u*S,this._globalMatrices[M+5]=p*y+C*D+u*w,this._globalMatrices[M+6]=p*B+C*v+u*b,this._globalMatrices[M+7]=p*m+C*x+u*N+T.y,this._globalMatrices[M+8]=d*E+_*Q+f*S,this._globalMatrices[M+9]=d*y+_*D+f*w,this._globalMatrices[M+10]=d*B+_*v+f*b,this._globalMatrices[M+11]=d*m+_*x+f*N+T.z,M+=12},e.prototype.getRenderableElements=function(t,e){return this._morphedElementsDirty[e.id]=!0,this._pAnimationSet.usesCPU?((A=this._morphedElements[e.id])||(e.normals,e.tangents,(A=this._morphedElements[e.id]=e.clone()).autoDeriveNormals=!1,A.autoDeriveTangents=!1,e.addEventListener(i.ElementsEvent.INVALIDATE_INDICES,this._onIndicesUpdateDelegate),e.addEventListener(i.ElementsEvent.INVALIDATE_VERTICES,this._onVerticesUpdateDelegate)),A):e;var A},e.prototype.morphElements=function(t,e){this._morphedElementsDirty[e.id]=!1;var i=e.numVertices,A=e.positions.get(i),n=e.normals.get(i),r=e.tangents.get(i),o=e.positions.dimensions,s=e.positions.stride,a=e.normals.stride,g=e.tangents.stride,l=e.jointIndices.get(i),h=e.jointWeights.get(i),I=e.jointIndices.stride,c=this._morphedElements[e.id],p=c.positions.get(i),C=c.normals.get(i),u=c.tangents.get(i);c.positions.attributesBuffer.invalidate(),c.normals.attributesBuffer.invalidate(),c.tangents.attributesBuffer.invalidate();for(var d,_,f,E,y,B,m,Q,D,v,x,S,w,b,N,R,F,T,O,M,P,L,U,k,V,G,Y,K,z,J=0,H=0,q=0,j=0,X=0;J<i;){for(S=A[H=J*s],w=A[H+1],b=3==o?A[H+2]:0,N=n[q=J*a],R=n[q+1],F=n[q+2],T=r[j=J*g],O=r[j+1],M=r[j+2],_=0,f=0,E=0,y=0,B=0,m=0,Q=0,D=0,v=0,d=0,X=J*I;d<this._jointsPerVertex;)if((x=h[X+d])>0){var W=l[X+d]<<2;_+=x*((P=this._globalMatrices[W])*S+(L=this._globalMatrices[W+1])*w+(U=this._globalMatrices[W+2])*b+this._globalMatrices[W+3]),f+=x*((k=this._globalMatrices[W+4])*S+(V=this._globalMatrices[W+5])*w+(G=this._globalMatrices[W+6])*b+this._globalMatrices[W+7]),E+=x*((Y=this._globalMatrices[W+8])*S+(K=this._globalMatrices[W+9])*w+(z=this._globalMatrices[W+10])*b+this._globalMatrices[W+11]),y+=x*(P*N+L*R+U*F),B+=x*(k*N+V*R+G*F),m+=x*(Y*N+K*R+z*F),Q+=x*(P*T+L*O+U*M),D+=x*(k*T+V*O+G*M),v+=x*(Y*T+K*O+z*M),d++}else d=this._jointsPerVertex;p[H]=_,p[H+1]=f,3==o&&(p[H+2]=E),C[q]=y,C[q+1]=B,C[q+2]=m,u[j]=Q,u[j+1]=D,u[j+2]=v,J++}},e.prototype.localToGlobalPose=function(t,e,i){var A,n,r,o,a,g,l,h,I,c,p,C,u,d,_,f,E,y,B,m=e.jointPoses,Q=i.joints,D=t.numJointPoses,v=t.jointPoses;m.length!=D&&(m.length=D);for(var x=0;x<D;++x)null==(A=m[x])&&(A=m[x]=new s),n=Q[x].parentIndex,o=v[x],h=A.orientation,l=A.translation,n<0?(g=o.translation,a=o.orientation,h.x=a.x,h.y=a.y,h.z=a.z,h.w=a.w,l.x=g.x,l.y=g.y,l.z=g.z):(a=(r=m[n]).orientation,g=o.translation,u=a.x,d=a.y,_=a.z,f=a.w,C=-u*(E=g.x)-d*(y=g.y)-_*(B=g.z),I=f*E+d*B-_*y,c=f*y-u*B+_*E,p=f*B+u*y-d*E,g=r.translation,l.x=-C*u+I*f-c*_+p*d+g.x,l.y=-C*d+I*_+c*f-p*u+g.y,l.z=-C*_-I*d+c*u+p*f+g.z,I=a.x,c=a.y,p=a.z,C=a.w,u=(a=o.orientation).x,d=a.y,_=a.z,f=a.w,h.w=C*f-I*u-c*d-p*_,h.x=C*u+I*f+c*_-p*d,h.y=C*d-I*_+c*f+p*u,h.z=C*_+I*d-c*u+p*f)},e.prototype.onTransitionComplete=function(t){t.type==at.TRANSITION_COMPLETE&&(t.animationNode.removeEventListener(at.TRANSITION_COMPLETE,this._onTransitionCompleteDelegate),this._pActiveState==t.animationState&&(this._pActiveNode=this._pAnimationSet.getAnimation(this._pActiveAnimationName),this._pActiveState=this.getAnimationState(this._pActiveNode),this._activeSkeletonState=this._pActiveState))},e.prototype.onIndicesUpdate=function(t){var e=t.target;this._morphedElements[e.id].setIndices(e.indices)},e.prototype.onVerticesUpdate=function(t){var e=t.target;if(t.attributesView==e.uvs||t.attributesView==e.getCustomAtributes("secondaryUVs")){var i=this._morphedElements[e.id],A=i.uvs.get(e.numVertices);i.invalidateVertices(i.uvs);for(var n=i.uvs.stride,r=t.attributesView.get(e.numVertices),o=e.numVertices*n,s=0;s<o;s+=n)A[s]=r[s],A[s+1]=r[s+1]}},e}(Qt),St=function(t){function e(e,i){void 0===e&&(e=2),void 0===i&&(i="absolute");var A=t.call(this)||this;return A._numPoses=e,A._blendMode=i,A}return I(e,t),Object.defineProperty(e.prototype,"numPoses",{get:function(){return this._numPoses},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"blendMode",{get:function(){return this._blendMode},enumerable:!1,configurable:!0}),e.prototype.getAGALVertexCode=function(t,e,A){return this._iAnimationRegisterData=t.animationRegisterData,null==this._iAnimationRegisterData&&(this._iAnimationRegisterData=t.animationRegisterData=new i.AnimationRegisterData),this._blendMode==u.ABSOLUTE?this.getAbsoluteAGALCode(t,e,A):this.getAdditiveAGALCode(t,e,A)},e.prototype.getAGALFragmentCode=function(t,e,i){return""},e.prototype.getAGALUVCode=function(t,e,i){return"mov "+i.animatedUV+","+i.uvInput+"\n"},e.prototype.doneAGALCode=function(t){},e.prototype.getAbsoluteAGALCode=function(t,e,i){var A="",n=e.getFreeVertexVectorTemp();e.addVertexTempUsages(n,1);var r,o=e.getFreeVertexVectorTemp(),s=new Array(".x",".y",".z",".w"),a=i.animatableAttributes.length,g=e.getFreeVertexConstant();this._iAnimationRegisterData.weightsIndex=g.index,this._iAnimationRegisterData.poseIndices=new Array(this._numPoses);var l=0;a>2&&(a=2);for(var h=0;h<a;++h){A+="mul "+n+", "+i.animatableAttributes[h]+", "+g+s[0]+"\n";for(var I=1;I<this._numPoses;++I)r=e.getFreeVertexAttribute(),this._iAnimationRegisterData.poseIndices[l++]=r.index,A+="mul "+o+", "+r+", "+g+s[I]+"\n",I<this._numPoses-1&&(A+="add "+n+", "+n+", "+o+"\n");A+="add "+i.animationTargetRegisters[h]+", "+n+", "+o+"\n"}return(t.tangentDependencies>0||t.outputsNormals)&&(A+="dp3 "+n+".x, "+i.animatableAttributes[2]+", "+i.animationTargetRegisters[1]+"\nmul "+n+", "+i.animationTargetRegisters[1]+", "+n+".x\nsub "+i.animationTargetRegisters[2]+", "+i.animationTargetRegisters[2]+", "+n+"\n"),A},e.prototype.getAdditiveAGALCode=function(t,e,i){var A,n="",r=i.animatableAttributes.length,o=[".x",".y",".z",".w"],s=e.getFreeVertexVectorTemp(),a=e.getFreeVertexConstant();this._iAnimationRegisterData.weightsIndex=a.index,this._iAnimationRegisterData.poseIndices=new Array(this._numPoses);var g=0;r>2&&(r=2),n+="mov  "+i.animationTargetRegisters[0]+", "+i.animatableAttributes[0]+"\n",t.normalDependencies>0&&(n+="mov "+i.animationTargetRegisters[1]+", "+i.animatableAttributes[1]+"\n");for(var l=0;l<r;++l)for(var h=0;h<this._numPoses;++h)A=e.getFreeVertexAttribute(),this._iAnimationRegisterData.poseIndices[g++]=A.index,n+="mul "+s+", "+A+", "+a+o[h]+"\nadd "+i.animationTargetRegisters[l]+", "+i.animationTargetRegisters[l]+", "+s+"\n";return(t.tangentDependencies>0||t.outputsNormals)&&(n+="dp3 "+s+".x, "+i.animatableAttributes[2]+", "+i.animationTargetRegisters[1]+"\nmul "+s+", "+i.animationTargetRegisters[1]+", "+s+".x\nsub "+i.animationTargetRegisters[2]+", "+i.animatableAttributes[2]+", "+s+"\n"),n},e}(N),wt=function(t){function e(e){var i=t.call(this,e)||this;return i._poses=new Array,i._weights=new Float32Array([1,0,0,0]),i._vertexAnimationSet=e,i}return I(e,t),e.prototype.clone=function(){return new e(this._vertexAnimationSet)},e.prototype.play=function(t,e,i){if(void 0===i&&(i=NaN),this._pActiveAnimationName!=t){if(this._pActiveAnimationName=t,!this._pAnimationSet.hasAnimation(t))throw new Error("Animation root node "+t+" not found!");this._pActiveNode=this._pAnimationSet.getAnimation(t),this._pActiveState=this.getAnimationState(this._pActiveNode),this.updatePosition&&(this._pActiveState.update(this._pAbsoluteTime),this._pActiveState.positionDelta),this._activeVertexState=this._pActiveState,this.start(),isNaN(i)||this.reset(t,i)}},e.prototype._pUpdateDeltaTime=function(e){t.prototype._pUpdateDeltaTime.call(this,e);var i=!1;this._poses[0]!=this._activeVertexState.currentElements&&(this._poses[0]=this._activeVertexState.currentElements,i=!0),this._poses[1]!=this._activeVertexState.nextElements&&(this._poses[1]=this._activeVertexState.nextElements),this._weights[0]=1-(this._weights[1]=this._activeVertexState.blendWeight),i&&this.invalidateElements()},e.prototype.setRenderState=function(t,e){var i=e.renderable,A=e.stageElements.elements;if(this._poses.length){var n,r,o=t.animationRegisterData,s=this._vertexAnimationSet.numPoses;t.setVertexConstFromArray(o.weightsIndex,this._weights),n=this._vertexAnimationSet.blendMode==u.ABSOLUTE?1:0;for(var a=0;n<s;++n)A=this._poses[n]||i.elements,(r=t.stage.abstractions.getAbstraction(A))._indexMappings=t.stage.abstractions.getAbstraction(i.elements).getIndexMappings(),r.activateVertexBufferVO(o.poseIndices[a++],A.positions),t.normalDependencies>0&&r.activateVertexBufferVO(o.poseIndices[a++],A.normals)}else this.setNullPose(t,A)},e.prototype.setNullPose=function(t,e){var i=t.animationRegisterData;t.setVertexConstFromArray(i.weightsIndex,this._weights);var A=t.stage.abstractions.getAbstraction(e),n=0;if(this._vertexAnimationSet.blendMode==u.ABSOLUTE)for(var r=this._vertexAnimationSet.numPoses,o=1;o<r;++o)A.activateVertexBufferVO(i.poseIndices[n++],e.positions),t.normalDependencies>0&&A.activateVertexBufferVO(i.poseIndices[n++],e.normals)},e.prototype.testGPUCompatibility=function(t){},e.prototype.getRenderableElements=function(t,e){return this._vertexAnimationSet.blendMode==u.ABSOLUTE&&this._poses.length&&this._poses[0]||e},e}(Qt),bt=function(){};function Nt(t,e){if(void 0===e&&(e="assertion failed"),""===t&&(t=!0),!t)throw"undefined"!=typeof console&&"assert"in console?(console.assert(!1,e),new Error(e)):new Error(e)}function Rt(t,e,i,A,n){void 0===i&&(i=0),void 0===A&&(A=0),void 0===n&&(n=0),A>0||n>0&&n<e.length?(n<=0&&(n=e.length-A),t.set(e.subarray(A,A+n),i)):t.set(e,i)}var Ft,Tt=function(){function t(t,e,i,A){this.xMin=0|t,this.yMin=0|e,this.xMax=0|i,this.yMax=0|A}return t.FromUntyped=function(e){return new t(e.xMin,e.yMin,e.xMax,e.yMax)},t.FromRectangle=function(e){return new t(20*e.x|0,20*e.y|0,20*(e.x+e.width)|0,20*(e.y+e.height)|0)},t.prototype.setElements=function(t,e,i,A){this.xMin=t,this.yMin=e,this.xMax=i,this.yMax=A},t.prototype.copyFrom=function(t){this.setElements(t.xMin,t.yMin,t.xMax,t.yMax)},t.prototype.contains=function(t,e){return t<this.xMin!=t<this.xMax&&e<this.yMin!=e<this.yMax},t.prototype.unionInPlace=function(t){t.isEmpty()||(this.extendByPoint(t.xMin,t.yMin),this.extendByPoint(t.xMax,t.yMax))},t.prototype.extendByPoint=function(t,e){this.extendByX(t),this.extendByY(e)},t.prototype.extendByX=function(t){134217728!==this.xMin?(this.xMin=Math.min(this.xMin,t),this.xMax=Math.max(this.xMax,t)):this.xMin=this.xMax=t},t.prototype.extendByY=function(t){134217728!==this.yMin?(this.yMin=Math.min(this.yMin,t),this.yMax=Math.max(this.yMax,t)):this.yMin=this.yMax=t},t.prototype.intersects=function(t){return this.contains(t.xMin,t.yMin)||this.contains(t.xMax,t.yMax)},t.prototype.isEmpty=function(){return this.xMax<=this.xMin||this.yMax<=this.yMin},Object.defineProperty(t.prototype,"width",{get:function(){return this.xMax-this.xMin},set:function(t){this.xMax=this.xMin+t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"height",{get:function(){return this.yMax-this.yMin},set:function(t){this.yMax=this.yMin+t},enumerable:!1,configurable:!0}),t.prototype.getBaseWidth=function(t){var e=Math.abs(Math.cos(t)),i=Math.abs(Math.sin(t));return e*(this.xMax-this.xMin)+i*(this.yMax-this.yMin)},t.prototype.getBaseHeight=function(t){var e=Math.abs(Math.cos(t));return Math.abs(Math.sin(t))*(this.xMax-this.xMin)+e*(this.yMax-this.yMin)},t.prototype.setEmpty=function(){this.xMin=this.yMin=this.xMax=this.yMax=0},t.prototype.setToSentinels=function(){this.xMin=this.yMin=this.xMax=this.yMax=134217728},t.prototype.clone=function(){return new t(this.xMin,this.yMin,this.xMax,this.yMax)},t.prototype.toString=function(){return"{ xMin: "+this.xMin+", xMin: "+this.yMin+", xMax: "+this.xMax+", xMax: "+this.yMax+" }"},t}();function Ot(t,e,i){return Math.max(e,Math.min(i,t))}function Mt(t){return null==t}function Pt(t){for(var e=new Uint8Array(4*t.length),i=0,A=0,n=t.length;A<n;A++){var r=t.charCodeAt(A);if(r<=127)e[i++]=r;else{if(55296<=r&&r<=56319){var o=t.charCodeAt(A+1);56320<=o&&o<=57343&&(r=((1023&r)<<10)+(1023&o)+65536,++A)}0!=(4292870144&r)?(e[i++]=248|r>>>24&3,e[i++]=128|r>>>18&63,e[i++]=128|r>>>12&63,e[i++]=128|r>>>6&63,e[i++]=128|63&r):0!=(4294901760&r)?(e[i++]=240|r>>>18&7,e[i++]=128|r>>>12&63,e[i++]=128|r>>>6&63,e[i++]=128|63&r):0!=(4294965248&r)?(e[i++]=224|r>>>12&15,e[i++]=128|r>>>6&63,e[i++]=128|63&r):(e[i++]=192|r>>>6&31,e[i++]=128|63&r)}}return e.subarray(0,i)}function Lt(t){for(var e=0,i="";e<t.length;){var A=255&t[e++];if(A<=127)i+=String.fromCharCode(A);else{var n=192,r=5;do{if((A&(n>>1|128))===n)break;n=n>>1|128,--r}while(r>=0);if(r<=0){i+=String.fromCharCode(A);continue}for(var o=A&(1<<r)-1,s=!1,a=5;a>=r;--a){var g=t[e++];if(128!=(192&g)){s=!0;break}o=o<<6|63&g}if(s){for(var l=e-(7-a);l<e;++l)i+=String.fromCharCode(255&t[l]);continue}i+=o>=65536?String.fromCharCode(o-65536>>10&1023|55296,1023&o|56320):String.fromCharCode(o)}}return i}t.ImageType=void 0,(Ft=t.ImageType||(t.ImageType={}))[Ft.None=0]="None",Ft[Ft.PremultipliedAlphaARGB=1]="PremultipliedAlphaARGB",Ft[Ft.StraightAlphaARGB=2]="StraightAlphaARGB",Ft[Ft.StraightAlphaRGBA=3]="StraightAlphaRGBA",Ft[Ft.JPEG=4]="JPEG",Ft[Ft.PNG=5]="PNG",Ft[Ft.GIF=6]="GIF";var Ut=self.TextEncoder?new self.TextEncoder:null,kt=self.TextDecoder?new self.TextDecoder:null;function Vt(t){if(!Ut)return Pt(t);try{return Ut.encode(t)}catch(e){return Pt(t)}}function Gt(t){if(!kt)return Lt(t);try{return kt.decode(t)}catch(e){return Lt(t)}}var Yt,Kt=function(){function t(t){void 0===t&&(t=32),this._list=[],this._maxSize=t}return t.prototype.acquire=function(e){if(t._enabled)for(var i=this._list,A=0;A<i.length;A++){var n=i[A];if(n.byteLength>=e)return i.splice(A,1),n}return new ArrayBuffer(e)},t.prototype.release=function(e){if(t._enabled){var i=this._list;i.length===this._maxSize&&i.shift(),i.push(e)}},t.prototype.ensureUint8ArrayLength=function(t,e){if(t.length>=e)return t;var i=Math.max(t.length+e,1+(3*t.length>>1)),A=new Uint8Array(this.acquire(i),0,i);return A.set(t),this.release(t.buffer),A},t.prototype.ensureFloat64ArrayLength=function(t,e){if(t.length>=e)return t;var i=Math.max(t.length+e,1+(3*t.length>>1)),A=new Float64Array(this.acquire(i*Float64Array.BYTES_PER_ELEMENT),0,i);return A.set(t),this.release(t.buffer),A},t._enabled=!0,t}();function zt(t,e){if(t.length<e){var i=t;(t=new t.constructor(Yt.nearestPowerOfTwo(e))).set(i,0)}return t}!function(t){var e=new ArrayBuffer(8);function i(t){return 256*t<<16>>16}function A(t){return t/256}t.i8=new Int8Array(e),t.u8=new Uint8Array(e),t.i32=new Int32Array(e),t.f32=new Float32Array(e),t.f64=new Float64Array(e),t.nativeLittleEndian=1===new Int8Array(new Int32Array([1]).buffer)[0],t.floatToInt32=function(e){return t.f32[0]=e,t.i32[0]},t.int32ToFloat=function(e){return t.i32[0]=e,t.f32[0]},t.swap16=function(t){return(255&t)<<8|t>>8&255},t.swap32=function(t){return(255&t)<<24|(65280&t)<<8|t>>8&65280|t>>24&255},t.toS8U8=i,t.fromS8U8=A,t.clampS8U8=function(t){return A(i(t))},t.toS16=function(t){return t<<16>>16},t.bitCount=function(t){return 16843009*((t=(858993459&(t-=t>>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135)>>24},t.ones=function(t){return 16843009*((t=(858993459&(t-=t>>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135)>>24},t.trailingZeros=function(e){return t.ones((e&-e)-1)},t.getFlags=function(t,e){var i="";for(t=0;t<e.length;t++)t&1<<t&&(i+=e[t]+" ");return 0===i.length?"":i.trim()},t.isPowerOfTwo=function(t){return t&&0==(t&t-1)},t.roundToMultipleOfFour=function(t){return t+3&-4},t.nearestPowerOfTwo=function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t},t.roundToMultipleOfPowerOfTwo=function(t,e){var i=(1<<e)-1;return t+i&~i},t.toHEX=function(t){return"0x"+("00000000"+(t=t<0?4294967295+t+1:t).toString(16)).substr(-8)}}(Yt||(Yt={}));var Jt=function(){},Ht=function(t,e,i,A){void 0===A&&(A=0),this.data=t,this.size=e,this.bytePos=i,this.rawTagId=A},qt=function(){},jt=function(){},Xt=function(t,e){this.symbolId=t,this.className=e},Wt=function(t,e,i){this.tagCode=t,this.byteOffset=e,this.byteLength=i},Zt=function(t){function e(e,i,A,n){var r=t.call(this,i,A,n)||this;return r.id=e,r}return I(e,t),e}(Wt),$t=function(t){function e(e,i,A,n){var r=t.call(this,e,i.tagCode,i.byteOffset,i.byteLength)||this;return r.type=A,r.definition=n,r.ready=!1,r}return I(e,t),e}(Zt);var te,ee={code:2006,message:"The supplied index is out of bounds."},ie={code:2007,message:"Parameter %1 must be non-null."},Ae={code:2030,message:"End of file was encountered.",fqn:"flash.errors.EOFError"},ne={code:2058,message:"There was an error decompressing the data.",fqn:"flash.errors.IOError"},re=e.ConfigManager.instance.addStore("graphics",{ALLOW_INTERNAL_POOL:{FILLS:!1,STROKES:!1},CLEARS_BEFORE_POOLING:10,ALLOW_COMBINER:{FILLS:!0,STROKES:!1},USE_NATIVE_DEFLATE:!0,MINIMUM_DRAWING_DISTANCE:.01,CURVE_TESSELATION_COUNT:6,SMOOTH_BITMAP_FILL_DEFAULT:!1}),oe=function(){function t(e,i){if(this._verHeader=e,this._size=i,this.isDone=!1,this._isRunned=!1,this._blockPosition=0,this.onError=function(t){},e&&(this._size-=8),!t.isSupported)throw"DecompressionStream is not supported!";var A=new self.DecompressionStream("deflate");this._writer=A.writable.getWriter(),this._reader=A.readable.getReader(),this._buffer=new Uint8Array(i),this._processBlocks=this._processBlocks.bind(this)}return Object.defineProperty(t.prototype,"closed",{get:function(){return!this._isRunned&&this.isDone},enumerable:!1,configurable:!0}),Object.defineProperty(t,"isSupported",{get:function(){return"DecompressionStream"in self},enumerable:!1,configurable:!0}),t.prototype._processBlocks=function(t){var e=t.done,i=t.value,A=this._reader;return i&&(i.length>=this._size?(this._buffer=i,this._blockPosition=this._size):(this._buffer.set(i,this._blockPosition),this._blockPosition+=i.length)),e||this._blockPosition>=this._size?(this.isDone=!0,this.onData&&this.onData(this._buffer),this._buffer):A.read().then(this._processBlocks)},t.prototype.push=function(t){8!==t.length?(this._writer.write(t),this._isRunned||(this._isRunned=!0,this._reader.read().then(this._processBlocks).catch(this.onError))):this.onData&&this.onData(t)},t.prototype.close=function(){this._isRunned&&this.isDone&&(this._writer.close(),this._isRunned=!1)},t}();!function(t){t[t.INIT=0]="INIT",t[t.BLOCK_0=1]="BLOCK_0",t[t.BLOCK_1=2]="BLOCK_1",t[t.BLOCK_2_PRE=3]="BLOCK_2_PRE",t[t.BLOCK_2=4]="BLOCK_2",t[t.DONE=5]="DONE",t[t.ERROR=6]="ERROR",t[t.VERIFY_HEADER=7]="VERIFY_HEADER"}(te||(te={}));var se,ae,ge,le,he,Ie,ce,pe,Ce=32768,ue=65536,de=function(){function t(t){}return t.prototype.push=function(t){},t.prototype.close=function(){},t.create=function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=!0),i&&!oe.isSupported&&console.warn("[NativeDeflate] Is not supported!"),i&&oe.isSupported&&re.USE_NATIVE_DEFLATE){if(e)return new oe(t,e);console.debug("[NativeDeflate] size not presented, can`t use a native implementation")}return new _e(t)},t.prototype._processZLibHeader=function(t,e,i){if(e+2>i)return 0;var A=t[e]<<8|t[e+1],n=null;return 2048!=(3840&A)?n="inflate: unknown compression method":A%31!=0?n="inflate: bad FCHECK":0!=(32&A)&&(n="inflate: FDICT bit set"),n?(this.onError&&this.onError(n),-1):2},t.inflate=function(e,i,A){var n=0,r=new Uint8Array(i),o=t.create(A,0,!1);return o.onData=function(t){var e=Math.min(t.length,r.length-n);e&&Rt(r,t,n,0,e),n+=e},o.onError=function(t){throw new Error(t)},o.push(e),o.close(),r},t}(),_e=function(t){function e(e){var i=t.call(this,e)||this;return i._buffer=null,i._bufferSize=0,i._bufferPosition=0,i._bitBuffer=0,i._bitLength=0,i._window=new Uint8Array(65794),i._windowPosition=0,i._state=e?te.VERIFY_HEADER:te.INIT,i._isFinalBlock=!1,i._literalTable=null,i._distanceTable=null,i._block0Read=0,i._block2State=null,i._copyState={state:0,len:0,lenBits:0,dist:0,distBits:0},fe||(!function(){se=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ae=new Uint16Array(30),ge=new Uint8Array(30);for(var t=0,e=0,i=1;t<30;++t)ae[t]=i,i+=1<<(ge[t]=~~((e+=t>2?1:0)/2));var A=new Uint8Array(288);for(t=0;t<32;++t)A[t]=5;le=Ee(A.subarray(0,32)),he=new Uint16Array(29),Ie=new Uint8Array(29);for(t=0,e=0,i=3;t<29;++t)he[t]=i-(28==t?1:0),i+=1<<(Ie[t]=~~((e+=t>4?1:0)/4%6));for(t=0;t<288;++t)A[t]=t<144||t>279?8:t<256?9:7;ce=Ee(A)}(),fe=!0),i}return I(e,t),e.prototype.push=function(t){if(!this._buffer||this._buffer.length<this._bufferSize+t.length){var e=new Uint8Array(this._bufferSize+t.length);this._buffer&&e.set(this._buffer),this._buffer=e}this._buffer.set(t,this._bufferSize),this._bufferSize+=t.length,this._bufferPosition=0;var i=!1;do{var A=this._windowPosition;if(this._state===te.INIT&&(i=this._decodeInitState()))break;switch(this._state){case te.BLOCK_0:i=this._decodeBlock0();break;case te.BLOCK_2_PRE:if(i=this._decodeBlock2Pre())break;case te.BLOCK_1:case te.BLOCK_2:i=this._decodeBlock();break;case te.ERROR:case te.DONE:this._bufferPosition=this._bufferSize;break;case te.VERIFY_HEADER:var n=this._processZLibHeader(this._buffer,this._bufferPosition,this._bufferSize);n>0?(this._bufferPosition+=n,this._state=te.INIT):0===n?i=!0:this._state=te.ERROR}this._windowPosition-A>0&&this.onData(this._window.subarray(A,this._windowPosition)),this._windowPosition>=ue&&("copyWithin"in this._buffer?this._window.copyWithin(0,this._windowPosition-Ce,this._windowPosition):this._window.set(this._window.subarray(this._windowPosition-Ce,this._windowPosition)),this._windowPosition=Ce)}while(!i&&this._bufferPosition<this._bufferSize);this._bufferPosition<this._bufferSize?("copyWithin"in this._buffer?this._buffer.copyWithin(0,this._bufferPosition,this._bufferSize):this._buffer.set(this._buffer.subarray(this._bufferPosition,this._bufferSize)),this._bufferSize-=this._bufferPosition):this._bufferSize=0},e.prototype._decodeInitState=function(){if(this._isFinalBlock)return this._state=te.DONE,!1;var t,e=this._buffer,i=this._bufferSize,A=this._bitBuffer,n=this._bitLength,r=this._bufferPosition;if((i-r<<3)+n<3)return!0;n<3&&(A|=e[r++]<<n,n+=8);var o=7&A;switch(A>>=3,n-=3,o>>1){case 0:if(A=0,n=0,i-r<4)return!0;var s=e[r]|e[r+1]<<8,a=e[r+2]|e[r+3]<<8;if(r+=4,65535!=(s^a)){this._error("inflate: invalid block 0 length"),t=te.ERROR;break}0===s?t=te.INIT:(this._block0Read=s,t=te.BLOCK_0);break;case 1:t=te.BLOCK_1,this._literalTable=ce,this._distanceTable=le;break;case 2:if((i-r<<3)+n<26)return!0;for(;n<14;)A|=e[r++]<<n,n+=8;var g=4+(A>>10&15);if((i-r<<3)+n<14+3*g)return!0;var l={numLiteralCodes:257+(31&A),numDistanceCodes:1+(A>>5&31),codeLengthTable:void 0,bitLengths:void 0,codesRead:0,dupBits:0};A>>=14,n-=14;for(var h=new Uint8Array(19),I=0;I<g;++I)n<3&&(A|=e[r++]<<n,n+=8),h[se[I]]=7&A,A>>=3,n-=3;for(;I<19;I++)h[se[I]]=0;l.bitLengths=new Uint8Array(l.numLiteralCodes+l.numDistanceCodes),l.codeLengthTable=Ee(h),this._block2State=l,t=te.BLOCK_2_PRE;break;default:return this._error("inflate: unsupported block type"),t=te.ERROR,!1}return this._isFinalBlock=!!(1&o),this._state=t,this._bufferPosition=r,this._bitBuffer=A,this._bitLength=n,!1},e.prototype._error=function(t){this.onError&&this.onError(t)},e.prototype._decodeBlock0=function(){var t=this._bufferPosition,e=this._windowPosition,i=this._block0Read,A=65794-e,n=this._bufferSize-t,r=n<i,o=Math.min(A,n,i);return this._window.set(this._buffer.subarray(t,t+o),e),this._windowPosition=e+o,this._bufferPosition=t+o,this._block0Read=i-o,i===o?(this._state=te.INIT,!1):r&&A<n},e.prototype._readBits=function(t){var e=this._bitBuffer,i=this._bitLength;if(t>i){var A=this._bufferPosition,n=this._bufferSize;do{if(A>=n)return this._bufferPosition=A,this._bitBuffer=e,this._bitLength=i,-1;e|=this._buffer[A++]<<i,i+=8}while(t>i);this._bufferPosition=A}return this._bitBuffer=e>>t,this._bitLength=i-t,e&(1<<t)-1},e.prototype._readCode=function(t){var e=this._bitBuffer,i=this._bitLength,A=t.maxBits;if(A>i){var n=this._bufferPosition,r=this._bufferSize;do{if(n>=r)return this._bufferPosition=n,this._bitBuffer=e,this._bitLength=i,-1;e|=this._buffer[n++]<<i,i+=8}while(A>i);this._bufferPosition=n}var o=t.codes[e&(1<<A)-1],s=o>>16;return 32768&o?(this._error("inflate: invalid encoding"),this._state=te.ERROR,-1):(this._bitBuffer=e>>s,this._bitLength=i-s,65535&o)},e.prototype._decodeBlock2Pre=function(){var t=this._block2State,e=t.numLiteralCodes+t.numDistanceCodes,i=t.bitLengths,A=t.codesRead,n=A>0?i[A-1]:0,r=t.codeLengthTable;if(t.dupBits>0){if((s=this._readBits(t.dupBits))<0)return!0;for(;s--;)i[A++]=n;t.dupBits=0}for(;A<e;){var o=this._readCode(r);if(o<0)return t.codesRead=A,!0;if(o<16)i[A++]=n=o;else{var s,a;switch(o){case 16:a=2,s=3,o=n;break;case 17:a=3,s=3,o=0;break;case 18:a=7,s=11,o=0}for(;s--;)i[A++]=o;if((s=this._readBits(a))<0)return t.codesRead=A,t.dupBits=a,!0;for(;s--;)i[A++]=o;n=o}}return this._literalTable=Ee(i.subarray(0,t.numLiteralCodes)),this._distanceTable=Ee(i.subarray(t.numLiteralCodes)),this._state=te.BLOCK_2,this._block2State=null,!1},e.prototype._decodeBlock=function(){var t,e,i,A,n,r,o,s=this._literalTable,a=this._distanceTable,g=this._window,l=this._windowPosition,h=this._copyState;if(0!==h.state)switch(h.state){case 1:if(e=0,(e=this._readBits(h.lenBits))<0)return!0;h.len+=e,h.state=2;case 2:if((i=this._readCode(a))<0)return!0;h.distBits=ge[i],h.dist=ae[i],h.state=3;case 3:if(e=0,h.distBits>0&&(e=this._readBits(h.distBits))<0)return!0;for(r=h.dist+e,A=h.len,t=l-r;A--;)g[l++]=g[t++];if(h.state=0,l>=ue)return this._windowPosition=l,!1}do{if((i=this._readCode(s))<0)return this._windowPosition=l,!0;if(i<256)g[l++]=i;else{if(!(i>256)){this._state=te.INIT;break}if(this._windowPosition=l,n=Ie[i-=257],A=he[i],(e=0===n?0:this._readBits(n))<0)return h.state=1,h.len=A,h.lenBits=n,!0;if(A+=e,(i=this._readCode(a))<0)return h.state=2,h.len=A,!0;if(o=ge[i],r=ae[i],(e=0===o?0:this._readBits(o))<0)return h.state=3,h.len=A,h.dist=r,h.distBits=o,!0;for(t=l-(r+=e);A--;)g[l++]=g[t++]}}while(l<ue);return this._windowPosition=l,!1},e}(de),fe=!1;function Ee(t){for(var e=Math.max.apply(null,t),i=t.length,A=1<<e,n=new Uint32Array(A),r=e<<16|65535,o=0;o<A;o++)n[o]=r;for(var s=0,a=1,g=2;a<=e;s<<=1,++a,g<<=1)for(var l=0;l<i;++l)if(t[l]===a){for(var h=0,I=0;I<a;++I)h=2*h+(s>>I&1);for(I=h;I<A;I+=g)n[I]=a<<16|l;++s}return{codes:n,maxBits:e}}!function(t){t[t.WRITE=0]="WRITE",t[t.DONE=1]="DONE",t[t.ZLIB_HEADER=2]="ZLIB_HEADER"}(pe||(pe={}));var ye=function(){function t(){this.a=1,this.b=0}return t.prototype.update=function(t,e,i){for(var A=this.a,n=this.b,r=e;r<i;++r)n=(n+(A=(A+(255&t[r]))%65521))%65521;this.a=A,this.b=n},t.prototype.getChecksum=function(){return this.b<<16|this.a},t}(),Be=function(){function t(t){this._writeZlibHeader=t,this._state=t?pe.ZLIB_HEADER:pe.WRITE,this._adler32=t?new ye:null}return t.prototype.push=function(t){this._state===pe.ZLIB_HEADER&&(this.onData(new Uint8Array([120,156])),this._state=pe.WRITE);for(var e=t.length,i=e+5*Math.ceil(e/65535),A=new Uint8Array(i),n=0,r=0;e>65535;)A.set(new Uint8Array([0,255,255,0,0]),n),n+=5,A.set(t.subarray(r,r+65535),n),r+=65535,n+=65535,e-=65535;A.set(new Uint8Array([0,255&e,e>>8&255,255&~e,~e>>8&255]),n),n+=5,A.set(t.subarray(r,e),n),this.onData(A),this._adler32&&this._adler32.update(t,0,e)},t.prototype.close=function(){if(this._state=pe.DONE,this.onData(new Uint8Array([1,0,0,255,255])),this._adler32){var t=this._adler32.getChecksum();this.onData(new Uint8Array([255&t,t>>8&255,t>>16&255,t>>>24&255]))}},t}(),me=function(){function t(){this.available=0,this.pos=0,this.buffer=new Uint8Array(2e3)}return t.prototype.append=function(t){var e=this.pos+this.available,i=e+t.length;if(i>this.buffer.length){for(var A=2*this.buffer.length;A<i;)A*=2;var n=new Uint8Array(A);n.set(this.buffer),this.buffer=n}this.buffer.set(t,e),this.available+=t.length},t.prototype.compact=function(){0!==this.available&&(this.buffer.set(this.buffer.subarray(this.pos,this.pos+this.available),0),this.pos=0)},t.prototype.readByte=function(){if(this.available<=0)throw new Error("Unexpected end of file");return this.available--,this.buffer[this.pos++]},t}(),Qe=function(){function t(t){this.onData=t,this.processed=0}return t.prototype.writeBytes=function(t){this.onData.call(null,t),this.processed+=t.length},t}(),De=function(){function t(t){this.outStream=t,this.buf=null,this.pos=0,this.size=0,this.isFull=!1,this.writePos=0,this.totalPos=0}return t.prototype.create=function(t){this.buf=new Uint8Array(t),this.pos=0,this.size=t,this.isFull=!1,this.writePos=0,this.totalPos=0},t.prototype.putByte=function(t){this.totalPos++,this.buf[this.pos++]=t,this.pos===this.size&&(this.flush(),this.pos=0,this.isFull=!0)},t.prototype.getByte=function(t){return this.buf[t<=this.pos?this.pos-t:this.size-t+this.pos]},t.prototype.flush=function(){this.writePos<this.pos&&(this.outStream.writeBytes(this.buf.subarray(this.writePos,this.pos)),this.writePos=this.pos===this.size?0:this.pos)},t.prototype.copyMatch=function(t,e){for(var i=this.pos,A=this.size,n=this.buf,r=t<=i?i-t:A-t+i,o=e;o>0;){for(var s=Math.min(Math.min(o,A-i),A-r),a=0;a<s;a++){var g=n[r++];n[i++]=g}i===A&&(this.pos=i,this.flush(),i=0,this.isFull=!0),r===A&&(r=0),o-=s}this.pos=i,this.totalPos+=e},t.prototype.checkDistance=function(t){return t<=this.pos||this.isFull},t.prototype.isEmpty=function(){return 0===this.pos&&!this.isFull},t}();function ve(t){for(var e=new Uint16Array(t),i=0;i<t;i++)e[i]=1024;return e}var xe=1<<24,Se=function(){function t(t){this.inStream=t,this.range=0,this.code=0,this.corrupted=!1}return t.prototype.init=function(){0!==this.inStream.readByte()&&(this.corrupted=!0),this.range=-1;for(var t=0,e=0;e<4;e++)t=t<<8|this.inStream.readByte();t===this.range&&(this.corrupted=!0),this.code=t},t.prototype.isFinishedOK=function(){return 0===this.code},t.prototype.decodeDirectBits=function(t){var e=0,i=this.range,A=this.code;do{var n=(A=A-(i=i>>>1|0)|0)>>31;(A=A+(i&n)|0)===i&&(this.corrupted=!0),i>=0&&i<xe&&(i<<=8,A=A<<8|this.inStream.readByte()),e=(e<<1)+n+1|0}while(--t);return this.range=i,this.code=A,e},t.prototype.decodeBit=function(t,e){var i,A=this.range,n=this.code,r=t[e],o=(A>>>11)*r;return n>>>0<o?(r=r+(2048-r>>5)|0,A=0|o,i=0):(r=r-(r>>5)|0,n=n-o|0,A=A-o|0,i=1),t[e]=65535&r,A>=0&&A<xe&&(A<<=8,n=n<<8|this.inStream.readByte()),this.range=A,this.code=n,i},t}();function we(t,e,i,A){for(var n=1,r=0,o=0;o<i;o++){var s=A.decodeBit(t,n+e);n=(n<<1)+s,r|=s<<o}return r}var be=function(){function t(t){this.numBits=t,this.probs=ve(1<<t)}return t.prototype.decode=function(t){for(var e=1,i=0;i<this.numBits;i++)e=(e<<1)+t.decodeBit(this.probs,e);return e-(1<<this.numBits)},t.prototype.reverseDecode=function(t){return we(this.probs,0,this.numBits,t)},t}();function Ne(t,e){var i=[];i.length=e;for(var A=0;A<e;A++)i[A]=new be(t);return i}var Re=12,Fe=function(){function t(){this.choice=ve(2),this.lowCoder=Ne(3,16),this.midCoder=Ne(3,16),this.highCoder=new be(8)}return t.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)},t}();function Te(t){return t<4?0:t<10?t-3:t-6}function Oe(t){return t<7?7:10}function Me(t){return t<7?8:11}function Pe(t){return t<7?9:11}var Le,Ue=function(){function t(t,e){this.rangeDec=new Se(t),this.outWindow=new De(e),this.markerIsMandatory=!1,this.lc=0,this.pb=0,this.lp=0,this.dictSize=0,this.dictSizeInProperties=0,this.unpackSize=void 0,this.leftToUnpack=void 0,this.reps=new Int32Array(4),this.state=0}return t.prototype.decodeProperties=function(t){var e=t[0];if(e>=225)throw new Error("Incorrect LZMA properties");this.lc=e%9,e=e/9|0,this.pb=e/5|0,this.lp=e%5,this.dictSizeInProperties=0;for(var i=0;i<4;i++)this.dictSizeInProperties|=t[i+1]<<8*i;this.dictSize=this.dictSizeInProperties,this.dictSize<4096&&(this.dictSize=4096)},t.prototype.create=function(){this.outWindow.create(this.dictSize),this.init(),this.rangeDec.init(),this.reps[0]=0,this.reps[1]=0,this.reps[2]=0,this.reps[3]=0,this.state=0,this.leftToUnpack=this.unpackSize},t.prototype.decodeLiteral=function(t,e){var i=this.outWindow,A=this.rangeDec,n=0;i.isEmpty()||(n=i.getByte(1));var r=1,o=768*(((i.totalPos&(1<<this.lp)-1)<<this.lc)+(n>>8-this.lc));if(t>=7){var s=i.getByte(e+1);do{var a=s>>7&1;s<<=1;var g=A.decodeBit(this.litProbs,o+((1+a<<8)+r));if(r=r<<1|g,a!==g)break}while(r<256)}for(;r<256;)r=r<<1|A.decodeBit(this.litProbs,o+r);return r-256&255},t.prototype.decodeDistance=function(t){var e=t;e>3&&(e=3);var i=this.rangeDec,A=this.posSlotDecoder[e].decode(i);if(A<4)return A;var n=(A>>1)-1,r=(2|1&A)<<n;return r=A<14?r+we(this.posDecoders,r-A,n,i)|0:(r=r+(i.decodeDirectBits(n-4)<<4)|0)+this.alignDecoder.reverseDecode(i)|0},t.prototype.init=function(){this.litProbs=ve(768<<this.lc+this.lp),this.posSlotDecoder=Ne(6,4),this.alignDecoder=new be(4),this.posDecoders=ve(115),this.isMatch=ve(192),this.isRep=ve(Re),this.isRepG0=ve(Re),this.isRepG1=ve(Re),this.isRepG2=ve(Re),this.isRep0Long=ve(192),this.lenDecoder=new Fe,this.repLenDecoder=new Fe},t.prototype.decode=function(t){for(var e=this.rangeDec,i=this.outWindow,A=this.pb,n=this.dictSize,r=this.markerIsMandatory,o=this.leftToUnpack,s=this.isMatch,a=this.isRep,g=this.isRepG0,l=this.isRepG1,h=this.isRepG2,I=this.isRep0Long,c=this.lenDecoder,p=this.repLenDecoder,C=this.reps[0],u=this.reps[1],d=this.reps[2],_=this.reps[3],f=this.state;;){if(t&&e.inStream.available<48){this.outWindow.flush();break}if(0===o&&!r&&(this.outWindow.flush(),e.isFinishedOK()))return Ge;var E=i.totalPos&(1<<A)-1;if(0!==e.decodeBit(s,(f<<4)+E)){var y;if(0!==e.decodeBit(a,f)){if(0===o)return ke;if(i.isEmpty())return ke;var B;if(0===e.decodeBit(g,f)){if(0===e.decodeBit(I,(f<<4)+E)){f=Pe(f),i.putByte(i.getByte(C+1)),o--;continue}}else 0===e.decodeBit(l,f)?B=u:(0===e.decodeBit(h,f)?B=d:(B=_,_=d),d=u),u=C,C=B;y=p.decode(e,E),f=Me(f)}else{if(_=d,d=u,u=C,y=c.decode(e,E),f=Oe(f),-1===(C=this.decodeDistance(y)))return this.outWindow.flush(),e.isFinishedOK()?Ve:ke;if(0===o)return ke;if(C>=n||!i.checkDistance(C))return ke}y+=2;var m=!1;if(void 0!==o&&o<y&&(y=o,m=!0),i.copyMatch(C+1,y),o-=y,m)return ke}else{if(0===o)return ke;i.putByte(this.decodeLiteral(f,C)),f=Te(f),o--}}return this.state=f,this.reps[0]=C,this.reps[1]=u,this.reps[2]=d,this.reps[3]=_,this.leftToUnpack=o,Ye},t.prototype.flushOutput=function(){this.outWindow.flush()},t}(),ke=0,Ve=1,Ge=2,Ye=3;!function(t){t[t.WAIT_FOR_LZMA_HEADER=0]="WAIT_FOR_LZMA_HEADER",t[t.WAIT_FOR_SWF_HEADER=1]="WAIT_FOR_SWF_HEADER",t[t.PROCESS_DATA=2]="PROCESS_DATA",t[t.CLOSED=3]="CLOSED",t[t.ERROR=4]="ERROR"}(Le||(Le={}));var Ke=function(){function t(t){void 0===t&&(t=!1),this._state=t?Le.WAIT_FOR_SWF_HEADER:Le.WAIT_FOR_LZMA_HEADER,this.buffer=null}return t.prototype.push=function(t){if(this._state<Le.PROCESS_DATA){var e=this.buffer?this.buffer.length:0,i=5+(this._state===Le.WAIT_FOR_SWF_HEADER?17:13);if(e+t.length<i){var A=new Uint8Array(e+t.length);return e>0&&A.set(this.buffer),A.set(t,e),void(this.buffer=A)}var n=new Uint8Array(i);if(e>0&&n.set(this.buffer),n.set(t.subarray(0,i-e),e),this._inStream=new me,this._inStream.append(n.subarray(i-5)),this._outStream=new Qe(function(t){this.onData.call(null,t)}.bind(this)),this._decoder=new Ue(this._inStream,this._outStream),this._state===Le.WAIT_FOR_SWF_HEADER)this._decoder.decodeProperties(n.subarray(12,17)),this._decoder.markerIsMandatory=!1,this._decoder.unpackSize=((n[4]|n[5]<<8|n[6]<<16|n[7]<<24)>>>0)-8;else{this._decoder.decodeProperties(n.subarray(0,5));for(var r=0,o=!1,s=0;s<8;s++){var a=n[5+s];255!==a&&(o=!0),r|=a<<8*s}this._decoder.markerIsMandatory=!o,this._decoder.unpackSize=o?r:void 0}this._decoder.create(),t=t.subarray(i),this._state=Le.PROCESS_DATA}else if(this._state!==Le.PROCESS_DATA)return;try{this._inStream.append(t);var g=this._decoder.decode(!0);this._inStream.compact(),g!==Ye&&this._checkError(g)}catch(t){this._decoder.flushOutput(),this._decoder=null,this._error(t)}},t.prototype.close=function(){if(this._state===Le.PROCESS_DATA){this._state=Le.CLOSED;try{var t=this._decoder.decode(!1);this._checkError(t)}catch(t){this._decoder.flushOutput(),this._error(t)}this._decoder=null}},t.prototype._error=function(t){this._state=Le.ERROR,this.onError&&this.onError(t)},t.prototype._checkError=function(t){var e;t===ke?e="LZMA decoding error":t===Ye?e="Decoding is not complete":t===Ve?void 0!==this._decoder.unpackSize&&this._decoder.unpackSize!==this._outStream.processed&&(e="Finished with end marker before than specified size"):e="Internal LZMA Error",e&&this._error(e)},t}();function ze(t){return"string"==typeof t?t:null==t?null:t+""}for(var Je,He=function(t,e,i){this.buffer=t,this.length=e,this.littleEndian=i},qe=new Uint32Array(33),je=1,Xe=0;je<=32;je++)qe[je]=Xe=Xe<<1|1;!function(t){t[t.U8=1]="U8",t[t.I32=2]="I32",t[t.F32=4]="F32"}(Je||(Je={}));var We,Ze=function(){function t(e){void 0===e&&(e=t.INITIAL_SIZE),this._buffer||(this._buffer=new ArrayBuffer(e),this._length=0,this._position=0,this._resetViews(),this._littleEndian=t._nativeLittleEndian,this._bitBuffer=0,this._bitLength=0)}return t.FromArrayBuffer=function(e,i){void 0===i&&(i=-1);var A=Object.create(t.prototype);return A._buffer=e,A._length=-1===i?e.byteLength:i,A._position=0,A._resetViews(),A._littleEndian=t._nativeLittleEndian,A._bitBuffer=0,A._bitLength=0,A},t.FromPlainObject=function(e){var i=t.FromArrayBuffer(e.buffer,e.length);return i._littleEndian=e.littleEndian,i},t.prototype.toPlainObject=function(){return new He(this._buffer,this._length,this._littleEndian)},t.prototype.clone=function(){var e=t.FromArrayBuffer(new Uint8Array(this._u8).buffer,this._length);return e._position=this._position,e._littleEndian=this._littleEndian,e._bitBuffer=this._bitBuffer,e._bitLength=this._bitLength,e},t.prototype._resetViews=function(){this._u8=new Uint8Array(this._buffer),this._i32=null,this._f32=null},t.prototype._requestViews=function(t){0==(3&this._buffer.byteLength)&&(null===this._i32&&t&Je.I32&&(this._i32=new Int32Array(this._buffer)),null===this._f32&&t&Je.F32&&(this._f32=new Float32Array(this._buffer)))},t.prototype.getBytes=function(){return new Uint8Array(this._buffer,0,this._length)},t.prototype._ensureCapacity=function(e){var i=this._buffer;if(!(i.byteLength>=e)){for(var A=Math.max(i.byteLength,1);A<e;)A*=2;A>4294967295&&(Nt(this.sec),this.sec.throwError("RangeError",ee));var n=t._arrayBufferPool.acquire(A),r=this._u8;this._buffer=n,this._resetViews(),this._u8.set(r);for(var o=this._u8,s=r.length;s<o.length;s++)o[s]=0;t._arrayBufferPool.release(i)}},t.prototype.clear=function(){this._length=0,this._position=0},t.prototype.readBoolean=function(){return 0!==this.readUnsignedByte()},t.prototype.readByte=function(){return this.readUnsignedByte()<<24>>24},t.prototype.readUnsignedByte=function(){return this._position+1>this._length&&(Nt(this.sec),this.sec.throwError("flash.errors.EOFError",Ae)),this._u8[this._position++]},t.prototype.readBytes=function(t,e,i){var A=this._position;e>>>=0,0===(i>>>=0)&&(i=this._length-A),A+i>this._length&&(Nt(this.sec),this.sec.throwError("flash.errors.EOFError",Ae)),t.length<e+i&&(t._ensureCapacity(e+i),t.length=e+i),t._u8.set(new Uint8Array(this._buffer,A,i),e),this._position+=i},t.prototype.readShort=function(){return this.readUnsignedShort()<<16>>16},t.prototype.readUnsignedShort=function(){var t=this._u8,e=this._position;e+2>this._length&&(Nt(this.sec),this.sec.throwError("flash.errors.EOFError",Ae));var i=t[e+0],A=t[e+1];return this._position=e+2,this._littleEndian?A<<8|i:i<<8|A},t.prototype.readInt=function(){var t=this._u8,e=this._position;e+4>this._length&&(Nt(this.sec),this.sec.throwError("flash.errors.EOFError",Ae));var i=t[e+0],A=t[e+1],n=t[e+2],r=t[e+3];return this._position=e+4,this._littleEndian?r<<24|n<<16|A<<8|i:i<<24|A<<16|n<<8|r},t.prototype.readUnsignedInt=function(){return this.readInt()>>>0},t.prototype.readFloat=function(){var t=this._position;if(t+4>this._length&&(Nt(this.sec),this.sec.throwError("flash.errors.EOFError",Ae)),this._position=t+4,this._requestViews(Je.F32),this._littleEndian&&0==(3&t)&&this._f32)return this._f32[t>>2];var e=this._u8,i=Yt.u8;return this._littleEndian?(i[0]=e[t+0],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3]):(i[3]=e[t+0],i[2]=e[t+1],i[1]=e[t+2],i[0]=e[t+3]),Yt.f32[0]},t.prototype.readDouble=function(){var t=this._u8,e=this._position;e+8>this._length&&(Nt(this.sec),this.sec.throwError("flash.errors.EOFError",Ae));var i=Yt.u8;return this._littleEndian?(i[0]=t[e+0],i[1]=t[e+1],i[2]=t[e+2],i[3]=t[e+3],i[4]=t[e+4],i[5]=t[e+5],i[6]=t[e+6],i[7]=t[e+7]):(i[0]=t[e+7],i[1]=t[e+6],i[2]=t[e+5],i[3]=t[e+4],i[4]=t[e+3],i[5]=t[e+2],i[6]=t[e+1],i[7]=t[e+0]),this._position=e+8,Yt.f64[0]},t.prototype.writeBoolean=function(t){this.writeByte(t?1:0)},t.prototype.writeByte=function(t){var e=this._position+1;this._ensureCapacity(e),this._u8[this._position++]=t,e>this._length&&(this._length=e)},t.prototype.writeUnsignedByte=function(t){var e=this._position+1;this._ensureCapacity(e),this._u8[this._position++]=t,e>this._length&&(this._length=e)},t.prototype.writeRawBytes=function(t){var e=this._position+t.length;this._ensureCapacity(e),this._u8.set(t,this._position),this._position=e,e>this._length&&(this._length=e)},t.prototype.writeBytes=function(t,e,i){Mt(t)&&(Nt(this.sec),this.sec.throwError("TypeError",ie,"bytes")),e>>>=0,i>>>=0,arguments.length<2&&(e=0),arguments.length<3&&(i=0),e===Ot(e,0,t.length)&&e+i===Ot(e+i,0,t.length)||(Nt(this.sec),this.sec.throwError("RangeError",ee)),0===i&&(i=t.length-e),this.writeRawBytes(new Uint8Array(t._buffer,e,i))},t.prototype.writeShort=function(t){this.writeUnsignedShort(t)},t.prototype.writeUnsignedShort=function(t){var e=this._position;this._ensureCapacity(e+2);var i=this._u8;this._littleEndian?(i[e+0]=t,i[e+1]=t>>8):(i[e+0]=t>>8,i[e+1]=t),e+=2,this._position=e,e>this._length&&(this._length=e)},t.prototype.writeInt=function(t){this.writeUnsignedInt(t)},t.prototype.write2Ints=function(t,e){this.write2UnsignedInts(t,e)},t.prototype.write4Ints=function(t,e,i,A){this.write4UnsignedInts(t,e,i,A)},t.prototype.writeUnsignedInt=function(e){var i=this._position;if(this._ensureCapacity(i+4),this._requestViews(Je.I32),this._littleEndian===t._nativeLittleEndian&&0==(3&i)&&this._i32)this._i32[i>>2]=e;else{var A=this._u8;this._littleEndian?(A[i+0]=e,A[i+1]=e>>8,A[i+2]=e>>16,A[i+3]=e>>24):(A[i+0]=e>>24,A[i+1]=e>>16,A[i+2]=e>>8,A[i+3]=e)}i+=4,this._position=i,i>this._length&&(this._length=i)},t.prototype.write2UnsignedInts=function(e,i){var A=this._position;this._ensureCapacity(A+8),this._requestViews(Je.I32),this._littleEndian===t._nativeLittleEndian&&0==(3&A)&&this._i32?(this._i32[0+(A>>2)]=e,this._i32[1+(A>>2)]=i,A+=8,this._position=A,A>this._length&&(this._length=A)):(this.writeUnsignedInt(e),this.writeUnsignedInt(i))},t.prototype.write4UnsignedInts=function(e,i,A,n){var r=this._position;this._ensureCapacity(r+16),this._requestViews(Je.I32),this._littleEndian===t._nativeLittleEndian&&0==(3&r)&&this._i32?(this._i32[0+(r>>2)]=e,this._i32[1+(r>>2)]=i,this._i32[2+(r>>2)]=A,this._i32[3+(r>>2)]=n,r+=16,this._position=r,r>this._length&&(this._length=r)):(this.writeUnsignedInt(e),this.writeUnsignedInt(i),this.writeUnsignedInt(A),this.writeUnsignedInt(n))},t.prototype.writeFloat=function(e){var i=this._position;if(this._ensureCapacity(i+4),this._requestViews(Je.F32),this._littleEndian===t._nativeLittleEndian&&0==(3&i)&&this._f32)this._f32[i>>2]=e;else{var A=this._u8;Yt.f32[0]=e;var n=Yt.u8;this._littleEndian?(A[i+0]=n[0],A[i+1]=n[1],A[i+2]=n[2],A[i+3]=n[3]):(A[i+0]=n[3],A[i+1]=n[2],A[i+2]=n[1],A[i+3]=n[0])}i+=4,this._position=i,i>this._length&&(this._length=i)},t.prototype.write2Floats=function(e,i){var A=this._position;this._ensureCapacity(A+8),this._requestViews(Je.F32),this._littleEndian===t._nativeLittleEndian&&0==(3&A)&&this._f32?(this._f32[0+(A>>2)]=e,this._f32[1+(A>>2)]=i,A+=8,this._position=A,A>this._length&&(this._length=A)):(this.writeFloat(e),this.writeFloat(i))},t.prototype.write6Floats=function(e,i,A,n,r,o){var s=this._position;this._ensureCapacity(s+24),this._requestViews(Je.F32),this._littleEndian===t._nativeLittleEndian&&0==(3&s)&&this._f32?(this._f32[0+(s>>2)]=e,this._f32[1+(s>>2)]=i,this._f32[2+(s>>2)]=A,this._f32[3+(s>>2)]=n,this._f32[4+(s>>2)]=r,this._f32[5+(s>>2)]=o,s+=24,this._position=s,s>this._length&&(this._length=s)):(this.writeFloat(e),this.writeFloat(i),this.writeFloat(A),this.writeFloat(n),this.writeFloat(r),this.writeFloat(o))},t.prototype.writeDouble=function(t){var e=this._position;this._ensureCapacity(e+8);var i=this._u8;Yt.f64[0]=t;var A=Yt.u8;this._littleEndian?(i[e+0]=A[0],i[e+1]=A[1],i[e+2]=A[2],i[e+3]=A[3],i[e+4]=A[4],i[e+5]=A[5],i[e+6]=A[6],i[e+7]=A[7]):(i[e+0]=A[7],i[e+1]=A[6],i[e+2]=A[5],i[e+3]=A[4],i[e+4]=A[3],i[e+5]=A[2],i[e+6]=A[1],i[e+7]=A[0]),e+=8,this._position=e,e>this._length&&(this._length=e)},t.prototype.readRawBytes=function(){return new Int8Array(this._buffer,0,this._length)},t.prototype.writeUTF=function(t){var e=Vt(t=ze(t));this.writeShort(e.length),this.writeRawBytes(e)},t.prototype.writeUTFBytes=function(t){var e=Vt(t=ze(t));this.writeRawBytes(e)},t.prototype.readUTF=function(){return this.readUTFBytes(this.readShort())},t.prototype.readUTFBytes=function(t){t>>>=0;var e=this._position;return e+t>this._length&&(Nt(this.sec),this.sec.throwError("flash.errors.EOFError",Ae)),this._position+=t,Gt(new Uint8Array(this._buffer,e,t))},Object.defineProperty(t.prototype,"length",{get:function(){return this._length},set:function(t){(t>>>=0)>this._buffer.byteLength&&this._ensureCapacity(t),this._length=t,this._position=Ot(this._position,0,this._length)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bytesAvailable",{get:function(){return this._length-this._position},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"position",{get:function(){return this._position},set:function(t){this._position=t>>>0},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"buffer",{get:function(){return this._buffer},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"bytes",{get:function(){return this._u8},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"ints",{get:function(){return this._requestViews(Je.I32),this._i32},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"objectEncoding",{get:function(){return this._objectEncoding},set:function(t){t>>>=0,this._objectEncoding=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"endian",{get:function(){return this._littleEndian?"littleEndian":"bigEndian"},set:function(e){e=ze(e),this._littleEndian="auto"===e?t._nativeLittleEndian:"littleEndian"===e},enumerable:!1,configurable:!0}),t.prototype.toString=function(){return Gt(new Uint8Array(this._buffer,0,this._length))},t.prototype.toBlob=function(t){return new Blob([new Uint8Array(this._buffer,this._position,this._length)],{type:t})},t.prototype.writeMultiByte=function(t,e){if(t=ze(t),"UTF-8"==(e=ze(e))){var i=Vt(t);this.writeRawBytes(i)}else console.log("packageInternal flash.utils.ObjectOutput::writeMultiByte only encoding supported is UTF-8")},t.prototype.readMultiByte=function(t,e){console.log("packageInternal flash.utils.ObjectInput::readMultiByte")},t.prototype.getValue=function(t){if(!((t|=0)>=this._length))return this._u8[t]},t.prototype.setValue=function(t,e){var i=(t|=0)+1;this._ensureCapacity(i),this._u8[t]=e,i>this._length&&(this._length=i)},t.prototype.readFixed=function(){return this.readInt()/65536},t.prototype.readFixed8=function(){return this.readShort()/256},t.prototype.readFloat16=function(){var t=this.readUnsignedShort(),e=t>>15?-1:1,i=(31744&t)>>10,A=1023&t;return i?31===i?A?NaN:e*(1/0):e*Math.pow(2,i-15)*(1+A/1024):e*Math.pow(2,-14)*(A/1024)},t.prototype.readEncodedU32=function(){var t=this.readUnsignedByte();return 128&t&&16384&(t=127&t|this.readUnsignedByte()<<7)&&2097152&(t=16383&t|this.readUnsignedByte()<<14)&&268435456&(t=2097151&t|this.readUnsignedByte()<<21)?268435455&t|this.readUnsignedByte()<<28:t},t.prototype.readBits=function(t){return this.readUnsignedBits(t)<<32-t>>32-t},t.prototype.readUnsignedBits=function(t){for(var e=this._bitBuffer,i=this._bitLength;t>i;)e=e<<8|this.readUnsignedByte(),i+=8;var A=e>>>(i-=t)&qe[t];return this._bitBuffer=e,this._bitLength=i,A},t.prototype.readFixedBits=function(t){return this.readBits(t)/65536},t.prototype.readString=function(t){var e=this._position;if(t)e+t>this._length&&(Nt(this.sec),this.sec.throwError("flash.errors.EOFError",Ae)),this._position+=t;else{t=0;for(var i=e;i<this._length&&this._u8[i];i++)t++;this._position+=t+1}return Gt(new Uint8Array(this._buffer,e,t))},t.prototype.align=function(){this._bitBuffer=0,this._bitLength=0},t.prototype.deflate=function(){this.compress("deflate")},t.prototype.inflate=function(){this.uncompress("deflate")},t.prototype.compress=function(e){var i;switch(e=0===arguments.length?"zlib":ze(e)){case"zlib":i=new Be(!0);break;case"deflate":i=new Be(!1);break;default:return}var A=new t;i.onData=A.writeRawBytes.bind(A),i.push(this._u8.subarray(0,this._length)),i.close(),this._ensureCapacity(A._u8.length),this._u8.set(A._u8),this.length=A.length,this._position=0},t.prototype.uncompress=function(e){var i;switch(e=0===arguments.length?"zlib":ze(e)){case"zlib":i=de.create(!0);break;case"deflate":i=de.create(!1);break;case"lzma":i=new Ke(!1);break;default:return}var A,n=new t;i.onData=n.writeRawBytes.bind(n),i.onError=function(t){return A=t},i.push(this._u8.subarray(0,this._length)),A&&(Nt(this.sec),this.sec.throwError("IOError",ne)),i.close(),this._ensureCapacity(n._u8.length),this._u8.set(n._u8),this.length=n.length,this._position=0},t._nativeLittleEndian=1===new Int8Array(new Int32Array([1]).buffer)[0],t.INITIAL_SIZE=128,t._arrayBufferPool=new Kt,t}();t.FillType=void 0,(We=t.FillType||(t.FillType={}))[We.Solid=0]="Solid",We[We.LinearGradient=16]="LinearGradient",We[We.RadialGradient=18]="RadialGradient",We[We.FocalRadialGradient=19]="FocalRadialGradient",We[We.RepeatingBitmap=64]="RepeatingBitmap",We[We.ClippedBitmap=65]="ClippedBitmap",We[We.NonsmoothedRepeatingBitmap=66]="NonsmoothedRepeatingBitmap",We[We.NonsmoothedClippedBitmap=67]="NonsmoothedClippedBitmap";var $e,ti=function(){function t(e,i,A,n,r,o){this.commands=e,this.data=i,this.morphData=A,this.prev=n,this.next=r,this.isReversed=o,this.isValidFill=!0,this.id=t._counter++}return t.FromDefaults=function(e){var i=new Ze,A=new Ze;i.endian=A.endian="auto";var n=null;return e&&((n=new Ze).endian="auto"),new t(i,A,n,null,null,!1)},t.prototype.moveTo=function(t,e){this.commands.writeUnsignedByte(9),this.data.write2Ints(t,e)},t.prototype.morphMoveTo=function(t,e,i,A){this.moveTo(t,e),this.morphData.write2Ints(i,A)},t.prototype.lineTo=function(t,e){this.commands.writeUnsignedByte(10),this.data.write2Ints(t,e)},t.prototype.morphLineTo=function(t,e,i,A){this.lineTo(t,e),this.morphData.write2Ints(i,A)},t.prototype.curveTo=function(t,e,i,A){this.commands.writeUnsignedByte(11),this.data.write4Ints(t,e,i,A)},t.prototype.morphCurveTo=function(t,e,i,A,n,r,o,s){this.curveTo(t,e,i,A),this.morphData.write4Ints(n,r,o,s)},t.prototype.toReversed=function(){return Nt(!this.isReversed),new t(this.commands,this.data,this.morphData,null,null,!0)},t.prototype.clone=function(){return new t(this.commands,this.data,this.morphData,null,null,this.isReversed)},t.prototype.storeStartAndEnd=function(){var t=this.data.ints,e=t[0]+","+t[1],i=(this.data.length>>2)-2,A=t[i]+","+t[i+1];this.isReversed?(this.startPoint=A,this.endPoint=e):(this.startPoint=e,this.endPoint=A)},t.prototype.connectsTo=function(t){return t!==this&&(Nt(this.endPoint),Nt(t.startPoint),this.endPoint===t.startPoint)},t.prototype.startConnectsTo=function(t){return t!==this&&this.startPoint===t.startPoint},t.prototype.flipDirection=function(){var t;t=this.startPoint,this.startPoint=this.endPoint,this.endPoint=t,this.isReversed=!this.isReversed},t.prototype.serializeAJS=function(t,e,i){if(e&&(e.morphSource=t.morphSource=!0),this.isReversed)this._serializeReversedAJS(t,e,i);else{var A=this.commands.bytes,n=this.data.length>>2,r=this.morphData?this.morphData.ints:null,o=this.data.ints,s=0;o[0]!==i.x||o[1]!==i.y||e||s++;for(var a=this.commands.length,g=2*s,l=s;l<a;l++){switch(A[l]){case 9:t.moveTo(o[g]/20,o[g+1]/20),e&&e.moveTo(r[g]/20,r[g+1]/20);break;case 10:t.lineTo(o[g]/20,o[g+1]/20),e&&e.lineTo(r[g]/20,r[g+1]/20);break;case 11:t.curveTo(o[g]/20,o[g+1]/20,o[g+2]/20,o[g+3]/20),e&&e.curveTo(r[g]/20,r[g+1]/20,r[g+2]/20,r[g+3]/20),g+=2}g+=2}i.x=o[n-2],i.y=o[n-1]}},t.prototype._serializeReversedAJS=function(t,e,i){var A=this.commands.length,n=(this.data.length>>2)-2,r=this.commands.bytes;Nt(9===r[0]);var o=this.data.ints,s=this.morphData?this.morphData.ints:null;if(o[n]===i.x&&o[n+1]===i.y||(t.moveTo(o[n]/20,o[n+1]/20),e&&e.moveTo(s[n]/20,s[n+1]/20)),1===A)return i.x=o[0],void(i.y=o[1]);for(var a=A;a-- >1;)switch(n-=2,r[a]){case 9:t.moveTo(o[n]/20,o[n+1]/20),e&&e.moveTo(s[n]/20,s[n+1]/20);break;case 10:t.lineTo(o[n]/20,o[n+1]/20),e&&e.lineTo(s[n]/20,s[n+1]/20);break;case 11:n-=2,t.curveTo(o[n+2]/20,o[n+3]/20,o[n]/20,o[n+1]/20),e&&e.curveTo(s[n+2]/20,s[n+3]/20,s[n]/20,s[n+1]/20)}i.x=o[0],i.y=o[1]},t._counter=0,t}();t.GradientType=void 0,($e=t.GradientType||(t.GradientType={})).LINEAR="linear",$e.RADIAL="radial";var ei,ii=function(){function t(t){this.fillStyle=t}return Object.defineProperty(t.prototype,"data_type",{get:function(){return t.data_type},enumerable:!1,configurable:!0}),t.data_type="[graphicsdata FillStyle]",t}(),Ai=function(){function i(t,i,A,n,r,o,s,a){if(i.length!=A.length||i.length!=n.length)throw"GradientFillStyle: Error - colors, alphas and ratios must be of same length";this.colors=i.concat(),this.colors_r=[],this.colors_g=[],this.colors_b=[],this.colors_r.length=this.colors_g.length=this.colors_g.length=this.colors.length,this.alphas=A.concat(),this.ratios=n.concat(),this.matrix=r.clone(),this.type=t,this.uvRectangle=new e.Rectangle,this.ratios.sort((function(t,e){return t-e})),this.ratio_min=this.ratios[0],this.ratio_max=this.ratios[this.ratios.length-1];for(var g,l=i.length;l>0;)l--,g=e.ColorUtils.float32ColorToARGB(i[l]),this.colors_r[l]=g[1],this.colors_g[l]=g[2],this.colors_b[l]=g[3]}return i.prototype.getUVMatrix=function(){if(this._uvMatrix)return this._uvMatrix;this.matrix||(this.matrix=new e.Matrix);var i,A=1638.4,n=819.2,r=this.matrix.a,o=this.matrix.b,s=this.matrix.c,a=this.matrix.d,g=this.matrix.tx,l=this.matrix.ty,h=a/(r*a-o*s),I=-o/(r*a-o*s),c=-s/(r*a-o*s),p=r/(r*a-o*s),C=(s*l-a*g)/(r*a-o*s),u=-(r*l-o*g)/(r*a-o*s);return this.type==t.GradientType.LINEAR?i=new e.Matrix(h/A*(1-1/256),0,c/A*(1-1/256),0,this.uvRectangle.x+(C+n)/A*(1-1/256),this.uvRectangle.y):this.type==t.GradientType.RADIAL?i=new e.Matrix(h/n,I/n,c/n,p/n,(C+n)/n-1,(u+n)/n-1):this._uvMatrix=this.matrix,this._uvMatrix=i},i.prototype.getColorAtPosition=function(t){var e=-1,i=-1;if(t<=this.ratio_min)e=0,i=0;else if(t>=this.ratio_max)e=this.ratios.length-1,i=this.ratios.length-1;else for(var A=0;A<this.ratios.length-1;A++){if(t==this.ratios[A]){e=A,i=A;break}if(t==this.ratios[A+1]){e=A+1,i=A+1;break}if(t>=this.ratios[A]&&t<=this.ratios[A+1]){e=A,i=A+1;break}}if(e==i)return[this.alphas[e],this.colors_r[e],this.colors_g[e],this.colors_b[e]];var n=(t-this.ratios[e])/(this.ratios[i]-this.ratios[e]),r=1-n;return[this.alphas[i]*n+this.alphas[e]*r,this.colors_r[i]*n+this.colors_r[e]*r,this.colors_g[i]*n+this.colors_g[e]*r,this.colors_b[i]*n+this.colors_b[e]*r]},i.prototype.toString=function(){for(var t="",e=this.colors.length;e>0;)e--,t+=this.colors[e]+"#"+this.alphas[e]+"#"+this.ratios[e]+"#";return t},Object.defineProperty(i.prototype,"data_type",{get:function(){return i.data_type},enumerable:!1,configurable:!0}),i.data_type="[graphicsdata GradientFillStyle]",i}(),ni=function(){function t(t,e,i,A){this.image=t,this.matrix=e,this.repeat=i,this.smooth=A}return Object.defineProperty(t.prototype,"data_type",{get:function(){return t.data_type},enumerable:!1,configurable:!0}),t.prototype.getUVMatrix=function(){var t,i;this.matrix||(this.matrix=new e.Matrix),this._uvMatrix||(this._uvMatrix=new e.Matrix),this.image?(t=this.image.width,i=this.image.height):(console.warn("[BitmapFillStyle] - getUVMatrix - no texture found"),t=512,i=512);var A=this.matrix.a,n=this.matrix.b,r=this.matrix.c,o=this.matrix.d,s=this.matrix.tx,a=this.matrix.ty,g=o/(A*o-n*r),l=-n/(A*o-n*r),h=-r/(A*o-n*r),I=A/(A*o-n*r),c=(r*a-o*s)/(A*o-n*r),p=-(A*a-n*s)/(A*o-n*r);return this._uvMatrix.a=g/t,this._uvMatrix.b=l/i,this._uvMatrix.c=h/t,this._uvMatrix.d=I/i,this._uvMatrix.tx=c/t,this._uvMatrix.ty=p/i,this._uvMatrix},t.data_type="[graphicsdata BitmapFillStyle]",t}(),ri=function(){function t(t,e){void 0===t&&(t=16777215),void 0===e&&(e=1),this.color=t,this.alpha=e}return t.prototype.getUVMatrix=function(){return this.uvMatrix},Object.defineProperty(t.prototype,"data_type",{get:function(){return t.data_type},enumerable:!1,configurable:!0}),t.prototype.toString=function(){return(0|this.color).toString(16)+"#"+(255*this.alpha|0).toString(16)},t.data_type="[graphicsdata SolidFillStyle]",t}(),oi=function(){function t(){}return t.ROUND=1,t.NONE=0,t.SQUARE=2,t}(),si=function(){function t(){}return t.BEVEL=1,t.MITER=2,t.ROUND=0,t}(),ai=function(){function t(t,e,A,n,r,o){void 0===e&&(e=10),void 0===A&&(A=si.ROUND),void 0===n&&(n=oi.SQUARE),void 0===r&&(r=10),void 0===o&&(o=i.LineScaleMode.NORMAL),this.fillStyle=t,this.thickness=e,this.jointstyle=A,this.capstyle=n,this.miterLimit=r,this.scaleMode=o}return Object.defineProperty(t.prototype,"half_thickness",{get:function(){return this.thickness/2},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"data_type",{get:function(){return t.data_type},enumerable:!1,configurable:!0}),t.prototype.clone=function(){return new t(this.fillStyle,this.thickness,this.jointstyle,this.capstyle,this.miterLimit,this.scaleMode)},t.data_type="[graphicsdata StrokeStyle]",t}(),gi=function(){function A(t,e){this.fillStyle=t,this.lineStyle=e,this._head=null}return A.prototype.addSegment=function(t){Nt(t),Nt(null===t.next),Nt(null===t.prev);var e=this._head;e&&(Nt(t!==e),e.next=t,t.prev=e),this._head=t},A.prototype.removeSegment=function(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev)},A.prototype.insertSegment=function(t,e){var i=e.prev;t.prev=i,t.next=e,i&&(i.next=t),e.prev=t},A.prototype.head=function(){return this._head},A.prototype.rgbaToArgb=function(t){return(255&t)<<24|(4278190080&t)>>>24<<16|(16711680&t)>>>16<<8|(65280&t)>>>8},A.prototype.getAlpha=function(t){return 255&t},A.prototype.rgbToArgb=function(t){return(4278190080&t)>>>24<<24|(255&t)<<16|(65280&t)>>>8<<8|(16711680&t)>>>16},A.prototype.applyStyle=function(A,n,r){var o,s;switch(void 0===r&&(r=!0),n.type){case t.FillType.Solid:n.alpha=(255&n.color)/255,n.color=this.rgbaToArgb(n.color),s=new ri(n.color,n.alpha);break;case t.FillType.LinearGradient:case t.FillType.RadialGradient:case t.FillType.FocalRadialGradient:for(var a=n.type===t.FillType.LinearGradient?t.GradientType.LINEAR:t.GradientType.RADIAL,g=[],l=0;l<n.colors.length;l++)g[l]=(255&n.colors[l])/255,n.colors[l]=this.rgbaToArgb(n.colors[l]);var h=new e.Matrix(n.transform.a,n.transform.b,n.transform.c,n.transform.d,n.transform.tx,n.transform.ty);s=new Ai(a,n.colors,g,n.ratios,h,n.spreadMethod,n.interpolationMode,n.focalPoint/2|0);break;case t.FillType.ClippedBitmap:case t.FillType.RepeatingBitmap:case t.FillType.NonsmoothedClippedBitmap:case t.FillType.NonsmoothedRepeatingBitmap:h=new e.Matrix(n.transform.a,n.transform.b,n.transform.c,n.transform.d,n.transform.tx,n.transform.ty);s=new ni(n.image,h,n.repeat,n.smooth);break;default:console.error("Unknown style type:",n.type)}if(r)o=new ii(s);else{var I=(0|Ot(n.width,0,5100))/20,c=I<=.05?i.LineScaleMode.HAIRLINE:i.LineScaleMode.NORMAL;n.startCapsStyle!=n.endCapsStyle&&console.log("Warning: different end vs start capstyle"),n.startCapsStyle=oi.ROUND,n.jointStyle=0,o=new ai(s,I,n.jointStyle,n.startCapsStyle,n.miterLimit,c)}A.style=o},A.prototype.serializeAJS=function(t,e){var i=this.head();if(i){var A=!!this.fillStyle,n=A?this.fillStyle:this.lineStyle,r=n.morph;for(this.applyStyle(t,n,A),r&&e&&this.applyStyle(e,r,A);i;)i.storeStartAndEnd(),i=i.prev;for(var o=this.head(),s=o,a=null,g=null,l=o.prev;o;){for(;l;)l.startConnectsTo(o)&&l.flipDirection(),l.connectsTo(o)?(l.next!==o&&(this.removeSegment(l),this.insertSegment(l,o)),l=(o=l).prev):(l.startConnectsTo(s)&&l.flipDirection(),s.connectsTo(l)?(this.removeSegment(l),s.next=l,l=l.prev,s.next.prev=s,s.next.next=null,s=s.next):l=l.prev);if(l=o.prev,a?(g.next=o,o.prev=g,(g=s).next=null):(a=o,g=s),!l)break;l=(o=s=l).prev}var h={x:0,y:0};for(l=a;l;)l.isValidFill&&l.serializeAJS(t,e,h),l=l.next;return t}},A}(),li=function(t,e,i,A,n,r,o,s,a,g,l){this.commands=t,this.commandsPosition=e,this.coordinates=i,this.morphCoordinates=A,this.coordinatesPosition=n,this.styles=r,this.stylesLength=o,this.morphStyles=s,this.morphStylesLength=a,this.hasFills=g,this.hasLines=l};!function(t){t[t.Commands=32]="Commands",t[t.Coordinates=128]="Coordinates",t[t.Styles=16]="Styles"}(ei||(ei={}));var hi=function(){function t(t){void 0===t&&(t=!0),t&&this.clear()}return t.FromPlainObject=function(e){var i=new t(!1);return i.commands=e.commands,i.coordinates=e.coordinates,i.morphCoordinates=e.morphCoordinates,i.commandsPosition=e.commandsPosition,i.coordinatesPosition=e.coordinatesPosition,i.styles=Ze.FromArrayBuffer(e.styles,e.stylesLength),i.styles.endian="auto",e.morphStyles&&(i.morphStyles=Ze.FromArrayBuffer(e.morphStyles,e.morphStylesLength),i.morphStyles.endian="auto"),i.hasFills=e.hasFills,i.hasLines=e.hasLines,i},t.prototype.moveTo=function(t,e){this.ensurePathCapacities(1,2),this.commands[this.commandsPosition++]=9,this.coordinates[this.coordinatesPosition++]=t,this.coordinates[this.coordinatesPosition++]=e},t.prototype.lineTo=function(t,e){this.ensurePathCapacities(1,2),this.commands[this.commandsPosition++]=10,this.coordinates[this.coordinatesPosition++]=t,this.coordinates[this.coordinatesPosition++]=e},t.prototype.curveTo=function(t,e,i,A){this.ensurePathCapacities(1,4),this.commands[this.commandsPosition++]=11,this.coordinates[this.coordinatesPosition++]=t,this.coordinates[this.coordinatesPosition++]=e,this.coordinates[this.coordinatesPosition++]=i,this.coordinates[this.coordinatesPosition++]=A},t.prototype.cubicCurveTo=function(t,e,i,A,n,r){this.ensurePathCapacities(1,6),this.commands[this.commandsPosition++]=12,this.coordinates[this.coordinatesPosition++]=t,this.coordinates[this.coordinatesPosition++]=e,this.coordinates[this.coordinatesPosition++]=i,this.coordinates[this.coordinatesPosition++]=A,this.coordinates[this.coordinatesPosition++]=n,this.coordinates[this.coordinatesPosition++]=r},t.prototype.beginFill=function(t){this.ensurePathCapacities(1,0),this.commands[this.commandsPosition++]=1,this.styles.writeUnsignedInt(t),this.hasFills=!0},t.prototype.writeMorphFill=function(t){this.morphStyles.writeUnsignedInt(t)},t.prototype.endFill=function(){this.ensurePathCapacities(1,0),this.commands[this.commandsPosition++]=4},t.prototype.endLine=function(){this.ensurePathCapacities(1,0),this.commands[this.commandsPosition++]=8},t.prototype.lineStyle=function(t,e,i,A,n,r,o){Nt(t===(0|t),t>=0&&t<=5100),this.ensurePathCapacities(2,0),this.commands[this.commandsPosition++]=5,this.coordinates[this.coordinatesPosition++]=t;var s=this.styles;s.writeUnsignedInt(e),s.writeBoolean(i),s.writeUnsignedByte(A),s.writeUnsignedByte(n),s.writeUnsignedByte(r),s.writeUnsignedByte(o),this.hasLines=!0},t.prototype.writeMorphLineStyle=function(t,e){this.morphCoordinates[this.coordinatesPosition-1]=t,this.morphStyles.writeUnsignedInt(e)},t.prototype.beginBitmap=function(t,e,i,A,n){Nt(3===t||7===t),this.ensurePathCapacities(1,0),this.commands[this.commandsPosition++]=t;var r=this.styles;r.writeUnsignedInt(e),this._writeStyleMatrix(i,!1),r.writeBoolean(A),r.writeBoolean(n),this.hasFills=!0},t.prototype.writeMorphBitmap=function(t){this._writeStyleMatrix(t,!0)},t.prototype.beginGradient=function(t,e,i,A,n,r,o,s){Nt(2===t||6===t),this.ensurePathCapacities(1,0),this.commands[this.commandsPosition++]=t;var a=this.styles;a.writeUnsignedByte(A),Nt(s===(0|s)),a.writeShort(s),this._writeStyleMatrix(n,!1);var g=e.length;a.writeByte(g);for(var l=0;l<g;l++)a.writeUnsignedByte(i[l]),a.writeUnsignedInt(e[l]);a.writeUnsignedByte(r),a.writeUnsignedByte(o),this.hasFills=!0},t.prototype.writeMorphGradient=function(t,e,i){this._writeStyleMatrix(i,!0);for(var A=this.morphStyles,n=0;n<t.length;n++)A.writeUnsignedByte(e[n]),A.writeUnsignedInt(t[n])},t.prototype.writeCommandAndCoordinates=function(t,e,i){this.ensurePathCapacities(1,2),this.commands[this.commandsPosition++]=t,this.coordinates[this.coordinatesPosition++]=e,this.coordinates[this.coordinatesPosition++]=i},t.prototype.writeCoordinates=function(t,e){this.ensurePathCapacities(0,2),this.coordinates[this.coordinatesPosition++]=t,this.coordinates[this.coordinatesPosition++]=e},t.prototype.writeMorphCoordinates=function(t,e){this.morphCoordinates=zt(this.morphCoordinates,this.coordinatesPosition),this.morphCoordinates[this.coordinatesPosition-2]=t,this.morphCoordinates[this.coordinatesPosition-1]=e},t.prototype.clear=function(){this.commandsPosition=this.coordinatesPosition=0,this.commands=new Uint8Array(ei.Commands),this.coordinates=new Int32Array(ei.Coordinates),this.styles=new Ze(ei.Styles),this.styles.endian="auto",this.hasFills=this.hasLines=!1},t.prototype.isEmpty=function(){return 0===this.commandsPosition},t.prototype.clone=function(){var e=new t(!1);return e.commands=new Uint8Array(this.commands),e.commandsPosition=this.commandsPosition,e.coordinates=new Int32Array(this.coordinates),e.coordinatesPosition=this.coordinatesPosition,e.styles=new Ze(this.styles.length),e.styles.writeRawBytes(this.styles.bytes.subarray(0,this.styles.length)),this.morphStyles&&(e.morphStyles=new Ze(this.morphStyles.length),e.morphStyles.writeRawBytes(this.morphStyles.bytes.subarray(0,this.morphStyles.length))),e.hasFills=this.hasFills,e.hasLines=this.hasLines,e},t.prototype.toPlainObject=function(){return new li(this.commands,this.commandsPosition,this.coordinates,this.morphCoordinates,this.coordinatesPosition,this.styles.buffer,this.styles.length,this.morphStyles&&this.morphStyles.buffer,this.morphStyles?this.morphStyles.length:0,this.hasFills,this.hasLines)},Object.defineProperty(t.prototype,"buffers",{get:function(){var t=[this.commands.buffer,this.coordinates.buffer,this.styles.buffer];return this.morphCoordinates&&t.push(this.morphCoordinates.buffer),this.morphStyles&&t.push(this.morphStyles.buffer),t},enumerable:!1,configurable:!0}),t.prototype._writeStyleMatrix=function(t,e){(e?this.morphStyles:this.styles).write6Floats(t.a,t.b,t.c,t.d,t.tx,t.ty)},t.prototype.ensurePathCapacities=function(t,e){this.commands=zt(this.commands,this.commandsPosition+t),this.coordinates=zt(this.coordinates,this.coordinatesPosition+e)},t}(),Ii=function(){function t(){}return t.BOTH=1,t.STROKE=0,t.FILL=2,t}(),ci=function(t){function A(e,A,n,r,o){void 0===A&&(A=null),void 0===n&&(n=null),void 0===r&&(r=0),void 0===o&&(o=0);var s=t.call(this)||this;return s._renderObjects={},s._pickObjects={},s.usages=0,s.count=0,s.offset=0,s.particleCollection=null,s.originalFillStyle=null,s.deepHitCheck=!0,s._onInvalidatePropertiesDelegate=function(t){return s._onInvalidateProperties(t)},s._onInvalidateVerticesDelegate=function(t){return s._onInvalidateVertices(t)},s._elements=e,s._elements.addEventListener(i.ElementsEvent.INVALIDATE_VERTICES,s._onInvalidateVerticesDelegate),s._elements.usages++,s._material=A,s._style=n,s._style&&s._style.addEventListener(i.StyleEvent.INVALIDATE_PROPERTIES,s._onInvalidatePropertiesDelegate),s.count=r,s.offset=o,s}return I(A,t),A.getShape=function(t,e,i,n,r){if(void 0===e&&(e=null),void 0===i&&(i=null),void 0===n&&(n=0),void 0===r&&(r=0),A._pool.length){var o=A._pool.pop();return o.elements=t,o.material=e,o.style=i,o.count=n,o.offset=r,o}return new A(t,e,i,n,r)},A.clearPool=function(){A._pool=[]},A.quadElement=function(t,e,A){void 0===e&&(e=1),void 0===A&&(A=!1);for(var n=[],r=[],o=t.width/e,s=t.height/e,a=t.x,g=t.y,l=0;l<e;l++)for(var h=0;h<e;h++){var I=a+h*o,c=g+l*s,p=I+o,C=c+s;n.push(I,c,0,p,C,0,p,c,0,I,c,0,I,C,0,p,C,0),r&&r.push(h/e,l/e,(h+1)/e,(l+1)/e,(h+1)/e,l/e,h/e,l/e,h/e,(l+1)/e,(h+1)/e,(l+1)/e)}var u=new i.TriangleElements;return u.setPositions(n),A&&u.setUVs(r),u},A.getElement=function(t){var e=t.x,A=t.y,n=t.right,r=t.bottom,o=new i.TriangleElements;return o.setPositions([e,A,0,n,A,0,n,r,0,e,A,0,e,r,0,n,r,0]),o},A.getTriangleElement=function(t,i,n,r){var o=this;void 0===i&&(i=!0),void 0===n&&(n=!1),void 0===r&&(r=1);var s=t.toString(),a=i?this._imageShapeElements[s]:null;return a||(a=A.quadElement(t,r,n),i&&(this._imageShapeElements[s]=a,a.addEventListener(e.AssetEvent.CLEAR,(function(){delete o._imageShapeElements[s],a.usages=0})),a.usages++)),a},Object.defineProperty(A.prototype,"elements",{get:function(){return this._elements},set:function(t){this._elements!=t&&(this._elements&&(this._elements.removeEventListener(i.ElementsEvent.INVALIDATE_VERTICES,this._onInvalidateVerticesDelegate),this._elements.usages--,this._elements.usages||this._elements.dispose()),this._elements=t,this._elements&&(this._elements.addEventListener(i.ElementsEvent.INVALIDATE_VERTICES,this._onInvalidateVerticesDelegate),this._elements.usages++),this.invalidateElements())},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"assetType",{get:function(){return A.assetType},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"material",{get:function(){return this._material},set:function(t){this._material!=t&&(this._material=t,this.invalidateMaterial())},enumerable:!1,configurable:!0}),Object.defineProperty(A.prototype,"style",{get:function(){return this._style},set:function(t){this._style!=t&&(this._style&&this._style.removeEventListener(i.StyleEvent.INVALIDATE_PROPERTIES,this._onInvalidatePropertiesDelegate),this._style=t,this._style&&this._style.addEventListener(i.StyleEvent.INVALIDATE_PROPERTIES,this._onInvalidatePropertiesDelegate),this.invalidateStyle())},enumerable:!1,configurable:!0}),A.prototype.dispose=function(){t.prototype.clear.call(this),this.usages=0,this.elements=null,this.material=null,this.style=null,this.particleCollection=null,A._pool.push(this)},A.prototype.invalidateElements=function(){for(var t in this._pickObjects)this._pickObjects[t]._onInvalidateElements();for(var t in this._renderObjects)this._renderObjects[t]._onInvalidateElements()},A.prototype.invalidateMaterial=function(){for(var t in this._renderObjects)this._renderObjects[t]._onInvalidateMaterial()},A.prototype.invalidateStyle=function(){for(var t in this._renderObjects)this._renderObjects[t]._onInvalidateStyle()},A.prototype._onInvalidateProperties=function(t){this.invalidateStyle()},A.prototype._onInvalidateVertices=function(t){t.attributesView==t.target.positions&&this.invalidate()},A.prototype.applyTransformation=function(t){this._elements.applyTransformation(t,this.count,this.offset)},A.prototype.scale=function(t){this._elements.scale(t,this.count,this.offset)},A.prototype.scaleUV=function(t,e){void 0===t&&(t=1),void 0===e&&(e=1),this._elements.scaleUV(t,e,this.count,this.offset)},A._pool=new Array,A.assetType="[asset Shape]",A._imageShapeElements={},A}(e.AssetBase),pi=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return I(e,t),e.prototype.init=function(e,i){t.prototype.init.call(this,e,i)},e.prototype.onClear=function(){t.prototype.onClear.call(this),this._scaleX=null,this._scaleY=null,this._scale9Elements=null},e.prototype._getStageElements=function(){var t=this.renderable;this._offset=t.offset,this._count=t.count;var e=this.entity.node.getScale9Container();if(e)return this._stage.abstractions.getAbstraction(this.updateScale9(e.scale9Grid,e.transform.scale.x,e.transform.scale.y));var i=this.entity.node.container,A=i.animator?i.animator.getRenderableElements(this,t.elements):t.elements;return this._stage.abstractions.getAbstraction(A)},e.prototype._getRenderMaterial=function(){var t=this.renderable;return this.entity.renderer.getRenderElements(t.elements).abstractions.getAbstraction(t.material||this.entity.node.container.material||this.getDefaultMaterial())},e.prototype._getStyle=function(){return this.renderable.style||this.entity.node.container.style},e.prototype.getDefaultMaterial=function(){return this.stageElements.elements instanceof i.LineElements?i.MaterialUtils.getDefaultColorMaterial():i.MaterialUtils.getDefaultTextureMaterial()},e.prototype.updateScale9=function(t,e,A){if(!this._scale9Elements){var r=null,o=!1,s=this.renderable;s.originalFillStyle instanceof ni&&(r=s.originalFillStyle.getUVMatrix()),s.elements instanceof i.TriangleElements&&(o=!s.elements.uvs&&!!r),o&&(s.style.uvMatrix=null);var a=n.PickGroup.getInstance().getBoundsPicker(this.entity.node).getBoxBounds(this.entity.node,!0,!0);this._scale9Elements=s.elements.prepareScale9(a,t,!0,o,r)}return this._scaleX==e&&this._scaleY==A||(this._scaleX=e,this._scaleY=A,this._scale9Elements.updateScale9(e,A)),this._scale9Elements},e}(i._Render_RenderableBase),Ci=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return I(e,t),e.prototype.hitTestPoint=function(t,e,i){var A=this.getBoxBounds(),n=this.pickable;return!(null==A||!A.contains(t,e,i))&&n.elements.hitTestPoint(this._pool.node,t,e,i,A,n.count,n.offset)},e.prototype.getBoxBounds=function(t,e,i,A){void 0===t&&(t=null),void 0===e&&(e=!0),void 0===i&&(i=null),void 0===A&&(A=null);var n=this.pickable;return t?n.elements.getBoxBounds(this._pool.node,e,t,i,A,n.count,n.offset):(this._orientedBoxBoundsDirty&&(this._orientedBoxBoundsDirty=!1,this._orientedBoxBounds=n.elements.getBoxBounds(this._pool.node,e,null,this._orientedBoxBounds,null,n.count,n.offset)),null!=this._orientedBoxBounds&&(A=this._orientedBoxBounds.union(A,A||i)),A)},e.prototype.getSphereBounds=function(t,e,i,A,n){void 0===e&&(e=null),void 0===i&&(i=!0),void 0===A&&(A=null),void 0===n&&(n=null);var r=this.pickable;return e?r.elements.getSphereBounds(t,e,i,A,n,r.count,r.offset):(this._orientedSphereBoundsDirty&&(this._orientedSphereBoundsDirty=!1,this._orientedSphereBounds=r.elements.getSphereBounds(t,null,i,this._orientedSphereBounds,null,r.count,r.offset)),null!=this._orientedSphereBounds&&(n=this._orientedSphereBounds.union(n,n||A)),n)},e.prototype.testCollision=function(t,e){var i=this.getBoxBounds(),A=this.pickable;return!(null==i||!i.rayIntersection(t.rayPosition,t.rayDirection))&&(!A.deepHitCheck||A.elements.testCollision(t,i,e,A.material||t.containerNode.container.material,A.count||A.elements.numVertices,A.offset))},e}(n._Pick_PickableBase);i.RenderEntity.registerRenderable(pi,ci),n.PickEntity.registerPickable(Ci,ci);var ui,di,_i=function(){function t(){}return t.getMaterialForColor=function(e){if(!t.materialClass)throw"no materialClass registered on MaterialManager!";var i;if(t._useTextureAtlasForColors){if(t._colorMaterial)return t._colorMaterial;(i=t._colorMaterial=new t.materialClass(A.ImageUtils.getDefaultImage2D())).animateUVs=!0}else{var n=e.color,r=e.alpha,o=n+"_"+Math.round(100*r).toString();if(t._colorMaterials[o])return t._colorMaterials[o];i=t._colorMaterials[o]=new t.materialClass(n,r)}return i.alphaBlending=!0,i.useColorTransform=!0,i.bothSides=!0,i},t.getMaterialForGradient=function(e){if(!t.materialClass)throw"no materialClass registered on MaterialManager!";var i=e.type.toString();if(t._textureMaterials[i])return t._textureMaterials[i];var n=t._textureMaterials[i]=new t.materialClass(A.ImageUtils.getDefaultImage2D());return n.useColorTransform=!0,n.alphaBlending=!0,n.bothSides=!0,n.animateUVs=!0,n},t.getMaterialForBitmap=function(e){if(void 0===e&&(e=!1),!t.materialClass)throw"no materialClass registered on MaterialManager!";var i;if(e){if(t._bitmapMaterialTransform)return t._bitmapMaterialTransform;(i=t._bitmapMaterialTransform=new t.materialClass(A.ImageUtils.getDefaultImage2D())).animateUVs=!0}else{if(t._bitmapMaterial)return t._bitmapMaterial;i=t._bitmapMaterial=new t.materialClass(A.ImageUtils.getDefaultImage2D())}return i.alphaBlending=!0,i.useColorTransform=!0,i.bothSides=!0,i},t._colorMaterials={},t._textureMaterials={},t._useTextureAtlasForColors=!0,t}(),fi=function(){function t(){this.availableRows=256,this.gradientRow=-1,this.colorRow=256,this.colorPosition=0,this.bitmap=new A.BitmapImage2D(256,256,!0,null),this.availableRows=256}return t.getTextureForColor=function(i){var A=i.toString();if(A in this._allColors)return i.uvMatrix=this._allColors[A].uvMatrix,this._allColors[A].bitmap;for(var n,r=this._allTextureAtlas.length,o=0;o<r;o++)if(this._allTextureAtlas[o].fitColor()){n=this._allTextureAtlas[o];break}n||(n=new t,this._allTextureAtlas.push(n));var s=n.addSolid(i);return i.uvMatrix=new e.Matrix(0,0,0,0,s.x,s.y),this._allColors[A]={uvMatrix:i.uvMatrix,bitmap:n.bitmap,uvRectangle:null},n.bitmap},t.getTextureForGradient=function(e){var i,A=e.toString();if(A in this._allGradients)return e.uvRectangle=this._allGradients[A].uvRectangle,this._allGradients[A].bitmap;for(var n=this._allTextureAtlas.length,r=0;r<n;r++)if(this._allTextureAtlas[r].fitGradient()){i=this._allTextureAtlas[r];break}return i||(i=new t,this._allTextureAtlas.push(i)),i.addGradient(e),this._allGradients[A]={bitmap:i.bitmap,uvRectangle:e.uvRectangle},i.bitmap},t.prototype.fitGradient=function(){return this.availableRows>0},t.prototype.fitColor=function(){return this.availableRows>0||this.colorPosition>0},t.prototype.addGradient=function(t){if(!(this.availableRows<=0)){this.gradientRow++,this.availableRows--;for(var e=0;e<256;e++)this.bitmap.setPixelFromArray(e,this.gradientRow,t.getColorAtPosition(e));return t.uvRectangle.x=1/512,t.uvRectangle.y=1/512+this.gradientRow/256,t.uvRectangle.width=1-1/512,t.uvRectangle.height=t.uvRectangle.y,this.availableRows}console.error("[TextureAtlass] There are not free space for gradient:",t)},t.prototype.addSolid=function(t){if(this.colorPosition--,this.colorPosition<0&&(this.colorRow--,this.availableRows--,this.colorPosition=255,this.availableRows<0))return this.availableRows=0,console.error("[TextureAtlass] There are not free space for color:",t.color.toString(16)),null;var i=e.ColorUtils.float32ColorToARGB(t.color);return i[0]=t.alpha,this.bitmap.setPixelFromArray(this.colorPosition,this.colorRow,i),new e.Point(1/512+this.colorPosition/256,1/512+this.colorRow/256)},t._allTextureAtlas=[],t._allGradients={},t._allColors={},t}(),Ei=function(){function t(){}return t.drawRectangles=function(t,e,n){if(!(t.length%4>0)){var r=[];r.length=t.length/4*12;var o=0,s=0,a=t.length,g=0,l=0,h=0,I=0;for(o=0;o<a;o+=4)g=t[o],l=t[o+1],h=t[o+2],I=t[o+3],r[s++]=g,r[s++]=l,r[s++]=g+h,r[s++]=l,r[s++]=g+h,r[s++]=l+I,r[s++]=g,r[s++]=l,r[s++]=g,r[s++]=l+I,r[s++]=g+h,r[s++]=l+I;var c=new ri(e,n),p=_i.getMaterialForColor(c),C=new A.AttributesView(Float32Array,p.curves?3:2);C.set(r);var u=C.attributesBuffer.cloneBufferView();C.dispose();var d=new i.TriangleElements(u);d.setPositions(new A.Float2Attributes(u));var _=ci.getShape(d,p);return _.material=p,p.getNumTextures()&&(_.style=new i.Style,_.style.image=fi.getTextureForColor(c),_.style.uvMatrix=c.getUVMatrix()),_}console.log("GraphicsFactoryHelper.drawRectangles: inputRectangles.length is not a multiple of 4",t)},t.updateRectanglesShape=function(t,e){var i=[];i.length=e.length/4*12;var A=0,n=0,r=e.length,o=0,s=0,a=0,g=0;for(A=0;A<r;A+=4)o=e[A],s=e[A+1],a=e[A+2],g=e[A+3],i[n++]=o,i[n++]=s,i[n++]=o+a,i[n++]=s,i[n++]=o+a,i[n++]=s+g,i[n++]=o,i[n++]=s,i[n++]=o,i[n++]=s+g,i[n++]=o+a,i[n++]=s+g;var l=t.elements;l.concatenatedBuffer.count=i.length/2,l.setPositions(i),l.invalidate()},t.isClockWiseXY=function(t,e,i,A,n,r){return!((t-i)*(r-A)-(e-A)*(n-i)<0)},t.getSign=function(t,e,i,A,n,r){return(t-n)*(A-r)-(e-r)*(i-n)},t.pointInTri=function(t,e,i,A,n,r,o,s){var a=this.getSign(t,e,o,s,i,A)>0,g=this.getSign(i,A,o,s,n,r)>0,l=this.getSign(n,r,o,s,t,e)>0;return a==g&&g==l},t.getControlXForCurveX=function(t,e,i){return e},t.getControlYForCurveY=function(t,e,i){return e},t.drawPoint=function(t,e,i,A){this.addTriangle(t-2,e-2,t+2,e-2,t+2,e+2,0,i,A),this.addTriangle(t-2,e-2,t-2,e+2,t+2,e+2,0,i,A)},t.drawElipse=function(t,e,i,A,n,r,o,s,a){for(var g=(o-r)/s,l=t+i*Math.cos(r*(Math.PI/180)),h=e+A*Math.sin(r*(Math.PI/180)),I=1;I<=g;I++){var c=t+i*Math.cos((r+I*s)*(Math.PI/180)),p=e+A*Math.sin((r+I*s)*(Math.PI/180));this.addTriangle(t,e,c,p,l,h,0,n,a),l=c,h=p}},t.drawElipseStrokes=function(t,e,i,A,n,r,o,s){var a=(o-r)/s,g=t+i*Math.cos(r*(Math.PI/180)),l=e+A*Math.sin(r*(Math.PI/180));n.moveTo(g,l);for(var h=1;h<=a;h++){var I=t+i*Math.cos((r+h*s)*(Math.PI/180)),c=e+A*Math.sin((r+h*s)*(Math.PI/180));n.lineTo(I,c)}},t.addTriangle=function(e,i,A,n,r,o,s,a,g){var l=e,h=i,I=A,c=n,p=r,C=o;t.isClockWiseXY(l,h,I,c,p,C)&&(e=p,i=C,A=I,n=c,r=l,o=h);var u=a.length;0==s?(a[u++]=e,a[u++]=i,g&&(a[u++]=45736980577097704e-57),a[u++]=A,a[u++]=n,g&&(a[u++]=45736980577097704e-57),a[u++]=r,a[u++]=o,g&&(a[u++]=45736980577097704e-57)):s<0?(a[u++]=e,a[u++]=i,g&&(a[u++]=11708844992641982e-54),a[u++]=A,a[u++]=n,g&&(a[u++]=22778106537599901e-57),a[u++]=r,a[u++]=o,g&&(a[u++]=17796490496925177e-59)):s>0&&(a[u++]=e,a[u++]=i,g&&(a[u++]=11708846393940446e-54),a[u++]=A,a[u++]=n,g&&(a[u++]=22779507836064226e-57),a[u++]=r,a[u++]=o,g&&(a[u++]=1793662034335766e-58))},t.createCap=function(t,e,i,A,n,r,o,s,a,g,l,h,I,c){if(o*=g,s*=g,a==oi.ROUND){var p=t+o*l,C=e+s*h,u=i+o*l,d=A+s*h,_=n+o*l,f=r+s*h;this.tesselateCurve(i,A,u,d,p,C,I,!0),this.tesselateCurve(p,C,_,f,n,r,I,!0),this.addTriangle(i,A,p,C,n,r,-1,I,c)}else if(a==oi.SQUARE){u=i+o*l,d=A+s*h,_=n+o*l,f=r+s*h;this.addTriangle(_,f,u,d,i,A,0,I,c),this.addTriangle(_,f,i,A,n,r,0,I,c)}},t.getLineFormularData=function(t,i){var A=i.x-t.x,n=i.y-t.y,r=new e.Point;return 0!=A&&0!=n&&(r.x=n/A),r.y=-(r.x*t.x-t.y),r},t.getQuadricBezierPosition=function(t,e,i,A){var n=1-t;return n*n*e+2*n*t*i+t*t*A},t.subdivideCurve=function(i,A,n,r,o,s,a,g,l,h,I,c,p,C){var u=Math.atan2(r-A,n-i)*e.MathConsts.RADIANS_TO_DEGREES,d=Math.atan2(s-r,o-n)*e.MathConsts.RADIANS_TO_DEGREES-u;if(d>180&&(d-=360),d<-180&&(d+=360),Math.abs(d)>=175)return p.push(i,A,n,r,o,s),void C.push(a,g,l,h,I,c);var _=!1;if(d<0?(_=t.getSign(i,A,l,h,o,s)>0,_=((A-s)*(n-i)+(o-i)*(r-A))*((A-s)*(l-i)+(o-i)*(h-A))<0):(_=t.getSign(a,g,l,h,I,c)>0,_=((g-s)*(n-a)+(I-a)*(r-g))*((g-c)*(l-a)+(I-a)*(h-g))<0),_)return p.push(i,A,n,r,o,s),void C.push(a,g,l,h,I,c);var f=i+.5*(n-i),E=A+.5*(r-A),y=n+.5*(o-n),B=r+.5*(s-r),m=f+.5*(y-f),Q=E+.5*(B-E),D=a+.5*(l-a),v=g+.5*(h-g),x=l+.5*(I-l),S=h+.5*(c-h),w=D+.5*(x-D),b=v+.5*(S-v);this.subdivideCurve(i,A,f,E,m,Q,a,g,D,v,w,b,p,C),this.subdivideCurve(m,Q,y,B,o,s,w,b,x,S,I,c,p,C)},t.tesselateCurve=function(i,A,n,r,o,s,a,g,l,h){void 0===g&&(g=!1),void 0===l&&(l=0),void 0===h&&(h=1);var I=re.CURVE_TESSELATION_COUNT,c=1/Math.sqrt(h),p=1/h,C=.5*(i+n),u=.5*(A+r),d=.5*(n+o),_=.5*(r+s),f=.5*(C+d),E=.5*(u+_);if(l>=I)return g?void a.push(i,A,f,E,o,s):void a.push(f,E,o,s);var y=o-i,B=s-A;if(y*y+B*B<p)g?a.push(i,A,f,E,o,s):a.push(o,s);else{for(var m=Math.atan2(r-A,n-i)*e.MathConsts.RADIANS_TO_DEGREES,Q=Math.atan2(s-r,o-n)*e.MathConsts.RADIANS_TO_DEGREES-m;Q>180;)Q-=360;for(;Q<-180;)Q+=360;(Q=Q<0?-Q:Q)<=c?g?a.push(i,A,f,E,o,s):a.push(o,s):(g&&a.push(i,A,f,E,o,s),l++,t.tesselateCurve(i,A,C,u,f,E,a,g,l,h),t.tesselateCurve(f,E,d,_,o,s,a,g,l,h))}},t.tesselateCubicCurve=function(i,A,n,r,o,s,a,g,l,h,I){void 0===h&&(h=0),void 0===I&&(I=1);var c=re.CURVE_TESSELATION_COUNT,p=1/Math.sqrt(I),C=a-i,u=g-A;if(C*C+u*u<1/I)l.push(a,g);else{var d=.5*(i+n),_=.5*(A+r),f=.5*(n+o),E=.5*(r+s),y=.5*(o+a),B=.5*(s+g),m=.5*(d+f),Q=.5*(_+E),D=.5*(f+y),v=.5*(E+B),x=.5*(m+D),S=.5*(Q+v);if(h>=c)l.push(x,S,a,g);else{for(var w=Math.atan2(r-A,n-i)*e.MathConsts.RADIANS_TO_DEGREES,b=Math.atan2(g-r,a-n)*e.MathConsts.RADIANS_TO_DEGREES-w;b>180;)b-=360;for(;b<-180;)b+=360;(b=b<0?-b:b)<=p?l.push(a,g):(h++,t.tesselateCubicCurve(i,A,d,_,m,Q,x,S,l,h,I),t.tesselateCubicCurve(x,S,D,v,y,B,a,g,l,h,I))}}},t}();function yi(t,e){if(!t)throw e||"Assertion Failed!"}!function(t){t[t.ODD=0]="ODD",t[t.NONZERO=1]="NONZERO",t[t.POSITIVE=2]="POSITIVE",t[t.NEGATIVE=3]="NEGATIVE",t[t.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"}(ui||(ui={})),function(t){t[t.POLYGONS=0]="POLYGONS",t[t.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",t[t.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"}(di||(di={}));var Bi=function(){function t(){}return t.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},t.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},t.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},t.edgeGoesLeft=function(e){return t.vertLeq(e.Dst,e.Org)},t.edgeGoesRight=function(e){return t.vertLeq(e.Org,e.Dst)},t.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},t.edgeEval=function(e,i,A){yi(t.vertLeq(e,i)&&t.vertLeq(i,A));var n=i.s-e.s,r=A.s-i.s;return n+r>0?n<r?i.t-e.t+(e.t-A.t)*(n/(n+r)):i.t-A.t+(A.t-e.t)*(r/(n+r)):0},t.edgeSign=function(e,i,A){yi(t.vertLeq(e,i)&&t.vertLeq(i,A));var n=i.s-e.s,r=A.s-i.s;return n+r>0?(i.t-A.t)*n+(i.t-e.t)*r:0},t.transEval=function(e,i,A){yi(t.transLeq(e,i)&&t.transLeq(i,A));var n=i.t-e.t,r=A.t-i.t;return n+r>0?n<r?i.s-e.s+(e.s-A.s)*(n/(n+r)):i.s-A.s+(A.s-e.s)*(r/(n+r)):0},t.transSign=function(e,i,A){yi(t.transLeq(e,i)&&t.transLeq(i,A));var n=i.t-e.t,r=A.t-i.t;return n+r>0?(i.s-A.s)*n+(i.s-e.s)*r:0},t.vertCCW=function(t,e,i){return t.s*(e.t-i.t)+e.s*(i.t-t.t)+i.s*(t.t-e.t)>=0},t.interpolate=function(t,e,i,A){return(t=t<0?0:t)<=(i=i<0?0:i)?0===i?(e+A)/2:e+t/(t+i)*(A-e):A+i/(t+i)*(e-A)},t.intersect=function(e,i,A,n,r){var o,s,a;t.vertLeq(e,i)||(a=e,e=i,i=a),t.vertLeq(A,n)||(a=A,A=n,n=a),t.vertLeq(e,A)||(a=e,e=A,A=a,a=i,i=n,n=a),t.vertLeq(A,i)?t.vertLeq(i,n)?((o=t.edgeEval(e,A,i))+(s=t.edgeEval(A,i,n))<0&&(o=-o,s=-s),r.s=t.interpolate(o,A.s,s,i.s)):((o=t.edgeSign(e,A,i))+(s=-t.edgeSign(e,n,i))<0&&(o=-o,s=-s),r.s=t.interpolate(o,A.s,s,n.s)):r.s=(A.s+i.s)/2,t.transLeq(e,i)||(a=e,e=i,i=a),t.transLeq(A,n)||(a=A,A=n,n=a),t.transLeq(e,A)||(a=e,e=A,A=a,a=i,i=n,n=a),t.transLeq(A,i)?t.transLeq(i,n)?((o=t.transEval(e,A,i))+(s=t.transEval(A,i,n))<0&&(o=-o,s=-s),r.t=t.interpolate(o,A.t,s,i.t)):((o=t.transSign(e,A,i))+(s=-t.transSign(e,n,i))<0&&(o=-o,s=-s),r.t=t.interpolate(o,A.t,s,n.t)):r.t=(A.t+i.t)/2},t}(),mi=function(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1},Qi=function(){function t(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(t.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),t}(),Di=function(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0},vi=function(){function t(){var t=new Di,e=new mi,i=new Qi(0),A=new Qi(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,i.next=i,i.Sym=A,A.next=A,A.Sym=i,this.vHead=t,this.fHead=e,this.eHead=i,this.eHeadSym=A}return t.prototype.makeEdge_=function(t){var e=new Qi(0),i=new Qi(1);t.Sym.side<t.side&&(t=t.Sym);var A=t.Sym.next;return i.next=A,A.Sym.next=e,e.next=t,t.Sym.next=i,e.Sym=i,e.Onext=e,e.Lnext=i,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,i.Sym=e,i.Onext=i,i.Lnext=e,i.Org=null,i.Lface=null,i.winding=0,i.activeRegion=null,e},t.prototype.splice_=function(t,e){var i=t.Onext,A=e.Onext;i.Sym.Lnext=e,A.Sym.Lnext=t,t.Onext=A,e.Onext=i},t.prototype.makeVertex_=function(t,e,i){var A=t;yi(A,"Vertex can't be null!");var n=i.prev;A.prev=n,n.next=A,A.next=i,i.prev=A,A.anEdge=e;var r=e;do{r.Org=A,r=r.Onext}while(r!==e)},t.prototype.makeFace_=function(t,e,i){var A=t;yi(A,"Face can't be null");var n=i.prev;A.prev=n,n.next=A,A.next=i,i.prev=A,A.anEdge=e,A.trail=null,A.marked=!1,A.inside=i.inside;var r=e;do{r.Lface=A,r=r.Lnext}while(r!==e)},t.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,i=t.Sym.next;e.Sym.next=i,i.Sym.next=e},t.prototype.killVertex_=function(t,e){var i=t.anEdge,A=i;do{A.Org=e,A=A.Onext}while(A!==i);var n=t.prev,r=t.next;r.prev=n,n.next=r},t.prototype.killFace_=function(t,e){var i=t.anEdge,A=i;do{A.Lface=e,A=A.Lnext}while(A!==i);var n=t.prev,r=t.next;r.prev=n,n.next=r},t.prototype.makeEdge=function(){var t=new Di,e=new Di,i=new mi,A=this.makeEdge_(this.eHead);return this.makeVertex_(t,A,this.vHead),this.makeVertex_(e,A.Sym,this.vHead),this.makeFace_(i,A,this.fHead),A},t.prototype.splice=function(t,e){var i=!1,A=!1;if(t!==e){if(e.Org!==t.Org&&(A=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(i=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!A){var n=new Di;this.makeVertex_(n,e,t.Org),t.Org.anEdge=t}if(!i){var r=new mi;this.makeFace_(r,e,t.Lface),t.Lface.anEdge=t}}},t.prototype.delete=function(t){var e=t.Sym,i=!1;if(t.Lface!==t.Rface&&(i=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!i){var A=new mi;this.makeFace_(A,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},t.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),i=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var A=new Di;return this.makeVertex_(A,i,e.Org),e.Lface=i.Lface=t.Lface,e},t.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t).Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,e),t.Dst=e.Org,e.Dst.anEdge=e.Sym,e.Rface=t.Rface,e.winding=t.winding,e.Sym.winding=t.Sym.winding,e},t.prototype.connect=function(t,e){var i=!1,A=this.makeEdge_(t),n=A.Sym;if(e.Lface!==t.Lface&&(i=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(A,t.Lnext),this.splice_(n,e),A.Org=t.Dst,n.Org=e.Org,A.Lface=n.Lface=t.Lface,t.Lface.anEdge=n,!i){var r=new mi;this.makeFace_(r,A,t.Lface)}return A},t.prototype.zapFace=function(t){var e,i,A,n,r,o=t.anEdge;i=o.Lnext;do{i=(e=i).Lnext,e.Lface=null,null===e.Rface&&(e.Onext===e?this.killVertex_(e.Org,null):(e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),(A=e.Sym).Onext===A?this.killVertex_(A.Org,null):(A.Org.anEdge=A.Onext,this.splice_(A,A.Oprev)),this.killEdge_(e))}while(e!=o);n=t.prev,(r=t.next).prev=n,n.next=r},t.prototype.countFaceVerts_=function(t){var e=t.anEdge,i=0;do{i++,e=e.Lnext}while(e!==t.anEdge);return i},t.prototype.mergeConvexFaces=function(t){var e,i,A,n,r;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(e.inside)for(r=(i=e.anEdge).Org;A=i.Lnext,(n=i.Sym)&&n.Lface&&n.Lface.inside&&this.countFaceVerts_(e)+this.countFaceVerts_(n.Lface)-2<=t&&Bi.vertCCW(i.Lprev.Org,i.Org,n.Lnext.Lnext.Org)&&Bi.vertCCW(n.Lprev.Org,n.Org,i.Lnext.Lnext.Org)&&(A=n.Lnext,this.delete(n),i=null,n=null),!i||i.Lnext.Org!==r;)i=A;return!0},t.prototype.check=function(){var t,e,i,A,n,r,o=this.fHead,s=this.vHead,a=this.eHead;for(e=o,e=o;(t=e.next)!==o;e=t){yi(t.prev===e),n=t.anEdge;do{yi(n.Sym!==n),yi(n.Sym.Sym===n),yi(n.Lnext.Onext.Sym===n),yi(n.Onext.Sym.Lnext===n),yi(n.Lface===t),n=n.Lnext}while(n!==t.anEdge)}for(yi(t.prev===e&&null===t.anEdge),A=s,A=s;(i=A.next)!==s;A=i){yi(i.prev===A),n=i.anEdge;do{yi(n.Sym!==n),yi(n.Sym.Sym===n),yi(n.Lnext.Onext.Sym===n),yi(n.Onext.Sym.Lnext===n),yi(n.Org===i),n=n.Onext}while(n!==i.anEdge)}for(yi(i.prev===A&&null===i.anEdge),r=a,r=a;(n=r.next)!==a;r=n)yi(n.Sym.next===r.Sym),yi(n.Sym!==n),yi(n.Sym.Sym===n),yi(null!==n.Org),yi(null!==n.Dst),yi(n.Lnext.Onext.Sym===n),yi(n.Onext.Sym.Lnext===n);yi(n.Sym.next===r.Sym&&n.Sym===this.eHeadSym&&n.Sym.Sym===n&&null===n.Org&&null===n.Dst&&null===n.Lface&&null===n.Rface)},t}(),xi=function(){this.handle=null},Si=function(){this.key=null,this.node=0},wi=function(){function t(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var i=0;i<t+1;i++)this.nodes[i]=new xi,this.handles[i]=new Si;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return t.prototype.floatDown_=function(t){var e,i,A,n=this.nodes,r=this.handles;for(e=n[t].handle;;){if((A=t<<1)<this.size&&this.leq(r[n[A+1].handle].key,r[n[A].handle].key)&&++A,yi(A<=this.max),i=n[A].handle,A>this.size||this.leq(r[e].key,r[i].key)){n[t].handle=e,r[e].node=t;break}n[t].handle=i,r[i].node=t,t=A}},t.prototype.floatUp_=function(t){var e,i,A,n=this.nodes,r=this.handles;for(e=n[t].handle;;){if(i=n[A=t>>1].handle,0===A||this.leq(r[i].key,r[e].key)){n[t].handle=e,r[e].node=t;break}n[t].handle=i,r[i].node=t,t=A}},t.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},t.prototype.min=function(){return this.handles[this.nodes[1].handle].key},t.prototype.insert=function(t){var e,i;if(2*(e=++this.size)>this.max){var A,n;for(this.max*=2,n=this.nodes.length,this.nodes.length=this.max+1,A=n;A<this.nodes.length;A++)this.nodes[A]=new xi;for(n=this.handles.length,this.handles.length=this.max+1,A=n;A<this.handles.length;A++)this.handles[A]=new Si}return 0===this.freeList?i=e:(i=this.freeList,this.freeList=this.handles[i].node),this.nodes[e].handle=i,this.handles[i].node=e,this.handles[i].key=t,this.initialized&&this.floatUp_(e),i},t.prototype.extractMin=function(){var t=this.nodes,e=this.handles,i=t[1].handle,A=e[i].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[i].key=null,e[i].node=this.freeList,this.freeList=i,--this.size,this.size>0&&this.floatDown_(1)),A},t.prototype.delete=function(t){var e,i=this.nodes,A=this.handles;yi(t>=1&&t<=this.max&&null!==A[t].key),i[e=A[t].node].handle=i[this.size].handle,A[i[e].handle].node=e,--this.size,e<=this.size&&(e<=1||this.leq(A[i[e>>1].handle].key,A[i[e].handle].key)?this.floatDown_(e):this.floatUp_(e)),A[t].key=null,A[t].node=this.freeList,this.freeList=t},t}(),bi=function(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1},Ni=function(){this.key=null,this.next=null,this.prev=null},Ri=function(){function t(t,e){this.frame=t,this.leq=e,this.head=new Ni,this.head.next=this.head,this.head.prev=this.head}return t.prototype.min=function(){return this.head.next},t.prototype.max=function(){return this.head.prev},t.prototype.insert=function(t){return this.insertBefore(this.head,t)},t.prototype.search=function(t){var e=this.head;do{e=e.next}while(null!==e.key&&!this.leq(this.frame,t,e.key));return e},t.prototype.insertBefore=function(t,e){do{t=t.prev}while(null!==t.key&&!this.leq(this.frame,t.key,e));var i=new Ni;return i.key=e,i.next=t.next,t.next.prev=i,i.prev=t,t.next=i,i},t.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},t}(),Fi=function(){function t(){}return t.regionBelow=function(t){return t.nodeUp.prev.key},t.regionAbove=function(t){return t.nodeUp.next.key},t.debugEvent=function(t){},t.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},t.edgeLeq=function(t,e,i){var A=t.event,n=e.eUp,r=i.eUp;return n.Dst===A?r.Dst===A?Bi.vertLeq(n.Org,r.Org)?Bi.edgeSign(r.Dst,n.Org,r.Org)<=0:Bi.edgeSign(n.Dst,r.Org,n.Org)>=0:Bi.edgeSign(r.Dst,A,r.Org)<=0:r.Dst===A?Bi.edgeSign(n.Dst,A,n.Org)>=0:Bi.edgeEval(n.Dst,A,n.Org)>=Bi.edgeEval(r.Dst,A,r.Org)},t.deleteRegion=function(t,e){e.fixUpperEdge&&yi(0===e.eUp.winding),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},t.fixUpperEdge=function(t,e,i){yi(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=i,i.activeRegion=e},t.topLeftRegion=function(e,i){var A,n=i.eUp.Org;do{i=t.regionAbove(i)}while(i.eUp.Org===n);if(i.fixUpperEdge){if(null===(A=e.mesh.connect(t.regionBelow(i).eUp.Sym,i.eUp.Lnext)))return null;t.fixUpperEdge(e,i,A),i=t.regionAbove(i)}return i},t.topRightRegion=function(e){var i=e.eUp.Dst;do{e=t.regionAbove(e)}while(e.eUp.Dst===i);return e},t.addRegionBelow=function(t,e,i){var A=new bi;return A.eUp=i,A.nodeUp=t.dict.insertBefore(e.nodeUp,A),A.fixUpperEdge=!1,A.sentinel=!1,A.dirty=!1,i.activeRegion=A,A},t.isWindingInside=function(t,e){switch(t.windingRule){case ui.ODD:return 0!=(1&e);case ui.NONZERO:return 0!==e;case ui.POSITIVE:return e>0;case ui.NEGATIVE:return e<0;case ui.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},t.computeWinding=function(e,i){i.windingNumber=t.regionAbove(i).windingNumber+i.eUp.winding,i.inside=t.isWindingInside(e,i.windingNumber)},t.finishRegion=function(e,i){var A=i.eUp,n=A.Lface;n.inside=i.inside,n.anEdge=A,t.deleteRegion(e,i)},t.finishLeftRegions=function(e,i,A){for(var n,r=null,o=i,s=i.eUp;o!==A;){if(o.fixUpperEdge=!1,(n=(r=t.regionBelow(o)).eUp).Org!=s.Org){if(!r.fixUpperEdge){t.finishRegion(e,o);break}n=e.mesh.connect(s.Lprev,n.Sym),t.fixUpperEdge(e,r,n)}s.Onext!==n&&(e.mesh.splice(n.Oprev,n),e.mesh.splice(s,n)),t.finishRegion(e,o),s=r.eUp,o=r}return s},t.addRightEdges=function(e,i,A,n,r,o){var s,a,g,l,h=!0;g=A;do{yi(Bi.vertLeq(g.Org,g.Dst)),t.addRegionBelow(e,i,g.Sym),g=g.Onext}while(g!==n);for(null===r&&(r=t.regionBelow(i).eUp.Rprev),a=i,l=r;(g=(s=t.regionBelow(a)).eUp.Sym).Org===l.Org;)g.Onext!==l&&(e.mesh.splice(g.Oprev,g),e.mesh.splice(l.Oprev,g)),s.windingNumber=a.windingNumber-g.winding,s.inside=t.isWindingInside(e,s.windingNumber),a.dirty=!0,!h&&t.checkForRightSplice(e,a)&&(t.addWinding(g,l),t.deleteRegion(e,a),e.mesh.delete(l)),h=!1,a=s,l=g;a.dirty=!0,yi(a.windingNumber-g.winding===s.windingNumber),o&&t.walkDirtyRegions(e,a)},t.spliceMergeVertices=function(t,e,i){t.mesh.splice(e,i)},t.vertexWeights=function(t,e,i){var A=Bi.vertL1dist(e,t),n=Bi.vertL1dist(i,t),r=.5*n/(A+n),o=.5*A/(A+n);t.coords[0]+=r*e.coords[0]+o*i.coords[0],t.coords[1]+=r*e.coords[1]+o*i.coords[1],t.coords[2]+=r*e.coords[2]+o*i.coords[2]},t.getIntersectData=function(e,i,A,n,r,o){i.coords[0]=i.coords[1]=i.coords[2]=0,i.idx=-1,t.vertexWeights(i,A,n),t.vertexWeights(i,r,o)},t.checkForRightSplice=function(e,i){var A=t.regionBelow(i),n=i.eUp,r=A.eUp;if(Bi.vertLeq(n.Org,r.Org)){if(Bi.edgeSign(r.Dst,n.Org,r.Org)>0)return!1;Bi.vertEq(n.Org,r.Org)?n.Org!==r.Org&&(e.pq.delete(n.Org.pqHandle),t.spliceMergeVertices(e,r.Oprev,n)):(e.mesh.splitEdge(r.Sym),e.mesh.splice(n,r.Oprev),i.dirty=A.dirty=!0)}else{if(Bi.edgeSign(n.Dst,r.Org,n.Org)<0)return!1;t.regionAbove(i).dirty=i.dirty=!0,e.mesh.splitEdge(n.Sym),e.mesh.splice(r.Oprev,n)}return!0},t.checkForLeftSplice=function(e,i){var A,n=t.regionBelow(i),r=i.eUp,o=n.eUp;if(yi(!Bi.vertEq(r.Dst,o.Dst)),Bi.vertLeq(r.Dst,o.Dst)){if(Bi.edgeSign(r.Dst,o.Dst,r.Org)<0)return!1;t.regionAbove(i).dirty=i.dirty=!0,A=e.mesh.splitEdge(r),e.mesh.splice(o.Sym,A),A.Lface.inside=i.inside}else{if(Bi.edgeSign(o.Dst,r.Dst,o.Org)>0)return!1;i.dirty=n.dirty=!0,A=e.mesh.splitEdge(o),e.mesh.splice(r.Lnext,o.Sym),A.Rface.inside=i.inside}return!0},t.checkForIntersect=function(e,i){var A,n,r=t.regionBelow(i),o=i.eUp,s=r.eUp,a=o.Org,g=s.Org,l=o.Dst,h=s.Dst,I=new Di;if(yi(!Bi.vertEq(h,l)),yi(Bi.edgeSign(l,e.event,a)<=0),yi(Bi.edgeSign(h,e.event,g)>=0),yi(a!==e.event&&g!==e.event),yi(!i.fixUpperEdge&&!r.fixUpperEdge),a===g)return!1;if(Math.min(a.t,l.t)>Math.max(g.t,h.t))return!1;if(Bi.vertLeq(a,g)){if(Bi.edgeSign(h,a,g)>0)return!1}else if(Bi.edgeSign(l,g,a)<0)return!1;return t.debugEvent(e),Bi.intersect(l,a,h,g,I),yi(Math.min(a.t,l.t)<=I.t),yi(I.t<=Math.max(g.t,h.t)),yi(Math.min(h.s,l.s)<=I.s),yi(I.s<=Math.max(g.s,a.s)),Bi.vertLeq(I,e.event)&&(I.s=e.event.s,I.t=e.event.t),A=Bi.vertLeq(a,g)?a:g,Bi.vertLeq(A,I)&&(I.s=A.s,I.t=A.t),Bi.vertEq(I,a)||Bi.vertEq(I,g)?(t.checkForRightSplice(e,i),!1):!Bi.vertEq(l,e.event)&&Bi.edgeSign(l,e.event,I)>=0||!Bi.vertEq(h,e.event)&&Bi.edgeSign(h,e.event,I)<=0?h===e.event?(e.mesh.splitEdge(o.Sym),e.mesh.splice(s.Sym,o),i=t.topLeftRegion(e,i),o=t.regionBelow(i).eUp,t.finishLeftRegions(e,t.regionBelow(i),r),t.addRightEdges(e,i,o.Oprev,o,o,!0),!0):l===e.event?(e.mesh.splitEdge(s.Sym),e.mesh.splice(o.Lnext,s.Oprev),r=i,i=t.topRightRegion(i),n=t.regionBelow(i).eUp.Rprev,r.eUp=s.Oprev,s=t.finishLeftRegions(e,r,null),t.addRightEdges(e,i,s.Onext,o.Rprev,n,!0),!0):(Bi.edgeSign(l,e.event,I)>=0&&(t.regionAbove(i).dirty=i.dirty=!0,e.mesh.splitEdge(o.Sym),o.Org.s=e.event.s,o.Org.t=e.event.t),Bi.edgeSign(h,e.event,I)<=0&&(i.dirty=r.dirty=!0,e.mesh.splitEdge(s.Sym),s.Org.s=e.event.s,s.Org.t=e.event.t),!1):(e.mesh.splitEdge(o.Sym),e.mesh.splitEdge(s.Sym),e.mesh.splice(s.Oprev,o),o.Org.s=I.s,o.Org.t=I.t,o.Org.pqHandle=e.pq.insert(o.Org),t.getIntersectData(e,o.Org,a,l,g,h),t.regionAbove(i).dirty=i.dirty=r.dirty=!0,!1)},t.walkDirtyRegions=function(e,i){for(var A,n,r=t.regionBelow(i);;){for(;r.dirty;)i=r,r=t.regionBelow(r);if(!i.dirty&&(r=i,null===(i=t.regionAbove(i))||!i.dirty))return;if(i.dirty=!1,A=i.eUp,n=r.eUp,A.Dst!==n.Dst&&t.checkForLeftSplice(e,i)&&(r.fixUpperEdge?(t.deleteRegion(e,r),e.mesh.delete(n),n=(r=t.regionBelow(i)).eUp):i.fixUpperEdge&&(t.deleteRegion(e,i),e.mesh.delete(A),A=(i=t.regionAbove(r)).eUp)),A.Org!==n.Org)if(A.Dst===n.Dst||i.fixUpperEdge||r.fixUpperEdge||A.Dst!==e.event&&n.Dst!==e.event)t.checkForRightSplice(e,i);else if(t.checkForIntersect(e,i))return;A.Org===n.Org&&A.Dst===n.Dst&&(t.addWinding(n,A),t.deleteRegion(e,i),e.mesh.delete(A),i=t.regionAbove(r))}},t.connectRightVertex=function(e,i,A){var n,r=A.Onext,o=t.regionBelow(i),s=i.eUp,a=o.eUp,g=!1;s.Dst!==a.Dst&&t.checkForIntersect(e,i),Bi.vertEq(s.Org,e.event)&&(e.mesh.splice(r.Oprev,s),i=t.topLeftRegion(e,i),r=t.regionBelow(i).eUp,t.finishLeftRegions(e,t.regionBelow(i),o),g=!0),Bi.vertEq(a.Org,e.event)&&(e.mesh.splice(A,a.Oprev),A=t.finishLeftRegions(e,o,null),g=!0),g?t.addRightEdges(e,i,A.Onext,r,r,!0):(n=Bi.vertLeq(a.Org,s.Org)?a.Oprev:s,n=e.mesh.connect(A.Lprev,n),t.addRightEdges(e,i,n,n.Onext,n.Onext,!1),n.Sym.activeRegion.fixUpperEdge=!0,t.walkDirtyRegions(e,i))},t.connectLeftDegenerate=function(e,i,A){var n,r,o,s,a;return n=i.eUp,Bi.vertEq(n.Org,A)?(yi(!1),void t.spliceMergeVertices(e,n,A.anEdge)):Bi.vertEq(n.Dst,A)?(yi(!1),i=t.topRightRegion(i),r=s=(o=(a=t.regionBelow(i)).eUp.Sym).Onext,a.fixUpperEdge&&(yi(r!==o),t.deleteRegion(e,a),e.mesh.delete(o),o=r.Oprev),e.mesh.splice(A.anEdge,o),Bi.edgeGoesLeft(r)||(r=null),void t.addRightEdges(e,i,o.Onext,s,r,!0)):(e.mesh.splitEdge(n.Sym),i.fixUpperEdge&&(e.mesh.delete(n.Onext),i.fixUpperEdge=!1),e.mesh.splice(A.anEdge,n),void t.sweepEvent(e,A))},t.connectLeftVertex=function(e,i){var A,n,r,o,s,a,g=new bi;if(g.eUp=i.anEdge.Sym,A=e.dict.search(g).key,n=t.regionBelow(A))if(o=A.eUp,s=n.eUp,0!==Bi.edgeSign(o.Dst,i,o.Org))if(r=Bi.vertLeq(s.Dst,o.Dst)?A:n,A.inside||r.fixUpperEdge){if(r===A)a=e.mesh.connect(i.anEdge.Sym,o.Lnext);else a=e.mesh.connect(s.Dnext,i.anEdge).Sym;r.fixUpperEdge?t.fixUpperEdge(e,r,a):t.computeWinding(e,t.addRegionBelow(e,A,a)),t.sweepEvent(e,i)}else t.addRightEdges(e,A,i.anEdge,i.anEdge,null,!0);else t.connectLeftDegenerate(e,A,i)},t.sweepEvent=function(e,i){e.event=i,t.debugEvent(e);for(var A=i.anEdge;null===A.activeRegion;)if((A=A.Onext)===i.anEdge)return void t.connectLeftVertex(e,i);var n=t.topLeftRegion(e,A.activeRegion);yi(null!==n);var r=t.regionBelow(n),o=r.eUp,s=t.finishLeftRegions(e,r,null);s.Onext===o?t.connectRightVertex(e,n,s):t.addRightEdges(e,n,s.Onext,o,o,!0)},t.addSentinel=function(t,e,i,A){var n=new bi,r=t.mesh.makeEdge();r.Org.s=i,r.Org.t=A,r.Dst.s=e,r.Dst.t=A,t.event=r.Dst,n.eUp=r,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=t.dict.insert(n)},t.initEdgeDict=function(e){e.dict=new Ri(e,t.edgeLeq);var i=e.bmax[0]-e.bmin[0],A=e.bmax[1]-e.bmin[1],n=e.bmin[0]-i,r=e.bmax[0]+i,o=e.bmin[1]-A,s=e.bmax[1]+A;t.addSentinel(e,n,r,o),t.addSentinel(e,n,r,s)},t.doneEdgeDict=function(e){for(var i,A=0;null!==(i=e.dict.min().key);)i.sentinel||(yi(i.fixUpperEdge),yi(1==++A)),yi(0===i.windingNumber),t.deleteRegion(e,i)},t.removeDegenerateEdges=function(e){var i,A,n,r=e.mesh.eHead;for(i=r.next;i!==r;i=A)A=i.next,n=i.Lnext,Bi.vertEq(i.Org,i.Dst)&&i.Lnext.Lnext!==i&&(t.spliceMergeVertices(e,n,i),e.mesh.delete(i),n=(i=n).Lnext),n.Lnext===i&&(n!==i&&(n!==A&&n!==A.Sym||(A=A.next),e.mesh.delete(n)),i!==A&&i!==A.Sym||(A=A.next),e.mesh.delete(i))},t.initPriorityQ=function(t){var e,i,A,n=0;for(i=(A=t.mesh.vHead).next;i!==A;i=i.next)n++;for(n+=8,e=t.pq=new wi(n,Bi.vertLeq),i=(A=t.mesh.vHead).next;i!==A;i=i.next)i.pqHandle=e.insert(i);return i===A&&(e.init(),!0)},t.donePriorityQ=function(t){t.pq=null},t.removeDegenerateFaces=function(e,i){var A,n,r;for(A=i.fHead.next;A!==i.fHead;A=n)n=A.next,yi((r=A.anEdge).Lnext!==r),r.Lnext.Lnext===r&&(t.addWinding(r.Onext,r),e.mesh.delete(r));return!0},t.computeInterior=function(e,i){var A,n;if(void 0===i&&(i=!0),t.removeDegenerateEdges(e),!t.initPriorityQ(e))return!1;for(t.initEdgeDict(e);null!==(A=e.pq.extractMin());){for(;null!==(n=e.pq.min())&&Bi.vertEq(n,A);)n=e.pq.extractMin(),t.spliceMergeVertices(e,A.anEdge,n.anEdge);t.sweepEvent(e,A)}return e.event=e.dict.min().key.eUp.Org,t.debugEvent(e),t.doneEdgeDict(e),t.donePriorityQ(e),!!t.removeDegenerateFaces(e,e.mesh)&&(i&&e.mesh.check(),!0)},t}(),Ti=function(){function t(){this.mesh=new vi,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=ui.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return t.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},t.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},t.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},t.prototype.computeNormal_=function(t){var e,i,A,n,r,o,s=[0,0,0],a=[0,0,0],g=[0,0,0],l=[0,0,0],h=[0,0,0],I=[null,null,null],c=[null,null,null],p=this.mesh.vHead;e=p.next;for(var C=0;C<3;++C)n=e.coords[C],a[C]=n,c[C]=e,s[C]=n,I[C]=e;for(e=p.next;e!==p;e=e.next)for(var u=0;u<3;++u)(n=e.coords[u])<a[u]&&(a[u]=n,c[u]=e),n>s[u]&&(s[u]=n,I[u]=e);var d=0;if(s[1]-a[1]>s[0]-a[0]&&(d=1),s[2]-a[2]>s[d]-a[d]&&(d=2),a[d]>=s[d])return t[0]=0,t[1]=0,void(t[2]=1);for(o=0,i=c[d],A=I[d],g[0]=i.coords[0]-A.coords[0],g[1]=i.coords[1]-A.coords[1],g[2]=i.coords[2]-A.coords[2],e=p.next;e!==p;e=e.next)l[0]=e.coords[0]-A.coords[0],l[1]=e.coords[1]-A.coords[1],l[2]=e.coords[2]-A.coords[2],h[0]=g[1]*l[2]-g[2]*l[1],h[1]=g[2]*l[0]-g[0]*l[2],h[2]=g[0]*l[1]-g[1]*l[0],(r=h[0]*h[0]+h[1]*h[1]+h[2]*h[2])>o&&(o=r,t[0]=h[0],t[1]=h[1],t[2]=h[2]);o<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(g)]=1)},t.prototype.checkOrientation_=function(){for(var t,e,i=this.mesh.fHead,A=this.mesh.vHead,n=0,r=i.next;r!==i;r=r.next)if(!((e=r.anEdge).winding<=0))do{n+=(e.Org.s-e.Dst.s)*(e.Org.t+e.Dst.t),e=e.Lnext}while(e!==r.anEdge);if(n<0){for(t=A.next;t!==A;t=t.next)t.t=-t.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},t.prototype.projectPolygon_=function(){var t,e,i=this.mesh.vHead,A=[0,0,0],n=!1;A[0]=this.normal[0],A[1]=this.normal[1],A[2]=this.normal[2],A[0]||A[1]||A[2]||(this.computeNormal_(A),n=!0),t=this.sUnit,e=this.tUnit;var r=this.longAxis_(A);t[r]=0,t[(r+1)%3]=1,t[(r+2)%3]=0,e[r]=0,e[(r+1)%3]=0,e[(r+2)%3]=A[r]>0?1:-1;for(var o=i.next;o!==i;o=o.next)o.s=this.dot_(o.coords,t),o.t=this.dot_(o.coords,e);n&&this.checkOrientation_();for(var s=!0,a=i.next;a!==i;a=a.next)s?(this.bmin[0]=this.bmax[0]=a.s,this.bmin[1]=this.bmax[1]=a.t,s=!1):(a.s<this.bmin[0]&&(this.bmin[0]=a.s),a.s>this.bmax[0]&&(this.bmax[0]=a.s),a.t<this.bmin[1]&&(this.bmin[1]=a.t),a.t>this.bmax[1]&&(this.bmax[1]=a.t))},t.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},t.prototype.tessellateMonoRegion_=function(t,e){var i,A;if((i=e.anEdge).Lnext===i||i.Lnext.Lnext===i)throw"Mono region invalid";for(;Bi.vertLeq(i.Dst,i.Org);i=i.Lprev);for(;Bi.vertLeq(i.Org,i.Dst);i=i.Lnext);A=i.Lprev;for(;i.Lnext!==A;)if(Bi.vertLeq(i.Dst,A.Org)){for(;A.Lnext!==i&&(Bi.edgeGoesLeft(A.Lnext)||Bi.edgeSign(A.Org,A.Dst,A.Lnext.Dst)<=0);)A=t.connect(A.Lnext,A).Sym;A=A.Lprev}else{for(;A.Lnext!==i&&(Bi.edgeGoesRight(i.Lprev)||Bi.edgeSign(i.Dst,i.Org,i.Lprev.Org)>=0);)i=t.connect(i,i.Lprev).Sym;i=i.Lnext}if(A.Lnext===i)throw"Mono region invalid";for(;A.Lnext.Lnext!==i;)A=t.connect(A.Lnext,A).Sym;return!0},t.prototype.tessellateInterior_=function(t){for(var e,i=t.fHead.next;i!==t.fHead;i=e)if(e=i.next,i.inside&&!this.tessellateMonoRegion_(t,i))return!1;return!0},t.prototype.discardExterior_=function(t){for(var e,i=t.fHead.next;i!==t.fHead;i=e)e=i.next,i.inside||t.zapFace(i)},t.prototype.setWindingNumber_=function(t,e,i){for(var A,n=t.eHead.next;n!==t.eHead;n=A)A=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?e:-e:i?t.delete(n):n.winding=0},t.prototype.getNeighbourFace_=function(t){return t.Rface&&t.Rface.inside?t.Rface.n:-1},t.prototype.outputPolymesh_=function(t,e,i,A){var n,r,o=0,s=0;i>3&&t.mergeConvexFaces(i);for(var a=t.vHead.next;a!==t.vHead;a=a.next)a.n=-1;for(var g=t.fHead.next;g!==t.fHead;g=g.next)if(g.n=-1,g.inside){n=g.anEdge,r=0;do{-1===(a=n.Org).n&&(a.n=s,s++),r++,n=n.Lnext}while(n!==g.anEdge);if(r>i)throw"Face vertex greater that support polygon";g.n=o,++o}this.elementCount=o,e===di.CONNECTED_POLYGONS&&(o*=2),this.elements=[],this.elements.length=o*i,this.vertexCount=s,this.vertices=[],this.vertices.length=s*A,this.vertexIndices=[],this.vertexIndices.length=s;for(a=t.vHead.next;a!==t.vHead;a=a.next)if(-1!==a.n){var l=a.n*A;this.vertices[l+0]=a.coords[0],this.vertices[l+1]=a.coords[1],A>2&&(this.vertices[l+2]=a.coords[2]),this.vertexIndices[a.n]=a.idx}var h=0;for(g=t.fHead.next;g!==t.fHead;g=g.next)if(g.inside){n=g.anEdge,r=0;do{a=n.Org;this.elements[h++]=a.n,r++,n=n.Lnext}while(n!==g.anEdge);for(var I=r;I<i;++I)this.elements[h++]=-1;if(e===di.CONNECTED_POLYGONS){n=g.anEdge;do{this.elements[h++]=this.getNeighbourFace_(n),n=n.Lnext}while(n!==g.anEdge);for(var c=r;c<i;++c)this.elements[h++]=-1}}},t.prototype.outputContours_=function(t,e){var i,A,n=0,r=0;this.vertexCount=0,this.elementCount=0;for(var o=t.fHead.next;o!==t.fHead;o=o.next)if(o.inside){A=i=o.anEdge;do{this.vertexCount++,i=i.Lnext}while(i!==A);this.elementCount++}this.elements=[],this.elements.length=2*this.elementCount,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var s=0,a=0,g=0;n=0;for(o=t.fHead.next;o!==t.fHead;o=o.next)if(o.inside){r=0,A=i=o.anEdge;do{this.vertices[s++]=i.Org.coords[0],this.vertices[s++]=i.Org.coords[1],e>2&&(this.vertices[s++]=i.Org.coords[2]),this.vertexIndices[a++]=i.Org.idx,r++,i=i.Lnext}while(i!==A);this.elements[g++]=n,this.elements[g++]=r,n+=r}},t.prototype.addContour=function(t,e){null===this.mesh&&(this.mesh=new vi),t<2&&(t=2),t>3&&(t=3);for(var i=null,A=0;A<e.length;A+=t)null===i?(i=this.mesh.makeEdge(),this.mesh.splice(i,i.Sym)):(this.mesh.splitEdge(i),i=i.Lnext),i.Org.coords[0]=e[A+0],i.Org.coords[1]=e[A+1],i.Org.coords[2]=t>2?e[A+2]:0,i.Org.idx=this.vertexIndexCounter++,i.winding=1,i.Sym.winding=-1},t.prototype.tesselate=function(t,e,i,A,n,r){if(void 0===t&&(t=ui.ODD),void 0===e&&(e=di.POLYGONS),void 0===r&&(r=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,n&&(this.normal[0]=n[0],this.normal[1]=n[1],this.normal[2]=n[2]),this.windingRule=t,A<2&&(A=2),A>3&&(A=3),!this.mesh)return!1;this.projectPolygon_(),Fi.computeInterior(this,r);var o=this.mesh;return e===di.BOUNDARY_CONTOURS?this.setWindingNumber_(o,1,!0):this.tessellateInterior_(o),r&&o.check(),e===di.BOUNDARY_CONTOURS?this.outputContours_(o,A):this.outputPolymesh_(o,e,i,A),!0},t}();function Oi(t){var e=t.windingRule,i=void 0===e?ui.ODD:e,A=t.elementType,n=void 0===A?di.POLYGONS:A,r=t.polySize,o=void 0===r?3:r,s=t.vertexSize,a=void 0===s?2:s,g=t.normal,l=void 0===g?[0,0,1]:g,h=t.contours,I=void 0===h?[]:h,c=t.strict,p=void 0===c||c,C=t.debug,u=void 0!==C&&C;if(!I&&p)throw new Error("Contours can't be empty");if(I){for(var d=new Ti,_=0;_<I.length;_++)d.addContour(a||2,I[_]);return d.tesselate(i,n,o,a,l,p),{vertices:d.vertices,vertexIndices:d.vertexIndices,vertexCount:d.vertexCount,elements:d.elements,elementCount:d.elementCount,mesh:u?d.mesh:void 0}}}ui.ODD,ui.NONZERO,ui.POSITIVE,ui.NEGATIVE,ui.ABS_GEQ_TWO,di.POLYGONS,di.CONNECTED_POLYGONS,di.BOUNDARY_CONTOURS;var Mi,Pi,Li,Ui=(Mi="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,function(t){var e,i,A;t=t||{},e||(e=void 0!==t?t:{}),e.ready=new Promise((function(t,e){i=t,A=e}));var n,r,o,s,a,g,l,h,I,c=e;function p(t,e,i){if(!e||0>e)throw"Size should be a greater 0";if(!t)throw"Invalid pointer!";return(e=new(i=i||Uint8Array)(c.HEAP8.buffer,t,e)).F=t,e.I=function(){c._free(t)},e}var C=c.Tess=function(){if(!n){var t=c.cwrap;n=t("tessNewTess","number",["number"]),r=t("tessDeleteTess",null,["number"]),o=t("tessAddContour","number",["number","number","number","number","number"]),s=t("tessTesselate","number","number number number number number number".split(" ")),a=t("tessGetVertexCount","number",["number"]),g=t("tessGetVertices","number",["number"]),l=t("tessGetElementCount","number",["number"]),h=t("tessGetElements","number",["number"]),I=t("tessGetVertexIndices","number",["number"])}if(this.F=n(0),this.G=[],!this.F)throw"Unknown error, tesselator wasn't init!"};Object.assign(C.prototype,{dispose:function(){this.F&&(r(this.F),this.G.forEach((function(t){t.I&&t.I()})),this.G=[],this.F=0)},addContours:function(t,e){if(!this.F)throw"Tessealtor wasn't be inited!";e=e||2;var i=this.G=[];"number"==typeof t[0]&&(t=[t]);for(var A=0;A<t.length;A++){var n=t[A],r=n.length,s=Float32Array,a=c._malloc(r*s.BYTES_PER_ELEMENT);if(!a)throw"Can't allocate a "+r;(r=p(a,r,s)).set(n,0),i.push(r),o(this.F,e,r.F,e*Float32Array.BYTES_PER_ELEMENT,n.length/e)}},tesselate:function(t){if(0===this.G.length)throw"Contours data is required!";if(t=Object.assign({windingRule:0,elementType:0,polySize:3,vertexSize:2,fillVertexIndices:!1},t||{}),!s(this.F,0|t.windingRule||0,0|t.elementType||0,0|t.polySize||3,0|t.vertexSize||2,0))return null;var e=a(this.F),i=l(this.F),A={elementCount:i,vertexCount:e};return e&&i?(A.vertices=p(g(this.F),e*t.vertexSize,Float32Array),A.elements=p(h(this.F),i*t.polySize,Uint32Array),t.fillVertexIndices&&(A.vertexIndices=p(I(this.F),e,Uint32Array)),A):null}});var u,d={};for(u in e)e.hasOwnProperty(u)&&(d[u]=e[u]);var _="";"undefined"!=typeof document&&document.currentScript&&(_=document.currentScript.src),Mi&&(_=Mi),_=0!==_.indexOf("blob:")?_.substr(0,_.lastIndexOf("/")+1):"";var f=e.printErr||console.warn.bind(console);for(u in d)d.hasOwnProperty(u)&&(e[u]=d[u]);d=null;var E,y=0;e.wasmBinary&&(E=e.wasmBinary),e.noExitRuntime&&e.noExitRuntime,"object"!=typeof WebAssembly&&U("no native wasm support detected");var B,m=!1;function Q(t){var i=e["_"+t];return i||U("Assertion failed: Cannot call unknown function "+t+", make sure it is exported"),i}var D,v,x,S="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function w(t){if(t){for(var e=x,i=t+NaN,A=t;e[A]&&!(A>=i);)++A;if(16<A-t&&e.subarray&&S)t=S.decode(e.subarray(t,A));else{for(i="";t<A;){var n=e[t++];if(128&n){var r=63&e[t++];if(192==(224&n))i+=String.fromCharCode((31&n)<<6|r);else{var o=63&e[t++];65536>(n=224==(240&n)?(15&n)<<12|r<<6|o:(7&n)<<18|r<<12|o<<6|63&e[t++])?i+=String.fromCharCode(n):(n-=65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n))}}else i+=String.fromCharCode(n)}t=i}}else t="";return t}function b(){var t=B.buffer;D=t,e.HEAP8=v=new Int8Array(t),e.HEAP16=new Int16Array(t),e.HEAP32=new Int32Array(t),e.HEAPU8=x=new Uint8Array(t),e.HEAPU16=new Uint16Array(t),e.HEAPU32=new Uint32Array(t),e.HEAPF32=new Float32Array(t),e.HEAPF64=new Float64Array(t)}var N,R=[],F=[],T=[],O=[];function M(){var t=e.preRun.shift();R.unshift(t)}var P=0,L=null;function U(t){throw e.onAbort&&e.onAbort(t),f(t),m=!0,t=new WebAssembly.RuntimeError("abort("+t+"). Build with -s ASSERTIONS=1 for more info."),A(t),t}function k(t){return String.prototype.startsWith?t.startsWith("data:application/octet-stream;base64,"):0===t.indexOf("data:application/octet-stream;base64,")}e.preloadedImages={},e.preloadedAudios={};var V="data:application/octet-stream;base64,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AAsgAyAHTA0AIAUgAyAHa0ECdBAcIANBAnRqIABBf3NBAnRqIQULIAEoAgAiASALRw0ADAILAAsDQAJAIAEtABVFDQBBACEEIAEoAggiAiEGA0AgBSAGKAIQKAIkNgIAIAQiAEEBaiEEIAVBBGohBSAGKAIMIgYgAkcNAAsgAyAETA0AIAUgAyAEa0ECdBAcIANBAnRqIABBf3NBAnRqIQULIAEoAgAiASALRw0ACwsPC0HhFUGhFUHyBEH3FRAAAAsgAEEBNgIEC9gBAQJ/IwBBMGsiASQAIAEgACkCiAE3AyggASAAKQKAATcDICABIAApAng3AxggASAAKQJwNwMQIAEgACkCaDcDCCAAKAJMEBggACgCACICBEAgAUEIaiACEC0gAEEANgIACyAAKAJUIgIEQCABKAIUIAIgASgCEBEBACAAQQA2AlQLIAAoAlgiAgRAIAEoAhQgAiABKAIQEQEAIABBADYCWAsgACgCYCICBEAgASgCFCACIAEoAhARAQAgAEEANgJgCyABKAIUIAAgASgCEBEBACABQTBqJAAL/wICA38BfiAAQYgWIAAbIgIoAgAiAEUEQCACQYgWKAIAIgA2AgALIAIoAgRFBEAgAkGMFigCADYCBAsgAigCCEUEQCACQZAWKAIANgIICyACKAIMQawCIAARAAAiAUUEQEEADwsgASACKQIANwJoIAEgAikCIDcCiAEgASACKQIYNwKAASABIAIpAhAiBDcCeCABIAIpAgg3AnAgBKdFBEAgAUGABDYCeAsgASgCfEUEQCABQYAENgJ8CyABKAKAAUUEQCABQYACNgKAAQsgASgChAFFBEAgAUGABDYChAELIAEoAogBIgBFBEAgAUGAAjYCiAFBgAIhAAsgAUHoAGohAyABQgA3AiwgAUEANgIQIAFCADcCCCABQgA3AjQgAUEANgI8QRAhAgJAIABBEE4EQEGAICECIABBgSBIDQELIAEgAjYCiAEgAiEACyADQdkVQRwgABAZIQAgAUIANwJQIAFCADcCACABIAA2AkwgAUIANwJYIAFCADcCYCABCwYAIAEQFQsIACABIAIQJQsGACABEBYLvAUCBX8CfQJAAkAgASgCCCIBKAIMIgIgAUYNACACKAIMIAFGDQADQAJAIAEoAgQoAhAiAyoCGCIHIAEoAhAiAioCGCIIXUUE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cSggdSwgdiApICYmIFRyYW5zTGVxKCB2LCB3ICkAdGVzdHJhbnNFdmFsAHRlc3RyYW5zU2lnbgBNZXNoIEVkZ2VzAE1lc2ggVmVydGljZXMATWVzaCBGYWNlcwBmLT5wcmV2ID09IGZQcmV2AHNyYy9tZXNoLmMAdGVzc01lc2hDaGVja01lc2gAZS0+U3ltICE9IGUAZS0+U3ltLT5TeW0gPT0gZQBlLT5MbmV4dC0+T25leHQtPlN5bSA9PSBlAGUtPk9uZXh0LT5TeW0tPkxuZXh0ID09IGUAZS0+TGZhY2UgPT0gZgBmLT5wcmV2ID09IGZQcmV2ICYmIGYtPmFuRWRnZSA9PSBOVUxMAHYtPnByZXYgPT0gdlByZXYAZS0+T3JnID09IHYAdi0+cHJldiA9PSB2UHJldiAmJiB2LT5hbkVkZ2UgPT0gTlVMTABlLT5TeW0tPm5leHQgPT0gZVByZXYtPlN5bQBlLT5PcmcgIT0gTlVMTABlLT5Ec3QgIT0gTlVMTABlLT5TeW0tPm5leHQgPT0gZVByZXYtPlN5bSAmJiBlLT5TeW0gPT0gJm1lc2gtPmVIZWFkU3ltICYmIGUtPlN5bS0+U3ltID09IGUgJiYgZS0+T3JnID09IE5VTEwgJiYgZS0+RHN0ID09IE5VTEwgJiYgZS0+TGZhY2UgPT0gTlVMTCAmJiBlLT5SZmFjZSA9PSBOVUxMAGZyZWUgIT0gSU5WX0hBTkRMRQBzcmMvcHJpb3JpdHlxLmMAcHFIZWFwSW5zZXJ0AGhDdXJyID49IDEgJiYgaEN1cnIgPD0gcHEtPm1heCAmJiBoW2hDdXJyXS5rZXkgIT0gTlVMTABwcUhlYXBEZWxldGUAcHEgIT0gTlVMTABwcURlbGV0ZVByaW9yaXR5UQBMRVEoICoqKGkrMSksICoqaSApAHBxSW5pdABjdXJyICE9IElOVl9IQU5ETEUAcHFJbnNlcnQAY3VyciA8IHBxLT5tYXggJiYgcHEtPmtleXNbY3Vycl0gIT0gTlVMTABwcURlbGV0ZQBjaGlsZCA8PSBwcS0+bWF4AEZsb2F0RG93bgBUT0xFUkFOQ0VfTk9OWkVSTwBzcmMvc3dlZXAuYwBDb25uZWN0TGVmdERlZ2VuZXJhdGUAcmVnLT5maXhVcHBlckVkZ2UARml4VXBwZXJFZGdlAEZBTFNFAElzV2luZGluZ0luc2lkZQByZWctPmVVcC0+d2luZGluZyA9PSAwAERlbGV0ZVJlZ2lvbgAhIFZlcnRFcSggZHN0TG8sIGRzdFVwICkAQ2hlY2tGb3JJbnRlcnNlY3QARWRnZVNpZ24oIGRzdFVwLCB0ZXNzLT5ldmVudCwgb3JnVXAgKSA8PSAwAEVkZ2VTaWduKCBkc3RMbywgdGVzcy0+ZXZlbnQsIG9yZ0xvICkgPj0gMABvcmdVcCAhPSB0ZXNzLT5ldmVudCAmJiBvcmdMbyAhPSB0ZXNzLT5ldmVudAAhIHJlZ1VwLT5maXhVcHBlckVkZ2UgJiYgISByZWdMby0+Zml4VXBwZXJFZGdlAE1JTiggb3JnVXAtPnQsIGRzdFVwLT50ICkgPD0gaXNlY3QudABpc2VjdC50IDw9IE1BWCggb3JnTG8tPnQsIGRzdExvLT50ICkATUlOKCBkc3RMby0+cywgZHN0VXAtPnMgKSA8PSBpc2VjdC5zAGlzZWN0LnMgPD0gTUFYKCBvcmdMby0+cywgb3JnVXAtPnMgKQAhIFZlcnRFcSggZVVwLT5Ec3QsIGVMby0+RHN0ICkAQ2hlY2tGb3JMZWZ0U3BsaWNlAFZlcnRMZXEoIGUtPk9yZywgZS0+RHN0ICkAQWRkUmlnaHRFZGdlcwByZWdQcmV2LT53aW5kaW5nTnVtYmVyIC0gZS0+d2luZGluZyA9PSByZWctPndpbmRpbmdOdW1iZXIARG9uZUVkZ2VEaWN0ACsrZml4ZWRFZGdlcyA9PSAxAHJlZy0+d2luZGluZ051bWJlciA9PSAwAGUtPkxuZXh0ICE9IGUAUmVtb3ZlRGVnZW5lcmF0ZUZhY2VzAHVwLT5MbmV4dCAhPSB1cCAmJiB1cC0+TG5leHQtPkxuZXh0ICE9IHVwAHNyYy90ZXNzLmMAdGVzc01lc2hUZXNzZWxsYXRlTW9ub1JlZ2lvbgBsby0+TG5leHQgIT0gdXAAUmVnaW9ucwBmYWNlVmVydHMgPD0gcG9seVNpemUAT3V0cHV0UG9seW1lc2gAQYgWCwkMAAAADQAAAA4AQbAWCwNADVA=";if(!k(V)){var G=V;V=e.locateFile?e.locateFile(G,_):_+G}function Y(){try{if(E)return new Uint8Array(E);var t=V;if(k(t))try{var e=z(t.slice(37)),i=new Uint8Array(e.length);for(t=0;t<e.length;++t)i[t]=e.charCodeAt(t);var A=i}catch(t){throw Error("Converting base64 string to bytes failed.")}else A=void 0;if(A)return A;throw"both async and sync fetching of the wasm failed"}catch(t){U(t)}}function K(t){for(;0<t.length;){var i=t.shift();if("function"==typeof i)i(e);else{var A=i.J;"number"==typeof A?void 0===i.H?N.get(A)():N.get(A)(i.H):A(void 0===i.H?null:i.H)}}}var z="function"==typeof atob?atob:function(t){var e="",i=0;t=t.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(t.charAt(i++)),n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(t.charAt(i++)),r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(t.charAt(i++)),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(t.charAt(i++));A=A<<2|n>>4,n=(15&n)<<4|r>>2;var s=(3&r)<<6|o;e+=String.fromCharCode(A),64!==r&&(e+=String.fromCharCode(n)),64!==o&&(e+=String.fromCharCode(s))}while(i<t.length);return e};F.push({J:function(){H()}});var J={a:function(t,e,i,A){U("Assertion failed: "+w(t)+", at: "+[e?w(e):"unknown filename",i,A?w(A):"unknown function"])},d:function(t,e){throw Z(t,e||1),"longjmp"},k:function(t,e,i){x.copyWithin(t,e,e+i)},l:function(t){t>>>=0;var e=x.length;if(2147483648<t)return!1;for(var i=1;4>=i;i*=2){var A=e*(1+.2/i);A=Math.min(A,t+100663296),0<(A=Math.max(16777216,t,A))%65536&&(A+=65536-A%65536);t:{try{B.grow(Math.min(2147483648,A)-D.byteLength+65535>>>16),b();var n=1;break t}catch(t){}n=void 0}if(n)return!0}return!1},c:function(){return 0|y},j:function(t,e){var i=j();try{return N.get(t)(e)}catch(t){if(X(i),t!==t+0&&"longjmp"!==t)throw t;Z(1,0)}},g:function(t,e,i){var A=j();try{return N.get(t)(e,i)}catch(t){if(X(A),t!==t+0&&"longjmp"!==t)throw t;Z(1,0)}},f:function(t,e){var i=j();try{N.get(t)(e)}catch(t){if(X(i),t!==t+0&&"longjmp"!==t)throw t;Z(1,0)}},e:function(t,e,i){var A=j();try{N.get(t)(e,i)}catch(t){if(X(A),t!==t+0&&"longjmp"!==t)throw t;Z(1,0)}},h:function(t,e,i,A){var n=j();try{N.get(t)(e,i,A)}catch(t){if(X(n),t!==t+0&&"longjmp"!==t)throw t;Z(1,0)}},i:function(t,e,i,A,n,r){var o=j();try{N.get(t)(e,i,A,n,r)}catch(t){if(X(o),t!==t+0&&"longjmp"!==t)throw t;Z(1,0)}},b:function(t){y=0|t}};!function(){function t(t){e.asm=t.exports,B=e.asm.m,b(),N=e.asm.n,P--,e.monitorRunDependencies&&e.monitorRunDependencies(P),0==P&&L&&(t=L,L=null,t())}function i(e){t(e.instance)}function n(t){return(E||"function"!=typeof fetch?Promise.resolve().then(Y):fetch(V,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+V+"'";return t.arrayBuffer()})).catch((function(){return Y()}))).then((function(t){return WebAssembly.instantiate(t,r)})).then(t,(function(t){f("failed to asynchronously prepare wasm: "+t),U(t)}))}var r={a:J};if(P++,e.monitorRunDependencies&&e.monitorRunDependencies(P),e.instantiateWasm)try{return e.instantiateWasm(r,t)}catch(t){return f("Module.instantiateWasm callback failed with error: "+t),!1}(E||"function"!=typeof WebAssembly.instantiateStreaming||k(V)||"function"!=typeof fetch?n(i):fetch(V,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,r).then(i,(function(t){return f("wasm streaming compile failed: "+t),f("falling back to ArrayBuffer instantiation"),n(i)}))}))).catch(A)}();var H=e.___wasm_call_ctors=function(){return(H=e.___wasm_call_ctors=e.asm.o).apply(null,arguments)};e._malloc=function(){return(e._malloc=e.asm.p).apply(null,arguments)},e._free=function(){return(e._free=e.asm.q).apply(null,arguments)},e._tessNewTess=function(){return(e._tessNewTess=e.asm.r).apply(null,arguments)},e._tessDeleteTess=function(){return(e._tessDeleteTess=e.asm.s).apply(null,arguments)},e._tessAddContour=function(){return(e._tessAddContour=e.asm.t).apply(null,arguments)},e._tessTesselate=function(){return(e._tessTesselate=e.asm.u).apply(null,arguments)},e._tessGetVertexCount=function(){return(e._tessGetVertexCount=e.asm.v).apply(null,arguments)},e._tessGetVertices=function(){return(e._tessGetVertices=e.asm.w).apply(null,arguments)},e._tessGetVertexIndices=function(){return(e._tessGetVertexIndices=e.asm.x).apply(null,arguments)},e._tessGetElementCount=function(){return(e._tessGetElementCount=e.asm.y).apply(null,arguments)},e._tessGetElements=function(){return(e._tessGetElements=e.asm.z).apply(null,arguments)};var q,j=e.stackSave=function(){return(j=e.stackSave=e.asm.A).apply(null,arguments)},X=e.stackRestore=function(){return(X=e.stackRestore=e.asm.B).apply(null,arguments)},W=e.stackAlloc=function(){return(W=e.stackAlloc=e.asm.C).apply(null,arguments)},Z=e._setThrew=function(){return(Z=e._setThrew=e.asm.D).apply(null,arguments)};function $(){function t(){if(!q&&(q=!0,e.calledRun=!0,!m)){if(K(F),K(T),i(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;){var t=e.postRun.shift();O.unshift(t)}K(O)}}if(!(0<P)){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)M();K(R),0<P||(e.setStatus?(e.setStatus("Running..."),setTimeout((function(){setTimeout((function(){e.setStatus("")}),1),t()}),1)):t())}}if(e.cwrap=function(t,e,i,A){var n=(i=i||[]).every((function(t){return"number"===t}));return"string"!==e&&n&&!A?Q(t):function(){return function(t,e,i,A){var n,r={string:function(t){var e=0;if(null!=t&&0!==t){var i=1+(t.length<<2),A=e=W(i),n=x;if(0<i){i=A+i-1;for(var r=0;r<t.length;++r){var o=t.charCodeAt(r);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&t.charCodeAt(++r)),127>=o){if(A>=i)break;n[A++]=o}else{if(2047>=o){if(A+1>=i)break;n[A++]=192|o>>6}else{if(65535>=o){if(A+2>=i)break;n[A++]=224|o>>12}else{if(A+3>=i)break;n[A++]=240|o>>18,n[A++]=128|o>>12&63}n[A++]=128|o>>6&63}n[A++]=128|63&o}}n[A]=0}}return e},array:function(t){var e=W(t.length);return v.set(t,e),e}},o=Q(t),s=[];if(t=0,A)for(var a=0;a<A.length;a++){var g=r[i[a]];g?(0===t&&(t=j()),s[a]=g(A[a])):s[a]=A[a]}return i=o.apply(null,s),n=i,i="string"===e?w(n):"boolean"===e?!!n:n,0!==t&&X(t),i}(t,e,i,arguments)}},L=function t(){q||$(),q||(L=t)},e.run=$,e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);0<e.preInit.length;)e.preInit.pop()();return $(),t.ready}),ki=function(){function t(){this.name="tessWasm",this.status="pending",this.module=null}return Object.defineProperty(t,"instance",{get:function(){return this._instance||(this._instance=new t)},enumerable:!1,configurable:!0}),t.prototype.tesselate=function(t){try{var e=this._process=new this.module;return e.addContours(t.contours),e.tesselate(t)}catch(t){throw this.status="error",t}},t.prototype.dispose=function(){this._process&&(this._process.dispose(),this._process=null)},t.prototype.init=function(){var t=this;return this.module?Promise.resolve():self.WebAssembly?Ui().then((function(e){var i=e.Tess;t.module=i,t.status="done"}),(function(e){t.status="error",console.warn("[Tess Wasm] Error while spawn TessWasm",e)})):(console.warn("[Tess Wasm] Wasm not supported"),Promise.reject("[Tess Wasm] Wasm not supported"))},t}(),Vi=function(){function t(){}return t.tesselate=function(t){if("pending"===ki.instance.status)return console.debug("[GraphicsFactoryFills] WASM Tess not loaded, JS will used."),Oi(t);try{return ki.instance.tesselate(t)}catch(e){return console.warn("[GraphicsFactoryFills] Tess2Wasm crash, downgrade to JS",e.message,t),Oi(t)}},t.dispose=function(){ki.instance.dispose()},t}(),Gi=window.SHAPE_INFO={total_time:0,tess_time:0,multy_contours:0,single_contours:0},Yi=1e3,Ki=((Pi={})[Ai.data_type]=function(e,n){var r=_i.getMaterialForGradient(e);if(n.material=r,n.style.image=fi.getTextureForGradient(e),n.style.uvMatrix=e.getUVMatrix(),e.type==t.GradientType.LINEAR)r.getTextureAt(0).mappingMode=i.MappingMode.LINEAR;else if(e.type==t.GradientType.RADIAL){(n.style.sampler=new A.ImageSampler).imageRect=e.uvRectangle,r.imageRect=!0,r.getTextureAt(0).mappingMode=i.MappingMode.RADIAL}return n},Pi[ri.data_type]=function(t,e){var i=_i.getMaterialForColor(t);return e.material=i,i.getNumTextures()?(e.style.image=fi.getTextureForColor(t),e.style.uvMatrix=t.getUVMatrix()):e.style=null,e},Pi[ni.data_type]=function(t,e){return e.material=_i.getMaterialForBitmap(!0),e.style.sampler=new A.ImageSampler(t.repeat,t.smooth,t.smooth),e.style.image=t.image,e.style.uvMatrix=t.getUVMatrix(),e},Pi),zi=function(){function t(){}return Object.defineProperty(t,"Tess2Wasm",{get:function(){return ki.instance.module},enumerable:!1,configurable:!0}),t.prepareWasm=function(){"done"!==ki.instance.status&&ki.instance.init()},t.toFixed=function(t){return(t*Yi|0)/Yi},t.nearest=function(t,e,i,A){var n=t-i;n<0&&(n=-n);var r=e-A;return r<0&&(r=-r),n+r<this.EPS},t.draw_pathes=function(t,e){void 0===e&&(e=!1);for(var n,r=t.queued_fill_pathes,o=r.length,s=0;s<o;s++){var a=r[s],g=a.style,l=(n=t.popEmptyFillShape())?n.elements:null,h=l?l.concatenatedBuffer:null,I=this.pathToAttributesBuffer(a,!1,h);if(I&&I.length){l?(l.invalidate(),l._numVertices=I.count):(l=new i.TriangleElements).setPositions(new A.Float2Attributes(I)),l.isDynamic=t._clearCount>0;var c={style:new i.Style,material:null};g.fillStyle.data_type in Ki||console.error("Unknown style:",g.fillStyle.data_type),Ki[g.fillStyle.data_type](g.fillStyle,c),(n=n||ci.getShape(l)).style=c.style,n.material=c.material,n.originalFillStyle=g.fillStyle,t.addShapeInternal(n)}}t.queued_fill_pathes.length=0,e?(t._active_fill_path=null,t._lastFill=null):n&&(t.queued_fill_pathes.push(t._active_fill_path),t._lastFill=n)},t.prepareContours=function(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=1),t.prepare(i);for(var A=t._positions,n=[],r=0;r<A.length;r++){var o=A[r];if(this.nearest(o[0],o[1],o[o.length-2],o[o.length-1])&&(o.pop(),o.pop()),o.length>=6)if(e){for(var s=new Array(o.length),a=0,g=o.length;a<g;a++)s[a]=this.toFixed(o[a]*this.TESS_SCALE);n.push(s)}else n.push(o)}return n},t.runTesselator=function(t,e){void 0===e&&(e=1);var i=this.prepareContours(t,this.USE_TESS_FIX,e);return i.length>0?Gi.multy_contours+=1:Gi.single_contours+=1,0===i.length?null:Vi.tesselate({contours:i,windingRule:0,elementType:0,polySize:3,vertexSize:2})},t.fillBuffer=function(t,e){for(var i=t.elements.length,A=this.USE_TESS_FIX?1/this.TESS_SCALE:1,n=0,r=0,o=0,s=0,a=0,g=0,l=0,h=0;h<i;h+=3)r=A*t.vertices[2*t.elements[h+0]+0],o=A*t.vertices[2*t.elements[h+0]+1],s=A*t.vertices[2*t.elements[h+1]+0],a=A*t.vertices[2*t.elements[h+1]+1],g=A*t.vertices[2*t.elements[h+2]+0],l=A*t.vertices[2*t.elements[h+2]+1],Ei.isClockWiseXY(r,o,s,a,g,l)?(e[n++]=g,e[n++]=l,e[n++]=s,e[n++]=a,e[n++]=r,e[n++]=o):(e[n++]=r,e[n++]=o,e[n++]=s,e[n++]=a,e[n++]=g,e[n++]=l);return e},t.pathToAttributesBuffer=function(t,e,i,n){void 0===i&&(i=null),void 0===n&&(n=1);var r=performance.now(),o=t.verts?t.verts.length:0,s=0,a=this.runTesselator(t,n);a&&a.elements.length>0&&(s=2*a.elements.length,o+=2*a.elements.length);i||(i=new A.AttributesBuffer(2*Float32Array.BYTES_PER_ELEMENT,o/2|0)),i.count=o/2|0;var g=new Float32Array(i.buffer);a&&(this.fillBuffer(a,g),Vi.dispose());for(var l=t.verts.length,h=0;h<l;h++)g[s+h]=t.verts[h];return Gi.total_time+=performance.now()-r,i},t.TESS_SCALE=20,t.USE_TESS_FIX=!0,t.EPS=.001,t}();t.GraphicsPathCommand=void 0,(Li=t.GraphicsPathCommand||(t.GraphicsPathCommand={}))[Li.NO_OP=0]="NO_OP",Li[Li.MOVE_TO=1]="MOVE_TO",Li[Li.LINE_TO=2]="LINE_TO",Li[Li.CURVE_TO=3]="CURVE_TO",Li[Li.BUILD_JOINT=13]="BUILD_JOINT",Li[Li.BUILD_ROUND_JOINT=14]="BUILD_ROUND_JOINT",Li[Li.WIDE_LINE_TO=4]="WIDE_LINE_TO",Li[Li.WIDE_MOVE_TO=5]="WIDE_MOVE_TO",Li[Li.CUBIC_CURVE=6]="CUBIC_CURVE";var Ji=function(){function n(){}return n.draw_pathes=function(t,e){void 0===e&&(e=!1);for(var n,r=t.queued_stroke_pathes,o=r.length,s=0;s<o;s++){var a=r[s],g=a.style;n=t.popEmptyStrokeShape(),a.prepare();var l=this.fillLineElements([a],!1,g.scaleMode,null==n?void 0:n.elements);if(l){l.scaleMode=g.scaleMode,l.half_thickness=g.half_thickness;var h={style:new i.Style,sampler:new A.ImageSampler,material:null};Ki[a.style.fillStyle.data_type](a.style.fillStyle,h),n?(n.material=h.material,n.style=h.style):n=ci.getShape(l,h.material,h.style),t.addShapeInternal(n)}}t.queued_stroke_pathes.length=0,e?(t._active_stroke_path=null,t._lastStroke=null):n&&(t.queued_stroke_pathes.push(t._active_stroke_path),t._lastStroke=n)},n.fillLineElements=function(t,e,n,r){void 0===n&&(n=i.LineScaleMode.NORMAL),void 0===r&&(r=null);for(var o,s=[],a=[],g=0,l=0,h=0,I=0,c=0,p=0,C=0,u=t.length;C<u;C++){var d=t[C];d.prepare();for(var _=d._positions,f=d.stroke,E=n!=i.LineScaleMode.HAIRLINE?f.half_thickness:.5,y=0,B=_.length;y<B;y++){h=(o=_[y])[0],I=o[1];for(var m=2,Q=o.length;m<Q;m+=2){g=o[m+0],l=o[m+1],zi.nearest(g,l,h,I)||(s[c++]=h,s[c++]=I,s[c++]=0,s[c++]=g,s[c++]=l,s[c++]=0,a[p++]=E),h=g,I=l}}}if(0==s.length)return null;var D=r||new i.LineElements(new A.AttributesBuffer);return D.setPositions(s),D.setThickness(a),D},n.getTriangleElements=function(n,r,o){void 0===o&&(o=i.LineScaleMode.NORMAL);var s,a,g,l,h,I=[],c=n.length,p=0,C=0,u=new e.Point,d=new e.Point,_=new e.Point,f=new e.Point,E=new e.Point,y=0,B=0,m=0,Q=0,D=0,v=0,x=0,S=0,w=0,b=0,N=0,R=0,F=0,T=0,O=0,M=0,P=0,L=0,U=0,k=0,V=0,G=0,Y=0,K=0,z=0,J=0,H=0,q=0,j=!0,X=!1,W=!1,Z=0,$=0,tt=0,et=0,it=0,At=0,nt=0,rt=0,ot=[],st=[],at=0,gt=0,lt=0;for(lt=0;lt<c;lt++)for(s=n[lt]._positions,nt=(a=n[lt].stroke).half_thickness,rt=a.half_thickness,i.LineScaleMode.NORMAL,C=0;C<s.length;C++){for(W=!0,(g=s[C])[0]!=g[g.length-2]||g[1]!=g[g.length-1]?W=!1:(d.x=g[g.length-2]-g[g.length-4],d.y=g[g.length-1]-g[g.length-3],d.normalize(),tt=Math.atan2(d.y,d.x)*e.MathConsts.RADIANS_TO_DEGREES),m=g[0],Q=g[1],ot=[],st=[],at=0,gt=0,l=-1*d.y,h=d.x,p=2;p<g.length;p+=2)y=g[p],B=g[p+1],y==m&&B==Q||(u.x=y-m,u.y=B-Q,u.normalize(),($=(Z=Math.atan2(u.y,u.x)*e.MathConsts.RADIANS_TO_DEGREES)-tt)>180&&($-=360),$<-180&&($+=360),tt=Z,_.x=-1*u.y,_.y=u.x,D=m+_.x*nt,v=Q+_.y*rt,x=m-_.x*nt,S=Q-_.y*rt,X=!1,2!=p||W?(et=180-$,$<0&&(et=-180-$),0==$||180==Math.abs($)?X=2==p:Math.abs(et)<5?X=!0:(X=!0,et=-.5*et*e.MathConsts.DEGREES_TO_RADIANS,f.x=u.x*Math.cos(et)+u.y*Math.sin(et),f.y=u.y*Math.cos(et)-u.x*Math.sin(et),f.normalize(),Math.abs($)<=1||Math.abs($)>=359||Math.abs($)>=179&&Math.abs($)<=181?(it=$<0?nt:-nt,At=$<0?rt:-rt):(it=nt/Math.sin(et),At=rt/Math.sin(et)),w=m-f.x*it,b=Q-f.y*At,N=m+f.x*it,R=Q+f.y*At,$>0?(O=m-l*nt,M=Q-h*rt,D=w,v=b,x=F=m-_.x*nt,S=T=Q-_.y*rt):(U=m+l*nt,k=Q+h*rt,x=N,S=R,D=P=m+_.x*nt,v=L=Q+_.y*rt),j=!0,a.jointstyle==si.MITER&&(Math.sqrt((it*it+At*At)/(nt*nt+rt*rt)-1)<=a.miterLimit?(j=!1,x=N,S=R,D=w,v=b):$>0?(F-=u.x*(a.miterLimit*nt),T-=u.y*(a.miterLimit*rt),E.x=-1*h,E.y=l,O-=E.x*(a.miterLimit*nt),M-=E.y*(a.miterLimit*rt)):(P-=u.x*(a.miterLimit*nt),L-=u.y*(a.miterLimit*rt),E.x=-1*h,E.y=l,U-=E.x*(a.miterLimit*nt),k-=E.y*(a.miterLimit*rt))),j&&(ot[at++]=a.jointstyle!=si.ROUND?t.GraphicsPathCommand.BUILD_JOINT:t.GraphicsPathCommand.BUILD_ROUND_JOINT,$>0?(st[gt++]=w,st[gt++]=b,st[gt++]=O,st[gt++]=M,st[gt++]=F,st[gt++]=T):(st[gt++]=U,st[gt++]=k,st[gt++]=N,st[gt++]=R,st[gt++]=P,st[gt++]=L),a.jointstyle==si.ROUND&&(st[gt++]=m-f.x*Math.abs(nt),st[gt++]=Q-f.y*Math.abs(rt),$>0?(st[gt++]=O,st[gt++]=M,st[gt++]=F,st[gt++]=T):(st[gt++]=U,st[gt++]=k,st[gt++]=P,st[gt++]=L))))):X=!0,l=_.x,h=_.y,X&&(ot[at++]=t.GraphicsPathCommand.LINE_TO,st[gt++]=D,st[gt++]=v,st[gt++]=x,st[gt++]=S),m=y,Q=B,p==g.length-2&&(ot[at++]=t.GraphicsPathCommand.NO_OP,W?(st[gt++]=st[0],st[gt++]=st[1],st[gt++]=st[2],st[gt++]=st[3]):(st[gt++]=m+_.x*nt,st[gt++]=Q+_.y*rt,st[gt++]=m-_.x*nt,st[gt++]=Q-_.y*rt)));for(at=0,gt=0,p=0;p<ot.length;p++)ot[p]==t.GraphicsPathCommand.LINE_TO?(V=st[gt++],G=st[gt++],Y=st[gt++],K=st[gt++],z=st[gt],J=st[gt+1],H=st[gt+2],q=st[gt+3],Ei.addTriangle(V,G,z,J,Y,K,0,I,r),Ei.addTriangle(Y,K,z,J,H,q,0,I,r)):ot[p]>=t.GraphicsPathCommand.BUILD_JOINT&&(z=st[gt++],J=st[gt++],V=st[gt++],G=st[gt++],Y=st[gt++],K=st[gt++],Ei.addTriangle(V,G,Y,K,z,J,0,I,r),ot[p]==t.GraphicsPathCommand.BUILD_ROUND_JOINT&&(H=st[gt++],q=st[gt++],V=st[gt++],G=st[gt++],Y=st[gt++],K=st[gt++],Ei.tesselateCurve(V,G,H,q,Y,K,I,!0)));W||(d.x=g[2]-g[0],d.y=g[3]-g[1],d.normalize(),Ei.createCap(g[0],g[1],st[0],st[1],st[2],st[3],d.x,d.y,a.capstyle,-1,nt,rt,I,r),d.x=g[g.length-2]-g[g.length-4],d.y=g[g.length-1]-g[g.length-3],d.normalize(),Ei.createCap(g[g.length-2],g[g.length-1],st[st.length-4],st[st.length-3],st[st.length-2],st[st.length-1],d.x,d.y,a.capstyle,1,nt,rt,I,r))}if(0!=I.length){var ht=new A.AttributesView(Float32Array,r?3:2);ht.set(I);var It=ht.attributesBuffer.cloneBufferView();ht.dispose();var ct=new i.TriangleElements(It);return ct.setPositions(new A.Float2Attributes(It)),ct}},n}(),Hi=function(){function t(){}return t.EVEN_ODD="evenOdd",t.NON_ZERO="nonZero",t}(),qi=function(){function i(t,e,i){void 0===t&&(t=[]),void 0===e&&(e=[]),void 0===i&&(i=Hi.EVEN_ODD),this.commands=t,this.data=e,this.winding=i,this._orientedBoxBoundsDirty=!0,this._lastPrepareScale=-1,this.morphSource=!1,this._positions=[],this._verts=[],this._lastDirtyID=0,this._dirtyID=-1,this.forceClose=!1}return Object.defineProperty(i.prototype,"verts",{get:function(){return this._verts},set:function(t){this._verts=t},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"dirty",{get:function(){return this._lastDirtyID!==this._dirtyID},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"data_type",{get:function(){return i.data_type},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"style",{get:function(){return this._style},set:function(t){this._style=t,this._dirtyID++},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"fill",{get:function(){return null==this._style?null:this._style.data_type==ii.data_type?this._style:null},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"stroke",{get:function(){return null==this._style?null:this._style.data_type==ai.data_type?this._style:null},enumerable:!1,configurable:!0}),i.prototype.curveTo=function(e,i,A,n){this.commands.push(t.GraphicsPathCommand.CURVE_TO),this.data.push(e,i,A,n),this._dirtyID++},i.prototype.cubicCurveTo=function(e,i,A,n,r,o){this.commands.push(t.GraphicsPathCommand.CUBIC_CURVE),this.data.push(e,i,A,n,r,o),this._dirtyID++},i.prototype.lineTo=function(e,i){this.commands.push(t.GraphicsPathCommand.LINE_TO),this.data.push(e,i),this._dirtyID++},i.prototype.moveTo=function(e,i){this.commands.push(t.GraphicsPathCommand.MOVE_TO),this.data.push(e,i),this._dirtyID++},i.prototype.wideLineTo=function(t,e){},i.prototype.wideMoveTo=function(t,e){},i.prototype.prepare=function(e){if(void 0===e&&(e=1),this._dirtyID!==this._lastDirtyID||e!==this._lastPrepareScale){this._lastPrepareScale=e,this._lastDirtyID=this._dirtyID;var i=this.commands.length;if(1===i&&!this.commands[0])return!1;var A,n,r,o,s,a,g,l,h,I=1/(100*e),c=this.commands,p=this.data,C=this._positions=[],u=0,d=0;c[0]!=t.GraphicsPathCommand.MOVE_TO&&(C[d++]=A=[n=0,r=0]);for(var _=0;_<i;_++)switch(c[_]){case t.GraphicsPathCommand.MOVE_TO:if(_){if(1==A.length){C[d]=A=[n=p[u++],r=p[u++]];break}this.forceClose&&Math.abs(A[0]-A[A.length-2])+Math.abs(A[1]-A[A.length-1])>I&&A.push(A[0],A[1])}C[d++]=A=[n=p[u++],r=p[u++]];break;case t.GraphicsPathCommand.LINE_TO:if(l=p[u++],h=p[u++],this._minimumCheck(n-l,r-h))break;A.push(n=l,r=h);break;case t.GraphicsPathCommand.CURVE_TO:if(o=p[u++],s=p[u++],l=p[u++],h=p[u++],this._minimumCheck(o-l,s-h)){if(this._minimumCheck(n-l,r-h))break;A.push(n=l,r=h);break}if(this._minimumCheck(n-o,r-s)){A.push(n=l,r=h);break}Ei.tesselateCurve(n,r,o,s,n=l,r=h,A,!1,0,e);break;case t.GraphicsPathCommand.CUBIC_CURVE:if(o=p[u++],s=p[u++],a=p[u++],g=p[u++],l=p[u++],h=p[u++],this._minimumCheck(a-l,g-h)){if(this._minimumCheck(o-l,s-h)){if(this._minimumCheck(n-l,r-h))break;A.push(n=l,r=h);break}if(this._minimumCheck(n-o,r-s)){A.push(n=l,r=h);break}Ei.tesselateCurve(n,r,o,s,n=l,r=h,A,!1,0,e);break}if(this._minimumCheck(o-a,s-g)){if(this._minimumCheck(n-a,r-g)){A.push(n=l,r=h);break}Ei.tesselateCurve(n,r,o,s,n=l,r=h,A,!1,0,e),A.push(n=l,r=h);break}if(this._minimumCheck(n-o,r-s)){Ei.tesselateCurve(n,r,a,g,n=l,r=h,A,!1,0,e);break}Ei.tesselateCubicCurve(n,r,o,s,a,g,n=l,r=h,A,0,e)}}},i.prototype.invalidate=function(){this._orientedBoxBoundsDirty=!0,this._dirtyID++},i.prototype.getBoxBounds=function(t,e,i){return void 0===t&&(t=null),void 0===e&&(e=null),void 0===i&&(i=null),t?this._internalGetBoxBounds(t,e,i):(this._orientedBoxBoundsDirty&&(this._orientedBoxBoundsDirty=!1,this._orientedBoxBounds=this._internalGetBoxBounds(null,this._orientedBoxBounds,null)),null!=this._orientedBoxBounds&&(i=this._orientedBoxBounds.union(i,i||e)),i)},i.prototype._internalGetBoxBounds=function(t,i,A){void 0===t&&(t=null),void 0===i&&(i=null),void 0===A&&(A=null);var n=0,r=0,o=0,s=0,a=this._positions.length;if(0==a)return A;var g,l,h,I=0,c=0,p=this._positions[c++],C=p.length;for(t&&(h=t._rawData),null==A?(A=i||new e.Box,t?(g=p[I]*h[0]+p[I+1]*h[4]+h[12],l=p[I]*h[1]+p[I+1]*h[5]+h[13]):(g=p[I],l=p[I+1]),o=n=g,s=r=l,I+=2):(o=(n=A.x)+A.width,s=(r=A.y)+A.height);I<C;I+=2)t?(g=p[I]*h[0]+p[I+1]*h[4]+h[12],l=p[I]*h[1]+p[I+1]*h[5]+h[13]):(g=p[I],l=p[I+1]),g<n?n=g:g>o&&(o=g),l<r?r=l:l>s&&(s=l),I>=C-2&&c<a&&(I=0,C=(p=this._positions[c++]).length);return A.width=o-(A.x=n),A.height=s-(A.y=r),A.depth=0,A},i.prototype._minimumCheck=function(t,e){return t*t+e*e<i.lensq},i.data_type="[graphicsdata path]",i.lensq=re.MINIMUM_DRAWING_DISTANCE*re.MINIMUM_DRAWING_DISTANCE,i}(),ji=function(){function t(){}return t.LINEAR_RGB="linearRGB",t.RGB="rgb",t}(),Xi=function(){function t(){}return t.ALWAYS="always",t.AUTO="auto",t.NEVER="never",t}(),Wi=function(){function t(){}return t.PAD="pad",t.REFLECT="reflect",t.REPEAT="repeat",t}(),Zi=function(){function t(){}return t.NEGATIVE="negative",t.NONE="none",t.POSITIVE="positive",t}(),$i=function(){},tA=function(){function t(){}return t.generateGraphics=function(n,r,o){void 0===o&&(o=null);var s,a,g,l,h,I,c,p,C,u,d,_,f,E=new Array,y=new Array,B=new Array,m=new Array,Q=new Array,D=new Array,v=new Array,x=new Array,S=r.length,w=new Array,b=new e.Vector3D,N=new e.Vector3D,R=new e.Vector3D,F=new e.Point;for(d=0;d<S;d++){g=(s=r[d]).count;for(var T=0;T<g;T++){w.length<=T&&(w.push(x.length),E.push(new Array),y.push(new Array),B.push(new Array),m.push(new Array),Q.push(new Array),x.push(new i.TriangleElements(new A.AttributesBuffer)),D.push(0)),(a=s.getShapeAt(T).elements).numVertices+D[w[T]]>t.MAX_VERTEX&&(w[T]=x.length,E.push(new Array),y.push(new Array),B.push(new Array),m.push(new Array),Q.push(new Array),x.push(new i.TriangleElements(new A.AttributesBuffer)),D.push(0)),l=E[_=w[T]],h=y[_],I=B[_],c=m[_],p=Q[_],C=D[_],u=x[_];var O,M,P,L,U,k,V,G=new bt;G.numVertices=a.numVertices,G.startVertexIndex=C,G.particleIndex=d,G.elements=u,v.push(G),D[_]+=a.numVertices;var Y,K,z,J,H,q,j,X,W=a;if(W)if(V=W.numVertices,Y=W.positions.get(V),K=W.positions.stride,z=W.normals.get(V),J=W.normals.stride,H=W.tangents.get(V),q=W.tangents.stride,j=W.uvs.get(V),X=W.uvs.stride,o){var Z=o[d],$=Z.vertexTransform,tt=Z.invVertexTransform,et=Z.UVTransform;for(O=0;O<V;O++)P=O*K,b.x=Y[P],b.y=Y[P+1],b.z=Y[P+2],L=O*J,N.x=z[L],N.y=z[L+1],N.z=z[L+2],U=O*q,R.x=H[U],R.y=H[U+1],R.z=H[U+2],k=O*X,F.x=j[k],F.y=j[k+1],$&&(b=$.transformVector(b),N=tt.deltaTransformVector(N),R=tt.deltaTransformVector(N)),et&&(F=et.transformPoint(F)),h.push(b.x,b.y,b.z),I.push(N.x,N.y,N.z),c.push(R.x,R.y,R.z),p.push(F.x,F.y)}else for(O=0;O<V;O++)P=O*K,L=O*J,U=O*q,k=O*X,h.push(Y[P],Y[P+1],Y[P+2]),I.push(z[L],z[L+1],z[L+2]),c.push(H[U],H[U+1],H[U+2]),p.push(j[k],j[k+1]);V=a.numElements;var it=a.indices.get(V);for(O=0;O<V;O++)M=3*O,l.push(it[M]+C,it[M+1]+C,it[M+2]+C)}}var At=new $i;for(At.elements=x,At.numElements=x.length,At.particles=v,At.numParticles=S,d=0;d<At.numElements;d++)(u=x[d]).autoDeriveNormals=!1,u.autoDeriveTangents=!1,u.setIndices(E[d]),u.setPositions(y[d]),u.setNormals(B[d]),u.setTangents(m[d]),u.setUVs(Q[d]),(f=ci.getShape(u)).particleCollection=At,n.addShape(f)},t.MAX_VERTEX=65535,t}(),eA=function(){function t(){}return Object.defineProperty(t.prototype,"vertexTransform",{get:function(){return this._defaultVertexTransform},set:function(t){this._defaultVertexTransform=t,this._defaultInvVertexTransform=t.clone(),this._defaultInvVertexTransform.invert(),this._defaultInvVertexTransform.transpose()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"UVTransform",{get:function(){return this._defaultUVTransform},set:function(t){this._defaultUVTransform=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"invVertexTransform",{get:function(){return this._defaultInvVertexTransform},enumerable:!1,configurable:!0}),t}(),iA=function(){function t(t,e,i){void 0===e&&(e=10),void 0===i&&(i=!0),this.baseClass=t,this._limit=e,this.enabled=i,this._store=[]}return t.prototype.resize=function(t){if(!(t>=this._store.length))for(var e=0,i=this._store.splice(0,this._store.length-t);e<i.length;e++){i[e].dispose()}},Object.defineProperty(t.prototype,"size",{get:function(){return this._store.length},set:function(t){this.resize(t)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"limit",{get:function(){return this._limit},set:function(t){this.resize(t),this._limit=t},enumerable:!1,configurable:!0}),t.prototype.pop=function(){return this._store.length&&this.enabled?this._store.shift():null},t.prototype.store=function(t){return!!this.enabled&&(t.assetType===this.baseClass.assetType&&(!(this._store.length>=this._limit)&&(this._store.push(t),!0)))},t.prototype.release=function(t){var e=this._store.indexOf(t);return-1!==e&&(this._store.splice(e,1),!0)},t.prototype.clear=function(){this.resize(0)},t.prototype.dispose=function(){for(var t=0,e=this._store;t<e.length;t++){e[t].dispose()}this._store=null,this._limit=0},t.REDUCE_TIMEOUT=5e3,t}(),AA={a:1,b:0,c:0,d:1,tx:0,ty:0},nA=function(){function e(){}return e.processStyle=function(e,i,A,n){var r=e;if(A&&(r.morph=this.processMorphStyle(e,i)),i){if(r.miterLimit=2*(e.miterLimitFactor||1.5),!e.color&&e.hasFill){var o=this.processStyle(e.fillStyle,!1,!1,n);return r.type=o.type,r.transform=o.transform,r.colors=o.colors,r.ratios=o.ratios,r.focalPoint=o.focalPoint,r.bitmapId=o.bitmapId,r.image=o.image,r.repeat=o.repeat,e.fillStyle=null,r}return r.type=t.FillType.Solid,r}if(void 0===e.type||e.type===t.FillType.Solid)return r;var s=1;switch(e.type){case t.FillType.LinearGradient:case t.FillType.RadialGradient:case t.FillType.FocalRadialGradient:for(var a=e.records,g=r.colors=[],l=r.ratios=[],h=0;h<a.length;h++){var I=a[h];0!=l.length&&l[l.length-1]==I.ratio||(g.push(I.color),l.push(I.ratio))}s=1;break;case t.FillType.RepeatingBitmap:case t.FillType.ClippedBitmap:case t.FillType.NonsmoothedRepeatingBitmap:case t.FillType.NonsmoothedClippedBitmap:r.smooth=e.type!==t.FillType.NonsmoothedRepeatingBitmap&&e.type!==t.FillType.NonsmoothedClippedBitmap,r.repeat=e.type!==t.FillType.ClippedBitmap&&e.type!==t.FillType.NonsmoothedClippedBitmap,r.image=this.getImage(e.bitmapId,n),s=.05;break;default:console.log("shape parser encountered invalid fill style "+e.type)}if(!e.matrix)return r.transform=AA,r;var c=e.matrix;return r.transform={a:c.a*s,b:c.b*s,c:c.c*s,d:c.d*s,tx:c.tx/20,ty:c.ty/20},e.matrix=null,r},e.getImage=function(t,e){return e.awaySymbols[t]||new A.BitmapImage2D(512,512,!0,4278190335,!0)},e.processMorphStyle=function(e,i){var A=Object.create(e);if(i){if(A.width=e.widthMorph,!e.color&&e.hasFill){var n=this.processMorphStyle(e.fillStyle,!1);return A.transform=n.transform,A.colors=n.colors,A.ratios=n.ratios,A}return A.color=e.colorMorph,A}if(void 0===e.type)return A;if(e.type===t.FillType.Solid)return A.color=e.colorMorph,A;var r=1;switch(e.type){case t.FillType.LinearGradient:case t.FillType.RadialGradient:case t.FillType.FocalRadialGradient:for(var o=e.records,s=A.colors=[],a=A.ratios=[],g=0;g<o.length;g++){var l=o[g];s.push(l.colorMorph),a.push(l.ratioMorph)}r=1;break;case t.FillType.RepeatingBitmap:case t.FillType.ClippedBitmap:case t.FillType.NonsmoothedRepeatingBitmap:case t.FillType.NonsmoothedClippedBitmap:r=.05;break;default:console.log("shape parser encountered invalid fill style")}if(!e.matrix)return A.transform=AA,A;var h=e.matrixMorph;return A.transform={a:h.a*r,b:h.b*r,c:h.c*r,d:h.d*r,tx:h.tx/20,ty:h.ty/20},A},e.createPathsList=function(t,e,i,A){for(var n=[],r=0;r<t.length;r++){var o=this.processStyle(t[r],e,i,A);n[r]=e?new gi(null,o):new gi(o,null)}return n},e}();zi.prepareWasm();var rA=Array.prototype.push,oA=function(t){return Math.round(t/20)},sA=function(r){function o(){var t=r.call(this)||this;return t._bitmapFillPool={},t._queuedShapeTags=[],t._shapes=[],t._queued_fill_pathes=[],t._queued_stroke_pathes=[],t._current_position=new e.Point,t.tryOptimiseSigleImage=!1,t._drawingDirty=!1,t._owners=new e.WeakAssetSet,t._clearCount=0,t._internalShapesId=[],t._rFillPool=new iA(ci,100,!1),t._rStrokePool=new iA(ci,100,!1),t._poolingConfig={fill:re.ALLOW_INTERNAL_POOL.FILLS,stroke:re.ALLOW_INTERNAL_POOL.STROKES,clearsCount:re.CLEARS_BEFORE_POOLING},t}return I(o,r),o.getShapeForBitmapStyle=function(t,n){var r=new i.Style,o=new e.Rectangle(oA(n.xMin),oA(n.yMin),oA(n.xMax-n.xMin),oA(n.yMax-n.yMin)),s=ci.getTriangleElement(o);s.usages++;var a=t.transform,g=a.a,l=a.b,h=a.c,I=a.d,c=a.tx,p=a.ty;r.image=t.image;var C=new ni(t.image,new e.Matrix(g,l,h,I,c,p),t.repeat,t.smooth),u=_i.getMaterialForBitmap(!0);return r.sampler=new A.ImageSampler(t.repeat,t.smooth,t.smooth),r.uvMatrix=C.getUVMatrix(),ci.getShape(s,u,r)},o.getGraphics=function(){return o._pool.length?o._pool.pop():new o},o.clearPool=function(){o._pool=[]},Object.defineProperty(o.prototype,"start",{get:function(){return!this._start&&this.sourceGraphics?this.sourceGraphics.start:this._start},set:function(t){this._start=t},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"end",{get:function(){return!this._end&&this.sourceGraphics?this.sourceGraphics.end:this._end},set:function(t){this._end=t},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"assetType",{get:function(){return o.assetType},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"count",{get:function(){return this._shapes.length+this._queued_stroke_pathes.length+this._queued_fill_pathes.length+this._queuedShapeTags.length},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"queued_stroke_pathes",{get:function(){return this._queued_stroke_pathes},set:function(t){this._queued_stroke_pathes=t},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"queued_fill_pathes",{get:function(){return this._queued_fill_pathes},set:function(t){this._queued_fill_pathes=t},enumerable:!1,configurable:!0}),o.prototype.add_queued_path=function(t,e){(void 0===e&&(e=!1),t.style)&&(t.style.data_type===ai.data_type?(this._queued_stroke_pathes.push(t),e||this.endFill()):(this._drawingDirty=!0,this._queued_fill_pathes.push(t)))},Object.defineProperty(o.prototype,"internalPoolConfig",{get:function(){return this._poolingConfig},set:function(t){this._poolingConfig.fill="boolean"==typeof t?t:t.fill,this._poolingConfig.stroke="boolean"==typeof t?t:t.stroke,t||(this._rFillPool.enabled&&this._rFillPool.clear(),this._rStrokePool.enabled&&this._rStrokePool.clear(),this._rStrokePool.enabled=!1,this._rStrokePool.enabled=!1),this._clearCount=0},enumerable:!1,configurable:!0}),o.prototype.popEmptyFillShape=function(){return this._rFillPool.pop()},o.prototype.popEmptyStrokeShape=function(){return this._rStrokePool.pop()},o.prototype.addShapeInternal=function(t){this.addShape(t),this._internalShapesId.push(t.id)},o.prototype.addOwner=function(t){this._owners.add(t)},o.prototype.removeOwner=function(t){this._owners.remove(t)},o.prototype.invalidate=function(){r.prototype.invalidate.call(this),this._owners.forEach((function(t){return t.invalidate()}))},o.prototype.addShape=function(t){t.usages++;var e=this.getShapeIndex(t);return-1!=e&&this.removeShapeAt(e),this._shapes.push(t),this.invalidate(),t},o.prototype.removeShape=function(t){var i=this.getShapeIndex(t);if(-1==i)throw new e.ArgumentError("Shape parameter is not a shape of the caller");this.removeShapeAt(i)},o.prototype.removeShapeAt=function(t){if(t<0||t>=this._shapes.length)throw new e.RangeError("Index is out of range");var i=this._shapes.splice(t,1)[0];i.usages--,i.usages||this.tryPoolShape(i)||i.dispose(),this.invalidate()},o.prototype.getShapeAt=function(t){return this._shapes[t]},o.prototype.getShapeIndex=function(t){return this._shapes.indexOf(t)},o.prototype.applyTransformation=function(t){for(var e=this._shapes.length,i=0;i<e;++i)this._shapes[i].applyTransformation(t)},o.prototype.copyTo=function(t,e){void 0===e&&(e=!1),this._drawingDirty&&this.endFill(),t.sourceGraphics=this,t._addShapes(this._shapes,e)},o.prototype.clone=function(t){void 0===t&&(t=!1);var e=o.getGraphics();return this.copyTo(e,t),e},o.prototype.scale=function(t){for(var e=this._shapes.length,i=0;i<e;++i)this._shapes[i].scale(t)},o.prototype.tryPoolShape=function(t){var e=t.elements.assetType===i.TriangleElements.assetType,A=t.elements.assetType===i.LineElements.assetType;return!(!A&&!e)&&(-1!==this._internalShapesId.indexOf(t.id)&&(e?this._rFillPool.store(t):!!A&&this._rStrokePool.store(t)))},o.prototype.clear=function(){var t;this._clearCount++,this._lastFill=null,this._lastStroke=null,!(this._internalShapesId.length>0&&this._clearCount>=this._poolingConfig.clearsCount)||this._rStrokePool.enabled===this._poolingConfig.stroke&&this._rFillPool.enabled===this._poolingConfig.fill||(console.warn("[Graphics] To many clears, pooling shapes internally!",this.id,this._internalShapesId.length),this._rFillPool.enabled=this._poolingConfig.fill,this._rStrokePool.enabled=this._poolingConfig.stroke);for(var e=this._shapes.length,i=0;i<e;i++)(t=this._shapes[i]).usages--,t.usages||this.tryPoolShape(t)||t.dispose();this._internalShapesId.length=0,this._shapes.length=0,this.invalidate(),this._active_fill_path=null,this._active_stroke_path=null,this._queued_fill_pathes.length=0,this._queued_stroke_pathes.length=0,this._current_position.x=0,this._current_position.y=0,this._drawingDirty=!1,this._lineStyle=null,this._fillStyle=null},o.prototype.dispose=function(){this.clear(),this._bitmapFillPool=null,this._rFillPool.clear(),this._rStrokePool.clear(),this._internalShapesId.length=0,this._clearCount=0,o._pool.push(this)},o.prototype.scaleUV=function(t,e){void 0===t&&(t=1),void 0===e&&(e=1);for(var i=this._shapes.length,A=0;A<i;++A)this._shapes[A].scaleUV(t,e)},o.prototype._acceptTraverser=function(t){this._drawingDirty&&(this._lastFill&&this.removeShape(this._lastFill),this._lastStroke&&this.removeShape(this._lastStroke),t instanceof n.PickEntity?this._endFillInternal(!1):this.endFill());for(var e=this._shapes.length,i=0;i<e;i++)t.applyTraversable(this._shapes[i])},o.prototype.beginBitmapFill=function(t,e,i,A){void 0===e&&(e=null),void 0===i&&(i=!0),void 0===A&&(A=re.SMOOTH_BITMAP_FILL_DEFAULT),this._fillStyle&&this.endFill(),this._bitmapFillPool||(this._bitmapFillPool={});var n=this._bitmapFillPool[t.id];n?(n.fillStyle.matrix=e,n.fillStyle.repeat=i,n.fillStyle.smooth=A):n=this._bitmapFillPool[t.id]=new ii(new ni(t,e,i,A)),this._fillStyle=n,this._updateFillPath()},o.prototype.beginFill=function(t,e){void 0===e&&(e=1),0==t&&(t=65793),this._fillStyle&&this.endFill(),this._fillStyle=new ii(new ri(t,e)),this._updateFillPath()},o.prototype.beginGradientFill=function(t,e,i,A,n,r,o,s){void 0===n&&(n=null),void 0===r&&(r="pad"),void 0===o&&(o="rgb"),void 0===s&&(s=0),this._fillStyle&&this.endFill(),this._fillStyle=new ii(new Ai(t,e,i,A,n,r,o,s)),this._updateFillPath()},o.prototype.copyFrom=function(t){t.copyTo(this)},o.prototype.cubicCurveTo=function(t,e,i,A,n,r){this._drawingDirty=!0,this._active_fill_path&&this._active_fill_path.cubicCurveTo(t,e,i,A,n,r),this._active_stroke_path&&this._active_stroke_path.cubicCurveTo(t,e,i,A,n,r),this._current_position.x=n,this._current_position.y=r,this.invalidate()},o.prototype.curveTo=function(t,e,i,A){this._drawingDirty=!0,this._active_fill_path&&this._active_fill_path.curveTo(t,e,i,A),this._active_stroke_path&&this._active_stroke_path.curveTo(t,e,i,A),this._current_position.x=i,this._current_position.y=A,this.invalidate()},o.prototype.drawCircle=function(t,e,i){if(this._drawingDirty=!0,this._active_fill_path){this._active_fill_path.moveTo(t,e);var A=i;this._active_stroke_path&&(A-=this._active_stroke_path.style.thickness/2),Ei.drawElipse(t,e,A,A,this._active_fill_path.verts,0,360,5,!1)}this._active_stroke_path&&Ei.drawElipseStrokes(t,e,i,i,this._active_stroke_path,0,360,2),this.invalidate()},o.prototype.drawEllipse=function(t,e,i,A){if(this._drawingDirty=!0,t+=i/=2,e+=A/=2,null!=this._active_fill_path){this._active_fill_path.moveTo(t,e);var n=i,r=A;null!=this._active_stroke_path&&(n-=this._active_stroke_path.style.thickness/2,r-=this._active_stroke_path.style.thickness/2),Ei.drawElipse(t,e,n,r,this._active_fill_path.verts,0,360,6,!1)}null!=this._active_stroke_path&&Ei.drawElipseStrokes(t,e,i,A,this._active_stroke_path,0,360,2),this.invalidate()},o.prototype.drawGraphicsData=function(t){},o.prototype.drawPath=function(t,e,i){this._drawingDirty=!0,t.length,this._active_fill_path&&this._drawPathInternal(this._active_fill_path,t,e,i),this._active_stroke_path&&this._drawPathInternal(this._active_stroke_path,t,e,i),this.invalidate()},o.prototype._drawPathInternal=function(e,i,A,n){for(var r=0,o=0;o<i.length;o++)switch(i[o]){case t.GraphicsPathCommand.MOVE_TO:e.moveTo(A[r],A[r+1]),r+=2;break;case t.GraphicsPathCommand.LINE_TO:e.lineTo(A[r],A[r+1]),r+=2;break;case t.GraphicsPathCommand.CURVE_TO:e.curveTo(A[r],A[r+1],A[r+2],A[r+3]),r+=4;case t.GraphicsPathCommand.NO_OP:}},o.prototype.drawRect=function(t,e,i,A){if(this._drawingDirty=!0,null!=this._active_fill_path){this._active_fill_path.moveTo(t,e);var n=i,r=A,o=0;null!=this._active_stroke_path&&(o=this._active_stroke_path.style.thickness/2,n-=this._active_stroke_path.style.thickness,r-=this._active_stroke_path.style.thickness),Ei.addTriangle(t+o,e+r+o,t+o,e+o,t+n+o,e+o,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+o,e+r+o,t+o+n,e+o,t+n+o,e+r+o,0,this._active_fill_path.verts,!1)}null!=this._active_stroke_path&&(this._active_stroke_path.moveTo(t,e),this._active_stroke_path.lineTo(t+i,e),this._active_stroke_path.lineTo(t+i,e+A),this._active_stroke_path.lineTo(t,e+A),this._active_stroke_path.lineTo(t,e)),this.invalidate()},o.prototype.drawRoundRect=function(t,e,i,A,n,r){void 0===r&&(r=NaN),this._drawingDirty=!0,isNaN(r)&&(r=n);var o=i,s=A,a=n/2,g=r/2,l=0;null!=this._active_fill_path&&(this._active_fill_path.moveTo(t,e),null!=this._active_stroke_path&&(l=this._active_stroke_path.style.thickness/2,o-=this._active_stroke_path.style.thickness,s-=this._active_stroke_path.style.thickness),Ei.addTriangle(t+l,e+s-g,t+l,e+g,t+o-l,e+g,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+l,e+s-g,t+o-l,e+g,t+o-l,e+s-g,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+a,e+l,t+o-a,e+g,t+a,e+g,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+a,e+l,t+o-a,e+l,t+o-a,e+g,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+a,e+s-g,t+o-a,e+s-l,t+a,e+s-l,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+a,e+s-g,t+o-a,e+s-g,t+o-a,e+s-l,0,this._active_fill_path.verts,!1),Ei.drawElipse(t+a,e+g,a-l,g-l,this._active_fill_path.verts,180,270,5,!1),Ei.drawElipse(t+o-a,e+g,a-l,g-l,this._active_fill_path.verts,270,360,5,!1),Ei.drawElipse(t+o-a,e+s-g,a-l,g-l,this._active_fill_path.verts,0,90,5,!1),Ei.drawElipse(t+a,e+s-g,a-l,g-l,this._active_fill_path.verts,90,180,5,!1)),null!=this._active_stroke_path&&(this._active_stroke_path.moveTo(t+a,e),this._active_stroke_path.lineTo(t+o-a,e),Ei.drawElipseStrokes(t+o-a,e+g,a,g,this._active_stroke_path,270,360,2),this._active_stroke_path.lineTo(t+o,e+s-g),Ei.drawElipseStrokes(t+o-a,e+s-g,a,g,this._active_stroke_path,0,90,2),this._active_stroke_path.lineTo(t+a,e+s),Ei.drawElipseStrokes(t+a,e+s-g,a,g,this._active_stroke_path,90,180,2),this._active_stroke_path.lineTo(t,e+g),Ei.drawElipseStrokes(t+a,e+g,a,g,this._active_stroke_path,180,270,2)),this.invalidate()},o.prototype.drawRoundRectComplex=function(t,e,i,A,n,r,o,s){var a=i,g=A,l=n,h=r,I=o,c=s;this._drawingDirty=!0;var p=0;null!=this._active_fill_path&&(this._active_fill_path.moveTo(t,e),null!=this._active_stroke_path&&(p=this._active_stroke_path.style.thickness/2,a-=this._active_stroke_path.style.thickness,g-=this._active_stroke_path.style.thickness),Ei.addTriangle(t+l,e+l,t+a-h,e+h,t+a-c,e+g-c,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+l,e+l,t+a-c,e+g-c,t+I,e+g-I,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+p,e+l,t+l,e+l,t+p,e+g-I,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+l,e+l,t+p,e+g-I,t+I,e+g-I,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+l,e+p,t+l,e+l,t+a-h,e+p,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+l,e+l,t+a-h,e+h,t+a-h,e+p,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+a-p,e+h,t+a-h,e+h,t+a-p,e+g-c,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+a-h,e+h,t+a-c,e+g-c,t+a-p,e+g-c,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+I,e+g-p,t+a-c,e+g-p,t+I,e+g-I,0,this._active_fill_path.verts,!1),Ei.addTriangle(t+I,e+g-I,t+a-c,e+g-p,t+a-c,e+g-c,0,this._active_fill_path.verts,!1),Ei.drawElipse(t+l,e+l,l-p,l-p,this._active_fill_path.verts,180,270,5,!1),Ei.drawElipse(t+a-h,e+h,h-p,h-p,this._active_fill_path.verts,270,360,5,!1),Ei.drawElipse(t+a-c,e+g-c,c-p,c-p,this._active_fill_path.verts,0,90,5,!1),Ei.drawElipse(t+I,e+g-I,I-p,I-p,this._active_fill_path.verts,90,180,5,!1)),null!=this._active_stroke_path&&(this._active_stroke_path.moveTo(t,e),console.warn("[Graphics] - drawRoundRectComplex for strokes currently disabled")),this.invalidate()},o.prototype.drawTriangles=function(t,e,i,A){this._drawingDirty=!0,this._active_fill_path,this._active_stroke_path},o.prototype.endFill=function(){this._active_stroke_path&&this._active_fill_path&&(this._active_stroke_path.forceClose=!0),this._endFillInternal(!0)},o.prototype._endFillInternal=function(t){if(void 0===t&&(t=!1),this._queuedShapeTags.length){var e=this._queuedShapeTags,i=e.length;this._queuedShapeTags=[];for(var A=0;A<i;A++)this.convertRecordsToShapeData(e[A]);e.length=0}zi.draw_pathes(this,t),Ji.draw_pathes(this,t),t&&(this._fillStyle=null,this._updateLinePath()),this._drawingDirty=!1},o.prototype.lineBitmapStyle=function(t,e,i,A){void 0===e&&(e=null),void 0===i&&(i=!0),void 0===A&&(A=!1),this._lineStyle&&(this._lineStyle=this._lineStyle.clone(),this._lineStyle.fillStyle=new ii(new ni(t,e,i,A))),this._updateLinePath()},o.prototype.lineGradientStyle=function(t,e,i,A,n,r,o,s){void 0===n&&(n=null),void 0===r&&(r=Wi.PAD),void 0===o&&(o=ji.RGB),void 0===s&&(s=0),this._lineStyle&&(this._lineStyle=this._lineStyle.clone(),this._lineStyle.fillStyle=new Ai(t,e,i,A,n,r,o,s)),this._updateLinePath()},o.prototype.lineStyle=function(t,e,A,n,r,o,s,a){if(void 0===t&&(t=NaN),void 0===e&&(e=0),void 0===A&&(A=1),void 0===o&&(o=oi.NONE),void 0===s&&(s=si.MITER),void 0===a&&(a=100),isNaN(t))return this._lineStyle=null,void this._updateLinePath();0==t&&(t=.05,i.LineScaleMode.HAIRLINE);var g=t>0&&A>0;this._lineStyle=g?new ai(new ri(e,A),t,s,o,a):null,this._updateLinePath()},o.prototype.lineTo=function(t,e){this._drawingDirty=!0,this._active_fill_path&&this._active_fill_path.lineTo(t,e),this._active_stroke_path&&this._active_stroke_path.lineTo(t,e),this._current_position.x=t,this._current_position.y=e,this.invalidate()},o.prototype.moveTo=function(t,e){this._drawingDirty=!0,this._active_fill_path&&this._active_fill_path.moveTo(t,e),this._active_stroke_path&&this._active_stroke_path.moveTo(t,e),this._current_position.x=t,this._current_position.y=e,this.invalidate()},o.prototype.queueShapeTag=function(t){this._queuedShapeTags.push(t),this._drawingDirty=!0},o.prototype._updateFillPath=function(){this._fillStyle?null!=this._active_fill_path&&this._active_fill_path.style==this._fillStyle||(this._active_fill_path=new qi,this._active_fill_path.style=this._fillStyle,this._queued_fill_pathes.push(this._active_fill_path),0==this._current_position.x&&0==this._current_position.y||this._active_fill_path.moveTo(this._current_position.x,this._current_position.y)):this._active_fill_path=null},o.prototype._updateLinePath=function(){this._lineStyle?null!=this._active_stroke_path&&this._active_stroke_path.style==this._lineStyle||(this._active_stroke_path=new qi,this._active_stroke_path.style=this._lineStyle,this._queued_stroke_pathes.push(this._active_stroke_path),0==this._current_position.x&&0==this._current_position.y||this._active_stroke_path.moveTo(this._current_position.x,this._current_position.y)):this._active_stroke_path=null},o.prototype._addShapes=function(t,e){var i;void 0===e&&(e=!1);for(var A=t.length,n=0;n<A;n++)i=t[n],e&&(i=ci.getShape(i.elements,i.material,i.style,i.count,i.offset)),i.particleCollection=t[n].particleCollection,this._shapes.push(i),i.usages++;this.invalidate()},o.prototype._isShapeMaterial=function(t){for(var e=this._shapes.length,i=0;i<e;i++)if(t==this._shapes[i].material)return!0;return!1},o.prototype.convertRecordsToShapeData=function(e,i){void 0===i&&(i=!1),e.needParse&&e.lazyParser();var A=e.records,n=e.fillStyles,r=e.lineStyles,s=e.recordsMorph||null,a=null!==s,g=e.factory;if(this.tryOptimiseSigleImage&&5===A.length&&2===n.length&&n[0].type>=t.FillType.ClippedBitmap){var l=nA.processStyle(e.fillStyles[1],!1,!1,g),h=e.fillBounds||e.lineBounds;this.addShapeInternal(o.getShapeForBitmapStyle(l,h))}else{for(var I,c=nA.createPathsList(n,!1,!!s,g),p=nA.createPathsList(r,!0,!!s,g),C={fill0:0,fill1:0,line:0},u=[],d=[],_=A.length,f=0,E=0,y=0,B=0,m=0,Q=0;m<_;m++){var D=A[m];if(0===D.type){for(var v=0;v<3;v++)u[v]=void 0;16&D.flags&&(d||(d=[]),rA.apply(d,c),c=nA.createPathsList(D.fillStyles,!1,a,g),rA.apply(d,p),p=nA.createPathsList(D.lineStyles,!0,a,g),C={fill0:0,fill1:0,line:0}),2&D.flags&&(C.fill0=D.fillStyle0),4&D.flags&&(C.fill1=D.fillStyle1),8&D.flags&&(C.line=D.lineStyle),C.fill0&&(u[0]={path:c[C.fill0-1]}),C.fill1&&(u[1]={path:c[C.fill1-1]}),C.line&&(u[2]={path:p[C.line-1]}),1&D.flags&&(f=0|D.moveX,E=0|D.moveY),C.fill1&&C.fill0&&C.fill0==C.fill1&&(u[0]=u[1]=void 0),a&&(0===(I=s[Q++]).type?(y=0|I.moveX,B=0|I.moveY):Q--);for(var x=0;x<3;x++){(w=u[x])&&(w.segment=ti.FromDefaults(a),w.path.addSegment(w.segment),a?w.segment.morphMoveTo(f,E,y,B):w.segment.moveTo(f,E))}}else{if(Nt(1===D.type),a){for(I=s[Q++];I&&0===I.type;)I=s[Q++];I||(I=D)}if(32&D.flags&&(!a||32&I.flags)){f+=0|D.deltaX,E+=0|D.deltaY,a&&(y+=0|I.deltaX,B+=0|I.deltaY);for(var S=0;S<3;S++){var w;(w=u[S])&&(a?w.segment.morphLineTo(f,E,y,B):w.segment.lineTo(f,E))}}else{var b=this.transformCurve(D,f,E);f=b.x,E=b.y;var N=void 0;a&&(y=(N=this.transformCurve(I,y,B)).x,B=N.y);for(var R=0;R<3;R++){var F=u[R];if(F){var T=F.segment;a?T.morphCurveTo(b.cx,b.cy,f,E,N.cx,N.cy,y,B):T.curveTo(b.cx,b.cy,f,E)}}}}}var O,M,P=[d,c,p],L=0;if(a){this._start=[],this._end=[];for(m=0;L<P.length;m++)!P[L]||P[L].length<=m?(L++,m=-1):(O=new qi,M=new qi,O.morphSource=M.morphSource=!0,P[L][m].serializeAJS(O,M),this._start.push(O),this._end.push(M))}else for(m=0;L<P.length;m++)!P[L]||P[L].length<=m?(L++,m=-1):(O=new qi,P[L][m].serializeAJS(O,null),this.add_queued_path(O,i))}},o.prototype.transformCurve=function(t,e,i){var A,n;if(32&t.flags){var r=0|t.deltaX,o=0|t.deltaY;A=e+(r>>1),n=i+(o>>1),e+=r,i+=o}else A=e+t.controlDeltaX|0,n=i+t.controlDeltaY|0,e=A+t.anchorDeltaX|0,i=n+t.anchorDeltaY|0;return{cx:A,cy:n,x:e,y:i}},o._pool=new Array,o.assetType="[asset Graphics]",o}(e.AssetBase);console.debug("AwayJS - Graphics - 0.5.101"),e.AsyncServicesLibrary&&e.AsyncServicesLibrary.register(ki.instance),t.ABCBlock=Jt,t.ActionBlock=qt,t.Adler32=ye,t.AnimationClipNodeBase=d,t.AnimationClipState=gt,t.AnimationElements=r,t.AnimationSetBase=N,t.AnimationSetError=b,t.AnimationStateBase=_,t.AnimationStateEvent=at,t.AnimatorBase=Qt,t.AnimatorEvent=mt,t.BitmapFillStyle=ni,t.Bounds=Tt,t.CapsStyle=oi,t.ColorSegmentPoint=o,t.CrossfadeTransition=Bt,t.CrossfadeTransitionNode=yt,t.CrossfadeTransitionState=Et,t.DataBuffer=Ze,t.Deflate=Be,t.DictionaryEntry=Zt,t.DrawMode=Ii,t.EagerlyParsedDictionaryEntry=$t,t.EncryptedBlock=Ht,t.GradientFillStyle=Ai,t.Graphics=sA,t.GraphicsFactoryFills=zi,t.GraphicsFactoryHelper=Ei,t.GraphicsFactoryStrokes=Ji,t.GraphicsFillStyle=ii,t.GraphicsPath=qi,t.GraphicsPathWinding=Hi,t.GraphicsStrokeStyle=ai,t.Inflate=de,t.InitActionBlock=jt,t.InterpolationMethod=ji,t.JointPose=s,t.JointStyle=si,t.LzmaDecoder=Ke,t.MaterialManager=_i,t.NativeDeflate=oe,t.ParticleAccelerationNode=B,t.ParticleAccelerationState=E,t.ParticleAnimationData=a,t.ParticleAnimationSet=R,t.ParticleAnimator=Dt,t.ParticleBezierCurveNode=Q,t.ParticleBezierCurveState=m,t.ParticleBillboardNode=v,t.ParticleBillboardState=D,t.ParticleColorNode=F,t.ParticleColorState=x,t.ParticleData=bt,t.ParticleFollowNode=O,t.ParticleFollowState=T,t.ParticleGraphicsHelper=tA,t.ParticleGraphicsTransform=eA,t.ParticleInitialColorNode=P,t.ParticleInitialColorState=M,t.ParticleNodeBase=y,t.ParticleOrbitNode=U,t.ParticleOrbitState=L,t.ParticleOscillatorNode=V,t.ParticleOscillatorState=k,t.ParticlePositionNode=Y,t.ParticlePositionState=G,t.ParticleProperties=g,t.ParticlePropertiesMode=l,t.ParticleRotateToHeadingNode=z,t.ParticleRotateToHeadingState=K,t.ParticleRotateToPositionNode=H,t.ParticleRotateToPositionState=J,t.ParticleRotationalVelocityNode=j,t.ParticleRotationalVelocityState=q,t.ParticleScaleNode=W,t.ParticleScaleState=X,t.ParticleSegmentedColorNode=$,t.ParticleSegmentedColorState=Z,t.ParticleSpriteSheetNode=et,t.ParticleSpriteSheetState=tt,t.ParticleStateBase=f,t.ParticleTimeNode=w,t.ParticleTimeState=S,t.ParticleUVNode=At,t.ParticleUVState=it,t.ParticleVelocityNode=rt,t.ParticleVelocityState=nt,t.PathSegment=ti,t.PixelSnapping=Xi,t.SegmentedPath=gi,t.Settings=re,t.Shape=ci,t.ShapeData=hi,t.Skeleton=c,t.SkeletonAnimationSet=vt,t.SkeletonAnimator=xt,t.SkeletonBinaryLERPNode=st,t.SkeletonBinaryLERPState=ot,t.SkeletonClipNode=ht,t.SkeletonClipState=lt,t.SkeletonDifferenceNode=ct,t.SkeletonDifferenceState=It,t.SkeletonDirectionalNode=Ct,t.SkeletonDirectionalState=pt,t.SkeletonJoint=p,t.SkeletonNaryLERPNode=dt,t.SkeletonNaryLERPState=ut,t.SkeletonPose=C,t.SolidFillStyle=ri,t.SpreadMethod=Wi,t.SymbolExport=Xt,t.TextureAtlas=fi,t.TriangleCulling=Zi,t.UnparsedTag=Wt,t.VertexAnimationMode=u,t.VertexAnimationSet=St,t.VertexAnimator=wt,t.VertexClipNode=ft,t.VertexClipState=_t,t._Render_Shape=pi,t.assert=Nt,t.axCoerceString=function(t){return"string"==typeof t?t:null==t?null:t+""},t.clamp=Ot,t.ensureTypedArrayCapacity=zt,t.isNullOrUndefined=Mt,t.isObject=function(t){return"object"==typeof t||"function"==typeof t},t.memCopy=Rt,t.roundToMultipleOfFour=function(t){return t+3&-4},t.utf8encode=Gt,Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=awayjs-graphics.umd.js.map
