/* */_jsload&&_jsload('mapgl', 'bw.register(function(i){if(i._renderType!=="webgl"||i._destroyed){return}i._webglMapCamera=new gi(i);var e=new ck(i,i._webglMapCamera);i._webglPainter=e;i._webglMapScene=new eM(i,e);new bl(i);if(i.config.showControls===true){this._navigationCtrl=new eR(i)}i.fire(new fA("onglmoduleloaded"))});function gi(i){this._map=i;this._fovy=35;this._fovyRadian=this._fovy*Math.PI/180;this._projectionMatrix=mat4.create();this._modelViewMatrix=mat4.create();this._projectionMatrix3D=mat4.create();this._projectionMatrix3DInverse=mat4.create();this._projectionMatrix3D64=mat4.create(Float64Array);this._projectionMatrix3DInverse64=mat4.create(Float64Array);this._projectionMatrixLabel3D64=mat4.create(Float64Array);this._modelViewMatrix3D=mat4.create();this._modelViewMatrixLineLabel=mat4.create();this._modelViewMatrixMCPlane64=mat4.create(Float64Array);this._modelViewMatrixMCPlaneInverse64=mat4.create(Float64Array);this._modelViewMatrixMCPlane=mat4.create();this._modelViewMatrixMC3D=mat4.create();this._modelViewMatrixPoly=mat4.create();this._modelViewMatrixLayer=mat4.create();this._ray=new dL.Ray();this._tempV4=vec4.create(Float64Array);this._tempRes=vec4.create();this._tempNdc=vec4.create();this._near=10;this._far=4000;this._farLabel=2800;if(!this._map.config.restrictCenter){this._far=3000;var e=this._map.getSize();if(e.height>1500){this._far=e.height*2}this._farLabel=2000}this._frustumSideLen=this._far/Math.cos(this._fovyRadian);this._init()}eP.extend(gi.prototype,{_init:function(){var e=this;e._renderTilt=e._getRenderTilt();e._updateSize();e._updateProjectionMatrix();e._updatePolyMatrix();e._updatePlaneMatrix();e._updatePolyLayerMatrix();this._map.on("updateoverlaymatrix",function(i){e._updatePolyMatrix()})},update:function(T){var i=this;i._renderTilt=i._getRenderTilt();if("onsize_changed" in T.changedStatus){i._updateSize();i._updateProjectionMatrix()}i._updatePolyMatrix();i._updatePlaneMatrix();i._updatePolyLayerMatrix()},_getRenderTilt:function(){var T=this._map;var e=T.getTilt();var i=T.getZoom();if(e!==0&&i=T._enableTiltZoom-2){e=(1-(T._enableTiltZoom-i)/2)*e}else{e=0}}return e},_updateSize:function(){var e=this._map.getSize();this._width=e.width;this._height=e.height;this._widthHeightRatio=this._width/this._height;this._translateZ=Math.round(-this._height/(2*Math.tan(this._fovyRadian/2)));this._farLabel=Math.abs(this._translateZ)+1400},_updateProjectionMatrix:function(){var i=this._map;var e=i.getSize();mat4.ortho(this._projectionMatrix,0,e.width,0,e.height,this._near,this._far);mat4.perspective(this._projectionMatrix3D64,this._fovyRadian,this._widthHeightRatio,this._near,this._far);mat4.invert(this._projectionMatrix3DInverse64,this._projectionMatrix3D64);this._projectionMatrix3D=mat4.clone(this._projectionMatrix3D64);this._projectionMatrix3DInverse=mat4.clone(this._projectionMatrix3DInverse64);mat4.perspective(this._projectionMatrixLabel3D64,this._fovyRadian,this._widthHeightRatio,this._near,this._farLabel)},getProjectionMatrix:function(){return this._projectionMatrix},getProjectionMatrix3D:function(){return this._projectionMatrix3D},getMCPlaneMVMatrix:function(){return this._modelViewMatrixMCPlane},getMC3DMVMatrix:function(){return this._modelViewMatrixMC3D},getXYZCustomModelViewMatrix3D:function(j4,j1){var jX=j4.col;var jW=j4.row;var j9=j4.zoom;var jV=j4.loopOffsetX||0;var j7=this._map;var j2=j7.getZoom();mat4.identity(this._modelViewMatrix3D);var j3=j7.getCenterIn();var T=du.getPointPixelCoor(j3,j9,j4.transform);var j5=Math.pow(2,j9-18);var i=jV*j5;var j0=T[0];var jZ=T[1];var ka=du.getResolutionScale(j9,j4.transform);var e=Math.pow(2,j2-j9);var j6=du.getXYZCellPixelCoor(jX,jW,j9,j4.transform);var jY=this._modelViewMatrix3D;var j8=this._translateZ;if(this._renderTilt!==0){mat4.translate(jY,jY,[0,0,j8]);mat4.rotate(jY,jY,im(this._renderTilt),[-1,0,0]);mat4.translate(jY,jY,[0,0,-j8])}if(j7._heading%360!==0){mat4.rotate(jY,jY,im(j7._heading),[0,0,-1])}mat4.translate(jY,jY,[0,0,j8]);mat4.scale(jY,jY,[e,e,e]);mat4.translate(jY,jY,[0,0,-j8]);mat4.translate(jY,jY,[(j6.x-j0)*ka+i,(j6.y-jZ)*ka,j8]);if(j1!==undefined){mat4.scale(jY,jY,[j1,j1,j1])}return this._modelViewMatrix3D},getModelViewMatrix3D:function(jV){var e=jV.col;var j8=jV.row;var j5=jV.zoom;var j1=jV.loopOffsetX;var j7=jV.baseTileSize;var T=this._map;var jZ=T.getZoom();mat4.identity(this._modelViewMatrix3D);var j6=T.getCenterIn();var j3=Math.pow(2,j5-18);var j0=j1*j3;var j4=j6.lng*j3;var j2=j6.lat*j3;var jW=Math.pow(2,jZ-j5);var jX=new fa(e*j7,j8*j7);var jY=this._modelViewMatrix3D;var i=this._translateZ;if(this._renderTilt!==0){mat4.translate(jY,jY,[0,0,i]);mat4.rotate(jY,jY,im(this._renderTilt),[-1,0,0]);mat4.translate(jY,jY,[0,0,-i])}if(T._heading%360!==0){mat4.rotate(jY,jY,im(T._heading),[0,0,-1])}mat4.translate(jY,jY,[0,0,i]);mat4.scale(jY,jY,[jW,jW,jW]);mat4.translate(jY,jY,[0,0,-i]);mat4.translate(jY,jY,[jX.x-j4+j0,jX.y-j2,i]);return this._modelViewMatrix3D},getModelViewMatrixForLineLabel:function(jV){var i=this._map;if(!i.loaded){return}var jY=this._modelViewMatrixLineLabel;mat4.identity(jY);var T=this._translateZ;var j1=i.centerPoint;var j0=i.zoomLevel;var j2=i.getZoomUnits();var e=jV.col;var j5=jV.row;var j4=jV.baseTileSize;var jW=Math.pow(2,j0-jV.zoom);var jX={x:e*j4*jW,y:j5*j4*jW};var jZ=[jX.x-j1.lng/j2,jX.y-j1.lat/j2,T];if(this._renderTilt!==0){mat4.translate(jY,jY,[0,0,T]);mat4.rotate(jY,jY,im(this._renderTilt),[-1,0,0]);mat4.translate(jY,jY,[0,0,-T])}if(i._heading%360!==0){mat4.rotate(jY,jY,im(i._heading),[0,0,-1])}mat4.translate(jY,jY,jZ);var j3=Math.pow(2,j0-18);mat4.scale(jY,jY,[j3,j3,Math.pow(2,j0-20)]);return this._modelViewMatrixLineLabel},_updatePlaneMatrix:function(){var jZ=this._map;if(!jZ.loaded){return}var jW=this._modelViewMatrixMCPlane64;mat4.identity(jW);var jV=this._translateZ;var T=jZ.centerPoint;var jY=jZ.zoomLevel;var jX=jZ.getZoomUnits();var i=[-T.lng/jX,-T.lat/jX,jV];if(this._renderTilt!==0){mat4.translate(jW,jW,[0,0,jV]);mat4.rotate(jW,jW,im(this._renderTilt),[-1,0,0]);mat4.translate(jW,jW,[0,0,-jV])}if(jZ._heading%360!==0){mat4.rotate(jW,jW,im(jZ._heading),[0,0,-1])}mat4.translate(jW,jW,i);var e=Math.pow(2,jY-18);mat4.scale(jW,jW,[e,e,Math.pow(2,jY-20)]);mat4.invert(this._modelViewMatrixMCPlaneInverse64,jW);this._modelViewMatrixMCPlane=mat4.clone(this._modelViewMatrixMCPlane64)},_updatePolyMatrix:function(){if(!this._map._polyOverlayBasePoint){return}var jZ=this._map;var jY=jZ.getZoom();mat4.identity(this._modelViewMatrixPoly);var jX=jZ.getCenterIn();var i=Math.pow(2,jY-18);var e=jX.sub(jZ._polyOverlayBasePoint).mult(i);var jV=this._translateZ;var T=this._modelViewMatrixPoly;if(this._renderTilt!==0){mat4.translate(T,T,[0,0,jV]);mat4.rotate(T,T,im(this._renderTilt),[-1,0,0]);mat4.translate(T,T,[0,0,-jV])}if(jZ._heading%360!==0){mat4.rotate(T,T,im(jZ._heading),[0,0,-1])}mat4.translate(T,T,[-e.lng,-e.lat,jV]);var jW=i;mat4.scale(T,T,[jW,jW,jW])},_updatePolyLayerMatrix:function(){var jZ=this._map;if(!jZ._normalLayerMgr){return}var jY=jZ.getZoom();mat4.identity(this._modelViewMatrixLayer);var jX=jZ.getCenterIn();var i=Math.pow(2,jY-18);var e=jX.sub(jZ._normalLayerMgr.base).mult(i);var jV=this._translateZ;var T=this._modelViewMatrixLayer;if(this._renderTilt!==0){mat4.translate(T,T,[0,0,jV]);mat4.rotate(T,T,im(this._renderTilt),[-1,0,0]);mat4.translate(T,T,[0,0,-jV])}if(jZ._heading%360!==0){mat4.rotate(T,T,im(jZ._heading),[0,0,-1])}mat4.translate(T,T,[-e.lng,-e.lat,jV]);var jW=i;mat4.scale(T,T,[jW,jW,jW])},getModelViewMatrixPoly:function(){return this._modelViewMatrixPoly},castRay:function(T,jW){var i=this._ray;var e=T.x;var jZ=T.y;var jV=vec3.create(Float64Array);var jX=vec4.set(this._tempV4,e,jZ,-1,1);this._calcV4InCastRay(jX,jW);vec3.scale(jV,jX,1/jX[3]);var jY=vec3.create(Float64Array);jX=vec4.fromValues(e,jZ,1,1,Float64Array);this._calcV4InCastRay(jX,jW);vec3.scale(jX,jX,1/jX[3]);vec3.sub(jY,jX,jV);vec3.normalize(jY,jY);i.set(jV,jY);return i},_calcV4InCastRay:function(jX,T){if(!T||!T.matrixInfo){mat4.multiply(jX,this._projectionMatrix3DInverse64,jX);mat4.multiply(jX,this._modelViewMatrixMCPlaneInverse64,jX)}else{if(T.matrixInfo){var e=T.matrixInfo.projectionMatrix;var jV=mat4.create(Float64Array);if(e){mat4.invert(jV,e)}else{jV=this._projectionMatrix3DInverse64}var i=T.matrixInfo.modelViewMatrix;var jW=mat4.create(Float64Array);if(i){mat4.invert(jW,i)}else{jW=this._projectionMatrix3DInverse64}mat4.multiply(jX,jV,jX);mat4.multiply(jX,jW,jX)}}},fromXYZToNDC:function(jY,jW,T,j0){var jV=vec4.set(this._tempV4,jY,jW,T,1);var i=this._tempRes;j0=j0||{};var e=this._modelViewMatrixMCPlane64;var jX=this._projectionMatrix3D64;if(j0.matrixInfo){e=j0.matrixInfo.modelViewMatrix||e;jX=j0.matrixInfo.projectionMatrix||jX}mat4.multiply(i,e,jV);mat4.multiply(i,jX,i);var jZ=vec4.set(this._tempNdc,i[0]/i[3],i[1]/i[3],i[2]/i[3],1);jZ.outOfFrustum=false;if(j0.frustumTest){if(i[0]<-i[3]||i[0]>i[3]||i[1]<-i[3]||i[1]>i[3]||i[2]<-i[3]||i[2]>i[3]){jZ.outOfFrustum=true}}jZ.w=i[3];return jZ},fromMCToScreenPixel:function(jW,jV,j2){j2=j2||{};var T={matrixInfo:{}};if(j2.center||j2.zoom||typeof j2.heading==="number"||typeof j2.tilt==="number"){var jZ=j2.zoom||this._map.zoomLevel;var e=j2.center||this._map.centerPoint;var j1=typeof j2.heading==="number"?j2.heading:this._map.getHeading();var j0=typeof j2.tilt==="number"?j2.tilt:this._renderTilt;T.matrixInfo.modelViewMatrix=this.generateMVMatrix(e,jZ,j1,j0)}T.frustumTest=j2.frustumTest;if(j2.forLabel){T.matrixInfo.projectionMatrix=this._projectionMatrixLabel3D64}var jY=j2.height||0;var jX=this.fromXYZToNDC(jW,jV,jY,T);if(!jX){return null}var i=new fa(((jX[0]+1)*this._map.width/2),((1-jX[1])*this._map.height/2));i.depth=(jX[2]+1)*0.5;i.w=jX.w;i.outOfFrustum=jX.outOfFrustum;return i},fromScreenPixelToMC:function(j2,jY,j8){var j1=j2*2/this._map.width-1;var jZ=1-jY*2/this._map.height;j8=j8||{};var T=null;if(j8.zoom||j8.center||typeof j8.heading==="number"||typeof j8.tilt==="number"){var i=this._map;var j5=j8.zoom||i.zoomLevel;var e=j8.center||i.centerPoint;var j7=typeof j8.heading==="number"?j8.heading:i.getHeading();var j4=typeof j8.tilt==="number"?j8.tilt:this._renderTilt;T={matrixInfo:{modelViewMatrix:this.generateMVMatrix(e,j5,j7,j4)}}}var j0=this.castRay(new fa(j1,jZ),T);var jV=vec3.fromValues(0,0,1,Float64Array);var jX=vec3.dot(jV,j0.origin);var jW=vec3.dot(jV,j0.direction);var j3=-jX/jW;var j6=vec3.create(Float64Array);vec3.scaleAndAdd(j6,j0.origin,j0.direction,j3);j6[0]=Math.round(j6[0]*100000)/100000;j6[1]=Math.round(j6[1]*100000)/100000;return new cu(j6[0],j6[1])},generateMVMatrix:function(e,jZ,j1,j0){var i=this._map;if(!i.loaded){return}e=e||i.centerPoint;jZ=jZ||i.zoomLevel;j1=typeof j1==="number"?j1:i._heading;j0=typeof j0==="number"?j0:this._renderTilt;var jV=mat4.create(Float64Array);mat4.identity(jV);var T=this._translateZ;var jX=i.getZoomUnits(jZ);var jW=[-e.lng/jX,-e.lat/jX,T];if(j0!==0){mat4.translate(jV,jV,[0,0,T]);mat4.rotate(jV,jV,im(j0),[-1,0,0]);mat4.translate(jV,jV,[0,0,-T])}if(j1%360!==0){mat4.rotate(jV,jV,im(j1),[0,0,-1])}mat4.translate(jV,jV,jW);var jY=Math.pow(2,jZ-18);mat4.scale(jV,jV,[jY,jY,1]);return jV},getPosition:function(e){e=e||this._modelViewMatrixMCPlaneInverse64;return vec3.transformMat4(vec3.create(Float64Array),vec3.fromValues(0,0,0,Float64Array),e)}});function eM(i,e){this._map=i;this._camera=i._webglMapCamera;this._painter=e;this._changedStatus={};this._statusChanged=false;this._rAFStarted=false;this._enabled=true;if(i.getMapType()==="B_EARTH_MAP"){this._enabled=false}this._onEachFrame=(function(T){return function(){T._updateFrame()}})(this);this._init()}eP.extend(eM.prototype,{_init:function(){this._fpsStarted=false;this._mapStatusIdle=true;this._bind();this._statusChanged=true;this.startRenderThread();var e=new N();var T=this;var jV=this._map;jV.on("movestart",function(){if(T._fpsStarted){return}T._fpsStarted=true;e.startFPS()});jV.on("moveend",function(){if(!T._fpsStarted){return}T._fpsStarted=false;e.stopFPS()});jV.on("zoomstart",function(){if(T._fpsStarted){return}T._fpsStarted=true;e.startFPS()});jV.on("zoomend",function(){if(!T._fpsStarted){return}T._fpsStarted=false;e.stopFPS()});function i(){if(!e.fpsStarted){return}if(jV.getMapType()!=="B_NORMAL_MAP"){return}var jY=e.getAverageFPS();var jX=e.getHigherAverageFPS();var jW=new fA("onfpsdata_ready");jW.fps=jY;jW.fpsH=jX;jV.fire(jW);e.clearFPSData()}setTimeout(i,5000);this._fpsInterval=setInterval(i,10000)},_bind:function(){var jV=this._map;var e=this;function jX(jY){e._changedStatus[jY.type]=jY||true;e._statusChanged=true;e.startRenderThread()}jV.on("zoom_changed",jX);jV.on("center_changed",jX);jV.on("heading_changed",jX);jV.on("tilt_changed",jX);jV.on("size_changed",jX);jV.on("displayoptions_changed",jX);jV.on("mapglidle_inner",function(){cancelAnimationFrame(e.renderTimer);e._rAFStarted=false;this.fire(new fA("onrenderthreadstop"));this.fire(new fA("onmapglidle"));e.renderTimer=null});var T=function(jY){e.startRenderThread()};jV.on("refresh",T);function jW(){if(this.mapType==="B_EARTH_MAP"){e._enabled=false;cancelAnimationFrame(e.renderTimer);e._rAFStarted=false;jV.fire(new fA("onrenderthreadstop"));e.renderTimer=null}else{e._enabled=true;e.startRenderThread()}}jV.on("maptypechange",jW);function i(){if(document.hidden){cancelAnimationFrame(e.renderTimer)}else{e.startRenderThread()}}jV.on("destroy",function(){this.off("zoom_changed",jX);this.off("center_changed",jX);this.off("heading_changed",jX);this.off("tilt_changed",jX);this.off("size_changed",jX);this.off("displayoptions_changed",jX);this.off("refresh",T);this.off("maptypechange",jW);document.removeEventListener("visibilitychange",i,false);cancelAnimationFrame(e.renderTimer);clearInterval(e._fpsInterval);e._fpsInterval=null})},startRenderThread:function(){if(!this._enabled){return}var T=this;if(T.idleTimer){clearTimeout(T.idleTimer)}T.idleTimer=setTimeout(function i(){T._map.fire(new fA("onmapglidle_inner"));T.idleTimer=null},200);if(T._statusChanged===true){if(T._mapStatusIdle===true){T._mapStatusIdle=false;T._map.fire(new fA("onmapstatusbusy_inner"))}if(T.statusIdleTimer){clearTimeout(T.statusIdleTimer)}T.statusIdleTimer=setTimeout(function e(){T._mapStatusIdle=true;T._map.fire(new fA("onmapstatusidle_inner"));T.statusIdleTimer=null},100)}if(this._rAFStarted===true){return}this._rAFStarted=true;this.renderTimer=requestAnimationFrame(this._onEachFrame)},_updateFrame:function(){this.renderTimer=requestAnimationFrame(this._onEachFrame);this._map.fire(new fA("onbeforeupdateframe"));if(this._rAFStarted===false){cancelAnimationFrame(this.renderTimer);return}var T=hX();if(this._statusChanged){this._statusChanged=false;var e=new fA("onupdate");e.changedStatus=this._changedStatus;if(this._changedStatus.onsize_changed){this._resizeMap(this._changedStatus.onsize_changed.oldSize)}this._camera.update(e);this._map.fire(e);this._changedStatus={}}this._painter.draw({idle:this._mapStatusIdle});var jV=hX()-T;var i=new fA("onupdateframe");i.frameTime=jV;this._map.fire(i)},_resizeMap:function(e){var T=this._map;var jV=T.getSize();var j0=(jV.width-e.width)/2;var jX=(jV.height-e.height)/2;var i=j0;var jY=jX;if(T._heading!==0){var j2=im(T._heading);i=Math.abs(Math.cos(j2)*j0)+Math.abs(Math.sin(j2)*jX);jY=Math.abs(Math.sin(j2)*j0)+Math.abs(Math.cos(j2)*jX)}var jZ=T.getZoomUnits();var j1=T.centerPoint;if(j1&&!T.config.enableResizeOnCenter){if(T._heading%360!==0||T._tilt>0){var jW=new fa(jV.width/2,jV.height/2);T.centerPoint=T.restrictCenter(T.pixelToPointIn(jW))}else{T.centerPoint=T.restrictCenter(new cu(j1.lng+i*jZ,j1.lat-jY*jZ))}}}});function N(){this._fps=0;this.preFrameTimeStamp=Date.now();this.currentTime=null;this.fpsArr=[];this.averageFPS=0;this.higherAverageFPS=0;this.averageTimeInterval=20;this.fpsStarted=false}N.prototype.startFPS=function(){this.fpsStarted=true;this.preFrameTimeStamp=Date.now();this.initFPS()};N.prototype.initFPS=function(){this._fps++;this.currentTime=Date.now();if(this.currentTime-this.preFrameTimeStamp>500){var i=this._fps*2;i=i>60?60:i;this.fpsArr.push(i);if(this.fpsArr.length===this.averageTimeInterval){this._calcAverageFPS()}this._fps=0;this.preFrameTimeStamp=this.currentTime}var e=this;this.timer=requestAnimationFrame(function(){e.initFPS()})};N.prototype._calcAverageFPS=function(){if(this.fpsArr.length===0){return}var jV=0;var e=0;this.fpsArr.sort(function(jX,i){return i-jX});var jW=Math.round(this.fpsArr.length*0.8);for(var T=0;T60?60:i;this.fpsArr.push(i);this._fps=0}}};N.prototype.clearFPSData=function(){this.averageFPS=0;this.higherAverageFPS=0;this.fpsStarted=false};var jq=(function(){var e={" ":[16,[]],"!":[10,[5,21,5,7,-1,-1,5,2,4,1,5,0,6,1,5,2]],\'"\':[16,[4,21,4,14,-1,-1,12,21,12,14]],"#":[21,[11,25,4,-7,-1,-1,17,25,10,-7,-1,-1,4,12,18,12,-1,-1,3,6,17,6]],"$":[20,[8,25,8,-4,-1,-1,12,25,12,-4,-1,-1,17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],"%":[24,[21,21,3,0,-1,-1,8,21,10,19,10,17,9,15,7,14,5,14,3,16,3,18,4,20,6,21,8,21,10,20,13,19,16,19,19,20,21,21,-1,-1,17,7,15,6,14,4,14,2,16,0,18,0,20,1,21,3,21,5,19,7,17,7]],"&":[26,[23,12,23,13,22,14,21,14,20,13,19,11,17,6,15,3,13,1,11,0,7,0,5,1,4,2,3,4,3,6,4,8,5,9,12,13,13,14,14,16,14,18,13,20,11,21,9,20,8,18,8,16,9,13,11,10,16,3,18,1,20,0,22,0,23,1,23,2]],"(":[14,[11,25,9,23,7,20,5,16,4,11,4,7,5,2,7,-2,9,-5,11,-7]],")":[14,[3,25,5,23,7,20,9,16,10,11,10,7,9,2,7,-2,5,-5,3,-7]],"*":[16,[8,21,8,9,-1,-1,3,18,13,12,-1,-1,13,18,3,12]],"+":[26,[13,18,13,0,-1,-1,4,9,22,9]],",":[10,[6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"-":[26,[4,9,22,9]],".":[10,[5,2,4,1,5,0,6,1,5,2]],"/":[22,[20,25,2,-7]],"0":[20,[9,21,6,20,4,17,3,12,3,9,4,4,6,1,9,0,11,0,14,1,16,4,17,9,17,12,16,17,14,20,11,21,9,21]],"1":[20,[6,17,8,18,11,21,11,0]],"2":[20,[4,16,4,17,5,19,6,20,8,21,12,21,14,20,15,19,16,17,16,15,15,13,13,10,3,0,17,0]],"3":[20,[5,21,16,21,10,13,13,13,15,12,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],"4":[20,[13,21,3,7,18,7,-1,-1,13,21,13,0]],"5":[20,[15,21,5,21,4,12,5,13,8,14,11,14,14,13,16,11,17,8,17,6,16,3,14,1,11,0,8,0,5,1,4,2,3,4]],"6":[20,[16,18,15,20,12,21,10,21,7,20,5,17,4,12,4,7,5,3,7,1,10,0,11,0,14,1,16,3,17,6,17,7,16,10,14,12,11,13,10,13,7,12,5,10,4,7]],"7":[20,[17,21,7,0,-1,-1,3,21,17,21]],"8":[20,[8,21,5,20,4,18,4,16,5,14,7,13,11,12,14,11,16,9,17,7,17,4,16,2,15,1,12,0,8,0,5,1,4,2,3,4,3,7,4,9,6,11,9,12,13,13,15,14,16,16,16,18,15,20,12,21,8,21]],"9":[20,[16,14,15,11,13,9,10,8,9,8,6,9,4,11,3,14,3,15,4,18,6,20,9,21,10,21,13,20,15,18,16,14,16,9,15,4,13,1,10,0,8,0,5,1,4,3]],":":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,5,2,4,1,5,0,6,1,5,2]],";":[10,[5,14,4,13,5,12,6,13,5,14,-1,-1,6,1,5,0,4,1,5,2,6,1,6,-1,5,-3,4,-4]],"<":[24,[20,18,4,9,20,0]],"=":[26,[4,12,22,12,-1,-1,4,6,22,6]],">":[24,[4,18,20,9,4,0]],"?":[18,[3,16,3,17,4,19,5,20,7,21,11,21,13,20,14,19,15,17,15,15,14,13,13,12,9,10,9,7,-1,-1,9,2,8,1,9,0,10,1,9,2]],"@":[27,[18,13,17,15,15,16,12,16,10,15,9,14,8,11,8,8,9,6,11,5,14,5,16,6,17,8,-1,-1,12,16,10,14,9,11,9,8,10,6,11,5,-1,-1,18,16,17,8,17,6,19,5,21,5,23,7,24,10,24,12,23,15,22,17,20,19,18,20,15,21,12,21,9,20,7,19,5,17,4,15,3,12,3,9,4,6,5,4,7,2,9,1,12,0,15,0,18,1,20,2,21,3,-1,-1,19,16,18,8,18,6,19,5]],A:[18,[9,21,1,0,-1,-1,9,21,17,0,-1,-1,4,7,14,7]],B:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,-1,-1,4,11,13,11,16,10,17,9,18,7,18,4,17,2,16,1,13,0,4,0]],C:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5]],D:[21,[4,21,4,0,-1,-1,4,21,11,21,14,20,16,18,17,16,18,13,18,8,17,5,16,3,14,1,11,0,4,0]],E:[19,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11,-1,-1,4,0,17,0]],F:[18,[4,21,4,0,-1,-1,4,21,17,21,-1,-1,4,11,12,11]],G:[21,[18,16,17,18,15,20,13,21,9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,18,8,-1,-1,13,8,18,8]],H:[22,[4,21,4,0,-1,-1,18,21,18,0,-1,-1,4,11,18,11]],I:[8,[4,21,4,0]],J:[16,[12,21,12,5,11,2,10,1,8,0,6,0,4,1,3,2,2,5,2,7]],K:[21,[4,21,4,0,-1,-1,18,21,4,7,-1,-1,9,12,18,0]],L:[17,[4,21,4,0,-1,-1,4,0,16,0]],M:[24,[4,21,4,0,-1,-1,4,21,12,0,-1,-1,20,21,12,0,-1,-1,20,21,20,0]],N:[22,[4,21,4,0,-1,-1,4,21,18,0,-1,-1,18,21,18,0]],O:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21]],P:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,14,17,12,16,11,13,10,4,10]],Q:[22,[9,21,7,20,5,18,4,16,3,13,3,8,4,5,5,3,7,1,9,0,13,0,15,1,17,3,18,5,19,8,19,13,18,16,17,18,15,20,13,21,9,21,-1,-1,12,4,18,-2]],R:[21,[4,21,4,0,-1,-1,4,21,13,21,16,20,17,19,18,17,18,15,17,13,16,12,13,11,4,11,-1,-1,11,11,18,0]],S:[20,[17,18,15,20,12,21,8,21,5,20,3,18,3,16,4,14,5,13,7,12,13,10,15,9,16,8,17,6,17,3,15,1,12,0,8,0,5,1,3,3]],T:[16,[8,21,8,0,-1,-1,1,21,15,21]],U:[22,[4,21,4,6,5,3,7,1,10,0,12,0,15,1,17,3,18,6,18,21]],V:[18,[1,21,9,0,-1,-1,17,21,9,0]],W:[24,[2,21,7,0,-1,-1,12,21,7,0,-1,-1,12,21,17,0,-1,-1,22,21,17,0]],X:[20,[3,21,17,0,-1,-1,17,21,3,0]],Y:[18,[1,21,9,11,9,0,-1,-1,17,21,9,11]],Z:[20,[17,21,3,0,-1,-1,3,21,17,21,-1,-1,3,0,17,0]],"[":[14,[4,25,4,-7,-1,-1,5,25,5,-7,-1,-1,4,25,11,25,-1,-1,4,-7,11,-7]],"]":[14,[9,25,9,-7,-1,-1,10,25,10,-7,-1,-1,3,25,10,25,-1,-1,3,-7,10,-7]],"^":[16,[6,15,8,18,10,15,-1,-1,3,12,8,17,13,12,-1,-1,8,17,8,0]],_:[16,[0,-2,16,-2]],"`":[10,[6,21,5,20,4,18,4,16,5,15,6,16,5,17]],a:[19,[15,14,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],b:[19,[4,21,4,0,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],c:[18,[15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],d:[19,[15,21,15,0,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],e:[18,[3,8,15,8,15,10,14,12,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],f:[12,[10,21,8,21,6,20,5,17,5,0,-1,-1,2,14,9,14]],g:[19,[15,14,15,-2,14,-5,13,-6,11,-7,8,-7,6,-6,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],h:[19,[4,21,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],i:[8,[3,21,4,20,5,21,4,22,3,21,-1,-1,4,14,4,0]],j:[10,[5,21,6,20,7,21,6,22,5,21,-1,-1,6,14,6,-3,5,-6,3,-7,1,-7]],k:[17,[4,21,4,0,-1,-1,14,14,4,4,-1,-1,8,8,15,0]],l:[8,[4,21,4,0]],m:[30,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0,-1,-1,15,10,18,13,20,14,23,14,25,13,26,10,26,0]],n:[19,[4,14,4,0,-1,-1,4,10,7,13,9,14,12,14,14,13,15,10,15,0]],o:[19,[8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3,16,6,16,8,15,11,13,13,11,14,8,14]],p:[19,[4,14,4,-7,-1,-1,4,11,6,13,8,14,11,14,13,13,15,11,16,8,16,6,15,3,13,1,11,0,8,0,6,1,4,3]],q:[19,[15,14,15,-7,-1,-1,15,11,13,13,11,14,8,14,6,13,4,11,3,8,3,6,4,3,6,1,8,0,11,0,13,1,15,3]],r:[13,[4,14,4,0,-1,-1,4,8,5,11,7,13,9,14,12,14]],s:[17,[14,11,13,13,10,14,7,14,4,13,3,11,4,9,6,8,11,7,13,6,14,4,14,3,13,1,10,0,7,0,4,1,3,3]],t:[12,[5,21,5,4,6,1,8,0,10,0,-1,-1,2,14,9,14]],u:[19,[4,14,4,4,5,1,7,0,10,0,12,1,15,4,-1,-1,15,14,15,0]],v:[16,[2,14,8,0,-1,-1,14,14,8,0]],w:[22,[3,14,7,0,-1,-1,11,14,7,0,-1,-1,11,14,15,0,-1,-1,19,14,15,0]],x:[17,[3,14,14,0,-1,-1,14,14,3,0]],y:[16,[2,14,8,0,-1,-1,14,14,8,0,6,-4,4,-6,2,-7,1,-7]],z:[17,[14,14,3,0,-1,-1,3,14,14,14,-1,-1,3,0,14,0]],"{":[14,[9,25,7,24,6,23,5,21,5,19,6,17,7,16,8,14,8,12,6,10,-1,-1,7,24,6,22,6,20,7,18,8,17,9,15,9,13,8,11,4,9,8,7,9,5,9,3,8,1,7,0,6,-2,6,-4,7,-6,-1,-1,6,8,8,6,8,4,7,2,6,1,5,-1,5,-3,6,-5,7,-6,9,-7]],"|":[8,[4,25,4,-7]],"}":[14,[5,25,7,24,8,23,9,21,9,19,8,17,7,16,6,14,6,12,8,10,-1,-1,7,24,8,22,8,20,7,18,6,17,5,15,5,13,6,11,10,9,6,7,5,5,5,3,6,1,7,0,8,-2,8,-4,7,-6,-1,-1,8,8,6,6,6,4,7,2,8,1,9,-1,9,-3,8,-5,7,-6,5,-7]],"~":[24,[3,6,3,8,4,11,6,12,8,12,10,11,14,8,16,7,18,7,20,8,21,10,-1,-1,3,8,4,10,6,11,8,11,10,10,14,7,16,6,18,6,20,7,21,10,21,12]]};return function(j6,T,j2,jW){jW=jW||1;var jY=[];var j0;var j1;var jZ;var jX;var j3;var j5;var j4;var jV;for(j0=0,j1=j6.length;j0=19){jV*=1.8}else{jV*=1.2}if(jX.lastState.scale!==jV){jY.uniform1f(jX.uniforms.u_scale,jV);jX.lastState.scale=jV}j1._state.activeTexture(jY.TEXTURE4);T(jY,j1);if(!jX.uniforms.lastSampler){jY.uniform1i(jX.uniforms.u_image,4);jX.uniforms.lastSampler=true}jW.vao1.bind(jY,jX,jW.vertex,jW.element1);jY.drawElements(jY.TRIANGLES,jW.element1.length,jY.UNSIGNED_SHORT,0)}})();var i5=(function(){return function(e,jV,T,jY,jX){var jZ=e.gl;var i=e.programMgr.useProgram("sky");jZ.depthMask(false);jZ.uniformMatrix4fv(i.uniforms.uPMatrix,false,e.projMatrix2D);jZ.uniformMatrix4fv(i.uniforms.uMVMatrix,false,jV);jZ.uniform4fv(i.uniforms.uGroundColor,jX[0]);jZ.uniform4fv(i.uniforms.uSkyColor,jX[1]||jX[0]);var jW=jY-T;jW=jW<0?0:jW;jZ.uniform1f(i.uniforms.uHorizonY,jW);e.skyVAO.bind(jZ,i,e.skyBuffer);jZ.drawArrays(jZ.TRIANGLES,0,e.skyBuffer.length);jZ.depthMask(true)}})();function fZ(jZ,jV){var T=jZ.gl;var i=jZ.programMgr.useProgram("debug");T.uniform4fv(i.uniforms.u_color,[1,0,0,1]);T.uniform1f(i.uniforms.u_opacity,1);T.uniformMatrix4fv(i.uniforms.u_proj_matrix,false,jZ.projMatrix);T.uniformMatrix4fv(i.uniforms.u_mv_matrix,false,jV.mvMatrix);jZ.debugVAO.bind(T,i,jZ.debugBuffer);T.drawArrays(T.LINE_STRIP,0,jZ.debugBuffer.length);jZ.debugVAO.unbind(T);var jY=mat4.create();jY=mat4.scale(jY,jY,[1,-1,1]);jY=mat4.multiply(jY,jV.mvMatrix,jY);T.uniformMatrix4fv(i.uniforms.u_mv_matrix,false,jY);var e=jV.tileInfo;var j1=jV.tileInfo.col+"-"+jV.tileInfo.row+"-"+jV.tileInfo.zoom;var jW=jq(j1,10,-10,0.5);var jX=new w(new Float32Array(jW),{alignment:1,components:2,members:[{name:"a_pos",components:2,offset:0,type:"Float32"}]},w.BufferType.VERTEX);var j0=new dH();j0.bind(T,i,jX);T.drawArrays(T.LINES,0,jX.length)}var bj=(function(){function jW(j4,j2,j3,j1,jX,jZ,jY){var j0=j4.createTexture();j4.bindTexture(j4.TEXTURE_2D,j0);j4.pixelStorei(j4.UNPACK_FLIP_Y_WEBGL,true);j4.texImage2D(j4.TEXTURE_2D,0,j3||j4.RGBA,j3||j4.RGBA,j4.UNSIGNED_BYTE,j2);j4.texParameteri(j4.TEXTURE_2D,j4.TEXTURE_MAG_FILTER,j1||j4.LINEAR);j4.texParameteri(j4.TEXTURE_2D,j4.TEXTURE_MIN_FILTER,jX||j4.LINEAR);j4.texParameteri(j4.TEXTURE_2D,j4.TEXTURE_WRAP_S,jZ||j4.CLAMP_TO_EDGE);j4.texParameteri(j4.TEXTURE_2D,j4.TEXTURE_WRAP_T,jY||j4.CLAMP_TO_EDGE);j4.bindTexture(j4.TEXTURE_2D,null);return j0}function T(jY,j0){var jX=new Image();jX.onload=function(){jY._smaaInfo.areaTexture=jW(j0,this,j0.RGB,j0.LINEAR,j0.LINEAR,null,null);if(jY._smaaInfo.areaTexture&&jY._smaaInfo.searchTexture){jY._smaaInfo.glDrawSMAAReady=true}};jX.src=i();var jZ=new Image();jZ.onload=function(){jY._smaaInfo.searchTexture=jW(j0,this,null,j0.NEAREST,j0.NEAREST,null,null);if(jY._smaaInfo.areaTexture&&jY._smaaInfo.searchTexture){jY._smaaInfo.glDrawSMAAReady=true}};jZ.src=e()}function jV(jX,jY){if(!jX._smaaInfo.textureBeginToLoad){T(jX,jY);jX._smaaInfo.textureBeginToLoad=true}}return{init:function(jX){jX._smaaInfo={areaTexture:null,searchTexture:null,textureBeginToLoad:false,glDrawSMAAReady:false}},loadTexture:jV,draw:function(j0,jZ,j2,jY,j3,jX){var j4=j0.gl;if(j0._smaaInfo.glDrawSMAAReady===false){return}j0._state.disableCap("blend");j4.bindFramebuffer(j4.FRAMEBUFFER,jY[1].framebuffer);var j1=j0.programMgr.useProgram("smaa1");jZ.vao1.bind(j4,j1,jZ.vertex);j4.uniform2fv(j1.uniforms.resolution,[1/j3,1/jX]);j4.uniformMatrix4fv(j1.uniforms.projectionMatrix,false,j0.projMatrix2D);j4.uniformMatrix4fv(j1.uniforms.modelViewMatrix,false,j2);j0._state.activeTexture(j4.TEXTURE1);j4.bindTexture(j4.TEXTURE_2D,jY[0].texture);j4.uniform1i(j1.uniforms.tDiffuse,1);j4.drawArrays(j4.TRIANGLES,0,jZ.vertex.length);j4.bindFramebuffer(j4.FRAMEBUFFER,null);j4.bindFramebuffer(j4.FRAMEBUFFER,jY[2].framebuffer);j1=j0.programMgr.useProgram("smaa2");jZ.vao2.bind(j4,j1,jZ.vertex);j4.uniform2fv(j1.uniforms.resolution,[1/j3,1/jX]);j4.uniformMatrix4fv(j1.uniforms.projectionMatrix,false,j0.projMatrix2D);j4.uniformMatrix4fv(j1.uniforms.modelViewMatrix,false,j2);j0._state.activeTexture(j4.TEXTURE1);j4.bindTexture(j4.TEXTURE_2D,jY[1].texture);j4.uniform1i(j1.uniforms.tDiffuse,1);j0._state.activeTexture(j4.TEXTURE2);j4.bindTexture(j4.TEXTURE_2D,j0._smaaInfo.areaTexture);j4.uniform1i(j1.uniforms.tArea,2);j0._state.activeTexture(j4.TEXTURE3);j4.bindTexture(j4.TEXTURE_2D,j0._smaaInfo.searchTexture);j4.uniform1i(j1.uniforms.tSearch,3);j4.drawArrays(j4.TRIANGLES,0,jZ.vertex.length);j4.bindFramebuffer(j4.FRAMEBUFFER,null);j1=j0.programMgr.useProgram("smaa3");jZ.vao3.bind(j4,j1,jZ.vertex);j4.uniform2fv(j1.uniforms.resolution,[1/j3,1/jX]);j4.uniformMatrix4fv(j1.uniforms.projectionMatrix,false,j0.projMatrix2D);j4.uniformMatrix4fv(j1.uniforms.modelViewMatrix,false,j2);j0._state.activeTexture(j4.TEXTURE1);j4.bindTexture(j4.TEXTURE_2D,jY[2].texture);j4.uniform1i(j1.uniforms.tDiffuse,1);j0._state.activeTexture(j4.TEXTURE2);j4.bindTexture(j4.TEXTURE_2D,jY[0].texture);j4.uniform1i(j1.uniforms.tColor,2);j4.drawArrays(j4.TRIANGLES,0,jZ.vertex.length);j0._state.enableCap("blend")}};function i(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAIwCAIAAACOVPcQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAdI5JREFUeNrsvVmsNMl1JnYiMqvu8q/dzW6yKVLdokYSh7RkakyOORIpaoOXsU0bMAzYwBh8sA3YD4KBeZGfBjD8Jj/YL7bhF43lkT1j+EELDGsIjDnijEjMSJrhIkoiKTXZP7tJsdd/vf+9VZUZ4YwTcSJORGTWza3u/dW3Aonq+qvzZmXFl+fEibN8R8DQ8S0ADVADrAFWAGcAj/E4YYf95BSPXxt2+Rfw8hXABi/fXGBTAFwDOMbXa/S+OY7w+DXYjy1Djvw7jYdCKCoE2+PtDwvwqGsDXb55kGCBxwEeh3gcsWM/to5yEro1Q5fjyiV47PNjL68EorskdDm0x/jJfswPMDDx3TDZ9dBOAFjHl3foWsE9Jlz9sQd4hwB78V0RtMkyfIqoTxBfAzBHN1mGj/YA7wJgrp+9IWRBfUTHCYnv2cjbsuKrS9TMRwTqdTqukfjuAd7VGpyg24D6kI5HpKLP8IQJ6j+g24B6gw4LsBXfgz2CuwN4jeg2cD7A4z4eD0k/W3RXIxWEfX4MihbamwC38LgRi+9yj+AuVLTC6T8jdO8B3MXjAelna06vLUpj9LND9xpCexvgKTxuMvE9QHT3AO8K4DVi2UD7NsBbeNwj8T1l6G5Gagcj+dcQ2mfouI0AJ+iWewR3AfAGgWxE9g2A1wBeR4Ct+J4iOIiu1FAMh9iuvvUSRfZZgOcA3g3wNImvR3eB974HeH6ArXw18vp9gO/i8Qb+88ShKyo38wX6yUYAbMS3kdf3APwAHs/iPz26HtpivCNuD3D32KAq/i46pb+FMN916CYz3xwCxlz+tLnE+wA+gMd7UJSvk0m1wKtP+YI9wOeMBt1XAL4K8EcArxrZLdZOrvy025kfN/mPC9CN1P44wE+g+N7GdTeBVrBjP2YG+JsAv2sO8V04qgy0ZTztwKZ9xPyvXwT4BMDPArwfN0X22ZExrqOvvgf43CH+Ccjfg+WrcFxHM59M+OjJVz8D0Bw/iuhaqd3jOmEMn61vkaV7Ro6Oh8zRYQ/r+rBera8Mu/wLzN2hfEwJX5M39th1fPov+5Ajz06iSWdxvIGc0qIaf2e67VDxIZOzdxOfvioAyxzgmlxaHl3mlG7QFZup99eKq0dXJiftLD79zl+DvXncEk2yWtFDi/q5gXYKwK2CWzP9LFsfuB3Ep68EwJJtgaLZXMfo0kps0N04jCeKr4pXYi+7RQ7wzuLT73CAiy6AN4SuhxajDmJtoJVWgquRuEKb4NojvZ8LiU+/YwEu4gkVfkIrChc+RGjvuqhDg65cB/EdLcFdyrnlfmDn8el3LMAFO2QyoXab9JACSm+aQ6xArmLxrScp55r0Lke3/X52Fp9+xwJcZrMZJNjGG2y48E2MJr0O8hQBXqOKRnRFDULNA3C1/X52HJ9+BwJc0iEz768D+BTnsYH2LwC+B/IxyDMnvk45o1Ek6qnobgjdbfezy/j0OxDgRRaziSbUzuYDjAS/CvAdkI+g8OK7QcFFcOSoaJ6OjfTNufez4/j0Ow1gmyjhlaHIowgVLmnNPL4M8GdQPIDiBMQZrrsbp5aLfJ86yB3N3BXn38+O49PvKIAPKQ2myKJ+4XWFavDPTMSwfBuKR0Y523U3/0MxCt2aHBW97mfH8el3DsDXwMX+zgnNNdP3dYDfg8X3oXxg0C3qbRgMHTXtrvvez47j0+8EgCWG5g6zsC604vQHIH4bli/B4iEsVXvEcMpU2i3rzf73s+P49F96gA+oLsRnOG2fhfILsPg6HD6ApTZTuYtY7fGQ+9l1fHo/9mM/9mM/9mM/9mM/9mM/9mM/9mM/9mM/9mM/9mM/9mM/9mM/9mM/9mM/9uNJHGPrg9vKGsLxNn54D//vwPFCVilYCdBLUAvQC/bGHiW88JU9v/S2MTDv8RarKkmKvU5YCZovLLg1/s583YouQGM+dAOnOwhdQ86y55eeDeDbeNih2sqBWAmaeeXnD0fXA9zco07QxTeOujJG9xx+6T3AneMpZCN7ik2nLx89IV3ta0buxudPkGAjuEWA1utnk5aHxzB+6eMrB3C/AvBnECpLJghxOdAJlaDdZWtwcv5Y8a0hoMuXXqP5bxIx6Z5feirAzxJgluxVx9V8cYGhqSpIzp8gvtoqZ7StjPguzZtw5esOYNjzS48H+N0A72JcoNdp+jesfPQtKgp6reP8KeK7cNCqA0TXX9nzCu/5pccD/DwBZoXGzpSvtj7BdfdNrBb5Czxazx81nER6aJvjEK/8NBNf1Lp7fumxAL8fAXsW5/Q2zdQRycsp2sxvIK6v4tF1/ij9XAOtuwegDkEdIe3suxhrNFtT9/zSwwH+IaQDfQ+pxBtsmny55htY8vUyHi92nz9q9TXiuzRSWx+BarB8LwLsxZdJ5J5feiDAAmkEX0RxfBdD65CmqaYCw1exxvDPzjt/FMB1YQS3vgaqEcEfjC9+TBdHh8aeX3oIwAI5Xn+EWJqtuBwxKt8Sp9MW9P0JwNeQFnb7+cMBbhSEQfc61Dfx4u9D2G5nFy/M9ff80r0Bbn78TwF8CCf0WdJvHCpbg22rv78M8M8B/kaP8wcO4z6RUN2E6hl82l5EibwdU0azctU9v3Q/gJu5+LcBPoK20tO0dC3aymybdfdfAPx/AH+z3/kDx1rA5gZsnkdS4R9BdG+SLJasXpjKQ/f80j0AbhD6TwH+NZxNTtFcZFMjENr/F+A/633+wHF2G9YfBPg0wAfxxo4Zh4NogWrPL30ewP86wMcBfgHXuWPSfl0g2fd/c+D5Q8bmp0H/NMDHUNP6Ev/uWu49v/T28STGg2EQX/R+bB3DzcpB8eAJow9f9H7sAGDvSzw3HjzH2MIXvR87A7hPPBjmFN+cL3o/dg/wlngwzCa+rXzR+7H7NXhLPHgOXKGbL3o/LkSCu+LB88luq3LejwuR4K54MMwJcM4XvR8XBXAeD35l5tvK+aL34wIBTuLB394hups9uhcNcBIP/ub86CZ80ftxsQDzePBXyeSddXC+6P24cIB9PPiLu0LX80Xvx2UA/DrGg39nVx6Hmtwn+zHLGJ5y8RzA30PP885u6OFOVMMe4P7jz3d7T3uzecYxPB78AiQFucVmznLcfTvgy16DIS3I3UU57r4d8FyjHI8AoivUtnLcw2no7tsBXwbAcUHu9nLcQ5j0/OzbAV+SBDP52lE57r4d8GWraJSvUs9fjrtvB/zESHC1q3LcfTvgy16DCYEdlePu2wFftgQrh+4uynH37YCfAAnGaMCOynH37YAvG2BcfZf1rspxe7cDduxoe5B3APBqh+W457UDNsyGV7oh8M4B3kB5usNy3O52wLBvCHwRABeP4Qf0Dstxs3bAsC5g3xD44gB+cb3bclxqBwzfFVD5uu99Q+ALA/hn1G7Lcf+JgN+T8OoS6mPYNwSePsbGg1msR1SmWfRCwUKHN/YoNXxl4OUHlx/vOD79l30Ms3Nv5TtWBYUGqZHyRrvDozucyXAUHfXu49NXAuCI/plVDpntqI7QtW9ujOciHU5H3S8+vQe4c7TQP+OcFgzdBdPPROc8Zgyjox4Sn756dNH9jKyU/pmF9AK6bOmN6ZxHAjyAjnr38el3MsDt9M84p2bp1WRbNa/KvGmjcx68Bg+mo95ZfPodDnAL/XMsvguC9gDRbaNzHoPxMDrqHcen37EAb6N/tgseQXug4VC30jmPQXcYHfXu49PvTIC30T/jhNp110Cr4EhtoXMeswAPo6PeZXz6nQnwFrporw+XKLVHNRyrLXTOI/XzADrqHcen32kAn0sX7XZHtRHcazVcV9vpnAePwXTUO45Pv6MA7kMXbUWsQfd6DTfrc+mcB4/BdNQ7jk+/cwDuSRfdICDXcLOCZ6o+dM6Dx2A66h3Hp98hAPenixZruLGB5zc96ZwHj9cH0lHvOj79TgB4EF307TP44Lo/nfPgMZSOetfx6b/0AA+li/7pDfy07k/nPGYMoqPedXx6P/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/ZjP/bjSRyj6oNhhw1+v0WVZ2dEhPaQ1Yvaw1aQWta739jzS28dcvzpfRr8jk1jTNhmz2I+Uk9aWYnoXvb80tMAbk2T3NLgV04FuKYiJY8uJ61s0N2I6Bb2/NL5KIehKzvEN2/wK0cCnLPNWq3robX6uYHWAwx7fumpAMuOROeuBr9yQmJ0VgD+OFuJN8IdXEXv+aXHAlxkgG1v8FvMA/CG0H0YkzesLbrSoNsce37paQAXMWAiU9EJxl3nD1TRVQfRToPuWgbxrUQQ3z2/9HCAC3bIDOC8we+W8wdiXLECcF/evxKwkpH41kw/7/mlBwJcZmhtAbg67/wh6NoCQ0sn/CYWszTHqTQAN+K7JtmtBSix55ceB3DJKo2KrA4kb/C7/fzhAJ8iTq9jAfj3GhGUcCZJfD26YF73/NLDAV5kVXkcsLzB7/bzBw6L1gOsMXwV4DsNchJOCye+G4S2tsoZv2jPLz0Q4CWrJrOFPnntEW/w2+f8IaOiCtKXsfr7QQEnBZzhurshtcyfpD2/9BCAD4nooMhqQP0rb/Db5/yBw5b3/xkyCr9dwqPCKGe77rZ8kdjzS/cH+BorF9xSfFnR/rTn+QNHA8/XAX6vgWoBD0qDbl1se4b2/NI9AJZYfHmY0TK3QmU3lTd7nz9w/AHAbwt4aQkPF6CWHYzC7Cv2/NLnAXxAzH+ew+LcWTgeeP6Q8YUSvt7I7iFoq/zPUwx7funt4wmNBw/gi96PrWMC70yfePCEq/bhi96PXQIMmShPRpfvhs/li96PXQJ8bjx42jNzLl/0flyIBHfFg2GGq27hi96PHQO8PR48h8rfwhe9HxerohOM5xhb+KL34wIBzuPBM6HbxRe9H5cHcDXbDbXyRb+yB+qi1+AkHgxzApzwRX97j9KFApzHg2cdCV/0N/cQXYIE83jw3IPzRX+VDPb9uECAeTx4B8PzRX9xj+7lAFyTA2I3w/JF/84M/pL9MKMY8xcPdyhczwH8PfQ878clAQwzm835+PM9LPON4W0z/hfmjDhrK8h9zIqBmuPOsMt/ENm9eSjpNLu2Sco5pv4uA6//yZ93D7ZNubXLlJLxiiBBFy2em2f/EVTSHM35tX0VJllT2ytgNqDG9E2NyYf2VeEFv/4rlLhbsYO5eAX6BO2r3acIen3hzniApzk6fMmmL+pbUSLy2chiIN220+Y1g2tB/WIPJ/SLFWyRkfGCg5ip8/7WHJhqom2ip6BrenQhoGsOzX5bxyGYA9ijK/QFS3Di6/Ctt1esyvp0hnpNXhHKLx81BD6cjK4IMx/wFu02hgPVni8CxiAISPtGpOjqxIugg5jaQ/j3HmmPrrp4gPOKvhXDNVHRo0auGtzFeOPYWfrFZspZdYlvwXQMoWsPIJHlmtm+elFOAdYtqtj9UzmM3edwWRJcx9PfVpC71GN8ITqL+Vt062XWEPhomgSLWFjtgtp6viSFDAxUpqIDqPRGy1hdA9PSKsPYi7JFN0H9EiS4lWDhhBXknjkBW09QzvzhWZVZQ+Cj8f1ida6ru5SzMAaXatPVXEWDXYmlexRSdHlddZzYJFSKt2BCfBkSrFnKRZ4PhwW5xTr06707VkVXeHn/5LhuwDdJgqc0BBbtplaLcpaZwSVIRZNYKxGZzSm6/pWj26ai3aLLhDiYXZcgwb5C22dM3XcAH1ROdx6M7T7q0fWXd03jeUPg0V+QgLRFOSPkulV2uZaWTIdLQpc+BNLeqYWFGU6iZu9VhK5fkuUlSLAnsnoU5znejyb/YFT3UWAF4Pby9XXqCXyLtSae8AU6W4kbA0olyjn/hMwrIICbE5QVYsJVEboW2mBqiXhvmalowQG2atlb0fpSAF6xgtw3TVpN8Si09fWNIRejZt8XgDfonh1hN+B3ZX2DfV/R0frZ614ZY2n3waJ7B8z0sBdZh27BVLSMRDxPHRdd6HrBvZx9sKYST1t/jwW5h6dGuqz4HsQNQsetvvby90rWEPhW9viM+wK+Sc1X2TaTivuENF99SVi1R1dGCzDkKjpLUxT2iJWze4VLMbKsfN3FXKlXTdbF7crpTr8s8mL/EQD7y5t2ou8j8eUNgXm9OUxbhjm6bYtuEPF4U+RxNQ8EvlqAox0wF2IdlfYIfjDxlVx8gaytCwV4g8bUdwFeAnnH9Ov1zYMPYmjFqPlf0+XVCwA/DNEXLNuoBEZA680rvi9qXXSlM740t7CsvW3ltcA3hXNfe3XN98QBYBVc0KIOb4KK1iS+Xj/Dxa/BVJB7444RsKdILZdxqfDousNHePmHL1BD4K4vmNDF1qPr9kX5ouuVcPaHyqNL0NrDi69dhvlEaE99Qf45gTA30EoCWDLN7N1YlwTwNwE+b+Ib78edywHrAOtBnbJsvFTAnebSn4LoC/IaczFeOXtPk84XXQJbdz0Z0iFq0C1BlQFgBy3NRaSfITjWG3QFvsoKAVYxwKScHdJw4WvwU1+Fp18xuvM6qsyuclwYi8LbP4Gy29UQeHKZr9PPBTkoElu6A9rglSygbnBd4FEajJ34soVDi/hx9ABjXEysDcAWXcnFNxbcSwP47i/BXQ0vcTcxZw18SK5K75EeWOX56S+B/lIUaThjoSTPIbsi+hz41WHxabd/9RhnC22CaIgaAQaJEd16aV4NuosArZbxEiXI9hZknDbQnhmA5RqKyuAqufjC/OgOBnjpfcu6g+E1Jnltfsbogocktd5HhfkR3U+/+LTVrqpwq6nm4UJJQAr3Jt1AlFAfQH0I6sDQS2hieOG2VUuje0HW42OQp1CszLQUNQKMiMpEcP2f6osF+MBPqO7B33uCP2MzBmCdUUBzaFd0HOQA94hPN3rV4FQEP9QWRJNRHcPmuuGKaADmstuJK7/mfRD3oXwMC0S3QFwlwzV6HvRstCJlf3TthD7kDqcq5nRm4cIG2hIBXg9HlwtkwuDO0Q33MyQ+vT42jHlKBGhbvZitH67fC+ubhjxElx20UTkgIhinNx5FpFOwlYBkLk6RXgAfsgkNIlZTTOAsDReWawR4Y85/PEE/d/Hzp/czJD59/WW4jhvQmrn7tQZVh92ntbsUkOeBPr92H54dvTv4P+GB5zQ+pd+zcj/P2tXN/Uv8FQJ/vESnYfPJe5/Lkrloo+UDFeYNToIAesXPzwfYx+Usp10Ie3l0vZGF0aRyZaBtxNd6Ju6OVdE8JMx1bXo/A+PTwZRi/gtNO07v3NcebP5mqgUf+7PIaBBka0j8zUJH6AqdzYtqo1fQLEpB6J4vwUfxhC4ScVkRH/sDFy5s0F2sYVmHPxk38o4cHt30fgbGpxNoHZzk+PUaWXNv8FzoQuyLZomVQjlxTNH1oglpKohQaaqe4AlAyp2/DeBrEEV2A8BefDl9xj1YnBl0D5WZykN+/rSQsJfGzvsZGp9GkfUzonjuhFXOOkNXz5Hrr+Nov3JrhPDOS0TdyrFDtyJvbGtSpkqTfgTHHn3anQBfj4M3Pn4TxMUSLFgWq7dheQqLlUuIO2BBgekBf6tlz7mf/vFpEtlIfLly1lFE1s/pDGKsYmuf5UXLKkQgInQ1BNbzblwjCfZRqS0SfJMi64dxgKjwE3pG6CJxxsFjOFiHP1myPxn3oHsGFsuKdf79DIpPc9h4UB3/qVkslmytOQQ4IQCzCnnjxBfqzEFN+rnQ8bMfpwlsy9nDn9YCwW3KfDqKobK7Pie+J8idgewKh4/gWmVmM0G3GBsurBlBx71z72dgfHplcVUBYGDpx53oTg68R46b+I2sHMwSYeaRxHYJbsvIFHlGZqsE29jrNRZ75VEcCTT9b2FI7ztw/ABuKycrh9nsy1EAW/p2S1/Y636GxKdXNN0imanmvxxdklm3WYKZ7CxWrCHosOrawmxeFb4hs6uAVDmLpNRFR9kggt1/tAYLjL0+TcSzB9lUui35Bte575id+817Zl94kwlKObVlg/n5j0kU+97PoPh0rJA9nDpJRdaxtTWLkaWYfmZ7WcHQlfi/CuV2Tc6KTvK54twuUUfJAl58LfalT0d5EcXFTs1iS+z1vmHNEF+C5+6Z2bxFmpPP45Rw7WMsEX6l//0MjU8Trsa/wZIXuXJzgHrBVXNwifPNOgUN5Ya9cnQrXHpRRUvVku5jgQ9LNUYs/NMpdUgIKa0b8oOY/HRM9PyiLQjo3vwxlP8YfvhteC9FDIvumN6ISXkFiVc+1P9+hsanad3SDFqdoEv6zU6TnEWCufFsvVdrF1ly6Fohrp1ytrEmgzG06OewdY7R5eaVRbp8N2rC9zMGaLnVpfquP4Zn3zDidY3ombtitaMf+ReH3M/g+DSfLEXK2VukfiWOI3cwS8k7+W4stGJDGFcEcG3iEA14JUHrUIw9JIJxggqvya2sM2jtLy0tg9xX+t/l18wC+aewq/EV9tprfMkYWC/1Pv1nlDOhLa4RuijKsg3aGaxo7nq1grtCdFF8i43bIBVkPNu7KnS0exZ1mrMnVZTS5aH1O/sSrtrAmdLZ7kJTWoWVm7B39R9O/150ppqYPx5yhbFhCzBuloxatjkemnIByFbysTtRuSNK91HR0hvyBa4owMzXL+pQICSZmHr7WZJ2FtP1MzrnxCkUpyDPjN++QAl28f+aFmACGChmrNj6HdCljB/BTg6ySzHmqwdwHXz9gtVfS+bCNKlzcWbFDKNyLnX52BzlKQLM0C0US+LRpKXxCVupkMxlre6Qz6VZvm2W8QNXEWBSdMC3j7TcSt2dKzMR5pXZ0cn7UDyE8sQEZso1lHVI3ym8ZmZ2gES0Vij9zZrdaHUr8T5bT2bZel524Yqq6LULnos6eAMEm5TIWT1bMifu19+C8m1YPjDoLtcmZF7ifreoncj6JB5JGTxO3zayy/K5rLgLFZ+sY2jpkysHcLMEyg2ZnRDQDSfo9q38VIxfheIOHL0FR6dwsIGFMuJbahRccDhJYPlZHLAHLflczvSLn07hHbH0zysH8OKhkcy0A98FdFX6f+D576PbVTvHnMh27e6uRPY88XwunfkKRecjeBUBPv0b2Ea8NHRXttF0bbOdMROvlpQyXVIZkidYkfBTvw5nJawWsClhU7hXk6C5wItIk2ppXvFqzdTWOMGum+YvmVDIuPGB/xve5PxceJ9J+r7mRegQSmYkXL1hK1YUKyazZUjOl+XzpWN0NRM0/4e25kxR71rjdCocovy9Lue7c8/PJVlBOsSvMpxzFQH2tf2hrEGwgjNfx01nalaN4hPllX1EBGFMf1gLei3pUuUMxKp5qqC/Ycenl1CC0BNQXk0J5lQbHjANVFjGqrw9uqoIf+uZGxQ2MLbi66uErX4O6M6yEsbMXFpE1Ri+dhnih7X5Z3lFJVhEtfqhIq2IJkjTUqd9yCymcNBUAG5VsaLaQx2jq+Rstw3+9mRU5czZBDR7U15F8RUUJ5SsFg0rB8HX7YtAz2DrGHQsQ8r/oRXf0hg+BktfNEym1nQJ1iJiUYzElwgTOX0TZ/e5kiqa5kv5klFBNd0yYmiwOEWqj8h1fCV4c1S2tBAxdn+Cn3t0tZzv0WQPH2fYi9CVQdbLK6ifIdbPSrhqbi1SwdUJ7QbEJ7DyflW6TuW6pKvxyv9ihocyEHvxFZeVrSYcbGMB/lVKZEwSlx9QJQHVE5hjeGXSZ+I6I16R6l9XAqpmx7kw+9fP3E9blW7nl3bBftoFuRpDX03KBbeIKeyIbtRJcOFe3TbayivV/KuSVYUX86zB0fPnmQgYMxe39v2SPPCbj5kZqrICw7h81LweT7By42/gFaQ1odtcfzC/NIlvqCAtiVFF0j8XhC4zj4O4e+VculddOjoH+16hp0pjHrb9fGSJR2Y3RLYhI+rSsSgDu/khEmxJIiGe0QRdX/J1Quc/HvxjoK362wPWyG6FNb4u7zm+o3P5pZ2FJcPS64vB3TJcEmuOzAgKCeDaOrAKV+eviNTBwVkGvT2PihYptC1HEZyf3GjoDfB1Ki6wQ3WUa3oWB3/+6yOfWRU3Abe62kC7IF7h43A/g/ilvRTWJIVuNV3Q+5iXkCd5B4IAW0heEmXHkv58EaAFvgxP18+MdE1xIyCW5oQCph/ANxgLaC6+j6nkyx/J+aNUtMqKg5ul1IjvMmYUHsgvbcXXOXVLQqsgEfQTR4ZxYEaiZc/hisuEhdagy1k7JCpnqwbKsXxe2errTXddxAd5TCNoBwBsOV79nCblmh7dB1TTl5w/dtWpGWDNl5xJ2CyhOogvfhgp5z780vrUoeuEz8riwq3EULj1GLyVxNSdQ7dwWkQdIGWHpXOwElwStAVBOx/AOoY22HGc4jZGtwfAtzMSX2Bm7ikViN1jhUT5+ZPRbQ6H7s2MMppUdE9+abVyVEjWTGtwMlCVwTuhGa9KJA24SDdrRIV3YtlYDCELiq/lddAM4FAKUEwNJuvEsiNbPQK4iKHtJcFPU+XXDULrkCS4YuV/91wFafv5Y/WzR7dZ0DcHsDmkp4eL78Fgfml9D6qCdlkHjhDJW8JQRjIRTRmibtA9hOrIHeoQlTMC7KBdkOAW7q+mSzCICFq7FoDfhSf0TXH1RzfA7yLAbmQM67UjBTIK+S3qvr7l/OEY8/ry1RLWR+zpSQpJB/JLNwrWimCF8mfXUb10/qZovoqU96p5LJrnbH3NcO1Ux6COzBW0fW5KVsHojTLB6nkmDKdyrLIhVaHzOjCZkbt0Avwequu7yaowbXWfpgJDi+7rVCbWdf4o/WyfnwbdkxJWzdWeJUbh61THSFWhQ/mla3xcNg1IR6RgF2Fj46asaGdGav5kdRM2t6C6BfU1A3CDrl5m0BZMT0qYTmjm+LkOUGEsiMGpzHjXcuqedoDfRxTNN9tqbK159RA7OH8Py/p+YOv5owC2HcDvSThrEH0eAXsKQg2y5w8oB/NLr6/D2W3DhmQU7AGRmZWxzOVcV/h69gycPg+rZ6C6AepaXM9atE33TBl7hp/rBvJz0eMYdMwWci58U6Z+2h8CU1b2DJughKLZTv+bWEH6co/zh6ojFN/7+Pw8bp6YH0T18BSJ4wErHSwdr/cgfulHPwKPnzL6WS87aMygs4bu4Ufh0fugvpGVL0JcLJtzX03DeP08rG913DCcQ9HFAJZYZPiDqA9vkawsMopmO50vYVlfn/MHjg0q2watB7eRkvQH8Om5EVeAs0VuKL/0j/6muaql9xVMbYgOdcI/X/wL+JAIJMQ2iaLGqZMQInf2/wpBGXHoxP7C/2z38kQWQ3XfJp2dce3YikJRRSW/z53B81REWrDOoIITPNAdC8/tBRzg5r8fxQl6F1Vct5ZzC1TLf44dnHueP3Cc4De83ujYn8Sn5xladBexIqXjAvilWz3Dgne0g9DIzqMLDN3Uw571b+CN7NKC7tbMHXt53aIAkw9L56j6eYC/grNzxJ560Ua210D7BwD/Zu/zB46XBbz0LOifQ+V/i6CVbYWh+DqCX3q2HFkKvEtgLQvpG4VHV8S6QkXFvgn9USCv44X6bYiKnFiipsqMCOAfQ037EdRsB0xEtqwfHxt4/pDxxoeh+jDAhxHdRSyybfjsml+6dZvum6i4JB4Z5TWKGF2dCLGK+ZQ8pxX5dwKxf1yQkgOcyK5sq7gp4Rtgjt8aFQ9+OH88+N/5GuivDeCLNlSJXxryBZ+cnC/A0kKsNua9Rs9BV2fo+hJWu/Rq1r+BcbOlKjpT3aKjP8vk7qPb48HTZOVcvuhLTwsJsTxajEWcep6q6DbyFIdxFXfn8K91C6gyrqQSdZs5q8+jMuw1/VviwdPU4Ll80ZeVzxVaDnvxJbAlbw3tGd8z6gjOk+UquCvWfsWj6zlWikx8dayc27ab1pweC/C58eAJ6EIPvuhLE1wWgQcIMUTBugg7dElwpWCt7bxarkgt+x8Zi6+sndHkceUrsYgNq1z2pHLfX84gvnk8eA5bZgtf9CUOzfIrhKD+LDiXwqfI+0+4xubiy0lmKwe29OgSC5qnlIgsLM0QzQ0ruogcvwafGw+eyVLt4ou+9OFTlH0OukdXs27Bkm+CJZPgmqqTicRQ8O4clheNuGKD6USizD+JDCvLwFKnu/2xEtwVD55pdPFFPwno+pRVG6MVHF1BPiwRFyJARAXu+AU4+6hyRJXSCy6nZAAq+dVBjiPDSjuJlzNY0VviwfNNYitf9OWjGycnWy0teNdvMP8UCbS8d6Fl7K+J6c53T6qiHkqBwkFFNOUewsjL4av926ZylAS3xoN3g67fZs8rheP9H3EqsvCtR20xblIKxr1a3o+xca/WcvYUaDJGV8bsV4I7N2pGZG2ZOtqE0CrwsfE8Hg/+/vxqMOGLflIGLxpGdF3VoSBjijcrxPOlN7C9TbFBOhUkuDOEG5Yyx9Ov8PU4plNxK673R+aCy7j9vXdxOMBJPPjVmecw54t+ckYoxqV8KG9hRX0oaRkWvmhMMCK0NaG7Jgo0y6+TCDHECzD5LyXFJPxGyIuy0C0hlVH9g308+NvzTyLni34TnqyhRchatQCLODfP74vCXtkvw2i1GNk9Q7Ic7G5XqECS5eixgLGrMK6daJfs7SkdejO0h8rGrME+Hvz1mRjCsufH8kV/f1dadvxdu4o0luLjc/OsbQWJbQWMUQXDwPKxobmznYc8wAWJbMEYryTjrFPasRx6mjShGF0qpFsp/zpqDb6H8eA/hBl4CdqG5Yt+eScPT+TvG6NdFphlx2jnrXIWIthW1qQSxNzj3zQ/TCAL2hLZkAxJFpKfFSpmyALGkEXvV2SLSU5tx1wfHk7IAmnDAf4ywOdQ4exmvIKqQcGTOKqnTdpbM2dWMwtvIVMRn8gZkPw/3oDy+3D0GA43sFSIrkbZ9cFr3cJxbV8rq9VVeA4g48bq2hcMB/jr8zgju8b3d+xqnrJHOvl3YfmKWURlFbWmitQjsPggGz/338M3PwjXD2ApoUTrWnpZj0HN3N7wqd+GL/wkyAOzDYvSRYa4z3uPz8C5BbmNBUHluHBn4OUHtgMefP2f/6Rb6gu/wUA9mYRXZd2SMPhffKmlhWBg5xbu1Qd8NX5is7d+5edCV4ZgMNMu1hrPBYWGPKuxFeiPb8Y/0HKMCMC2glyxjspxp7g7erQDHv8FovU9+Xjlea689jY3Inrvc/M0dyb7JdOvsn7Dw9D1QUA5zRgpJym7toLcuBx30rV7tAOejK5qCbdJ3ZlkqbswFuk/FdEBaNbElqMLsas5IrrVAd2JVS/T4sFZQW5bOe74aFKPdsAzrMlJuE12ia9KJThkz4kgsoqTvIgAduRp8ouuZtE9xh9swZY60JFfLMAdBbnLOi/HHS/BPdoBYy74egKoOmURbg3IgA6M4dDefYxE1sMsGMwQ8Yum5N2kpb1zg6MrLkeC2wpym817WznuJP28tR0wqYhRAHetvi3KGYWsyLR0aCMqkgRnYt1iilpnFozQoVOT39TKVnT1ZanouCC3oxx3vHbobgeMrDn+C+6OuX3RthgXbWEZji7EXYA5okF8BRPiWIKTpTeU8sbkz4nD8sIluK0gt7scd6QEd7cDxjLwo6lfIBL9nOhqZn/JDnQT8XX0pCJS0crznTJBDGnPFD7imyLJmMGnW1gTVDQryL1ebynHHf/8tLUDhraGwOMX4JDupNi22At0my2dZHyaV0Gv/uDKOZNgvvpKEmUZoyt1WhN6sRLMCnKPzraX444EOGsHDI8K6G4IPPJrBJNUke2DxdYNuoIAp4rRVSLUKXFmWMHa3kjmgvboFkxFe3r/CweYFeSW984txx2pHeJ2wHB6CJ0NgcfqZ986PdoXZYsu/8O2mrE2dInSEkTk/fBWleQY00JQkOxy/Ty9Xm4UwFSQ26Mcd0y4MG4HDJWn5mhtCAzTluE4ual92eONlbyLTaSHU86SvSI4LkdaR6uvl92C0C2Y4EZCfNEAU0HuC6pPOe7gwdoBwx0JPRoCD4eWdQWW3COd7Zp87zG+OjkXrSAvtIgXYC++BK21v3zXUyuyNjRkcS2sfoYgwZGBfdEAY0HuCw93VY5L7YDhzg3o1xB4zD5McKdVvuj6/JgOA7ASDtpKEsAyoKsJWsWTOnTY6RY2VqgCwAVBW8T6WV68BBcvwfvvDCrHHTawHTDceQF6NwQevAMWLLqeLro6rQxo8cAIA3Bl0Y0B5u5Jx04LlLtDBSkFxflLjX2TIGAsqGuOjAmvLhTgn3h7t+W4X30KXnkahjQEHizBNimiIDEt4oW265LN/3WxFUR3g31urARz8fWyCzzjDlxueoH9sBYKFpoBTBi3MdVdOMBf+jR86TxCZ7EyWSmL2vyYoeOX7oK+C9VLvemoB8anBUtrktSxU7Y6OnRoLhcSI4U51tJ0TPISzJnj/QEQ3pgoPfYGtuguLcBWQnRksiSa+aJV9LGd0/MInRtoLbrHo4qVBtFRPx4YnxbU5LNgvf8SREG3i45J+JdwVhhf6bpwnaoUAzipe9Bcx1Qm0e6ghkMFBxqWOqVfku3cXBcIsKN/Po/Q2WWU1VO4SEfRUfeLT1sxKn3rTt5O+bzZXAt4XMLpAlaF4UOsZeCdTgTXIxMwbrTIGq5rONZuM1l00DiJGSyN4QCn9M8dhM4lauZlndA5jww3D6Cj7h2fPljBAS3AMos9tAYk/Lh/A+4vDcYWXU7BHmEJDGY/gfcNn9hN2sbLjHCt1agQFwNwSv/cQejcLHWN+C6rhM55qvieT0c9JD798BgeYbPlBRUFCZLp0G+ZtjGShW+b9z9yCj8ydqL/wS/Cl7Hr92KNSdEbbB68MRplYdeLCumEaoQfXwUSMDRf/fzzlDZbUxt47V4L7xRjQWVJrrpe/YPb6Z8zyl95BstmjalyOudJ4cJedNRD4tMPIM27SaoE7Kpc6BRdMUd/ukCGpRweBdWhFLjIF5bezDpe8AYKlcawQ8CRvQeVZvzY7zoH4Hb65zZCZ4tuB53zyHSOAXTUvePTD3SIywbnA68IUq7UAGJ0p0fuPLrAOM+sD8sqD/umINm1LpEyj2Qxd03IA4H01b7ZBnA7/XMbofPBxuRzt9E5j5TgAXTUI+LTLGwHDEvv9ChY8QiPxs8wdPCPuseIxFf6VHgdoes1R2hnDeHmgbeJztDdJsHb6J9jQuflCo7WW+icx8QbhtFRD4pPM5ox0KGgT3jnsGpBV6JTYrp+Dk5QKiq00Fq1zDH26JYQZevxPD1JdWk8VS960yXB2+ifY0Ln8gSOV1vonEfq5wF01EPj05ppSNoKB24bVh7i3xQUy5thDVbpYSpINRlWPvxgVTQZWcCKSIEvMSpkXoZkLh2iFO3FZ9vpojmhs7wH18+20zmP2SANo6MeEZ/mRXwqZL5Z36GI0S0J3YlGloaoclCSKWcF1xnP2vmoLcwl17EsWy8KGCef6DSWXCa7rvPpnxmh883H59I5j9HPw+ioh8anGflnKLhWLrbDZ1+Sr1jqGTIrPK2CZK60Av2XVl4LrEgrSXxDlEnFyVw6rQcPuT6aqW7I1uCedNGe0Pn2gz50zoPHYDrqofFpTTXUDF2LZUixwPktvX0LMwHs1bLd+NKK60C18SU0uEKUCd8opplFVmvKn0gOreQS3J8u2hI6P/16TzrnwePeUDrqgfFpQdXTLuruhYkl0JQ4xWHK9AxO/8i8qh2iDleGbknoWqStFbZObLRM04RsvUR7W4AH0UWLl+HZl+DndE8658FjKB314Pg00TLLOjitSh2yLErtDBye3TjLNomLr1XOi9qhu9DGn2W/2kLr5bi5h3VcDyFVnLOnWbIAs66dBA+li/7wG/Dhqj+d85gxiI56cHya9GRBc+0r7Quys7hA+DSaQs+got2iW0ey26BrA4jNVyx0rKLxF50k63dipuko10fGKQPlULroxv75Guxw/BZ77TXuDqOL/gWvJHGWFxiBLzQpSZ2mR/k90tQH1/qQrd8b4zE2qLrU7ligfl7gdy3oHkpuNyS4KpYpQI+gyILKV64DuFXOJb2WtduZLLMUuCTLYjrAAgOpBQXcDmoT1zpAqV1qSgEgqS0TgLl69/omBli25YRcSYArFxVe4hK4pAQaD2qpW6y56VZ0gQAvK+O0b45DBYeonI0Eg1uAvcHBOx9CnKdQ0modnsg40VRcZQm2/HImrGk1JMpQSfsibnvLbL4mDSS1W66N0/6ogiMFRzUCDA5gC21r50MblvCpCqVmT2RHfztxZSVYrmGxwegIZs8Y3YiKMd8xyyyZZtLYwGJl0L1WGW/5cQOwNgD7TP4tnQ+B0HXizp7Fc7sXXjmAF2cmdaaZ5WNFAsRmqmjbas+SPSPO4OgUbq7gVgW3VPDK9el86PO5DvCevbenT/fCKwfwtRO4XcMt7dzUyeRubV04bTyEZx7B87Vz/A3rfIj5XDe08eH4B6Jn98IrB/CPVsb3eRxPU1ffwhk39+9+1fjm3ofoDu18eP2BiejcQnSHdi8UVw3gT/4M1p7UUGuXrV4r0NoEOQLvAjoWXKqMJAoVAf/T72Gz+bb2TTZf2rBoSSTPEthmQ5pPGjQqAb87oV/Tf/jnKT9XUhyVcg14BieYI8r5l3JoCHF0HabD1xFpAtW/UXEul+J1pDTXSjouNItuRejWO7h9lXANxLgCoX4VAdY6gKdVwMy9oU+ANVVJ0K2jzmVEcycCulrSK36o5TyghsZ4IiLkSnD16Nq2qFdRfENZmI7aDipL39uKroo4OnzOf8WgtR8m6DpRnqpu3Fcn/Q9T3jUOOS4u5ZXUzSQQOp0jr5w1RzcmGlVtXcwqGWqFnX7m6BbziC8kLF2ig4yNcYOUV1NF+9UXuLpT9EYGRefRVUyGVCa+NSsarqX73KnrYoY1uAVXwWi5Mg42f/9XEWC/nwhICwK7Dd2gz9kaXLFSN1cGbk3ohNdBzrkGq+zQIqWD4exr+ipKsEZciT/STYQmW5qjy+0vGdU81oymwy69lYfZY0yozyzBIl10U3SJumvsGvwZ9gz3afA7cPwqI0I7i0uEfeUZr/79HwbyS/MFOAiBCisuR9d3IVTsD3mN6oZ2wFZ2bUm4WYMLtxJbjCeuwQm7T80M+EC9JlN+Lj1mDV5mKmN7g9/lyDa/Oq4G5c0peZVwVYCVjv780l4tgyaiMuVE2U2WdupaMcF1LXPYV9TE4lCR1Hp068JhbI0sq6Xn3PjG5Fx1gi5XQsMk2Jcq9GzwezAS4C50kwLwBt1NDHBPfmkuvkrHLISangARBNrpbR2VPW7Qqtogl4N79WBjPXiF7XbsAqzETAALxi7PvCucnyvsCOQggA8IsJ4Nfv35D0f+nqS8P6ETNgwKJQK8HsgvrYNODjslEX8oGcYiMEVz43nND0mUHQJLh5szS5p6RGKiu0En/FycRVHSAiwDd6bnf2ne9AP4kAHGn6iuBr/5+cN/T00FUGcZnfAaod2UeP3H4YHowy/tQVWCxNfOkYroj4CML2CuD+DaShpoLV9Hc1QFqevCWVgO2sIhMXFw8Y1MdBGRoGpelt7Xij5ixUbLTIfmDX7z84c7IhRDl/OwNOpgVRpoG/F12dJ3B/JL68gTVFv9phzS4fFnzmog8g33iwWsSHBXSNaxQYA3lpOFbGlN9B0hXDFNP3NoE/omL8EcWvumPB/do7Zqsq4Gv13nD9fPvgD8EVV/P0B01wuol+ErhvJLa1x37errpkaTBCTQsjZm3sY23yIMD8uZhLPSALwigN3qS7w72suuTOkcxi9YsWXn7CwZZDehbzpPgq/FzMwesK4Gv13nD1dHrDrVMQo3x9nCoGtaUx2y0pSB/NLWvAoUhBCEIDi2MpYrq1fcL5Z4lA5gy7hjRKpwEhwEV7DG0dP0M2dfq5ieCHtffjDvejfA1+PyPJ9J0NXgt+v8UerIlvc/xDolW/19uoTVgihVDkJZ2VB+acU6HdVeRQMRH/EJ0oHDzM5X8y0nEk4Kw8PyeGEwXqE1UBHAihEradIK08Pulp/LmnIbuxaIwPGj8jsXYWXpQCAv5C5Z/WXe4Hf7+cMBPiN038Q60scHsD5gX7EMXzGUX1pVwS9R+41j8uBD3F2SEGq+5WFpiHYeLuBkaSS4MfdqRqkUBJd1igYxtQ9jc6srGS8HnpxLRusueB4nUjxtAPtC66NoKl3aUt7gd/v5I55WfHLeQkbhv2igOoTqGqs+5nlyxWB+6eqhk4aKM9SR2zK4qXNmJAEPC3jrCN4+ggcHuF6grVdhD9JaBm3MuZVAxE05Ro0Wfi4RUXRB/HTyn5ABbKtrr8X1oDxXmDf4favH+QOHfXjewtLv7zTa4RiUL9Y/zJ4eOZhf+uzUaNcNJx/k6MYhxWS8+rzhwH3r0Mx1Y8krZi3zxRsgUwbTxgPOzyUyXHOKLgZzGQVY3oPF8Tcycmae5uUb/L7W7/yBY4Nr53ewPvjeTawOvskEMUsFHsov/byA5yvXRViwGeki8Oef/+Kr8Ana9p/hq3V6GL9HRhxtg0u+/9mvfyIUkAEE0gghGfOG/dz2EGd9ln74AbxIurAqWEgbNUd6zzLadhPAzXkvojheZ9mkrcnB91EJvtL7/IHjPvYV/5KAe88hWrdI85dtaaJi9/zS3X5/v92sWYzWh2lr3t1OtCkHzdrRKnrN0I3avnBtL1qikLlbtHRuyA+Cobc4psxM0Ubia9+8gtQKH+p9/sDxxwD/uIS3fxipG67T9YvONNER/NJiArp5Uod3HGoZggHWgtMiWuP5DTiOTBl6Uro2EnGPNLnljkXmP5GUZhQB/G4UlPcjWkVc/NA1Ky8OPH8QwO+CN57Fr7hGlTpd6ef4z53zS3e7hXm6DO9GWYl4e+oD/gmNmXAohq6k0ilTYIyEvPCcGwoqmw3VZs2VZiltjq+Migev5o8H/+03Qb8J1Z/25Ys2xcGW1KPn+OQ8AGsK6VRx7xW+Ekf84PlVBOv/gotxK7qJiubCGqHb4RCd3F52ezx42iSeyxd94ckgaWjWrb4yoFvF6GpyZiUaRFiAPdterpktuqLNPM6obNvd3bhITeg+em48eA73+ha+6EtK+GG4WvFlhQURuhS6qL0E89bQpLQdgiLiInTkdbENpXkWvojN5vxGyclVTn2Mu+LBk6Nj2/miLwtd3Zbv7mSXB+/IzeQD8ty8svpZesI9Sf/LoyuCgS0g3am7ZoitutrnGMkRGR35k9wVD4Y5xTfni77EoVjgvYrR5a4xH+qvmfcjtP+maxlEaenN0fXrcW5M+fd1YliR4KpJa/D2ePBMZmoXX/QlDi/B1rYKAPPeKzjFPmTr8GDKVqD97PhhBUNXB7wF45aVifeUK2oZbYu54E42srriwTPNYxdfNFw2wF4z+9xYm43FAbbBWm9eaWAA+yazipDmPd1zQxqioorg3BCxYUWLgprHiu6KB88nJa180fAEAJyIr22g5CU4pHP4MDAPPPgOPZZlTTAGUcF8gJwUWrgVmpfS2H/WXC3b7D5oWYznaBD9aGazp5Uvel6cxASAbdaODbxvKMhvj4pC/Rxg5TufAeN85jSTsQkdoC3C3knz/bQ3rIR7n6hl71hU4yU4iQfPLSWcL/r78KQM3/nMquV1EQC2WRYJuok/C5j4JujyjtBWalvc+bScO8Mqs6f83/hqJRjZXjaJB889iZwv+lV4gkbIrPC9sQqXT1kXhGvcKsvH/IGxsIduwYKRDwqnqCHT1ZrFIn0HrsiekiHwrKcaWTwe/Ob8k8j5or8NT9YwsWfsfHZGyTo2X8fMNQJssnY8rpKtvjKswTJhSxQB2mgB5g51kaaLKBHKahKRTZbhcsyvtPHg3ahOzxf99TlC5a3+u9GXbZbe08Jkh5nkCpu9W2Btmc/XYUsvJCk71A664PkKMiIAdqun3TQLZ2MDhPQum19QszZ60eqbUQONcnQ8xoXx5d1MP/FF/yGA2o0UTrnrRnAfHpkUogZjm43lE+00KUmQaeWLpsdKUpB6IQItl1uDGZw5IZIBtXRZm251jztfejh17GwcpaJfQeFSu1KDXwb4HEzlPNjRuPscvHkdHi0xT7YIXsnIBREnRvHR4HogeT5Z2km2i8FJHZjk34pkV7OUsXOzgoYD/P0ZXM1bxtd37IzUE4LCX/nP4f6rUD8CjaxGOmXKiAki4je/8An4s38Jhyukp/aNUXSKZbKa2PGxT8Nn/yXUK/xG7RR+T100/Md+jnXWWbUV5J7QJ9a39flhl/8UOTqSdsDN9VYF60TomxEOvP4nf9HZREYaSnyV5PMraAeC/yvUBBfOiqm/gNZyYf5c4RtdkH4unMMB0NoK4kkJQ3d/JSYGqGOunrqtfJ8yCm5/dfwDLccLwvZ4w9l456Vm2zFfq2m0hq9pOGLHWFsrpFTKlDTJVoy5UaSZErzpqBYx+6Bs/6eOw4XpkdO68HyRabbOtGhSUuefVGhP8E7nJcKwzKA9HtkcMSnu8FtJ/yaEazJ0gSUhczsZmGMy4X/VIvNFd0Gr22jWLgHgJNq/aku5GAuwjv2hLpNAMHSP2XE4RnaTTUUkvpJFWxP3fRGeD27mamYm6SSvVLJPoBtjlYlvkvd1ORLcpyD3bKp2WPvKT9/omTcEPhyrn/2rjLR0CNFIFqgXTpQjS1fG4tvGMa250tZbD9XFojN1w1JOEt8tBbmn4wGGONZsSoEttElD4MOxKhriai3JxFe0oKsLVgDBlLMmkXWb4C3oymz2cjjrJwRgiAt4T1m+hU94fMwyLMdKsG8H7KDtagg8QkWLIL6+sha8Lc3RpTJfYOimtpVoQ7fI6PVhC5lp/M86U92XAzAvyPX5Fg9JP2Npx8HwPbPXDvbyphr4BnUD5g2BfYnwFBOaOZ50QYuxR7eIg+qti6vFssjQbWVi11m+Yi7BdQq50BevolsLcu8izCS+vtHEatTz49M5DLS2G/BTcW/osRQRiYvY+aEKoh6iN5H9TPCLfI/klTPBrIus1YNfgyHe/OTEV5mWFvrijayugtx7TnzLipfjGtxHaAdb3m9E9hk4ryHwKCudQnva1/MI0sYJuuy9AKZ4pRNxXcTobmHnz0H1ro+U3yxuBn/RAOcFuW9hO+GzvBx3pHlljLYFlhZ2NQT2LWwn6GfNQ/QFcUsVbAGWaTg9/G3BGuDYSuW8gVHCvJ+T1NaZY0u55nu+i/WFS3BekPuGUdTX2stxxwC8smkE74F+DYEnY0zo6iLQxDnUGdLaJkGyVdaebzGOZLfIVl8Z2xddh4WWK+dLUNG8IPdbBuZrm1DdX8ZNZkfMv738aSOyH4DzGwIPd6U75VywCG5BGAvnkVYZtGExls4FrUtzOHR5eKhVfEVW6ZN2YAjoCrZOX8Ya7Aty/wiO3jaTf0xyVUwt/naXf6251o9DS0PgYo4GxZKxW0hDSRfQlUGCQYYMGCeCZE9pyRYIBnNn+0AOsIpLuQhdwcWXeo36ptAXC/A3AX4XFl+Ed29aynGnVwi/dgs2HwH42f4NgUdKcG2DQpSMAZRFBTIQanOkbeDdyO4Cxddy/MR8Ep3oCpbOz4/KoSvi1RdYN/eJYzDAB/8MDr9s0L3BWkPncz465nr2cYCPdzcEhqk1vlY5W3TrMqRTOYwhODGScnonviiyGhcLvWxDN4dWsM2fd+4i/4OoXF9Cbli5giWYYQEeA/Dql2Gl4X6V8co9ZDW8D5nP8s6w63/8s6A/20bLbNsT0ZuKBGBofFojrvYwlKGSbGkR0m74istTYQqEVlvGvAOALuXc2oisimNuG4Ouh1aoCFfBcjXERQJc2jnVHeHChOH1xLT6HOdoy915iXVi0S19ck/v+HQDarXEo8AFmFHSAXds5aEnYdBVR6DxCBvBLsGF+HUTnjaxwUM55Sx0AFX4av850B0GsO2QWUEWz1u1hxwkNlQd7UnVWY0qh7ZqvZ8e8enqCDbNsUAh9u6OhD8sJ8myO8QboG6Cvhbz/Yg2nol8QbmPe8uHpv2pRNm12lioUPHgX8PfXZiKXnC/Qh7P49Ciim6gtQBPRLfOOATskd5P7/j0ybsNF2Elo+w1gPZMuSQjtXoe9G1mGcg2RLushD8CeR+b/uqWTcBMBCdjAV7QUUKcULOJ+yrQMtzgWmwcxjBBglUbtJvkfgbGp5/7ArxLgaqRLFphCVdNTKQq9MACH8VRro9h8/lqPf7n3PsdUGtYr2KKi9yo5pvjjVNft2Gbb6TFia1DSOp8gJdsNiMJTvh7KaBUrAngaiTAug1d3gYiup9R8emQ/k7kwcB6OQR0eVud6UN3RPXr2B1d0aui1zwYpdtInXQczMDVvTwXXT6hRWu4kBXwNuhygEU1ZhKgm/9j2/30jE/rkHnKX8MbxXLk1PSAbAaw7obW/7OKUzCXHQl7alvqjzhXgg9iXmA3ob6A10Z87ocC3uIMipWB1olvPY4uOhLIvMlHej8D49Nhe5nB7AAWDGkuyrvDuIpfq+zDZZYvoLsou+Jg1BaAOWk7byju4g1rQvdtDDa8CeUport2q+9iZDSvJWWHt4FouZ+B8WmGMDGAe/H1S2+Grpgux7pHNKmK94L+8y0XUS3iy73Z7RD4fJhFtt8L5aMPqID3NSgfQ3kG5QqhVZOieQm6SRuIlvsZGJ922lizhqI69N/QIkNXtZEGTrEb82BwzfZ/mwzgqi0bpKtJJndod0lwHvjjTn7ncmMFvItHsEDxXVRpNK8YOwm+vvykz/2Mi09n4us6GCaaWUTm2GwSXMe+Om82W4xJjoVP0WrFODOkhUo7R6cA26SJg47QnLQut1NE9zsmXLh8AMsTI7uH89BFhwp/u+06/35Gxae1b4ClqCl0gq6O0Z1FhFVHQKnKHLAWXR9o6tLwsaUmsoxMkUjwUyzwWsZTGTbma5zNbwH8KRy+DctHcKw66aJHAGzxsoZ5r/sZGp/WYenVbCVWyRoMzJbWc0Cs6eclFUoc3TVD1waaFFuDt2RhUsQiQpdb0YKYt1u5nyN3jS3g/X241kzlqZGwg2666BEemTWxc/S9nxHxaQ+tCn2yArqKGdK8e9JcElwxzcwiS24j6KGlJ0Cqjj00zwPhuloHI8vtgxfIzXwL5yUnCE5B+jLIfwi3X4ZnVKCL3uKLHTpsF4739b+fgfFp153Qd6BUDmnnrvJqmbWzm2ebtMV3s2bo4gJsMZYexa3mt+CbaU1pIfQn5S1MiXkXY/be7lW99odw/WV4FtEt5w4G2/HskPsZEZ92hpViGGvX5g5YOzvu2JpnJ5w4bjzjMvkvTQSCALbK2S2rkKFLZraowkMgapZK7Y0s6w8YELT9grFsX4NdjTvstdf4rJmf/hSHn1ABXaUcnAFdtRtoIfPdnMWx4RUpZ3QQ8SQekdPL83Wa3JlCpdAK3b0PficPrqJt42+d9aFMoNXzfG8aXT11zOlijYK7QWgpC0DSmioVez6qGF1miAkdm1eE8ZUD2AquOxDdyK7mNq9uixtO0c+bmLEAHaiN7Ar0/VlonXJGgAXXtzXLZcB8Ab9RdvYzz9NjGT9XD2DlDkUqWnNodVrMP5sEKwpzUUqTOMNjgxJcY+TN4opwyiRz1kv/2pwfGdsEbZIcYu/86gFcm2BwrYKiVjmuun0TO2lYZ+pdF3YTpyBPXe6ODcyI2qV5WLXszWABLJSCz4Q1tr0VJjSrhNAh3ce60K8ewBXUGO2vvTMrAxh2QQJm+cXQjSpPDLqSciKs1IZWWQwqS3y3oXyu5rEw4l5RMhcvcqEGLiHpR/fO6HgnjXpjxLfWwVe/K0Tz7cFLIL4HxSMTmCnQpJK4gkrf9kwHkHj23QaDKMLnc6nwHARQGTc8z5W/cgCvFaz1OTVdetasKDf+PizuwKGChU6T9aCFOCQap1+D4h7mc8HgfK4rB/D1H4KyMK2IDZXoAmmfbZq0BLWgWgfMbneFh9KVHjVvnv/7sDkw/cerpXmtm/Pta4mtpzHR2iTEF/TqvfPN699y/qsR49b/Yagxzzw/l3RcXRE/V84Tgk+QvGoAcwoHzbgINStjsaQcEKPrex9pYCSGrFA4hEjLqGiYZUpM3UjrmFo4OvL0bHx/5QAO00TV32lL54J9WIR/erqkQPktGc0dPh8R0iXLOyknP5QQcxMwCHVG+cMl+Op5siBkREf1wZKVhtpyNFs8yBU1RMwNvlbYg6oT8S3Z62TFoyESWc3gjNjXYnaf8mqqaJ20SPcoeu5JW2TmUS+D9nMzy4u+cUWMqknLGN1ipjuHlG6tBdqYSLG8iiqa4erEt6DKweQNvfdsAk4f+gXbV4KzN7x6OJBET9Y6wFjktchsK7GXYDZZrl2G1cYFvefo+jL+IliqnNkDZMTOEQR3Qa9FnD82Ed3Etkro1mRnBfpVVNGcfsXvOnTJJJKTNHhGjpIxGNL/NX9FmZ6ao1tG/CyzrMGRfk42RUWHlh4D8OdY2qN1nd9n2ci+R5mvFR44PhW3zePB05Vw+06z9bRHCZ+6M4xfWlOrG9eozCrbBcnugtBdMHRpDfb8Ou7JKAJHh15SDphNVOASLCcDLKJlJcKY2QGtDCEDAb7BlrKku52Nfz2i4yElRT4cuVKqOErWfI/1JKgyoGvAG84vrUiCFQqruWDhLusEl6GrF1HeULC58DRlS8I5uq3iK+eQ4FgzR1vtboaQIQDfJIA1bwLGykdZgaE5bk4COMlhchiUDlqD7nUHMAzhl9ZnhC45htTCiaB9gPSCtjreaGJq0G+lnGbm5TTLeAEuWLKunEmCZexRKZgpINsJ2HoDfAsBu761fPQBKwry5393PLoRwKVTzlY/m0fnusFsKL+0XmG/UHxc6tI5GhW9alpNg+Cy2XT6uTQrhV64V+0xPmB2VoLBRCMLaPn3Nl0ROc62EPz0A/g2Awyy9oWPaCX2C3By/tAfkwGm+Lq7IN1gF9eB/NL6vhPc2qv6pXu1pCpOPxexGSzIXUV/pZGmw/J1BDluXX3l5NiFjHbqwctddFPA0Jf2APhpBOwmCQ2wcs0zquaz/AS2SWh+/lgJdgmmkmQXXfzh0bkWejb055fWSLFjZbe5mrLHAeK6dBIMRRvBirW3LbqH7nBrPK+8WLTN+3Qji+NaZgCLji495++Dn2GAoUoMC/CK0L2Lier2yM8fNTj/h7LQHpjD6YYbTCgH8ku7JlOEa31oGIutoaT5Jidf3oRbsA0PS/Mnx4x1Pil6LNr2LRN9q57BaZGV4HVx652vop9DwJ7COb0eVKLbJp0ium8jrm9grkLX+aNMaAuYaR+H0DZIRI8OYTaUX7oByVDsHBo2lvrIoaWWcYVaUuDm/YKIrjmuIxXLtUx8c80sZ1DRbtu2IHN90aZgRBZhPgfg5zED/Zlsmrz4PqTi4L/Ao+v8Ufq5ou1vA60Fw+TCP028lf7iS/cn/fmlG9k1LDvHUF2H+hoCfBDPGq+TiTFunh7zJ7dB2994FNculucsh+MBtpbBYUbYWWylXtsG8PsQMCuON4jp9ZC4BGx/yruY/24L+racP0o/2/W9kd0GjOoYGYWfJfG9FtULD+WXbh6X9Q3Y3Ib6JqhjspIWsdQWDBsmDfV1qJ4B9TQxaB61acsuKsMpAC/xVo+oVGsRf1cuuMzz1QbwDyFgz6LE3IhZmhekDe+h1L6Mx4tbzx8uwRawxxLW12BzHS/+XBtlNM7sUH7p1TNw9jxsnjZqNhKILUyTZOls3gv1D+BXXCd0y2wvJDuY7iYMw89lJ3bJ6nO6vijO5SlTd8mPIWDvZmgllb8VCsv3scbwmz3OHy6+a1T/6+uwvomkwu8lzX+NUUaTShzKL/3wI3D2biIzK7r5ByF+g+/P/hroF6h8UXazZU2sv8tG9Tz+fPurW7VCd/1WyTdb8JMAfwWV7VNsjUme0xVWAP4pVmz2OX/oj7HieARnDah/FeAHqZC0ow58KL/0h/9HNwk8s64ryy75/NvfpX8Kovcnnn9BMiTZLAs2t1//Dao227h6JPe6pqLvNSOf3YSa7uafNzBT2mTGaygw093yU9mMTP7GlqBJlitKAC/Qzf9XaYJ4jW3ymH8H4GsAX+x9/sDRoPuWhJPmofnriNmz+OjkReB0/Z3zS3fKRkAXOOoJukkZvE6JypKGDQbRKkLX/DPpjEcVw4L+GRJmY3Sbf5bODfkfAPwrqNy87io6KJq/aOpx4T/qff7A8cYB3Gt0/r+FuuEpWuqKjFeYXkfwS8+eEitykY3RlXkUJaFh8LzCmxRdoULTFp4s7QqQ2BtXgsbQxWyDfxWgmaCfwnWOl09vWY1+duD5Q8ajj4L6KN7SbZLaZJ2LL75rfulzA7Sp+ErKRMfbDgKs4846dRz/iqu5rRybI+Zha2Gkren6tuCFvkvS5yV8Bczxa6PiwQ/mjwd/9AugvzCAL9qEBT875As+ORO0HGLJ5LgV3TwIqtJewk4bK4aurxkElqevnCq2JSp+6ZU13ZddsFuMrHHepu3x4CmZUz34oi8xcS8RYgku8VHm6CZtdXQLX6GoQ7WgRzfUkXqt26qlNeGdoNuTjLRz+s+NB0/PjtvKF325eT989RVb0PXC3UVfyH6VtZ99YRnUznLmPZQCMTzZVsGw4ujah0OPbh12bjx4JnS7+KIvP7VLpAZziq5gws3VHmdS8owctDvysis8abhiDxNOvuTi69HFN55rUii/Bk+MBrTGg+cYW/iiL2tojyvEtpUIPiyObjD1ZKz2GHehoHL9gC5BLq281k4nR3XAtSOBcwQPHl3t3ot0HzzCndgVD4Y5xTfnHHpSZLd5I8M/BUdXspWXRxpUi+kYoYvQyooKhWtiaPBLOWEsNTObPbrKLcaev0Go0Q2iu+LBc6AL3XzRT8bKi6Ba9cvQlfxzBq3ka3CskRy61MVBbkhw69CvI2LZ0fR/fUkxE3ShwwJs/+/YqqiueDDMrJwTvugnajRYCmtYeXSls7OECEIcFmNullpWLKRfaV4tNb7YUKl/TW8ITs15gnFx9c+BJOYzp5YZtBapcqR+zuPBs46cL3rmpXSKFDP8nOwKp6iLHFpuRdcRBZpAjD2Rg0AuhwCtFVOEsIZQzy9xagycFVEDKNLPKvBxen6PsQDzePCrO0TXJrI/MWJLskvQGnRpJRYeWuZKc28FqT3q9yORTkWuiabDHhat2r0R4NRvrelzVN2B+IH0s1t6ObkHPVWj2svyePC357dUE77oJ00zOwsZEbWyGx0Q7GfBnaaKsooeI5fKKUgkyLfQFrXTzFI5uZQ6ZtBRQXtLOlP4M/1pdhPlI0tjVDSPB39jJ1sRzhf9hMGL4EkjtQJlNwHYml1CRJ4Qh3RF6J4Ylh3b38J0L0HNXFQOWifE2i3Adtd7phyRVkFPgzuNE/N4T7WKMgCGA+zjwV/aCTWN54u+uzOM9JQ/lgZgURggc4AFs79EEudYu/2kfAAFUqiXGwLMeqAIYOmXW8+kVNNS7R8I5dbjiGuH+TIn8GS9hfHgz8/YbSYali/6jV06K8aPBtcFyAIKaQ4hGMAQAAaGdED5gflV8g0oH5oOCIuNaSZRIFQNkAWTWrf0QgCsMbDNA3Hm/kTWJOs6ll3vr4bgrx4O8BcBfnOH/qQ3sROEhidyHJsGpCWiW5A2DhMqulJ9cLwM4s/h4C4crmBZmdYlpTJt7iQ2u5MEp38Tqdm7sHyIz4Rij4IPOQBrY6nTexgO8JdncDVvGfd27Iycskda/HU4fg2by9TOlhE6jrF3K4qf+2X44+fhxjEclIbHqRDs+Yifkvz5+PSvw+//GJTHIEujP4At+Wn2SDaGA3wb4GfaC3IbqyErxzW6fND4jWHtgAdf3612teEVA3y1Ro117Rak6JpzCmbW28//13/a0jmwausfyHNy7D//9otw67GhuROM9NdKsEuBtW90S5Xvu5+Cf2+sH0mOX8eygtyOctxJ7ujz2gFP+gLp4QTmDIIQirE/s4j7+CbdbaCtqWDeror/vQC2xJJalrT0JhUREytPyxkQwP17RznuPKGk7nbAYy4t4ma9MlGwigUI2tDdgmjeetL/LyDDJ6osiTFu47m62A7gaTSApl+su8pxZ4gmbW0HPPILRPJeMWlmLvtCtSyrCcYq6w7ZKsSJrxO6oc0ZzS5cgrOC3O5y3Enujh7tgCeZW16GgIKpQrXlsKHSLnSnHLd1h0wbR0bi6/e4TDlLaD/E5aho5i9uNmfd5biTxLd3O+DBX8Cn2Iqv/V/WukkymwS17dZbD9XRHdh+6P0PQmcyqkF0o3t5EkwFuVvLcSeJb592wCMdjpqlNZGRVegWdIM5nT2Cuq3Ts9q6DPOlt3XdlW0Vvxe+BrOC3EO1vRx3PMA92gHjE7QaL8SCtCWQ6wAU09LWwRTrZb0VY54DGlS3sM3UWMhPB51c6LTmtLhkIwuigtzzynHHa4et7YBZKfRAgHkoTZL4Ciumit7QoiuYlpa6ZY9Ut0lwtCEWKbW8YHLslfMWPqTLkGDK1+lRjjsS4O52wEjBwVkThgclvCTZxdXti3QHuirY1bwyQbV1i43QFQFj7S1nJr4JiY9s6616GWswFeQuTvqU444BuKMdMJxJ2NoQeLiRpcKMO3RjH5boXoDzNs8cZosuF18d+zesD6ts41vKKTcuHGAsyO1XjjsyXJi1A4ZzGgIPdXQwjB26mqHLAjutKnpLl3YvuEpES7XXyZI8lJ4OvgvgS1qDsSD36dOe5bjjLs/bAcPG2+XtDYHHmNCSouUFoRs80kwn+z1SbmK2HyJWzp583GJMuBYdlNKigzHnYgF+CIvXdliOy9oBw9tH0K8h8DANJClaXqBVVXqMuU7WUQmXXbnbGkRSH1ARiy/Xz0hEyO3nUrcQXnWT1V0swLdeg49sBpXjDhvYDhi+uIDNu6FXQ+BRFpbLflIuNaJkISO3MCfnUypIa4t2g66IV1/PSu0xJuW80I6MK2EtPZcj5IIA/vjZbstx/9kBfPkQ0e3fEHgQwMrlUYSDhFXwgBLD1WtnnxAYDpGJr8eVKWcQTnyt7Hru0oSsbgsl0sUB/NmPw2c7CJ3FCpYKFjUeyiUtDB2/vAK1gs393nTUn4IuwujW+LRJaKqhrM29lRgALlQwqcIbCEX1fuusk87sDboIsEIJ9pazJv0MJL72j5tvXGrw7JZbmLVm5OgZBnBgB24jdC7xN5QqoHttWriwLx31kPi0rIzzfEFJM9ID7Kv2dJQ0w3W7r5Y9E+bYIMAeWiu4ytPvk+w6rtjaPP3+NhYdTHVtLBUXBfDNBOA4ZluogK59w+icx8QbhtFR945P6zUcbuAAAfYpUcC0cVRhHU+06xEpDYfXBgH2sqt5tx5wGAN3YFXBV7/MtgJdoE6nn+gLcET/3EboXHrljPr5xlgu0sF01APj0/Ix3KywgSDTxhxOYPo52V/dl3C3hIeFU861cHAqL6kQoct/0W1l6KZuM8NFdojpvJwivQCO6J/bJnShwrrbHDGd86RgVS866iHx6Zeeh+9jScES04yXmIVql2RZO7G2R0kbYmscNZ+8qODFsSWOf/cH4Z+j5ljaAyfKvjYXNzKNVQj2yVuwvbJE8Spql1JZMMVTxPlceVC5V150C/1zrA+babKCu8Sjjc55ZLhwAB11//i0DsXUvujDGtIusGOdGxm6cpZUXuraLijH3SGE+297A4lvq+QpXToNmfD06dbuhecA3En/zAidzZNYwwEebXTOIxfgAXTUg+LTMRNRcHGwSoKS0rIEQ3eGvhps6+VD/d63JXV4TTofqjjLJw0qQ7hsntW1DeBO+mc2oSWqnQbaw7qVznlktsgAOurh8Wnhqy59bqVySk8wOZYxurO08eSh/hD9VSSycfjBY1zFq3Uivq2Nz+S5EtxJ/xwTOhtoKziqttA5j4xGDqCjHhSf1qmWjgIACGpwKLLQXqnnQdepDb6agvve3H8ZAma8iIHuKlfOeffCdoDPoX+m+s5Gdo82cFxtoXMeCfAAOuqh8WlWlumr+QpS1Dm6BaErJ6MLtPTywJH9oiIGNel8yF0uqSrWLaCeI8Hb6aL9hDb7jWtruL7ZTuc8Jlw4jI56YHza11j6KKFXzrxYqCQb1QrW9DVYQ5xDqZ0TzT9AWzofturn3GYuzgW4D120J3S+voab63PpnAePwXTUQ+PTVFnrj0JFyrnUbq9i593qz+lrMLfjCsUQpfDDls6HPnDJ9XMivsW5a3BPumgrLkcn8MxZHzrnwWMwHfXQ+LQORlZBQcNCuR0wR9e/kSRPUyXY1yOBE1+rJ0qyD7o6H0LM3O91gMzyufKIsrvt/nTRDbryLXj+pCed8+Dx1lA66oHxabf6Eq6lCqAaZ5y1Y62rId6xTO5O5yx2+0VeUpcxup2NS3lGJoBsy+dqjSiXMJAu+uANePFefzrnwWMoHfXQ+LRnOSmUcw/5w0VqyaAtSJhmKSHR3lxHVbHArzvQvTofQrLu6vDwndu9sBxKF/3RR/BR1Z/Oecz42SH3Mzg+XTuMPbo2OnKgw4pYZKH46SraKg+rM5b4LUsddbfc0vmQ54UVMbo9uhdesfFv/DAcn8C1FRytjXOmOQ4QXQtt0vvMT59d235iwvf+4nvhqRO4vTKhjuvKHMdsP7m98+GXb5i7PcBbXdKTsejXvfDKdQAXNrRQOw/rEtFdorZcxCZ33iNr0veSKdc8Roc6xKr7dD70uX+5P+Tc7oVXDmBLRrSonECYuVZhivP2Z9xAnbgGW4CP8EsHdT70+rlk+Vw9uxdePYA3JlB4WBnlfNxMt45kKLdgxUwJ6AIjqkf4jdcpBNKz8yFQtt6CtaPu2b3wygFcYkbHcW1WwWs6+MyXsfu31fM3aaDT/poKAbf+nQ+BtnAjuhdeOYAPzuDGBp5SZpaPM9dbV3HfDBK8geu1C3cO7nyItoJX6YO6F145gJ8+g+e1888cdXi7WrcZU5t4n8F7NYzrfGjzucZ1L7xyAH9EG+f2DdLJcms3yRlTpV7YwF9rXkd1PryF+VzjuhdeuX3wJ38alAJVYw6zfVXGxFW4TLoMOnTrK5bdYD//ra8H7vl1SM+Nqhzse0Xdrioi0vrfPjD+nv/W3ZScq26rRa7bCtIlXMkhcN9idy+2ZMHGXD2oIbqv2OeEOE8azosNec+riv4542ilB8mZuezr1QPYMzEwXDU4MfVg6q3oqjZ2jjprmlMxKrxd4JrwOOkMXX0F1+CAnmYweyC5HCunqHX8ZOgOqc0pDmsmyjPd8jZoc+4mdTUB1qSBtQ64apo/3YGuaFPReSMzv+4mH8LOMN7O0nUlJTgRYhXBrBN0XfF2i7i0VoInLet8Yfi8q28rlrqNu6m8itBqEmJ6VXzpTdCFUJYC3QQdrJdZMKd9ZWk1H7S6gwUmp7u9uhJsKVGcFa1iXR2jK7h9pFIBquNyRt+NsPJ7JF9cOrdy9ozFdTcHm62bGg7wp1j1QZ8GvwPH51ja9SkrKnzIaoIfMk7DvzuQX9oDZre/Xny1iNFVTi2HqaWlubXIv8p+d8Vqw+sdKOc6s/KiQ4wzsspsu7C9wW85BmPdQSd8yghnLXKVDKq1J7/0QSi7Z0IswobYo6sZtOyPUs1cx+iuCVoHcHMxOZuR1cWql/Nz+SL0chi6i44tYWuDX3t+Nf7H+LL9VkrSBt0NA7gnv/SB18/4qqxy9u4qvuiqWHp1kOCKKS9X7e8fLELXYC8Dt9IsEqzaFoiEn0sz8R2iohcxs9m5DX4XY5nQWqpBI2itim6gdQAP5Je+xaA1SKvg5VDMB5I4tvIbS3qirj26Ahdg4TBWc6jo1oU/5+dybjUR2V9lX3QXWanClga/recPMShaC8D9Mtzguikcxv6v+vJLayfB3M4K6MY6OSEBh6wh6orEdyUcwDXenrWwFASCh4lDta2EYaVAka2Z4HqCnx4IJMkscF6D3/z8URK8ie0sX9u/LhzAFQI8mF/ao2tjDBxd1Q2tjh67dIFHOocVrhqJfla4Bk9U0Ro6KboUGeoqg9byc5Xno7uMA9PbG/zm54/6PZxO+AGr7W/QjQAWkfj24pe20CqGMaEOfg0GpqvjWU7MglNE14ivdKxKQTlLRnwnZpDgnH3NUcDYmAfnPmUYbwX4oC0FCLob/HadP/xpragA/D5xzjbHWQGrApUzotuIiDX6BvFLW3SVPbiiZhEknbH323c1lak6oiZhDguw4WRB8a2lU87WeHYiJWdDd834ucIqwHnXYganboB5QtiCpVf770wa/G4/f8iwaFl0bYnwm82clgbddeFWX68khvJLmxiwivSzD/3qbvH1P/qU2LseCngkiU9JGgm2squY+LoVUUacLONUmtcca8bPVRMRTGBOjNnXugHmFb4JpRO0Nfjdfv7wp/UM4XkLC/tfa+a0hLMG4NJMpVpE9aBD+aVNqL+G2osvl13d0lKPf2K/xfCxSXOc4rHBw2rLMOMiaEs1OaHL6yf7PFWcwSmBlpE4WYzbAM6Je3ltUN7gd/v5w5/WDWLzBjYxfLWZ0wWcLoz4VousHrQYzC+tK6gtwOSzTFDcUsjffMvrAl4v4K0STooUXUdiKOKFUMzQh9HzczXfuBbR1ymGZUS9Rj8kA/hGdyWozSBKGvyee/7AYdvsNuh+B+mEHyzhZGlkN60LprSzofzS1SPnKGZ9lOOOhkmTI/bPOwt46RC+t4BHhXl6jEklIzECJknchzxxNNribcbPpRKaU37jIv3GGOCnWGlt2ZF06xv83ut3/sCxRrS+hSXCbx/CoyWoY0I3htY+QEP5pW/eMkWIIsNUdKgT/vknvw0f25hfb/XXhvmwVt4IEiGC5MFojv/9fexSrFF46C6JwuAkQrIItDD8XO+rnNapUWk1D5bC0+w+IrxBg65iX1SGR9UWch+SlMgOjr3HKCBv9T5/6NOKtf2/30B1DU6voYY4aPsKOnbOL90d1fFbT9+fshLMHcHQjTxZ2cx4mCVTG8IjLSIBta+WW0/RpXy8WfPvQrBL56h6L6ZlHsTGUStIb6ISfF/v8weOLwP8Qwkv3wb1DEK1jPO7s28ZzC+tZ8gk3ZKN5cJHbJm0Xq12iEUs0xC3i5Xucx3/paa/d4uCpBPIdLfvNa5fpcHpNtZaL+NSXOhG69mB5w8Zf3gNXr4O6llEtzyfLHowv7SeKsQ8HBtFhb3bga2UFYly1/DKWbShm9ip3o8bYPahqjZ0cQ22HoE7o+LBm/njwf/dCagT2LzWly/6s3b70r9n9SfncfqrJDGW0K04ugiwlpkvOlNFgq4vO9DVjHpae1yZlg4eb4nO0XYja3r4KgkaTot9nssXfUkJP1EUNoGZb4grcHOde7ISLS24lk7QZcuTSqx0Wow1k2OOLsgpKTvnxoOnXfhcvmi4bIBrSs3xLugNR5cbWXkxDBNfmdjSHt225U9lRlY7usJpjnKeH5oHDadZqufyRV8WuoqlPVc+8QqFdcOgdehKaufAJFiIyHgWZBvLBF1amIXfXpN+tlaVs63I4x2hK0NUuJzh5+bx4DnmcQtf9CUOHSe1O1yZcrbeD5V4LmWbgpYBbynCPliIbNcEYRfk1LKVWm9YYehF0xNRiyDH5VTxzePBc0ziFr7oS0c3UljCOTc2ONfWbalkpKJ1Fg8OG19BGDN0tSAfIO31NQv0ggz+bReI9DALWvLpb7Wc2OI9jwfPtMh18UXDkwGw76mzFg7dynqJpTOerRDbUH+0BjNFHTa+khCVTlcLglYwAzuk40j33NQiFmJam/0CrKcmTSXx4JlGF180PBkAh0caFfKahxykE2U7+xbaEC6MPbgWRWHRpQ+LGFrBzDFN2t5iHNAlK1rH0E5Q0a3x4PkmsZUvel6cxLS1w6CLIruSLhhcURKgldqaTb0V4ghixNX806JLi7Hg0MZF6e5SkuBkrz6KFXbD9Ldjreg8HgwzA8z5ol+FJ2VoCjCsMC57JjEHQboUIgtqLZ1+9lMfZXSI4IA06Aq3DEsZDCshw66JW9FO21t7yuajka0eQStZS2oxusU7jwfPOhK+6G/DEzRqn4Iv4bTAFCLpkkxsClElCVcSL28WecSspHp07RtrcEX2M/unB1IVeGX7DJFAK7K5tO/MxeR+bAdwHw+ee3C+6G/AkzXs735cmGi/SzKx2bsEsGLzbtdLTWunEQmC1uIqpQPbQUtamru3vLtD0SpQWVVROMh90khwZLKsnVEA+3jw3Z1MoueL/tIcofJW5/7oyzbi+0jCgxIeLuBkYdIQGvENM840s3tl+xzz5DaIFgQtASwFrcoibIs5zFaCqxLq0ry6r5PR6qvj1mtBgseswWvclr6xKymxfNGfn4n2oGuXN26cCHj7wKQhPFyaLKJ1GdD1iGomtT7zTeOTa9AtoSgMtA2uToIhegURuandAlzCpvm6JWxKsxwovrqL4JeOsrHIXz0c4DcxV0rvCuAvAvzmDN6wnYzXn4VXbsDbS5PiuS5IJ3dMdFRVLAzXlVxCKc1RMMGVzH/Z5bGub8DpsflS8zzFmZQA7a0S9fho0r3dTv+Xd+xq1hNi1p//r+AvXjNZXWoFCt2VNsvaL3oaskQsevPRX4Q//QYsTwwVqm31wrtg8je58HzgP4Y/+QZUJ+ZLFUZ3tI7LL7r/djjA/3VWSpAU5D6mWpHHY/bH/z7Ap3d4+UkZCe/5bw0X4YbCCa4+RbhEGb8oAv1Ts6jO//UxTIOpDKdhI82ixkPRUVMnCc3e4I60EfF/8LlgPQzNI5PjBUFl5bEr5vfAWpFD2OnlYfwXTFvC+WqnfTCH9GRoRkroclgEO3y81WIpIHzu0Z24Gk4G2Kfc83odPI7Gdh/td3kY/QWT0opE1PzZO4w0eZKDhcXQ1SKgy1P3fOsyh6WK3num6Cn3PDmatIldWlSNezyhd2GPy8OkL5hFfNl92virz3f06EZWNLT9MWtGaptUu1ePN1+bLw5g7ndvY1e4Nnn+t14eZviCiRiL+CAgFfmtrOwKEQL1Eboq0tX+fSLBQWNfNMD59LN0qesQ+OoPYPbLwwxfMA1gzRgwfFmfM6UpH12x+E+Q4Exk+fvQUTHWzxPzVMvxCnTTwoTjO7uHfr1zXh5m+II5MFYQVY5oVnAGDGNBq7Ir+SG5DLaVplZ73niG9jX4wiW4igty7xvn5U3WGtSXBc13eZjtC6ZLMHNuRA5n76dkSOcSnHchB9oXha7GhPGFA+wrtHlB7j3XiuA6052j28u2XR5m+4KJ6DKt64vAeGqOS9CxMWDJorOaNZhUTnCjVqj8DXWSdRJ/0RJcU6nsfZdy8Uzcr3dKe9m2y8PMXzBZPysmxIoF9nOPtM9T938sVFh6XR/UBF0SXKFn2AcPnyHFCnIxlWZL8+ARFB3Z5WHmL5hJP3t0lWToymgT7BwNIuInBsUcWP7QAWmunKeXzI0C2Bfkftd0mXiWdCcvx406Z46/PMz/BRO9HBAiOS70y9BVtAxbH5bw5f0iamtrfZO+gbFHV7IWo+LSAF67glzxbdMrPO/XmzRKHHt5+LaAnXzBtJysCF3/WpC1JSNrS1AEPjAjKOeClhxjTTD7Ju6aNcPVk+55OMCPTEFu8SfwIZ326y1nqP+2l4c/aabsQ7CTL5i4APuShSSFg/QzMIx5LYKN0NgYg8SjUBHAVmrDK8P4YiX4G3D8B/CxOurXW7T13Bo3vgHwB8dQfwx29QVTAKZMWIcui/ZrL76Eq5JR5jr4qFHtGhi7NsbUV9j2BrZbYY/0JQD8wsvw4mP4MdSay5mLv814+QV4/CLs8AumSbBBtwiHwoMDDLEJDV5Lo/UoNyYebA7sXmz7AXuAA646all+oQDf+Qzc0fD5nQVsP3MH9B2oP9/78n9nWHx6Sk6WqVqwOZSYIWUBrpHbJciuDMlvkcqpDboW4LIy6BYkvgXE6CYAT8sjGwbwoYesdzz4bPRq1yMePOJ+pshDg+imhGppMqQUAqwLtwBDjC5QiVFAukF3ZVpjLivThrS0vd7BYOx7t6fdJfVUdIcBbP2D6YRujQcfTQZ4Szx43P1MGesFnB3B6sABrAtnW3FwNEtm9mF/M05Mvo5p5I19REtq0+5kt6MF4fQVqS/AUXTuCYgHj76fKTlZJ8/C42PYLI2itpjYtVZwIGNSnDDRLxuHzVHM/tPFSSRm2tf1Bbgl/Hqp8eAp9yORSERsjBErUOKt50Hi8+Fd/1LH6TVoBn/gPnyg9646aSv3uf8GvvUYRHOcGl3d3IZYQbHBjuRYMVGosH0CfDV74tpc5MX3mhsGXMIFu22bvJfctkbDzYcazwe4Jfx6qfHgqfeTJM0AhWa945cF4YGhK/VkkfJRIxXFkQyc1gojT7X1ewhE1/EzZLcN/W77HIBbwq+XGg+e5X5CvJ3NiIvi+Z1okvymJ5NF6eCt5B7pAjfHDYolkCzSq0G9Mqs1+ATb+LZF220nD+U2gDvDr5cUD57lfqrWDnFeDnyCY47u9FKLjt441pPV/ASLaBGjK1ozwXrfdifAneHXS4oHz3U/97kQKCdPPoQndUilkEjyL/kyPFFFq+COluTPsuJrXZUGUYjRtcYBxIKrQn5PftsBXTzaAT4n/Hrh8eAZ7+d+tmLxdPMkqTFCV88hwSrkuwOLN1g3daGDHJfafSJZ1YLgy0rHbScPZQsE54RfLzYe/Mbs9xPnqyaz5m1RG3XXmszp6Z2W/ZJJDhmLNLDAg7C4Vm49LikLAAbetmC3nQJ8fvj1AuPB30OS1JnvJ0mMUlk2RZbaKIElrE8UX0UKmTZFpQ88eHRRdi3GZsesWpKot9y2jm+75JZhr/DrRcWD7+zsfrxO9nmNwLMbedqb31NOdyrZ61DE0JYn2b14A62sCV3lQkzNbZSadlB02xHMSVImu+0WCW6u0jf8eiHx4G/u7n4YvyZPmpFsmpKct5DKOjUURZq5IiML3xR4WEVt3R1GcGsXhxB1RAsqzrttQKH3t11aN+SA8Ovu48F/AvDx3d1P7G3w/iA+TdxIcavaLEYWF18fNKwcwC6AqNx6XJA5XXTcdkjjim87SrltZuMFgEHh113HgwFld3f3I8jMCQAnCY5eAnCyirbcqDHbJOVcjC4k7F9rghk1c1G5dbfQTlG7zU9+23X7bUOc0lXewdXu8wMCwgPPHzg+z153cT+/oFhKFHkHQ+qMjnKjQM+W3egC/hVFhfFoLKwCo4dWfAsWJLZCbO9E+7WW3bZL9MluO8kauHodwGnT6fNmCusyZNPEJ8ib0NMBNqXfaxNmKNZQbvDA4P9CIdJWakl2bYTYauC130An6T4xupL265Ld9tUD2NuuceZb0Zo3o4PCn5g6Y56qRmpXiO4aFhs8UHwNwIoBjDdQKLL8NQKcJewJBjC/baCHw972lQOYGziFN1yZ0HhcvTREjHOjdXXzvWcgz2BxBssVLDG1Y1k78S1tCgDTzAV9tXVD5rctcR8ls9sGnvpzFQGmJbCZ1kVNtox2bn23iWSI+jV46mg082NYPIaDUzhcweHGoLtUBuAFyq5Fq8SvC32etIssCbZsl+TC9DfPbxv8zvBqrsFGhlZGeho5WOp4wUvyVW2XDD1T/vUJlPfh6CEcn8K1DRwqOMAbWKDIlpR65/a+EGGm15jPtTIqfVmTrJOUJ7cNcdrelQO4kaFGeg5xmhYQNGGRJTICSYP39E1ahd+Aa2/AUydwawPHCg61QdfegySRLSA27vydPMZ8Liv0KOX2bov4cQwPJbv/Kwfwcyeu3Zak3Cjozo3Ssbd1Sm7U4e/Cj2MU5FrcCDDFsi0zq2D5XGW8189vW8cPqLhqAH/iZ7AtjMCGKb6zAnWx8OXbWoYaUU+k8l/+tukIfSoM2+xKYl9oIiNdY1KtJ5zdoHxV9mqF8VF++z+ZcM//dPw9S7iSI/DfxA3RNWuiHQp8BWNJYoQNmqa4Rm++7fqtRczFXrjuGZd1z+WVBZjTqfD5Spot+5nyDeU85YorRCscxrp0HXR81WHzSWWxF5d2z1cR4IhROZuywK3BXjlbncoPW4WGWBqkkTLUo1uLqS3ep9xzeUX1cy4HcVei9JUq9pUXGiocrX0nFItxiUsvR1cayC/rnq+qimZEKpx2sHO+RFCS1q5xLc18rTA4dV1ZjD26RdxM8MLvubyC4qtjlqvQoN3TtOcz5duaUBNmD7O1rRQ15XCyW9KqPIcET7nnK6qiE9bQlC8HQi2oitfgwBxMRf6mjtRX+3v9LAjjgir/L+mehwP8d3bLFz308uNuJ8hBzg/L3nMrJuxGqE2h749k0a09utLZWRZjKLLehRPsrKH3PBDgQ/ZEDSvgHfzA9uWLPht2vmZt4rRIKXNa+i4IZrOQZrbQVl6IqTWHxjdWYzvWjsJhPIuKHnHPQwDmBbaDC3hHAnwOX/RRCvD550PbHPHWCwkbkmdUoSl2DWSlY3GoSkbqUIb12BtZdu80XXzH3XNvgHm95uAC3jEPbH++6EHncy3He5co4tlIqeoYoajGXqMWWtvCyB91GbF2WJiBCHimS/Doe+4HcF6QO7iAd8xP6s8XPeB80S4NmrGaAb06BiRmQludbP3PGy++CyfKCkkdKunWXU3tdqYStk245x4A5wW5gwt4p6K7nS960PlO1q2V5K3fgnUsi9mQvEDY97ZJ8AbJOuxhmlUtAidL4N0pHLuD9UhPl+Bx93wewHmB7eAC3pH6uSdf9Ijza7/JKUI3QL+f8ZPFOTd8b88NNitcl4avY4NHhYcigDUBDB5gOdUXPeWetwLcVZA7uIB38O8ZxBc96Hy1xn2ON30LJgp0hDmSUaPHRoAMutiEzPQhw8OJb2k2SM54xtXXSbBwGE8ZVjOPu+dugLsKbAcX8I6R4P580UPPVxtcQcuI64qTmQEjiuVdQzVO8dkCTg/g7BBWhwbjamkWYIVrcAOwuULpFl3vdoDJjg6rOcbdcwfA2wtyBxfwDhtD+aIHna8eONXaHNY40kWLHEDWtlsjjdLjI3h8zTSaawDeHED9/1N3NikNg0EYHksoogsRxHVx6QFc6cZreABv5xHceJHSrQtRaUGLjf2Sfvlpkybv/DSdWQhCeBkznWn8JjPPOBTnVZ6+8amKYmUudKQZPOL73BSB/QO28AAv+MeA+6LR69dp95PlX/7FWeQBbX2HUR3Anf1cnNHXJX1fhAAvT2k1LiszxdAWTzo0qu+7E5jE550Adw7YwgO8cIChfdHo9YurkIK/+Z3a2k0X/ychapxqovfbwKecn2eVOSnTqHhkpUYpsUl8Tqq/9BqwhQd4wU8ruC8avX4yDcN2PA7g/Rvd5e9GxfOskgU6KnmFxYFiFW338pw96LPYhZMPvs8xwP0HhD/RAV7M0H3Rh94vvYO2S9vRdrSFtqMB2IXJ5hiy/4AwPMCLGbovmrFfmh3ltoVGfdF2w7AL0QFhAgd4QUP3RR94v7QIbUeDsAvRAeFqA3Yx/L7ote+Y/w9KL1fw0Hbkgl0INGCPU16ptwOh7cgLuxBo2CoE2EZe4dUZGG3njF3Y3YCV3kQzeZljbLQdeWEX9mrA6pRBM3mpYxy0nSd2YUcDVj+6qvI69ZmDtvPBLuxowOrcRDN58SkH1UILoO3IC7twXwNWLVEs5WWlJbKxGGg7J+zC1gasZhk0k993its/wEy0nQ92YXMDVtOM5QWfDAnazg27sKEBq2nG8tLUl6DtfLALdxqw+gG2lJf5JkHbeWEXVhqwJjfRWF60LEeEtnPBLgy2acBqrNcdQF4ku5Sg7Y6fXbix0IAlhWmbYeRFJkHbHTu7sLSp7Vmwsbxo19Xsif5mgU2XZq/d5AcXaVrHkrUUiuSGrqdcduEjnbwyff4XYACMH+CC6Spl3gAAAABJRU5ErkJggg=="}function e(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAhCAIAAADiVupLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeNrs00EKgAAIRNEZ739mTQoiwmhRi4L/FiKiu9ERISkzbXdTVV3H4WhfOG6ehl1rNR7qDSF8hwkVcJXt+3A//I0Nv0GoCBUAAAAAAMA/LAIMAB+Dcg2OE2zsAAAAAElFTkSuQmCC"}})();var c9=(function(){function e(T,jW,i){var jX=T.gl;var jV=T.programMgr.useProgram("overlayblock");i.vao1.bind(jX,jV,i.vertex,i.element1);if(!jV.lastState.projMatrix){jX.uniformMatrix4fv(jV.uniforms.u_proj_matrix,false,T.projMatrix);jV.lastState.projMatrix=true}var jY=T._camera._far||4000;if(jV.lastState.cameraFar!==jY){jX.uniform1f(jV.uniforms.u_camera_far,jY);jV.lastState.cameraFar=jY}jX.uniformMatrix4fv(jV.uniforms.u_mv_matrix,false,jW);jX.uniformMatrix4fv(jV.uniforms.u_normal_matrix,false,T.normalMatrix);jX.drawElements(jX.TRIANGLES,i.element1.length,jX.UNSIGNED_SHORT,0)}return function(T,jW,i,jV){jV=jV||{};e(T,jW.mvMatrix,i)}})();var jJ=(function(){function e(T,jW,jY,j0,i,jX){if(i.length<=0){return}var jZ=T.gl;var jV=T.programMgr.useProgram("marker3d");i.vao.bind(jZ,jV,i.vertex);if(!jV.lastState.projMatrix){jZ.uniformMatrix4fv(jV.uniforms.u_proj_matrix,false,T.projMatrix);jV.lastState.projMatrix=true}jZ.uniform1i(jV.uniforms.u_use_texture,!!i.texture);if(i.texture){T._state.activeTexture(jZ.TEXTURE7);jZ.bindTexture(jZ.TEXTURE_2D,i.texture);if(jV.uniforms.lastSamper!==7){jZ.uniform1i(jV.uniforms.u_Sampler,7);jV.uniforms.lastSamper=7}}jZ.uniform3fv(jV.uniforms.u_camera_pos_high,jY);jZ.uniform3fv(jV.uniforms.u_camera_pos_low,j0);jZ.uniform3fv(jV.uniforms.u_camera_pos_low,j0);jZ.uniformMatrix4fv(jV.uniforms.u_mv_matrix,false,jW);jZ.drawArrays(jZ.POINTS,0,i.vertex.length)}return function(T,jW,jX,jY,i,jV){jV=jV||{};e(T,jW.mvMatrix,jX,jY,i,jV)}})();var eT=(function(){function e(j6,j0,j3,jY,j5,j4,jV){var j1=j6.gl;var jZ=j6.programMgr.useProgram("groundoverlay");if(j4){var jX=j3.overlay;var T={fShader:jX._config.fomularC};jZ=j6.programMgr.useProgram("groundpixeloverlay",T);if(jZ.lastState.fHashcode!==jX.fHashcode){j6.programMgr.removeProgram("groundpixeloverlay");jZ=j6.programMgr.useProgram("groundpixeloverlay",T);jZ.lastState.fHashcode=jX.fHashcode}}if(jZ.lastState.opacity!==j3.opacity){j1.uniform1f(jZ.uniforms.u_opacity,j3.opacity);jZ.lastState.opacity=j3.opacity}if(!jZ.lastState.projMatrix){j1.uniformMatrix4fv(jZ.uniforms.u_proj_matrix,false,j6.projMatrix);jZ.lastState.projMatrix=true}jY.vao1.bind(j1,jZ,jY.vertex,jY.element1);j6._state.activeTexture(j1.TEXTURE0);j1.bindTexture(j1.TEXTURE_2D,j5);j1.uniform1i(jZ.uniforms.u_Sampler,0);if(j4){j6._state.activeTexture(j1.TEXTURE1);j1.bindTexture(j1.TEXTURE_2D,j4);j1.uniform1i(jZ.uniforms.u_ColorMap,1);if(jV){j6._state.activeTexture(j1.TEXTURE2);j1.bindTexture(j1.TEXTURE_2D,jV);j1.uniform1i(jZ.uniforms.u_Mask,2);j1.uniform1i(jZ.uniforms.u_maskLoaded,1)}else{j1.uniform1i(jZ.uniforms.u_maskLoaded,0)}var jW=j3.overlay._config.domain;j1.uniform2f(jZ.uniforms.u_domain,jW[0],jW[1]);var j2=j3.overlay._config.clamp;j1.uniform2f(jZ.uniforms.u_clamp,j2[0],j2[1]);var j8=j3.overlay._config.maskData;j1.uniform1f(jZ.uniforms.u_maskData,j8);var j7=j3.overlay._config.noData;j1.uniform1f(jZ.uniforms.u_noData,j7)}j1.uniformMatrix4fv(jZ.uniforms.u_mv_matrix,false,j0);j1.drawElements(j1.TRIANGLES,jY.element1.length,j1.UNSIGNED_SHORT,0)}return function i(jV,j0,jY,T,jZ,jX,j1,jW){jW=jW||{};e(jV,j0.mvMatrix,jY,T,jZ,jX,j1)}})();function je(j0,j5,k7){var kz=new j0.Int8Array(k7);var ky=new j0.Int16Array(k7);var kx=new j0.Int32Array(k7);var kw=new j0.Uint8Array(k7);var ku=new j0.Uint16Array(k7);var kt=new j0.Uint32Array(k7);var ks=new j0.Float32Array(k7);var kr=new j0.Float64Array(k7);var kp=j5.DYNAMICTOP_PTR|0;var ko=j5.tempDoublePtr|0;var kn=j5.ABORT|0;var km=j5.STACKTOP|0;var kl=j5.STACK_MAX|0;var kj=j5.gb|0;var ki=j5.fb|0;var kh=0;var kg=0;var kf=0;var ke=0;var kd=j0.NaN,kc=j0.Infinity;var kb=0,j9=0,j8=0,j7=0,j6=0;var k4=0;var k3=j0.Math.floor;var k2=j0.Math.abs;var k1=j0.Math.sqrt;var kZ=j0.Math.pow;var kY=j0.Math.cos;var kX=j0.Math.sin;var kW=j0.Math.tan;var kV=j0.Math.acos;var kT=j0.Math.asin;var kS=j0.Math.atan;var kR=j0.Math.atan2;var kQ=j0.Math.exp;var kP=j0.Math.log;var kO=j0.Math.ceil;var kM=j0.Math.imul;var kL=j0.Math.min;var kK=j0.Math.max;var kJ=j0.Math.clz32;var kI=j5.abort;var kH=j5.assert;var kG=j5.enlargeMemory;var kF=j5.getTotalMemory;var kE=j5.abortOnCannotGrowMemory;var kD=j5.setTempRet0;var kC=j5.getTempRet0;var kB=0;function ld(i){i=i|0;var e=0;e=km;km=km+i|0;km=km+15&-16;return e|0}function k8(){return km|0}function kN(e){e=e|0;km=e}function kk(i,e){i=i|0;e=e|0;km=i;kl=e}function j1(i,e){i=i|0;e=e|0;if(!kh){kh=i;kg=e}}function jW(){return kj+1892368|0}function lg(){return kj+1990672|0}function k9(){return kj+0|0}function kU(){return kj+4374544|0}function kq(){return kj+1998864|0}function j2(){return kj+1998864+(kx[kj+32768>>2]<<1)|0}function jX(){return kj+2523152|0}function li(){return kj+2523152+((kx[kj+32772>>2]|0)*20|0)|0}function lc(){return kx[kj+32772>>2]|0}function k0(){kx[kj+32768>>2]=0;kx[kj+32772>>2]=0;return}function kv(){return kj+32776|0}function j3(){return kj+3833872|0}function jY(){kx[kj+40968>>2]=0;kx[kj+40972>>2]=0;return}function lj(){return kj+3842064|0}function le(){return kj+3842064+(kx[kj+40968>>2]<<1)|0}function k5(){return kj+40976|0}function kA(){return kj+40976+((kx[kj+40972>>2]|0)*28|0)|0}function j4(){return kx[kj+40972>>2]|0}function jZ(){return kj+1875984|0}function jV(T,i){T=T|0;i=i|0;var ll=0,lk=0,la=0,ka=0;lk=(i|0)>0;if(lk){ll=0;do{la=kj+1875984+(ll<<2)|0;ks[la>>2]=+ks[la>>2]/100;ll=ll+1|0}while((ll|0)!=(i|0))}if((i|0)>=(T|0)|lk^1){return}else{ll=i}do{lk=0;do{ka=lk+ll|0;la=kj+1875984+(ka<<2)|0;ks[la>>2]=+ks[kj+1875984+(ka-i<<2)>>2]+ +ks[la>>2]/100;lk=lk+1|0}while((lk|0)!=(i|0));ll=ll+i|0}while((ll|0)<(T|0));return}function lf(lK,lJ,lI,lH,lG,lF,lE,lD,lC,lB,lA,lz,lx){lK=lK|0;lJ=lJ|0;lI=lI|0;lH=lH|0;lG=lG|0;lF=+lF;lE=lE|0;lD=lD|0;lC=lC|0;lB=lB|0;lA=lA|0;lz=lz|0;lx=lx|0;var lv=0,lt=0,ls=0,lq=0,lo=0,lm=0,lk=0,ka=0,T=0,ly=0,lw=0,lu=0,lr=0,lp=0,ln=0,ll=0,la=0;lp=(lK|0)/2|0;ln=lA<<24>>24==1;if(ln){ky[kj+4366352>>1]=0;if((lB|0)>2){lv=0;lt=2;do{la=+(kx[kj+0+(lt<<2)>>2]|0);ll=+(kx[kj+0+((lt|1)<<2)>>2]|0);lv=(~~(+k1(+(la*la+ll*ll))/10)<<16>>16)+(lv<<16>>16)|0;ky[kj+4366352+(((lt|0)/2|0)<<1)>>1]=lv;lt=lt+2|0}while((lt|0)<(lB|0));lv=4}}else{lv=4}if((lv|0)==4?(lB|0)>2:0){lv=2;lt=kx[kj+0>>2]|0;do{lu=kj+0+(lv<<2)|0;lt=(kx[lu>>2]|0)+lt|0;kx[lu>>2]=lt;lu=lv|1;lr=kj+0+(lu<<2)|0;kx[lr>>2]=(kx[lr>>2]|0)+(kx[kj+0+(lu+-2<<2)>>2]|0);lv=lv+2|0}while((lv|0)<(lB|0))}if(lC<<24>>24){ky[kj+1892368>>1]=ky[kj+1892368+8>>1]|0;ky[kj+1892368+2>>1]=ky[kj+1892368+10>>1]|0;ky[kj+1892368+4>>1]=ky[kj+1892368+12>>1]|0;ky[kj+1892368+6>>1]=ky[kj+1892368+14>>1]|0;lr=lp<<1;ky[kj+1892368+(lr+-2<<1)>>1]=ky[kj+1892368+(lr+-6<<1)>>1]|0;ky[kj+1892368+(lr+-1<<1)>>1]=ky[kj+1892368+(lr+-5<<1)>>1]|0;ky[kj+1892368+(lr+-4<<1)>>1]=ky[kj+1892368+(lr+-8<<1)>>1]|0;ky[kj+1892368+(lr+-3<<1)>>1]=ky[kj+1892368+(lr+-7<<1)>>1]|0}lu=lx-lz|0;lr=kx[kj+32772>>2]|0;if((lK|0)<=1){k6(lu,lr);return}ly=(lE|0)==0;lw=lp+-2|0;lm=lA<<24>>24==2;lk=lp+-1|0;ka=lp+-4|0;T=lz+1|0;lo=lx+-1|0;ls=0;lv=0;lq=lr;do{if((ls|0)>=4){if((ka|0)>(ls|0)){lB=T+((ls+-4|0)/5|0)|0}else{lB=lo}}else{lB=lz}if(!ly){lv=ky[kj+1990672+(lB<<1)>>1]|0}lK=lB<<1;lx=((kx[kj+0+(lK<<2)>>2]|0)/10|0)&65535;lK=((kx[kj+0+((lK|1)<<2)>>2]|0)/10|0)&65535;lA=ls<<1;lE=~~(+(ky[kj+1892368+(lA<<1)>>1]|0)*lF/10);lA=~~(+(ky[kj+1892368+((lA|1)<<1)>>1]|0)*lF/10);kz:do{if(!((ls|0)==0|(ls|0)==(lw|0))){if((ls|0)==1|(ls|0)==(lk|0)){lC=-1}else{lt=ls+-2|0;switch((lt|0)%5|0|2|0){case 2:lC=1;break kz;case 3:lC=-1;break kz;default:lC=kz[((lt|0)/5|0)+(kj+4374544)>>0]|0;break kz}}}else{lC=1}}while(0);if(ln){lt=ky[kj+4366352+(lB<<1)>>1]|0}else{lt=lm?((lB|0)==0?0:10):0}lB=lq;lq=lq+1|0;ky[kj+2523152+(lB*20|0)>>1]=lx;ky[kj+2523152+(lB*20|0)+2>>1]=lK;ky[kj+2523152+(lB*20|0)+4>>1]=lE;ky[kj+2523152+(lB*20|0)+6>>1]=lA;kz[kj+2523152+(lB*20|0)+8>>0]=lJ;kz[kj+2523152+(lB*20|0)+9>>0]=lI;kz[kj+2523152+(lB*20|0)+10>>0]=lH;kz[kj+2523152+(lB*20|0)+11>>0]=lG;ky[kj+2523152+(lB*20|0)+12>>1]=lC;ky[kj+2523152+(lB*20|0)+14>>1]=lv;ky[kj+2523152+(lB*20|0)+16>>1]=lD;ky[kj+2523152+(lB*20|0)+18>>1]=lt;ls=ls+1|0}while((ls|0)<(lp|0));kx[kj+32772>>2]=lq;k6(lu,lr);return}function k6(lu,lt){lu=lu|0;lt=lt|0;var ls=0,lr=0,lq=0,lp=0,lo=0,ln=0,lm=0,ll=0,lk=0,la=0,ka=0,T=0;ll=lu+-1|0;lm=lu+-2|0;ln=0;ls=1;lr=1;lo=kx[kj+32768>>2]|0;while(1){lu=ls+1|0;la=lu+lt|0;lu=(lu&1|0)==0;lp=lr<<24>>24!=0;ka=la+-2|0;lk=ls+lt|0;lq=lp?ka:lk;ka=lp?lk:ka;ky[kj+1998864+(lo<<1)>>1]=lu?lq:ka;ky[kj+1998864+(lo+1<<1)>>1]=lu?ka:lq;ky[kj+1998864+(lo+2<<1)>>1]=la;la=ls+2|0;lq=la+lt|0;la=(la&1|0)==0;ka=lq+-1|0;lu=lp?lk:ka;lk=lp?ka:lk;ky[kj+1998864+(lo+3<<1)>>1]=la?lu:lk;ky[kj+1998864+(lo+4<<1)>>1]=la?lk:lu;lu=lo+6|0;ky[kj+1998864+(lo+5<<1)>>1]=lq;if((ln|0)>=(ll|0)){break}la=ls+3|0;lq=la+lt|0;la=(la&1|0)==0;lk=lq+-2|0;T=lq+-1|0;ka=lp?lk:T;lk=lp?T:lk;ky[kj+1998864+(lu<<1)>>1]=la?ka:lk;ky[kj+1998864+(lo+7<<1)>>1]=la?lk:ka;ky[kj+1998864+(lo+8<<1)>>1]=lq;lq=ls+4|0;ka=lq+lt|0;lk=(lq&1|0)==0;la=ka+-2|0;T=ka+-1|0;lu=lp?la:T;la=lp?T:la;ky[kj+1998864+(lo+9<<1)>>1]=lk?lu:la;ky[kj+1998864+(lo+10<<1)>>1]=lk?la:lu;lu=lo+12|0;ky[kj+1998864+(lo+11<<1)>>1]=ka;if((ln|0)==(lm|0)){ls=lq}else{ls=ls+5|0;T=ls+lt|0;lk=(ls&1|0)==0;la=T+-2|0;lq=T+-1|0;ka=lp?la:lq;la=lp?lq:la;ky[kj+1998864+(lu<<1)>>1]=lk?ka:la;ky[kj+1998864+(lo+13<<1)>>1]=lk?la:ka;ky[kj+1998864+(lo+14<<1)>>1]=T;lr=lr<<24>>24==0&1;lu=lo+15|0}ln=ln+1|0;lo=lu}kx[kj+32768>>2]=lu;return}function lh(lF,lE,lD,lC,lB,lA,lz,ly,lx,lw,lu){lF=lF|0;lE=lE|0;lD=+lD;lC=lC|0;lB=lB|0;lA=lA|0;lz=lz|0;ly=ly|0;lx=lx|0;lw=lw|0;lu=lu|0;var ls=0,lq=0,lo=0,lm=0,lk=0,la=0,ka=0,T=0,e=0,lv=0,lt=0,lr=0,lp=0,ln=0,ll=0;if((lF|0)>2){ls=2;lq=kx[kj+32776>>2]|0;do{lm=kj+32776+(ls<<2)|0;lq=(kx[lm>>2]|0)+lq|0;kx[lm>>2]=lq;lm=ls|1;lk=kj+32776+(lm<<2)|0;kx[lk>>2]=(kx[lk>>2]|0)+(kx[kj+32776+(lm+-2<<2)>>2]|0);ls=ls+2|0}while((ls|0)<(lF|0))}lm=kx[kj+40972>>2]|0;lk=(lF|0)>0;if(lk){lq=lm+((lF+-1|0)>>>1)|0;ls=0;lo=lm;while(1){la=+(kx[kj+32776+((ls|1)<<2)>>2]|0)/100;ks[kj+40976+(lo*28|0)>>2]=+(kx[kj+32776+(ls<<2)>>2]|0)/100;ks[kj+40976+(lo*28|0)+4>>2]=la;ks[kj+40976+(lo*28|0)+8>>2]=lD;ks[kj+40976+(lo*28|0)+12>>2]=0;ks[kj+40976+(lo*28|0)+16>>2]=0;ks[kj+40976+(lo*28|0)+20>>2]=1;kz[kj+40976+(lo*28|0)+24>>0]=lC;kz[kj+40976+(lo*28|0)+25>>0]=lB;kz[kj+40976+(lo*28|0)+26>>0]=lA;kz[kj+40976+(lo*28|0)+27>>0]=lz;ls=ls+2|0;if((ls|0)>=(lF|0)){break}else{lo=lo+1|0}}ls=lq+1|0;kx[kj+40972>>2]=ls}else{ls=lm}if((lE|0)>0){lC=kx[kj+40968>>2]|0;lq=0;lo=lC;while(1){ky[kj+3842064+(lo<<1)>>1]=(ku[kj+3833872+(lq<<1)>>1]|0)+lm;lq=lq+1|0;if((lq|0)==(lE|0)){break}else{lo=lo+1|0}}kx[kj+40968>>2]=lC+lE}if(!lk){return}lC=lF+-2|0;lo=kx[kj+40968>>2]|0;lA=(lF+-1|0)>>>1;lB=ls+(lA<<2)|0;lA=lo+(lA*6|0)|0;lq=0;while(1){lr=+(kx[kj+32776+(lq<<2)>>2]|0)/100;lt=+(kx[kj+32776+((lq|1)<<2)>>2]|0)/100;lE=lq;lq=lq+2|0;lz=(lE|0)==(lC|0);lv=+(kx[kj+32776+((lz?0:lq)<<2)>>2]|0)/100;e=+(kx[kj+32776+((lz?1:lE+3|0)<<2)>>2]|0)/100;ln=lv-lr;la=e-lt;lp=lr-lr;ll=lt-lt;T=la*lD-ll*0;ka=lp*0-ln*lD;la=ll*ln-lp*la;lE=ls+1|0;ks[kj+40976+(ls*28|0)>>2]=lr;ks[kj+40976+(ls*28|0)+4>>2]=lt;ks[kj+40976+(ls*28|0)+8>>2]=0;ks[kj+40976+(ls*28|0)+12>>2]=T;ks[kj+40976+(ls*28|0)+16>>2]=ka;ks[kj+40976+(ls*28|0)+20>>2]=la;kz[kj+40976+(ls*28|0)+24>>0]=ly;kz[kj+40976+(ls*28|0)+25>>0]=lx;kz[kj+40976+(ls*28|0)+26>>0]=lw;kz[kj+40976+(ls*28|0)+27>>0]=lu;lz=ls+2|0;ks[kj+40976+(lE*28|0)>>2]=lr;ks[kj+40976+(lE*28|0)+4>>2]=lt;ks[kj+40976+(lE*28|0)+8>>2]=lD;ks[kj+40976+(lE*28|0)+12>>2]=T;ks[kj+40976+(lE*28|0)+16>>2]=ka;ks[kj+40976+(lE*28|0)+20>>2]=la;kz[kj+40976+(lE*28|0)+24>>0]=ly;kz[kj+40976+(lE*28|0)+25>>0]=lx;kz[kj+40976+(lE*28|0)+26>>0]=lw;kz[kj+40976+(lE*28|0)+27>>0]=lu;lk=ls+3|0;ks[kj+40976+(lz*28|0)>>2]=lv;ks[kj+40976+(lz*28|0)+4>>2]=e;ks[kj+40976+(lz*28|0)+8>>2]=0;ks[kj+40976+(lz*28|0)+12>>2]=T;ks[kj+40976+(lz*28|0)+16>>2]=ka;ks[kj+40976+(lz*28|0)+20>>2]=la;kz[kj+40976+(lz*28|0)+24>>0]=ly;kz[kj+40976+(lz*28|0)+25>>0]=lx;kz[kj+40976+(lz*28|0)+26>>0]=lw;kz[kj+40976+(lz*28|0)+27>>0]=lu;ks[kj+40976+(lk*28|0)>>2]=lv;ks[kj+40976+(lk*28|0)+4>>2]=e;ks[kj+40976+(lk*28|0)+8>>2]=lD;ks[kj+40976+(lk*28|0)+12>>2]=T;ks[kj+40976+(lk*28|0)+16>>2]=ka;ks[kj+40976+(lk*28|0)+20>>2]=la;kz[kj+40976+(lk*28|0)+24>>0]=ly;kz[kj+40976+(lk*28|0)+25>>0]=lx;kz[kj+40976+(lk*28|0)+26>>0]=lw;kz[kj+40976+(lk*28|0)+27>>0]=lu;lm=ls&65535;ky[kj+3842064+(lo<<1)>>1]=lm;ky[kj+3842064+(lo+1<<1)>>1]=lz;lk=lk&65535;ky[kj+3842064+(lo+2<<1)>>1]=lk;ky[kj+3842064+(lo+3<<1)>>1]=lm;ky[kj+3842064+(lo+4<<1)>>1]=lk;ky[kj+3842064+(lo+5<<1)>>1]=lE;if((lq|0)>=(lF|0)){break}else{lo=lo+6|0;ls=ls+4|0}}kx[kj+40972>>2]=lB+4;kx[kj+40968>>2]=lA+6;return}function lb(){}return{_reset_line:k0,_get_block_index_start:lj,setThrew:j1,_get_line_turnings_address:kU,_get_block_triangle_indices_address:j3,_get_line_vertex_count:lc,stackAlloc:ld,_get_block_vertex_count:j4,_get_block_vertex_start:k5,_get_line_vertex_end:li,_get_feature_points_address:jZ,stackRestore:kN,_get_block_index_end:le,_get_line_altitudes_address:lg,_get_block_vertex_end:kA,stackSave:k8,runPostSets:lb,_get_line_vertex_start:jX,_parse_points:jV,_get_line_points_address:k9,establishStackSpace:kk,_get_line_index_end:j2,_append_line_data:lf,_get_line_index_start:kq,_append_block_data:lh,_get_block_points_address:kv,_reset_block:jY,_get_line_data_address:jW}}var eb;var jD;var iH;var a4;var gl;var dz;var ae;var fw;var gM;var fI;var dv;var b1;var hK;var jh;var ct;var aL;var fe;var f0;if(!ArrayBuffer.prototype.slice){ArrayBuffer.prototype.slice=function(T,i){if(T===undefined){T=0}if(i===undefined){i=this.byteLength}T=Math.floor(T);i=Math.floor(i);if(T<0){T+=this.byteLength}if(i<0){i+=this.byteLength}T=Math.min(Math.max(0,T),this.byteLength);i=Math.min(Math.max(0,i),this.byteLength);if(i-T<=0){return new ArrayBuffer(0)}var e=new ArrayBuffer(i-T);var jW=new Uint8Array(e);var jV=new Uint8Array(this,T,i-T);jW.set(jV);return e}}function gs(i){var e=70;if(eb){i&&i();return}eb=new ArrayBuffer(e*65536);iH=new Float32Array(eb);a4=new Int32Array(eb);jD=new Int8Array(eb);gl=new Int16Array(eb);dz=new Uint16Array(eb);ae=self.createWasmModule(self,{DYNAMICTOP_PTR:0,tempDoublePtr:0,ABORT:0,STACKTOP:0,STACK_MAX:0,gb:0,fb:0},eb);i&&i()}function dw(e){if(!fw){fw=ae._get_line_data_address()>>1}gl.set(e,fw)}function bm(e){if(!gM){gM=ae._get_line_altitudes_address()>>1}gl.set(e,gM)}function gR(e){if(!fI){fI=ae._get_line_points_address()>>2}a4.set(e,fI)}function bN(e){if(!dv){dv=ae._get_line_turnings_address()}jD.set(e,dv)}function cS(e){if(!jh){jh=ae._get_block_points_address()>>2}a4.set(e,jh)}function W(e){if(!ct){ct=ae._get_block_triangle_indices_address()>>1}dz.set(e,ct)}var jt={parseFeature:function(i,T){var e=i.length;T=T||2;if(!f0){f0=ae._get_feature_points_address()>>2}iH.set(i,f0);ae._parse_points(e,T);return new Float32Array(eb.slice(f0<<2,(f0+e)<<2))},getBlockVertices:function(){if(!fe){fe=ae._get_block_vertex_start()}return new Float32Array(eb.slice(fe,ae._get_block_vertex_end()))},getBlockIndices:function(){if(!aL){aL=ae._get_block_index_start()}return new Uint16Array(eb.slice(aL,ae._get_block_index_end()))},getBlockVertexCount:function(){return ae._get_block_vertex_count()},getLineVertices:function(){if(!hK){hK=ae._get_line_vertex_start()}return new Float32Array(eb.slice(hK,ae._get_line_vertex_end()))},getLineIndices:function(){if(!b1){b1=ae._get_line_index_start()}return new Uint16Array(eb.slice(b1,ae._get_line_index_end()))},getLineVertexCount:function(){return ae._get_line_vertex_count()},appendLineData:function(jY,jX,jV,i,j1,e,j3,jZ,j2,T,jW){var j0=0;if(i){j0=i.length;bm(i)}if(jZ&&jZ.length){bN(jZ)}j1=j1||0;T=T||0;jW=jW||j3.length/2;dw(jY);gR(j3);ae._append_line_data(jY.length,jX[0],jX[1],jX[2],jX[3],jV,j0,j1,e?1:0,j3.length,j2,T,jW)},resetLine:function(){ae._reset_line()},appendBlockData:function(j2,j0,jY,jX,j1,e,T,jZ,i,jV,jW){cS(j2);W(j0);return ae._append_block_data(j2.length,j0.length,jY,jX,j1,e,T,jZ,i,jV,jW)},resetBlock:function(){ae._reset_block()},initWasmModule:gs};var bh={block:[["precision highp float;attribute vec4 a_pos;attribute vec4 a_normal;attribute vec4 a_color;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;uniform mat4 u_normal_matrix;uniform vec3 u_side_light_dir;uniform bool u_is_normal;varying vec4 _;varying float a;const vec3 b=vec3(0.06,0.06,0.06);vec3 c=vec3(0.1,0.1,0.1);void main(){vec4 d=u_proj_matrix*u_mv_matrix*a_pos;gl_Position=d;a=-1./500.-a_pos.z/100.;gl_Position.z=gl_Position.z+a;if(!u_is_normal){c=vec3(0.2,0.2,0.2);}if(u_is_normal&&a_normal==vec4(0.,0.,1.,1.)){_=a_color;}else{vec3 e=a_color.rgb;vec3 f=normalize(vec3(u_normal_matrix*a_normal));vec4 g=u_mv_matrix*vec4(0,1,0,0);vec3 h=normalize(g.xyz);float i=max(0.,dot(f,-h));vec4 j=u_mv_matrix*vec4(u_side_light_dir,0);vec3 k=normalize(j.xyz);float l=max(0.,dot(f,-k));if(a_pos.z<2.){float m=(2.-a_pos.z)/5.;l=l-m;}_=vec4(e+e*c*l+e*b*i,a_color.a);}}",""].join("\\n"),["precision highp float;varying vec4 _;varying float a;uniform float u_camera_far;float b=500.0;void main(){float c=(gl_FragCoord.z/gl_FragCoord.w-a);float d=_.a;if(c>u_camera_far-b){d=d*(u_camera_far-c)/b;if(d<=0.){discard;}}gl_FragColor=vec4(_.rgb,d);}",""].join("\\n")],shadow:[["precision highp float;attribute vec3 a_pos;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;uniform vec3 u_light_dir;varying vec4 _;varying float a;const vec4 b=vec4(153.0/255.0,157.0/255.0,170.0/255.0,.15);void main(){float c=u_light_dir.x/u_light_dir.z*a_pos.z;float d=u_light_dir.y/u_light_dir.z*a_pos.z;vec2 e=vec2(a_pos.x+c,a_pos.y+d);a=a_pos.z;gl_Position=u_proj_matrix*u_mv_matrix*vec4(e,0,1);_=b;}",""].join("\\n"),["precision highp float;varying vec4 _;varying float a;uniform float u_camera_far;float b=500.0;void main(){if(a<1.){discard;}else{float c=gl_FragCoord.z/gl_FragCoord.w;float d=_.a;if(c>u_camera_far-b){d=d*(u_camera_far-c)/b;if(d<=0.){discard;}}gl_FragColor=vec4(_.rgb,d);}}",""].join("\\n")],arrow:[["precision highp float;attribute vec3 a_pos;attribute vec2 a_diff;attribute vec2 a_normal;attribute vec2 a_tex;attribute float a_layer_index;varying vec2 _;varying float a;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;uniform float u_scale;uniform bool u_flat;void main(){float b=a_pos.z;vec2 c=(a_pos.xy+a_diff*u_scale)+normalize(a_normal)*2.5*u_scale;float d=-a_layer_index/500.-b/100.;if(u_flat){a=0.;gl_Position=u_proj_matrix*u_mv_matrix*vec4(c,0.,1);vec4 e=u_proj_matrix*u_mv_matrix*vec4(c,b/10.,1);gl_Position.z=e.z+d;}else{a=b;gl_Position=u_proj_matrix*u_mv_matrix*vec4(c,b,1);gl_Position.z=gl_Position.z+d;}_=a_tex;}",""].join("\\n"),["precision mediump float;uniform sampler2D u_image;uniform int u_draw_part;varying vec2 _;varying float a;void main(){if(u_draw_part==1){if(a>0.){discard;}}else if(u_draw_part==2){if(a==0.){discard;}}gl_FragColor=texture2D(u_image,_);}",""].join("\\n")],grid:[["precision highp float;attribute vec2 a_pos;attribute vec2 a_tex;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;uniform float u_tex_scale;varying vec2 _;void main(){vec4 a=u_proj_matrix*u_mv_matrix*vec4(a_pos,0,1);gl_Position=a;_=a_tex*u_tex_scale;}",""].join("\\n"),["precision mediump float;uniform sampler2D u_image;varying vec2 _;void main(){gl_FragColor=texture2D(u_image,_);}",""].join("\\n")],line:[["attribute vec2 a_pos;attribute vec2 a_normal;attribute vec4 a_color;attribute vec4 a_data;uniform mat4 u_mv_matrix;uniform mat4 u_proj_matrix;uniform float u_scale;uniform bool u_flat;varying float _;varying vec4 a;varying float b;varying float c;varying float d;const float e=0.5;void main(){vec2 f=a_normal/10.;_=a_data.x;float g=a_data.y/100.;float h=a_data.z;float i=length(f);float j=1.+e/i;b=1.-(2.*e/(i+e));a=a_color;d=-h/500.-g/100.;vec2 k=a_pos/10.+f*j*u_scale;if(u_flat){gl_Position=u_proj_matrix*u_mv_matrix*vec4(k,0.,1);vec4 l=u_proj_matrix*u_mv_matrix*vec4(k,g/10.,1);gl_Position.z=l.z+d;c=0.;}else{gl_Position=u_proj_matrix*u_mv_matrix*vec4(k,g,1.);gl_Position.z=gl_Position.z+d;c=g;}}",""].join("\\n"),["precision highp float;uniform int u_draw_part;varying float _;varying vec4 a;varying float b;varying float c;varying float d;uniform float u_camera_far;float e=500.0;void main(){if(u_draw_part==1){if(c>0.){discard;}}else if(u_draw_part==2){if(c==0.){discard;}}vec4 f;if(abs(_)>b){float g=1.-(abs(_)-b)/(1.-b);f=vec4(a.rgb,g*a.a);}else{f=a;}float g=(gl_FragCoord.z/gl_FragCoord.w-d);float h=f.a;if(g>u_camera_far-e){h=h*(u_camera_far-g)/e;if(h<=0.){discard;}}f.a=h;gl_FragColor=f;}",""].join("\\n")],dash:[["attribute vec2 a_pos;attribute vec2 a_normal;attribute vec4 a_color;attribute vec4 a_data;uniform mat4 u_mv_matrix;uniform mat4 u_proj_matrix;uniform float u_scale;uniform float u_dash;uniform float u_step_zoom;uniform float u_tile_zoom;uniform bool u_is_single;uniform bool u_flat;varying float _;varying vec2 a;varying vec4 b;varying float c;varying float d;varying float e;const float f=0.2;void main(){vec2 g=a_normal/10.;_=a_data.x;float h=a_data.y/100.;float i=a_data.z;float j=a_data.w/10.;float k=length(g);float l=1.+f/k;c=1.-(2.*f/(k+f));b=vec4(a_color.rgb,floor(a_color.a/10.));float m=0.;if(u_is_single){m=j;}else{m=j/u_dash/pow(2.,u_tile_zoom-u_step_zoom);}if(_==1.){a=vec2(1.,m);}else{a=vec2(0.,m);}e=-i/500.-h/100.;vec2 n=a_pos/10.+g*l*u_scale;if(u_flat){gl_Position=u_proj_matrix*u_mv_matrix*vec4(n,0.,1);vec4 o=u_proj_matrix*u_mv_matrix*vec4(n,h/10.,1);gl_Position.z=o.z+e;d=0.;}else{gl_Position=u_proj_matrix*u_mv_matrix*vec4(n,h,1.);gl_Position.z=gl_Position.z+e;d=h;}}",""].join("\\n"),["precision highp float;uniform sampler2D u_image;uniform float u_dash;uniform int u_draw_part;uniform float u_alpha;varying vec4 b;varying float _;varying vec2 a;varying float d;varying float e;varying float c;uniform float u_camera_far;float f=500.0;void main(){if(u_draw_part==1){if(d>0.){discard;}}else if(u_draw_part==2){if(d==0.){discard;}}vec4 g=texture2D(u_image,a);float h=g.a*u_alpha+b.a;vec4 i;if(abs(_)>c){float j=1.-(abs(_)-c)/(1.-c);i=vec4(g.rgb*j,j*h);}else{i=g*u_alpha;}float j=(gl_FragCoord.z/gl_FragCoord.w-e);float k=i.a;if(j>u_camera_far-f){k=k*(u_camera_far-j)/f;if(k<=0.){discard;}}i.a=k;gl_FragColor=i;}",""].join("\\n")],fill:[["precision highp float;attribute vec3 a_pos;attribute vec4 a_color;attribute float a_layer_index;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;uniform bool u_flat;varying vec4 _;varying float a;varying float b;void main(){float c=a_pos.z;b=-a_layer_index/500.-c/100.;if(u_flat){gl_Position=u_proj_matrix*u_mv_matrix*vec4(a_pos.xy,0.,1);vec4 d=u_proj_matrix*u_mv_matrix*vec4(a_pos.xy,c/10.,1);gl_Position.z=d.z+b;a=0.;}else{gl_Position=u_proj_matrix*u_mv_matrix*vec4(a_pos.xy,c,1);gl_Position.z=gl_Position.z+b;a=c;}_=a_color;}",""].join("\\n"),["precision highp float;uniform int u_draw_part;varying vec4 _;varying float a;varying float b;uniform float u_camera_far;float c=500.0;void main(){if(u_draw_part==1){if(a>0.){discard;}}else if(u_draw_part==2){if(a==0.){discard;}}float d=(gl_FragCoord.z/gl_FragCoord.w-b);float e=_.a/255.;if(d>u_camera_far-c){e=e*(u_camera_far-d)/c;if(e<=0.){discard;}}gl_FragColor=vec4(_.r/255.,_.g/255.,_.b/255.,e);}",""].join("\\n")],debug:[["precision highp float;attribute vec2 a_pos;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;void main(){gl_Position=u_proj_matrix*u_mv_matrix*vec4(a_pos,step(32767.,a_pos.x),1);}",""].join("\\n"),["precision mediump float;uniform vec4 u_color;void main(){gl_FragColor=u_color;}",""].join("\\n")],symbol:[["precision highp float;attribute vec4 aPosition;attribute float aZLevel;attribute vec2 aExtend;attribute vec2 aLoopOffset;attribute vec2 aVertexTextureCoord;varying vec2 _;varying vec2 a;varying vec3 b;uniform bool uUseRound;uniform mat4 uMVMatrix;uniform mat4 uPMatrix;uniform mat4 uOrthoPMatrix;uniform vec2 uMapHalfSize;uniform float uMapZoom;uniform vec3 uCameraPosHigh;uniform vec3 uCameraPosLow;uniform vec3 uFixPositionInfo;void main(){vec4 c;vec3 d=vec3(aPosition.xy,aZLevel);vec3 e=vec3(aPosition.zw,aZLevel);a=vec2(1.,1.);d.x+=aLoopOffset.x;e.x+=aLoopOffset.y;vec4 f=uPMatrix*uMVMatrix*vec4((d-uCameraPosHigh)+(e-uCameraPosLow),1.);float g=f[3]+100.;if((f[0]<-g||f[0]>g||f[1]<-g||f[1]>g||f[2]<-g||f[2]>g)&&uFixPositionInfo[0]!=1.){a=vec2(0.,0.);}vec3 h=vec3(f[0]/f[3],f[1]/f[3],f[2]/f[3]);vec3 i=vec3((h[0]+1.)*uMapHalfSize[0],(1.-h[1])*uMapHalfSize[1],0.5*h[2]+0.5);if(uFixPositionInfo[0]==1.){float j=uMapHalfSize[0]*2.;if(i[0]>j+20.){d.x-=uFixPositionInfo[1];e.x-=uFixPositionInfo[2];f=uPMatrix*uMVMatrix*vec4((d-uCameraPosHigh)+(e-uCameraPosLow),1.);h=vec3(f[0]/f[3],f[1]/f[3],f[2]/f[3]);i=vec3((h[0]+1.)*uMapHalfSize[0],(1.-h[1])*uMapHalfSize[1],0.5*h[2]+0.5);}else if(i[0]<-20.){d.x+=uFixPositionInfo[1];e.x+=uFixPositionInfo[2];f=uPMatrix*uMVMatrix*vec4((d-uCameraPosHigh)+(e-uCameraPosLow),1.);h=vec3(f[0]/f[3],f[1]/f[3],f[2]/f[3]);i=vec3((h[0]+1.)*uMapHalfSize[0],(1.-h[1])*uMapHalfSize[1],0.5*h[2]+0.5);}}c=vec4(i.xy,-100.,1.);c.y=uMapHalfSize[1]*2.-c.y;if(uUseRound==true){c.x=floor(c.x+.5);c.y=floor(c.y+.5);}c.x+=aExtend.x;c.y+=aExtend.y;b=vec3(1.,i.z,1./f[3]);gl_Position=uOrthoPMatrix*c;_=vec2(aVertexTextureCoord.xy);}",""].join("\\n"),["precision highp float;uniform sampler2D uSampler;uniform bool uForRenderPNG8Text;uniform bool uHighlight;uniform float uCameraFar;float c=500.0;varying vec2 _;varying vec2 a;varying vec3 b;void main(){if(a[0]==0.){discard;return;}vec4 d=texture2D(uSampler,_);if(uForRenderPNG8Text==true&&d.a<0.7){d.a=0.;}if(uHighlight==true){float e=d.a;if(e!=0.){float f=d.r;float g=d.g;float h=d.b;float i=floor((f*255.+g*255.+h*255.)/3.+0.5);float j=i-90.;if(j<0.){j=0.;}d.r=(51.+j*1.3)/255.;d.g=(133.+j*0.8)/255.;d.b=1.;}}float e=(b[1]/b[2]);float f=1.;if(e>uCameraFar-c){f=(uCameraFar-e)/c;if(f<=0.){discard;}}gl_FragColor=d*f;}",""].join("\\n")],symbolline:[["precision highp float;attribute vec2 aPosition;attribute float aZLevel;attribute vec2 aExtend;attribute vec2 aVertexTextureCoord;attribute vec2 aRotationCenter;attribute float aRotationAngle;varying vec2 _;varying vec2 a;uniform bool uUseRound;uniform mat4 uMVMatrix;uniform mat4 uPMatrix;uniform vec2 uMapHalfSize;uniform float uMapZoom;uniform bool uIsFlat;float b(float b){return pow(2.,18.-b);}void main(){vec4 c;float d=aZLevel;if(uIsFlat){d=0.;}a=vec2(1.,1.);float e=b(uMapZoom);vec2 f=aPosition.xy+aExtend.xy*e;float g=sin(radians(-aRotationAngle));float h=cos(radians(-aRotationAngle));mat2 i=mat2(h,-g,g,h);vec3 j=vec3(aRotationCenter.xy+i*(f.xy-aRotationCenter.xy),d);c=uMVMatrix*vec4(j,1.);gl_Position=uPMatrix*c;_=vec2(aVertexTextureCoord.xy);}",""].join("\\n"),["precision highp float;uniform sampler2D uSampler;uniform bool uForRenderPNG8Text;uniform float uCameraFar;float b=500.0;varying vec2 _;varying vec2 a;void main(){if(a[0]==0.){discard;return;}vec4 c=texture2D(uSampler,_);if(uForRenderPNG8Text==true&&c.a<0.7){c.a=0.;}float d;bool e=false;d=(gl_FragCoord.z/gl_FragCoord.w);float f=c.a;if(d>uCameraFar-b){f=f*(uCameraFar-d)/b;if(f<1.){discard;}}gl_FragColor=vec4(c.rgb,f);}",""].join("\\n")],raster:[["precision highp float;attribute vec3 aVertexPosition;attribute vec2 aVertexTextureCoord;varying vec2 _;uniform mat4 uMVMatrix;uniform mat4 uPMatrix;void main(){gl_Position=uPMatrix*uMVMatrix*vec4(aVertexPosition,1.);_=aVertexTextureCoord;}",""].join("\\n"),["precision highp float;uniform sampler2D uSampler;uniform bool uRenderPNG8;varying vec2 _;void main(){vec4 _=texture2D(uSampler,_);if(uRenderPNG8==true){_.a=smoothstep(0.7,1.,_.a);}gl_FragColor=_;}",""].join("\\n")],rasterpixel:[["precision highp float;attribute vec3 aVertexPosition;attribute vec2 aVertexTextureCoord;attribute vec4 aVertexMaskCoord;varying vec2 _;varying vec4 a;uniform mat4 uMVMatrix;uniform mat4 uPMatrix;void main(){gl_Position=uPMatrix*uMVMatrix*vec4(aVertexPosition,1.);_=aVertexTextureCoord;a=aVertexMaskCoord;}",""].join("\\n"),["precision highp float;uniform sampler2D uSampler;varying vec2 _;varying vec4 a;uniform sampler2D u_ColorMap;uniform sampler2D u_Mask;uniform float u_maskData;uniform float u_noData;uniform float u_opacity;uniform vec2 u_domain;uniform vec2 u_clamp;uniform bool u_maskLoaded;void main(){vec4 _=texture2D(uSampler,vec2(_.s,_.t));vec4 a=a;vec4 b=texture2D(u_Mask,vec2(a.s,a.t));float c=generateValue(_);if(c!=u_noData&&c>=u_clamp.s&&c<=u_clamp.t){c=(c-u_domain.s)/(u_domain.t-u_domain.s);vec4 d=texture2D(u_ColorMap,vec2(c,0));d.a*=_.a*u_opacity;_=d;}else{_=vec4(0,0,0,0);}if(u_maskLoaded){if(a.s<0.||a.s>1.||a.t<0.||a.t>1.){b.a=0.;}_.a*=b.a;if(u_maskData>0.){float d=b.r*255.;_.a*=(step(u_maskData,d)-step(u_maskData+1.,d));}}gl_FragColor=_;}",""].join("\\n")],sky:[["precision highp float;attribute vec3 aPos;uniform mat4 uPMatrix;uniform mat4 uMVMatrix;uniform float uHorizonY;uniform vec4 uGroundColor;uniform vec4 uSkyColor;varying vec4 _;void main(){vec2 a=aPos.xy;a.y+=uHorizonY;gl_Position=uPMatrix*uMVMatrix*vec4(a.xy,-2900.,1.);float b=aPos.z;if(b==0.){_=uGroundColor;}else{_=uSkyColor;}}",""].join("\\n"),["precision highp float;varying vec4 _;void main(){gl_FragColor=_;}",""].join("\\n")],smaa1:[["precision highp float;attribute vec3 position;attribute vec2 uv;uniform mat4 projectionMatrix;uniform mat4 modelViewMatrix;uniform vec2 resolution;varying vec2 _;varying vec4 a[3];void b(vec2 b){a[0]=b.xyxy+resolution.xyxy*vec4(-1.,0.,0.,1.);a[1]=b.xyxy+resolution.xyxy*vec4(1.,0.,0.,-1.);a[2]=b.xyxy+resolution.xyxy*vec4(-2.,0.,0.,2.);}void main(){_=uv;b(_);gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.);}",""].join("\\n"),["precision highp float;","#define A 0.1","uniform sampler2D tDiffuse;varying vec2 _;varying vec4 a[3];vec4 b(vec2 _,vec4 a[3],sampler2D b){vec2 c=vec2(A,A);vec4 d;vec3 e=texture2D(b,_).rgb;vec3 f=texture2D(b,a[0].xy).rgb;vec3 g=abs(e-f);d.x=max(max(g.r,g.g),g.b);vec3 h=texture2D(b,a[0].zw).rgb;g=abs(e-h);d.y=max(max(g.r,g.g),g.b);vec2 i=step(c,d.xy);if(dot(i,vec2(1.,1.))==0.)discard;vec3 j=texture2D(b,a[1].xy).rgb;g=abs(e-j);d.z=max(max(g.r,g.g),g.b);vec3 k=texture2D(b,a[1].zw).rgb;g=abs(e-k);d.w=max(max(g.r,g.g),g.b);float l=max(max(max(d.x,d.y),d.z),d.w);vec3 m=texture2D(b,a[2].xy).rgb;g=abs(e-m);d.z=max(max(g.r,g.g),g.b);vec3 n=texture2D(b,a[2].zw).rgb;g=abs(e-n);d.w=max(max(g.r,g.g),g.b);l=max(max(l,d.z),d.w);i.xy*=step(0.5*l,d.xy);return vec4(i,0.,0.);}void main(){gl_FragColor=b(_,a,tDiffuse);}",""].join("\\n")],smaa2:[["precision highp float;","#define A 8","#define B 16","#define C (1.0/vec2(160.0,560.0))","#define D (1.0/7.0)","attribute vec3 position;attribute vec2 uv;uniform vec2 resolution;uniform mat4 projectionMatrix;uniform mat4 modelViewMatrix;varying vec2 _;varying vec4 a[3];varying vec2 b;void c(vec2 c){b=c/resolution;a[0]=c.xyxy+resolution.xyxy*vec4(-0.25,0.125,1.25,0.125);a[1]=c.xyxy+resolution.xyxy*vec4(-0.125,0.25,-0.125,-1.25);a[2]=vec4(a[0].xz,a[1].yw)+vec4(-2.,2.,-2.,2.)*resolution.xxyy*float(A);}void main(){_=uv;c(_);gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.);}",""].join("\\n"),["precision highp float;","#define A 8","#define B 16","#define C (1.0/vec2(160.0,560.0))","#define D (1.0/7.0)","#define E(tex,coord,offset) texture2D(tex,coord+float(offset)*resolution,0.0)","uniform sampler2D tDiffuse;uniform sampler2D tArea;uniform sampler2D tSearch;uniform vec2 resolution;varying vec2 _;varying vec4 a[3];varying vec2 b;vec2 c(vec2 _){return sign(_)*floor(abs(_)+0.5);}float d(sampler2D d,vec2 e,float f,float g){e.r=f+e.r*g;return 255.*texture2D(d,e,0.).r;}float e(sampler2D e,sampler2D f,vec2 g,float h){vec2 i=vec2(0.,1.);for(int j=0;jh&&i.g>0.8281&&i.r==0.))break;}g.x+=0.25*resolution.x;g.x+=resolution.x;g.x+=2.*resolution.x;g.x-=resolution.x*d(f,i,0.,0.5);return g.x;}float f(sampler2D f,sampler2D g,vec2 h,float i){vec2 j=vec2(0.,1.);for(int k=0;k0.8281&&j.r==0.))break;}h.x-=0.25*resolution.x;h.x-=resolution.x;h.x-=2.*resolution.x;h.x+=resolution.x*d(g,j,0.5,0.5);return h.x;}float g(sampler2D g,sampler2D h,vec2 i,float j){vec2 k=vec2(1.,0.);for(int l=0;lj&&k.r>0.8281&&k.g==0.))break;}i.y-=0.25*resolution.y;i.y-=resolution.y;i.y-=2.*resolution.y;i.y+=resolution.y*d(h,k.gr,0.,0.5);return i.y;}float h(sampler2D h,sampler2D i,vec2 j,float k){vec2 l=vec2(1.,0.);for(int m=0;m0.8281&&l.g==0.))break;}j.y+=0.25*resolution.y;j.y+=resolution.y;j.y+=2.*resolution.y;j.y-=resolution.y*d(i,l.gr,0.5,0.5);return j.y;}vec2 i(sampler2D i,vec2 j,float k,float l,float m){vec2 n=float(B)*c(4.*vec2(k,l))+j;n=C*n+(0.5*C);n.y+=D*m;return texture2D(i,n,0.).rg;}vec4 j(vec2 j,vec2 k,vec4 l[3],sampler2D m,sampler2D n,sampler2D o,ivec4 p){vec4 q=vec4(0.,0.,0.,0.);vec2 r=texture2D(m,j).rg;if(r.g>0.){vec2 s;vec2 t;t.x=e(m,o,l[0].xy,l[2].x);t.y=l[1].y;s.x=t.x;float u=texture2D(m,t,0.).r;t.x=f(m,o,l[0].zw,l[2].y);s.y=t.x;s=s/resolution.x-k.x;vec2 v=sqrt(abs(s));t.y-=1.*resolution.y;float w=E(m,t,ivec2(1,0)).r;q.rg=i(n,v,u,w,float(p.y));}if(r.r>0.){vec2 s;vec2 t;t.y=g(m,o,l[1].xy,l[2].z);t.x=l[0].x;s.x=t.y;float u=texture2D(m,t,0.).g;t.y=h(m,o,l[1].zw,l[2].w);s.y=t.y;s=s/resolution.y-k.y;vec2 v=sqrt(abs(s));t.y-=1.*resolution.y;float w=E(m,t,ivec2(0,1)).g;q.ba=i(n,v,u,w,float(p.x));}return q;}void main(){gl_FragColor=j(_,b,a,tDiffuse,tArea,tSearch,ivec4(0.));}",""].join("\\n")],smaa3:[["precision highp float;uniform vec2 resolution;attribute vec3 position;attribute vec2 uv;uniform mat4 modelViewMatrix;uniform mat4 projectionMatrix;varying vec2 _;varying vec4 a[2];void b(vec2 b){a[0]=b.xyxy+resolution.xyxy*vec4(-1.,0.,0.,1.);a[1]=b.xyxy+resolution.xyxy*vec4(1.,0.,0.,-1.);}void main(){_=uv;b(_);gl_Position=projectionMatrix*modelViewMatrix*vec4(position,1.);}",""].join("\\n"),["precision highp float;uniform sampler2D tDiffuse;uniform sampler2D tColor;uniform vec2 resolution;varying vec2 _;varying vec4 a[2];vec4 b(vec2 _,vec4 a[2],sampler2D b,sampler2D c){vec4 d;d.xz=texture2D(c,_).xz;d.y=texture2D(c,a[1].zw).g;d.w=texture2D(c,a[1].xy).a;if(dot(d,vec4(1.,1.,1.,1.))<1e-5){return texture2D(b,_,0.);}else{vec2 e;e.x=d.a>d.b?d.a:-d.b;e.y=d.g>d.r?-d.g:d.r;if(abs(e.x)>abs(e.y)){e.y=0.;}else{e.x=0.;}vec4 f=texture2D(b,_,0.);_+=sign(e)*resolution;vec4 g=texture2D(b,_,0.);float h=abs(e.x)>abs(e.y)?abs(e.x):abs(e.y);f.xyz=pow(f.xyz,vec3(2.2));g.xyz=pow(g.xyz,vec3(2.2));vec4 i=mix(f,g,h);i.xyz=pow(i.xyz,vec3(1./2.2));return i;}}void main(){gl_FragColor=b(_,a,tColor,tDiffuse);}",""].join("\\n")],overlayfill:[["precision highp float;attribute vec2 a_pos;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;void main(){gl_Position=u_proj_matrix*u_mv_matrix*vec4(a_pos,0,1);}",""].join("\\n"),["precision mediump float;uniform vec4 u_color;void main(){gl_FragColor=u_color;}",""].join("\\n")],overlayblock:[["precision highp float;attribute vec4 a_pos;attribute vec4 a_normal;attribute vec4 a_color;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;uniform mat4 u_normal_matrix;uniform vec3 u_side_light_dir;uniform bool u_is_normal;varying vec4 _;varying float a;varying vec4 b;const vec3 c=vec3(0.06,0.06,0.06);vec3 d=vec3(0.1,0.1,0.1);void main(){vec4 e=u_proj_matrix*u_mv_matrix*a_pos;gl_Position=e;a=-1./500.-a_pos.z/100.;gl_Position.z=gl_Position.z+a;b=a_normal;_=a_color;vec3 f=a_color.rgb;vec3 g=normalize(vec3(u_normal_matrix*a_normal));vec4 h=u_mv_matrix*vec4(0.5,0.5,0,0);vec3 i=normalize(h.xyz);float j=max(0.,dot(g,-i));_=vec4(f+f*c*j,a_color.a);}",""].join("\\n"),["precision highp float;varying vec4 _;varying float a;uniform float u_camera_far;float c=500.0;void main(){float d=(gl_FragCoord.z/gl_FragCoord.w-a);float e=_.a;if(d>u_camera_far-c){e=e*(u_camera_far-d)/c;if(e<=0.){discard;}}gl_FragColor=vec4(_.rgb,e);}",""].join("\\n")],marker3d:[["attribute vec4 a_pos;attribute float a_height;attribute vec4 a_color;attribute float a_shape;attribute float a_size;attribute vec4 a_texture_coord;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;uniform vec3 u_camera_pos_high;uniform vec3 u_camera_pos_low;varying vec4 _;varying vec4 a;varying float b;void main(){if(a_color.w>=0.&&a_color.w<=1.){_=a_color;}else{_=vec4(a_color.xyz,1.);}b=a_shape;a=a_texture_coord;vec3 c=vec3(a_pos.xy,a_height);vec3 d=vec3(a_pos.zw,a_height);vec4 e=u_proj_matrix*u_mv_matrix*vec4((c-u_camera_pos_high)+(d-u_camera_pos_low),1.);gl_Position=e;gl_PointSize=a_size;}",""].join("\\n"),["precision mediump float;varying vec4 _;varying float b;varying vec4 a;uniform bool u_use_texture;uniform sampler2D u_Sampler;void main(){vec4 _=_;if(b==1.){float a=distance(gl_PointCoord,vec2(0.5,0.5));if(a>0.5){discard;}float b=1.;b=1.-smoothstep(0.49,0.5,a);_.a*=b;}if(u_use_texture){vec4 a=a;float b=a.x;float c=a.z-a.x;float d=a.y;float e=a.w-a.y;_=texture2D(u_Sampler,vec2(b+gl_PointCoord.x*c,d+e*(1.-gl_PointCoord.y)));}gl_FragColor=_;}",""].join("\\n")],groundoverlay:[["precision highp float;attribute vec3 a_pos;attribute vec4 a_texture_coord;varying vec4 _;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;void main(){gl_Position=u_proj_matrix*u_mv_matrix*vec4(a_pos.xy,0.,1.);_=a_texture_coord;}",""].join("\\n"),["precision highp float;varying vec4 _;uniform sampler2D u_Sampler;uniform float u_opacity;void main(){vec4 _=texture2D(u_Sampler,vec2(_.s,_.t));_.a*=u_opacity;gl_FragColor=_;}",""].join("\\n")],groundpixeloverlay:[["precision highp float;attribute vec3 a_pos;attribute vec4 a_texture_coord;attribute vec4 a_mask_coord;varying vec4 _;varying vec4 a;uniform mat4 u_proj_matrix;uniform mat4 u_mv_matrix;void main(){gl_Position=u_proj_matrix*u_mv_matrix*vec4(a_pos.xy,0.,1.);_=a_texture_coord;a=a_mask_coord;}",""].join("\\n"),["precision highp float;varying vec4 _;varying vec4 a;uniform sampler2D u_Sampler;uniform sampler2D u_ColorMap;uniform sampler2D u_Mask;uniform float u_noData;uniform float u_opacity;uniform float u_maskData;uniform vec2 u_domain;uniform vec2 u_clamp;uniform bool u_maskLoaded;void main(){vec4 _=texture2D(u_Sampler,vec2(_.s,_.t));vec4 a=a;vec4 b=texture2D(u_Mask,vec2(a.s,a.t));float c=generateValue(_);if(c!=u_noData&&c>=u_clamp.s&&c<=u_clamp.t){c=(c-u_domain.s)/(u_domain.t-u_domain.s);vec4 d=texture2D(u_ColorMap,vec2(c,0));d.a*=_.a*u_opacity;_=d;}else{_=vec4(0,0,0,0);}if(u_maskLoaded){if(a.s<0.||a.s>1.||a.t<0.||a.t>1.){b.a=0.;}_.a*=b.a;if(u_maskData>0.){float d=b.r*255.;_.a*=(step(u_maskData,d)-step(u_maskData+1.,d));}}gl_FragColor=_;}",""].join("\\n")],linelayer:[["precision highp float;attribute vec2 a_pos;attribute vec2 a_normal;attribute vec4 a_color;attribute vec4 a_data;attribute float a_id;uniform mat4 u_mv_matrix;uniform mat4 u_proj_matrix;uniform float u_scale;uniform bool u_flat;uniform float u_dash_length;uniform float u_margin_length;uniform float u_map_zoom;varying float _;varying float a;varying vec4 b;varying float c;varying float d;varying float e;varying float f;varying float g;varying float h;varying vec2 i;const float j=0.5;void main(){_=a_id;vec2 k=a_normal/10.;a=a_data.x;float l=a_data.y/100.;float m=a_data.z;f=a_data.w/10.;float n=length(k);float o=1.+j/n;c=1.-(2.*j/(n+j));b=a_color;e=-m/500.-l/100.;vec2 p=a_pos/10.+k*o*u_scale;g=u_dash_length*pow(2.,18.-u_map_zoom);h=u_margin_length*pow(2.,18.-u_map_zoom);if(u_dash_length>0.){float q=f/g;if(a==1.){i=vec2(1.,q);}else{i=vec2(0.,q);}}if(u_flat){gl_Position=u_proj_matrix*u_mv_matrix*vec4(p,0.,1);vec4 q=u_proj_matrix*u_mv_matrix*vec4(p,l/10.,1);gl_Position.z=q.z+e;d=0.;}else{gl_Position=u_proj_matrix*u_mv_matrix*vec4(p,l,1.);gl_Position.z=gl_Position.z+e;d=l;}}",""].join("\\n"),["precision highp float;uniform int u_draw_part;uniform sampler2D u_image;uniform float u_camera_far;uniform float u_opacity;uniform bool u_sequence;uniform bool u_pick_model;uniform bool u_no_gradual;uniform vec4 u_pick_color;uniform int u_pick_tag;uniform int u_del_tags[100];varying float _;varying float a;varying vec4 b;varying float c;varying float d;varying float e;varying float f;varying float g;varying float h;varying vec2 i;float j=500.0;vec4 k(float k){float l=k+1.;float m=floor(l/65536.);l=l-m*65536.;float n=floor(l/256.);l=l-n*256.;float o=l;return vec4(o/255.,n/255.,m/255.,1.);}bool l(float l){int m=int(l);bool n=false;for(int o=0;o<100;o++){if(u_del_tags[o]==0){break;}else if(u_del_tags[o]==m){n=true;break;}}return n;}void main(){if(u_draw_part==1){if(d>0.){discard;}}else if(u_draw_part==2){if(d==0.){discard;}}bool m=l(_);if(m){discard;}vec4 n=b;int o=int(_);if(o==u_pick_tag-1){n=vec4(u_pick_color.rgb/255.,u_pick_color.a*n.a);}if(u_pick_model){gl_FragColor=k(_);return;}float p=g;float q=h;float r=f;if(u_sequence){float s=q/2.;float t=mod(r,p+q);if(t>=s&&t<=s+p){float u=(t-s)/p;vec4 v=texture2D(u_image,vec2(i.x,u));n=v.a>=0.5?v:n;}}else if(p>0.){n=texture2D(u_image,i);}vec4 s;if(!u_no_gradual&&abs(a)>c){float t=1.-(abs(a)-c)/(1.-c);s=vec4(n.rgb,t*n.a);}else{s=n;}float t=(gl_FragCoord.z/gl_FragCoord.w-e);float u=s.a;if(t>u_camera_far-j){u=u*(u_camera_far-t)/j;if(u<=0.){discard;}}s.a=u*u_opacity;gl_FragColor=s;}",""].join("\\n")],filllayer:[["precision highp float;attribute vec2 a_pos;attribute float a_id;uniform mat4 u_mv_matrix;uniform mat4 u_proj_matrix;uniform bool u_flat;uniform float u_map_zoom;uniform vec2 u_size;uniform vec4 u_bound;uniform float u_scale;varying float _;varying float a;varying float b;varying vec2 c;const float d=0.5;void main(){_=a_id;c=a_pos.xy;float e=0.;a=-e/100.;if(u_flat){gl_Position=u_proj_matrix*u_mv_matrix*vec4(a_pos.xy,0.,1);vec4 f=u_proj_matrix*u_mv_matrix*vec4(a_pos.xy,e/10.,1);gl_Position.z=f.z+a;b=0.;}else{gl_Position=u_proj_matrix*u_mv_matrix*vec4(a_pos.xy,e,1.);gl_Position.z=gl_Position.z+a;b=e;}}",""].join("\\n"),["precision highp float;uniform vec4 u_color;uniform float u_opacity;uniform bool u_pattern;uniform bool u_pattern_mask;uniform sampler2D u_image;uniform float u_map_zoom;uniform vec2 u_size;uniform vec4 u_bound;uniform float u_scale;uniform vec2 u_offset;uniform float u_camera_far;uniform int u_draw_part;uniform bool u_pick_model;uniform vec4 u_pick_color;uniform int u_pick_tag;uniform int u_del_tags[100];varying float _;varying float b;varying float a;varying vec2 c;float d=500.0;bool e=false;vec4 f(float f){float g=f+1.;float h=floor(g/65536.);g=g-h*65536.;float i=floor(g/256.);g=g-i*256.;float j=g;return vec4(j/255.,i/255.,h/255.,1.);}bool g(float g){int h=int(g);bool i=false;for(int j=0;j<100;j++){if(u_del_tags[j]==0){break;}else if(u_del_tags[j]==h){i=true;break;}}return i;}void main(){if(u_draw_part==1){if(b>0.){discard;}}else if(u_draw_part==2){if(b==0.){discard;}}bool h=g(_);if(h){discard;}vec4 i=u_color;int j=int(_);if(j==u_pick_tag-1){i=vec4(u_pick_color.rgb/255.,u_pick_color.a*i.a);e=true;}if(u_pick_model){gl_FragColor=f(_);return;}vec4 k=i;if(u_pattern){vec4 l=u_bound;l.y=u_size.y-(l.y+l.w);vec4 m=l/vec4(u_size,u_size);vec2 n=l.zw*u_scale*pow(2.,18.-u_map_zoom);vec2 o=mod(u_offset+mod(c,n)/n,1.);vec2 p=m.xy+m.zw*o;vec4 q=texture2D(u_image,p);k.a*=q.a;if(!u_pattern_mask&&e==false){k.rgb=q.rgb;}}float l=(gl_FragCoord.z/gl_FragCoord.w-a);float m=k.a;if(l>u_camera_far-d){m=m*(u_camera_far-l)/d;if(m<=0.){discard;}}k.a=m*u_opacity;gl_FragColor=k;}",""].join("\\n")]};function aJ(i,e){this.gl=i;this.map=e;this.cache={};this.bind()}aJ.prototype.bind=function(){var e=this;this.map.on("update",function(T){var jV=T.changedStatus;if(jV&&jV.onsize_changed){for(var i in e.cache){e.cache[i].lastState.projMatrix=false}}})};aJ.prototype._createProgram=function(e,jX){var j3=this.gl;var j2=j3.createProgram();var jY=bh[e];var j9=jY[1];if(jX&&jX.fShader){j9=j9.replace("void main()",jX.fShader+" void main()")}var jZ=j3.createShader(j3.FRAGMENT_SHADER);j3.shaderSource(jZ,j9);j3.compileShader(jZ);j3.attachShader(j2,jZ);var j5=jY[0];if(jX&&jX.vShader){j5=j5.replace("void main()",jX.vShader+" void main()")}var j8=j3.createShader(j3.VERTEX_SHADER);j3.shaderSource(j8,j5);j3.compileShader(j8);j3.attachShader(j2,j8);j3.linkProgram(j2);var j0={};var j6=j3.getProgramParameter(j2,j3.ACTIVE_ATTRIBUTES);for(var j1=0;j11&&this._textRenderType==="image"){this._labelTextTextureSize=[4096,Math.min(4096+1024,e)]}else{this._labelTextTextureSize=[4096,4096]}if(this._textRenderType==="canvas"){this._renderPng8Text=false}else{this._renderPng8Text=true}this._lineLabelBuffer=null;this._fixedLabelBuffer=null;this._iconLabelBuffer=null;this._highlightLabelBuffer=null;this._marker3dVertexBuffer=null;this._markerVertexBuffer=null;this._polylineBufferArray=[{vertex:null,element1:null,vao1:null}];this._polygonBuffer=new Array(20);this._groundBuffer=new Array(20);this._groundoverlayBuffer=new Array(20);this._textTextureManager=new dL.TextTextureManager(jW,{width:this._labelTextTextureSize[0],height:this._labelTextTextureSize[1],unpackAlpha:true});this._iconTextureManager=new dL.TextTextureManager(jW,{width:1024,height:1024,unpackAlpha:true});this._iconTextureAtlas=this._iconTextureManager.getEmptyTexture();this._iconTextureAtlasOffset={};this._iconTextureAtlasCoords={};this._textureAddToJob={};this._isIdle=false;this._identityMatrix=mat4.create();this._initialize();this._handleContextStatus();this._stencilMask=null;this.draw()}eP.extend(ck.prototype,{draw:function(kc){var j3=this.gl;var j8=this;var ke=j8._map;var kb=this.mapZoom=ke.getZoom();if(!this.stepZoom){this.stepZoom=kb}ke.beforeRender&&ke.beforeRender();this.createGridBuffer(Math.floor(kb));this._isIdle=kc?kc.idle:false;if(this._isIdle&&this._useSMAA){bj.loadTexture(this,j3);if(this._frameBufferSizeInvalid===true){this.clearPreviousSMAAFramebuffer();this.initSMAAFrameBuffers();this._frameBufferSizeInvalid=false}}else{this._frameBufferSizeInvalid=true}this.projMatrix=this._camera.getProjectionMatrix3D();this.projMatrix2D=this._camera.getProjectionMatrix();this.cameraPosition=this._camera.getPosition();var ks=ke._featureMgr.getResult();var jY=ks.bkData;var j2=ks.eleData;this._stencilMask=j2[9];var kk=ke.getSize();var e=kk.width;var jX=kk.height;this.mapHalfSize=[e/2,jX/2];this.polyZoomRatio=Math.pow(2,18-kb);this.gridTextureScale=jQ.mapZoomTileSize[Math.floor(kb)]/128;var j6=ke._displayOptions;this.isFlat=j6.isFlat;if(this._isIdle&&this._smaaInfo.glDrawSMAAReady===true){j3.bindFramebuffer(j3.FRAMEBUFFER,this._smaaPasses[0].framebuffer)}this.tileClippintRefer=0;this.showIndoorContour=false;this.currentIndoorUid=null;if(ke._indoorMgr){this.currentIndoorUid=ke._indoorMgr.currentUid}if(this.currentIndoorUid&&kb>=17){this.showIndoorContour=true}j8.clearGLStatus({stencil:true,color:true,depth:true});this._state.enableCap("depthTest");this._state.blendFunc(j3.SRC_ALPHA,j3.ONE_MINUS_SRC_ALPHA,j3.ONE,j3.ONE_MINUS_SRC_ALPHA);this.calShadowPos();j8.clearGLStatus({depth:true});var kg=0;for(var ki=0;ki0&&j6.layer===false){continue}if(kh.ontology instanceof cj){if(kh.ontology.doRender()){this.setLayerDepth(fT);this._state.disableCap("depthTest");var jW=mat4.create(Float64Array);mat4.multiply(jW,this.projMatrix,this._camera._modelViewMatrixLayer);kh.ontology.preRender(j3,jW);kh.ontology.render(j3,jW);kh.ontology.afterRender(j3,jW);this._state.enableCap("depthTest")}}else{if(kh.ontology instanceof d0){this.drawMVT(kh)}else{if(kh.dataType===2){var kd=[0,0,0];for(var kr=0;kr0){this._state.disableCap("depthTest");this.mvMatrixPoly=this._camera.getModelViewMatrixPoly();this.drawPolygon(j2[0]);this._state.enableCap("depthTest")}if(j2[5].length>0){this._state.disableCap("depthTest");this.mvMatrixPoly=this._camera.getModelViewMatrixPoly();this.drawGroundOverlay(j2[5]);this._state.enableCap("depthTest")}if(j2[1].length>0){this._state.disableCap("depthTest");this.mvMatrixPoly=this._camera.getModelViewMatrixPoly();this.drawPolyline(j2[1]);this._state.enableCap("depthTest")}if(j2[6].length>0){this._state.disableCap("depthTest");this.mvMatrixPoly=this._camera.getModelViewMatrixPoly();this.drawPrism(j2[6]);this._state.enableCap("depthTest")}}this._map.drawOverlay&&this._map.drawOverlay(j3);this.draw3D(jY);if(ke.getTilt()>10){var j4=ke.pointToPixelIn(ke.getBoundsIn().pointTopLeft).y+100;if(j4>0&&ke.config.showSky!==false){i5(this,this._identityMatrix,j4,ke.height,this._skyColor)}}ke.insertRender&&ke.insertRender();if(this._useSMAA&&this._isIdle&&this._smaaInfo.glDrawSMAAReady===true){this.drawSMAA()}this._state.disableCap("depthTest");this.mvMatrixMarker=this._camera.getMCPlaneMVMatrix();this.mvMatrixMarker[12]=this.mvMatrixMarker[13]=this.mvMatrixMarker[14]=0;this._checkTextureAtlasUsage();var j1=iv(this.cameraPosition[0]);var j0=iv(this.cameraPosition[1]);var jZ=iv(this.cameraPosition[2]);this.cameraPosHigh=[j1[0],j0[0],jZ[0]];this.cameraPosLow=[j1[1],j0[1],jZ[1]];this._state.blendFunc(j3.ONE,j3.ONE_MINUS_SRC_ALPHA);if(j6.poiText&&j2[2].length>0){for(var kr=0;kr0){for(var kr=0;kr0){for(var kr=0;kr0){this.drawSymbol(j2[8],{fixPosition:kj})}if(j2[7].length>0){this.drawMarker3D(j2[7])}}ke.afterRender&&ke.afterRender();this._map.dispatchEvent(new fA("ondraw"))},drawMVT:function(jV){if(!jV.ontology){return}this.setLayerDepth(fT);this._state.disableCap("depthTest");if(!this._grid3857BufferCache){this.createGrid3857BufferCache(256)}for(var e=0;e<3;e++){for(var i=0;i0&&T[0].isStencilMask){if(e==="on"){if(this._map.stencil.showRegion==="inside"){this.enableStencilMask(T,jV,i)}else{if(this._map.stencil.showRegion==="outside"){this.enableStencilMaskOut(T,i,i)}}}else{if(e==="off"){this.disableStencilMask()}}}},enableStencilMask:function(jV,i,e){var T=this.gl;if(!e){T.clear(T.STENCIL_BUFFER_BIT)}if(!i){T.disable(T.DEPTH_TEST)}T.stencilFunc(T.ALWAYS,1,255);this._state.stencilOp(T.KEEP,T.KEEP,T.REPLACE);T.stencilMask(255);this._state.colorMask(0,0,0,0);this.mvMatrixPoly=this._camera.getModelViewMatrixPoly();this.drawPolygon(jV);this._state.colorMask(1,1,1,1);T.stencilFunc(T.EQUAL,1,255);T.stencilMask(0)},enableStencilMaskOut:function(jV,i,e){var T=this.gl;if(!e){T.clear(T.STENCIL_BUFFER_BIT)}if(!i){T.disable(T.DEPTH_TEST)}T.stencilFunc(T.ALWAYS,1,255);this._state.stencilOp(T.KEEP,T.KEEP,T.REPLACE);T.stencilMask(255);this._state.colorMask(0,0,0,0);this.mvMatrixPoly=this._camera.getModelViewMatrixPoly();this.drawPolygon(jV);this._state.colorMask(1,1,1,1);T.stencilFunc(T.NOTEQUAL,1,255);T.stencilMask(0)},disableStencilMask:function(){var e=this.gl;e.clear(e.STENCIL_BUFFER_BIT);e.stencilMask(255);e.stencilFunc(e.ALWAYS,1,255);e.enable(e.DEPTH_TEST)},enableTileLayerClippingMask:function(T,e){var i=this.gl;i.stencilFunc(i.ALWAYS,1,255);this._state.stencilOp(i.KEEP,i.KEEP,i.REPLACE);i.stencilMask(255);i.clear(i.STENCIL_BUFFER_BIT);this._state.colorMask(0,0,0,0);this.mvMatrixPoly=this._camera.getModelViewMatrixPoly();this.overlayToPolygonGl(T);if(e!=="outside"){i.stencilFunc(i.EQUAL,1,255)}else{i.stencilFunc(i.NOTEQUAL,1,255)}i.stencilMask(0);this._state.colorMask(1,1,1,1)},disableTileLayerClippingMask:function(){var e=this.gl;e.clear(e.STENCIL_BUFFER_BIT);e.stencilMask(255);e.stencilFunc(e.ALWAYS,1,255)},overlayToPolygonGl:function(jZ){var e=[];for(var jX=0;jX0){this.zoomState=1}else{if(e<0){this.zoomState=-1}}this.lastZoom=i;return this.zoomState},calShadowPos:function(){this.isDrawShadow=false;var i=this._map;var e=!(typeof i.config.style==="string");if(e||this.mapZoom<18){return}var T=i.getSolarInfo();if(e1(T.solarAltitude)>1){this.isDrawShadow=true;this._shadowPosVec3[0]=Math.sin(T.solarAzimuth);this._shadowPosVec3[1]=Math.cos(T.solarAzimuth);if(T.centerPosition==="south"){this._shadowPosVec3[1]=-this._shadowPosVec3[1]}this._shadowPosVec3[2]=Math.tan(T.solarAltitude)*0.5+1.5;this._sideLightDirVec3[0]=this._shadowPosVec3[0];this._sideLightDirVec3[1]=this._shadowPosVec3[1];this._sideLightDirVec3[2]=-this._shadowPosVec3[2]}},clearPreviousSMAAFramebuffer:function(){var jV=this.gl;for(var e=0;eT.length){T=new Float32Array(e.length)}T.set(e)}}if(i){return new w(T,{components:eH.overlayLineComponentsCount,members:eH.overlayLine},w.BufferType.VERTEX)}else{return new w(T,{components:eH.lineComponentsCount,members:eH.line},w.BufferType.VERTEX)}},createLineData:function(i){var e={};e.vertex=this.createLineBuffer(null,i[0],false);e.element1=new w(i[1],{components:1},w.BufferType.ELEMENT);e.vao1=new dH();return e},createPolylineData:function(jV){var jZ=[];for(var T=0;Tthis._uint16ArrayForPolyline.length){this._uint16ArrayForPolyline=new Uint16Array(e.length)}this._uint16ArrayForPolyline.set(e);if(!jX.element1){jX.element1=new w(this._uint16ArrayForPolyline,{components:1},w.BufferType.ELEMENT,e.length)}if(!jX.vao1){jX.vao1=new dH()}else{if(jW.length>this._float32ArrayForPolyline.length){this._float32ArrayForPolyline=new Float32Array(jW)}else{this._float32ArrayForPolyline.set(jW)}jX.vao1.update(this.gl,jX.vertex,this._float32ArrayForPolyline,jW.length,jX.element1,this._uint16ArrayForPolyline,e.length)}jZ.push(jX)}if(jZ.length===0){return null}return jZ},createLabelData:function(jY,kc,kb,jX){if(jY.length===0){return}var km=this._labelTextTextureSize;var j5=0;var jV=0;var kh=jY.length;var kf=this.gl;var kk=this[kb];var j6=0;var kn=ep;var ki=bL;if(jX){kn=i9;ki=f}for(var kg=0;kgthis._labelVertexBuffer.length){this._labelVertexBuffer=new Float32Array(j4);if(kk){kk.vao.destroy(kf);kk.destroy(kf);kk=this[kb]=null}}var j1=this._iconLabelBuffer;if(j4>this._labelIconVertexBuffer.length){this._labelIconVertexBuffer=new Float32Array(j4);if(j1){j1.vao.destroy(kf);j1.destroy(kf);j1=this._iconLabelBuffer=null}}for(var kg=0;kg0){if(!kk){var jZ=eH.symbol;if(jX){jZ=eH.symbolline}kk=this[kb]=new w(this._labelVertexBuffer,{components:ki,members:jZ},w.BufferType.VERTEX,j5/ki);this[kb].vao=new dH()}else{this[kb].vao.update(this.gl,kk,this._labelVertexBuffer,j5/ki)}}var j2=null;if(jV>0){j2=new dH();if(!j1){j1=this._iconLabelBuffer=new w(this._labelIconVertexBuffer,{components:bL,members:eH.symbol},w.BufferType.VERTEX,jV/bL);j1.vao=new dH()}else{j1.vao.update(this.gl,j1,this._labelIconVertexBuffer,jV/bL)}}var kl=null;if(this._labelTextTextureAtlas){kl=this._labelTextTextureAtlas.getTexture()}return{vao:this[kb]?this[kb].vao:null,vaoIcon:this._iconLabelBuffer?this._iconLabelBuffer.vao:null,vertex:j5>0?kk:null,texture:kl,iconVertex:jV>0?j1:null,iconTexture:this._iconTextureAtlas.getTexture()}},_addToAsyncJob:function(e){if(this._textureAddToJob[e.id]){return}var T=this;var i=(function(jV){return function(){delete T._textureAddToJob[jV.id];if(T._currentTextureIsFull){return}if(!T._labelTextTextureAtlas&&T._textTextureManager){T._labelTextTextureAtlas=T._textTextureManager.getEmptyTexture()}if(!T._labelTextTextureAtlas){return}var jW=jV.height;var jX=T._labelTextTextureAtlas.addTexture(jV,jW);T._labelTextureAtlasOffset[jV.id]=jX;T._map.dispatchEvent(new fA("onrefresh"))}})(e);this._textureJobScheduler.addJob(i);this._textureAddToJob[e.id]=true},createMarker3dData:function(e){if(e.length===0){return null}var jW=e.length*gK;if(jW>this._labelVertexBuffer3D.length){this._labelVertexBuffer3D=new Float32Array(jW);if(this._marker3dVertexBuffer){this._marker3dVertexBuffer.vao.destroy(this.gl);this._marker3dVertexBuffer.destroy(this.gl);this._marker3dVertexBuffer=null}}var ka=0;for(var j6=0,j2=e.length;j61&&j8.srcSetObject["2x"]){j7=j8.srcSetObject["2x"]}if(!j7&&j8.imageDom){j7=j8.imageDom.id}var T=j0.textureCoordGLMap;if(!T){var j3=this._imageMergedOffset[j7];if(!j3){jV.id=j7;j3=this.textureAtlasMarker.addTexture(jV);this._imageMergedOffset[j7]=j3}var jZ=new iL(jV.width,jV.height);if(j8.imageSize){j8.ratio=jV.width/j8.imageSize.width}T=this._calcTextureCoords(jZ,j8.size,j8.imageOffset,j3,j8.ratio);j0.textureCoordGLMap=T}jY=[T[0],T[1],T[4],T[5]]}for(var j5=0;j5this._labelVertexBuffer.length){this._labelVertexBuffer=new Float32Array(jV);if(this._markerVertexBuffer){this._markerVertexBuffer.vao.destroy(this.gl);this._markerVertexBuffer.destroy(this.gl);this._markerVertexBuffer=null}}var j8=0;for(var j4=0,j1=ka.length;j41&&j6.srcSetObject["2x"]){j5=j6.srcSetObject["2x"]}if(!j5&&j6.imageDom){j5=j6.imageDom.id}if(!j5&&j6.id){j5=j6.id}var e=jX.textureCoordGLMap;if(!e){var j2=this._imageMergedOffset[j5];if(!j2){T.id=j5;j2=this.textureAtlasMarker.addTexture(T);this._imageMergedOffset[j5]=j2}var jZ=new iL(T.width,T.height);if(j6.imageSize){j6.ratio=T.width/j6.imageSize.width}e=this._calcTextureCoords(jZ,j6.size,j6.imageOffset,j2,j6.ratio);jX.textureCoordGLMap=e}if(e&&j6.isReDraw&&j6.render){var jY=j6.render(this._map);if(jY){j6.update();var j9=j6.data;j9.id=T.id;if(j9.width===T.width&&j9.height===T.height){this.textureAtlasMarker.updateTexture(j9)}}}for(var j3=0;j30&&i.indoor){this.drawArea3D(e);this.drawArea3DBorder(e)}this.drawBuildings(e)},drawBuildings:function(T){var jZ=this._map;if(jZ._displayOptions.building===false){return}if(!T[0]){return}var e=false;var jX=T[0].length;for(var jW=0;jW0&&jY[0].isStencilMask&&this._map.stencil.showRegion==="inside"){this.enableStencilMask(jY,true);this._state.colorMask(false,false,false,false);jA(this,this._sideLightDirVec3,true);for(var jW=0;jW0&&jY[0].isStencilMask&&this._map.stencil.showRegion==="outside"){this.enableStencilMaskOut(jY,true);this._state.colorMask(false,false,false,false);jA(this,this._sideLightDirVec3,true);for(var jW=0;jW0){if(i&&i.vertex&&i.texture&&i.vao){h0.symbol(this,i.vertex,i.vao,this.mvMatrixMarker,i.texture,this._renderPng8Text,this.projMatrix,false,this._map._labelProcessor._useRound,this.mapHalfSize,0,this.cameraPosHigh,this.cameraPosLow,this.projMatrix2D,1)}}if(e.poiIcon||T>0){if(i&&i.iconVertex&&i.iconTexture&&i.vaoIcon){h0.symbol(this,i.iconVertex,i.vaoIcon,this.mvMatrixMarker,i.iconTexture,false,this.projMatrix,false,this._map._labelProcessor._useRound,this.mapHalfSize,0,this.cameraPosHigh,this.cameraPosLow,this.projMatrix2D,2)}}},drawLineLabelSymbol:function(jV,T){if(this._map.stencil&&this._map.stencil.isMapMask){this.switchStencilMask("on")}var e=false;var i=this.createLabelData(jV,e,"_lineLabelBuffer",true);if(i&&i.vertex&&i.texture&&i.vao){h0.symbolline(this,i.vertex,i.vao,T,i.texture,this._renderPng8Text,this.projMatrix,this._map._labelProcessor._useRound,this.mapHalfSize,this.mapZoom,this.cameraPosition,1)}if(this._map.stencil&&this._map.stencil.isMapMask){this.switchStencilMask("off")}},drawSymbol:function(jV,T){var i=this.createMarkerData(jV);if(!i){return}T=T||{};var e=T.fixPosition||false;h0.symbol(this,i.vertex,i.vao,this.mvMatrixMarker,i.texture,false,this.projMatrix,false,this._map._overlayMgrGL._useRound,this.mapHalfSize,0,this.cameraPosHigh,this.cameraPosLow,this.projMatrix2D,null,e)},drawMarker3D:function(T){var e=this.createMarker3dData(T);if(!e){return}var i=T[0].overlay._config;h0.marker3d(this,{mvMatrix:this.mvMatrixMarker},this.cameraPosHigh,this.cameraPosLow,e,i)},drawPolyline:function(i,jV){var e=this.createPolylineData(i);if(!e){return}var jW=this.mvMatrixPoly;var T=false;if(jV){jW=jV;T=true}h0.line(this,{mvMatrix:jW,tileOverlay:T},i,e,true)},drawPolygon:function(T,jW){var e;var jX=this.mvMatrixPoly;if(jW){jX=jW}for(var jV=0;jV0&&j2[0].isStencilMask){this.setLayerDepth(40)}else{this.setLayerDepth(fT)}}else{this.setLayerDepth(T)}if(this._map.stencil&&this._map.stencil.isMapMask){this.switchStencilMask("on",true,true)}for(var jV=0;jV0.85){this._currentTextureIsFull=true;this._map.fire(new fA("onmapglidle_inner"))}}},_initialize:function(){var j0=this.gl;var jW=this;this._map.addEventListener("update",function(i){if(i.changedStatus&&i.changedStatus.onsize_changed){jW._resizeHandler()}});var jZ=this._map;jZ.addEventListener("layer_clear",function(j1){jW._cache&&jW._cache.clear();jW._currentTextureIsFull=true;jY&&jY();jW._iconTextureAtlasOffset={};jW._iconTextureAtlasCoords={};var i=new fA("onupdate");jZ.fire(i)});this.tileScale=1;this.stepZoom=jZ.getZoom();this.polyZoomRatio=1;this.normalMatrix=mat4.create();this.background=jZ.config.backgroundColor||dC;var jW=this;jW.updateBackground=function(){var i=jZ.config.mapStyleId;if(typeof jZ.config.style==="string"){jW.background=jZ.config.backgroundColor||dC}else{if(bw["customStyleInfo_"+i]){var j1=bw["customStyleInfo_"+i]["bmapLandColor"];if(j1){jW.background=ho.parseHexToRgbaArray(j1)}else{jW.background=dC}}}jW._state.clearColor(jW.background)};jZ.addEventListener("style_loaded",function(){jW.updateBackground()});jZ._webGLStateId=bw.getGUID("glmap_");this._state=dL.WebGLState.get(j0,jZ._webGLStateId);this._state.clearColor(this.background);this._state.enableCap("stencilTest");this._state.enableCap("depthTest");this._state.enableCap("cullFace");this._state.depthFunc(j0.LEQUAL);this._state.enableCap("blend");this._state.blendFunc(j0.SRC_ALPHA,j0.ONE_MINUS_SRC_ALPHA,j0.ONE,j0.ONE_MINUS_SRC_ALPHA);this._state.depthMask(true);this._needToDestroy=[];bj.init(this);if(this._useSMAA){this.initSMAAFrameBuffers()}this._cache=new ay(eP.Browser.ie?64:128,{clearCallback:function(i){jW._needToDestroy.push(i)}});this._map.on("zoom_changed",function(j1){var i=j1.target.getZoom();jW.stepZoom=Math.floor(i/0.25)*0.25});function jY(){if(!jW._textTextureManager){return}for(var j2=0,j1=jW._needToDestroy.length;j21){this._ratio=2}e._overlayMgrGL=this;this._init()}eP.extend(bl.prototype,{_init:function(){this._bind()},_bind:function(){var i=this;var jV=this._map;function jX(j1){var jZ=j1.overlay||this;var j0=j1.action||"";var jY=true;i._updateGraph(jZ,j0,false,jY);if(j0==="remove"){i._removeOverlay(jZ,jX)}}function T(j1){var jY=j1.overlay||this;var j0=j1.action||"";var jZ=j1.imageUrlChanged||false;i._updateMarker(jY,j0,jZ);if(j0==="remove"){i._removeOverlay(jY,T)}}jV.on("destroy",function(){var jY=[];for(var j1=0;j11&&j5&&j5.hasOwnProperty("srcSetObject")&&j5.srcSetObject["2x"]){j6=j5.srcSetObject["2x"];j5.ratio=2}var j0;var j7;if(j6){j7=this._iconImage[j6]}else{if(jV){j7=this._iconImage[jV.id]}else{if(jX){j7=this._iconImage[jX]}}}if(j7){j0=j7.img}if(j0){jW.textureSource=j0;this._map._featureMgr.setOverlayData(this._renderData[j2],e);return true}jW.textureSource=null;this._removeMarkerFromRenderData(jZ);this._addMarkerToRenderData(jZ);break}}if(!j4&&jY==="setIcon"&&j3){this._renderData[jZ.hashCode]=null;this._addMarkerToRenderData(jZ)}return false},_addMarkerToRenderData:function(jW){if(this._renderData[jW.hashCode]){return false}this._renderData[jW.hashCode]=true;var jZ=this;function jV(kb,j8,j7,kd){var j6=j8 instanceof d8;var ka=j6?4:2;var kc=j6?7:8;if(j8.map&&j8._visible===true&&((j8 instanceof jz&&j8.domElement!==null)||j8 instanceof d8)){if(j7!==null){if(((jZ._ratio===1||!j0.srcSetObject["2x"])&&j8._config.icon.imageUrl!==j7)||(jZ._ratio>1&&j0.srcSetObject["2x"]&&j0.srcSetObject["2x"]!==j7)){return}}else{if(kd!==null){if(kb!==kd){return}}}var j9=j8.getVertexInfoForGL(jZ._useRound);jZ._renderData[ka].push({overlay:j8,hashCode:j8.hashCode,textureSource:kb,renderData:j9});jZ._renderData[j8.hashCode]=true}else{jZ._renderData[j8.hashCode]=null}jZ._renderData[ka].sort(function(kf,ke){return kf.overlay._zIndex-ke.overlay._zIndex});jZ._map._featureMgr.setOverlayData(jZ._renderData[ka],kc)}function jY(j8){var j7=j8 instanceof d8;var j9=j7?4:2;var ka=j7?7:8;jZ._map._featureMgr.setOverlayData(jZ._renderData[j9],ka);var j6=new fA("onrefresh");j6.source="webgloverlaymgr";jZ._map.fire(j6)}var j0=jW._config.icon;if(jW instanceof d8&&!j0){var j2=jW.getVertexInfoForGL(jZ._useRound);jZ._renderData[4].push({overlay:jW,hashCode:jW.hashCode,textureSource:null,renderData:j2});jZ._renderData[jW.hashCode]=true;jZ._map._featureMgr.setOverlayData(jZ._renderData[4],7);var j3=new fA("onrefresh");j3.source="webgloverlaymgr";jZ._map.fire(j3);return true}var j1=j0.imageUrl;var i=j0.imageDom;var T=(j0 instanceof e8?j0.id:null);var jX;var j4;if(this._ratio>1&&j0&&j0.hasOwnProperty("srcSetObject")&&j0.srcSetObject["2x"]){j1=j0.srcSetObject["2x"];j0.ratio=2}if(j1){j4=this._iconImage[j1]}else{if(i){j4=this._iconImage[i.id]}else{if(T){j4=this._iconImage[T]}}}if(j4){jX=j4.img}if(jX){jV(jX,jW,j1,i);return true}if(j4){j4.pendings.push(jW)}else{if(j1){jX=new Image();jX.crossOrigin="anonymous";jX.onload=function(){jZ._iconImage[j1].loaded=true;jZ._iconImage[j1].img=this;for(var j6=0;j61&&jX.srcSetObject["2x"]){e=jX.srcSetObject["2x"]}if(this._iconImage[e]&&this._iconImage[e].pendings){var jW=this._iconImage[e].pendings;for(var jV=jW.length-1;jV>=0;jV--){if(jW[jV]===T){jW.splice(jV,1)}}}}for(var jV=0;jV65536||(jW.styleData[0].length>0&&e===false)||j3===false){j5++;jW=this._renderData[5][j5]={style:[],styleData:[[],[]],texture:null,textureSize:null,zoomWithMap:null,overlay:null};i=jW.styleData[0];j1=jW.styleData[1];j0=0}if(jW.styleData[0].length===0&&e===false){jW.texture=j7.texture;jW.textureSize=j7.textureSize;jW.zoomWithMap=j7.zoomWithMap;jW.overlay=j7.overlay}for(var jZ=0;jZ0&&jV._config.strokeWeight>0){j0=jV.buildVertex(gc,true);this._polylineRenderData[jV.hashCode]={cacheIndex:j0.cacheIndex,hashCode:jV.hashCode,styleData:j0,texture:jV._config.texture,textureSize:jV._config.textureSize,zoomWithMap:jV._config.textureZoomWithMap,overlay:jV}}}else{if(jV instanceof cg){this._lastAddGraphIndex=6;jZ=jV.getFillStyleForGL();var i=jV.buildFillVertex(hp);var T=[jZ,i[0],i[1]];T.overlay=jV;T.isStencilMask=true;T.hashCode=jV.hashCode;T.hasMultipleParts=jV.hasMultipleParts;this._renderData[6].push(T);this._map._featureMgr.setOverlayData(this._renderData[6],9)}else{this._lastAddGraphIndex=5;j0=jV.buildVertex(gc,true);this._polylineRenderData[jV.hashCode]={cacheIndex:j0.cacheIndex,hashCode:jV.hashCode,styleData:j0,texture:jV._config.texture,textureSize:jV._config.textureSize,zoomWithMap:jV._config.textureZoomWithMap,overlay:jV}}}}}this._renderData[jV.hashCode]=true;this._updateOverlayLoopRender();return true},_imageLoad:function(i,jW){var e=new Image();e.crossOrigin="anonymous";e.onload=function jV(){jW&&jW(this,true)};e.onerror=function T(){jW&&jW(null,false)};e.src=i},_removeGraphFromRenderData:function(T){if(!this._renderData[T.hashCode]){return false}if(T instanceof jK){for(var jV=0;jV0){if(this._rafTimer){return}this._rafTimer=requestAnimationFrame(e._loopRender.bind(e))}else{cancelAnimationFrame(this._rafTimer);this._rafTimer=undefined}},_loopRender:function(){this._map._webglMapScene.startRenderThread();this._rafTimer=requestAnimationFrame(this._loopRender.bind(this))},_updateGraphRenderData:function(T,j1){var j0;var jX=false;var jY;if(T instanceof jK){var e=T.buildFillVertex(hp,j1);for(var jW=0;jW