UNPKG

@laser-tracer/core

Version:

A real-time 3D engine for creating time-decaying volumetric light drawings that mimic phosphor vector monitors.

1 lines 495 kB
(function(w,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("three")):typeof define=="function"&&define.amd?define(["exports","three"],a):(w=typeof globalThis<"u"?globalThis:w||self,a(w.LaserTracerCore={},w.THREE))})(this,function(w,a){"use strict";function W(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const e in s)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(s,e);Object.defineProperty(t,e,n.get?n:{enumerable:!0,get:()=>s[e]})}}return t.default=s,Object.freeze(t)}const z=W(a),B={type:"change"},y={type:"start"},p={type:"end"},Y=new a.Ray,R=new a.Plane,S=Math.cos(70*a.MathUtils.DEG2RAD),u=new a.Vector3,M=2*Math.PI,h={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},X=1e-6;class U extends a.Controls{constructor(t,e=null){super(t,e),this.state=h.NONE,this.target=new a.Vector3,this.cursor=new a.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:a.MOUSE.ROTATE,MIDDLE:a.MOUSE.DOLLY,RIGHT:a.MOUSE.PAN},this.touches={ONE:a.TOUCH.ROTATE,TWO:a.TOUCH.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new a.Vector3,this._lastQuaternion=new a.Quaternion,this._lastTargetPosition=new a.Vector3,this._quat=new a.Quaternion().setFromUnitVectors(t.up,new a.Vector3(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new a.Spherical,this._sphericalDelta=new a.Spherical,this._scale=1,this._panOffset=new a.Vector3,this._rotateStart=new a.Vector2,this._rotateEnd=new a.Vector2,this._rotateDelta=new a.Vector2,this._panStart=new a.Vector2,this._panEnd=new a.Vector2,this._panDelta=new a.Vector2,this._dollyStart=new a.Vector2,this._dollyEnd=new a.Vector2,this._dollyDelta=new a.Vector2,this._dollyDirection=new a.Vector3,this._mouse=new a.Vector2,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=q.bind(this),this._onPointerDown=K.bind(this),this._onPointerUp=V.bind(this),this._onContextMenu=nt.bind(this),this._onMouseWheel=tt.bind(this),this._onKeyDown=et.bind(this),this._onTouchStart=st.bind(this),this._onTouchMove=it.bind(this),this._onMouseDown=_.bind(this),this._onMouseMove=$.bind(this),this._interceptControlDown=ct.bind(this),this._interceptControlUp=xt.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(B),this.update(),this.state=h.NONE}update(t=null){const e=this.object.position;u.copy(e).sub(this.target),u.applyQuaternion(this._quat),this._spherical.setFromVector3(u),this.autoRotate&&this.state===h.NONE&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let n=this.minAzimuthAngle,i=this.maxAzimuthAngle;isFinite(n)&&isFinite(i)&&(n<-Math.PI?n+=M:n>Math.PI&&(n-=M),i<-Math.PI?i+=M:i>Math.PI&&(i-=M),n<=i?this._spherical.theta=Math.max(n,Math.min(i,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(n+i)/2?Math.max(n,this._spherical.theta):Math.min(i,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let c=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const x=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),c=x!=this._spherical.radius}if(u.setFromSpherical(this._spherical),u.applyQuaternion(this._quatInverse),e.copy(this.target).add(u),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let x=null;if(this.object.isPerspectiveCamera){const f=u.length();x=this._clampDistance(f*this._scale);const o=f-x;this.object.position.addScaledVector(this._dollyDirection,o),this.object.updateMatrixWorld(),c=!!o}else if(this.object.isOrthographicCamera){const f=new a.Vector3(this._mouse.x,this._mouse.y,0);f.unproject(this.object);const o=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),c=o!==this.object.zoom;const j=new a.Vector3(this._mouse.x,this._mouse.y,0);j.unproject(this.object),this.object.position.sub(j).add(f),this.object.updateMatrixWorld(),x=u.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;x!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(x).add(this.object.position):(Y.origin.copy(this.object.position),Y.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(Y.direction))<S?this.object.lookAt(this.target):(R.setFromNormalAndCoplanarPoint(this.object.up,this.target),Y.intersectPlane(R,this.target))))}else if(this.object.isOrthographicCamera){const x=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),x!==this.object.zoom&&(this.object.updateProjectionMatrix(),c=!0)}return this._scale=1,this._performCursorZoom=!1,c||this._lastPosition.distanceToSquared(this.object.position)>X||8*(1-this._lastQuaternion.dot(this.object.quaternion))>X||this._lastTargetPosition.distanceToSquared(this.target)>X?(this.dispatchEvent(B),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?M/60*this.autoRotateSpeed*t:M/60/60*this.autoRotateSpeed}_getZoomScale(t){const e=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){u.setFromMatrixColumn(e,0),u.multiplyScalar(-t),this._panOffset.add(u)}_panUp(t,e){this.screenSpacePanning===!0?u.setFromMatrixColumn(e,1):(u.setFromMatrixColumn(e,0),u.crossVectors(this.object.up,u)),u.multiplyScalar(t),this._panOffset.add(u)}_pan(t,e){const n=this.domElement;if(this.object.isPerspectiveCamera){const i=this.object.position;u.copy(i).sub(this.target);let c=u.length();c*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*c/n.clientHeight,this.object.matrix),this._panUp(2*e*c/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const n=this.domElement.getBoundingClientRect(),i=t-n.left,c=e-n.top,x=n.width,f=n.height;this._mouse.x=i/x*2-1,this._mouse.y=-(c/f)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(M*this._rotateDelta.x/e.clientHeight),this._rotateUp(M*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(M*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-M*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(M*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-M*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),e=!0;break}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),i=.5*(t.pageY+e.y);this._rotateStart.set(n,i)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),i=.5*(t.pageY+e.y);this._panStart.set(n,i)}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),n=t.pageX-e.x,i=t.pageY-e.y,c=Math.sqrt(n*n+i*i);this._dollyStart.set(0,c)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(this._pointers.length==1)this._rotateEnd.set(t.pageX,t.pageY);else{const n=this._getSecondPointerPosition(t),i=.5*(t.pageX+n.x),c=.5*(t.pageY+n.y);this._rotateEnd.set(i,c)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(M*this._rotateDelta.x/e.clientHeight),this._rotateUp(M*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),n=.5*(t.pageX+e.x),i=.5*(t.pageY+e.y);this._panEnd.set(n,i)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const e=this._getSecondPointerPosition(t),n=t.pageX-e.x,i=t.pageY-e.y,c=Math.sqrt(n*n+i*i);this._dollyEnd.set(0,c),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const x=(t.pageX+e.x)*.5,f=(t.pageY+e.y)*.5;this._updateZoomParameters(x,f)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId){this._pointers.splice(e,1);return}}_isTrackingPointer(t){for(let e=0;e<this._pointers.length;e++)if(this._pointers[e]==t.pointerId)return!0;return!1}_trackPointer(t){let e=this._pointerPositions[t.pointerId];e===void 0&&(e=new a.Vector2,this._pointerPositions[t.pointerId]=e),e.set(t.pageX,t.pageY)}_getSecondPointerPosition(t){const e=t.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[e]}_customWheelEvent(t){const e=t.deltaMode,n={clientX:t.clientX,clientY:t.clientY,deltaY:t.deltaY};switch(e){case 1:n.deltaY*=16;break;case 2:n.deltaY*=100;break}return t.ctrlKey&&!this._controlActive&&(n.deltaY*=10),n}}function K(s){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(s.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(s)&&(this._addPointer(s),s.pointerType==="touch"?this._onTouchStart(s):this._onMouseDown(s)))}function q(s){this.enabled!==!1&&(s.pointerType==="touch"?this._onTouchMove(s):this._onMouseMove(s))}function V(s){switch(this._removePointer(s),this._pointers.length){case 0:this.domElement.releasePointerCapture(s.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent(p),this.state=h.NONE;break;case 1:const t=this._pointers[0],e=this._pointerPositions[t];this._onTouchStart({pointerId:t,pageX:e.x,pageY:e.y});break}}function _(s){let t;switch(s.button){case 0:t=this.mouseButtons.LEFT;break;case 1:t=this.mouseButtons.MIDDLE;break;case 2:t=this.mouseButtons.RIGHT;break;default:t=-1}switch(t){case a.MOUSE.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(s),this.state=h.DOLLY;break;case a.MOUSE.ROTATE:if(s.ctrlKey||s.metaKey||s.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(s),this.state=h.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(s),this.state=h.ROTATE}break;case a.MOUSE.PAN:if(s.ctrlKey||s.metaKey||s.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(s),this.state=h.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(s),this.state=h.PAN}break;default:this.state=h.NONE}this.state!==h.NONE&&this.dispatchEvent(y)}function $(s){switch(this.state){case h.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(s);break;case h.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(s);break;case h.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(s);break}}function tt(s){this.enabled===!1||this.enableZoom===!1||this.state!==h.NONE||(s.preventDefault(),this.dispatchEvent(y),this._handleMouseWheel(this._customWheelEvent(s)),this.dispatchEvent(p))}function et(s){this.enabled!==!1&&this._handleKeyDown(s)}function st(s){switch(this._trackPointer(s),this._pointers.length){case 1:switch(this.touches.ONE){case a.TOUCH.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(s),this.state=h.TOUCH_ROTATE;break;case a.TOUCH.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(s),this.state=h.TOUCH_PAN;break;default:this.state=h.NONE}break;case 2:switch(this.touches.TWO){case a.TOUCH.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(s),this.state=h.TOUCH_DOLLY_PAN;break;case a.TOUCH.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(s),this.state=h.TOUCH_DOLLY_ROTATE;break;default:this.state=h.NONE}break;default:this.state=h.NONE}this.state!==h.NONE&&this.dispatchEvent(y)}function it(s){switch(this._trackPointer(s),this.state){case h.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(s),this.update();break;case h.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(s),this.update();break;case h.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(s),this.update();break;case h.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(s),this.update();break;default:this.state=h.NONE}}function nt(s){this.enabled!==!1&&s.preventDefault()}function ct(s){s.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function xt(s){s.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}const ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REVGODRBRjIyRjU2MTFFNUExM0Y4OUExMTc4QTBCQUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REVGODRBRjMyRjU2MTFFNUExM0Y4OUExMTc4QTBCQUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpERUY4NEFGMDJGNTYxMUU1QTEzRjg5QTExNzhBMEJBQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpERUY4NEFGMTJGNTYxMUU1QTEzRjg5QTExNzhBMEJBQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgDz1z0AAAZeSURBVHja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",ot="data:image/png;base64,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