{"version":3,"sources":["components/Map/.draggable/TravelDiaryTool/.image/picture.png","components/Map/.draggable/MarkFunction/.image/點標註圖案.png","components/Map/.draggable/MarkFunction/.image/面標註圖案.png","components/Map/.draggable/TravelDiaryTool/.image/locate-2.png","components/Home/Instructions/.image/Instructions1.png","components/Home/Instructions/.image/Instructions2.png","components/Home/Instructions/.image/Instructions3.png","components/Home/Introduction/.image/introduction.png","components/Home/FAQ/.image/config1.jpg","components/Home/FAQ/.image/config2.jpg","components/Home/.image/组 63@3x.png","components/Home/.image/gif_動畫_0913.gif","components/Home/.image/backgroundPic.png","components/Home/.image/login.png","components/Map/RightPanel/LayersButton/.image/layer-group-solid@3x.png","components/Map/RightPanel/SelectedLayerList/LayerItem/.image/layer.png","components/Map/RightPanel/SelectedLayerList/LayerItem/.image/folder.png","components/Map/RightPanel/SelectedLayerList/LayerItem/.image/矩形 51@3x.png","components/.common/Buttons/Locate/.image/locate.png","components/.common/Buttons/Cancel/.image/cancel.png","components/Map/.draggable/LayersMap/LayersList/Layer/.image/layer.png","components/Map/.draggable/LayersMap/LayersList/Folder/.image/expand.png","components/Map/.draggable/LayersMap/LayersList/Folder/.image/collapse.png","components/Map/.draggable/LayersMap/LayersList/Folder/.image/folder.png","components/Map/.draggable/MeasureTool/.image/平面距離測量.png","components/Map/.draggable/MeasureTool/.image/空間距離測量.png","components/Map/.draggable/MeasureTool/.image/垂直高度測量.png","components/Map/.draggable/MeasureTool/.image/區域面積測量.png","components/Map/.draggable/MeasureTool/.image/清除測量標記.png","components/Map/.draggable/MarkFunction/.image/線標註圖案.png","components/Map/.draggable/MarkFunction/.image/清除標註圖案.png","components/Map/.draggable/MarkFunction/.image/管線樣式.png","components/Map/.draggable/PrintFunction/.image/compass.png","components/Map/.draggable/KMLUploadTool/KMLList/KMLItem/.image/Visible.png","components/Map/.draggable/KMLUploadTool/KMLList/KMLItem/.image/Unvisible.png","components/Map/.draggable/KMLUploadTool/KMLList/KMLItem/.image/edit.png","components/Map/.draggable/KMLUploadTool/KMLList/KMLItem/.image/delete.png","components/Map/.draggable/ReadilyAvailableHouseTool/.image/ok.png","components/Map/.draggable/ReadilyAvailableHouseTool/.image/error.png","components/Map/.draggable/ReadilyAvailableHouseTool/.image/loading.gif","components/Map/.draggable/LocateTool/.image/locate-2.png","components/Map/.draggable/TravelDiaryTool/TravelDiaryListItem/.image/locate-2.png","components/Map/.draggable/TravelDiaryTool/TravelDiaryListItem/.image/delete.png","components/Map/.draggable/TravelDiaryTool/TravelDiaryListItem/.image/Visible.png","components/Map/.draggable/TravelDiaryTool/TravelDiaryListItem/.image/Unvisible.png","components/Map/.draggable/TravelDiaryTool/.image/sharedURL.png","components/Map/.draggable/TravelDiaryTool/.image/outputVideo.png","components/Map/.draggable/TravelDiaryTool/.image/group.png","components/Map/.draggable/TravelDiaryTool/.image/pictureBorder.png","components/Map/.draggable/TravelDiaryTool/.image/loading.gif","components/Map/.draggable/ThreeDBuildingTool/BuildingItem/.image/清除圖案.png","components/Map/BottomBar/.image/pen-ruler-solid@3x.png","components/Map/BottomBar/.image/tag-solid@3x.png","components/Map/BottomBar/.image/print-solid@3x.png","components/Map/BottomBar/.image/locate.png","components/Map/.image/南投縣政府新logo.png","components/Map/.draggable/ThreeDBuildingTool/BuildingItem/.image/選單圖案.png","modules/WebApiModules/PathHelper.js","modules/WebApiModules/ApiBase.js","modules/WebApiModules/ApiLayersMap.js","components/Home/GraphicsIllustrate/data/DATA.js","components/Home/GraphicsIllustrate/data/DESCRIPTION.js","components/Home/GraphicsIllustrate/data/EXAMPLE.js","components/Home/GraphicsIllustrate/GraphicsIllustrate.js","components/Home/Instructions/Instructions.js","components/Home/Introduction/Introduction.js","components/Home/FAQ/FAQ.js","components/Home/Login/Login.js","components/Home/Home.js","components/Map/Oview/OviewMap.js","modules/ContextModules/LayoutContext.js","components/SearchParamProcess.js","components/Map/BottomStatusBar/BottomStatusBar.js","components/Map/RightPanel/LayersButton/LayersButton.js","components/.common/Divider/Divider.js","components/.common/OpacityRange/OpactiyRange.js","modules/LayerModules/.LayerModule.js","modules/LayerModules/OverlayLayerModule.js","modules/LayerModules/Layer3DTilesModule.js","modules/LayerModules/ModelLayerModule.js","modules/LayerModules/ModelsetLayerModule.js","modules/LayerModules/PhotogrammetryModelLayerModule.js","modules/LayerModules/PipelineLayerModule.js","modules/LayerModules/CustomEconomicDataLayerModule.js","modules/LayerModules/VectorTileLayerModule.js","modules/LayerModules/LayerI3SModule.js","modules/LayerModules/LayerGroupModule.js","modules/LayerModules/.LayerModuleFactory.js","components/.common/Loading/Loading.js","components/.common/Buttons/Locate/LocateButton.js","components/Map/RightPanel/SelectedLayerList/LayerItem/LayerItem.js","components/Map/RightPanel/SelectedLayerList/SelectedLayerList.js","components/Map/RightPanel/RightPanel.js","components/.common/Buttons/Minimize/MinimizeButton.js","components/.common/Buttons/Maximize/MaximizeButton.js","components/.common/Buttons/Cancel/CancelButton.js","components/Map/.draggable/DraggableWindow.js","components/Map/.draggable/LayersMap/LayersList/Layer/Layer.js","components/Map/.draggable/LayersMap/LayersList/Folder/Folder.js","components/Map/.draggable/LayersMap/LayersList/LayersList.js","components/Map/.draggable/LayersMap/LayerReview.js","components/Map/.draggable/LayersMap/LayersMap.js","components/Map/.draggable/MeasureTool/MeasureItem/MeasureItem.js","components/Map/.draggable/MeasureTool/MeasureTool.js","components/Map/.draggable/MarkFunction/MarkItem/MarkItem.js","components/Map/.draggable/MarkFunction/MarkFunction.js","components/Map/.draggable/PrintFunction/PrintFunction.js","components/.common/Buttons/Text/TextButton.js","components/.common/InputFile/InputFile.js","modules/DataManageModule/DataManageModule.js","modules/WebApiModules/ApiOviewDocmd.js","components/.common/AutoTruncateTextLabel/AutoTruncateTextLabel.js","components/.common/AttributesTable/AttributesTable.js","components/Map/.draggable/KMLUploadTool/KMLList/KMLItem/KMLItem.js","components/Map/.draggable/KMLUploadTool/KMLList/KMLList.js","components/Map/.draggable/KMLUploadTool/KMLAttributeOptionList/KMLAttributeOptionList.js","components/Map/.draggable/KMLUploadTool/KMLUploadTool.js","components/Map/.draggable/ReadilyAvailableHouseTool/ReadilyAvailableHouseItem/ReadilyAvailableHouseItem.js","components/Map/.draggable/ReadilyAvailableHouseTool/ReadilyAvailableHouseTool.js","components/.common/InputSelect/InputSelect.js","components/Map/.draggable/LocateTool/LocateItem/LocateItem.js","components/Map/.draggable/LocateTool/LocateTool.js","components/Map/.draggable/TravelDiaryTool/TravelDiaryToolItem/TravelDiaryToolItem.js","components/Map/.draggable/TravelDiaryTool/TravelDiaryListItem/TravelDiaryListItem.js","components/Map/.draggable/TravelDiaryTool/TravelDiaryTool.js","components/Map/.draggable/TravelDiaryTool/YellowMan.js","components/Map/.draggable/ThreeDBuildingTool/BuildingItem/BuildingItem.js","components/Map/.draggable/ThreeDBuildingTool/ThreeDBuildingTool.js","components/Map/.draggable/Socioeconomic/Socioeconomic.js","components/Map/TopBar/TopBar.js","components/Map/BottomBar/BottomBarItem/BottomBarItem.js","components/Map/BottomBar/BottomBar.js","components/Map/MinimizedWindowStatusBar/MinimizedWindowStatusItem/MinimizedWindowStatusItem.js","components/Map/MinimizedWindowStatusBar/MinimizedWindowStatusBar.js","components/.common/Modal/Modal.js","components/Map/AttributesModal/AttributesModal.js","components/Map/LayerAttrsRnd/LayerAttrsRnd.js","components/Map/Layout.js","components/System.js","App.js","registerServiceWorker.js","index.js"],"names":["module","exports","PathHelper","args","map","part","i","trim","replace","filter","x","length","join","ApiBase","path","apiBaseUrl","window","location","protocol","host","CombinePath","ApiLayersMap","successCallback","errorCallback","url","MakeUrl","fetch","method","headers","Headers","response","json","success","console","log","conditions","body","JSON","stringify","graphics","text","href","target","rel","example","nameList","theadList","tabText","GraphicsIllustrate","props","state","graphicTab","childTab","layerList","whiteList","push","ls","get","decrypt","then","ret","forEach","layer","layername","this","getLayerList","bind","catch","error","ListAll","result","list","getLayerListRecursive","setState","source","Class","Layers","checkWhiteList","ID","FolderFullName","includes","name","Name","className","key","tableContent","info","infodata","context","tab","index","onClick","content","tablePanel","Component","Instructions","src","Instructions1","width","height","alt","Instructions2","Instructions3","Introduction","introduction","FAQ","style","config1","config2","Login","username","password","CryptoJS","require","enc","Base64","parse","iv","AES","encrypt","moode","mode","CBC","padding","pad","Pkcs7","data","toString","set","ttl","login","type","value","onChange","e","login_OnClick","Home","topbar","viewer","allViewer","isLogined","currentAuthority","otherSites","title","getViewer","getViewerUrl","getAllViewer","allViewerRes","allViewerJson","changePage","site","color","link","document","createElement","click","remove","cookies","cookie","split","eqPos","indexOf","substr","clear","lsInfo","display","flexFlow","backgroundPic","gotoMap","clickLogo","gifPicture","dropmenu","logout","gotoBackend_OnClick","loginPic","topbarVisiblity","gotoGovernment","privacyPolicy","openDataDeclare","Geo3DPoint","OviewMap","initBaseLayerParam","identifier","urlTemplate","gMainMap","Init","openTerrainCallback","TerrainView","setBaseLayer","initialPos","GeoPoint","initialUp","initialV","initialCamera","ov","Camera","gotoCamera","throughSurface","openedLayerStack","id","LayoutContext","React","createContext","layers","updateLayers","updatingLayers","SearchParamProcess","asyncWaitIsReady","process","travelDiaryToolContext","token","URL","searchParams","update","readTokenRecord","draggableWindowContext","isOpened","contextType","BottomStatusBar","useState","y","z","coordinate","setCoordinate","newepsg","setNewepsg","digits","setDigits","scale","setScale","engine","GetEPSGEngine","financial","arg","Number","parseFloat","toFixed","epsgTransform","epsgEngine","CEPSGEngine","transferClient","GenerateClient","point","Transfer","useEffect","mapDiv","getElementById","onmousemove","mousePos","centerW","getElementsByTagName","centerH","dpi","arrDPI","undefined","screen","deviceXDPI","deviceYDPI","tmpNode","cssText","appendChild","parseInt","offsetWidth","offsetHeight","parentNode","removeChild","js_getDPI","p1","p2","windowToTerrain","newScale","Math","sqrt","pow","getScaleRuler","selectEPSGOnChange","LayersButton","layersIcon","Divider","active","OpacityRange","handleChangeValue","event","opacity","currentTarget","IsNumber","min","max","step","backgroundSize","LayerModule","terrainView","layerInfo","oviewLayer","callback","splice","IsClass","TerrainOverlay","removeTerrainOverlay","removeLayer","v","isNaN","setOpacity","Goto","Pos","V","Up","goto","OverlayLayerModule","Promise","rs","ListLayerInfo","obj","addTerrainWMTSOverlay","OviewMapServerUrlUnderProxy","URLTemplate","ProxyUrlTemplete","param","message","getTerrainOverlay","Layer3DTilesModule","addOGC3DTilesLayer","ModelLayerModule","addModelLayer","findLayer","ModelsetLayerModule","addModelSetLayer","modelSetLayer","PhotogrammetryModelLayerModule","addPhotogrammetryModelLayer","PipelineLayerModule","addPipelineLayer","CustomEconomicDataLayerModule","entityList","colorList","lines","risingEntity","stopAnimation","get3DDate","getCustomLayer","polygonset","GeoPolygonSet","FromGeoJSON","Geo","randomColor","geo","surfaceHeight","epsg","drawBorder","borderColor","entity","addPolygonPrismEntity","textParam","Center","count","Color","townName","size","borderSize","points","Bounds","Buffer","line","GeoPolyline","risingAnimation","MakeDoCmdUrl","r","g","b","isDuplicate","floor","random","removeAllEntity","addPolylineEntity","addTextEntity","timeset","setInterval","stop","getParameter","clearInterval","addCustomLayer","setDepthTest","VectorTileLayerModule","addTerrainVectorTileOverlay","lineWidth","minLevel","maxLevel","visibleFactor","isGeoJson","pointSetting","textLabel","TextLabel","fadeEffect","allowOverlapping","groundLineColor","fontTable","font","fontSize","fontColor","fontBorderSize","fontBorderColor","pullUpY","polylineSetting","colorTable","polygonSetting","fillColor","boundaryColor","boundaryWidth","LayerI3SModule","addOGCI3SLayer","LayerGroupModule","children","_GetChildren","rtn","LayerModuleFactory","CreateLayer","promises","child","OpenLayer","all","results","RemoveLayer","SetOpacity","toLowerCase","Loading","LocateButton","lineHeight","imgLocate","LayerItem","openCallback","socioeconomicContext","readilyAvailableHouseToolContext","isOpenedCoreLayers","coreLayer","layerModule","setOnClickEntity","addBuildOnClickEntity","handleRemove","isMinimized","handleChangeOpacityValue","entities","handleLocate","isEmptyModule","backgroundImg","position","zIndex","imgWithType","alignItems","justifyContent","margin","folderImg","commonImg","pos","LayerAttrsRndContext","getColAndAttrs","attrs","ATTR","attrsMaps","COL","isShowLayerAttrsRnd","layerAttrsRnd","layerAttrsRndTitle","layerAttrsRndPosition","resetAllOpacityEntityID","resetAllHideEntityID","removeBuildingFloorColor","readilyAvailableHouseTool","setOpacityByEntityID","setHideByEntityID","HIDE","DISABLE_SELECT","setID","SelectedLayerList","removeLayers","selectedLayerContext","RightPanel","layersButtonClick","layersMap","MinimizeButton","CancelButton","cancel","DraggableWindow","handleStart","handleDrag","handleStop","handleMinimize","handleMaximize","handleCancel","dragHandleClassName","default","defaultPosition","dragGrid","bounds","onDragStart","onDrag","onDragStop","enableResizing","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","onResize","direction","ref","delta","handleResize","isShow","header","Layer","handleLayerOpen","isCheck","updateLayerList","addLayerToList","removeLayerFromList","stopPropagation","checked","layerImg","Folder","parseData","item","handleClick","expand","toggleImage","collapseImg","expandImg","LayersList","reviewLayers","LayersMap","handleAddingClick","add","handleRemoveClick","layerName","addedLayers","a","removeLayerFromResult","removeEmptyFolder","url3DAuthLayer","reviewLayerWithAuth","reviewLayerList","some","element","removeItem","listItem","MeasureItem","addedLayer","icon","MeasureTool","abortInput","alertify","measureSurfaceLength","onCompleted","measureSpatialLength","measureHeight","measureArea","clearMeasure","minimizeWindow","measureTool","平面距離測量Img","空間距離測量Img","垂直高度測量Img","區域面積測量Img","清除測量標記Img","MarkItem","MarkFunction","isOpenFunc","funcName","clearAllMark","markFunction","symbol","點標註圖案Img","線標註圖案Img","面標註圖案Img","清除標註圖案Img","markNames","backgroundColor","changeColor_OnChange","visibility","borderWidth","marginBottom","placeholder","changeText_OnChange","管線樣式Img","imgActive_OnClick","doMark_OnClick","classList","GetCustomMarkLayer","number","absHeight","label","addPointEntity","inputSurfacePoint","addSurfacePolylineEntity","getHeight","inputSurfacePolyline","addSurfacePolygonSetEntity","inputSurfacePolygon","confirm","PrintFunction","printFunction","drawLatLon","drawCompass","ratio","PrintStyle","head","persist","PrintScreen","mapview","page","innerWidth","innerHeight","windowRatio","innerHTML","statusbar","append","settings","ResizeLegendToolToFitPrint","compass","compassImg","camera","angel","atan2","PI","compassStyle","onload","print","setTimeout","RestoreLegendToolSize","containers","getElementsByClassName","container","resizedleft","slice","resizedtop","resizedWidth","resizedHeight","TextButton","calculateWidth","calculateHeight","sizeOfSingleCharacter","res","convertRemToPixels","ex","rem","getComputedStyle","documentElement","InputFile","onUploadClick","inputFile","current","files","createRef","accept","DataManageModule","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","blob","Blob","ApiOviewDocmd","cmd","postData","AutoTruncateTextLabel","AttributesTable","show","dangerouslySetInnerHTML","__html","KMLItem","updateOpenedImage","visible","unVisible","toggleOpenedImage","kmlUploadContext","toggleOpened","toggleDeleteImage","Docmd","nowIndex","newList","kmlList","kml","updateContextList","toggleEditImage","editText","ext","substring","isEdit","oldName","newName","updateKml","openKml","closeKml","kmlSceneInstance","file","ConvertB64toBlob","importKML","getObjectURL","scene","handleKMLEntityClick","copyByRef","attributesModalContext","showAttributes","phone","address","description","updateContent","removeKMLScene","createObjcectURL","createObjectURL","webkitURL","instance","edit","deletePng","KMLList","maxHeight","KMLAttributeOptionList","handleCheckBoxChanged","onAttributesChange","fontWeight","Object","keys","KMLUploadTool","updateKMLList","updateList","handleUploadingFile","resolve","reader","FileReader","readAsDataURL","uploadData","fileName","Date","now","toLocaleString","timeZone","replaceAll","newKmlList","listHeight","KMLScene","kmlOpenedStatus","getAttributeSetting","Async_WaitMapInit","Wait","time","IsReady","onChange_showAttributesField","名稱","電話","地址","描述","setting","ReadilyAvailableHouseItem","checkedName","ReadilyAvailableHouseTool","uploadDataArray","checkStates","errorMessage","tabIndex","errorCols","errorRows","downloadExcel","loading","checkStateName","firstFile","secondFile","thirdFile","firstFileType","secondFileType","thirdFileType","typeNum","convertFile","assign","建物層次","SetFloorColor","buildingFloor","floorColor","selectedBuildingID","addBuildingFloorColor","stateName","firstType","secondType","thirdType","檔案名稱","postdata","addModelOnClickEntity","errorIndex","欄位","欄位內容","錯誤報表","download","status","ok","inputDataPanel","attributeRulePanel","detailDataPanel","disabled","multiple","handleUpload_OnChange","startCheck","marginLeft","statusOfImage","whiteSpace","downloadErrorExcel","colList","col","rowList","row","rowEle","InputSelect","selected","selectedName","isSelecting","contains","addEventListener","handler","DefaultValue","removeEventListener","prevProps","prevState","snapshot","Options","defaultValue","defaultNoTrigger","OnChange","Style","borderRadius","borderBottom","ele","LocateItem","LocateTool","行政區List","行政區","行政區Id","workerWaitForInit","custom","GetCustomLayer","get行政區List","townlist","townId","xmlDoc","DOMParser","parseFromString","townCode","childNodes","nodeValue","err","roadList","roadName","道路List","道路","get道路List","號","之","geoPoint","locate","lon","lat","up","paintLocate","sectionCode","landCode","ldx","ldy","rtx","rty","GeoPolygon","contentList","locationList","座標","getAbsHeight","gotoCadas","paddingTop","marginRight","行政區onChange","道路onChange","Input","號onChange","之onChange","gotoDoorplate","searchByCoordinate","searchByCadasPanel","searchByDoorplatePanel","TravelDiaryToolItem","TravelDiaryListItem","isDelete","del","userDelete","setShow","TravelDiaryTool","pageName","nowTrack","picTitle","picText","showPicIndex","nowPicList","describe","textEdit","picEdit","demoName","gpxFileName","nowPicture","picture","waitPicList","nowTrackIndex","showTrackList","uploadLoading","picFileName","changeView","demoIndex","trackLoading","listLoading","trackList","nowEntityList","nowEntityTimeList","trackTimeEvent","startVideo","isPause","recordTimeEvent","recordTimelineEvent","track","getModule","depthTest","collisionList","cameraHeight","GetCustomDrawLayer","GetCustomDrawPicLayer","customPic","getAllTrack","removeTrack","removeTimeEvent","widgetTimeline","widgetTimelinePlayer","rootParam","group","displayLeafCount","attr","childrenCluster","childrenGridSize","childrenMaxSize","longitude","laitude","pullUpYIsWorldSize","tooltip","clusterEntity","addClusterEntity","setOnClickListener","sn","ENUM_VECTOR_ENTITY_TYPE","CLUSTER","getTrack","date","dir","picList","addTrack","gpxFile","ent","pa","paintEvent","pic","addPicTimeList","paintCluster","setDepthFunc","Async_WaitListLoading","promise","enable","trackEntity","picUpload","delTrackIndex","GPXEntity","removeEntity","removeWidgetTimeline","gpxfile","dataURLtoFile","Widget","Timeline","view","TimelinePlayer","timeline","playSpeed","minUpdateInterval","addGPXEntity","onGround","minRange","rotate","w","addLink","_entity","_Layer","_Entities","UpdateParameter","dashScale","p","moveLine","addGroundPolylineEntity","updateTime","playingInfo","TimeSpan","updateParameter","startTime","stopTime","isRepeat","addTrackTimeEvent","rate","round","getTimeRate","dataurl","filename","arr","mime","match","bstr","n","u8arr","File","addTimeEvent","start","end","onPlay","dates","cameraMove","checkCollision","dashLineToSolid","onEnter","onLeave","border","_Play","oldV","playTime","vector","normalize","angle","computeAng","newV","cross","computeDis","rotateVectorXY","cameraV","Normalize","newPos","newHeight","temp","cameraR","cameraUp","newCamera","geoList","hasPassList","j","nowDate","lastIndex","alreadyPass","maxDate","passTimeIndex","nowPos","picGeo","getTime","showEntity","moveV","oldCamera","newCameraPos","newCameraHeight","play","geos","distance","ang","arc","cos","sin","x2","y2","z2","unit","v1","v2","dot","acos","newP1","newP2","showList","dirName","videoStream","canvas","captureStream","mediaRecorder","MediaRecorder","chunks","ondataavailable","onstop","videoURL","revokeObjectURL","requestData","oldIndex","pointList","TrackManager","Stops","exifr","gps","latitude","GPSAltitude","inTrack","tooClose","isClose","picEvent","trackGeoList","MAX_VALUE","trackGeo","dis","minDis","minInd","picData","deletePic","shortUrl","origin","textArea","focus","select","execCommand","fontcolor","getContext","clearRect","fillStyle","fontsize","textBaseline","fillRect","fillText","dataUrl","toDataURL","pointEntity","addPushpinEntity","borderParam","pictureBorder","symbolSize","pointOffset","borderEntity","pictureEntity","minDisplayDistance","textImage","textBecomeImg","textEntity","labelOffset","borderHeight","indexNum","SN","newIndex","setVertArg","targetIndex","rows","cols","resize","alignSelf","gpxFile_OnChange","picFile_OnChange","picFileNoCoor_OnChange","trackText_EditPanel","outputVideo","outputViedo_OnClick","shared","getShortURL_OnClick","uploadTrack_OnClick","deleteTrack_OnClick","editDescribe_OnClick","picture_EditTitle","picture_EditText","picture_Edit_OnClick","picDelete_OnClick","backgroundImage","loginUserDelete_OnClick","listItem_goto","toggleTrackShow","update_Panel","picture_Panel","list_Panel","BuildingItem","isOpen","buildingToolContext","buildingList","city","roadI3S","road2ndI3S","road3DTiles","road2nd3DTiles","ThreeDBuildingTool","isOpenHelp","introducer","waitPromise","outResolve","urlSp","findItem","ChartJS","register","CategoryScale","LinearScale","ArcElement","PointElement","LineElement","BarElement","Title","Tooltip","Legend","townNames","Socioeconomic","activeChartType","selectTown","repaint","showChart","updateData","options","responsive","maintainAspectRatio","plugins","legend","labels","boxWidth","boxHeight","radius","scales","grid","ticks","autoSkip","maxRotation","datasets","fill","tension","backgroundColorArray","borderColorArray","rgbArray","rgbaArray","rgb","rgba","selectTown_OnChange","htmlFor","chartContent","showChart_OnClick","TopBar","tabClick","constextKey","openSensorThings","gotoBestCommentator_OnClick","openBestCommentatorPlayer","storyMap","BestCommentatorPlayer","storySrcList","_WidgetUI","_PosX","DTM","SensorThings","listX","proxy","BottomBarItem","BottomBar","getClickHandles","測量工具","標註功能","列印功能","定位功能","locateTool","buttonList","measureImg","tagImg","printImg","MinimizedWindowStatusItem","handleBodyClick","MinimizedWindowStatusBar","contextKey","minimizedStatusStack","Modal","handleOutterClick","onOutterClick","handleInnerClick","onInnerClick","AttributesModal","LayerAttrsRnd","transition","d","maxWidth","buildingAttrMap","Layout","updatedLayers","concat","updateDraggableWindow","updatedMinimizedStatusStack","newDraggableWindowContext","pushKMLItem","newKMLUploadContext","updateKMLContextList","oldList","newOne","oldOne","toggleKMLOpened","copyByRefKMLInstance","updateAttributesContent","newAttributesModalContext","readilyAvailableHouseSetLayer","readilyAvailableHouseRemoveLayer","readilyAvailableHouseSetID","pushBuildingItem","building","newBuildingToolContext","removeBuildingItem","setBuildingItemOpacity","updateSocioeconomicContext","newSocioeconomicContext","removeSocioeconomicContext","updateTravelDiaryToolContext","newTravelDiaryToolContext","updateLayerAttrsRnd","newLayerAttrsRndContext","handleDraggableWindowDisplay","isDraggableWindowMinimize","handleDraggableWindowMinimize","handleDraggableWindowCancel","handleAttributesModalDisplay","handleAttributesModalContent","handleAttributesModalPosition","opacityValue","economicLayerModules","addInitLayer","kmlUploadTool","travelDiaryTool","threeDBuildingTool","socioeconomic","addLayer","mapClickResetEvent","updateOpacityIntervalId","seeOpacity","Provider","Close","logo1","opacityOnChange","terrainAlpha","System","App","exact","component","displayName","Boolean","hostname","baseUrl","getAttribute","rootElement","ReactDOM","render","basename","navigator","serviceWorker","ready","registration","unregister"],"mappings":"kGAAAA,EAAOC,QAAU,0lC,oBCAjBD,EAAOC,QAAU,83C,oBCAjBD,EAAOC,QAAU,klC,cCAjBD,EAAOC,QAAU,09C,6BCAjBD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,2C,cCA3CD,EAAOC,QAAU,0oX,cCAjBD,EAAOC,QAAU,k2G,cCAjBD,EAAOC,QAAU,s3E,cCAjBD,EAAOC,QAAU,0rD,gBCAjBD,EAAOC,QAAU,IAA0B,gD,cCA3CD,EAAOC,QAAU,khE,eCAjBD,EAAOC,QAAU,06B,cCAjBD,EAAOC,QAAU,s3E,cCAjBD,EAAOC,QAAU,syC,cCAjBD,EAAOC,QAAU,suC,cCAjBD,EAAOC,QAAU,0rD,cCAjBD,EAAOC,QAAU,s7B,cCAjBD,EAAOC,QAAU,00B,cCAjBD,EAAOC,QAAU,8kB,cCAjBD,EAAOC,QAAU,0kB,cCAjBD,EAAOC,QAAU,0nB,cCAjBD,EAAOC,QAAU,kpB,cCAjBD,EAAOC,QAAU,8gC,cCAjBD,EAAOC,QAAU,8/C,cCAjBD,EAAOC,QAAU,09W,cCAjBD,EAAOC,QAAU,0tJ,cCAjBD,EAAOC,QAAU,07H,cCAjBD,EAAOC,QAAU,0pF,cCAjBD,EAAOC,QAAU,0zC,cCAjBD,EAAOC,QAAU,0mB,cCAjBD,EAAOC,QAAU,siB,gBCAjBD,EAAOC,QAAU,IAA0B,qC,cCA3CD,EAAOC,QAAU,09C,eCAjBD,EAAOC,QAAU,09C,cCAjBD,EAAOC,QAAU,0zC,cCAjBD,EAAOC,QAAU,0tJ,cCAjBD,EAAOC,QAAU,07H,cCAjBD,EAAOC,QAAU,8tB,cCAjBD,EAAOC,QAAU,knB,cCAjBD,EAAOC,QAAU,s4H,cCAjBD,EAAOC,QAAU,sgK,gBCAjBD,EAAOC,QAAU,IAA0B,qC,cCA3CD,EAAOC,QAAU,8gC,276b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","file":"static/js/main.2d8d4bfe.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAMAAAAPkIrYAAAAP1BMVEVHcEzHY2PNZ2e9Xl4AAAAbDQ0HAwMAAAAHAwMAAADBYGDBYGCwV1fOZ2f509PttLTScXH0xsbYf3/fkJDln5+0kdmCAAAADXRSTlMAyfRHCBUdAg4Fd5kyEH8D+QAAApFJREFUWMPtmOtygyAQhauCogaX2/s/axeQJMBqMOn0V05m7NjGz3OWe39+vvrqq3/VtOuPMJ/T8Ok56TOYJ3XyLj6/D/Oebg+UXOY22EQIc7H1idUzNr/KeX+yFGOsf2LJAWGntIARt4HU8oyS3XATJ23gf82XvcBG+auSZ+oWcWDNe1owh7LOWSOb1A9kGwSUlE6DlRcUYTVqkBK2lyRj0iU4u9UwX/QeUS/D6W3T8bIXjZUwtMUWaXdXxphD5oaKl3vvKFnYgTqpwf/Raf9VbRtZa2HM2xK9igkD6hFC5p0DAFy8pJAiN4bVYkJaLZ9YkGodfW7a0bl7EYxlEbl08V0Ggsx+sz0EimaxgiW4hPrFbstlKVYWcoosXX5NwVYKGlnwyhUJI1nKNaDqmE0slZ7W4IwDne7yBlA9p1jFG1OxnMqLBw2sYtyoKlPKrC6zbO0CiIoZmqWoiKq2CpdZmiiObmUpVU0IWHiil2R92n7G2v6EBa2+5Fv1ci2sPc9zRzG1V9XEstWQUbruX+YgYzEcdTaEDiZv28S6D5l9FbFpcGfN4UwTKxnzEwXA4yZvDdXESqXOpU0+Acg2Vir/yVRooZVVw8oVGJdJktVRGxF9EtBXweBaW7PESi6lVh+aQlvYEEvOCuujGI42SS6svcSyHfYyN4rFV3lN1o/MldcsLNjYXSHhWoK9tuO82k8EY+0wZTE0Dq5uLG2lkOO49ueI/YeJm+N+Gb2tihVgSFvWrlHrMHqUYMQeM8CQ1i4eUeXm9wHjYxOPe5JHsXqH71MiLOIaJWjUDgs0wRs+IoDYwdlvijQmEBiZx2KRxA6Pkfs5MWo++UQKm09PfeHwSB0fSb06w09X9f0vy1f/pF/oqZITP3uk6QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA5dJREFUeNrsW/2tmzAQ94v6f9kg3gA2eN6gjMAI2aB0A94GdAO6AW8DugHZIJ2AGslpUeSPO/vORAonnSIh4o+f78t3x9uyLOKV6SRenA4ADgBenL5kmkdtuNBcWt75o3nSPJvf0fyy0hujF2g015q/JYyxgjJo7rjAoAZgPd2L4a/Ea/1tgOhJR10BIOKL5tvCT6NmRbVuCgmozKmUAHG+6/XKN8s4hbET74B5PzS3lnGySkATOPVZc6e5ihi71twHpGGKHPsfp2y+DWy8IRLTwszlAvqWAkLsonrPYlpCu7JlqXmgBiFmIZ1HHCXT5h9V40YFQozO26g3oioycWXUzAaC5AKg8mxe7MCFkTqbJLK4wcni6n6aiA8TKCnj8qRhsXGLo2HMeOt/zw/PfxgXSeYG20SklceA2cS4R4hy5bAJFZUKSMsEUF2rTOQWSx3QtjSOiJEEAJvLaxIMJpZm4GnagFapABSRyHbE8T/ExcmYtUIuOFhUL0yXIAgINmmVKQDMSMOnmG+CU8Am2KTAG5meAre8R/fSBZxKL3ipNLkGF63ZpM+HZ3VsTlBZng2BDNA5Q3rt+yZ+gBxC6XsfA8Bn4O7dinzkC75GhzSjAagAA/vUZS8AVjW4UgBwtoTCLqozZ7PPATWYUgGwDX5DSEsOqhAAFBQAjIFLyTMBIFIB4FxMDposnuClSmPgTPGJCfG9SVmKKigAZmBgtCfNFBKBAaBABh+59TzKJvlU4IoYdMi8+WsAAAk9oBMCYRV495oRgCHg8kqoupwQYv0eUIM+IwAdMiodKQAIhbxdJin4CBjA2qIuc2xWeEammLgTInNEQqRLyQi1ESmxdseUWEedEpORSdGeYfP1HklR12bqJa18Tn3ywlF4UQtRYcS2KEjBQjmKmFAagPPUnIUR12mOC66qPCE23iP6gFylMdD/ocVRVxESWxyVxk1JR8rt3h8Ivc0V5v3S4iovlMVRn4t7xvI4uFchphXuGUCQjs2ju0Qo+4PGTF0iytMwhe4f5GiSahhF3ld0jZo3ZUF9pm5OSJtcvezQJwjpAZiN3YjpHqsMyKFGzKRGyZytsr/F/zbZyeHSKsNr7iHUbP3LuOCkVlnKbvFW8HSJ27JBDVkajsE9dUxd4zOHgeX6YKIwp9QAVMNH9w8mBq68I+cXI9vwV230u/KoyT17Mwp8z+DTAvDUdHw2dwBwAHAAcADwyvRXgAEAaxQnqCqmKtcAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAArdJREFUeNrsm71qwzAQx5XSPd461mO35hHyCHmDupC9HvoAHjP6EdInaLp2yhOUjO3msaML/SAQcCWQIRhJ1tdJF6KDoyS4ln5/bOnudJl0XUfO2S7ImVsSIAmQBEgCJAHO2S493ivnDm0Ndz/GAiEPXlFvu3BWeZo3mXiIBBfUnyM8vffU16438SEAexyvIwjwxV+5NuYiWEWCZzalXsZcA3LBe88+Z5Lri8G1a81x2P12ivUgd1kDXARYCyZTAMP/CMbcxBBgLpjIFhiePV0zPs7Q5qEF0J2Eb3jC/w5tF1KAQjCBdSB41etXhhAgkyx8eUB41TwyaAEqjagMGr73UjCXGlKAXDBgM1A9FHzvjeu2aCLARjDYIiI886XBbuQkwNi2FwN+pkjAFr4FEEViM6Tw/avpTYBSse1hgGf3WdmmzLbbXoYIPnPZFscGrCUBByZ40wBNWwDZtocRXmetMhZAFO+vEMObJmlKAUQ3ekcOr4pXClMBmpGiJFb4/tXdj0SsSgHKE4aXZYrSbFE34Tl1eGlcYPIEnDK8kQCioGKvOREs8L+6QZFr1Qcj/KtJtcg0AZojh380TYx8VH6xwBc2FWPiGFRggl/YFEdsTn+aowwMC7x1ecy2ELpCBl/ZFkh19/WhugdE8E4lcpfDEAzwpmeUTlVh0Qq7jAzvfExmIoDtYFDwpPNwUAp5JA4NX/g4Kvd1NpgFhhctzK1Ns4RtR9hYpgUJrzsH0P4AVdABDa8KzoIJIAs7oeGdtz2fPUKiFfgbGN646gspQK6ovkDAm6boQTpFa+oPg+/+qL9RP2j8/w31q6PPH9Q/Jddm1G8H3z1RL2J2ima8U3R6rp2iLe8WjWG1K7yvXmHCm5bvAsK/8CZtgkUAZnPu0LblTrAJkH4ykwRIAiQBkgBJgBOzfwEGANHlNQEsyCfhAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPlSURBVHhe7do/TBNhFADw3vUoA43QlgQG20REUgUrwRIDqEFNmBjEATTBhcXo7KBxNdHB2T8LiySKgzgw4SBRkRgYSBVDCGJCHcBQCqaYIO2dPPJqlNyf7+5732HkfgnhvaP3p6/vvrv7qM/j8Xg8nr1Lwt+uWOu5fENdWurVcuvVWnY1hIu3SaGKrBQsW5SrqgbKBx/fxcXCCS/AWm9fd2H+yz11IR3FRUzkWDTtrzlwvXyg/xkuEkJYAb73XUnkZ2aH7b7xnaAQSryuc1//oxQuIiWkANDqm2PjdzAlUdLWclPEqUFegGxH55vCp5mTmJLyH4m/DY0Mn8KUBGkBRL75IuoiyPib22rnhSHRbx7APmBfmHIjKQCM9Pmp1HlMhYN9wT4x5UJSgPz4+ycYWpJKS1Vo40DHuWOVX+ck+IEYlsHf8GWW7OzTDPcYsNp18X5+YvIqpqaU5uSDiqGn1zDVRb09K9wFyBysL2gbG5adZOcyxnoZhY6JfJ72Y+oI1ykA5yH1mwfwWlgHU0Owb96xgKsDsu0dHwtz8/WY6oI7ufC7VzFMbVlpPbNgdSfpr62ZDo2ONGBqG1cHqIvfDmFoCG5jMbQNngUwNMRyDGa4OmB5f62GoS6Kc5RljIErCYa2cXWAFXjExdAxim2YEVoAXyDwAyPnKLZhwnEBWEZfLZcLY+gYxTbMCB0DfLKsVS7McnXZcqxO9amq6XH+s2MAHDjPdXp7XYs3z4urAFI4tI6hoXzqQz+GtrGsy3IMZrgK4I9FX2JoSFvJljl5fIV1YF1MDbEcgxnu9rIcB5CIZwHAc/4D7gJkEs05lk8KsNwWs9z+FkH7R1ITQUwd4S4ADFSbo68HMWUiV1dl5Gj0r+luNZ3uVheXIpgyKWk/3cM7bU4ywtrpAioUnz4guQwqh+O3MXQN1T5JOgC42QVUnz4guxFSEkf7MBSOcl9kHQDsjOBO8Uyw6CEtAGC9L3CK97q/E/mzAMzUYkhOxLbJOwBk4o0bW4+xAUxJSMHgz8jMVCmmZMg7ACjJpssYkhGxTSCkAwDLjDEr3plfM8IKAFgmMywRTKqYEbZhoBxveoihYxTbMCO0AwDPHSLlHZ8RoR0ASpJNrRjaxrMuK+EdAJx8c0TE12H0uFIAwPpfZEDxHyVWwk+Boq3r+C0MLdl5LS/XOgCsJNuWrWZ9YLYoPDlWialwrnUAUBINZzE0xPIaSq52AIDpbqMvVCmNiRcVw8+7MHWF6wUAegOimwPfn1w9BYqUlhOXMPxNb9l/DWaPYPIEfiDGxXtLsQCY7opdOQWKYIZH5AySx+PxeDweEz7fL7YSmEb4tVBJAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/Instructions1.e68d4562.png\";","module.exports = __webpack_public_path__ + \"static/media/Instructions2.a4c0dede.png\";","module.exports = __webpack_public_path__ + \"static/media/Instructions3.f5712c2e.png\";","module.exports = __webpack_public_path__ + \"static/media/introduction.bfb0ce89.png\";","module.exports = __webpack_public_path__ + \"static/media/config1.4d95d082.jpg\";","module.exports = __webpack_public_path__ + \"static/media/config2.398c2ed1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/组 63@3x.4443e979.png\";","module.exports = __webpack_public_path__ + \"static/media/gif_動畫_0913.48db3408.gif\";","module.exports = __webpack_public_path__ + \"static/media/backgroundPic.cb5de4eb.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nO3de4xl910Y8Im9c+7swwkJhCQmpLySEF6hQEorqFQgVKISrQQiRaXQh9TwbiQqCGqljkMlvDPnztpTTIRRVUT4o2groBRKqVJhKQ3lkSWxd+85s57EdWKS8HDefm78mJ5zZ72xvfPbuTv3/u733Hs+H+mrNY6x7/nO93y/33vnnnNWVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCzk7eff9lqWX//oKxvL8rq9wfDereJTzT/92ebP/eEEJli/xz7RBO743OvOQdXh9U/bs/J6L4ALKmbfr7+/KbZ/EQTfxLeBIUQz42yeroY1n88GI5+sj1Xo/sFsASOb937Re27jKbJPBLe5IQQk8TDg2F12/GNnZuj+wewiO48t1oMq7c0w/+hDjQ0IcT1xyODsrplZXt3EN1OgAVRbOy8tmke7+tAAxNCTBtl9Z72k7zovgJ0XFHW3+NdvxDLFUVZffR4WX1zdH8BOmqwNfrh5t3Ck9HNSgiRI6rH1raqfxrdZ4COaZrDj8Y3KCFE7rAEAFcUWzvf2ywAT0U3JiHEPKJ6zK8DgP0v/PmdvxC9ivF3AnwxEHpsfVQ0w//u6GYkhAiJP11Zv+tYdBsCAhTD+mc70ISEEFGxWf+r6D4EzNn4Dn/jO4Z1oAkJIUKiGFYfWVk/dyK6HwFz1N4qNLr5CCHio1kC/l10PwLmZPxgH+/+hRBtlNWnV7ZGL4nuS8ActE8MC286QojuRFn/WHRfAuagOeH/NLzhXHeDqh4fDKv/0sR3rKzv3RCdQwgxfkhX/ZrmfPiRZmi/d1bnV1FWfxR9aEBmJ28//7L22eHhA326ZnVf+3tL1zHTa3t7LxgvAsP60gwW7KdPbe++NPqQgIxWy/r7owf4zKJ9bkFZ/U6xWf0j1zPTV4Ny9O2zWAJWy+pN0ccCZNSc6NvhgztDtHc2a5aBWwdbo6+IzjHM26Csf2L686i6Lfo4gIyaQfn70cM6a5TV08Wwumt1OPqBlfX716LzDXNxdu/GZgkYTXn+/F70YQAZFcP6A9MN2PrXZ/nlo8zxiWYZ+IXVrQuvj8475DbtEz2Lsn5/9DEAGTXD++NTNYmN6tXtv2d1uPONTcN4e9N0PtWBQT/B4lK9Z7A1+uGV7d0XRv8MIIfxg72mWgCqB6OPAchoMOWXhdoHCD3nX7h+7sTaVv1DxbB+V/iQnywebhrdr6xtXvyWoB8B5LG9O5hySX48+hCAjKYdoNf6d4+vTx5Wp4uy/ssODPpJGt69zWt968ny7i+cV/4hp5znN7Dg5tIg2i8kbVZvHJT12eb/54nwQX94XBpfTrhVfZ/LCVlkFgAgad4N4vjGzs3tu+z25j0dGPSHRvM6P9x+ijEoL35pjvxDThYAICmsQazv3dB+KlAM63c077YfjR70h0f1VPNa37n/qcDzvvcAHWUBAJI60SBuPf/iwXDnzc2QvSd+0E8U7eWEd65uXvy6mRw/ZNKJ8xvopq41iPHlhM1wHZT1Qx0Y9BNEda5dXlbuGJ2adS5gWl07v4EO6WyD2Ni56fLlhO+MH/ITRFl9ul1c1oajb82WE7hOnT2/gXiL0CCK2y68bv9ywurB8EE/WVTtFx1PDS9+wTzyAymLcH4DQRaqQWzvDtov4Y0/FViERxiX1ePjSx83qze2j2qda65gZcHOb2C+FrVBrA0vfPH4csJh/aHwQT9Z7DYLwS1rp0evisoZ/bOo5zcwBwvfIC5fTjh+p13Wn+3AoL92lNWTn7uc0E2GyGvhz28gn2VqECfO1K/Yv8lQ/f7wQT9BFGX10fFNhjYvfHl07lhOy3R+AzO2rA3iyuWEw/qR6EF/eLQ3GarePb6ccP3ciejcsTyW9fwGZmDpG8Tp+140vslQWb83ftBPEGX9yf2bDI2+Pjp1LL6lP7+Bo+tTg2g/FWhe83YzZD8ePugniss3GdrYuSk6dyymPp3fwHXqZYNYv39toS4nHFaPuZyQo+jl+Q1Mpu8NotjYee34JkPD+q/iB/0EUVY745sMbe++NDp3dF/fz2/gGjSIy9ZHRVHufPf+5YTVk+GD/vC41L7W9jWvnN27MTp9dJPzG0jSIK52fOveL9q/nLC6vwOD/tAohtWfjy8nvG3nS6JzR7c4v4EkDeIaFu0mQ+PLCS/fZOjOc6vR6SOe8xtI0iAmdOv5F+9fTlidjx/0h0ezCPxF8+f2all/TXTqiOP8BpI0iOv3rJsMPRw96CeLy5cTlnefjM4d8+X8BpI0iCls776wHaz7d/GLHvITLQKfGt9kaKP+hujUMR/ObyBJg5iN1TPVV+9fTlh9LH7QTxRV+0XHla3RS6JzRz7ObyBJg5gxNxmiQ5zfQJIGkU+zBLxm/KlAWf9l/KCfIMrq3vZTgZO3n39ZdO6YDec3kKRBzMHZvRuvXE44rJ8IH/SHLwJPXrmccP2uY9Hp4+ic30CSBjFfxzd2br58k6H7wgf9BFEMq4+MbzJUXvzS6Nxx/ZzfQJIGEeTyTYaad9rvaN5xPxo96A+P/ZsMrW3VP7Sy9cDx6PQxGec3kKRBdMBt7/u8/ZsM1XfHD/qJ4hPjywk3L35ddOq4Nuc3kKRBdMuVmwyV9UMdGPQTxOWbDN0xOhWdO67m/AaSNIiO2ti5qf24fXw5YfiQnyDK6tPjX2e0lxPSGc5vIEmD6L7itguv27+csHowfNBPtAzUdftFx1PDi18Qnbu+c34DSRrEAtneHSzUTYbK6nE3GYrl/AaSNIjFdPz0Pa8cX044rD8YPugniOa1PtB+irF2evSq6Nz1ifMbSNIgFtzlywnH77TL+rPRg/7w2L+ccHyToTvPrUanb9k5v4EkDWJ5nNgcvXz/JkP1++MH/eFRlNVHxzcZ2rzw5dG5W1bObyBJg1hOVy4nHNaPRA/6yeLy5YTr505E526ZOL+BJA1iyZ2+70WXbzL03vghP0GU9Sf3bzI0+vro1C0D5zeQpEH0R/upQPMz226G7MfDB/1EcflTgY2dm6Jzt6ic30CSBtFD5d0nB+XoXxRl9YfxQ36CKOuHimH9n1a3Lrw+OnWLxvkNJGkQ/VaUo68alNVWswz8dfigPzSqp4qyfnt7P4TovC0K5zeQpEEwtj4q9m8yVP2vdtDGD/t0NMvKH1gCJuP8BpI0CJ5vraz+RrMEvG3/5j3xA//AJWBY/WJ0nhaB8xtI0iBIOrt3Y/Nu+7uaZeA3uneToeqp1a2dr41OUdc5v4EkDYJJnLz9/MuaZeCnm8F7MX74X/4UoKzuiM5L1zm/gSQNguu1tlH93Wb4/uog/iZDVXQuus75DSRpEBzZ9u4L2+v0i2H17pAFoKwejU5B1zm/gSQNglkYX044rE43y8DH5rkERB9318kvkKRBMFPbu4P9ywnrdzbv0J+2AMSSXyBJgyCXYqN6dbME3JLzcsLoY+w6+QWSNAiyO7t342CzeuOgrM82NfOEBWB+5BdI0iCYp+MbOzcXZf3WoqzuswDkJ79AkgZBiPW9G5r6+U71l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX159y+/a6dGrBmV1SzGs31WU9QPjaP66/Xvt/xb9+qBT+tYg6Bb1l1dv8nt278bBsHpb85ovXeN4LrX/TPvPRr9c6ITeNAg6Sf3l1Yv87g//35z4uMr6t1e2dwfRLxvC9aJB0FnqL68+5LcZ/qev/9iq37UE0Ht9aBB0l/rLa9nzWwzr1zSv84mjHZ8lgJ5b9gZBt6m/vJY9v4Oy2pruGC0B9NiyNwi6Tf3ltez5bQb4PdMeoyWA3lr2BkG3qb+8lj2/zWt8ePoFoN4ryvp/rqzfvxZ9PDBXy94g6Db1l9ey57d59/7YLBaA/fBJAD2z7A2CblN/eS17fgdlde/sFgBLAD2z7A2CblN/eS17foth9cuzXQAsAfTIsjcIuk395bXs+T1WXnjD7BcASwA9sewNgm5Tf3n1Ib9FWf+aJQCOoA8Ngu5Sf3n1Ir93jE41w/rPLAFwnXrRIOgs9ZdXb/J76/kXD8rqPTmWAJcIsrR60yDoJPWXV6/yawmA69OrBkHnqL+8epdfSwBMrncNgk5Rf3n1Mr+WAJhMLxsEnaH+8uptfi0BcLjeNgg6Qf3l1ev8WgLg2nrdIAin/vLqfX4tAZDW+wZBKPWXl/yuWAIgRYMgkvrLS34vswTA1TQIIqm/vOT3WSwB8FwaBJHUX17y+zyWAPgcDYJI6i8v+T2AJQD2aRBEUn95yW+CJQA0CGKpv7zk9xosAfSdBkEk9ZeX/B7CEkCfaRBEUn95ye8ELAH0lQZBJPWXl/xOyBJAH2kQRFJ/ecnvdbAE0DcaBJHUX17ye50sAfSJBkEk9ZeX/B6BJYC+0CCIpP7yyjHExHRhCaAzNGAiqb+8ooedODgsAXSCBkwk9ZdX9KAT14iy/u2Vs3s3RtcIPaYBE0n95RU+5MS1o6x+LrpG6DENmEjqL6/wAScOi0trp0eviq4TekoDJpL6y6sDA04cFmV1S3Sd0FMaMJHUX17hw00cGsWwfld0ndBTGjCR1F9e0cNNHB7NAvCh6DqhpzRgIqm/vKKHmzg8mgXgg9F1Qk9pwERSf3lFDzdxePgVAGE0YCKpv7yih5uYIHwJkCgaMJHUX17hw00cFi4DJI4GTCT1l1cHBpy4VrgREJE0YCKpv7zCB5xIh1sBE00DJpL6yyt8yIkDw8OA6AQNmEjqL6/oQSeuDsOfztCAiaT+8pLfI7j1/IsHw+qc4c/S0yCIpP7ykt/rZPjTJxoEkdRfXvJ7HQx/+kaDIJL6y0t+J2T400caBJHUX17yOwHDn77SIIik/vKS30MY/vSZBkEk9ZeX/F6D4U/faRBEUn95yW+C4Q8aBLHUX17yewDDH/ZpEERSf3nJ7/MY/vA5GgSR1F9e8vsshj88lwZBJPWXl/xeZvjD1TQIIqm/vOR3xfCHFA2CSOovr97n1/CHtN43CEKpv7x6nV/DH66t1w2CcOovr97m1/CHw/W2QdAJ6i+vXubX8IfJ9LJB0BnqL6/e5dfwh8n1rkHQKeovr17l1/CH69OrBkHnqL+8epNfwx+uX28aBJ2k/vLqRX7vGJ1qhv+f5Rj+zb/3d1e2dwfRhwhZ9KJB0FnqL68+5Ld5h/5rhj8cQR8aBN2l/vJa9vweKy+8wfCHI1r2BkG3qb+8lj2/xbD6ZcMfjmjZGwTdpv7yWvb8DsrqXsMfjmjZGwTdpv7yWvb8NgP7McMfjmjZGwTdpv7yWvb8Dsr6oVkMf5f60UvL3iDoNvWX17Lnt3nXfs/0C4B3/vTUsjeIRVTcduF1zTub25v8Vk08MiirR5smdbF5l/JLa5v134l+fbOk/vJa9vw258aW4Q9HtOwNYqHceW61aUi3NU3tyUPy/r7BcOfN7Q1Qol/ytNRfXsue32JYv6Z5nU8Y/nAEy94gFsZ4+Ne/d50N7FPFsPqFohx9VfTLPyr1l1cf8tucB6cNfziCPjSIRdA0pOE0P4dmEbhrtaze1C4S0cdyPdRfXr3I79m9G5vz5zcnPq6y/m3DH1Z60iA6rtioXj048seYz1sEyuqjzZ//4fjpe14ZfVyTUH959Sa/+0vA25rXfOkax3Op/Wfafzb65UIn9KZBdFiTx81ZDP/nvsupnmze6fzWYLP++yt7ey+IPsYU9ZdX3/K7dnr0qqb2bymG9buKsn5gHM1ft3+v/d+iXx90St8aRBfleozps2K3aYI/tbI1ekn0sT6f+stLfoEkDSJeMaw+lnkB2I+yenxQ1mcHm9Ubo4/5GeovL/kFkjSIeEVZPTiXBeA50X7qsPPmlfLuk5HHrv7ykl8gSYOIN4dfAVwrPtH898+011PHHLv6y0l+gSQNIt4gx5cArzfK6ulmCXhnUdbfs7J+17E5Hrv6y0h+gSQNIt4sLwOcRRRl9eFmEfj3xzd2bs597OovL/kFkjSIbpj2RkBZoqw/2/z5XwdbO9+W61JC9ZeX/AJJGkRHHOlWwPOM6p5iq/oHsz5s9ZeX/AJJGkSHTP4woMhFYDjLTwPUX17yCyRpEN3TPg64GFZ3Nvl9OH7gHxBl9XOzOlb1l5f8AkkaRIedvu9FRVn962bg7oQP/edE9dSxMzvfNItDVH95yS+QpEEshtXhzjcWw/odl7+Y14Ul4DdmcVzqLy/5BZI0iMVyYnP08qKs39osAx8MXgIurayfOzHt8ai/vOQXSNIgFtT6Xcfam/a0N+9pb+ITsQS0n0pMexjqLy/5BZI0iMXX3sa3vZ3vYHxb33kuAdV3TPva1V9e8gskaRBLZOuB481Q/peDsnrPPBaA1Y36G6Z9yeovL/kFkjSI5XSsvPCGYlj/52YZeDTPAlA9trK9O5j2daq/vOQXSNIgltzp+17UPvZ3UNajmS4AZf3rs3h56i8v+QWSNIie2Nt7QfPz+s5mcP/WYPoHDz2xunXh9bN4WeovL/kFkjSI/jl++p5XtnfzK8rqo0f5mRfD6t/O6rWov7zkF0jSIHrsznOrq2X1pmag3zXRpYTtPzPD2wC31F9e8gskaRC0xs8fKOv/OBhWnzrwXX9Z/dGg3Pl7s/7vqr+85BdI0iB4jvX71wZbO9/W/Gx/vBn6P71WVj9YbFSvzvWfU395yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyRpEERSf3nJL5CkQRBJ/eUlv0CSBkEk9ZeX/AJJGgSR1F9e8gskaRBEUn95yS+QpEEQSf3lJb9AkgZBJPWXl/wCSRoEkdRfXvILJGkQRFJ/eckvkKRBEEn95SW/QJIGQST1l5f8AkkaBJHUX17yCyQ1J/kjUzWI7d1B9DGwuAyojJpzc6r8ltXj0YcAZFSU1YenahJn7v2y6GNgcVkA8imGF79ymtw2veHB6GMAMhoMqwvTNIm1sv5n0cfA4rIA5DMo6x+bMr+70ccAZNRs+X8w3buE+v9EHwOLywKQyfreDc1yf89U+S3r/xF9GEBGTZMYTtuEi62d740+DhaTBSCPJjc/Pm1um95wJvo4gIza4T11oyjrT66W9ddEHwuLxwIwe83g/o4mN5emze1qWb0p+liAjI5v7Nw8/TuFeq8YVh8ryuq7oo+HxWIBmKH2Y/+y/olZDP9BWT19anv3pdGHBGTWnPDvm8UScPljw/++tnnxW6KPicVgAZjS+qgoNnZeO/7CX1nfPavzuFnm/zD60IA5GAxHPzm7BeCZdxD1ewfDnX/uPgFcy8zrTswoqh+Nrg1gHrZGL2lv+pGjkRTD+q+aZvK2E2fqV0QfJt0TP+jEVVHWD7U9Ibo2gDkpyupXMjeWS0VZ/9qx8sIboo+V7ggfduKgBaCMrgtgjo6fvueVgylvCzxptL9fHH/DeP2uY9HHTazwYSeeF9VnTmyOXh5dF8CcDcrqlnk2m2JY/XkxrH/2pp+vPz/62IkRP/DEc8/J+qeiawKIUN59smkAH5h74ymrR5tl4JfdS6B/ogeeePZ5WP+JT+Wgx1a3Lrx+MKdfBRwURVn/72I4+oftNc3RuSC/8KEn9s+7YfWR9p4g0fUABFsrqx+Mb0j1B5qm9JaV7d0XRueDfKLrTLRRPebLucAV7aV78Y1p3Jw+0/y5XWxUr47OCbMXX189j7J6enVz559E1wHQMc078J9pG0R4kxpH9VTzWn6n+evvXNnbe0F0bpiN+Lrqc1SPrQ5HPxBdA0BHNUP3RwZl/dn4ZvWsKOvRYLjz5pX1cyei88N0wmupp9H+zv/Y1uhvRf/8gY47dmbnm5p3Cxejm9ZVUdYfb17X6bXTo1dF54ijCa+hPkZZ/4kv/AGTa95tF2V1x6CsngxvYFfHE01TO7s2HH1rdJq4Ph2onR5F9Zmi3Pk3K3eeW43+uQMLqBjWr2kWgV8dD93whnZgkzu3tlX/kIcQLYb4eulBlPVDzZ+bJ28//7LonzewBNpv5Rdl/UuDwHsGXCuaReUvmljX9Lotuk6WNsrq6WJY/d/xU/1uPf/i6J8zsIy2Ri9prxZohu2HwpvewY3w8fYTi9XhzjdGp4qrhdfH4sel5vz72OXv6PxeU+9bxVb1fae2d18a/bMF+mJ974ai3PnuZhF4ZweaYiIu/3rA70A7Y9qfafTrB+BZVofV32zeldzZ3uM/fuhfHUVZfbR98JGHEMWzAAAsoZPl3V9YlPVb26f+RQ/9A6P99cCwfsfq1s7XRueqrywAAMtsfVS0v5fc/1JSBwb/QZ8KDKt3t69x5ezejdHp6hMLAEBPtF/Ga991d+7uglcWgfoD7acWvjk9HxYAgJ45caZ+Rft7+KKsHowe+gdH9Zn2ewzFbRdeF52rZWYBAOir7d1B+838Zhk4Hz/0D1wEnmqvbGivcPAQotmzAACw0t7Kt72lb0dvN9x+afDeYli9xUOIZscCAMAVg80LX94+5Kdp8J8IH/oHfyrwqebPbQ8hmp4FAICrbezc1D72d1DWdfzQP3AReGpQVr8z2KzeGJ2qRWUBACBtfe+GdsiOh21ZPR0/+A9cBv6sXVZW1u9fi07XIrEAADCR9mmE7cfvg64+hKis/7L99cXxrXu/KDpXi8ACAMD1OX3fi9ov5DULwQejh34iLrVfaDy+Vf/t6FR1mQUAgKNZpIcQrd91LDpdXWMBAGBqqxv1N4wfQjSsHosf+ldH89o+4iFEz2UBAGBmTt5+/mXjhxCV1Yejh37iE4HHxg8hKuuvic5VNAsAALP3zEOIyuqP4od+8lOBXj+EyAIAQFZXHkI0rJ+IHvoHLgJl/f7xQ4hue9/nRedqniwAAMzF8Y2dm8cPIRpWH4se+gfH5YcQDS9+ZXSu5sECAMB8rd+/Nn4I0bC6ED/0D1wEevEQIgsAAGE6/xCiYXVxWR9CZAEAINyVhxCV9Sfjh/4Bsf+6luohRBYAALrjykOIqp3woX/gIlA9uSwPIbIAANA9i/EQonOL/BAiCwAAnVZs7Lx20OWHEA3rvxg/hGhj5+boXF0PCwAAi+FzDyH6UPTQPzDK6vHxQ4jK6pujUzUJCwAAi+Xs3o0eQjQ9CwAAC2v/LoOdfgjR/xvfZXBr9JLoXD2fBQCAhXflIUTtU/86MPivirJ+qF1UVs9UXx2dq2dYAABYHtu7g/FDiIb1H4cP/QMXgerprtxl0AIAwFJaiIcQtXcZvGN0KiI/FgAAltozDyEalPXHo4d+4lOBTw/ayxxv2/mSeebFAgBAPzzzEKKyHoUP/QOjeurKXQbn8OsBCwAA/dIM1+7fZbB+3/gug1sPHM+VBgsAAL012Bp9xfjj97J+qAND/6ooyuqv27sMrg0vfPHMj90CAEDvbe++cHyXwbK6P3roHxhl/dn2LoNrmxe/ZVaHbAEAgGes791w5S6Dnf31wOW7DN55bnWaQ7UAAMABVrcuvH7/LoMdfghRWd1yanjxC45yfBYAALiGU9u7Lx3fZWdTmPUAAAJ6SURBVLCsH4ge+gdGWT3e3u9gdfPi113PcVkAAGASd55b3b/LYPXu8KGf/FSgenf7Gid5CJEFAACu05W7DLZfzuvA4L9qESir+w57CJEFAACO6MTm6OXt7+Gbgftg9NA/MC4/hKgoR1/1/NduAQCAaW3vDsZ3GRxW94QP/QMXgasfQmQBAIAZGpSjb28G5H8b39o3evAfHNVga/TDFgAAyGBw5t4va+/i19mHEFkAACCjO0an2vv6j995d2BwWwAAYJ4W4yFEFgAAyKXYqF49aB9CNKwfjh7kFgAAmLdbz7+4GFY/UwzrD0YPdAsAAMzbsx9C1IHhbgEAgDlb3Rx9/fghRGX1aPSQtwAAwJydLO/+wvFDiIbVn0cPewsAAMzb+qgYP4SorP4weuhbAAAgQJceQhSdCwDonRNn6ldEP4QoOgcA0F/PPISorM5bAACgh9aGo28dlPXZZhl4cg4LwMPRxwsAPMtga/QVzSJwe7MIfDrjAlBFHycAcJDt3RcWw+otRVm/f9YLQFFWd0QfHgBwLc++y+BMHkJUPbW6tfO10YcFAExo9Uz11eO7DA7rR4787n9Y/WL0cQAAR3DTz9efP77LYFk/cJ0f/f9Be+VB9OsHAKaxftex1bJ6U/Ou/t2HfezfLAtvN/wBYMkcO7PzTe3H+4Oyri//iuCR9q+bv/cLfucPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALJL/D17o6UgSfAL2AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAAC3CAMAAACWu2QgAAAAP1BMVEVHcEwAAAAEBAQAAAAPDw8AAAAAAAAAAAAAAAAAAADQ0ND+/v7h4eG2trb9/f3y8vL29vZycnL6+vrp6en///+TDqovAAAAFHRSTlMAFBwfCRoOAgEEWfNzOeSiuS/QjRVX4FAAAAlQSURBVHja7Z3rcoQgDIWrohbX++77P2u9k0BUgqjbGdOZ/tv222w4wIGNPz9PPPHEE0888cQTjvEL4wG/Dvn3f7wBCJmq+H72fwlOIqP4RngaWo7xzewmuBR53ZafV9m+C/ml4AZzl+Si+qhoc5T572AnqKXM6g+OMheoaL6AHYOP2O3HjNcbot8NTlCLvPysRFVQFfN7d5GM2O9V7D7qAunMTUPV5C6q12cn2gyiXw7+S9SIREKygT6O0xvYDc2mhWQ9Sox+GTvmlutCsh6TxFyZdIp6Q0jWoyouLBiytHeEhC0xF6XbQkh2JeZkcII6tRSSfYk5LetkkTCEZF9iTppPbVckLoElxuMy5pe3InEJehVzAvbbKzaUGH959ywkzFWMx9I+LCRcifE0tdefM4NexRwC9yskvFXMgeX2CUJiJzF8VTew3xdhK4mB5cIEX7hPEpI9iXEAh7WdnigkWxKj1Qs73UX9uSfKBd0BXMrqc1+0BQ8c1smd3F3SC1AtDD2Rv9nn3qinarEpcwXevaa+GfxTMMHnufJ1N3gGU24PLm4HR6LIAG9vLxXBAV/mefG+mbsUUgAxt9DCcacj7q6VvEMAVW4J3r1IZLeSVz2CcAFP7pvxu7V5ljiBDy9KkuQm9DJPEpEo8JQFnvQRXL6q7de1QdD/b1fwnjxIgqB5X4ped9jdvz0K3kcc5pdtgaoiHv6nj4wHcdyhXzEdvd5NGMZB7AO85+7JozA7e5yWA3Ycz5XiBi6n0RlMGQ/DKDpVYso8jMIefEj4XOJOOr6AL+RRc5bEtFn318M54WpsuoET5NEpElP32JGW8LlSbMB/8FpF1UowgA/kUeRbYqoiUtxmwhngRMoReeRRYjohiXRulXDb1eEP2Ckb4Eu19OFJYkqIjfKNuJkbiYUc1vmC7kFiynz+Y1O6QYHrFW4JjlI+cQc454clps0g9sgdIG5HcCPlTYNzfkhiaoU9cxeBBi7twdHwlCjlXX67gaSjO0rMLCQAuxvw/aqQSDgbXAi4uF3WQBo5X2KUkCzc8yquzYGisMHNWoEaUmehjs6SmNLADmHFlbmACeeDpyrl+iFKa6JbSwwQkgVbG+PdBzIlXBwCp4q4zQ10K4kBQjJjU/77qyoOZ3ztEGVYgmroexJTm9irRdajszOuDn+2/ImXib4pMVBIZux2052QLqoycOc76lAVJnprISQj9p6QthxVQRNQYXNEZqATn35pYjcWB3mVK3htN3HvSQwWkogSkpVPVLjZzNJyTqQkZsnnq8p07Mj6IO90f5yQmKjI8neeG9QhZ8+dC1twrIUtaxY30q7HvpAYGUfD0x6cdeg2SUy4Rc30lV7qNoUt+FApNqpCSEwYhSR13HBvBLyd/fGcvzcIp1iSPAd/19FqC0SOPcF39ieJ0cPhRkDFtJlTZAg5XPgo80bHdthZVwXXgjP2+PwtTqfdzWAK9L/ijO9lvKqG7x2m2Dvst5sul5rK+t1H5fDSTlrxvtMp4+MG/8IDlTIP3fxxIuO9L3HRgUonS7GjP57S/jjeGJ52iEK6ni6qgsza5twDlW7qjQ6A6/54okysbk457UClExJoH1KuJ9fYT7BveMq9yXGDNHFT/nhqv1YRuj++GEHeJaY/RNmwmaWDzZwgm3lZ/HmVmDbDvqeRcOnqj5s593igMlsW0K9NAtI99OSPe5GYxbIIaX9cuG3d0Oypcu7rQKUXEsofTwLf/rhBfkRi8CEKzLeRcDdwNQtlbZvN6NHBAxV8iDJwN1U5rK48+ONofI4l3e0TtKS7SIx2iNJjjzuNbuM6ck+SIpwsOKFSDvYTZR5q5FyJ0Q9ROm6w06iLg8Y+8Mc1sNmKAOwMiQHe57JBarU3Rhj7vEvBw8uJUpitCMhuJTFASBZs4j23mVHjbPC1wVeb6LsSg7zPae+/sqctc+eM99w/W5qBrAgLiYHe51TaW5YF/P4eVw5l8bK1IpTEWByiWFoWlXTV8eJlsa4zxiklMXVmjsj9CSB3zfjbbiW9KzH7QuLPH08Z/njVbEkMGJHhhpDc448vEgMmpbyq6rp6m6XNmK5yFrjSwpIzGxpZJ31mnleQse+Pj+Cs9RMhMUZlc73P8agz5V5tkhl3xbdCHporEruP0dkf5y5ZlcQQwV67l4UT+GDBsV3tV7WCzt/otcWRC5MO+wS1ilGnEbmDy54cu/ieOJwltFmDTyMczjUO360d7zTx2as8G8LFIK8zF3/8l3BVmmu/Qevn/vi1N9+7LUrs7/74eMvzkm+JN6HuHjrXODBrT/9efqiuM3uwmYE9Hp3aCWHLH3e4P65SPrCfdKDS7zRC4I8nbuApdX98djybM7p9zOf9xvXaQ/fHE3ANezxQKb0KSRMB7njVPWS5tcAfD6Bv6LGjTbNj1x64Pw6uYSuH3FMPoRBiE9ewhQM4IJ/mIVUvXiSmzSNQJDO25tZKpne4Qa4K5pDEjJYFja3yLa27OChhEegi9oyOs964dyZDlv6CrV3CdgAHOZ/JjYIZUuYgMUBIEDZMt3LHU0YPh1+SfEk6znrE7r7XbGQb5du5acY6Ok47q99hiM99cLYnbC3fli1WNHISPdbQrTtM0iPSwHbor6K1zlDkM3pCo1tITJ3RySaxpWsrHtyOUZhpj5kSMwhJBLDjvWyzwW3QEz3r4abETIcoBvZMTWTbrRcf7JMlJcXOkRhdSGywvTX4kuoAkZLHcF1iCCGJCeoZ+1hnMroX3JJ0QY1TdaMFGhpASGC2sWrr2fbTxy5N98YpRu+X7NnSfzzakm062Z7bBk6b6BX0AGUdGLZhZMzsmo6sFInXXo1yQ2IQ+vRLw44pbHlaI1iyzy45KU3o8eIb9lvseGuOxLKdntKMFA9TfZwGWsmgWJsjxVR86UUdYOWWxCwzqgm9WSRX9txdLXZAG8TbI/LqFsdr6KDaIX+yJiTpHX2lNfYkMapdo96W7bNbkG9UTKIiWH5UXFvaVisBc6AasT3XXNRpf1sexTq1Vtl3PJSBKhjALkzmlRr5uTiops0Y3YgzFiSeVmByFV1+DfUWu0avQ3/RQ170FbvEMX7d+6ueTrMKL8DPdzzcxYodVo385sde0Q/qwg+8+tLndf3sPWXsmx/thp+b908fSPevwAn6//fMyP/6mMv/C/7EE0888cQTT3xX/AHXUgvk5YEHXgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGDUExURQAAAP+qAP+/AP+/AP/GAP+/AP+/AP+8AP+/AP/IAP+/AP+/AP/EAP+/AP+9AP/FAP+/AP+/AP/BAP/BAP/CAP++AP/BAP++AP/DAP+/AP+/AP/BAP/AAP+9AP/BAP/CAP+/AP/AAP/BAP/CAP/AAP++AP/AAP++AP++AP+/AP/AAP/BAP/BAP/BAP/AAP/BAP/AAP/AAP+/AP/AAP+/AP+/AP/BAP+/AP+/AP/AAP+/AP/BAP+/AP/BAP+/AP/AAP/AAP/BAP+/AP/BAP/AAP+/AP+/AP/AAP+/AP/BAP/AAP+/AP/AAP+/AP/AAP+/AP/AAP/AAP+/AP/BAP/AAP/AAP/AAP/AAP/BAP/AAP/AAP/AAP/AAP/AAP/AAP/BAP/AAP/AAP/BAP/AAP/BAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP+/AP/AAP/AAP/AAP/AAP/AAP/AAP/AACgzRDsAAACAdFJOUwADBAgJDBATFBcYHB4gIyMkKCktLi8xMzM0ODo9Pj4/QEVGR0lPUVJTVF1eX2JlZ2lqbG5zdHR4fH5/f4CHiImKi4yPkpOUlpeXmpudn6Kjo6eoqKqrrq+xs7W2ur7DxcbHyMnJy9HT1NXX2dvc3d7f4+fo6evv8vP09Pf4+/z+EEayDgAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAnJJREFUaEPt11dTVEEQhuFjQJEVcwJzDhhARVRUzLpmRMxZCSYkCK5gmJ9un9OvVJ3d2a2yZy+4mKdKtpv+6vPCqqk1iaIoiqJorin0TrpKo90N3EMVfPWp0W0kAvXS51FcRCbIB9p8XrYRCkGX388rq4nZUVXNm0PkzCiq6te1dSSN6Klh4DBRG1oCjN0r0OVFKshUM2U+ZML0UuZDJMwwZT5EAlHmQyIQZT4kAlHmQyIQZT4kAlHmQ2LWeFdrXV7pWfT+c3IBv68binGU39YRzeoGv6wnqjMz6ZvSdOkz638q9a/QyjyumfRJaRhiMZjy/Q3cMq2yF5lN+rUzh1NqQNaVIywmn7Qzh1PqmKzHmW2GtDOHkyil3+U+stg80s4cTuKybPuYjQ5oZw4n537vlO0Wi81z3/dZbs49lmX9BItNu1bmcXPuiCynmG1eN2llHkc3Ka/c4rcsNieozOPozsrcxmwzuFwby3D9vknmPhabM1pYjmufjFtKLCYja7WwHOf0fwI9zDYXta+CXt81JsnSgHfUuYmNFJbTc7dM7ToaFbWuUnYd3yDTk2w0mt6hdZWy800Zdv3JRqO72uaRnXfLcDWbrPZqm0d6fTYvSVZ9zYJGD2nzSM8d8tmZBa187zTkmj5DC19o0sb7TkPO5+RjvyaNvO805BnaLB+3iZq8WqJdXs7dl58t38iadGqVn/4DnSZqMrhMq/zc2PwkaXxP1qTKOw3XJT8OEjX5skabqpiRdzR5QNbkghZVk37h3TpN1qLqO40W+XOerMl17amleZisxY/ttNTQQdbkDiW1PCVrsoeSKIqiKIrmoCT5C37NbTSPzUosAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/矩形 51@3x.7c6e8e3b.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJASURBVHhe7dxLTgJBFIVhghtwie7MiVtwXcxMiArSpn5DkKZf9bj31vkmNAwq3f9JGDBgJyIiIiIiIiIistbh9eX59Hl8S2/DOB0/3tOlXUP88/fX9/ki0ghD/OGZzqfTOX1kz3V8RBjhLz4sjnAvPjyP8C8+LI3wKD48jjAaHxZGmBMfnkaYjI+WIyyJDw8jzI6PFiOsiQ/LIyyOj5ojbIkPiyOsjo9aI2y+0cTSCNme6XJOOrKsSCO4i48II7iND88juI8PjyOEiQ9PI4SLDw8jhI0PyyOEjw+LI3QTH5ZG6C4+LIzQbXy0HKH7+GgxguLfqDmC4o+oMYLiTyg5guLPVGIExV8o5wiKv1KucDl0Fx8WRug2PlqO0H18tBhB8W/UHEHxR9QYQfEnlBxB8WcqMYLiL5RzBMvx9+k1tv3TIV3JHEW+gmb8lC0XJeJDI0woGR8aYUSN+NAIN2rGh0ZIWsRH9yO0jI9uR7AQH92NkCv+cE62s3oZIWf8dGS+M6OPUCI+NMKEkvGhEUbUiA+NcKNmfGiEpEV8dD9Cy/jodgQL8dHdCJbio5sRLMZH+BEsx0fYETzER7gRPMVHmBE8xof7ETzHh9sRIsSHuxEixYerEX7/tnIjS/GRY4ShTTqurC0jWIyPLSNUi481I1iOjzUjVI+PJSN4iI8lIzSLjzkjeIqPOSM0j49HI3iMj0cjmImPeyN4jo97I5iLj+sRIsTH9Qhm42O4wUjxMTyT+fgiIiIiIiIiImLYbvcD3NXIsAVBIyMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAzUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMFRskAAAAQdFJOUwAQIDBAUGBwf4+fr7/P3+8FUYRsAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADAklEQVRoQ+2Z2XbcIAyGAwazL+//tBUuST0TCwlmctpz6u8meGLzg5DE9nFzc/MfIbbdxpRyKTnHYHfVf38PQvlSn/G6//dVxB5b7SlYvW1SCCmVtj41jbCL/tI6wkHtJdqtP38hTWwaTvbnNVr1JRqsnSY0if6wgDC51vit7Wc2DxKmP8yiwM7j6htNIi+Ntyk1sj7U0M/5TghoGGr7Zyw4VC9yEaGWvZcZKHDjKY/dck2k9c/AB2Xigw3MPxlCAqKCrSBydfMh6mthBh3Yf7b9B7GmXiLwNa/U3zoee3GImRquM5IVD7rU5TwM3kp+K9Ir2Qt630sohmdHjFRtLyGIUl+aDBXlq5ZIKsoQDhCq76VLJNUBS5kAPGnUBUdlRVIAomhQhShUCNACYtQFQ6Z1WgC6gEdbIOOEIaDxVoKPUvmQIQA2wlKZpoOMIQB2wObCQH/NEdhRG2XSQiwBgSUkxZgwOALQ0Oto3cdRfsAScIijOkaiZglYpCI6CpgCWCQkxrqDJSBr7qVHGE7EE8Dc6McFykWIt00MQX/zzOWPf0ngmX9jDDAvepubbkjOie8KNIWkfSyFnGEJGCRV4Hn8DywBj8w4ml5Y8gQwWzOmZJYAeCni76MFR4cjgC9+GIPAEcAn/cGC4xOGwMjSEdX+hCGgB1M7bSOGwGjxA+NP+BEtADuAQR2eWljQAuMdwHDt3SAFJLEDGG4fAOWIhOiJtQ90gc7ZA8hNINjgerJgEskxEpmMhQGwESenXVXXd8qqcFrn1g9DCu8YIiwOg0jV0+sSAF5cOq8I7INByIesrj7iJ0wLAz3bh3YOSi9KvthKTUTAPLKlqfrBIeCDCW8F/5xrEBAmDqTbMTdzfE+4yjz9baf0C+esMPeVWj3Z8Xa8P3PM/YCB5f/4DuW4ImGf0n+nHfLj103H5VShOznkuEO5um4SOrTLKfqKhKRfNwVnlGwyQkhlXEIupxY5rpt+05p9/I3mNds8o62LudVeSo7eqvWBJfixim9ublb5+PgFUj4lcaHRo+kAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAzUExURQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKMFRskAAAAQdFJOUwAQIDBAUGBwf4+fr7/P3+8FUYRsAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAC0klEQVRoQ+2Z23rbIAyAAwaDOb//007y2JqmESBwvl3M/01xagMSkhDicXNz8x8htt2GGFPOKQVvd1V/vwahXC6vOF3/u4rYA/YevdXbJoWQUmnrIo7hd1Ffmkcc0HsOdqvPf5Em4BiHrM9zYPc5GGqexuMQ9WECYVIp4cfcn9kcDGHqAxcFem53j+AQaWq9TS5h6EMNcvKFEDAxUvevWDCo2hxF+JL32h5AgRmzLHZLJXa1/wx8kBkfbKB+pgsJ8IrhEUQqB99FXcmDTgf6587/JJRYWx1cSTP9o+ChNpsY1nI9I4f8QecyHYfBWrvfirgSvUD62iIxY3qkiMXWFoHIZWkzVD1bteyg8oIvrrbeIhcFOC2pJcKxKgB6UaMLkWdd4AvREsGsC4Ai0N7m533sC03PEmx0LQk5AR1RoUyvOdkffKH2Qt9zwzF2UkfpCg2hjoiApEY3jB6J8Na97eXjHIShHiuB+hlLdHSJFyCUJ8TxvKONLKm2vnOREdFm9PEB8hsXx0NMh/rmM29//EcDTPHxNaCs6DIz3YiYE65yNEWEfSqEsDFEqKDjOBNH7Di6n1iOQen6mi35tFLC3lsJBwM6+bloEehNv5FwMGhpOpBjM9CNrf0SHbWSH1j/ZTuCE0CjD7eeWLRPAM3cewjZOQE0jw8juE7uAyIsxezuIRCSpvebxSChmz+LtOILcBDvuqoq8wdNlUdmd8wXQ/JYdusnl0HE4oZiGbw4dZTyw4VBiIcTibxjqBYWmisD1kEZScmWS2TFjC2y+geDgA8Y1gr2yZsQ4BkFaSxz8/fCowxWf7FKP1Fnhb0vl+K6gmN5n1Pm/oaB9L99h3JekQxX6X+CRX76uum8nMp9IZucdyjvrpuE9ng51b8i6VKvm/xhlMRhhJDKHJG4nJrkvG76DU77/BvMmm5e0fYICXvPOQVn1fzCdvhYxzc3N7M8Hr8AYE8hUQJ9X+MAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGDUExURQAAAP+qAP+/AP+/AP/GAP+/AP+/AP+8AP+/AP/IAP+/AP+/AP/EAP+/AP+9AP/FAP+/AP+/AP/BAP/BAP/CAP++AP/BAP++AP/DAP+/AP+/AP/BAP/AAP+9AP/BAP/CAP+/AP/AAP/BAP/CAP/AAP++AP/AAP++AP++AP+/AP/AAP/BAP/BAP/BAP/AAP/BAP/AAP/AAP+/AP/AAP+/AP+/AP/BAP+/AP+/AP/AAP+/AP/BAP+/AP/BAP+/AP/AAP/AAP/BAP+/AP/BAP/AAP+/AP+/AP/AAP+/AP/BAP/AAP+/AP/AAP+/AP/AAP+/AP/AAP/AAP+/AP/BAP/AAP/AAP/AAP/AAP/BAP/AAP/AAP/AAP/AAP/AAP/AAP/BAP/AAP/AAP/BAP/AAP/BAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP/AAP+/AP/AAP/AAP/AAP/AAP/AAP/AAP/AACgzRDsAAACAdFJOUwADBAgJDBATFBcYHB4gIyMkKCktLi8xMzM0ODo9Pj4/QEVGR0lPUVJTVF1eX2JlZ2lqbG5zdHR4fH5/f4CHiImKi4yPkpOUlpeXmpudn6Kjo6eoqKqrrq+xs7W2ur7DxcbHyMnJy9HT1NXX2dvc3d7f4+fo6evv8vP09Pf4+/z+EEayDgAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAnJJREFUaEPt11dTVEEQhuFjQJEVcwJzDhhARVRUzLpmRMxZCSYkCK5gmJ9un9OvVJ3d2a2yZy+4mKdKtpv+6vPCqqk1iaIoiqJorin0TrpKo90N3EMVfPWp0W0kAvXS51FcRCbIB9p8XrYRCkGX388rq4nZUVXNm0PkzCiq6te1dSSN6Klh4DBRG1oCjN0r0OVFKshUM2U+ZML0UuZDJMwwZT5EAlHmQyIQZT4kAlHmQyIQZT4kAlHmQ2LWeFdrXV7pWfT+c3IBv68binGU39YRzeoGv6wnqjMz6ZvSdOkz638q9a/QyjyumfRJaRhiMZjy/Q3cMq2yF5lN+rUzh1NqQNaVIywmn7Qzh1PqmKzHmW2GtDOHkyil3+U+stg80s4cTuKybPuYjQ5oZw4n537vlO0Wi81z3/dZbs49lmX9BItNu1bmcXPuiCynmG1eN2llHkc3Ka/c4rcsNieozOPozsrcxmwzuFwby3D9vknmPhabM1pYjmufjFtKLCYja7WwHOf0fwI9zDYXta+CXt81JsnSgHfUuYmNFJbTc7dM7ToaFbWuUnYd3yDTk2w0mt6hdZWy800Zdv3JRqO72uaRnXfLcDWbrPZqm0d6fTYvSVZ9zYJGD2nzSM8d8tmZBa187zTkmj5DC19o0sb7TkPO5+RjvyaNvO805BnaLB+3iZq8WqJdXs7dl58t38iadGqVn/4DnSZqMrhMq/zc2PwkaXxP1qTKOw3XJT8OEjX5skabqpiRdzR5QNbkghZVk37h3TpN1qLqO40W+XOerMl17amleZisxY/ttNTQQdbkDiW1PCVrsoeSKIqiKIrmoCT5C37NbTSPzUosAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABBCAYAAABhNaJ7AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAkFJREFUeNrsW9FxgzAMNb3+wwbNBqUb0AmSDUImaEZIN8gGJRvQCZJukGwQNjATUPtO3PmocyYUCxFLd/pIMMZ6lp4kk0RN04iQ5UkELgwAA8AAMAAMAAPAADAAmJIrLZVKpQ2ohO9y7MVEiKVwprRQ+uIYVwEQp0fyAG3QsYfxAsYcsbwBwwMyMGiIvPv2BAwArpadr5XuDeM0SFulsSUcFl5XpwHwqHnzV85KE8vYBK51Jfe5Rt8csLLsfAas3xUJ12rHHLMiwWXn8/6G8SYIe8ccs64DTiON4UpwrgCkI42ZTRYoO4wub2QAMxPIzj3lnLNA2fkcQ4wnlrEJXIsdczxMIbRTejbcfjdFIRR8KYxBgtqAzYD7NhgpESsLFLCbVY+xFYwtHu08wGyNV5YK7xsIr8BcTDThu8Hug6NQjsSCrgQZAAaAAWAAGAAGgJA8Izwjg+rP1dX5qPv1GeMWOtJJKkF9wPkx8SbXUHqfMD0ggZp+ScDLY+xeoD3ZeSUU6hEWCaYQb5SM32BlgVzYz/SmjP03V3s9FgCaab8IGX+B7HPGSIMa4TUhl/8B1pe+6wCKZHcQd/6wYmgIpOBe1Mguv/emIR6gY6skRna5GPgC5V4P0A86EjK+MjbEey9Ajexappf/maSPBySAMCXjD2MY3weABTD9kpDxnxCKcozJXL2AJBTvLdMXWOcBKTGm71XZjRkCKRHjL0bdITABKMDl6gl3vSW7q7c+mf83GLgwAAwAA8AAMAAMQMDyK8AA2/0YreciRiEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAe9JREFUeNrsmj1Ow0AQhW2UDiTgBHAD3NPYJyCcAHKDIFFQ5iaBjg44AaGngJ6CSPTYRWozI40lF7sWsTOe/ZmRXhPLyc7n3Tez66R1XScxx14SeSgABaAAFEDUMfFsvHmPez5ApfUq9gEeaAoq636B981t35160gh9g04G3F+BjkwXfAGwi0GmaoIBASjoidpUaBkMtAx2lcbuchfgDEBXfwa9kn779Am+zoAD0Ap0Zmh6ogDwCNo3fB7NEjAlP4vVBLHLuyY/iA7ABnRLU79tgNm/20PHW2F0+nvQBVcrPHE8eZPTj9YK51RWagG9g352mPy6zxIYugV1Jd5AC5pNWwFwyRwGOb3vVaBqLUfRzdAN0yCwrb0DnRuufVLyJRfdbZZAYVtHjE5/zJm8dCuckdF2OX3JPQgpAFN68ofSBiMBAN38yZD8JgYA2NYuLU4/DxlAc3pzZXH6U9BXqAAapzdtaF64y5w0gC6nfyAzFEueG0CX08/IDMWDC4DN6dHsLskMnQiuvcBy7J7e9SrQOL1TyXMByF1z+rGXABpf2gKxShwOzvMApxN3YTeoABSAAlAACkABKAAFIBquvxpLdQYIAqiEx7aWBrAQhFDR74t6AAae6GYCAHr965MDgJZBBaAAFIACUAABx58AAwCbAVpDXsyj5gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAATRJREFUeNrs28EJwjAYhuFUPAr14M1LDw7QDXQER3AEN9ARHEE3qRvoUfDgwQEUPHgQ6h/soRYaYg3aNu8PHzQUDH1IU21ikKap8rkCAAAAAAAAACitWNKX7CQX3wCWkkV2fJVEbUToGM5NcsdhNhqUTwBeFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgT5mWxhLJONfeSE4V+tDLaWtV02U1E8BZMnTUT23XFk23QOiwH/1Z06bNAXfHfUV1BOgazh0kg1x7/+EQjh2Pop8DPArteTYx2lZxEuUxCAAAAAAAAAAAAAAAAM14H9CI7/IWpX/EzdRrw7eXALq26n3vM7eADcCqRdeZVJkDdOk/S3yzTX4k6UmOktufLv5Sdv/bAHj9FAAAAAAAAKDt9RRgADR4Xp7HlcyFAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAATFJREFUeNrs2j0OgjAYxnFrHBh1YzBx4CLsHsAD6AE4AHfQA3gNb+AF2I2ro45O1rcJix9gSOwH9P8mz8RA+6MptFRprUcx13gUeQEAAABx1+TH9b1kKUkctqmSlJKji5uplteg6fza04O5SWa+AS6S1OPoVL7ngIQ54HNYVpbaMZdkoQOYzueW2lFItrwGAQAAAAAAAACAvgOs6nWE7pBvH0H6D3lITpKFS4Cd50XU+4Iqq9vkDCANcKTnzAEAAAAAAAAAAAAAALxWl11hs3VdDA2g7c/QVTIdSD8bf7UxB7Rcq2IHKOuhM+hSFk6JaeYAvgMAAAAAAAAAAAAAAAAAAAAAACA2gBA3RO4uAc4BAhyaLtjYEjMHksyZnDyQJ286v3EJwCQIAAAAANCXegowABapTjYQcy+JAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABACAYAAABFqxrgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVNJREFUeNrs29ENgjAQgOFiHMANZAPcQEZwBDfQDYQRnEBHYATcACfQEXQCLKEx2PhiWnqN/JfcgzEifKXXlpSkbVs19ZgpAgQQQADhI+aOv891bnWmAufe6Cx0PlwPlDgMkd3Fn4Qb8WkaopFA6Fr+FsndfDEQwWvCPqIuvda5kqgJ9p9edVYBL/zwpTY1oRHsqEyRChUbndng82KKQ+TD58GYJ4AAAggggDDePGHrOnX9MbIYEZYmpSKlO4DwfrYg3h265Ww98iKptGrQ0tc02hdCPcICykYorFWjtxrEEAkCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAEL8CIvA553GgGBvitjpbD2nHcPv7L0JjQRCFdkdXUsgnFX/jkMMUSrH7TouNSFX/V4lyTgqD9uEEg/vSq8ECmMXd5MqBgSGSBD+JF4CDAAOhki/8uEFMAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWVJREFUeNrs29ENgjAQxvHiAq7gCG4gIziCIziCjuIGjsAIugFuoBNgCSXhwcgV6PXu4y5pSNCX/y8FfMCiaRq35tm4lY8BGIABGIABGADGlH5dwpE8BcAPob1flV/bwbmXX0e/HugAv+L7+YTPa9RL4F+8C+fPqPeAsfjh9+AAqPGQT4HY+DvSTTA2/hkeiW+EHZAkXgtAsngNAEnjpQMkj5cMwBIvFYAtXiIAa7w0APZ4SQBZ4qUAZIuXAJA1PjdA9vicACLicwGIic8BICqeG0BcPCeAyHguALHxHACi41MDiI9PCaAiPhWAmvgUAKrilwZQF78kgMr4pQDUxi8BoDp+LoD6+DkAEPFTAWDipwBAxccCwMXHAEDGUwFg49sZe0Vm57qXDSHjKTvghBxPASiR4ykANXI8BaBCjqfcBHuEA2I89THYRl5d9/a1C8cbQjx1B0CP/WXGAAzAAAxgzfMVYAD5Z5+Hvv21bgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABACAYAAABFqxrgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAoNJREFUeNrsW0tuwjAQhar7Ztld0hM0NyA3oEegJyg3KDcovUF6gsIJGm6Q7isVdl0aqfvUlgaJWoEknok/YUYaCeTITh4zb94Ee1xV1ejS7WrExiAwCAwCg/DPrh2t+wCewPet9BW4dRs7KJHqQacnxtYAzqDTYXEGgBGMLYYeCSrs44Zrdkdp4l0kRNKX8CCVocct1okR8ysvpc/6iIRUeiH9JiDS/5SeSRcUIETw64cEQCeibZMOs0ABOBBtI7+00Ql1SL5Jz5E3eAuu7Acca4qz7mvuf0ktltZdiceiZUCMsZbO5Dqh9Dj8BfAX9w42QEg9fp7IRGiZcMIUSDE/QXI27Uv6r0aMcU2KoHXCXPpLwNF+18QTbdIhBz0for22Ico2IAiotaEBsW7bkXbpIiNIDVWLJ54++A5K+KqTmFMgGLpuc8RcJr7S1i9M56LUCbZFFNl6fYulpKFuY8e9B0Hl5Dd43sO4Ltq2xneKyMlSy8lFA2dEyHF9/aJhfSucIDpenyLHg0yHQTdQ53SETZtQVQsMCKVn3aVwAYLgdHD/3sBLEBKLIKSUChIDQqF9jy+RE7hEOrbEFxCEQ9Wng7BxBULpgWBi2XzpIKSUwg0Lgv7yNXMklkqXIGw5HZgTnLbTE8qIxILgSzvtFARBeK0YIifstc8lcry3lKMGIdHK5Rq8rnSajpO20cqwO1rVzX3oc/YcveRrcokMFITENxDEiXC12TdssBNiD33UEZLaG7DssWd4op6U4uSLaqKO3y+qLcDPFtMD/Rc9xXkHtZXn3RE/7IEjnLbSh/B/dARARqE0KU++qF9kbql/OOxJIpHaYz4rzWKJQWAQjuxPgAEA6NxPwD5ZWTwAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA/ZJREFUeNrsW+1xozAQVW7yP6QCcxWEq8B0YF8HXAVHB3YHdjogHXAVnNwB6QB3ICrwocljbkeDhGSEDWPtzI6dBEe7T/sprZ8ulwt7ZPrGHpwCAI8OwPMN10pajiyfFS1XSwQghqIJUXg98n+eCCAd174EfhqZBaTC25ZT8MuNrKlpmYPLMYBcA4Dc1Qz8NhNX/my5AAunT0oALDluubjMnwrIaqWXjQXIHd+3/NvRRDtfpcyU930uFSvvYxJbXFzsHXKLMS6QwMdWA4udiU9yRcHUMROoGYArAKWEbeTamjKKCQDp40cD6meAU2CBBEIlEHTt2c9PALYCKN2aGZRcGawxh5zWMSBpWWh8rG45I88VhmenJIG1E8iSQTbds0mfrjoAKs0/yfH3qOVyRoGvhEwMMvZtSGULwHYAwUgD0L2pIiDoLHir6vusCXwq0UByHMj/DfFTGtC4Y62RKIEzHcgEb5Atw5pS5r+aoG6MAXzAdLhmB/Y6P/PMCdbqI648K3pcZdAC+nJzRPKpLq/usEt8gpqd9hipIcMIxYpUa6muaYZeiGkxpJON5tl1j3BnAkRlUapS848tcj0lmuqO15bC3CLSZndKfaaUmFlkqL2qr8uByAY72RUVcpc+ZtAIfUCWArLVBgsdfSIk3eGARTLU2q8t/4Ignzfq/D6w5itkyCDTwbUlv/ZAZIWgtyOt6JEEmZQ0MZGSWiNDGv1UYkQXM7oGipN01gXcUS25DQAni/x76KkBKtIcjaGU1AF7h66wAXirsQBwFBU5+GXARdaaNKXuLi2S1C4xGrGzDazxaNPJ2rqAAPpdOswd0xPTKLTxGBvOkM/pVMg1CAosIn37Bw4dbhH4TAHxHbLEkE3cIgh2ASpXKrWUVGy+D0gbUmFyX5Wmr2PxLkqXPRUdPeZyPRGqySGImMKEprwYER4ygG9KxsaApVP06ACwAEAAIAAQAAgABAACAAGAAEAAIAAQALAFIF6wfrUPAJIFAxBfAwBXfpaHmelClVdPpysbAMqe3+0XCEBusbnaEZna5mJxxpxqLlCtZ4S2mtvVfAHK68Zj9i4AMMMVc0GuyefGmcuA1BAApmEoOio3B44Ncw3CNLpjY061YTChhlvcyyK2A+N6YmhuyXZWmLPhy8oTMghn033ZIWb/x2Tlha3p9qnBc0ZZXMblZSrcOQjbjbZSZsw8LK3OEqTk1eW67Q/7usQdvE1y/b6A3IGC+Z8D9kVn5P9yqmaoxm58Z19jKs1MFJfW9hMbVLp8cOxXZiLij/J1dWOlS3aHr8zYBKnudcykBw1m3VU4vR73Qr4BMJFrQzXZlfi9AAgnQgGAAMD86J8AAwAxI2ZN9xUNagAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+tpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMi1jMDAwIDc5LjU2NmViYzViNCwgMjAyMi8wNS8wOS0wODoyNTo1NSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjMuNCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTA4LTAzVDA4OjU2OjM0KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wOC0wM1QwOTowODowMiswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wOC0wM1QwOTowODowMiswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Qjk0NDU1NkUxMkM4MTFFREE5OUZFN0MzQThGQzU0N0UiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Qjk0NDU1NkYxMkM4MTFFREE5OUZFN0MzQThGQzU0N0UiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCOTQ0NTU2QzEyQzgxMUVEQTk5RkU3QzNBOEZDNTQ3RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCOTQ0NTU2RDEyQzgxMUVEQTk5RkU3QzNBOEZDNTQ3RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PovTfn4AAAm7SURBVHja7J1pbFRVFMdvKWVzoZKqBCKMGjQK2EZR4wKO4oKKpkT44IY1cUtMdHCDDyYlFleiVWNiogJuGAIxqGA0Ei0mmhqjLXUhxMgmEQQpUwRkp96TOQ3jcGfm3e31zZv/LznRkHmvb/nPOeeee+4dIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyrwCABEBUpSVBUQG7ChD7wYcE0VxAOQUwEIEYAggnImqj54nvA6AEB4IPKCQf0KwGuBmCXhAOgIz/ugDaPC8gxx3XhMAE4EhEYlHgFAPC5zqqUlsmwk/1u2dSlso7QN0lqlncAhZ4+0vdKOQFjlKaSktFpp9Symastz7mRRpaV9L20Bi65T2r5yFlrcISE1Smvnl98dgpHQ1kl7RtoIaYOk9cWriJeYunvZDrEHmyXtDCThpSuolgiIKZ/tl7aUQ3EVXldpCKo9woLKtd3SFkq7lMMkiFgiXl9iglLlYkukXSbtXLzS3hcU5U/rS1hQuXaQ7+dyaf3wihHyXNsBae9IG82jSEzJhOClmmMsqFzbJu1JaadDXP5oCLH+FCU7LO13abeITHU/8pRK5b2Oc6n6EP5Wh7Q2aT9L+42Lm39J28Uvmarn/aWdKDLTPtdyyWBaCNdGFfz3pD3BuRiwDHu+vRSJaK60iRYJ88ks/E9CqH/dJVC9txLVUs8v6Ttpj0ob5vC6yZvdw+f2dd3kNVew1wSaIz6fJYRN0pocCyoXOved0v7weB+bpU0S6FIJRKNl6EsXEeVH0iaHeD8XSPvUs+d9ETUvv6GvpcjI8SlpZ/bCvZ0q7XXP4mpBaHQf+trF0Z6qfKK6Q9rAXrxHKhO8UCBnchXiE5CTfW2KjkuJox2e+Tze1IgUFymxfzmPsHY5EhjNOV5S7qJKWYiqJefb2VjAU0Wp72mwtMWK69zL99TpSGD15SqqRgsv1aDIz1QCbWIvETXOkfaL4nqXS3uA//uPA4Glyi1JX2CRSyUCivQHTppd5EbUxjLc8ciLShH7xLEdpg9LGyXtQa6F7bcUVzNGfsUfkGqxQ76EfaLhNVZyTraIw9JW/u9h/v9WHuFdJ+w6P6n2tCRPSCSPNkDaWGnPcr3qCMTlVlTpIi5d5f3mCbMpD7rGz0WwyvcBzpVqhfn0yvksWlWtrSeEUwlhCudfey0E1gxR/T/01RU5r6pMMc7gGqcYDiQofM2Wdorhs3lDcU4KkaOzPkOe8TwWxxaIy05US0XxdX71eY7T9SDjpa21zGWWcwjThfK3HYrzzckZzVaweO+T9iuHZhOBNZazqIJ+s1Tn1p2uoTm9DkcFSgqjQw2ek6r8sFpajeKzVOS9RtoXiuS/LEaLpqJKaZxfFbpqNBP1RcLt1EqTQd1smuI820Wma1RFFacIb4nMMv8j5SIuE1Gp6lOFqFOcY7Hmdd4g/MzbXax5HbTsa4Miz6ouMqqkldU0/7nNUFwNpSasBQai0q0UNyjO87jG8ZSHtXkS1iKDUsRCxXmuCnAcNRg+xDlirMXVHIKo8hVFb9I4vlb47TY4OytsBZn8fsQiXFFJ4lbOFWMprpSBqOoM/5Yq1I7VOP5pz8K6PcszBmnEu9FyBDeQi7atPGKMjbjqQ/JUPajqVzojshWehTUvJx8qxpg8pRMdyDteKe0rQ3FFbuK6WugtHk07uAmVsAZoHL/Vs7DWaN5PjQNh9YhrHOd5uuWI9aUcAtOOvhkqYekURg97FtZBA0GoZh5M6MP1ORrM7O6NkOiq+e2KgJ+jmsvdIjMX5gOdRQXbPX/ZNjg4R5fhcZTAb+bR+XMi0yGhM6iJjLCCJuBvexQVMVjjs+s8C2uNg2vvsryGThbXayIzpxmERJSEFfTbmRLu5qpUD10neV/lWVhrNT8/1IOwKLT9KTJtz30tnmuvCUvnJc02TEpzWan4t5Eax7dmPXwftGl+fqSnl9zIzzwoX0cpeU8Is5512weWe84ZGsefJo5W3l0n8m18fh1mCLfzeSadumlhv3O0c0y2Fmq3iOmqutl8zXPM9DQinGlwP/MV50laiMpnA0DomHaI1hk+vNxzUUjWWTxBfezLHItqGZ9Xh/587bnPxXQgZbIhXeSbAE0XSpjUtlS1rEma56BtiFz1Y3Xw+YTBNbhIFZLCrAu2ZDpLTXfcSzn4O3MNrneqA3F18HlMmCPsOz1TcRdVoeTadevsWYrjqW13hKHXMA2Lyww9leAywDeKcwbNPW2W05VsD3zS8IZbAo5OaN3gHsXxjxmWWoZz4h20T6uNPz/c4hldKMznCE3zqVj0vpuKK8icYo1QL4L4VpivmukpRUwXmfWDVO/aKo5dVzida0808W26hP84oW7wC5JvNhiGPt1O3UhTJ8z3aCjkrmni9iWhXpKV9HxPlcK+wHyvUHcYVHsoJbhsAIicuEy3Kiq0vpB+KmSn4pifhNmKmbC4WmTmK3UGMA3Cbmee2G4Uotu3lWvvcvjL9hQ0eftmns8/n1XXitJ2ikOkfaBRYrDdlM6mEF024trPw/NBWUk4tfVuF/n3xurHwoqCuGgUOFujUGzjpYIu/I0Vtr8usZqH+MfzqGyJyD/nNzlCwpoUcJSWtPRSxfa8iDUNwr7a/aHI/KARNRB2Fvjc9REQ1oQCoao6S1C2e9vHOp/SSeptQiN5Keo5ol9s+FIU7lS4TfTO7sIVPMgoJKo64ebHEsoinwozNFI77t8BXkyTcLMhW1Bo8HB/Ac+SdCSo7P1YgYfQGGTBJu32N1H4/clc8lJj+G8V8i4ufs6lHaEv2KjxfeF3BU322j9a5DnMsaDII74a0j00w0vpDcmppHAopJfzo8h0RdCIbYDhNVPuRvtjvRLSNcNLGUJLxmlV75aQXlR2syB1c87g+tgYLsr2zSpZVLCQaD5yPIsyrOtLw0vZQ/NxozhkmW7VEydrEeZ7XQAFg9gzUFfBphBDZJQElYQM/IZH+sbOEpkN+PfFXFDrUUIIl5N4JHezyEzm7ohZmERNKiJejOYMP4uBB2uBoKIFdThcJDIbYNC+V50l5MHSSMqjTRWXAagsQD+rRj/6/W/E8yfqaEjg1ZUWQ7j+pLM4IoyiZjOP8GId7ipK5Bq7HXgzysWoL4u2yp4QUuihTT1WSvuYC6+ryuVbXe6/fk5TIrXsQRKWYYlEtIFtVZaYypJyF5aKBHuznlDVs71QdujaqBBTl3C0txQAAAAAAPI9AAAAAAAAAABaVOIRAAAAAAAAAAAAQB9MKAPn9MMjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFjxnwADAEDzanKW0aotAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAAFKCAMAAABM9+Y3AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA2UExURQAAAAAAAP8AAAAAAP8AAMwAAAAAAKoAAP8AAE8AAOsAAJEAAMwAAAAAAEAAAH8AAL8AAP8AAFf4XloAAAANdFJOUwBAQH9/n7+/v8/P3+/4ZaojAAAACXBIWXMAADLAAAAywAEoZFrbAAAK8ElEQVR4Xu2da2PjKAxF66abdh9tJ///zy4JSmIwoAvIj9j3fNmOjY04lsA7oZM3QgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghr8X5JD+QTs7f33RpgjP5Q5cWXE1e/tBlPzeTl8svXfYiJumym4dJuuzEmfwVk3TZRWCSLjuITNJlMxOTdNlIwiRdNpE0SZcNZEzSZTVZk1eXgzQiAAWTl8unNCIARZOXy4c0IyqKSbqEUU3SJQhgki4hIJOXi7QmeUCT79KcZKFJK2jSCmfyj9gqQZMqNGkFTVpBk1ZgJr9oUgU0Ka1JHpq0giatoEkrzt8/NGmCMym2StCkDk1aQZNWYCb5l+Y6NGnF0U0Og9X2iEOaHIbT2fE9wv3x5OjQejCTN4ciL4dT2iL0DH34sA+Tw6BJHOOEynUYhzFZp/EBrvMgJts0Cmeo2g9hssujoCbnAUxaePQUbe7epJ1HT1bm3k2ejEVeSafmvk1aJ+STqcxdm5xP5JVoQd+zyTkqe0SUljs2eZIRz8VhTM4t8jAmZxfZZvL1NrPML/IgJhcQeQyT877+CEcwuYjIQ5hcorYTJoHNLC9mcpmUPIDJhUQewOQytX0Ak0ulZJPJl9oWtFRK7t6kQUr6XQTDMFz3EuQ/Ht+7yc6UdBITHyQ6oXJ+xM5N9qXkubRLaIge0s5N9qRk0aNnbDM2iWwLOobJM7I/wHGSPlpM/iONt09HcaMir9xktph8nX/Htz0la/enuWVdfhJAk5MnsFGaU7ImI9NAJn99b92dzU57cfePrcbk9hMTKu7TID+MMBhYncmtu0RMujqWn0asYNKx4SIHivs6IU6a9c+STSa3m5jINHl1Nknds7++izPy4UNscqsugeK+BT5pZzGcRpPbdKmblDKWPz1Y1aRNSdiimxRl8SywsknHxhYfdZq8ryyx8vVNbqvI9QXnEa38+c4WTG7JZeKNO+T5shMl5Yprd8BWXKrT5DPQuKnBNAWZ/JT+smzDpWZy/P4th+4YDAAy+QFEKfdbEy3Gsa6o7YIm9TjXX8i1CIMA5ZgAJMLo13CTv22LmwRm9JVdKiZDW1FjLXSnUVo+iC6pMenQHvuqE6YSXBSbHBWUwFMvWNEllSY37VJ5nYxyKBqIHE2TfFNtMRluC9JegFdzWY5r8jdnYfNi1Mk7t5j8iYOoq6OlKJucBBVN+3I0RXqBaDI5Xdu26LLSZDSGQsjpwbaZTDyy7bksm0ysznJGkIMJbE0mIlHeihZ3WTQ5mSYdaFKmbxybBLYFeZPJt9fagpqVsklpFBCqlINTrE2mX1/LRb6oy6LJdCRy0pMNFqvuGpNJldtx2WAynKCSw3OYmfzzMJn5/9PyhLmYywaTYH3L6ZAWk3LpDbkuovy2vpDLYnHkYggChxrdaTD5JZd6ciWwvssmk2G+ZQaXvHOLydBSusIda7ssmswlQDQ1ycEYORvQZDLsLquycSxWNPYeXJZ54KlbR03/xkxiT86xpstS36kX8zuISjk7JjYptkr4beZB7aJxxczqsmhS2iSRNp50iIl7N5uEVbaPqJPSy1i5X2nkkWMR00G1mwxvlqkCzzouSyaL4YYqMwHK2ScdJtF158oqLuX+KRSTwcjSbScjajD5/PChQmXRpTKuVgqvYVqPQL3FA+oyCc0oDzqqrY3Cw1PrAFAZPahOk+Ht5FiWhfOyx2R4cXpBlZNCr0l8Cb9Rcmn+SlQoAmBu1lWG9+82WamyL1EqyfeFdKWXW2lh+ldslYhMInUQUHBpXOL5pIQeWp1KA5PVKjtzpYJsR1g/uspRBxYm61UWXEKXw8hNJ4BPrCYrTUw2qOxNFxS56QQ5rVGh0sZki8qsS1OVuakSTX1cpZHJJpVZl3LahIxKeBIJVCavkh4aTH5K25AmlWGcT+SsCb1ZCQzsdqrB5G90jfBqWQkHCQzsmhAtJuOLBH1KmZIzuYxK0GVwfVZlk8nM7aQvjxxTyJq0XcEzk4gjnRQRgcp0ZEOjyYwn35Ugx8pkTWJDhMmrhDpCVDaazHTvu/JAWZU3ic5iIPkKx1xKU48cK4KYvG1mSfceiEECLJg0nSodhbREQq1dBWCTmZvVquwcXhWltAQ6C0LVCwY3mem6sr+SSeukLFeA7jK4Wp27cJO5cfqTghzLUkwT45nyRvHJaS6BdedJhclMv6EcOZijbFKvuAaKLjU90sxTftD/ia0SYjJnqaYIiuU2j0nFpdIpPnnVmMz1GfRWDmwVk10ug0tLeVJjMlu6ctpTfHA96dFF+yMMJ6T86KpM5m4ThikHUyi/qDejSc1lKdukiScbI2Dyuc08exc57yn4KC8485rUXBbSDapwxKTcojDSMMa8EGUsM5ts7x+pcBuTUYhycMraJtsjkPOeZFoamcTqexO/z9zoMgw9kZZWJsP4Mg2VaXIZk6rLTBhh8JO0fK8ymZ+To6TM1Lc2hNL9TWlzWUzLd7FV4mGytOsdSkqluJczqbtMjjVMy3CMNSaLIpGk1Ipb6cAYzWUyG8a50GxSG6eelGoeSLul0J5sahCja+pN+n9VTU2YyJMcHaGt3IubdGghJWTKiUaTZ6TwpANhGkJTOc1OfVT3K+pN/gVOX1FM8VVqSq5jEnA5CcyPpN5kcltQgiiiuPv6gBejOrTbbDmfyXgCl8OCnpJLvgTF6C4jcW4085mMJsqoJz3WZV+CYtSFPBpQvAfjQ2yVgE3GWSeHbwApucLSHaKHGNgLH7ypyTjtxt1Wl88qAFHmwlzKJFA7WzDZ4XJWk8/yBmp71QVnDOIyIXNekw83iMjVp8kniMxzJHPWFefx5Bof84ogEYcBW5qclrD0BdX2Vor7jj6zz2hSenjiCxYTue7bZBIlMeczmej4ehgTua3ivlN0OZvJlDGXZ6DIrRX3nUKRz2Yy9fwGWOQGi/tOLjHnMplUNqAit1ncd9Iu601CX82fVpb/GvGIDaekJyFzHpNw7mXYdEp6Ji7nMJn4UoQ6Np+SnlBmvcmf+FuBY3oT8iVS0jN22WDSX5cZ7QDPhXleJCU9D5mhkC+xVeKxfdIN+XQanl9hP/rGmD5eJiU94rLL5BMTg8JLpaTnKtPIpCUvlpKe0wZNbugvJjsATD43/c3DC9Z2ig2Y3IfIDZh8yUkyweomd1Lb65vcjcj3lU3uRiS0LWhGk/sRubLJHYlc1+SeREIm/TZze3Ylck2TiW8bfmVWM7mvhHSsZXJ3IlcyuT+P2IcP1iah3+15ORCTn2LAhn16xEx+vL2dwo8n29mrR9jkFQOb5+eHabujwuSNU/sWgf2m441akzfqdTqLu9boaDJ5Y3A+IaHn82n3Gh3tJu84o7kUPYhDT7/JEYPDeb3+5zgG75iaPDQ0aQVNWkGTViAmoW3mh4cmraBJK2jSCpq0AtjMQpMQNGkFTVoBmPyiSQTEpDQlRWjSCpq0giatoEkjkG1BNIlAk1bQpBU0aQVikh8+INCkFTRpBU1aQZNWIB8+0CQCTVpBk1bQpBU0aQVNWkGTVtCkFTRpBU1aQZNW0KQViEluZkGgSSto0gqatIImzQBU0iSIujOIJmEUlzRZQdElTVaRd8lt5rXkXHJbUD1plzTZQsolTbYxdUmTrcQuabKd0CVNdhDsu6LJLkYuabKTh0t++NCNuKRJA24uadIE55ImjXinSUIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCFuLt7X8zJ8wHS7/q0AAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABACAYAAABFqxrgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANrSURBVHhe7ZrNrtJAFMcRhRASQPmIiSQKiSGYqCxIumLFioW5Sxc+wX0EfQOf4Ma1L6Ahrllows6NeCOLu1GDxgQwASVIFDynOTS0jJTOTEsH55eczL8dSNvTzjlnpo1oNBqNRhMODMN4kc/nfyQSiT9oqHEfdR8/6XT6FzQrllHfcVMulz9Bw3TA2ug3gXKJ2qDAC92HQM8rSq0rJycn94vF4hDk1t3zYPvC+u9eFo1Gl7Va7Q1ouTSbzcfQMA8aVkNnrFarq6DFwScAGuaBwm7SAm21Wn0PDfMgKlir1XoI7U5cAxDm8fl8bosdkNd/gnOe0yYXs9nsNtgN1Mlk8gvYhdkhQLfbPV0ul7ZrgvM87/f7d2mTD3QCNJZnw5zLWUNXSsp1OuEQedwLPOe7d4o8Zjw7YTQaXScZOnA4OOPXPkgJjJtBLkgymcx5LBYb0aZ/gfF/SJGuqFwsUZkvBxXLZkzl0srmNfhEYLpxpqCwGV68LxOof2A7OMWOwKCizTo+3RwupNUJkDFekwyEXC73jaQwvhZLGJl3RWfR/jBgGw6NRuMMd67BxVNozD7SNkT7ncOB9RvfwUULaKyTYNToVh8apdpNPPXjjk1kzmm4h0M8Ht86sV2Mx+NTkkzc+v3E15igCtKcsFgskiQDwTmfKRQKb0l6htsJkKK+kzSB2eU1kgcBhudXkp4RiQkzksqjZExgZBIhpDmBZzGDF1YmyWazz0h6hvvEYZr6imQoaLfb70h6RsnhIBslnTCdTu+RlAK3EyA7bJWptPjiO5PJ5BZJEyihsYTnhtsJnU7nKUkLKJhuklQKHRMAJZ3gfPcBQ/M3SS6kOmEwGDwg6Ssw7K6QNBFdZRJygmhACgs6JgBSnRDUdNpZoqfT6Y8kuRByQlim06lUqkeSCyEneJlOs4qrTdz6QwstblqLnY4XINZ+Midc/ax3o86Vbq9IjQmbYxVK6CcwVhdoqGm3BW+/7Gm0MHQHbHcFzFf8OKbUJ0FVlHOC7Gk0IpodtiK6aJByYzgc3iFpIqNqlfE1+daYhKzxmaRUsBiD+UmONk3QCRCQL9PmwXAGqUBNxic5wjHBMIyXJA9CvV5vkjws9HkM8075aVA/SFnOkxETTPBjil6vdxbE/KFUKn2oVCqPRJbZNRqNhk0k8hfbHwbSBc5xqAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAMAAABgOjJdAAAARVBMVEVHcEwutrYvtrYutrYwv78ttrYutbUwt7cutrYvtbUvtrb///88urpjyMjy+/uV2tp80dHY8vLK7e2y5eVQwcHl9vak398ekCsNAAAACnRSTlMAkPCPEGCwIMDQyvKsMQAAARpJREFUOMutk9sSAiEIhtut3UzwrPv+j5ponsqmpomLYuRb+EE8nf5r121nnHO2b9d5nKLF2IRZ+Gjnp/jlls9RCIHZvV1eATwCgAUICl+QBChpNYVQW6kSMmpAF0QVIYIjdqld0KEz2OlE4+ivdERtqoBDKzpQIdZSoBQD4MBKrEm26B12ABSAs5RkS8QevaCHEhHg2kRvLzI84AjEKNJZFkLdQQeICNAHEKWtlYgy/APwMgPckvguh85zJEBmuOVgqaYD0KntAnQ6ci9oKJR/s97WC81D2VTfG4Ayum4eZaYeyMpgRDfTei+6A1B299Lu9gA1v9u2H63EuB9f7FjZU2XSnprJnn7e9cl7WX54c493u/L17bv93e7BAR3+RopCjAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAMAAABgOjJdAAAAPFBMVEVHcEz7Q0P7QkL/////QED8QkL7QkL7QkL/QED6QkL7Q0P8iYn7Tk78cnL/4+P9oqL+urr+0ND/9PT7XFzlLMjQAAAACnRSTlMA8I//EGCQuyDQAIN1QQAAAPJJREFUOMutU9kSgzAIrKWaNgFy/f+/VmqCVxwdp7wkAzvLcj0e/7V3b4y11pj+3Y5LtJppYAa7tucm/vpMfiQinL6f1x6AngEiAHvcQX4An6KTELqY/A+y1oCBSUUQB8EOWoU4A2OeEchB3lqRlOkZA7gCcBCQJZGZKTARARSIG39ECZWkF4o4BZzVNwpJr0l4DimQNc2IyICVPtRkKL4JIdrBqoKqxsJYfaeIWKoQhlD+UfpzkcOUnMc6zms570fpaV71NC97WufiFnNxmBZzacw2b2bb2I+03o8LO3ZhT893vXEvw42bK3fb2e7wbu/bF/tCGmv872piAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/loading.68230cb0.gif\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPlSURBVHhe7do/TBNhFADw3vUoA43QlgQG20REUgUrwRIDqEFNmBjEATTBhcXo7KBxNdHB2T8LiySKgzgw4SBRkRgYSBVDCGJCHcBQCqaYIO2dPPJqlNyf7+5732HkfgnhvaP3p6/vvrv7qM/j8Xg8nr1Lwt+uWOu5fENdWurVcuvVWnY1hIu3SaGKrBQsW5SrqgbKBx/fxcXCCS/AWm9fd2H+yz11IR3FRUzkWDTtrzlwvXyg/xkuEkJYAb73XUnkZ2aH7b7xnaAQSryuc1//oxQuIiWkANDqm2PjdzAlUdLWclPEqUFegGxH55vCp5mTmJLyH4m/DY0Mn8KUBGkBRL75IuoiyPib22rnhSHRbx7APmBfmHIjKQCM9Pmp1HlMhYN9wT4x5UJSgPz4+ycYWpJKS1Vo40DHuWOVX+ck+IEYlsHf8GWW7OzTDPcYsNp18X5+YvIqpqaU5uSDiqGn1zDVRb09K9wFyBysL2gbG5adZOcyxnoZhY6JfJ72Y+oI1ykA5yH1mwfwWlgHU0Owb96xgKsDsu0dHwtz8/WY6oI7ufC7VzFMbVlpPbNgdSfpr62ZDo2ONGBqG1cHqIvfDmFoCG5jMbQNngUwNMRyDGa4OmB5f62GoS6Kc5RljIErCYa2cXWAFXjExdAxim2YEVoAXyDwAyPnKLZhwnEBWEZfLZcLY+gYxTbMCB0DfLKsVS7McnXZcqxO9amq6XH+s2MAHDjPdXp7XYs3z4urAFI4tI6hoXzqQz+GtrGsy3IMZrgK4I9FX2JoSFvJljl5fIV1YF1MDbEcgxnu9rIcB5CIZwHAc/4D7gJkEs05lk8KsNwWs9z+FkH7R1ITQUwd4S4ADFSbo68HMWUiV1dl5Gj0r+luNZ3uVheXIpgyKWk/3cM7bU4ywtrpAioUnz4guQwqh+O3MXQN1T5JOgC42QVUnz4guxFSEkf7MBSOcl9kHQDsjOBO8Uyw6CEtAGC9L3CK97q/E/mzAMzUYkhOxLbJOwBk4o0bW4+xAUxJSMHgz8jMVCmmZMg7ACjJpssYkhGxTSCkAwDLjDEr3plfM8IKAFgmMywRTKqYEbZhoBxveoihYxTbMCO0AwDPHSLlHZ8RoR0ASpJNrRjaxrMuK+EdAJx8c0TE12H0uFIAwPpfZEDxHyVWwk+Boq3r+C0MLdl5LS/XOgCsJNuWrWZ9YLYoPDlWialwrnUAUBINZzE0xPIaSq52AIDpbqMvVCmNiRcVw8+7MHWF6wUAegOimwPfn1w9BYqUlhOXMPxNb9l/DWaPYPIEfiDGxXtLsQCY7opdOQWKYIZH5AySx+PxeDweEz7fL7YSmEb4tVBJAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPlSURBVHhe7do/TBNhFADw3vUoA43QlgQG20REUgUrwRIDqEFNmBjEATTBhcXo7KBxNdHB2T8LiySKgzgw4SBRkRgYSBVDCGJCHcBQCqaYIO2dPPJqlNyf7+5732HkfgnhvaP3p6/vvrv7qM/j8Xg8nr1Lwt+uWOu5fENdWurVcuvVWnY1hIu3SaGKrBQsW5SrqgbKBx/fxcXCCS/AWm9fd2H+yz11IR3FRUzkWDTtrzlwvXyg/xkuEkJYAb73XUnkZ2aH7b7xnaAQSryuc1//oxQuIiWkANDqm2PjdzAlUdLWclPEqUFegGxH55vCp5mTmJLyH4m/DY0Mn8KUBGkBRL75IuoiyPib22rnhSHRbx7APmBfmHIjKQCM9Pmp1HlMhYN9wT4x5UJSgPz4+ycYWpJKS1Vo40DHuWOVX+ck+IEYlsHf8GWW7OzTDPcYsNp18X5+YvIqpqaU5uSDiqGn1zDVRb09K9wFyBysL2gbG5adZOcyxnoZhY6JfJ72Y+oI1ykA5yH1mwfwWlgHU0Owb96xgKsDsu0dHwtz8/WY6oI7ufC7VzFMbVlpPbNgdSfpr62ZDo2ONGBqG1cHqIvfDmFoCG5jMbQNngUwNMRyDGa4OmB5f62GoS6Kc5RljIErCYa2cXWAFXjExdAxim2YEVoAXyDwAyPnKLZhwnEBWEZfLZcLY+gYxTbMCB0DfLKsVS7McnXZcqxO9amq6XH+s2MAHDjPdXp7XYs3z4urAFI4tI6hoXzqQz+GtrGsy3IMZrgK4I9FX2JoSFvJljl5fIV1YF1MDbEcgxnu9rIcB5CIZwHAc/4D7gJkEs05lk8KsNwWs9z+FkH7R1ITQUwd4S4ADFSbo68HMWUiV1dl5Gj0r+luNZ3uVheXIpgyKWk/3cM7bU4ywtrpAioUnz4guQwqh+O3MXQN1T5JOgC42QVUnz4guxFSEkf7MBSOcl9kHQDsjOBO8Uyw6CEtAGC9L3CK97q/E/mzAMzUYkhOxLbJOwBk4o0bW4+xAUxJSMHgz8jMVCmmZMg7ACjJpssYkhGxTSCkAwDLjDEr3plfM8IKAFgmMywRTKqYEbZhoBxveoihYxTbMCO0AwDPHSLlHZ8RoR0ASpJNrRjaxrMuK+EdAJx8c0TE12H0uFIAwPpfZEDxHyVWwk+Boq3r+C0MLdl5LS/XOgCsJNuWrWZ9YLYoPDlWialwrnUAUBINZzE0xPIaSq52AIDpbqMvVCmNiRcVw8+7MHWF6wUAegOimwPfn1w9BYqUlhOXMPxNb9l/DWaPYPIEfiDGxXtLsQCY7opdOQWKYIZH5AySx+PxeDweEz7fL7YSmEb4tVBJAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABACAYAAABFqxrgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAANrSURBVHhe7ZrNrtJAFMcRhRASQPmIiSQKiSGYqCxIumLFioW5Sxc+wX0EfQOf4Ma1L6Ahrllows6NeCOLu1GDxgQwASVIFDynOTS0jJTOTEsH55eczL8dSNvTzjlnpo1oNBqNRhMODMN4kc/nfyQSiT9oqHEfdR8/6XT6FzQrllHfcVMulz9Bw3TA2ug3gXKJ2qDAC92HQM8rSq0rJycn94vF4hDk1t3zYPvC+u9eFo1Gl7Va7Q1ouTSbzcfQMA8aVkNnrFarq6DFwScAGuaBwm7SAm21Wn0PDfMgKlir1XoI7U5cAxDm8fl8bosdkNd/gnOe0yYXs9nsNtgN1Mlk8gvYhdkhQLfbPV0ul7ZrgvM87/f7d2mTD3QCNJZnw5zLWUNXSsp1OuEQedwLPOe7d4o8Zjw7YTQaXScZOnA4OOPXPkgJjJtBLkgymcx5LBYb0aZ/gfF/SJGuqFwsUZkvBxXLZkzl0srmNfhEYLpxpqCwGV68LxOof2A7OMWOwKCizTo+3RwupNUJkDFekwyEXC73jaQwvhZLGJl3RWfR/jBgGw6NRuMMd67BxVNozD7SNkT7ncOB9RvfwUULaKyTYNToVh8apdpNPPXjjk1kzmm4h0M8Ht86sV2Mx+NTkkzc+v3E15igCtKcsFgskiQDwTmfKRQKb0l6htsJkKK+kzSB2eU1kgcBhudXkp4RiQkzksqjZExgZBIhpDmBZzGDF1YmyWazz0h6hvvEYZr6imQoaLfb70h6RsnhIBslnTCdTu+RlAK3EyA7bJWptPjiO5PJ5BZJEyihsYTnhtsJnU7nKUkLKJhuklQKHRMAJZ3gfPcBQ/M3SS6kOmEwGDwg6Ssw7K6QNBFdZRJygmhACgs6JgBSnRDUdNpZoqfT6Y8kuRByQlim06lUqkeSCyEneJlOs4qrTdz6QwstblqLnY4XINZ+Midc/ax3o86Vbq9IjQmbYxVK6CcwVhdoqGm3BW+/7Gm0MHQHbHcFzFf8OKbUJ0FVlHOC7Gk0IpodtiK6aJByYzgc3iFpIqNqlfE1+daYhKzxmaRUsBiD+UmONk3QCRCQL9PmwXAGqUBNxic5wjHBMIyXJA9CvV5vkjws9HkM8075aVA/SFnOkxETTPBjil6vdxbE/KFUKn2oVCqPRJbZNRqNhk0k8hfbHwbSBc5xqAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+tpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMi1jMDAwIDc5LjU2NmViYzViNCwgMjAyMi8wNS8wOS0wODoyNTo1NSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjMuNCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTA4LTAzVDA4OjU2OjM0KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wOC0wM1QwOTowODowMiswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wOC0wM1QwOTowODowMiswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Qjk0NDU1NkUxMkM4MTFFREE5OUZFN0MzQThGQzU0N0UiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Qjk0NDU1NkYxMkM4MTFFREE5OUZFN0MzQThGQzU0N0UiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RS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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAA3BAMAAABa9c91AAAALVBMVEVHcEzOZmbNZ2fOZ2fOZmbPZ2fOZmbOZ2fNZmbOZ2fOYWHNZ2fOZ2fPYGDOZ2eVIbXQAAAADnRSTlMAypBNv2DwM3XdFa6fEMzo5kAAAAGFSURBVDjLY2CgAjDJc8cpx/zu3bsCXJIsQEkHXJJ8QMkEsiTxGgty0AY8XpF7isenrO8C8MjGPcYjyfSsAI/suXQ8kjzPWtJccUnyygE95ItLFiT5BKdnQCAAdxjiDEU2sGQCGZJ4jcXrIIY8PF7heYcnEOKehuAMPrwRGvcUdzJxwqkRlMBe4EuaCQOQ4gvIyryDB3A0KIPpCSB2gN67dw8Y2hkYNkMkOQsKGRgYBQUTBQULOFcoB1gJMABVQzQwKDEwKUANYc+wUd6wC0mSA2icB1irIANDt5Ry8waBwpnHoVZ1LmBgWKnAwCYoKMbAwB2s9O4hUCezgqYMKEhdgWE6YSvEWK5IS2VGBrAk1E4gR4CB4SDQ2AL2g9KOUJ0wyQkgSQYGC3UGhiJ1ZQUgT+cwTJJjA5cAQ6Gg4EOgVidtZS0GgWoJuM6VBczgkusBEAupKPe9EChmgElyzWDgUIBKsiopK4ODSnLiTMEGoJhlAM9LUApoBFm8CKijDimxcJEZJQDFa5yC10805gAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAA3BAMAAABa9c91AAAAJFBMVEVHcEzPaGjOZmbNZ2fNZ2fNZmbOZGTOZmbOZmbOZ2fOZmbOZ2ff59caAAAAC3RSTlMAP8yQTYAZa6C26ugQ4U8AAAFBSURBVDjL3ZKxS8NQEMa/voQW2yW6iLikIji4BKSV4hIaHCRLloLj00Xc4iKIs4O41MVdQVyrtlS9f867JO0rJW9QVNQL4XL55Xv3vXsB/l40HrE6mBTkVegnIM3FPDTKD8Hx4rmBJ8tfuxV1a9vKQNKN3S2ndgl86V3l8E2DLvbLesoCns0Qw2vY4YPdbf1e291Wdelsc7fFhMrd/qLf5Hvc/pfYBdYl182rSgI/e4hpVLvUcKH4dmTGPbhBARFhpdJknUIDTgj/uG+gotEmraUqh0TDDcCl4picSDpqNVVyxUoUyiFtL3GSY8x6nhnIymCrC5VdQIC9RJZ9mioZHohbHRO9nrIgzT4Ut64oIy6dMLNZ0wteAXfomQwk8tHBIWaUgeJZcITVtOl1U7RmYCe5YyW3Co/ifqstribwk/EOQuHFNiNXS5AAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABRCAYAAACqj0o2AAADxnRFWHRteGZpbGUAJTNDbXhmaWxlJTIwaG9zdCUzRCUyMkVsZWN0cm9uJTIyJTIwbW9kaWZpZWQlM0QlMjIyMDIxLTAxLTIwVDA4JTNBNDklM0E1OC4wOTdaJTIyJTIwYWdlbnQlM0QlMjI1LjAlMjAoV2luZG93cyUyME5UJTIwMTAuMCUzQiUyMFdpbjY0JTNCJTIweDY0KSUyMEFwcGxlV2ViS2l0JTJGNTM3LjM2JTIwKEtIVE1MJTJDJTIwbGlrZSUyMEdlY2tvKSUyMGRyYXcuaW8lMkYxMy45LjklMjBDaHJvbWUlMkY4NS4wLjQxODMuMTIxJTIwRWxlY3Ryb24lMkYxMC4xLjUlMjBTYWZhcmklMkY1MzcuMzYlMjIlMjBldGFnJTNEJTIyMWdxclFEaHRDM3BWRUVjVWwxUVclMjIlMjB2ZXJzaW9uJTNEJTIyMTMuOS45JTIyJTIwdHlwZSUzRCUyMmRldmljZSUyMiUzRSUzQ2RpYWdyYW0lMjBpZCUzRCUyMnhIZ2p0eHFjeGdNSHVjN2lxNHJCJTIyJTIwbmFtZSUzRCUyMiVFNyVBQyVBQzElRTklQTAlODElMjIlM0VqWk5OYjRNd0RJWiUyRkRjZEpmR3d0dTVaMW16UnRPJTJGU3djNW9Za2pWZ0ZNS2clMkZmVnppeW1nYXRJdVZmeThqaDFldTBHU2xmMkxFN1YlMkJSd1UyaUVQVkI4bFRFTWNQMFpwJTJCeiUyQkE0Z0NSOUhFRGhqQnBRTklHZE9RSERrR2xyRkRTTFJJOW92YW1YVUdKVmdmUUxKcHpEYnBtV28xMTJyVVVCTjJBbmhiMmxYMFo1elRRT3cwbDRCVk5vYnIwYWhiMlFoOEpoVzNHJTJGQ2lzWWxGS01aVGkxMFVKaE4wUEpOa2d5aCUyQmlIVTlsbllNJTJCdWpvNE45NTclMkZVSzlQZGxENSUyRjF5SVQ2VnN2NXVtJTJGZ0IlMkZrRzlWMFg3MmQxemxSOWlXcmVESCUyQnVQb0RWV2hNVkN3NmJUeHNLdUZQQ3NkTFFJeDdVdExVVVJIMGRURGJITFRBelhkNU1iYURDMjZTNkZFQ1VoelNienhEZzh3VTFZeWhYMU9DcjhHbklmJTJC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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/loading.68230cb0.gif\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABACAYAAABFqxrgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAoNJREFUeNrsW0tuwjAQhar7Ztld0hM0NyA3oEegJyg3KDcovUF6gsIJGm6Q7isVdl0aqfvUlgaJWoEknok/YUYaCeTITh4zb94Ee1xV1ejS7WrExiAwCAwCg/DPrh2t+wCewPet9BW4dRs7KJHqQacnxtYAzqDTYXEGgBGMLYYeCSrs44Zrdkdp4l0kRNKX8CCVocct1okR8ysvpc/6iIRUeiH9JiDS/5SeSRcUIETw64cEQCeibZMOs0ABOBBtI7+00Ql1SL5Jz5E3eAuu7Acca4qz7mvuf0ktltZdiceiZUCMsZbO5Dqh9Dj8BfAX9w42QEg9fp7IRGiZcMIUSDE/QXI27Uv6r0aMcU2KoHXCXPpLwNF+18QTbdIhBz0for22Ico2IAiotaEBsW7bkXbpIiNIDVWLJ54++A5K+KqTmFMgGLpuc8RcJr7S1i9M56LUCbZFFNl6fYulpKFuY8e9B0Hl5Dd43sO4Ltq2xneKyMlSy8lFA2dEyHF9/aJhfSucIDpenyLHg0yHQTdQ53SETZtQVQsMCKVn3aVwAYLgdHD/3sBLEBKLIKSUChIDQqF9jy+RE7hEOrbEFxCEQ9Wng7BxBULpgWBi2XzpIKSUwg0Lgv7yNXMklkqXIGw5HZgTnLbTE8qIxILgSzvtFARBeK0YIifstc8lcry3lKMGIdHK5Rq8rnSajpO20cqwO1rVzX3oc/YcveRrcokMFITENxDEiXC12TdssBNiD33UEZLaG7DssWd4op6U4uSLaqKO3y+qLcDPFtMD/Rc9xXkHtZXn3RE/7IEjnLbSh/B/dARARqE0KU++qF9kbql/OOxJIpHaYz4rzWKJQWAQjuxPgAEA6NxPwD5ZWTwAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAdCAMAAABhTZc9AAAANlBMVEVHcEz///////////////////////////////////////////////////////////////////+GUsxbAAAAEXRSTlMAsO/AzxDwYKAt0J97kOBAUFo+SNUAAAERSURBVCjPddNZFoMgDAXQMBlABrP/zTZBItTT8tFirxJ8oQAykmmuwxrFk7v0ItlcHKFeBk+1GDoVI39mSoqHzJDqwki14Ya8PPUN7TEWf9YAXycWxhwiYfBOC4JzYJpMyDFyKeOJlEMrkMu4jSYeKSpHrm/8uLHDRNnC4Ci7SFpGcfJ5vz/evPBmDWfwjoOf5Ji/8a65+I1lawngC6vdnl3Zwleof3CE+h95K7P9v5ETH0+735ij5d879Td2wQDcI6jtjdztJl+OO9/iFsJhg+wkmiAZIffo2uLD52DwNMoqYc8WV0NlTePmeZ+v/zR0FOTAA56W2rU6FhQhNz5ouW7/EzysnwjpNJjga6RSZsgf3QgO/XAq+ioAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAALVBMVEVHcEz////////////////////////////////////////////////////////NXt0CAAAADnRSTlMAEGCAz9Ap4ECr8FCQf2r4IC4AAACvSURBVBjTY5CtewcEKxMYIMAu2BgIjj+CckvBJGOcAoT7GEKJPoJzNyUgpB8zsL57gZB+zLBPbSVC92MGvYRKhO7HDHnLHyEMf8zAMVMBYTjUIpg0gssg+pqBYQ2CyxglwDBdAMHPa2DIc0Rw2Q0YmJ4IIMsy6MGlGd2BMghpEZDb4dKMfmDnwKRFoF6GSEMlYdIwSYg0XBIijZAESruxISQZGLjX1VUwIAFpC4hlAPMLM+ox/vOvAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAfCAMAAAAocOYLAAAAM1BMVEX///////////////////////////9HcEz///////////////////////////////////85yRS0AAAAEHRSTlOAGeBgv3+XAMBA0FDwMLBwOwPeswAAAM5JREFUKM+V0osOgyAMQNEWWcub/v/XDnU4XprtJhrjwWiKwKUcZEhtfAbliOJgKMn2dSuWx+izoHq0bfFaUN307y+WQueufd6JZ5DOTft2FHh0/tOdDoMrrS6PpkSd73fM6UhK1rlcHJ0QrCMhLifPd1nx4NKSkPSLWREILD2LKUM25s5JRckP7sv344MzeuQn/4yp+rD/9a4BpfG4Ut1oTo8hwbavXu/fDmX+mW4cNvz9/1Cvttmn7+99rvXVFtPlGIKeE1edbTJzdMztDdEJHasgZx4dAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/南投縣政府新logo.16d29fbd.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAYAAABX5MJvAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNpi/P//P8NAAyaGQQBGHQEDLFjEJgCxAQ3tXADFeB0BcoA9DR1xYDRNDGpHMI4WVqOOIKKwApUTAjS08wEUIwAoYaLhA/9pCxrQ7RxNE4M+YV6gsZ0PRkvMUUeQkzATgFiBxi2rA8Q4wp7Gnj8wmiaGVMJcgK1ZTssm/2iJOeoIdAAQYAAR8ZNjbasTPAAAAABJRU5ErkJggg==\"","export default class PathHelper {\r\n static CombinePath(...args) {\r\n return args.map((part, i) => {\r\n if (i === 0) {\r\n return part.trim().replace(/[/]*$/g, '');\r\n } else {\r\n return part.trim().replace(/(^[/]*|[/]*$)/g, '')\r\n }\r\n }).filter(x => x.length).join('/')\r\n }\r\n}","import PathHelper from './PathHelper.js';\r\n\r\nexport default class ApiBase {\r\n static MakeUrl(path) {\r\n const apiBaseUrl = `${window.location.protocol}//${window.location.host}/`;\r\n //const apiBaseUrl = \"https://localhost:44352/\";\r\n //const apiBaseUrl = \"http://140.110.11.110/\";\r\n // const apiBaseUrl = \"https://3d.wrbtycg.tw/ty3d-2nd\";//https://localhost:44352/OviewProxy?\r\n let rtn = PathHelper.CombinePath(apiBaseUrl, path);\r\n return rtn;\r\n }\r\n}","import ApiBase from \"./ApiBase\";\r\n\r\nexport default class ApiLayersMap {\r\n static async ListAll(successCallback, errorCallback) {\r\n let url = ApiBase.MakeUrl(\"WebService/LayersMap/ListAll\");\r\n try {\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n headers: new Headers({\r\n \"Content-Type\": \"application/json\",\r\n })\r\n });\r\n const json = await response.json();\r\n if (json.success) {\r\n successCallback(json);\r\n }\r\n else {\r\n errorCallback(json);\r\n }\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n }\r\n } \r\n \r\n static async ListLayerInfo(conditions, successCallback, errorCallback) {\r\n let url = ApiBase.MakeUrl(\"WebService/LayersMap/ListLayerInfo\");\r\n try {\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n headers: new Headers({\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n body: JSON.stringify(conditions)\r\n });\r\n const json = await response.json();\r\n if (json.success) {\r\n successCallback(json);\r\n }\r\n else {\r\n errorCallback(json);\r\n }\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n }\r\n }\r\n}\r\n","var graphics = {\r\n \"I3S\": [\r\n [\"臺北市\", 0],\r\n [\"臺中市\", 1],\r\n [\"基隆市\", 2],\r\n [\"臺南市\", 3],\r\n [\"高雄市\", 4],\r\n [\"新北市\", 5],\r\n [\"宜蘭市\", 6],\r\n [\"桃園市\", 7],\r\n [\"嘉義市\", 8],\r\n [\"新竹縣\", 9],\r\n [\"苗栗縣\", 10],\r\n [\"南投縣\", 11],\r\n [\"彰化縣\", 12],\r\n [\"新竹市\", 13],\r\n [\"雲林縣\", 14],\r\n [\"嘉義縣\", 15],\r\n [\"屏東縣\", 16],\r\n [\"花蓮縣\", 17],\r\n [\"臺東縣\", 18],\r\n [\"金門縣\", 19],\r\n [\"澎湖縣\", 20],\r\n [\"連江縣\", 21]\r\n ],\r\n \"3DTiles\": [\r\n [\"臺北市\", 0],\r\n [\"臺中市\", 1],\r\n [\"基隆市\", 2],\r\n [\"臺南市\", 3],\r\n [\"高雄市\", 4],\r\n [\"新北市\", 5],\r\n [\"宜蘭市\", 6],\r\n [\"桃園市\", 7],\r\n [\"嘉義市\", 8],\r\n [\"新竹縣\", 9],\r\n [\"苗栗縣\", 10],\r\n [\"南投縣\", 11],\r\n [\"彰化縣\", 12],\r\n [\"新竹市\", 13],\r\n [\"雲林縣\", 14],\r\n [\"嘉義縣\", 15],\r\n [\"屏東縣\", 16],\r\n [\"花蓮縣\", 17],\r\n [\"臺東縣\", 18],\r\n [\"金門縣\", 19],\r\n [\"澎湖縣\", 20],\r\n [\"連江縣\", 21]\r\n ],\r\n}\r\n\r\nexport default graphics;","import React from 'react';\r\n\r\nvar text = {\r\n \"WMTS\": 服務介接網址:https://ntmap.nantou.gov.tw/wmts
\r\n 本系統提供WMTS 發布服務的圖層。使用者無需申請,即可利用符合OGC WMTS軟體介接本系統圖資套疊。\r\n
,\r\n \"WMS\": 服務介接網址:https://ntmap.nantou.gov.tw/wms
\r\n 本系統提供WMS發布服務的圖層。使用者無需申請,即可利用符合OGC WMS軟體介接本系統圖資套疊。
\r\n 各圖層之WMS服務規格可透過GetCapabilities請求取得,
如:https://ntmap.nantou.gov.tw/wms?SERVICE=WMS&REQUEST=GetCapabilities&VERSION=1.0.0
,\r\n \"I3S\": I3S服務清單網址:https://i3s.nlsc.gov.tw/i3s/Service,\r\n \"3DTiles\": 3D Tiles服務清單網址:https://3dtiles.nlsc.gov.tw/tiles3d/Service\r\n}\r\n\r\nexport default text;","import React from 'react';\r\n\r\nvar example = {\r\n \"WMTS\": \r\n 介接網址:https://ntmap.nantou.gov.tw/wmts
\r\n 範例:https://ntmap.nantou.gov.tw/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&Layer=(災害潛勢圖)06hr_150mm
\r\n &Style=default&Format=image/png&TileMatrixSet=EPSG:3857&TileMatrix=12&TileRow=1768&TileCol=3422
,\r\n \"WMS\": \r\n 介接網址:https://ntmap.nantou.gov.tw/wms
\r\n 範例:https://ntmap.nantou.gov.tw/wms?&SERVICE=WMS&
VERSION=1.0.0&REQUEST=GetMap&
\r\n BBOX=120.64369482202913275,24.06525451933858051,120.69891877452353413,24.09601623808858051&
\r\n SRS=EPSG:4326&WIDTH=1202&HEIGHT=669&LAYERS=EMAP&STYLES=&FORMAT=image/png&DPI=96&
\r\n MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE
,\r\n \"I3S\": I3S服務網址規則:https://i3s.nlsc.gov.tw/building/i3s/SceneServer/layers/建物服務代碼,\r\n \"3DTiles\": 3D Tiles服務網址規則:https://3dtiles.nlsc.gov.tw/building/tiles3d/建物服務代碼/tileset.json\r\n}\r\n\r\nexport default example;","import React, { Component } from 'react';\r\nimport './GraphicsIllustrate.css';\r\nimport ls from 'localstorage-slim';\r\n\r\nimport ApiLayersMap from '../../../modules/WebApiModules/ApiLayersMap';\r\nimport graphics from \"./data/DATA.js\";\r\nimport text from \"./data/DESCRIPTION.js\";\r\nimport example from './data/EXAMPLE.js';\r\n\r\nconst nameList = [\"WMTS\", \"WMS\", \"I3S\", \"3DTiles\"];\r\nconst theadList = {\r\n \"WMTS\": [\"圖層名稱\", \"圖層介接代碼\"],\r\n \"WMS\": [\"圖層名稱\", \"圖層介接代碼\"],\r\n \"I3S\": [\"縣市\", \"建物服務代碼\"],\r\n \"3DTiles\": [\"縣市\", \"建物服務代碼\"],\r\n}\r\n\r\nconst tabText = [\"規格\", \"範例\"];\r\nexport class GraphicsIllustrate extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n graphicTab: 0,\r\n childTab: 0,\r\n layerList: []\r\n };\r\n this.whiteList = [];\r\n this.whiteList.push(\"(社會經濟資料)\");\r\n }\r\n\r\n componentDidMount() {\r\n let lsInfo = ls.get(\"userInfo\", { decrypt: true });\r\n if (lsInfo) {\r\n let url = \"https://ntmap.nantou.gov.tw/server/layer/get2DLayerList\";\r\n //let url = \"https://localhost:44352/OviewProxy?https://ntmap.nantou.gov.tw/server/layer/get2DLayerList\";\r\n fetch(url, {\r\n method: \"POST\",\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({})\r\n }).then((response) => {\r\n return response.json();\r\n }).then(function (json) {\r\n if (json.success) {\r\n json.ret.forEach(layer => {\r\n this.whiteList.push(layer.layername);\r\n });\r\n\r\n this.getLayerList();\r\n }\r\n }.bind(this)).catch((error) => {\r\n console.log(`Error: ${error}`);\r\n })\r\n }\r\n else {\r\n this.getLayerList();\r\n }\r\n }\r\n\r\n getLayerList() {\r\n ApiLayersMap.ListAll(\r\n // success\r\n (result) => {\r\n console.log(result);\r\n let list = [];\r\n this.getLayerListRecursive(list, result.result);\r\n\r\n this.setState({ layerList: list });\r\n },\r\n // error\r\n () => {\r\n console.error(\"取得圖層清單失敗\");\r\n })\r\n }\r\n\r\n getLayerListRecursive(list, source) {\r\n source.forEach(layer => {\r\n if (layer.Class === \"FOLDER\") {\r\n this.getLayerListRecursive(list, layer.Layers);\r\n }\r\n else if (layer.Class !== \"NOUSE\" && this.checkWhiteList(layer.ID)) {\r\n if (!layer.FolderFullName.includes(\"三維圖資\")) {\r\n list.push({ name: layer.Name, ID: layer.ID });\r\n }\r\n }\r\n });\r\n }\r\n\r\n checkWhiteList(name) {\r\n if (this.whiteList) {\r\n for (let i = 0; i < this.whiteList.length; i++) {\r\n if (name.includes(this.whiteList[i])) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n tablePanel() {\r\n return (\r\n \r\n \r\n \r\n {\r\n theadList[nameList[this.state.graphicTab]].map(name => {\r\n return ();\r\n })\r\n }\r\n \r\n \r\n \r\n {\r\n this.tableContent()\r\n }\r\n \r\n
{name}
\r\n )\r\n }\r\n\r\n tableContent() {\r\n if (this.state.graphicTab === 0 || this.state.graphicTab === 1) {\r\n return (<>{\r\n this.state.layerList.map(info => {\r\n return (\r\n \r\n {info.name}\r\n {info.ID}\r\n \r\n );\r\n })}\r\n );\r\n }\r\n else {\r\n return (<>{\r\n graphics[nameList[this.state.graphicTab]].map(info => {\r\n return (\r\n \r\n {\r\n info.map(infodata => {\r\n return ({infodata});\r\n })\r\n }\r\n \r\n );\r\n })}\r\n );\r\n }\r\n }\r\n\r\n content() {\r\n let context = \"\";\r\n switch (this.state.childTab) {\r\n case 0: context = text[nameList[this.state.graphicTab]];\r\n break;\r\n case 1: context = example[nameList[this.state.graphicTab]]; break;\r\n default: break;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {\r\n tabText.map((tab, index) => {\r\n let className = this.state.childTab === index ? \"graphicsInfoCol-content-tab tab-check\" : \"graphicsInfoCol-content-tab\";\r\n return (\r\n
{ this.setState({ childTab: index }) }}>\r\n {nameList[this.state.graphicTab] + tab}\r\n
);\r\n })\r\n }\r\n
\r\n
\r\n {context}\r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n nameList.map((name, index) => {\r\n return (\r\n
{ this.setState({ graphicTab: index, childTab: 0 }); }}>\r\n {name}\r\n
\r\n );\r\n })\r\n }\r\n
{\r\n this.content()\r\n }\r\n
\r\n
\r\n {\r\n this.tablePanel()\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './Instructions.css';\r\n\r\nimport Instructions1 from './.image/Instructions1.png';\r\nimport Instructions2 from './.image/Instructions2.png';\r\nimport Instructions3 from './.image/Instructions3.png';\r\n\r\nexport class Instructions extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n };\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \"Instructions1\"\r\n
\r\n
\r\n \"Instructions2\"\r\n \"Instructions3\"\r\n
\r\n\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './Introduction.css';\r\n\r\nimport introduction from './.image/introduction.png';\r\n\r\nexport class Introduction extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n };\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n \"introduction\"\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './FAQ.css';\r\n\r\nimport config1 from './.image/config1.jpg';\r\nimport config2 from './.image/config2.jpg';\r\n\r\nexport class FAQ extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
問題標題問題回應內容
1.建物細緻度等級(Level of detail)如何定義?本系統納入近似化建物模型及精緻建物模型,屬積木式模型(Block Model),建物細緻度等級(Level of detail)係參照OGC CityGML 定義內容,
\r\n LOD詳細定義請參考OGC CityGML 文件(網址:https://www.ogc.org/standards/citygml)。\r\n
2.如何清除定位結果或量距功能之距離標註? 請點選量距功能 下方「清除結果」功能,刪除距離量測紀錄。
3.如何操作旋轉3D圖臺的視角等? 1. 使用滑鼠、右上角三維視覺化操作盤以及鍵盤WASD按鍵等3種方式,提供使用者操作圖臺檢視視角的俯、仰、旋轉、平移與縮放等行為,操作說明可參考圖臺右上方「功能說明」。
\r\n 2. 利用鍵盤快捷鍵(+、-、n、r、u、shift、ctrl)搭配滑鼠移動視角
\r\n 3. 圖臺預設的視角旋轉以使用者自身為軸心,若想指定某點位置為軸心,請點選欲環視之目標物,接著點選右下方「定點環視」功能,此時即可針對目標物進行旋轉環視;
\r\n 再次點擊定點環視時,即可取消環視功能回復標準之瀏覽模式。\r\n
4.請問如何使用定位功能? 由首頁「進入地圖」進入圖臺,點選圖臺頁面下方「工具列」,選擇「定位功能」,即自動開啟操作介面,
\r\n 其中包括門牌定位、地號定位、坐標定位,使用者可選擇定位方式進而輸入相應條件進行定位查詢。\r\n
5.如何清除瀏覽器暫存資料? 1. 使用快捷鍵︰,利用快捷鍵[Ctrl]+[Shift]+[Del],開啟「瀏覽器快取清除選單」後,將下列兩種資料選取並刪除:
\r\n (1) cache資料 如「網際網路暫存檔」、「快取圖片和檔案」等。
\r\n (2) cookie資料。
\r\n 2. FireFox、Chrome、Edge及Safari暫存資料清除,請參考下列圖示操作(可能因瀏覽器版本不同,導致圖示內容位置略有差異):
\r\n (1) FireFox :頁面右側「工具」-「選項」-「隱私權及安全性」-「瀏覽紀錄」項下點選「清除瀏覽紀錄」,勾選「cookie」及「快取」,按「立即清除」即可。
\r\n \"config1\"\r\n \"config2\"
\r\n Chrome : 「設定」-「顯示進階設定...」 -「隱私權及安全性」-「清除瀏覽資料...」-勾選 「Cookies...」及「快取圖片和檔案」,按「清除資料」 即可。\r\n
6.空間距離與地表距離測量,有何差異? 空間距離為三維空間兩點之間的最短直線距離。地表距離則為兩地表上的空間點之間沿地形起伏之最短距離。\r\n
7.三維地形資料為何?本系統展示及發布三維地形資料為20公尺網格間距成果。\r\n
8.請問我是否可以自己選擇想套疊的圖資呢?1. 由首頁「進入地圖」進入圖臺,使用右方「圖資庫」功能,圖臺即自動開啟圖層設定操作介面,使用者可依需求點選底圖及選取欲套疊之二維或三維圖層(可複選)。
\r\n 2. 已選取的套疊圖層將列表於圖資庫按鈕下方之「已選圖層區」中,提供透明度調整、定位至圖層位置之功能。\r\n
9.地圖上距離量測的準確度如何?由於各圖資坐標不同,經過坐標轉換及投影系統等因素,將產生地圖量測距離與實地真實測量結果之間的誤差。因此距離量測的數值僅供使用者參考。\r\n
10.二維圖資料來源二維圖資係由南投縣府各局處蒐整而來之圖資。\r\n
11.為什麼圖資顯示速度這麼慢?1. 圖資顯示速度受電腦顯圖能力影像,如果想要能順暢的瀏覽三維圖資,建議提升個人瀏覽設備及網路環境。
\r\n 2. 本系統建議用eChrome、FireFox、Safari或Edge等瀏覽器。
\r\n 3. 瀏覽器的Proxy與快取的空間大小也會影響圖資顯示速度,建議關閉瀏覽器的Proxy的機制與減少快取的空間大小(建議用小於256MB),並清除瀏覽器暫存區資料,以提升您的電腦反應速度。\r\n
12.地表距離測量如何計算長度?地表距離為兩地表上的空間點之間沿地形起伏之最短距離。
\r\n 其計算原理係將兩空間點間之地形起伏(10米DTM)的距離連線切分為100個間隔數,計算各間隔點間直線距離加總,得地表距離量測成果\r\n
13.三維建物模型資料來源?本系統介接國土測繪中心圖資,提供即時三維建物模型圖資展示。\r\n
14.請問我如何得知使用圖資基礎資訊?本系統首頁,點選「圖資使用說明」功能,可看到各項圖資內容說明。\r\n
15.請問3DTILES是什麼?本系統發布3DTILES服務為符合OGC國際標準之3D網路圖資服務。\r\n
16.請問I3S是什麼?本系統發布I3S服務為符合OGC國際標準之3D網路圖資服務。\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport ls from 'localstorage-slim';\r\nimport './Login.css';\r\n\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n username: \"\",\r\n password: \"\",\r\n };\r\n }\r\n\r\n login_OnClick() {\r\n //let url = \"https://localhost:44352/OviewProxy?https://ntmap.nantou.gov.tw/server/users/login\";\r\n let url = \"https://ntmap.nantou.gov.tw/server/users/login\";\r\n var CryptoJS = require(\"crypto-js\");\r\n const key = CryptoJS.enc.Base64.parse(\"Pi10tGAeANTYxYzlmZTA2OA==\");\r\n const iv = CryptoJS.enc.Base64.parse(\"Pi10tGAeANTYxYzlmZTA2OA==\");\r\n\r\n let result = CryptoJS.AES.encrypt(this.state.password, key, {\r\n iv,\r\n moode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n\r\n const data = {\r\n username: this.state.username,\r\n password: result.toString()\r\n };\r\n\r\n fetch(url, {\r\n method: \"POST\",\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(data)\r\n }).then((response) => {\r\n return response.json();\r\n }).then(function (json) {\r\n if (json.success) {\r\n ls.set(\"userInfo\", json.ret, { ttl: 86400, encrypt: true });\r\n this.props.login();\r\n }\r\n }.bind(this)).catch((error) => {\r\n console.log(`Error: ${error}`);\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n 帳號:\r\n { this.setState({ username: e.target.value }); }} />\r\n
\r\n
\r\n 密碼:\r\n { this.setState({ password: e.target.value }); }} />\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './Home.css';\r\n\r\nimport ls from 'localstorage-slim';\r\n\r\nimport { GraphicsIllustrate } from './GraphicsIllustrate/GraphicsIllustrate';\r\nimport { Instructions } from './Instructions/Instructions';\r\nimport { Introduction } from './Introduction/Introduction';\r\nimport { FAQ } from './FAQ/FAQ';\r\nimport { Login } from './Login/Login';\r\nimport clickLogo from './.image/组 63@3x.png';\r\nimport gifPicture from './.image/gif_動畫_0913.gif';\r\nimport backgroundPic from './.image/backgroundPic.png';\r\nimport ApiBase from \"../../modules/WebApiModules/ApiBase\";\r\nimport loginPic from './.image/login.png';\r\n\r\nexport class Home extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n topbar: 2,\r\n viewer: 57,\r\n allViewer: 684,\r\n isLogined: false,\r\n username: \"\",\r\n currentAuthority: \"\",\r\n };\r\n\r\n this.otherSites = [\r\n { title: \"南投縣政府\", url: 'https://www.nantou.gov.tw/' },\r\n { title: \"南投縣政府開放資料平台\", url: 'https://data.nantou.gov.tw/' },\r\n { title: \"南投縣施政統計應用圖台\", url: \"https://smap.nantou.gov.tw/map/\" },\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.getViewer();\r\n\r\n this.login();\r\n }\r\n\r\n async getViewer() {\r\n let getViewerUrl = ApiBase.MakeUrl(\"WebService/ViewerNumber/getViewersofDay\");\r\n\r\n try {\r\n const response = await fetch(getViewerUrl, {\r\n method: \"POST\",\r\n headers: new Headers({\r\n \"Content-Type\": \"application/json\",\r\n })\r\n });\r\n const json = await response.json();\r\n if (json.success) {\r\n this.setState({ viewer: json.viewer });\r\n\r\n let getAllViewer = ApiBase.MakeUrl(\"WebService/ViewerNumber/getAllViewers\");\r\n const allViewerRes = await fetch(getAllViewer, {\r\n method: \"POST\",\r\n headers: new Headers({\r\n \"Content-Type\": \"application/json\",\r\n })\r\n });\r\n const allViewerJson = await allViewerRes.json();\r\n if (allViewerJson.success) {\r\n this.setState({ allViewer: allViewerJson.viewer });\r\n }\r\n else {\r\n console.log(\"get all viewer false\");\r\n }\r\n }\r\n else {\r\n console.log(\"get viewer false\");\r\n }\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n }\r\n }\r\n\r\n gotoMap() {\r\n //window.location = \"/map\";\r\n this.props.changePage(2);\r\n }\r\n\r\n gotoGovernment() {\r\n console.log(\"(如何到達縣府)\");\r\n }\r\n privacyPolicy() {\r\n console.log(\"隱私權政策\");\r\n }\r\n openDataDeclare() {\r\n console.log(\"政府網站資料開放宣告\");\r\n }\r\n\r\n topbarVisiblity() {\r\n switch (this.state.topbar) {\r\n case 2: return ();\r\n case 3: return ();\r\n case 4: return ();\r\n case 5: return ();\r\n case 6: return ();\r\n default: return;\r\n }\r\n }\r\n\r\n dropmenu() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n gotoBackend_OnClick() {\r\n const link = document.createElement(\"a\");\r\n link.href = \"https://ntmap.nantou.gov.tw/backend/\";\r\n link.target = \"_blank\";\r\n link.click();\r\n link.remove();\r\n }\r\n\r\n logout() {\r\n let cookies = document.cookie.split(\";\");\r\n for (let i = 0; i < cookies.length; i++) {\r\n let cookie = cookies[i];\r\n let eqPos = cookie.indexOf(\"=\");\r\n let name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\r\n document.cookie = name + \"=;expires=Thu, 01 Jan 1970 00:00:00 GMT\";\r\n }\r\n ls.clear();\r\n\r\n this.setState({ isLogined: false });\r\n }\r\n\r\n login() {\r\n let lsInfo = ls.get(\"userInfo\", { decrypt: true });\r\n if (lsInfo) {\r\n this.setState({ isLogined: true, topbar: 2, username: lsInfo.name, currentAuthority: lsInfo.currentAuthority });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n {/*\"首頁_雲\"*/}\r\n \"首頁_山\"\r\n
this.gotoMap()}>\r\n \"首頁_標誌\"\r\n
\r\n
\r\n
\r\n \"首頁_動畫\"\r\n
\r\n
\r\n
\r\n {/*
this.setState({ topbar: 1 })}>最新消息
*/}\r\n
this.setState({ topbar: 2 })}>簡介
\r\n
this.setState({ topbar: 3 })}>圖資使用說明
\r\n
this.setState({ topbar: 4 })}>常見問答集
\r\n
this.setState({ topbar: 5 })}>操作說明
\r\n
好站連結\r\n {this.dropmenu()}\r\n
\r\n {!this.state.isLogined ? this.setState({ topbar: 6 })} alt=\"login\"/> :\r\n <>\r\n
{ this.logout() }}>登出
\r\n {this.state.currentAuthority === \"admin\" ?
{ this.gotoBackend_OnClick(); }}>後台
: null}\r\n
歡迎,{this.state.username}
\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.topbarVisiblity()\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
地址:54001 南投市中興路660號\r\n this.gotoGovernment()}>(如何到達縣府)\r\n
\r\n
電話:(049)2222106-9
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
上班時間:上午08:00-12:00;下午13:30-17:30;
\r\n
彈性上班時間:07:30-08:30;17:00-18:00(週六、日及假日休息)
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
本日到訪人數:{this.state.viewer}{/* | 本月到訪人數:{157} */}| 到訪人次累積總人次:{this.state.allViewer}
\r\n
\r\n this.privacyPolicy()} >隱私權政策 | \r\n this.openDataDeclare()} >政府網站資料開放宣告\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport './OviewMap.css'\r\n\r\nconst Geo3DPoint = window.Geo3DPoint;\r\nexport default class OviewMap extends Component { \r\n constructor(props) {\r\n super(props);\r\n\r\n this.initBaseLayerParam = {\r\n url: \"https://wmts.nlsc.gov.tw/wmts\",\r\n identifier: \"EMAP\",\r\n urlTemplate: \"{URL}\"\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n //開啟oview圖台\r\n window.gMainMap.Init(\"MainMap\", this.openTerrainCallback.bind(this));\r\n }\r\n\r\n async openTerrainCallback() {\r\n //window.gMainMap.layerManager = new LayerManager(window.gMainMap.TerrainView)\r\n window.gMainMap.TerrainView.setBaseLayer(this.initBaseLayerParam);\r\n //設定初始位置\r\n let initialPos = new window.GeoPoint(\r\n 120.6925705503777, 23.90282702330336, 264.3642244036524\r\n );\r\n let initialUp = new Geo3DPoint(-0.5480174933105086, 0.01615513463532407, 0.8363108504919576);\r\n let initialV = new Geo3DPoint(-0.8359477403630035, 0.024641867384041033, -0.5482555551508946);\r\n let initialCamera = new window.ov.Camera(initialPos, initialV, initialUp);\r\n window.gMainMap.TerrainView.gotoCamera(initialCamera, false);\r\n\r\n //關閉控制面板\r\n //window.gMainMap.TerrainView.controlPanel = false;\r\n //穿過地表\r\n window.gMainMap.TerrainView.throughSurface = true;\r\n //用來記錄圖層開啟狀態(每次開啟都會push圖層名進來)\r\n window.gMainMap.TerrainView.openedLayerStack = [];\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n );\r\n }\r\n}","import React from 'react';\r\n\r\n\r\n// STEP 1: createContext(<預設值>)\r\nexport const LayoutContext = React.createContext({\r\n //圖層更新\r\n layers: [],\r\n updateLayers: (updatingLayers) => {},\r\n});","import React, { Component } from 'react';\r\nimport { LayoutContext } from '../modules/ContextModules/LayoutContext';\r\n\r\nexport class SearchParamProcess extends Component {\r\n static contextType = LayoutContext;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n };\r\n\r\n }\r\n componentDidMount() {\r\n window.gMainMap.asyncWaitIsReady.then(() => {\r\n this.process()\r\n })\r\n }\r\n process() {\r\n const { travelDiaryToolContext } = this.context;\r\n let searchParams = (new URL(document.location)).searchParams;\r\n let token = searchParams.get(\"token\");\r\n if (token !== null) {\r\n travelDiaryToolContext.update({ token: token });\r\n this.readTokenRecord(token);\r\n }\r\n }\r\n async readTokenRecord(token) {\r\n this.context\r\n .draggableWindowContext[\"travelDiaryTool\"]\r\n .update({\r\n isOpened: true\r\n });\r\n }\r\n render() {\r\n return (<>)\r\n }\r\n}","import { useEffect, useState } from \"react\";\r\nimport React from \"react\";\r\n\r\nimport './BottomStatusBar.css'\r\n\r\nexport function BottomStatusBar(props) {\r\n let [coordinate, setCoordinate] = useState({ x: 0, y: 0, z: 0 });\r\n //let newepsg = 4326;\r\n //let digits = 2;\r\n let [newepsg, setNewepsg] = useState(4326);\r\n let [digits, setDigits] = useState(2);\r\n let [scale, setScale] = useState(0);\r\n\r\n const engine = window.GetEPSGEngine();\r\n\r\n useEffect(() => {\r\n let mapDiv = document.getElementById(\"MainMap\");\r\n mapDiv.onmousemove = () => {\r\n let mousePos = window.gMainMap.TerrainView.mousePos;\r\n if (mousePos !== null) {\r\n setCoordinate({\r\n x: mousePos.x,\r\n y: mousePos.y,\r\n z: mousePos.z\r\n })\r\n\r\n getScaleRuler();\r\n }\r\n };\r\n return (() => {\r\n mapDiv.onmousemove = null;\r\n });\r\n }, []);\r\n\r\n function getScaleRuler() {\r\n let mapDiv = document.getElementById(\"MainMap\");\r\n let centerW = mapDiv.getElementsByTagName(\"canvas\")[0].width / 2;\r\n let centerH = mapDiv.getElementsByTagName(\"canvas\")[0].height / 2;\r\n\r\n let dpi = js_getDPI();\r\n\r\n let p1 = new window.GeoPoint(centerW, centerH);\r\n let p2 = new window.GeoPoint(centerW + dpi[0] / (2.54), centerH);//1inch = 2.54cm\r\n window.gMainMap.TerrainView.windowToTerrain(p1);\r\n window.gMainMap.TerrainView.windowToTerrain(p2);\r\n\r\n engine.Transfer(4326, 3857, p1);\r\n engine.Transfer(4326, 3857, p2);\r\n\r\n let newScale = Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2)) * 100;\r\n setScale(newScale);\r\n }\r\n\r\n //取得dpi\r\n function js_getDPI() {\r\n var arrDPI = [];\r\n if (window.screen.deviceXDPI !== undefined) {\r\n arrDPI[0] = window.screen.deviceXDPI;\r\n arrDPI[1] = window.screen.deviceYDPI;\r\n }\r\n else {\r\n var tmpNode = document.createElement(\"MainMap\");\r\n tmpNode.style.cssText = \"width:1in;height:1in;position:absolute;left:0px;top:0px;z-index:99;visibility:hidden\";\r\n document.body.appendChild(tmpNode);\r\n arrDPI[0] = parseInt(tmpNode.offsetWidth);\r\n arrDPI[1] = parseInt(tmpNode.offsetHeight);\r\n tmpNode.parentNode.removeChild(tmpNode);\r\n }\r\n return arrDPI;\r\n }\r\n\r\n function financial(arg, digits) {\r\n return Number.parseFloat(arg).toFixed(digits);\r\n }\r\n\r\n function epsgTransform(x, y, newepsg) {\r\n var epsgEngine = new window.CEPSGEngine();\r\n epsgEngine.Init();\r\n var transferClient = epsgEngine.GenerateClient(4326, newepsg);\r\n\r\n var point = new window.GeoPoint(x, y);\r\n transferClient.Transfer(point);\r\n return point;\r\n }\r\n\r\n function selectEPSGOnChange(e) {\r\n console.log(e);\r\n switch (e) {\r\n default:\r\n case '經緯度':\r\n setNewepsg(4326);\r\n setDigits(2);\r\n break;\r\n case 'TWD97':\r\n setNewepsg(3826);\r\n setDigits(2);\r\n break;\r\n case 'TWD67':\r\n setNewepsg(3828);\r\n setDigits(2);\r\n break; \r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n 【比例(公分):1:{scale}】\r\n \r\n {}\r\n
\r\n \r\n 【坐標:\r\n \r\n \r\n X:{financial(epsgTransform(coordinate.x, coordinate.y, newepsg).x, digits)},\r\n \r\n \r\n Y:{financial(epsgTransform(coordinate.x, coordinate.y, newepsg).y, digits)},\r\n \r\n \r\n 高度:{financial(coordinate.z, 2)}(m)\r\n \r\n \r\n 】\r\n \r\n
\r\n
\r\n );\r\n}","import React, { Component } from \"react\";\r\n\r\nimport './LayersButton.css'\r\n\r\nimport layersIcon from './.image/layer-group-solid@3x.png'\r\n\r\nexport class LayersButton extends Component {\r\n render() {\r\n return (\r\n
\r\n \"圖資庫_圖示\"/\r\n 圖資庫\r\n
\r\n );\r\n }\r\n}\r\n ","import React, { Component } from \"react\";\r\n\r\nimport './Divider.css'\r\n\r\nexport class Divider extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n active: false,\r\n }\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n );\r\n }\r\n}\r\n ","import React,{Component} from \"react\";\r\n\r\nimport './OpacityRange.css'\r\n\r\nexport class OpacityRange extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n opacity: 100\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n IsNumber(this.props.value) && this.setState({\r\n opacity: this.props.value\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n 不透明:{this.state.opacity}%\r\n
\r\n\r\n );\r\n }\r\n\r\n handleChangeValue=(event) => {\r\n this.setState({\r\n opacity: Number(event.currentTarget.value)\r\n })\r\n this.props.handleChangeValue && this.props.handleChangeValue(event);\r\n }\r\n}","export class LayerModule {\r\n constructor(terrainView, layerInfo) {\r\n this.terrainView = terrainView;\r\n this.layerInfo = layerInfo;\r\n this.oviewLayer = null; \r\n }\r\n\r\n async OpenLayer(callback) {\r\n console.log(\"open\");\r\n }\r\n\r\n async RemoveLayer() { \r\n if (this.oviewLayer) {\r\n // 有參考的圖層到都加進去\r\n let index = window.gMainMap.TerrainView.openedLayerStack.indexOf(this.oviewLayer.name || this.oviewLayer.layername);\r\n if (index >= 0) {\r\n window.gMainMap.TerrainView.openedLayerStack.splice(index, 1); \r\n }\r\n //再搜尋一次,確定是否為最後一個圖層\r\n index = window.gMainMap.TerrainView.openedLayerStack.indexOf(this.oviewLayer.name || this.oviewLayer.layername);\r\n if (index < 0) {\r\n if (IsClass(this.oviewLayer, ov.TerrainOverlay))\r\n this.terrainView.removeTerrainOverlay(this.oviewLayer);\r\n else\r\n this.terrainView.removeLayer(this.oviewLayer);\r\n delete this.oviewLayer;\r\n }\r\n }\r\n }\r\n\r\n async SetOpacity(v) {\r\n v = parseFloat(v);\r\n if (isNaN(v)) {\r\n return;\r\n }\r\n if (v > 1.0) {\r\n v = 1.0;\r\n }\r\n if (v < 0) {\r\n v = 0;\r\n }\r\n\r\n if (this.oviewLayer) {\r\n if (IsClass(this.oviewLayer, ov.TerrainOverlay))\r\n this.oviewLayer.opacity = v;\r\n else {\r\n this.oviewLayer.setOpacity(v);\r\n }\r\n }\r\n } \r\n\r\n async Goto() {\r\n if (this.layerInfo.Goto) {\r\n this.terrainView.gotoCamera(\r\n new window.ov.Camera(\r\n new Geo3DPoint(this.layerInfo.Goto.Pos),\r\n new Geo3DPoint(this.layerInfo.Goto.V),\r\n new Geo3DPoint(this.layerInfo.Goto.Up),\r\n ), true);\r\n } else if (this.oviewLayer && this.oviewLayer.goto) {\r\n this.oviewLayer.goto();\r\n }\r\n }\r\n}\r\n","import { LayerModule } from './.LayerModule.js';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class OverlayLayerModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs)=>{\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n this.oviewLayer = window.gMainMap.TerrainView.addTerrainWMTSOverlay({\r\n url: result.URL || `${window.gMainMap.OviewMapServerUrlUnderProxy()}/wmts`,\r\n urlTemplate: result.URLTemplate || window.gMainMap.ProxyUrlTemplete(),\r\n identifier: result.ID,\r\n layername: result.Name,\r\n }, rs);\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param)=>{\r\n console.log(param);\r\n if (param.message === \"duplicate name exists\") { // 如果只是名稱重複當作成功\r\n this.oviewLayer = window.gMainMap.TerrainView.getTerrainOverlay(this.layerInfo.Name);\r\n param.success = true;\r\n }\r\n // 有參考的圖層到都加進去\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.layername);\r\n callback && callback(param);\r\n return param.success;\r\n }, ()=>{\r\n return false;\r\n });\r\n }\r\n}","import { LayerModule } from './.LayerModule';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class Layer3DTilesModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs)=>{\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n window.gMainMap.TerrainView.addOGC3DTilesLayer({\r\n url: result.URL,\r\n urlTemplate: result.URLTemplate || window.gMainMap.ProxyUrlTemplete(),\r\n identifier: result.ID,\r\n callback: (success, layer) => {\r\n rs({ success, layer })\r\n },\r\n });\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param)=>{\r\n console.log(param);\r\n // 有參考的圖層到都加進去\r\n this.oviewLayer = param.layer;\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.name);\r\n \r\n callback && callback(param);\r\n return param.success;\r\n }, ()=>{\r\n return false;\r\n });\r\n }\r\n}","import { LayerModule } from './.LayerModule';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class ModelLayerModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs)=>{\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n this.oviewLayer = window.gMainMap.TerrainView.addModelLayer({\r\n url: window.gMainMap.OviewMapServerUrlUnderProxy(),\r\n urlTemplate: result.URLTemplate || window.gMainMap.ProxyUrlTemplete(),\r\n identifier: result.ID,\r\n callback: rs,\r\n });\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param)=>{\r\n console.log(param);\r\n if (param.message === \"duplicate name exists\") { // 如果只是名稱重複當作成功\r\n this.oviewLayer = window.gMainMap.TerrainView.findLayer(this.layerInfo.Name);\r\n param.success = true;\r\n }\r\n // 有參考的圖層到都加進去\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.name);\r\n callback && callback(param);\r\n return param.success;\r\n }, ()=>{\r\n return false;\r\n });\r\n }\r\n}","import { LayerModule } from './.LayerModule';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class ModelsetLayerModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs)=>{\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n this.oviewLayer = window.gMainMap.TerrainView.addModelSetLayer({\r\n url: window.gMainMap.OviewMapServerUrlUnderProxy(),\r\n urlTemplate: result.URLTemplate || window.gMainMap.ProxyUrlTemplete(),\r\n identifier: result.ID,\r\n callback: (success, modelSetLayer) => {\r\n if (success) {\r\n\r\n rs({ success: success, layer: modelSetLayer });\r\n }\r\n else {\r\n rs({ success: success, layer: modelSetLayer });\r\n }\r\n },\r\n });\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param)=>{\r\n console.log(param);\r\n this.oviewLayer = param.layer;\r\n if (param.message === \"duplicate name exists\") { // 如果只是名稱重複當作成功\r\n this.oviewLayer = window.gMainMap.TerrainView.findLayer(this.layerInfo.Name);\r\n param.success = true;\r\n }\r\n // 有參考的圖層到都加進去\r\n param.ID = this.layerInfo.ID;\r\n param.Name = this.layerInfo.Name;\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.name);\r\n callback && callback(param);\r\n return param.success;\r\n }, ()=>{\r\n return false;\r\n });\r\n }\r\n}","import { LayerModule } from './.LayerModule';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class PhotogrammetryModelLayerModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs)=>{\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n this.oviewLayer = window.gMainMap.TerrainView.addPhotogrammetryModelLayer({\r\n url: window.gMainMap.OviewMapServerUrlUnderProxy(),\r\n urlTemplate: result.URLTemplate || window.gMainMap.ProxyUrlTemplete(),\r\n identifier: result.ID,\r\n callback: rs,\r\n });\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param)=>{ \r\n console.log(param);\r\n if (param.message === \"duplicate name exists\") { // 如果只是名稱重複當作成功\r\n this.oviewLayer = window.gMainMap.TerrainView.findLayer(this.layerInfo.Name);\r\n param.success = true;\r\n }\r\n // 有參考的圖層到都加進去\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.name);\r\n callback && callback(param);\r\n return param.success;\r\n }, ()=>{\r\n return false;\r\n });\r\n }\r\n}","import { LayerModule } from './.LayerModule';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class PipelineLayerModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs)=>{\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n this.oviewLayer = window.gMainMap.TerrainView.addPipelineLayer({\r\n url: window.gMainMap.OviewMapServerUrlUnderProxy(),\r\n urlTemplate: result.URLTemplate || window.gMainMap.ProxyUrlTemplete(),\r\n identifier: result.ID,\r\n callback: (success, modelSetLayer) => {\r\n if (success) {\r\n\r\n rs({ success: success, layer: modelSetLayer });\r\n }\r\n else {\r\n rs({ success: success, layer: modelSetLayer });\r\n }\r\n },\r\n });\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param)=>{\r\n console.log(param);\r\n this.oviewLayer = param.layer;\r\n if (param.message === \"duplicate name exists\") { // 如果只是名稱重複當作成功\r\n this.oviewLayer = window.gMainMap.TerrainView.findLayer(this.layerInfo.Name);\r\n param.success = true;\r\n }\r\n // 有參考的圖層到都加進去\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.name);\r\n callback && callback(param);\r\n return param.success;\r\n }, ()=>{ //fail\r\n return false;\r\n });\r\n }\r\n}","import { LayerModule } from './.LayerModule';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class CustomEconomicDataLayerModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs) => {\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n this.entityList = [];\r\n this.colorList = [];\r\n this.lines = [];\r\n this.risingEntity = [];\r\n this.stopAnimation = true;\r\n this.get3DDate(result.ID,\r\n (obj) => {\r\n this.oviewLayer = this.getCustomLayer();\r\n obj.result.forEach(result => {\r\n let polygonset = new window.GeoPolygonSet();\r\n polygonset.FromGeoJSON(result.Geo);\r\n //console.log(polygonset.Bounds[0].SimplifyByPointCount(1000000));\r\n let color = this.randomColor();\r\n\r\n let param = {};\r\n param.geo = polygonset;\r\n param.height = 0;\r\n param.surfaceHeight = 4000;\r\n param.epsg = 3826;\r\n param.color = color;\r\n param.drawBorder = false;\r\n param.borderColor = color;\r\n let entity = this.oviewLayer.addPolygonPrismEntity(param);\r\n\r\n let textParam = {};\r\n textParam.geo = new window.GeoPoint(polygonset.Center.x, polygonset.Center.y, 4000 + 100 * result.count);\r\n textParam.color = new window.ov.Color(\"#FFFFFF\");\r\n textParam.text = result.townName + \"(\" + result.count + \"筆)\";\r\n textParam.size = 14;\r\n textParam.borderColor = new window.ov.Color(\"#000000\");\r\n textParam.borderSize = 4;\r\n textParam.epsg = 3826;\r\n\r\n //this.oviewLayer.addTextEntity(textParam);\r\n\r\n let points = [];\r\n polygonset.Bounds[0].Buffer.forEach(point => {\r\n points.push(new window.GeoPoint(point.x, point.y, 4000));\r\n });\r\n let line = new window.GeoPolyline(points);\r\n this.lines.push(line);\r\n\r\n this.risingEntity.push({ entity: entity, textParam: textParam, count: result.count })\r\n this.entityList.push({ geo: polygonset, townName: result.townName, count: result.count });\r\n });\r\n console.log(this.entityList);\r\n this.risingAnimation();\r\n let param = { success: obj.success, ID: result.ID + \"(3D社會經濟地圖)\" };\r\n rs(param)\r\n },\r\n () => { console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`) })\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param) => {\r\n console.log(param);\r\n if (param.message === \"duplicate name exists\") { // 如果只是名稱重複當作成功\r\n this.oviewLayer = window.gMainMap.TerrainView.findLayer(this.layerInfo.Name);\r\n param.success = true;\r\n }\r\n // 有參考的圖層到都加進去\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.name);\r\n callback && callback(param);\r\n return param.success;\r\n }, () => {\r\n return false;\r\n });\r\n }\r\n\r\n async get3DDate(ID, successCallback, errorCallback) {\r\n let url = window.gMainMap.MakeDoCmdUrl(\"CMD_GetStatisticsByTownArea\");\r\n\r\n let data = { \"counity\": \"南投縣\", \"town\": \"\", \"layername\": ID };\r\n\r\n try {\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n headers: new Headers({\r\n \"Content-Type\": \"application/json\",\r\n }),\r\n body: JSON.stringify(data)\r\n });\r\n const json = await response.json();\r\n\r\n if (json.success) {\r\n successCallback(json);\r\n }\r\n else {\r\n errorCallback(json);\r\n }\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n }\r\n }\r\n\r\n randomColor() {\r\n let r, g, b;\r\n let isDuplicate = true;\r\n while (isDuplicate) {\r\n isDuplicate = false;\r\n\r\n r = Math.floor(Math.random() * 256);\r\n g = Math.floor(Math.random() * 256);\r\n b = Math.floor(Math.random() * 256);\r\n\r\n for (let i = 0; i < this.colorList.length; i++) {\r\n if (this.colorList.r === r && this.colorList.g === g && this.colorList.b === b) {\r\n isDuplicate = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n let color = new window.ov.Color(r, g, b);\r\n this.colorList.push(color);\r\n\r\n return color;\r\n }\r\n\r\n repaint(list) {\r\n if (this.stopAnimation) {\r\n this.oviewLayer.removeAllEntity();\r\n\r\n this.entityList.forEach((result, index) => {\r\n let color = this.colorList[index]\r\n\r\n let param = {};\r\n let textParam = {};\r\n if (list.indexOf(result.townName) >= 0 && result.count > 0) {\r\n param.geo = result.geo;\r\n param.height = 100 * result.count;\r\n param.surfaceHeight = 4000;\r\n param.epsg = 3826;\r\n param.color = color;\r\n param.drawBorder = false;\r\n this.oviewLayer.addPolygonPrismEntity(param);\r\n\r\n textParam.geo = new window.GeoPoint(result.geo.Center.x, result.geo.Center.y, 4000 + 100 * result.count);\r\n textParam.color = new window.ov.Color(\"#FFFFFF\");\r\n textParam.text = result.townName + \"(\" + result.count + \"筆)\";\r\n textParam.size = 14;\r\n textParam.borderColor = new window.ov.Color(\"#000000\");\r\n textParam.borderSize = 4;\r\n textParam.epsg = 3826;\r\n }\r\n else {\r\n param.geo = this.lines[index];\r\n param.color = color;\r\n param.size = 4;\r\n param.epsg = 3826;\r\n this.oviewLayer.addPolylineEntity(param);\r\n\r\n textParam.geo = new window.GeoPoint(result.geo.Center.x, result.geo.Center.y, 4000);\r\n textParam.color = new window.ov.Color(\"#FFFFFF\");\r\n textParam.text = result.townName + \"(\" + result.count + \"筆)\";\r\n textParam.size = 14;\r\n textParam.borderColor = new window.ov.Color(\"#000000\");\r\n textParam.borderSize = 4;\r\n textParam.epsg = 3826;\r\n }\r\n\r\n this.oviewLayer.addTextEntity(textParam);\r\n });\r\n }\r\n }\r\n\r\n risingAnimation() {\r\n let timeset;\r\n timeset = setInterval(function () {\r\n let stop = true;\r\n this.risingEntity.forEach(entity => {\r\n let height = entity.entity.getParameter().height;\r\n if (!entity.entity || !this.oviewLayer) {\r\n clearInterval(timeset);\r\n }\r\n\r\n if (height < 100 * entity.count) {\r\n stop = false;\r\n height += 100 * (entity.count / 10);\r\n entity.entity.update({\r\n height: height,\r\n });\r\n }\r\n });\r\n\r\n if (stop) {\r\n this.risingEntity.forEach((entity, index) => {\r\n if (this.oviewLayer) {\r\n this.oviewLayer.addTextEntity(entity.textParam);\r\n\r\n if (entity.count === 0) {\r\n let param = {};\r\n param.geo = this.lines[index];\r\n param.color = this.colorList[index];\r\n param.size = 4;\r\n param.epsg = 3826;\r\n this.oviewLayer.addPolylineEntity(param);\r\n }\r\n }\r\n });\r\n clearInterval(timeset);\r\n this.stopAnimation = true;\r\n }\r\n }.bind(this), 100);\r\n }\r\n\r\n getCustomLayer() {\r\n try {\r\n let layer = window.gMainMap.TerrainView.findLayer(this.layerInfo.Name);\r\n if (!layer) {\r\n layer = window.gMainMap.TerrainView.addCustomLayer(this.layerInfo.Name);\r\n }\r\n layer.setDepthTest(false);\r\n return layer;\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n}","import { LayerModule } from './.LayerModule.js';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class VectorTileLayerModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs) => {\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n let url = result.URL || `${window.gMainMap.OviewMapServerUrlUnderProxy()}/3857/${result.ID}/{z}/{x}/{y}.vector.mvt`\r\n console.log(url);\r\n this.oviewLayer = window.gMainMap.TerrainView.addTerrainVectorTileOverlay({\r\n url: url,\r\n urlTemplate: result.URLTemplate || window.gMainMap.ProxyUrlTemplete(),\r\n layername: result.Name,\r\n lineWidth: 5,\r\n minLevel: 0,\r\n maxLevel: 18,\r\n opacity: 1.0,\r\n visibleFactor: 20.0,\r\n isGeoJson: false,\r\n pointSetting: {\r\n textLabel: result.TextLabel,\r\n fadeEffect: true,\r\n allowOverlapping: false,\r\n groundLineColor: new window.ov.Color(\"#FF0000\"),\r\n fontTable: {\r\n \"DEFAULT\": {\r\n font: \"標楷體\",\r\n fontSize: 16,\r\n fontColor: new window.ov.Color(\"#000000\"),\r\n fontBorderSize: 1,\r\n fontBorderColor: \"#ffff00\",\r\n pullUpY: 100,\r\n },\r\n }\r\n },\r\n polylineSetting: {\r\n colorTable: {\r\n \"DEFAULT\": {\r\n color: \"#e0e0e080\"\r\n },\r\n }\r\n },\r\n polygonSetting: {\r\n //colorLabel: \"show_color_label\",\r\n colorTable: {\r\n \"DEFAULT\": {\r\n fillColor: \"#FF0000\",\r\n boundaryColor: \"#00FF00\",\r\n boundaryWidth: 2\r\n }\r\n }\r\n }\r\n }, rs);\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param) => {\r\n console.log(param);\r\n console.log(this.oviewLayer);\r\n if (param.message === \"duplicate name exists\") { // 如果只是名稱重複當作成功\r\n this.oviewLayer = window.gMainMap.TerrainView.getTerrainOverlay(this.layerInfo.Name);\r\n param.success = true;\r\n }\r\n // 有參考的圖層到都加進去\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.layername);\r\n callback && callback(param);\r\n return param.success;\r\n }, () => {\r\n return false;\r\n });\r\n }\r\n}","import { LayerModule } from './.LayerModule';\r\nimport ApiLayersMap from '../WebApiModules/ApiLayersMap.js';\r\n\r\nexport class LayerI3SModule extends LayerModule {\r\n async OpenLayer(callback) {\r\n return new Promise((rs) => {\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: this.layerInfo.FolderFullName, Name: this.layerInfo.Name },\r\n (obj) => {\r\n console.log(obj);\r\n let result = obj.result;\r\n window.gMainMap.TerrainView.addOGCI3SLayer({\r\n url: result.URL,\r\n urlTemplate: result.URLTemplate || window.gMainMap.ProxyUrlTemplete(),\r\n identifier: result.ID,\r\n callback: (success, layer) => {\r\n rs({ success, layer })\r\n },\r\n });\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }).then((param) => {\r\n console.log(param);\r\n // 有參考的圖層到都加進去\r\n this.oviewLayer = param.layer;\r\n window.gMainMap.TerrainView.openedLayerStack.push(this.oviewLayer.name);\r\n\r\n callback && callback(param);\r\n return param.success;\r\n }, () => {\r\n return false;\r\n });\r\n }\r\n}","import { LayerModule } from './.LayerModule.js';\r\nimport { LayerModuleFactory } from './.LayerModuleFactory'\r\n\r\nexport class LayerGroupModule extends LayerModule {\r\n constructor(terrainView, layerInfo) {\r\n super(terrainView, layerInfo);\r\n\r\n this.children = this._GetChildren();\r\n }\r\n\r\n _GetChildren() {\r\n let rtn = [];\r\n\r\n for (let i in this.layerInfo.Layers) {\r\n let layer = this.layerInfo.Layers[i];\r\n rtn.push(LayerModuleFactory.CreateLayer(this.terrainView, layer));\r\n }\r\n\r\n return rtn;\r\n }\r\n\r\n\r\n async OpenLayer(callback) {\r\n let promises = [];\r\n this.children.forEach((child) => {\r\n promises.push(child.OpenLayer());\r\n });\r\n Promise.all(promises).then((results) => {\r\n let success = true;\r\n results.forEach((result) => {\r\n success &= result;\r\n })\r\n callback && callback({ success: success });\r\n });\r\n }\r\n async RemoveLayer() {\r\n this.children.forEach((child) => {\r\n child.RemoveLayer();\r\n });\r\n }\r\n async SetOpacity(value) {\r\n this.children.forEach((child) => {\r\n child.SetOpacity(value);\r\n });\r\n }\r\n\r\n async Goto() {\r\n if (this.layerInfo.Goto) {\r\n this.terrainView.gotoCamera(\r\n new window.ov.Camera(\r\n new window.Geo3DPoint(this.layerInfo.Goto.Pos),\r\n new window.Geo3DPoint(this.layerInfo.Goto.V),\r\n new window.Geo3DPoint(this.layerInfo.Goto.Up),\r\n ), true);\r\n } else {\r\n // 定位到第一個子圖層\r\n this.children.length > 0 && this.children[0].Goto();\r\n }\r\n }\r\n}","import { LayerModule } from \"./.LayerModule\";\r\nimport { OverlayLayerModule } from \"./OverlayLayerModule\";\r\nimport { Layer3DTilesModule } from \"./Layer3DTilesModule\";\r\nimport { ModelLayerModule } from \"./ModelLayerModule\";\r\nimport { ModelsetLayerModule } from \"./ModelsetLayerModule\";\r\nimport { PhotogrammetryModelLayerModule } from \"./PhotogrammetryModelLayerModule\";\r\nimport { PipelineLayerModule } from \"./PipelineLayerModule\";\r\nimport { CustomEconomicDataLayerModule } from \"./CustomEconomicDataLayerModule\";\r\nimport { VectorTileLayerModule } from \"./VectorTileLayerModule\";\r\nimport { LayerI3SModule } from \"./LayerI3SModule\";\r\nimport { LayerGroupModule } from \"./LayerGroupModule\";\r\n\r\nexport class LayerModuleFactory {\r\n static CreateLayer = (terrainView, layerInfo) => {\r\n let rtn;\r\n let type = layerInfo.Class.toLowerCase();\r\n switch (type) {\r\n case \"folder\": {\r\n rtn = new LayerGroupModule(terrainView, layerInfo);\r\n break;\r\n }\r\n case \"overlay\": {\r\n rtn = new OverlayLayerModule(terrainView, layerInfo);\r\n break;\r\n }\r\n case \"modelset\": {\r\n rtn = new ModelsetLayerModule(terrainView, layerInfo);\r\n break;\r\n }\r\n case \"pipeline\": {\r\n rtn = new PipelineLayerModule(terrainView, layerInfo);\r\n break;\r\n }\r\n case \"vectortile\": {\r\n rtn = new VectorTileLayerModule(terrainView, layerInfo);\r\n break;\r\n }\r\n // case \"vector3d\": {\r\n // rtn = new VectorLayerController(terrainView, layerInfo);\r\n // break;\r\n // }\r\n case \"bim\": {\r\n rtn = new ModelLayerModule(terrainView, layerInfo);\r\n break;\r\n }\r\n case \"photogrammetry\": {\r\n rtn = new PhotogrammetryModelLayerModule(terrainView, layerInfo);\r\n break;\r\n }\r\n case \"customeconomic\": {\r\n rtn = new CustomEconomicDataLayerModule(terrainView, layerInfo);\r\n break;\r\n }\r\n // case \"well\": {\r\n // rtn = new WellLayerController(terrainView, layerInfo);\r\n // break;\r\n // }\r\n // case \"landmark3d\": {\r\n // rtn = new LandMark3DLayerController(terrainView, layerInfo);\r\n // break;\r\n // }\r\n // case \"multi\": {\r\n // rtn = new MultiLayerController(terrainView, layerInfo);\r\n // break;\r\n // }\r\n case \"3dtiles\": {\r\n rtn = new Layer3DTilesModule(terrainView, layerInfo);\r\n break;\r\n }\r\n case \"i3s\": {\r\n rtn = new LayerI3SModule(terrainView, layerInfo);\r\n break;\r\n }\r\n case \"clicklayer\":\r\n default:\r\n rtn = new LayerModule(terrainView, layerInfo)\r\n break;\r\n }\r\n return rtn;\r\n }\r\n}","import React, { Component } from \"react\";\r\n\r\nimport './Loading.css'\r\n\r\nexport class Loading extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n ","import React, { Component } from 'react';\r\n\r\nimport './LocateButton.css'\r\n\r\nimport imgLocate from './.image/locate.png'\r\nexport class LocateButton extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \"定位\"/\r\n
\r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { OpacityRange } from \"../../../../.common/OpacityRange/OpactiyRange\";\r\nimport { LayerModuleFactory } from \"../../../../../modules/LayerModules/.LayerModuleFactory\";\r\nimport { Loading } from \"../../../../.common/Loading/Loading\";\r\nimport { LayoutContext } from '../../../../../modules/ContextModules/LayoutContext';\r\n\r\nimport './LayerItem.css'\r\n\r\nimport commonImg from './.image/layer.png'\r\nimport folderImg from './.image/folder.png'\r\nimport backgroundImg from './.image/矩形 51@3x.png'\r\nimport { LocateButton } from \"../../../../.common/Buttons/Locate/LocateButton\";\r\n//import { RemoveButton } from \"../../../../.common/Buttons/Remove/RemoveButton\";\r\n\r\nexport class LayerItem extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n this.layerModule = null;\r\n this.coreLayer = null;\r\n\r\n this.state = {\r\n isOpenedCoreLayers: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.layerModule = LayerModuleFactory.CreateLayer(window.gMainMap.TerrainView, this.props.data);\r\n this.layerModule.OpenLayer(this.openCallback);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.handleRemove();\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \"圖層項目_背景\"\r\n {/* 圖層標頭 */}\r\n
\r\n
\r\n \"圖層項目_圖示\"\r\n
\r\n {this.props.data.Name}\r\n
\r\n
\r\n {\r\n this.state.isOpenedCoreLayers ?\r\n :\r\n \r\n }\r\n {/**/}\r\n
\r\n
\r\n {/* {\r\n this.state.isOpenedCoreLayers ?\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n : \r\n } */}\r\n\r\n
\r\n {/* 透明度拉條 */}\r\n {\r\n this.state.isOpenedCoreLayers && this.props.data.ID !== \"pipeline\" && !this.props.data.Name.includes(\"3DTiles\") ?\r\n
\r\n \r\n
\r\n : null\r\n }\r\n\r\n
\r\n );\r\n }\r\n\r\n imgWithType() {\r\n switch (this.props.data.Class) {\r\n case \"FOLDER\":\r\n return folderImg;\r\n default:\r\n return commonImg;\r\n }\r\n }\r\n\r\n openCallback = (param) => {\r\n const { socioeconomicContext } = this.context;\r\n const { readilyAvailableHouseToolContext } = this.context;\r\n this.setState({\r\n isOpenedCoreLayers: param.success\r\n });\r\n\r\n this.coreLayer = this.layerModule.oviewLayer;\r\n if (param.ID && param.ID === \"南投市近似化建物\") {\r\n readilyAvailableHouseToolContext.set(this.coreLayer);\r\n this.coreLayer.setOnClickEntity(this.addBuildOnClickEntity.bind(this));\r\n }\r\n\r\n if (param.ID && param.ID.includes(\"3D社會經濟地圖\")) {\r\n if (socioeconomicContext.layerModule) {\r\n socioeconomicContext.layerModule.RemoveLayer();\r\n this.props.handleRemove([socioeconomicContext.layerModule.layerInfo.Name]);\r\n }\r\n socioeconomicContext.update({ layerModule: this.layerModule });\r\n socioeconomicContext.remove();\r\n\r\n this.context\r\n .draggableWindowContext[\"socioeconomic\"]\r\n .update({\r\n isOpened: true,\r\n isMinimized: false\r\n });\r\n }\r\n }\r\n\r\n //建物模型點擊事件\r\n addBuildOnClickEntity(id, pos) {\r\n const { LayerAttrsRndContext } = this.context;\r\n const { readilyAvailableHouseToolContext } = this.context;\r\n const { draggableWindowContext } = this.context;\r\n this.coreLayer.getColAndAttrs(id, function (attrs) {\r\n let obj = {};\r\n for (let i = 1; i < attrs.ATTR.length; i++) {\r\n let col = LayerAttrsRndContext.attrsMaps[0][attrs.COL[i]];\r\n obj[col] = attrs.ATTR[i];\r\n }\r\n\r\n LayerAttrsRndContext.update({\r\n isShowLayerAttrsRnd: true,\r\n layerAttrsRnd: obj,\r\n layerAttrsRndTitle: attrs.ATTR[2] + \":\" + attrs.ATTR[0],\r\n layerAttrsRndPosition: { x: pos.x, y: pos.y }\r\n });\r\n });\r\n this.coreLayer.resetAllOpacityEntityID();\r\n this.coreLayer.resetAllHideEntityID();\r\n this.coreLayer.removeBuildingFloorColor(id);\r\n if (draggableWindowContext.readilyAvailableHouseTool.isOpened) {\r\n this.coreLayer.setOpacityByEntityID(id, 0.7);\r\n this.coreLayer.setHideByEntityID(id, window.ov.HIDE.DISABLE_SELECT);\r\n readilyAvailableHouseToolContext.setID(id);\r\n }\r\n }\r\n\r\n handleChangeOpacityValue = (event) => {\r\n this.layerModule.SetOpacity(Number(event.currentTarget.value) / 100);\r\n if (this.props.data.ID.includes(\"社會經濟\") && this.props.data.Name.includes(\"3D\")) {\r\n this.coreLayer.entities.forEach(entity => {\r\n entity.update({ opacity: Number(event.currentTarget.value) / 100 });\r\n })\r\n }\r\n }\r\n\r\n handleLocate = () => {\r\n this.layerModule.Goto();\r\n }\r\n\r\n handleRemove = () => {\r\n const { socioeconomicContext } = this.context;\r\n const { readilyAvailableHouseToolContext } = this.context;\r\n console.log(this.props.data.Name);\r\n\r\n if (this.props.data.ID === \"南投市近似化建物\") {\r\n readilyAvailableHouseToolContext.remove();\r\n }\r\n\r\n if (this.props.data.ID.includes(\"社會經濟\") && this.props.data.Name.includes(\"3D\")) {\r\n socioeconomicContext.update({ isEmptyModule: true });\r\n socioeconomicContext.remove();\r\n\r\n this.context\r\n .draggableWindowContext[\"socioeconomic\"]\r\n .update({\r\n isOpened: false,\r\n isMinimized: false\r\n });\r\n }\r\n this.layerModule.RemoveLayer();\r\n this.props.handleRemove([this.props.data.Name]);\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { LayoutContext } from \"../../../../modules/ContextModules/LayoutContext\";\r\nimport { LayerItem } from \"./LayerItem/LayerItem\";\r\n\r\nimport './SelectedLayerList.css'\r\n\r\nexport class SelectedLayerList extends Component {\r\n static contextType = LayoutContext;\r\n render() {\r\n return (\r\n
\r\n {\r\n this.context.selectedLayerContext.layers.map((layer)=>{\r\n return (\r\n \r\n );\r\n })\r\n } \r\n
\r\n );\r\n }\r\n\r\n handleRemove = (removeLayers) => {\r\n this.context\r\n .selectedLayerContext\r\n .updateLayers({\r\n remove:removeLayers\r\n })\r\n }\r\n}\r\n ","import React, { Component } from \"react\";\r\nimport { LayersButton } from \"./LayersButton/LayersButton\";\r\nimport { Divider } from \"./../../.common/Divider/Divider\"\r\nimport { SelectedLayerList } from \"./SelectedLayerList/SelectedLayerList\";\r\nimport { LayoutContext } from \"../../../modules/ContextModules/LayoutContext\";\r\n\r\nimport './RightPanel.css'\r\n\r\nexport class RightPanel extends Component {\r\n static contextType = LayoutContext;\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n layersButtonClick = () => {\r\n this.context\r\n .draggableWindowContext\r\n .layersMap\r\n .update({\r\n isOpened: true,\r\n isMinimized: false\r\n });\r\n }\r\n}\r\n ","import React, { Component } from 'react';\r\n\r\nimport './MinimizeButton.css'\r\nexport class MinimizeButton extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './MaximizeButton.css'\r\nexport class MaximizeButton extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './CancelButton.css'\r\n\r\nimport cancel from './.image/cancel.png'\r\nexport class CancelButton extends Component {\r\n render() {\r\n return (\r\n
\r\n \"取消\"/\r\n
\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport Draggable from 'react-draggable';\r\nimport { Rnd } from \"react-rnd\";\r\n\r\nimport { MinimizeButton } from '../../.common/Buttons/Minimize/MinimizeButton';\r\nimport { MaximizeButton } from '../../.common/Buttons/Maximize/MaximizeButton';\r\nimport { CancelButton } from '../../.common/Buttons/Cancel/CancelButton';\r\n\r\n//\r\nimport './DraggableWindow.css'\r\n\r\n//圖片\r\n\r\nexport class DraggableWindow extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n opacity: false,\r\n width: this.props.width || '500px',\r\n height: this.props.height || '500px',\r\n }\r\n }\r\n\r\n render() {\r\n {/*< Draggable\r\n handle = \".draggableWindow__header\"\r\n defaultPosition = { this.props.defaultPosition || { x: 200, y: 200 } }\r\n bounds = \"parent\"\r\n position = { this.props.position }\r\n grid = { [5, 5]}\r\n scale = { 1}\r\n onStart = { this.handleStart }\r\n onDrag = { this.handleDrag }\r\n onStop = { this.handleStop } >*/}\r\n {/**/ }\r\n return (\r\n {\r\n if (this.props.handleResize) {\r\n this.props.handleResize(ref.style.width, ref.style.height);\r\n }\r\n\r\n this.setState({\r\n width: (ref.style.width),\r\n height: (ref.style.height),\r\n });\r\n }}\r\n style={{ display: this.props.isShow ? 'inline-block' : 'none' }}\r\n >\r\n
\r\n
\r\n \r\n {this.props.header || this.header()}\r\n \r\n
\r\n \r\n {/* */}\r\n {this.props.header != \"社會經濟資料\" ? : null}\r\n
\r\n
\r\n
\r\n {this.props.content || this.content()}\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n header() {\r\n return \"標題\"\r\n }\r\n\r\n content() {\r\n return (
配置內容
);\r\n }\r\n\r\n display = () => {\r\n return this.context\r\n .draggableWindowContext\r\n .layersMap\r\n }\r\n\r\n handleStart = () => {\r\n this.setState({\r\n opacity: true\r\n })\r\n this.props.handleStart && this.props.handleStart();\r\n };\r\n\r\n handleDrag = () => {\r\n this.props.handleDrag && this.props.handleDrag();\r\n }\r\n\r\n handleStop = () => {\r\n this.setState({\r\n opacity: false\r\n })\r\n this.props.handleStop && this.props.handleStop();\r\n };\r\n\r\n handleMinimize = () => {\r\n console.log(\"縮小\");\r\n this.props.handleMinimize && this.props.handleMinimize();\r\n }\r\n\r\n handleMaximize = () => {\r\n console.log(\"放大\");\r\n this.props.handleMaximize && this.props.handleMaximize();\r\n }\r\n\r\n handleCancel = () => {\r\n console.log(\"關閉\");\r\n this.props.handleCancel && this.props.handleCancel();\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport ApiLayersMap from '../../../../../../modules/WebApiModules/ApiLayersMap';\r\nimport { LayerContext } from '../../../../../../modules/ContextModules/LayoutContext';\r\nimport { LayoutContext } from '../../../../../../modules/ContextModules/LayoutContext';\r\nimport './Layer.css'\r\n\r\nimport layerImg from './.image/layer.png'\r\n\r\nexport class Layer extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n isOpened: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n return (\r\n
  • \r\n
    \r\n { e.stopPropagation(); }}\r\n onChange={(e) => { this.handleLayerOpen(e); }}\r\n checked={this.isCheck()}\r\n />\r\n
    \r\n \"圖層_圖示\"/\r\n
    \r\n {this.props.data.Name}\r\n
    \r\n
  • \r\n );\r\n }\r\n\r\n isCheck() {\r\n const { selectedLayerContext } = this.context;\r\n for (const layer of selectedLayerContext.layers) {\r\n if (layer.Name === this.props.data.Name) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n handleLayerOpen = (event) => {\r\n // 開啟\r\n \r\n if (/*event.currentTarget.checked*/!this.isCheck() === true) {\r\n this.props.updateLayerList.addLayerToList(this.props.data/*{\r\n Name: this.props.name,\r\n Data: this.props.data,\r\n Class: this.props.class\r\n }*/);\r\n // ApiLayersMap.ListLayerInfo(\r\n // { FolderFullName: this.props.data, Name: this.props.name },\r\n // (result) => {\r\n // console.log(result);\r\n // },\r\n // () => {\r\n // console.error(`取得${this.props.data}/${this.props.name}圖層資訊失敗`)\r\n // }\r\n // )\r\n } else {\r\n this.props.updateLayerList.removeLayerFromList(this.props.data/*{\r\n Name: this.props.name,\r\n Data: this.props.data,\r\n Class: this.props.class\r\n }*/);\r\n }\r\n // 關閉\r\n // 通知已選圖層\r\n \r\n event.stopPropagation();\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './Folder.css'\r\n\r\nimport { Layer } from '../Layer/Layer';\r\n\r\nimport expandImg from './.image/expand.png'\r\nimport collapseImg from './.image/collapse.png'\r\nimport folderImg from './.image/folder.png'\r\n\r\nexport class Folder extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n expand: false\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
  • \r\n
    \r\n
    \r\n \"圖層_圖示\"/\r\n
    \r\n {/*{e.stopPropagation();}} \r\n onChange={this.handleLayerOpen}>*/}\r\n
    \r\n \"圖層_圖示\"/ \r\n
    \r\n {this.props.data.Name}\r\n
    \r\n
    \r\n
      \r\n
      \r\n {this.parseData(this.props.data.Layers)}\r\n
      \r\n
    \r\n
    \r\n
  • \r\n );\r\n }\r\n\r\n parseData = (data) => {\r\n return data.map((item, index)=>{\r\n return (\r\n item.Class==\"FOLDER\" ?\r\n :\r\n \r\n );\r\n });\r\n }\r\n\r\n handleLayerOpen = (event) => {\r\n if (event.currentTarget.checked === true) {\r\n this.props.updateLayerList.addLayerToList(this.props.data/*{\r\n Name: this.props.name,\r\n Data: this.props.data,\r\n Class: this.props.class\r\n }*/)\r\n } else {\r\n this.props.updateLayerList.removeLayerFromList(this.props.data/*{\r\n Name: this.props.name,\r\n Data: this.props.data,\r\n Class: this.props.class\r\n }*/);\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n handleClick = ()=>{\r\n this.setState({\r\n expand: !this.state.expand\r\n });\r\n }\r\n\r\n toggleImage = () => {\r\n return this.state.expand ? collapseImg : expandImg;\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport { Folder } from './Folder/Folder';\r\nimport { Layer } from './Layer/Layer';\r\nimport './LayersList.css'\r\n\r\n\r\nexport class LayersList extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n expand: false\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
      \r\n {this.parseData(this.props.data)}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n parseData = (data) => {\r\n return data.map((item, index)=>{\r\n return (\r\n item.Class==\"FOLDER\" ?\r\n :\r\n \r\n );\r\n });\r\n } \r\n}","import React from 'react';\r\n\r\nvar reviewLayers = {\r\n \"2DLayer\": [\r\n {\r\n ID: \"(管線分布圖)消防栓\"\r\n },\r\n {\r\n ID: \"(管線分布圖)號誌\"\r\n },\r\n {\r\n ID: \"(管線分布圖)電桿\"\r\n },\r\n ],\r\n \"3DLayer\": [\r\n {\r\n ID: \"pipeline\"\r\n },\r\n ]\r\n}\r\n\r\nexport default reviewLayers;","import React, { Component } from 'react';\r\nimport { DraggableWindow } from './../DraggableWindow';\r\n\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport { LayersList } from './LayersList/LayersList';\r\nimport ApiLayersMap from '../../../../modules/WebApiModules/ApiLayersMap';\r\nimport { Divider } from './../../../.common/Divider/Divider';\r\n\r\nimport ls from 'localstorage-slim';\r\nimport reviewLayers from '../LayersMap/LayerReview';\r\n\r\nimport './LayersMap.css'\r\nexport class LayersMap extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n layers: [\r\n //{\r\n // FolderFullName: \"\",\r\n // IsFolder: true,\r\n // Name: \"底圖\",\r\n // Layers: [{ FolderFullName: \"\\/底圖\", Name: \"正射影像\"},{ FolderFullName: \"\\/底圖\", Name: \"電子地圖\", Class: \"OVERLAY\", IsDefault: true}]\r\n //},\r\n //{\r\n // FolderFullName: \"\",\r\n // IsFolder: true,\r\n // Name: \"三維圖資\",\r\n // Layers: [{ FolderFullName: \"\\/三維圖資\", Name: \"管線\"},{ FolderFullName: \"\\/三維圖資\", Class: \"FOLDER\", Name: \"傾斜攝影集\", Layers: [{ FolderFullName: \"\\/三維圖資\\/傾斜攝影集\", Name: \"傾斜攝影\", Class: \"PHOTOGRAMMETRY\"}]}]\r\n //}\r\n ]\r\n }\r\n this.addedLayers = [];\r\n this.updateLayerList = {\r\n addedLayers: this.addedLayers,\r\n addLayerToList: (layerInfo) => {\r\n this.handleAddingClick(layerInfo);\r\n },\r\n removeLayerFromList: (layerInfo) => {\r\n const { selectedLayerContext } = this.context;\r\n for (let i = 0; i < selectedLayerContext.layers.length; i++) {\r\n let addedLayer = selectedLayerContext.layers[i];\r\n if (addedLayer.Name === layerInfo.Name) {\r\n this.handleRemoveClick(layerInfo.Name);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let lsInfo = ls.get(\"userInfo\", { decrypt: true });\r\n ApiLayersMap.ListAll(\r\n // success\r\n async (result) => {\r\n if (result.success) {\r\n if (!lsInfo) {\r\n reviewLayers['2DLayer'].forEach((item) => {\r\n this.removeLayerFromResult(result.result, item);\r\n });\r\n\r\n reviewLayers['3DLayer'].forEach((item) => {\r\n this.removeLayerFromResult(result.result, item);\r\n });\r\n\r\n this.removeEmptyFolder(result.result);\r\n this.setState({\r\n layers: result.result\r\n })\r\n }\r\n else {\r\n let url2DAuthLayer = \"https://ntmap.nantou.gov.tw/server/layer/get2DLayerList\";\r\n let url3DAuthLayer = \"https://ntmap.nantou.gov.tw/server/layer/get3DLayerList\";\r\n\r\n await this.reviewLayerWithAuth(reviewLayers['2DLayer'], url2DAuthLayer, result.result);\r\n await this.reviewLayerWithAuth(reviewLayers['3DLayer'], url3DAuthLayer, result.result);\r\n }\r\n this.setState({\r\n layers: result.result\r\n })\r\n } else {\r\n console.error(`取的圖層清單失敗,${result.error}`);\r\n }\r\n },\r\n // error\r\n () => {\r\n console.error(\"取的圖層清單失敗\");\r\n })\r\n }\r\n\r\n async reviewLayerWithAuth(reviewLayerList, url, list) {\r\n let rtn = await new Promise(rs => {\r\n fetch(url, {\r\n method: \"POST\",\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({})\r\n }).then((response) => {\r\n return response.json();\r\n }).then(function (json) {\r\n if (json.success) {\r\n\r\n reviewLayerList.forEach((item) => {\r\n let condition = (element) => item.ID === element.layername;\r\n if (!json.ret.some(condition)) {\r\n this.removeLayerFromResult(list, item);\r\n }\r\n });\r\n this.removeEmptyFolder(list);\r\n rs(true)\r\n }\r\n else {\r\n rs(false);\r\n }\r\n }.bind(this)).catch((error) => {\r\n console.log(`Error: ${error}`);\r\n rs(false);\r\n })\r\n });\r\n\r\n return await rtn;\r\n }\r\n\r\n removeLayerFromResult(list, removeItem) {\r\n for (let i = 0; i < list.length; i++) {\r\n if (list[i].Class === \"FOLDER\") {\r\n if (this.removeLayerFromResult(list[i].Layers, removeItem)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n if (list[i].ID === removeItem.ID) {\r\n list.splice(i, 1);\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n removeEmptyFolder(list) {\r\n list.forEach(listItem => {\r\n if (listItem.Class === \"FOLDER\") {\r\n if (listItem.Layers.length === 0) {\r\n list.splice(list.indexOf(listItem), 1);\r\n }\r\n else {\r\n this.removeEmptyFolder(listItem.Layers);\r\n }\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n content() {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {/*
    加入
    */}\r\n
    \r\n );\r\n }\r\n\r\n handleAddingClick = (layerInfo) => {\r\n const { selectedLayerContext } = this.context;\r\n selectedLayerContext.updateLayers({\r\n add: [layerInfo]\r\n });\r\n }\r\n\r\n handleRemoveClick = (layerName) => {\r\n const { selectedLayerContext } = this.context;\r\n console.log(selectedLayerContext);\r\n selectedLayerContext.updateLayers({\r\n remove: [layerName]\r\n });\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './MeasureItem.css'\r\nexport class MeasureItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n }\r\n this.addedLayers = [];\r\n this.updateLayerList = {\r\n addedLayers: this.addedLayers,\r\n addLayerToList: (layerInfo)=>{\r\n this.addedLayers.push(layerInfo);\r\n },\r\n removeLayerFromList: (layerInfo)=> {\r\n for (let i = 0; i < this.addedLayers.length; i++) {\r\n let addedLayer = this.addedLayers[i];\r\n if (JSON.stringify(addedLayer) === JSON.stringify(layerInfo)) {\r\n this.addedLayers.splice(i, 1);// 移除index=i項目\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    \r\n
    \r\n {this.props.data.name}\r\n
    \r\n {this.props.data.name}\r\n
    \r\n );\r\n }\r\n\r\n handleClick = () => {\r\n this.props.handleClick&&this.props.handleClick(this.props.data);\r\n } \r\n}","import React, { Component } from 'react';\r\nimport {DraggableWindow} from '../DraggableWindow';\r\n\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport { MeasureItem } from './MeasureItem/MeasureItem';\r\n\r\nimport 平面距離測量Img from './.image/平面距離測量.png'\r\nimport 空間距離測量Img from './.image/空間距離測量.png'\r\nimport 垂直高度測量Img from './.image/垂直高度測量.png'\r\nimport 區域面積測量Img from './.image/區域面積測量.png'\r\nimport 清除測量標記Img from './.image/清除測量標記.png'\r\n\r\nimport './MeasureTool.css'\r\nexport class MeasureTool extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n }\r\n\r\n this.list = [\r\n {\r\n name: \"平面距離測量\",\r\n icon: 平面距離測量Img,\r\n },\r\n {\r\n name: \"空間距離測量\",\r\n icon: 空間距離測量Img,\r\n },\r\n {\r\n name: \"垂直高度測量\",\r\n icon: 垂直高度測量Img,\r\n },\r\n {\r\n name: \"區域面積測量\",\r\n icon: 區域面積測量Img,\r\n },\r\n {\r\n name: \"清除測量標記\",\r\n icon: 清除測量標記Img,\r\n }, \r\n ]\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n content() {\r\n return (\r\n
    \r\n {\r\n this.list.map(item=>{\r\n return \r\n })\r\n }\r\n
    \r\n );\r\n }\r\n\r\n handleClick = (data) => {\r\n switch(data.name) {\r\n case \"平面距離測量\": {\r\n window.gMainMap.TerrainView.abortInput();\r\n window.alertify.log(\"平面距離測量中,單擊左鍵選取起點,雙擊左鍵選取終點。\");\r\n window.gMainMap.TerrainView.measureSurfaceLength({onCompleted:()=>{}});\r\n }\r\n break;\r\n case \"空間距離測量\": {\r\n window.gMainMap.TerrainView.abortInput();\r\n window.alertify.log(\"空間距離測量中,單擊左鍵選取起點,雙擊左鍵選取終點。\");\r\n window.gMainMap.TerrainView.measureSpatialLength({onCompleted:()=>{}}); \r\n }\r\n break;\r\n case \"垂直高度測量\": {\r\n window.gMainMap.TerrainView.abortInput();\r\n window.alertify.log(\"高度測量中,單擊滑鼠左鍵選取起終點。\");\r\n window.gMainMap.TerrainView.measureHeight({onCompleted:()=>{}});\r\n }\r\n break;\r\n case \"區域面積測量\": {\r\n window.gMainMap.TerrainView.abortInput();\r\n window.alertify.log(\"區域面積測量中,單擊左鍵選取起點,雙擊左鍵完成繪製。\");\r\n window.gMainMap.TerrainView.measureArea({onCompleted:()=>{}});\r\n }\r\n break;\r\n case \"清除測量標記\": {\r\n window.gMainMap.TerrainView.clearMeasure({onCompleted:()=>{\r\n window.alertify.success(\"已清除測量標記。\");\r\n }});\r\n }\r\n break;\r\n }\r\n } \r\n\r\n //縮小視窗 暫用不到\r\n minimizeWindow = () => {\r\n this.state\r\n .draggableWindowContext\r\n .measureTool\r\n .update({\r\n isOpened: false,\r\n });\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './MarkItem.css'\r\nexport class MarkItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    \r\n
    \r\n {this.props.data.name}\r\n
    \r\n {this.props.data.name}\r\n
    \r\n );\r\n }\r\n\r\n handleClick = () => {\r\n this.props.handleClick&&this.props.handleClick(this.props.data);\r\n } \r\n}","import React, { Component } from 'react';\r\nimport { DraggableWindow } from '../DraggableWindow';\r\n\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport { MarkItem } from './MarkItem/MarkItem';\r\n\r\nimport 點標註圖案Img from './.image/點標註圖案.png'\r\nimport 線標註圖案Img from './.image/線標註圖案.png'\r\nimport 面標註圖案Img from './.image/面標註圖案.png'\r\nimport 清除標註圖案Img from './.image/清除標註圖案.png'\r\nimport 管線樣式Img from './.image/管線樣式.png'\r\n\r\nimport './MarkFunction.css'\r\nexport class MarkFunction extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpenFunc: false,\r\n funcName: \"\",\r\n color: \"#FF0000\",\r\n text: \"\",\r\n symbol: 點標註圖案Img,\r\n }\r\n\r\n this.list = [\r\n {\r\n name: \"點標註\",\r\n icon: 點標註圖案Img,\r\n },\r\n {\r\n name: \"線標註\",\r\n icon: 線標註圖案Img,\r\n },\r\n {\r\n name: \"面標註\",\r\n icon: 面標註圖案Img,\r\n },\r\n {\r\n name: \"清除標註\",\r\n icon: 清除標註圖案Img,\r\n },\r\n ]\r\n\r\n this.markNames = [];\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentWillUnmount() {\r\n // window.gMainMap.TerrainView.removeLayer(this.GetCustomMarkLaye());\r\n }\r\n\r\n /**取得自畫圖層 */\r\n GetCustomMarkLayer() {\r\n const CustDrawLayerID = \"_CustomMarkLayer\";\r\n try {\r\n let layer = window.gMainMap.TerrainView.findLayer(CustDrawLayerID);\r\n if (!layer) {\r\n layer = window.gMainMap.TerrainView.addCustomLayer(CustDrawLayerID);\r\n }\r\n layer.setDepthTest(false);\r\n return layer;\r\n } catch (error) {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n content() {\r\n return (<>\r\n
    \r\n
    \r\n {\r\n this.list.map(item => {\r\n if (this.state.isOpenFunc && item.name === this.state.funcName) {\r\n return \r\n }\r\n return \r\n })\r\n }\r\n
    \r\n {\r\n this.state.isOpenFunc ?\r\n
    \r\n 標註顏色:\r\n
    \r\n \r\n
    \r\n 標註文字:\r\n
    \r\n { this.changeText_OnChange(e); }}\r\n style={{ margin: \"0\", padding: \"3px\", width: \"230px\" }} />\r\n
    \r\n {\r\n this.state.funcName === \"點標註\" ?\r\n <>\r\n 標註樣式:\r\n
    \r\n { this.imgActive_OnClick(e) }} />\r\n { this.imgActive_OnClick(e) }} />\r\n { this.imgActive_OnClick(e) }} />\r\n
    \r\n :\r\n null\r\n }\r\n \r\n
    : null\r\n }\r\n
    \r\n \r\n );\r\n }\r\n\r\n changeColor_OnChange(e) {\r\n let value = e.target.value;\r\n this.setState({ color: value });\r\n }\r\n\r\n changeText_OnChange(e) {\r\n let text = e.target.value;\r\n\r\n this.setState({ text: text });\r\n }\r\n\r\n //樣式高亮\r\n imgActive_OnClick(e) {\r\n\r\n let idName = \"pointStyle\";\r\n for (let i = 1; i < 4; i++) {\r\n document.getElementById(idName + i).classList.remove(\"active\");\r\n }\r\n\r\n document.getElementById(e.target.id).classList.add(\"active\");\r\n\r\n this.setState({ symbol: e.target.src });\r\n }\r\n\r\n doMark_OnClick() {\r\n var layer = this.GetCustomMarkLayer();\r\n\r\n if (layer != null) {\r\n window.alertify.log(\"請左鍵點擊圖台開始輸入。\");\r\n window.gMainMap.TerrainView.abortInput();\r\n\r\n var text = this.state.text;\r\n if (text == \"\") {\r\n var number = 1;\r\n this.markNames.forEach(name => {\r\n if (name == (this.state.funcName + number)) {\r\n number += 1;\r\n }\r\n })\r\n\r\n text = this.state.funcName + number;\r\n }\r\n\r\n this.markNames.push(text);\r\n if (this.state.funcName === \"點標註\") {\r\n window.alertify.log(\"單擊左鍵決定標註點。\");\r\n let callback = function (result) {\r\n if (result.success) {\r\n var param = {};\r\n param.geo = result.geo;\r\n param.color = this.state.color;\r\n param.opacity = 1;//0.6;\r\n param.size = 32; //大小\r\n if (this.state.symbol != \"\") {\r\n param.symbol = this.state.symbol;\r\n }\r\n param.absHeight = true; //是否為絕對高度\r\n param.label = { color: \"FFFFFF\", text: text, font: \"微軟正黑體\", size: 20, borderColor: \"000000\", borderSize: 2 }; //加上文字Label\r\n\r\n let entity = layer.addPointEntity(param);\r\n }\r\n }.bind(this);\r\n window.gMainMap.TerrainView.inputSurfacePoint({\r\n onCompleted: callback\r\n });\r\n }\r\n else if (this.state.funcName === \"線標註\") {\r\n window.alertify.log(\"單擊左鍵決定線段起點,雙擊左鍵決定線段終點。\");\r\n\r\n let callback = function (result) {\r\n if (result.success) {\r\n var param = {};\r\n param.geo = result.geo;\r\n param.color = this.state.color;\r\n param.opacity = 0.6;\r\n param.size = 3;\r\n let entity = layer.addSurfacePolylineEntity(param);\r\n\r\n var label = {};\r\n label.geo = result.geo.Center;//幾何\r\n var height = window.gMainMap.TerrainView.getHeight(result.geo.Center);\r\n label.geo.z = height;\r\n label.color = \"#FFFFFF\";\r\n label.text = text;\r\n label.font = \"微軟正黑體\";\r\n label.size = 20;\r\n label.borderColor = \"#000000\";\r\n label.borderSize = 2;\r\n layer.addTextEntity(label);\r\n }\r\n }.bind(this);\r\n window.gMainMap.TerrainView.inputSurfacePolyline({\r\n onCompleted: callback\r\n });\r\n }\r\n else if (this.state.funcName === \"面標註\") {\r\n window.alertify.log(\"單擊左鍵決定範圍起點,雙擊左鍵決定範圍終點。\");\r\n\r\n let callback = function (result) {\r\n if (result.success) {\r\n var param = {};\r\n param.geo = result.geo;\r\n param.color = this.state.color;\r\n param.opacity = 0.6;\r\n let entity = layer.addSurfacePolygonSetEntity(param);\r\n\r\n var label = {};\r\n label.geo = result.geo.Center;\r\n var height = window.gMainMap.TerrainView.getHeight(result.geo.Center);\r\n label.geo.z = height;\r\n label.color = \"#FFFFFF\";\r\n label.text = text;\r\n label.font = \"微軟正黑體\";\r\n label.size = 20;\r\n label.borderColor = \"#000000\";\r\n label.borderSize = 2;\r\n layer.addTextEntity(label);\r\n }\r\n }.bind(this);\r\n window.gMainMap.TerrainView.inputSurfacePolygon({\r\n onCompleted: callback\r\n });\r\n }\r\n }\r\n }\r\n\r\n clearAllMark() {\r\n if (window.confirm('是否確定要清除所有標註?')) {\r\n var layer = this.GetCustomMarkLayer();\r\n layer.removeAllEntity();\r\n this.markNames = [];\r\n window.alertify.success(\"已移除所有標註。\");\r\n }\r\n }\r\n\r\n handleClick = (data) => {\r\n let isOpenFunc = this.state.isOpenFunc;\r\n if (this.state.funcName === data.name) {\r\n isOpenFunc = !isOpenFunc;\r\n }\r\n else {\r\n isOpenFunc = true;\r\n }\r\n switch (data.name) {\r\n case \"點標註\": {\r\n this.setState({ isOpenFunc: isOpenFunc, funcName: \"點標註\" });\r\n }\r\n break;\r\n case \"線標註\": {\r\n this.setState({ isOpenFunc: isOpenFunc, funcName: \"線標註\" });\r\n }\r\n break;\r\n case \"面標註\": {\r\n this.setState({ isOpenFunc: isOpenFunc, funcName: \"面標註\" });\r\n }\r\n break;\r\n case \"清除標註\": {\r\n this.clearAllMark();\r\n this.setState({ isOpenFunc: false, funcName: \"\" });\r\n }\r\n break;\r\n }\r\n }\r\n\r\n //縮小視窗 暫用不到\r\n minimizeWindow = () => {\r\n this.state\r\n .draggableWindowContext\r\n .markFunction\r\n .update({\r\n isOpened: false,\r\n });\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { DraggableWindow } from '../DraggableWindow';\r\n\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport './PrintFunction.css'\r\n\r\nimport compassImg from './.image/compass.png'\r\n\r\nexport class PrintFunction extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n drawLatLon: true,\r\n drawCompass: true,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.ratio = 287 / 200; //A4橫向寬高297mm:210mm減掉margin:左右各1cm\r\n this.PrintStyle = document.createElement('style');\r\n window.document.head.appendChild(this.PrintStyle);\r\n\r\n\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n content() {\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n PrintScreen() {\r\n var mapview = \"\";\r\n var page = \"\";\r\n\r\n var width = window.innerWidth * 0.4;\r\n var height = window.innerHeight * 0.4;\r\n\r\n var windowRatio = width / height;\r\n let ratio = this.ratio;\r\n\r\n if (windowRatio > this.ratio) {\r\n ratio = 277 / width;\r\n height = height * ratio;\r\n var margin = (210 - height) / 2;\r\n mapview += \"height:\" + height + \"mm;width: 277mm;\";\r\n page += \"margin-top:\" + margin + \"mm; size: A4 landscape;\";\r\n }\r\n else if (windowRatio < this.ratio && windowRatio > 1) {\r\n ratio = 190 / height;\r\n width = width * ratio;\r\n var margin = (297 - width) / 2;\r\n mapview += \"width:\" + width + \"mm;height: 180mm;\";\r\n page += \"margin-left:\" + margin + \"mm; size: A4 landscape;\";\r\n }\r\n else if (windowRatio < 1 && windowRatio > (200 / 287)) {\r\n ratio = 190 / width;\r\n height = height * ratio;\r\n var margin = (297 - height) / 2;\r\n mapview += \"height:\" + height + \"mm;width: 190mm;\";\r\n page += \"margin-top:\" + margin + \"mm; size: A4 portrait;\";\r\n }\r\n else {\r\n ratio = 277 / height;\r\n width = width * ratio;\r\n var margin = (210 - width) / 2;\r\n mapview += \"width:\" + width + \"mm;height: 277mm;\";\r\n page += \"margin-left:\" + margin + \"mm; size: A4 portrait;\";\r\n }\r\n\r\n this.PrintStyle.innerHTML = \"@media print { .noPrint {display:none;}\";\r\n\r\n if (this.state.drawLatLon) {\r\n var statusbar = document.createElement(\"span\");\r\n statusbar.id = \"statusbar\";\r\n\r\n statusbar.innerHTML = \"【座標:\" + document.getElementById(\"x_coordinates\").innerHTML;\r\n statusbar.innerHTML += document.getElementById(\"y_coordinates\").innerHTML;\r\n statusbar.innerHTML += document.getElementById(\"h_coordinates\").innerHTML;\r\n document.getElementsByTagName('body')[0].append(statusbar);\r\n var statusbar = \"color:black;background-color:transparent;position:absolute;bottom:0;left:0;\";\r\n this.PrintStyle.innerHTML += \"#statusbar {\" + statusbar + \"}\";\r\n }\r\n\r\n let settings = this.ResizeLegendToolToFitPrint(ratio);\r\n if (this.state.drawCompass) {\r\n var compass = document.createElement(\"img\");\r\n compass.src = compassImg;\r\n compass.id = \"compass\";\r\n document.getElementsByTagName('body')[0].append(compass);\r\n var point = new window.GeoPoint(window.gMainMap.TerrainView.camera.v.x, window.gMainMap.TerrainView.camera.v.y);\r\n\r\n if (window.gMainMap.TerrainView.camera.v.y == 0 && window.gMainMap.TerrainView.camera.v.x == 0) {\r\n angel = 0;\r\n } else {\r\n var angel = Math.atan2(window.gMainMap.TerrainView.camera.v.y, window.gMainMap.TerrainView.camera.v.x);\r\n angel = angel * 180 / Math.PI;\r\n angel -= 90; //配合css, transform: ratate\r\n }\r\n if (angel < 0)\r\n angel += 360;\r\n\r\n var compassStyle = ' width:64px;height:64px;z-index:9999;position:absolute;top:0;right:-10;';\r\n compassStyle += '-ms-transform: rotate(' + angel + 'deg);-webkit-transform: rotate(' + angel + 'deg);transform: rotate(' + angel + 'deg);';\r\n compass.onload = function () {\r\n this.PrintStyle.innerHTML += \"#compass{\" + compassStyle + \"}#MainMap{\" + mapview + \"}}@page{\" + page + \"}\";\r\n window.print();\r\n compass.remove();\r\n if (this.state.drawLatLon) {\r\n var statusbar = document.getElementById(\"statusbar\");\r\n statusbar.remove();\r\n }\r\n setTimeout(this.RestoreLegendToolSize, 0, settings);\r\n }.bind(this);\r\n }\r\n else {\r\n this.PrintStyle.innerHTML += \"#MainMap{\" + mapview + \"}} @page{\" + page + \"}\";\r\n window.print();\r\n if (this.state.drawLatLon) {\r\n var statusbar = document.getElementById(\"statusbar\");\r\n statusbar.remove();\r\n }\r\n setTimeout(this.RestoreLegendToolSize, 0, settings);\r\n }\r\n\r\n\r\n //window.print();\r\n }\r\n\r\n ResizeLegendToolToFitPrint(ratio) {\r\n let rtn = [];\r\n let containers = document.getElementsByClassName('legend-container');\r\n //containers.classList.add('legend-container');\r\n\r\n for (let i = 0; i < containers.length; i++) {\r\n let container = containers[i];\r\n rtn[i] = {};\r\n rtn[i].left = container.style.left;\r\n rtn[i].top = container.style.top;\r\n rtn[i].width = container.style.width;\r\n rtn[i].height = container.style.height;\r\n\r\n let resizedleft = parseFloat(container.style.left.slice(0, container.style.left.length - 2)) * ratio;\r\n let resizedtop = parseFloat(container.style.top.slice(0, container.style.top.length - 2)) * ratio;\r\n let resizedWidth = parseFloat(container.style.width.slice(0, container.style.width.length - 2)) * ratio;\r\n let resizedHeight = parseFloat(container.style.height.slice(0, container.style.height.length - 2)) * ratio;\r\n\r\n container.style.left = resizedleft + \"px\";\r\n container.style.top = resizedtop + \"px\";\r\n container.style.width = resizedWidth + \"px\";\r\n container.style.height = resizedHeight + \"px\";\r\n }\r\n\r\n return rtn;\r\n }\r\n\r\n RestoreLegendToolSize(settings) {\r\n let containers = document.getElementsByClassName('legend-container');\r\n\r\n for (let i = 0; i < settings.length; i++) {\r\n let container = containers[i];\r\n container.style.left = settings[i].left;\r\n container.style.top = settings[i].top;\r\n container.style.width = settings[i].width;\r\n container.style.height = settings[i].height;\r\n }\r\n }\r\n\r\n //縮小視窗 暫用不到\r\n minimizeWindow = () => {\r\n this.state\r\n .draggableWindowContext\r\n .printFunction\r\n .update({\r\n isOpened: false,\r\n });\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './TextButton.css'\r\n\r\nexport class TextButton extends Component {\r\n render() {\r\n return (\r\n
    \r\n {this.props.data.text} \r\n
    \r\n );\r\n }\r\n\r\n calculateWidth(param) {\r\n let sizeOfSingleCharacter = param.fontSize;\r\n let length = param.text.length;\r\n let res = sizeOfSingleCharacter;\r\n try {\r\n if (sizeOfSingleCharacter.indexOf(\"rem\") > 0) {\r\n sizeOfSingleCharacter = sizeOfSingleCharacter.replace(\"rem\", \"\");\r\n res = `${this.convertRemToPixels(Number(sizeOfSingleCharacter))*length*2}px`;\r\n } else if (sizeOfSingleCharacter.indexOf(\"px\") > 0){\r\n sizeOfSingleCharacter = sizeOfSingleCharacter.replace(\"px\", \"\");\r\n res = `${Number(sizeOfSingleCharacter)*length*2}px`;\r\n } else {\r\n res = `${Number(sizeOfSingleCharacter)*length*2}px`;\r\n }\r\n }\r\n catch(ex) {\r\n res = null;\r\n } \r\n\r\n return res;\r\n }\r\n\r\n calculateHeight(param) {\r\n let sizeOfSingleCharacter = param.fontSize;\r\n let res = sizeOfSingleCharacter;\r\n try {\r\n if (sizeOfSingleCharacter.indexOf(\"rem\") > 0) {\r\n sizeOfSingleCharacter = sizeOfSingleCharacter.replace(\"rem\", \"\");\r\n res = `${this.convertRemToPixels(Number(sizeOfSingleCharacter))*2}px`;\r\n } else if (sizeOfSingleCharacter.indexOf(\"px\") > 0){\r\n sizeOfSingleCharacter = sizeOfSingleCharacter.replace(\"px\", \"\");\r\n res = `${Number(sizeOfSingleCharacter)*2}px`;\r\n } else {\r\n res = `${Number(sizeOfSingleCharacter)*2}px`;\r\n }\r\n }\r\n catch(ex) {\r\n res = null;\r\n } \r\n return res;\r\n }\r\n\r\n convertRemToPixels(rem) { \r\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\r\n }\r\n}","import React, {Component} from \"react\";\r\nimport { TextButton } from \"../Buttons/Text/TextButton\";\r\n\r\nimport \"./InputFile.css\"\r\nexport class InputFile extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.inputFile = React.createRef();\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n ) \r\n }\r\n\r\n handleClick = () => {\r\n this.props.onUploadClick(this.inputFile.current.files); \r\n }\r\n}","export default class DataManageModule {\r\n static ConvertB64toBlob(b64Data, contentType='', sliceSize=512) {\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n const blob = new Blob(byteArrays, {type: contentType});\r\n return blob;\r\n }\r\n}","export default class ApiOviewDocmd {\r\n static async Docmd(cmd, postData, successCallback, errorCallback) {\r\n let url = window.gMainMap.MakeDoCmdUrl(cmd);\r\n try {\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n body: JSON.stringify(postData)\r\n });\r\n const json = await response.json();\r\n if (json.success) {\r\n successCallback(json);\r\n }\r\n else {\r\n errorCallback(json);\r\n }\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n }\r\n } \r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nimport './AutoTruncateTextLabel.css'\r\n\r\nexport class AutoTruncateTextLabel extends Component {\r\n render() {\r\n return (\r\n \r\n {this.props.data.text}\r\n \r\n );\r\n }\r\n}\r\n ","import React, { Component } from \"react\";\r\n\r\nimport './AttributesTable.css'\r\n\r\nexport class AttributesTable extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n active: false,\r\n }\r\n }\r\n render() {\r\n return (\r\n
    \r\n {\r\n this.props.list.map((item) => {\r\n return (\r\n
    \r\n
    {item.key}
    \r\n
    \r\n
    \r\n );\r\n }) \r\n }\r\n
    \r\n );\r\n }\r\n}\r\n ","import React, { Component } from 'react';\r\n\r\nimport { LayoutContext } from '../../../../../../modules/ContextModules/LayoutContext';\r\nimport DataManageModule from '../../../../../../modules/DataManageModule/DataManageModule';\r\nimport ApiOviewDocmd from '../../../../../../modules/WebApiModules/ApiOviewDocmd';\r\nimport visible from './.image/Visible.png'\r\nimport unVisible from './.image/Unvisible.png'\r\nimport edit from './.image/edit.png'\r\nimport deletePng from './.image/delete.png'\r\n\r\nimport './KMLItem.css'\r\nimport { AutoTruncateTextLabel } from '../../../../../.common/AutoTruncateTextLabel/AutoTruncateTextLabel';\r\nimport { AttributesTable } from '../../../../../.common/AttributesTable/AttributesTable';\r\nexport class KMLItem extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isEdit: false,\r\n editText:this.props.data.name\r\n }\r\n\r\n this.kmlSceneInstance = this.props.data.instance;\r\n console.log(\"new\");\r\n // this.state = {\r\n // opened: this.props.data.opened,\r\n // }\r\n }\r\n\r\n componentDidMount() {\r\n this.updateKml();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.updateKml();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.closeKml();\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    {\r\n this.state.isEdit ? { this.setState({ editText:e.target.value}); }} /> :\r\n \r\n }\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n updateOpenedImage = () => {\r\n if (this.props.data.isOpened === true) {\r\n return visible;\r\n }\r\n return unVisible;\r\n }\r\n\r\n toggleOpenedImage = () => {\r\n const { kmlUploadContext } = this.context;\r\n kmlUploadContext.toggleOpened(this.props.data.name);\r\n }\r\n\r\n toggleDeleteImage = () => {\r\n const { kmlUploadContext } = this.context;\r\n ApiOviewDocmd.Docmd(\"CMD_DeleteKMLName\", { name: this.props.data.name }, /*success*/(res) => {\r\n\r\n let nowIndex = -1;\r\n let newList = kmlUploadContext.kmlList.map((kml, index) => {\r\n if (kml.name === this.props.data.name) {\r\n nowIndex = index;\r\n }\r\n return { name: kml.name, isOpened: false }\r\n });\r\n\r\n newList.splice(nowIndex, 1);\r\n kmlUploadContext.updateContextList(newList);\r\n }, /*failed*/() => { });\r\n }\r\n\r\n toggleEditImage = () => {\r\n const { kmlUploadContext } = this.context;\r\n let text = this.state.editText;\r\n let ext = text.substring(text.length - 4, text.length);\r\n if (this.state.isEdit) {\r\n if (text === this.props.data.name) {\r\n this.setState({ isEdit: false });\r\n return;\r\n }\r\n\r\n if (ext !== \".kml\") {\r\n window.alertify.log(\"副檔名必須為kml。\");\r\n return;\r\n }\r\n\r\n for (const kml of kmlUploadContext.kmlList) {\r\n if (kml.name !== this.props.data.name &&\r\n text === kml.name) {\r\n window.alertify.log(\"編輯後名稱重複。\");\r\n return;\r\n }\r\n }\r\n\r\n ApiOviewDocmd.Docmd(\"CMD_UploadKMLName\", { oldName: this.props.data.name, newName: text }, /*success*/(res) => {\r\n let newList = kmlUploadContext.kmlList.map((kml, index) => {\r\n if (kml.name === this.props.data.name) {\r\n return { name: text, isOpened: false }\r\n }\r\n return { name: kml.name, isOpened: false }\r\n });\r\n kmlUploadContext.updateContextList(newList); \r\n \r\n \r\n }, /*failed*/() => { });\r\n }\r\n else {\r\n window.alertify.log(\"編輯檔案名稱,在點擊一次編輯按鈕完成編輯。\");\r\n this.setState({ isEdit: true });\r\n }\r\n //ApiOviewDocmd.Docmd(\"CMD_UploadKMLName\", { oldName: this.props.data.name,newName:\"\" }, /*success*/(res) => {\r\n //}, /*failed*/() => { });\r\n\r\n\r\n }\r\n\r\n updateKml = () => {\r\n if (this.props.data.isOpened === true) {\r\n this.openKml();\r\n } else {\r\n this.closeKml();\r\n }\r\n }\r\n\r\n openKml = () => {\r\n const { kmlUploadContext } = this.context;\r\n if (!this.kmlSceneInstance) {\r\n ApiOviewDocmd.Docmd(\"CMD_GetKMLContent\", { name: this.props.data.name }, /*success*/(res) => {\r\n console.log(res);\r\n //匯入KML\r\n let file = DataManageModule.ConvertB64toBlob(res.result)\r\n window.gMainMap.TerrainView.importKML({\r\n url: this.getObjectURL(file),\r\n callback: (scene) => {\r\n this.kmlSceneInstance = scene;\r\n this.kmlSceneInstance.setOnClickEntity(this.handleKMLEntityClick);\r\n kmlUploadContext.copyByRef(this.props.data.name, scene)\r\n }\r\n });\r\n }, /*failed*/() => { });\r\n }\r\n }\r\n\r\n handleKMLEntityClick = (param, pos) => {\r\n const { attributesModalContext } = this.context;\r\n let list = [\r\n { key: \"名稱\", value: param.name, show: this.props.showAttributes[\"名稱\"] },\r\n { key: \"電話\", value: param.phone, show: this.props.showAttributes[\"電話\"] },\r\n { key: \"地址\", value: param.address, show: this.props.showAttributes[\"地址\"] },\r\n { key: \"描述\", value: param.description, show: this.props.showAttributes[\"描述\"] },\r\n ];\r\n\r\n let content = (\r\n \r\n );\r\n\r\n attributesModalContext.updateContent({ content: content, position: { x: `${pos.x + 10}px`, y: `${pos.y - 25}px` } });\r\n }\r\n\r\n closeKml = () => {\r\n if (this.kmlSceneInstance) {\r\n //清除KML\r\n window.gMainMap.TerrainView.removeKMLScene(this.kmlSceneInstance);\r\n this.kmlSceneInstance = null;\r\n }\r\n }\r\n\r\n getObjectURL = (file) => {\r\n var url = null;\r\n if (window.createObjcectURL !== undefined) {\r\n url = window.createObjectURL(file);\r\n } else if (window.URL !== undefined) {\r\n url = window.URL.createObjectURL(file);\r\n } else if (window.webkitURL !== undefined) {\r\n url = window.webkitURL.createObjectURL(file);\r\n }\r\n return url;\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { KMLItem } from './KMLItem/KMLItem';\r\n\r\nimport './KMLList.css'\r\nexport class KMLList extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n }\r\n\r\n console.log(this.props.height);\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    \r\n {\r\n this.props.data.list.map((item)=>{\r\n return (\r\n \r\n );\r\n })\r\n } \r\n
    \r\n );\r\n } \r\n}","import React, { Component } from 'react';\r\n\r\nimport './KMLAttributeOptionList.css'\r\nexport class KMLAttributeOptionList extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    \r\n
    屬性欄位:
    \r\n {\r\n Object.keys(this.props.data).map((item)=>{\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n })\r\n } \r\n
    \r\n );\r\n } \r\n\r\n handleCheckBoxChanged = (e) => {\r\n this.props.onAttributesChange({name: e.target.value, show: e.target.checked}); \r\n }\r\n\r\n \r\n}","import React, { Component } from 'react';\r\nimport { DraggableWindow } from '../DraggableWindow';\r\nimport { InputFile } from '../../../.common/InputFile/InputFile';\r\n\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport { Divider } from '../../../.common/Divider/Divider';\r\n\r\nimport { KMLList } from './KMLList/KMLList';\r\nimport './KMLUploadTool.css'\r\nimport ApiOviewDocmd from '../../../../modules/WebApiModules/ApiOviewDocmd';\r\nimport { KMLAttributeOptionList } from './KMLAttributeOptionList/KMLAttributeOptionList';\r\nexport class KMLUploadTool extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.KMLScene;\r\n this.kmlOpenedStatus = {};\r\n this.state = {\r\n width: this.props.width,\r\n height: this.props.height,\r\n listHeight: parseInt(this.props.height) - 90,\r\n kmlList: [],\r\n showAttributes: this.getAttributeSetting(),\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.Async_WaitMapInit().then(() => {\r\n this.updateKMLList();\r\n });\r\n }\r\n\r\n async Async_WaitMapInit() {\r\n if (window.gMainMap.IsReady) {\r\n return;\r\n }\r\n function Wait(time) {\r\n return new Promise((rs) => { setTimeout(rs, time ?? 100) })\r\n }\r\n while (!window.gMainMap.IsReady) {\r\n await Wait();\r\n }\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n content() {\r\n const { kmlUploadContext } = this.context;\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n } \r\n\r\n getAttributeSetting() {\r\n return {\r\n 名稱: true,\r\n 電話: true,\r\n 地址: true,\r\n 描述: true,\r\n };\r\n }\r\n\r\n onChange_showAttributesField(setting) {\r\n let obj = this.state.showAttributes;\r\n obj[setting.name] = setting.show;\r\n this.setState({showAttributes: obj});\r\n }\r\n\r\n updateKMLList = () => {\r\n const { kmlUploadContext } = this.context;\r\n ApiOviewDocmd.Docmd(\"CMD_ListKML\", {}, /*success*/(res)=>{\r\n console.log(res);\r\n let kmlList = res.result.map((kml)=>{\r\n return kml.name;\r\n })\r\n kmlUploadContext.updateList(kmlList);\r\n }, /*failed*/console.log);\r\n }\r\n\r\n handleUploadingFile = (files) => {\r\n const { kmlUploadContext } = this.context;\r\n if (files.length > 0) {\r\n let file = files[0];\r\n // 上傳KML\r\n new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.onload = function () {\r\n let res = reader.result;\r\n res = res.substring(res.indexOf('base64,') + 7, res.length);\r\n resolve(res);\r\n }\r\n reader.readAsDataURL(file);\r\n }).then((uploadData)=>{\r\n let fileName = `${file.name.replace('.kml','')}(${new Date(Date.now()).toLocaleString('zh-TW', { timeZone: 'Asia/Taipei' }).replaceAll('/','-').replaceAll(':','.')}).kml`\r\n ApiOviewDocmd.Docmd(\"CMD_UploadKML\", {name: fileName, content: uploadData}, /*success*/(res)=>{\r\n kmlUploadContext.push({name: fileName, isOpened: true});\r\n }, /*failed*/console.log);\r\n }, console.log);\r\n }\r\n }\r\n\r\n handleCancel = ()=>{\r\n const { kmlUploadContext } = this.context;\r\n //全部關閉\r\n let newKmlList = kmlUploadContext.kmlList;\r\n for (let i = 0; i < newKmlList.length; i++) {\r\n newKmlList[i].isOpened = false;\r\n }\r\n kmlUploadContext.updateContextList(newKmlList);\r\n this.props.handleCancel();\r\n }\r\n\r\n handleResize = (width, height) => {\r\n let listHeight = parseInt(height) - 90;\r\n console.log(listHeight);\r\n this.setState({ width: width, height: height, listHeight: listHeight });\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './ReadilyAvailableHouseItem.css'\r\nexport class ReadilyAvailableHouseItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    \r\n {this.props.name}\r\n
    \r\n );\r\n }\r\n\r\n handleClick = () => {\r\n this.props.handleClick && this.props.handleClick(this.props.name);\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { DraggableWindow } from '../DraggableWindow';\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport './ReadilyAvailableHouseTool.css'\r\nimport { ReadilyAvailableHouseItem } from './ReadilyAvailableHouseItem/ReadilyAvailableHouseItem';\r\n\r\nimport ok from './.image/ok.png';\r\nimport error from './.image/error.png';\r\nimport loading from './.image/loading.gif';\r\n\r\nexport class ReadilyAvailableHouseTool extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n fileName: \"\",\r\n uploadDataArray: new Array(3),\r\n checkStates: [],\r\n errorMessage: \"\",\r\n tabIndex: 0,\r\n errorCols: [],\r\n errorRows: [],\r\n downloadExcel: \"\",\r\n loading:false,\r\n }\r\n\r\n this.list = [\r\n {\r\n name: \"輸入\"\r\n },\r\n {\r\n name: \"屬性檢核規則\"\r\n }\r\n ]\r\n\r\n this.checkStateName = [\"開啟SHP\", \"幾何檢核\", \"欄位檢核\", \"屬性檢核\", \"檔名檢核\"];\r\n }\r\n\r\n componentDidMount() {\r\n const { readilyAvailableHouseToolContext } = this.context;\r\n const { LayerAttrsRndContext } = this.context;\r\n this.readilyAvailableHouseToolContext = readilyAvailableHouseToolContext;\r\n this.LayerAttrsRndContext = LayerAttrsRndContext;\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.readilyAvailableHouseToolContext.layer) {\r\n this.readilyAvailableHouseToolContext.layer.resetAllOpacityEntityID();\r\n }\r\n window.gMainMap.TerrainView.removeLayer(this.Layer);\r\n }\r\n\r\n async Async_WaitMapInit() {\r\n if (window.gMainMap.IsReady) {\r\n return;\r\n }\r\n function Wait(time) {\r\n return new Promise((rs) => { setTimeout(rs, time ?? 100) })\r\n }\r\n while (!window.gMainMap.IsReady) {\r\n await Wait();\r\n }\r\n }\r\n\r\n //選擇檔案\r\n async handleUpload_OnChange(e) {\r\n if (e.target.files.length !== 3) {\r\n window.alertify.log(\"檔案數量錯誤。\");\r\n this.setState({ fileName: \"\", uploadDataArray: new Array(3) });\r\n return;\r\n }\r\n\r\n //檔案名稱\r\n let firstFile = e.target.files[0].name.substring(0, e.target.files[0].name.length - 4);\r\n let secondFile = e.target.files[1].name.substring(0, e.target.files[1].name.length - 4);\r\n let thirdFile = e.target.files[2].name.substring(0, e.target.files[2].name.length - 4);\r\n\r\n if (firstFile !== secondFile || secondFile !== thirdFile || firstFile !== thirdFile) {\r\n window.alertify.log(\"檔名不一致。\");\r\n this.setState({ fileName: \"\", uploadDataArray: new Array(3) });\r\n return;\r\n }\r\n\r\n //副檔名\r\n let firstFileType = e.target.files[0].name.substring(e.target.files[0].name.length - 4, e.target.files[0].name.length);\r\n let secondFileType = e.target.files[1].name.substring(e.target.files[1].name.length - 4, e.target.files[1].name.length);\r\n let thirdFileType = e.target.files[2].name.substring(e.target.files[2].name.length - 4, e.target.files[2].name.length);\r\n\r\n let types = [\".shp\", \".shx\", \".dbf\"];\r\n let typeNum = 0;\r\n\r\n types.forEach(type => {\r\n if (firstFileType == type || secondFileType == type || thirdFileType == type) {\r\n typeNum++;\r\n }\r\n });\r\n\r\n if (typeNum < 3) {\r\n window.alertify.log(\"缺少檔案(.shp、.shx、.dbf)其中之一\");\r\n this.setState({ fileName: \"\", uploadDataArray: new Array(3) });\r\n return;\r\n }\r\n\r\n this.convertFile(e.target.files);\r\n this.setState({ fileName: firstFile });\r\n }\r\n\r\n //轉換檔案為uploadData\r\n convertFile(file) {\r\n for (let i = 0; i < file.length; i++) {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file[i]);\r\n reader.onload = () => {\r\n let res = reader.result.split(',');\r\n let uploadDataArray = Object.assign({}, this.state.uploadDataArray);\r\n uploadDataArray[i] = {\r\n type: file[i].name.substr(-4, 4),\r\n file: res[1]\r\n };\r\n this.setState({\r\n uploadDataArray: uploadDataArray\r\n })\r\n };\r\n }\r\n }\r\n\r\n //SHP模型點擊事件\r\n addModelOnClickEntity(id, pos) {\r\n const { LayerAttrsRndContext } = this.context;\r\n this.Layer.getColAndAttrs(id, function (attrs) {\r\n let 建物層次 = Number(attrs.ATTR[attrs.COL.indexOf(\"建物層次\") + 1]);\r\n\r\n let obj = {};\r\n for (let i = 1; i < attrs.ATTR.length; i++) {\r\n let col = attrs.COL[i];\r\n obj[col] = attrs.ATTR[i];\r\n }\r\n\r\n LayerAttrsRndContext.update({\r\n isShowLayerAttrsRnd: true,\r\n layerAttrsRnd: obj,\r\n layerAttrsRndTitle: attrs.ATTR[2] + \":\" + attrs.ATTR[0],\r\n layerAttrsRndPosition: { x: pos.x, y: pos.y }\r\n });\r\n this.SetFloorColor(建物層次, \"#7CF1F3\");\r\n }.bind(this));\r\n }\r\n\r\n //改變選中樓層顏色\r\n SetFloorColor(buildingFloor, floorColor) {\r\n if (this.readilyAvailableHouseToolContext.layer) {\r\n let id = this.readilyAvailableHouseToolContext.selectedBuildingID;\r\n this.readilyAvailableHouseToolContext.layer.removeBuildingFloorColor(id);\r\n this.readilyAvailableHouseToolContext.layer.addBuildingFloorColor(id, buildingFloor, floorColor, 1); //配合建物已經半透明所以這邊給1就好,不然太淡\r\n }\r\n }\r\n\r\n //開始檢核\r\n async startCheck() {\r\n if (!this.state.loading) {\r\n let checkStates = [];\r\n\r\n this.setState({ checkStates: checkStates });\r\n let url = window.gMainMap.MakeDoCmdUrl(\"CMD_ShpCheckAndUpload\");\r\n\r\n if (this.state.fileName != \"\") {\r\n this.setState({ loading: true });\r\n this.checkStateName.forEach(stateName => {\r\n checkStates[stateName] = null;\r\n });\r\n //上傳檔案與類型\r\n let firstType = this.state.uploadDataArray[0].type;\r\n let firstFile = this.state.uploadDataArray[0].file;\r\n let secondType = this.state.uploadDataArray[1].type;\r\n let secondFile = this.state.uploadDataArray[1].file;\r\n let thirdType = this.state.uploadDataArray[2].type;\r\n let thirdFile = this.state.uploadDataArray[2].file;\r\n\r\n let postdata = {\r\n 檔案名稱: this.state.fileName,\r\n [firstType]: firstFile,\r\n [secondType]: secondFile,\r\n [thirdType]: thirdFile\r\n };\r\n\r\n try {\r\n const response = await fetch(url, {\r\n method: \"POST\",\r\n body: JSON.stringify(postdata)\r\n });\r\n\r\n const json = await response.json();\r\n if (json.success) {\r\n window.gMainMap.TerrainView.removeLayer(this.Layer);\r\n\r\n this.checkStateName.forEach(stateName => {\r\n checkStates[stateName] = true;\r\n });\r\n\r\n window.gMainMap.TerrainView.addModelSetLayer({\r\n url: window.gMainMap.OviewMapServerUrlUnderProxy(),\r\n urlTemplate: window.gMainMap.ProxyUrlTemplete(),\r\n identifier: json.layerName,\r\n callback: function (success, layer) {\r\n if (success) {\r\n this.Layer = layer;\r\n layer.setOnClickEntity(this.addModelOnClickEntity.bind(this));\r\n }\r\n this.setState({ checkStates: checkStates ,loading:false});\r\n }.bind(this),\r\n });\r\n }\r\n else {\r\n let errorIndex = this.checkStateName.indexOf(json.state);\r\n\r\n if (json.state == \"欄位檢核\") {\r\n this.setState({ errorCols: json.欄位, errorRows: json.欄位內容, loading: false });\r\n }\r\n else if (json.state == \"屬性檢核\") {\r\n this.setState({ downloadExcel: json.錯誤報表, loading: false });\r\n }\r\n\r\n this.checkStateName.forEach((stateName, index) => {\r\n if (index < errorIndex) {\r\n checkStates[stateName] = true;\r\n }\r\n else if (index == errorIndex) {\r\n checkStates[stateName] = false;\r\n }\r\n else {\r\n checkStates[stateName] = undefined;\r\n }\r\n });\r\n\r\n this.setState({ checkStates: checkStates, errorMessage: json.message, loading: false });\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n this.setState({ loading: false });\r\n }\r\n }\r\n else {\r\n window.alertify.log(\"請選擇檔案\");\r\n }\r\n }\r\n }\r\n\r\n downloadErrorExcel() {\r\n const link = document.createElement(\"a\");\r\n link.href = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64, ' + this.state.downloadExcel;\r\n link.download = \"錯誤報表\";\r\n link.click();\r\n link.remove();\r\n }\r\n\r\n goto() {\r\n if (this.Layer) {\r\n this.Layer.goto();\r\n }\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n /********************************************************/\r\n /************************UI介面 *************************/\r\n\r\n //狀態圖片\r\n statusOfImage(status) {\r\n let src = status === undefined ? \"\" :\r\n status === true ? ok :\r\n status === false ? error : loading;\r\n return (\r\n src ? status :\r\n
    \r\n );\r\n }\r\n\r\n content() {\r\n return (<>\r\n
    \r\n
    \r\n {\r\n this.list.map(item => {\r\n return \r\n })\r\n }\r\n {\r\n typeof (this.state.checkStates[\"欄位檢核\"]) != \"undefined\" ? this.state.checkStates[\"欄位檢核\"] === false ?\r\n : null\r\n : null\r\n }\r\n
    \r\n {\r\n this.state.isOpenFunc ? <>\r\n {\r\n this.state.funcName == \"輸入\" ? this.inputDataPanel() : null\r\n }\r\n {\r\n this.state.funcName == \"屬性檢核規則\" ? this.attributeRulePanel() : null\r\n }\r\n {\r\n this.state.funcName == \"詳細資料\" ? this.detailDataPanel() : null\r\n }\r\n \r\n : null\r\n }\r\n
    \r\n \r\n );\r\n }\r\n\r\n //輸入資料介面\r\n inputDataPanel() {\r\n return (\r\n
    \r\n
    \r\n 檔案:\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n 檢核步驟:\r\n
    \r\n
    \r\n
    \r\n {\r\n this.checkStateName.map(stateName => {\r\n return (\r\n
    \r\n {this.statusOfImage(this.state.checkStates[stateName])}\r\n {stateName}\r\n {this.state.checkStates[stateName] === false ? \r\n {this.state.errorMessage} : null}\r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n {typeof (this.state.checkStates[\"屬性檢核\"]) != \"undefined\" ? this.state.checkStates[\"屬性檢核\"] === false ?\r\n : null : null\r\n }\r\n {!!this.readilyAvailableHouseToolContext.layer ?\r\n : null\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n //顯示規則介面\r\n attributeRulePanel() {\r\n return (\r\n
    \r\n
    \r\n 1.所代碼(必填),兩位數英文字母之代碼,\r\n 範例:NG\r\n
    \r\n
    \r\n 2.段代碼(必填),四位數整數,不可有「-」符號,\r\n 範例:1008\r\n
    \r\n
    \r\n 3.建物段名(必填),\r\n 範例:香田段\r\n
    \r\n
    \r\n 4.建物門牌(必填),建物門牌欄位過長時({'>'}30個字元),長度限制254個字元,去看「層次」欄位,判斷規則如下:\r\n
    \r\n
    \r\n (1).J、Y、Z、P (pass)\r\n
    \r\n
    \r\n (2).其他跳提醒\r\n
    \r\n
    \r\n 範例:儒林路3號\r\n
    \r\n
    \r\n 5.登記日期(必填),格式:民國年+月+日,\r\n 範例:1000825\r\n
    \r\n
    \r\n 6.登記原因名(選填),符合「資料統一代碼」表格中規範之代碼,\r\n 範例:02\r\n
    \r\n
    \r\n 7.主要用途名(必填),判斷規則:\r\n
    \r\n
    \r\n (1).0→早期建物 (pass)\r\n
    \r\n
    \r\n (2).9→未登封 (pass)\r\n
    \r\n
    \r\n (3).A-H、J-M、P、Y、Z(pass)\r\n
    \r\n
    \r\n (4).空白→漏填 (跳錯)\r\n
    \r\n
    \r\n (5).其他跳錯誤\r\n
    \r\n
    \r\n 範例:Z\r\n
    \r\n
    \r\n 8.主要建材名(選填),\r\n
    \r\n
    \r\n (1).0~20(PASS)\r\n
    \r\n
    \r\n (2).Y、Z(PASS)\r\n
    \r\n
    \r\n (3).空白(PASS)\r\n
    \r\n
    \r\n (4).其餘跳提醒,\r\n
    \r\n
    \r\n 以「鋼筋混凝土加強磚造」為例則填入12。\r\n
    \r\n
    \r\n 範例:12\r\n
    \r\n
    \r\n 9.總面積(必填),格式為整數部分最多8位數,小數部分最多2位數\r\n\r\n
    \r\n
    \r\n 範例: 210.78\r\n
    \r\n
    \r\n 10.基地地號(必填),8位數整數,不可有「-」符號\r\n 範例:06500000\r\n
    \r\n
    \r\n 11.層數(必填),例如1、2、3,寫001、002、003\r\n 範例:002\r\n
    \r\n
    \r\n 12.層次(必填)\r\n
    \r\n
    \r\n (1).最接近地面層次紀錄(例如1、2、3,寫001、002、003;B01、B02、B03,寫B01)\r\n
    \r\n
    \r\n (2).A01~A29、J、Y、Z、P(跳錯誤)。\r\n
    \r\n
    \r\n (3).僅有數字者,歸類為地上層。\r\n
    \r\n
    \r\n (4).B01為地下一樓,B02為地下二樓,以此類推。\r\n
    \r\n
    \r\n (5).地上層或地下層以程式推算高度,其他放在地面。一層樓3公尺。【圖臺展示規則,非檢核規則】\r\n
    \r\n
    \r\n (6).\t夾層以0.5做紀錄。夾層高度為1.5公尺。\r\n
    \r\n
    \r\n 範例:002、003.5\r\n
    \r\n
    \r\n 13.建物完成日(必填),格式:民國年+月+日,\r\n\r\n 範例:1000825\r\n
    \r\n
    \r\n 14.使用執照號(選填)\r\n 範例:83彰工管使字154763號\r\n
    \r\n
    \r\n 15.xcoord(必填),TWD97坐標系統(公尺),EPSG:3826或EPSG:3825,小數部分最多2位數,\r\n
    \r\n
    \r\n 範例: 186537.61\r\n
    \r\n
    \r\n 16.ycoord(必填),TWD97坐標系統(公尺),EPSG:3826或EPSG:3825,小數部分最多2位數,\r\n
    \r\n
    \r\n 範例: 2641213.12\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n //詳細資料介面\r\n detailDataPanel() {\r\n const colList = this.state.errorCols.map((col, index) =>\r\n {col}\r\n );\r\n const rowList = this.state.errorRows.map((row, index) => {\r\n return (\r\n \r\n {\r\n row.map((rowEle, index) => {\r\n let style = \"\";\r\n if (rowEle.includes(\"╳\")) {\r\n style = \"errorMessage\";\r\n }\r\n return ({rowEle});\r\n })\r\n }\r\n \r\n );\r\n });\r\n return (\r\n
    \r\n \r\n \r\n \r\n {colList}\r\n \r\n \r\n \r\n {rowList}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n handleClick = (name) => {\r\n let isOpenFunc = this.state.isOpenFunc;\r\n let funcName = this.state.funcName;\r\n if (this.state.funcName == name) {\r\n isOpenFunc = !isOpenFunc;\r\n }\r\n else {\r\n isOpenFunc = true;\r\n }\r\n switch (name) {\r\n case \"輸入\": {\r\n funcName = \"輸入\";\r\n }\r\n break;\r\n case \"屬性檢核規則\": {\r\n funcName = \"屬性檢核規則\";\r\n }\r\n break;\r\n case \"詳細資料\": {\r\n funcName = \"詳細資料\";\r\n }\r\n break;\r\n }\r\n\r\n if (!isOpenFunc) {\r\n funcName = \"\";\r\n }\r\n\r\n this.setState({ isOpenFunc: isOpenFunc, funcName: funcName });\r\n }\r\n\r\n //縮小視窗 暫用不到\r\n minimizeWindow = () => {\r\n this.state\r\n .draggableWindowContext\r\n .readilyAvailableHouseTool\r\n .update({\r\n isMinimized: true,\r\n });\r\n }\r\n}","//import { TimeScale } from 'chart.js';\r\nimport React, { Component } from 'react';\r\nimport './InputSelect.css'\r\n\r\nexport class InputSelect extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selected: \"\",\r\n selectedName: \"請選擇\",\r\n isSelecting: false\r\n }\r\n this.ref = React.createRef();\r\n }\r\n\r\n handler(event) {\r\n if (this.state.isSelecting && this.ref.current && !this.ref.current.contains(event.target)) {\r\n this.setState({ isSelecting: false })\r\n }\r\n };\r\n componentDidMount() {\r\n document.addEventListener(\"mousedown\", this.handler.bind(this));\r\n document.addEventListener(\"touchstart\", this.handler.bind(this));\r\n if (!!this.props.DefaultValue) {\r\n this.setState({ selected: this.props.DefaultValue })\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n document.removeEventListener(\"mousedown\", this.handler.bind(this));\r\n document.removeEventListener(\"touchstart\", this.handler.bind(this));\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.Options !== this.props.Options) {\r\n let defaultValue = \"\";\r\n if (!!this.props.DefaultValue) {\r\n defaultValue = this.props.DefaultValue;\r\n }\r\n let e = { target: { value: defaultValue } }\r\n if (!this.props.defaultNoTrigger)\r\n this.props.OnChange(e);\r\n this.setState({ selectedName: this.props.DefaultValue !== undefined ? this.props.DefaultValue : \"請選擇\", });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    { this.setState({ isSelecting: !this.state.isSelecting }) }}\r\n >\r\n {this.props.value ?? this.state.selectedName}\r\n
    \r\n
    \r\n
    \r\n {\r\n this.props.Options.map((ele, index) => {\r\n let value = ele;\r\n let name = ele;\r\n if (typeof ele !== \"string\") {\r\n value = ele.value;\r\n name = ele.name;\r\n }\r\n return (\r\n
    {\r\n this.setState({ isSelecting: false, selected: value, selectedName: name })\r\n let e = { target: { value: value ,name: name} }\r\n this.props.OnChange(e)\r\n }}>\r\n {name}\r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n\r\nimport './LocateItem.css'\r\nexport class LocateItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    \r\n {this.props.data.name}\r\n
    \r\n );\r\n }\r\n\r\n handleClick = () => {\r\n this.props.handleClick&&this.props.handleClick(this.props.data);\r\n } \r\n}","import React, { Component } from 'react';\r\nimport { Input } from 'reactstrap';\r\nimport { DraggableWindow } from '../DraggableWindow';\r\nimport { InputSelect } from '../../../.common/InputSelect/InputSelect';\r\n\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport { LocateItem } from './LocateItem/LocateItem';\r\nimport './LocateTool.css'\r\n\r\nimport locate from './.image/locate-2.png';\r\n\r\nexport class LocateTool extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpenFunc: false,\r\n funcName: \"\",\r\n 地址: \"\",\r\n 行政區List: [],\r\n 行政區: \"-1\",\r\n 行政區Id: \"\",\r\n 地址: \"\",\r\n 道路List: [],\r\n 道路: \"-1\",\r\n 號: \"-1\",\r\n 之: \"-1\",\r\n sectionCode: \"\",\r\n landCode: \"\",\r\n lon: \"\",\r\n lat: \"\",\r\n }\r\n\r\n this.list = [\r\n {\r\n name: \"座標定位\",\r\n },\r\n {\r\n name: \"門牌定位\",\r\n },\r\n {\r\n name: \"地號定位\",\r\n },\r\n ]\r\n }\r\n\r\n componentDidMount() {\r\n let workerWaitForInit;\r\n function waitForInit() {\r\n if (!!window.gMainMap.IsReady) {\r\n clearInterval(workerWaitForInit);\r\n this.custom = this.GetCustomLayer();\r\n }\r\n }\r\n workerWaitForInit = setInterval(waitForInit.bind(this), 1000);\r\n\r\n this.get行政區List();\r\n }\r\n\r\n componentWillUnmount() {\r\n window.gMainMap.TerrainView.removeLayer(this.custom)\r\n }\r\n\r\n GetCustomLayer() {\r\n const CustDrawLayerID = \"_SearchCoorLayer\";\r\n let layer = window.gMainMap.TerrainView.findLayer(CustDrawLayerID);\r\n if (!layer) {\r\n layer = window.gMainMap.TerrainView.addCustomLayer(CustDrawLayerID);\r\n layer.setDepthTest(true);\r\n }\r\n\r\n return layer;\r\n }\r\n\r\n async get行政區List() {\r\n let url = \"https://api.nlsc.gov.tw/other/ListTown/M\"\r\n\r\n fetch(url)\r\n .then(response => response.text())\r\n .then(text => {\r\n let town = \"\";\r\n let townlist = [];\r\n let townId = {};\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(text, 'text/xml');\r\n for (let i = 0; ; i++) {\r\n if (xmlDoc.getElementsByTagName(\"towncode\")[i]) {\r\n let townCode = xmlDoc.getElementsByTagName(\"towncode\")[i].childNodes[0].nodeValue;\r\n let townName = xmlDoc.getElementsByTagName(\"townname\")[i].childNodes[0].nodeValue;\r\n townlist.push(townName);\r\n townId[townName] = townCode;\r\n }\r\n else { break; }\r\n }\r\n this.setState({ 行政區List: townlist, 行政區: \"-1\", 行政區Id: townId });\r\n })\r\n .catch(err => { console.log(err); });\r\n\r\n }\r\n\r\n async get道路List() {\r\n let url = `https://api.nlsc.gov.tw/idc/ListRoad/M/${this.state.行政區Id[this.state.行政區]}`\r\n\r\n fetch(url)\r\n .then(response => response.text())\r\n .then(text => {\r\n let name = \"\";\r\n let roadList = [];\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(text, 'text/xml');\r\n for (let i = 0; ; i++) {\r\n if (xmlDoc.getElementsByTagName(\"name\")[i]) {\r\n let roadName = xmlDoc.getElementsByTagName(\"name\")[i].childNodes[0].nodeValue;\r\n roadList.push(roadName);\r\n if (i == 0) {\r\n name = roadName;\r\n }\r\n }\r\n else { break; }\r\n }\r\n this.setState({ 道路List: roadList, 道路: \"-1\" });\r\n })\r\n .catch(err => { console.log(err); });\r\n }\r\n\r\n 行政區onChange() {\r\n let text = \"南投縣\" + this.state.行政區;\r\n this.setState({ 地址: text })\r\n this.get道路List()\r\n }\r\n\r\n 道路onChange() {\r\n let text = \"南投縣\" + this.state.行政區 + this.state.道路;\r\n this.setState({ 地址: text })\r\n }\r\n\r\n 號onChange() {\r\n let text = \"南投縣\" + this.state.行政區 + this.state.道路 + this.state.號 + \"號\";\r\n this.setState({ 地址: text })\r\n }\r\n\r\n 之onChange() {\r\n let text = \"南投縣\" + this.state.行政區 + this.state.道路 + this.state.號 + \"號之\" + this.state.之;\r\n this.setState({ 地址: text })\r\n }\r\n\r\n paintLocate(geoPoint) {\r\n this.custom.removeAllEntity();\r\n let param = {};\r\n param = {};\r\n geoPoint.z = 0\r\n param.geo = geoPoint;\r\n param.color = new window.ov.Color(\"#FF0000\");\r\n param.opacity = 1.0;\r\n param.size = 50;\r\n param.epsg = 4326;\r\n param.absHeight = false;\r\n param.symbol = locate;\r\n this.custom.addPointEntity(param);\r\n }\r\n\r\n //座標定位\r\n goto() {\r\n let x = parseFloat(this.state.lon);\r\n let y = parseFloat(this.state.lat);\r\n\r\n if (x.toString() === \"NaN\" || y.toString() === \"NaN\") {\r\n window.alertify.log(\"請輸入正確數字。\");\r\n return;\r\n }\r\n\r\n let geoPoint = new window.GeoPoint(x, y, 0);\r\n let v = new window.Geo3DPoint(0, 0, -1);\r\n let up = new window.Geo3DPoint(0, 1, 0);\r\n\r\n let camera = new window.ov.Camera(geoPoint, v, up);\r\n window.gMainMap.TerrainView.gotoCamera(camera, true);\r\n\r\n if (!this.custom) {\r\n return;\r\n }\r\n this.paintLocate(geoPoint)\r\n }\r\n\r\n //地號定位\r\n gotoCadas() {\r\n this.custom.removeAllEntity();\r\n if (this.state.sectionCode === \"\") {\r\n window.alertify.log(\"地段代碼不可為空。\");\r\n return;\r\n }\r\n else if (this.state.landCode === \"\") {\r\n window.alertify.log(\"地號不可為空。\");\r\n return;\r\n }\r\n\r\n let url = \"https://api.nlsc.gov.tw/dmaps/CadasMapPosition/M/\" + this.state.sectionCode + \"/\" + this.state.landCode\r\n fetch(url)\r\n .then(response => response.text())\r\n .then(text => {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(text, 'text/xml');\r\n\r\n let x = parseFloat(xmlDoc.getElementsByTagName(\"repX\")[0].childNodes[0].nodeValue);\r\n let y = parseFloat(xmlDoc.getElementsByTagName(\"repY\")[0].childNodes[0].nodeValue);\r\n let ldx = parseFloat(xmlDoc.getElementsByTagName(\"ldX\")[0].childNodes[0].nodeValue);\r\n let ldy = parseFloat(xmlDoc.getElementsByTagName(\"ldY\")[0].childNodes[0].nodeValue);\r\n let rtx = parseFloat(xmlDoc.getElementsByTagName(\"rtX\")[0].childNodes[0].nodeValue);\r\n let rty = parseFloat(xmlDoc.getElementsByTagName(\"rtY\")[0].childNodes[0].nodeValue);\r\n let pos = new window.GeoPoint({ x: x, y: y });\r\n\r\n let param = {};\r\n param.geo = new window.GeoPolygonSet(\r\n new window.GeoPolygon([new window.GeoPoint(ldx, rty), new window.GeoPoint(rtx, rty), new window.GeoPoint(rtx, ldy), new window.GeoPoint(ldx, ldy)]));\r\n param.color = \"#FFFF00\";\r\n param.opacity = 0.5;\r\n param.epsg = 4326;\r\n if (!this.custom) {\r\n return;\r\n }\r\n this.custom.addSurfacePolygonSetEntity(param);\r\n window.gMainMap.TerrainView.goto(pos, 500, false);\r\n })\r\n .catch(err => { console.log(err); });\r\n }\r\n\r\n //門牌定位\r\n gotoDoorplate() {\r\n let 縣市代碼 = \"M\";//南投縣\r\n let url = `https://api.nlsc.gov.tw/idc/TextQueryAddress/${this.state.地址}/1/${縣市代碼}`\r\n fetch(url)\r\n .then(response => response.text())\r\n .then(text => {\r\n let contentList = [];\r\n let locationList = [];\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(text, 'text/xml');\r\n for (let i = 0; ; i++) {\r\n if (xmlDoc.getElementsByTagName(\"content\")[i]) {\r\n let content = xmlDoc.getElementsByTagName(\"content\")[i].childNodes[0].nodeValue;\r\n let location = xmlDoc.getElementsByTagName(\"location\")[i].childNodes[0].nodeValue;\r\n contentList.push(content)\r\n locationList.push(location)\r\n }\r\n else { break; }\r\n }\r\n if (locationList.length == 0) {\r\n console.log(\"error:找不到\")\r\n return\r\n }\r\n let 座標 = locationList[0].split(',')\r\n let geoPoint = new window.GeoPoint(parseFloat(座標[0]), parseFloat(座標[1]), 0);\r\n let height = window.gMainMap.TerrainView.getAbsHeight(geoPoint, 4326)\r\n geoPoint.z = height + 200;\r\n let v = new window.Geo3DPoint(0, 0, -1);\r\n let up = new window.Geo3DPoint(0, 1, 0);\r\n let camera = new window.ov.Camera(geoPoint, v, up);\r\n window.gMainMap.TerrainView.gotoCamera(camera, true);\r\n if (!this.custom) {\r\n return;\r\n }\r\n this.paintLocate(geoPoint);\r\n });\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n //座標查詢\r\n searchByCoordinate() {\r\n return (\r\n
    \r\n
    \r\n 採用WGS84經緯度座標系\r\n
    \r\n
    \r\n 經度:\r\n { this.setState({ lon: e.target.value }) }}\r\n />\r\n
    \r\n
    \r\n 緯度:\r\n { this.setState({ lat: e.target.value }) }}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n //地號查詢\r\n searchByCadasPanel() {\r\n return (\r\n
    \r\n
    \r\n 南投地號查詢\r\n
    \r\n
    \r\n 地段代碼:\r\n { this.setState({ sectionCode: e.target.value }) }}\r\n />\r\n
    \r\n
    \r\n 地號:\r\n { this.setState({ landCode: e.target.value }) }}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n //門牌查詢\r\n searchByDoorplatePanel() {\r\n return (\r\n
    \r\n
    \r\n 搜尋地址:\r\n {\r\n this.setState({ 地址: e.target.value });\r\n }} disabled />\r\n
    \r\n
    \r\n 行政區:\r\n {\r\n this.setState({ 行政區: e.target.value }, () => {\r\n this.行政區onChange();\r\n });\r\n }}> \r\n
    \r\n
    \r\n 道路:\r\n {\r\n this.setState({ 道路: e.target.value }, () => {\r\n this.道路onChange();\r\n });\r\n }}>\r\n
    \r\n
    \r\n {\r\n this.setState({ 號: e.target.value }, () => {\r\n this.號onChange();\r\n })\r\n }}>\r\n 號,之\r\n {\r\n this.setState({ 之: e.target.value }, () => {\r\n this.之onChange();\r\n })\r\n }}>\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n content() {\r\n return (\r\n
    \r\n
    \r\n {\r\n this.list.map(item => {\r\n if (this.state.isOpenFunc && item.name === this.state.funcName) {\r\n return \r\n }\r\n return \r\n })\r\n }\r\n
    \r\n {\r\n this.state.isOpenFunc ?\r\n this.state.funcName === \"座標定位\" ?\r\n this.searchByCoordinate() :\r\n this.state.funcName === \"地號定位\" ?\r\n this.searchByCadasPanel() :\r\n this.state.funcName === \"門牌定位\" ?\r\n this.searchByDoorplatePanel() : null : null\r\n }\r\n
    \r\n );\r\n }\r\n\r\n handleClick = (data) => {\r\n let isOpenFunc = this.state.isOpenFunc;\r\n if (this.state.funcName === data.name) {\r\n isOpenFunc = !isOpenFunc;\r\n }\r\n else {\r\n isOpenFunc = true;\r\n }\r\n switch (data.name) {\r\n case \"座標定位\": {\r\n this.setState({ isOpenFunc: isOpenFunc, funcName: \"座標定位\" });\r\n }\r\n break;\r\n case \"門牌定位\": {\r\n this.setState({ isOpenFunc: isOpenFunc, funcName: \"門牌定位\" });\r\n }\r\n break;\r\n case \"地號定位\": {\r\n this.setState({ isOpenFunc: isOpenFunc, funcName: \"地號定位\" });\r\n }\r\n break;\r\n }\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport './TravelDiaryToolItem.css'\r\nexport class TravelDiaryToolItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    \r\n {this.props.name}\r\n
    \r\n );\r\n }\r\n\r\n handleClick = () => {\r\n this.props.handleClick && this.props.handleClick(this.props.name);\r\n }\r\n}","import React, { Component } from 'react';\r\nimport './TravelDiaryListItem.css';\r\n\r\nimport { AutoTruncateTextLabel } from '../../../../.common/AutoTruncateTextLabel/AutoTruncateTextLabel';\r\nimport ApiOviewDocmd from '../../../../../modules/WebApiModules/ApiOviewDocmd'; \r\n\r\nimport locate from './.image/locate-2.png';\r\nimport del from './.image/delete.png';\r\nimport visible from './.image/Visible.png';\r\nimport unVisible from './.image/Unvisible.png';\r\n\r\nexport class TravelDiaryListItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isEdit: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentDidUpdate() {\r\n }\r\n\r\n componentWillUnmount() {\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n
    \r\n \r\n {\r\n
    \r\n {this.props.isDelete ? { this.props.userDelete(this.props.name)}} /> : null}\r\n { this.props.goto(this.props.pos, this.props.index); }} />\r\n { this.props.setShow(this.props.index) }} />\r\n
    \r\n }\r\n
    \r\n );\r\n }\r\n\r\n}","import React, { Component } from 'react';\r\nimport { DraggableWindow } from '../DraggableWindow';\r\n\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport { TravelDiaryToolItem } from './TravelDiaryToolItem/TravelDiaryToolItem';\r\nimport { TravelDiaryListItem } from './TravelDiaryListItem/TravelDiaryListItem';\r\n\r\nimport ApiOviewDocmd from '../../../../modules/WebApiModules/ApiOviewDocmd';\r\n\r\nimport exifr from 'exifr';\r\nimport ls from 'localstorage-slim';\r\n\r\nimport shared from './.image/sharedURL.png';\r\nimport outputVideo from './.image/outputVideo.png';\r\nimport locate from './.image/locate-2.png';\r\nimport group from './.image/group.png';\r\nimport picture from './.image/picture.png';\r\nimport pictureBorder from './.image/pictureBorder.png';\r\nimport loading from './.image/loading.gif';\r\n//import head from './.image/預設頭像.png';\r\n//import glb from './.image/小黃人.glb';\r\nimport yellowMan from \"./YellowMan.js\";\r\nimport './TravelDiaryTool.css'\r\n\r\nconst engine = window.GetEPSGEngine();\r\nexport class TravelDiaryTool extends Component {\r\n static contextType = LayoutContext;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n demoName: \"南投好行範例Demo\",\r\n pageName: \"日記\",\r\n gpxFileName: \"\",\r\n nowTrack: undefined,\r\n nowPicture: picture,\r\n waitPicList: [],\r\n nowTrackIndex: -1,\r\n showTrackList: [],\r\n uploadLoading: false,\r\n picFileName: \"\",\r\n showPicIndex: -1,\r\n describe: \"\",\r\n textEdit: false,\r\n picEdit: false,\r\n picTitle: \"\",\r\n picText: \"\",\r\n changeView: true,\r\n isLogined: false,\r\n }\r\n\r\n this.token = \"\";\r\n\r\n this.demoIndex = -1; //範例索引\r\n\r\n this.trackLoading = false;\r\n this.listLoading = false;\r\n\r\n this.trackList = []; //軌跡清單\r\n this.nowEntityList = []; //軌跡事件圖素清單\r\n this.nowEntityTimeList = []; //軌跡事件圖素所在時間列表\r\n this.nowPicList = []; //日記資料列表\r\n\r\n this.trackTimeEvent = -1; //軌跡時間軸事件索引\r\n\r\n this.startVideo = false; //判斷是否錄影\r\n this.isPause = false; //判斷是否時間中斷\r\n\r\n this.recordTimeEvent = undefined; //錄影事件\r\n this.recordTimelineEvent = -1;\r\n\r\n this.track = window.gMainMap.TerrainView.getModule(\"track\");\r\n this.track.depthTest = true;\r\n\r\n this.collisionList = []; //碰撞列表 避免重複碰撞\r\n\r\n this.cameraHeight = 4;\r\n }\r\n\r\n async componentDidMount() {\r\n this.listLoading = true;\r\n this.custom = await this.GetCustomDrawLayer();\r\n this.customPic = await this.GetCustomDrawPicLayer();\r\n this.getAllTrack();\r\n\r\n let lsInfo = ls.get(\"userInfo\", { decrypt: true });\r\n if (lsInfo) {\r\n this.setState({ isLogined: true });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { travelDiaryToolContext } = this.context;\r\n\r\n this.Async_WaitMapInit().then(() => {\r\n travelDiaryToolContext.update({ token: \"\" });\r\n window.gMainMap.TerrainView.removeLayer(this.custom);\r\n this.removeTrack();\r\n window.gMainMap.TerrainView.removeTimeEvent(this.trackTimeEvent);\r\n window.gMainMap.TerrainView.removeLayer(this.custom);\r\n window.gMainMap.TerrainView.removeLayer(this.customPic);\r\n });\r\n\r\n if (this.recordTimeEvent) {\r\n clearInterval(this.recordTimeEvent);\r\n }\r\n }\r\n\r\n //移除時間條\r\n removeWidgetTimeline() {\r\n this.widgetTimeline && this.widgetTimeline.remove();\r\n this.widgetTimelinePlayer && this.widgetTimelinePlayer.remove();\r\n }\r\n\r\n //繪出叢集\r\n async paintCluster() {\r\n //根節點參數\r\n let rootParam = {\r\n geo: new GeoPoint(123, 25),\r\n absHeight: false,\r\n epsg: 4326,\r\n symbol: group,\r\n pullUpY: 500,\r\n size: 50,\r\n displayLeafCount: true,\r\n attr: \"點擊資訊\",\r\n childrenCluster: true,\r\n childrenGridSize: 64,\r\n childrenMaxSize: 0,\r\n children: []\r\n };\r\n\r\n let lon = 0;\r\n let lat = 0;\r\n\r\n this.trackList.forEach((track, index) => {\r\n if (index !== this.state.nowTrackIndex && this.state.showTrackList[index]) {\r\n let longitude = parseFloat(track.pos.x);\r\n let laitude = parseFloat(track.pos.y);\r\n let text = track.name;\r\n let attr = index;\r\n\r\n if (!(isNaN(longitude) || isNaN(laitude))) {\r\n lon += longitude;\r\n lat += laitude;\r\n //葉節點參數\r\n let param = {\r\n geo: new GeoPoint(longitude, laitude),\r\n epsg: 4326,\r\n label: {\r\n text: text,\r\n font: \"標楷體\"\r\n },\r\n symbol: locate,\r\n size: 50,\r\n pullUpY: 1000,\r\n pullUpYIsWorldSize: true,\r\n attr: attr,\r\n tooltip: text\r\n };\r\n\r\n //推入根節點children\r\n let length = this.trackList.length;\r\n if (length > 0) {\r\n rootParam.geo = new GeoPoint(lon / length, lat / length);\r\n }\r\n rootParam.children.push(param);\r\n }\r\n }\r\n });\r\n\r\n this.clusterEntity = this.custom.addClusterEntity(rootParam);\r\n\r\n //點擊事件 顯示軌跡\r\n this.clusterEntity.setOnClickListener(function (mousePos, attr, sn, name) {\r\n\r\n if (attr.type !== ov.ENUM_VECTOR_ENTITY_TYPE.CLUSTER && !this.trackLoading) {\r\n let index = parseInt(attr.attr);\r\n this.trackLoading = true;\r\n this.getTrack(index);\r\n }\r\n }.bind(this));\r\n }\r\n\r\n //取得軌跡\r\n getTrack(index) {\r\n let name = this.trackList[index].name;\r\n let date = this.trackList[index].date;\r\n let dir = this.trackList[index].dir;\r\n ApiOviewDocmd.Docmd(\"CMD_GetTrack\", { name: name, date: date, dir: dir }, (res) => {\r\n this.nowPicList = res.picList;\r\n this.nowEntityList = [];\r\n this.nowEntityTimeList = [];\r\n this.collisionList = [];\r\n let nowTrack = res.track;\r\n this.setState({\r\n nowTrackIndex: index,\r\n nowTrack: nowTrack,\r\n showPicIndex: -1,\r\n describe: nowTrack.describe,\r\n picTitle: \"\",\r\n picText: \"\",\r\n textEdit: false,\r\n picEdit: false\r\n }, async () => {\r\n await this.addTrack(this.state.nowTrack.gpxFile, name);\r\n\r\n this.nowPicList.forEach((ent, index) => {\r\n let pa = this.paintEvent(ent.geo, ent.pic, index);\r\n this.addPicTimeList(ent.geo);\r\n this.nowEntityList.push(pa);\r\n });\r\n\r\n this.trackLoading = false;\r\n this.paintCluster();\r\n });\r\n\r\n }, (res) => { this.trackLoading = false; console.log(res); });\r\n }\r\n\r\n async Async_WaitMapInit() {\r\n if (window.gMainMap.IsReady) {\r\n return;\r\n }\r\n function Wait(time) {\r\n return new Promise((rs) => { setTimeout(rs, time ?? 100) })\r\n }\r\n while (!window.gMainMap.IsReady) {\r\n await Wait();\r\n }\r\n }\r\n\r\n async Async_WaitListLoading() {\r\n if (!this.listLoading) {\r\n return;\r\n }\r\n function Wait(time) {\r\n return new Promise((rs) => { setTimeout(rs, time ?? 100) })\r\n }\r\n while (this.listLoading) {\r\n await Wait();\r\n }\r\n }\r\n\r\n /**取得自畫圖層 軌跡點*/\r\n async GetCustomDrawLayer() {\r\n await this.Async_WaitMapInit();\r\n const CustDrawLayerID = \"_CustomTravelDiaryTrack\";\r\n let layer = window.gMainMap.TerrainView.findLayer(CustDrawLayerID);\r\n if (!layer) {\r\n layer = window.gMainMap.TerrainView.addCustomLayer(CustDrawLayerID);\r\n layer.setDepthTest(true);\r\n }\r\n\r\n return layer;\r\n }\r\n\r\n /**取得自畫圖層 日記點*/\r\n async GetCustomDrawPicLayer() {\r\n await this.Async_WaitMapInit();\r\n const CustDrawLayerID = \"_CustomTravelDiaryPicture\";\r\n let layer = window.gMainMap.TerrainView.findLayer(CustDrawLayerID);\r\n if (!layer) {\r\n layer = window.gMainMap.TerrainView.addCustomLayer(CustDrawLayerID);\r\n layer.setDepthTest(true);\r\n layer.setDepthFunc(519);\r\n }\r\n\r\n return layer;\r\n }\r\n\r\n //選擇gpx檔案 \r\n async gpxFile_OnChange(e) {\r\n if (e.target.files.length < 1) {\r\n window.alertify.log(\"請選擇檔案。\");\r\n return;\r\n }\r\n\r\n let file = e.target.files[0];\r\n\r\n await this.Async_WaitMapInit();\r\n await this.Async_WaitListLoading();\r\n\r\n for (let i = 0; i < this.trackList.length; i++) {\r\n if (file.name === this.trackList[i].name) {\r\n window.alertify.error(\"檔案名稱重複。\");\r\n return;\r\n }\r\n }\r\n\r\n const promise = new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.onload = function () {\r\n let res = reader.result;\r\n resolve(res);\r\n }\r\n reader.readAsDataURL(file);\r\n });\r\n let uploadData = await promise;\r\n\r\n let position = await this.addTrack(uploadData, file.name);\r\n\r\n let track = {\r\n gpxFile: uploadData,\r\n name: file.name,\r\n pos: position,\r\n describe: \"\",\r\n dir: \"\",\r\n enable: true\r\n }\r\n\r\n //清空日記列表\r\n this.nowEntityList = [];\r\n this.nowEntityTimeList = [];\r\n this.nowPicList = [];\r\n\r\n this.collisionList = [];\r\n\r\n this.setState({\r\n nowTrack: track,\r\n nowTrackIndex: -1,\r\n gpxFileName: file.name,\r\n describe: \"\",\r\n picTitle: \"\",\r\n picText: \"\",\r\n showPicIndex: -1\r\n }, () => { this.paintCluster(); });\r\n }\r\n\r\n //上傳軌跡\r\n uploadTrack_OnClick() {\r\n this.setState({ uploadLoading: true });\r\n ApiOviewDocmd.Docmd(\"CMD_UploadTrack\", { track: this.state.nowTrack }, (res) => {\r\n let track = this.state.nowTrack;\r\n let index = this.state.nowTrackIndex;\r\n let showTrackList = this.state.showTrackList;\r\n if (track.dir === \"\") {\r\n this.trackList.push(res.trackEntity);\r\n index = this.trackList.length - 1;\r\n track.dir = res.trackEntity.dir;\r\n showTrackList[index] = true;\r\n }\r\n\r\n if (track.name.substring(0, track.name.length - 4) === (this.state.demoName)) {\r\n this.demoIndex = index;\r\n }\r\n\r\n this.nowPicList.forEach(pic => {\r\n if (pic.update) {\r\n pic.update = false;\r\n this.picUpload(pic, track.dir);\r\n }\r\n });\r\n\r\n this.setState({\r\n nowTrack: track, nowTrackIndex: index,\r\n showTrackList: showTrackList,\r\n uploadLoading: false,\r\n textEdit: false,\r\n picEdit: false,\r\n picFileName: \"\"\r\n }, () => { this.paintCluster(); });\r\n }, (res) => { console.log(res); });\r\n }\r\n\r\n //刪除軌跡\r\n deleteTrack_OnClick() {\r\n ApiOviewDocmd.Docmd(\"CMD_DeleteTrack\", { dir: this.state.nowTrack.dir }, (res) => {\r\n this.nowEntityList = [];\r\n this.nowPicList = []; //日記資料列表\r\n this.removeTrack(); //清除軌跡\r\n this.trackList.splice(this.state.nowTrackIndex, 1);\r\n let showTrackList = this.state.showTrackList;\r\n showTrackList.splice(this.state.nowTrackIndex, 1);\r\n\r\n this.trackList.forEach((track, index) => {\r\n if (track.name.substring(0, track.name.length - 4) === (this.state.demoName)) {\r\n this.demoIndex = index;\r\n }\r\n });\r\n\r\n this.setState({\r\n nowTrackIndex: -1,\r\n nowTrack: undefined,\r\n showTrackList: showTrackList,\r\n gpxFileName: \"\",\r\n showPicIndex: -1,\r\n describe: \"\",\r\n picTitle: \"\",\r\n picText: \"\"\r\n }, () => {\r\n this.custom.removeAllEntity();\r\n this.customPic.removeAllEntity();\r\n this.paintCluster();\r\n });\r\n\r\n }, (res) => { console.log(res); });\r\n }\r\n\r\n //登入使用者刪除軌跡\r\n loginUserDelete_OnClick(name) {\r\n ApiOviewDocmd.Docmd(\"CMD_LoginUserDeleteTrack\", { name: name }, (res) => {\r\n let delTrackIndex = -1;\r\n this.trackList.forEach((track, index) => {\r\n if (track.name === name) {\r\n delTrackIndex = index;\r\n }\r\n });\r\n\r\n this.nowEntityList = [];\r\n this.nowPicList = []; //日記資料列表\r\n this.removeTrack(); //清除軌跡\r\n this.trackList.splice(delTrackIndex, 1);\r\n let showTrackList = this.state.showTrackList;\r\n showTrackList.splice(delTrackIndex, 1);\r\n\r\n this.trackList.forEach((track, index) => {\r\n if (track.name.substring(0, track.name.length - 4) === (this.state.demoName)) {\r\n this.demoIndex = index;\r\n }\r\n });\r\n\r\n this.setState({\r\n nowTrackIndex: -1,\r\n nowTrack: undefined,\r\n showTrackList: showTrackList,\r\n gpxFileName: \"\",\r\n showPicIndex: -1,\r\n describe: \"\",\r\n picTitle: \"\",\r\n picText: \"\"\r\n }, () => {\r\n this.custom.removeAllEntity();\r\n this.customPic.removeAllEntity();\r\n this.paintCluster();\r\n });\r\n\r\n }, (res) => { console.log(res); });\r\n }\r\n\r\n //清除軌跡\r\n removeTrack() {\r\n this.isPause = false;\r\n\r\n if (this.GPXEntity) {\r\n this.track.removeEntity(this.GPXEntity);\r\n }\r\n if (this.widgetTimelinePlayer) {\r\n this.widgetTimelinePlayer.stop();\r\n }\r\n this.removeWidgetTimeline();\r\n window.gMainMap.TerrainView.removeTimeEvent(this.recordTimelineEvent);\r\n }\r\n\r\n //加入軌跡\r\n async addTrack(gpxfile, fileName) {\r\n let file = this.dataURLtoFile(gpxfile, fileName);\r\n this.custom.removeAllEntity();\r\n this.customPic.removeAllEntity();\r\n this.removeTrack();\r\n this.widgetTimeline = new window.ov.Widget.Timeline({ view: window.gMainMap.TerrainView, style: { left: \"70px\", width: \"calc(80% - 70px)\", bottom: \"100px\" } });\r\n this.widgetTimelinePlayer = new window.ov.Widget.TimelinePlayer({\r\n view: window.gMainMap.TerrainView,\r\n style: { bottom: \"50px\" },\r\n timeline: this.widgetTimeline,\r\n playSpeed: 4,\r\n minUpdateInterval: 1\r\n });\r\n //console.log(this.widgetTimeline);\r\n //console.log(this.widgetTimelinePlayer);\r\n\r\n let position = await new Promise(function (rs) {\r\n this.track.addGPXEntity({\r\n onGround: true,\r\n source: file,\r\n target: { src: yellowMan, scale: 1, minRange: 0, rotate: { x: 0, y: 1, z: 0, w: 270 }, absHeight: false },\r\n callback: function (ent) {\r\n this.widgetTimeline.addLink(ent);\r\n this.GPXEntity = ent;\r\n\r\n this.goto(ent.position.x, ent.position.y);\r\n this.GPXEntity.show = false;\r\n\r\n try {\r\n //ent._entity._Layer._Entities[1].UpdateParameter({ pointOffset: new GeoPoint(0, 25), symbolSize: [50, 50] });\r\n ent._entity._Layer._Entities[0].UpdateParameter({ color: \"rgb(255, 251, 0)\", size: 5, dashScale: 0 });\r\n // ent._entity._TargetEntity._Text._FontSize = 0;\r\n } catch (error) {\r\n console.log(error);\r\n console.log(ent);\r\n }\r\n let position = ent.position;\r\n let p = new window.GeoPoint(position.x, position.y);\r\n this.moveLine = this.custom.addGroundPolylineEntity({ geo: new window.GeoPolyline([p, p]), color: \"rgb(255, 251, 0)\", size: 5 });\r\n rs(ent.position);\r\n this.widgetTimeline.updateTime(ent.playingInfo.TimeSpan[0]);\r\n this.widgetTimeline.updateParameter({ startTime: ent.playingInfo.TimeSpan[0], stopTime: ent.playingInfo.TimeSpan[1], isRepeat: true });\r\n this.addTrackTimeEvent();\r\n let rate = Math.round(this.getTimeRate(this.GPXEntity.getParameter().path.geo, this.GPXEntity.getParameter().path.date));\r\n this.cameraHeight = 4;\r\n this.widgetTimelinePlayer.updateParameter({ playSpeed: rate });\r\n }.bind(this)\r\n });\r\n }.bind(this))\r\n\r\n return position;\r\n }\r\n\r\n //將base64轉換為檔案\r\n dataURLtoFile(dataurl, filename) {\r\n let arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new File([u8arr], filename, { type: mime });\r\n }\r\n\r\n //軌跡時間軸事件\r\n addTrackTimeEvent() {\r\n if (this.trackTimeEvent !== -1) {\r\n window.gMainMap.TerrainView.removeTimeEvent(this.trackTimeEvent);\r\n }\r\n if (this.GPXEntity) {\r\n this.trackTimeEvent = window.gMainMap.TerrainView.addTimeEvent({\r\n start: this.GPXEntity.playingInfo.TimeSpan[0],\r\n end: this.GPXEntity.playingInfo.TimeSpan[1],\r\n onPlay: function () {\r\n if (this.GPXEntity) {\r\n let dates = this.GPXEntity.getParameter().path.date;\r\n let geo = this.GPXEntity.getParameter().path.geo;\r\n this.cameraMove(dates, geo);\r\n this.checkCollision();\r\n this.dashLineToSolid(dates, geo);\r\n }\r\n }.bind(this),\r\n onEnter: function () {\r\n this.nowEntityList.forEach(entity => {\r\n entity.point.show = true;\r\n });\r\n }.bind(this),\r\n onLeave: function () {\r\n this.nowEntityList.forEach(entity => {\r\n entity.point.show = false;\r\n entity.border.show = false;\r\n entity.picture.show = false;\r\n entity.text.show = false;\r\n this.setState({ showPicIndex: -1, picTitle: \"\", picText: \"\", picText: \"\", nowPicture: picture });\r\n });\r\n }.bind(this)\r\n });\r\n }\r\n }\r\n\r\n //第三人稱攝影機移動\r\n cameraMove(dates, geo) {\r\n if (this.widgetTimelinePlayer._Play) {\r\n let height = window.gMainMap.TerrainView.getHeight(this.GPXEntity.position);\r\n let pos = new window.GeoPoint(this.GPXEntity.position.x, this.GPXEntity.position.y, height + 4);\r\n let oldV = window.gMainMap.TerrainView.camera.v;\r\n for (let i = 0; i < dates.length - 1; i++) {\r\n if (this.GPXEntity.playTime > dates[i] && this.GPXEntity.playTime < dates[i + 1]) {\r\n let x = geo[i + 1].x - geo[i].x;\r\n let y = geo[i + 1].y - geo[i].y;\r\n let z = geo[i + 1].z - geo[i].z;\r\n\r\n let vector = this.normalize({ x: x, y: y, z: z });\r\n\r\n // 計算角度\r\n let angle = this.computeAng(vector, oldV);\r\n let newV = window.gMainMap.TerrainView.camera.v;\r\n let up = new window.Geo3DPoint(0, 0, 1);\r\n let r = this.cross(newV, up);\r\n if (!isNaN(angle)) {\r\n //判斷轉動方向\r\n\r\n let divide = 30\r\n //計算與r夾角以確定轉向左邊或右邊\r\n let ang2 = this.computeAng(vector, r);\r\n\r\n if (ang2 > 90) {\r\n angle *= -1;\r\n }\r\n let rate = this.computeDis(geo[i + 1], pos) / this.computeDis(geo[i + 1], geo[i]);\r\n rate = rate.toFixed(2);\r\n newV = this.rotateVectorXY(angle / (divide + 50 * (1 - rate)));\r\n }\r\n\r\n let cameraV = new window.Geo3DPoint(newV.x, newV.y, 0);\r\n engine.Transfer(4326, 3857, pos);\r\n engine.Transfer(4326, 3857, cameraV);\r\n cameraV.Normalize();\r\n let newPos = new window.GeoPoint(pos.x - cameraV.x * 20, pos.y - cameraV.y * 20, pos.z);\r\n engine.Transfer(3857, 4326, newPos);\r\n let newHeight = window.gMainMap.TerrainView.getHeight(newPos);\r\n engine.Transfer(4326, 3857, newPos);\r\n if (newHeight - height <= 0) {\r\n if (this.cameraHeight > 4) {\r\n this.cameraHeight -= 0.1;\r\n }\r\n }\r\n else if (newHeight - height > 4) {\r\n if (this.cameraHeight < 10) {\r\n this.cameraHeight += 0.1;\r\n }\r\n }\r\n\r\n newPos.z = newHeight + this.cameraHeight;\r\n\r\n let temp = new window.Geo3DPoint(0, 0, 1);\r\n let cameraR = this.cross(cameraV, temp);\r\n cameraR.Normalize();\r\n cameraV = new window.Geo3DPoint(cameraV.x * 20, cameraV.y * 20, pos.z - newPos.z);\r\n cameraV.Normalize();\r\n let cameraUp = this.cross(cameraR, cameraV);\r\n\r\n engine.Transfer(3857, 4326, newPos);\r\n\r\n let newCamera = new window.ov.Camera(newPos, cameraV, cameraUp);\r\n window.gMainMap.TerrainView.gotoCamera(newCamera, false);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n //經過後虛線變為實線\r\n dashLineToSolid(dates, geo) {\r\n if (this.widgetTimelinePlayer._Play) {\r\n let geoList = [];\r\n let hasPassList = [];\r\n for (let i = 0; i < dates.length - 1; i++) {\r\n hasPassList.push(new window.GeoPoint(geo[i].x, geo[i].y));\r\n geoList.push(new window.GeoPoint(geo[i].x, geo[i].y));\r\n if (this.GPXEntity.playTime > dates[i] && this.GPXEntity.playTime < dates[i + 1]) {\r\n geoList.push(new window.GeoPoint(this.GPXEntity.position.x, this.GPXEntity.position.y));\r\n hasPassList.push(new window.GeoPoint(this.GPXEntity.position.x, this.GPXEntity.position.y));\r\n for (let j = i + 1; j < dates.length; j++) {\r\n geoList.push(new window.GeoPoint(geo[j].x, geo[j].y));\r\n }\r\n if (this.moveLine) {\r\n this.moveLine.update({ geo: new window.GeoPolyline(hasPassList) });\r\n }\r\n this.GPXEntity._entity._Layer._Entities[0].UpdateParameter({ geo: new window.GeoPolyline(geoList) });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n //時間與位置碰撞檢查\r\n checkCollision() {\r\n let nowDate = this.GPXEntity.playTime;\r\n\r\n if (this.widgetTimelinePlayer._Play) {\r\n let lastIndex = -1;\r\n let alreadyPass = [];\r\n\r\n for (let index = 0; index < this.nowEntityTimeList.length; index++) {\r\n if (nowDate >= this.nowEntityTimeList[index] && !this.collisionList.includes(index)) {\r\n alreadyPass.push(index);\r\n }\r\n\r\n if (nowDate < this.nowEntityTimeList[index] && this.collisionList.includes(index)) {\r\n this.collisionList.splice(this.collisionList.indexOf(index), 1);\r\n }\r\n }\r\n\r\n let maxDate = new Date(0);\r\n alreadyPass.forEach(passTimeIndex => {\r\n if (this.nowEntityTimeList[passTimeIndex] >= maxDate) {\r\n if (lastIndex !== -1) {\r\n this.collisionList.push(lastIndex);\r\n }\r\n maxDate = this.nowEntityTimeList[passTimeIndex];\r\n lastIndex = passTimeIndex;\r\n }\r\n else {\r\n this.collisionList.push(passTimeIndex);\r\n }\r\n });\r\n\r\n if (lastIndex !== -1 && !this.collisionList.includes(lastIndex)) {\r\n this.collisionList.push(lastIndex);\r\n\r\n let nowPos = this.GPXEntity.position;\r\n let picGeo = this.nowPicList[lastIndex].geo\r\n\r\n if (nowDate.getTime() - this.nowEntityTimeList[lastIndex].getTime() <= 10000) {//單位是毫秒數\r\n this.showEntity(lastIndex);\r\n this.isPause = true;\r\n this.widgetTimelinePlayer.stop();\r\n\r\n let moveV = new window.Geo3DPoint(picGeo.x - nowPos.x, picGeo.y - nowPos.y, 0)\r\n\r\n let oldCamera = window.gMainMap.TerrainView.camera;\r\n let newCameraPos = new window.GeoPoint(oldCamera.pos.x + moveV.x, oldCamera.pos.y + moveV.y, 0);\r\n let newCameraHeight = window.gMainMap.TerrainView.getHeight(newCameraPos);\r\n newCameraPos.z = newCameraHeight + this.cameraHeight;\r\n\r\n let newCamera = new window.ov.Camera(newCameraPos, oldCamera.v, oldCamera.up);\r\n window.gMainMap.TerrainView.gotoCamera(newCamera, false);\r\n\r\n setTimeout(() => { this.showEntity(lastIndex); }, 4001);\r\n setTimeout(() => {\r\n this.widgetTimelinePlayer.play();\r\n this.isPause = false;\r\n }, 4000);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //計算時間速率\r\n getTimeRate(geos, dates) {\r\n let defaultSpeed = 220;\r\n\r\n let distance = 0;\r\n\r\n for (let i = 0; i < geos.length - 1; i++) {\r\n distance += this.computeDis(geos[i], geos[i + 1]);\r\n }\r\n\r\n distance = distance / 1000;\r\n let time = dates[dates.length - 1].getTime() - dates[0].getTime();\r\n\r\n time = time / 1000 / 60 / 60;\r\n\r\n return defaultSpeed * time / distance;\r\n }\r\n\r\n //旋轉向量XY平面\r\n rotateVectorXY(ang) {\r\n let v = window.gMainMap.TerrainView.camera.v;\r\n let arc = ang * Math.PI / 180;\r\n return new window.Geo3DPoint((Math.cos(arc) * v.x + Math.sin(arc) * v.y), (-Math.sin(arc) * v.x + Math.cos(arc) * v.y), 0)\r\n }\r\n\r\n //正規化\r\n normalize(vector) {\r\n let x2 = Math.pow(vector.x, 2);\r\n let y2 = Math.pow(vector.y, 2);\r\n let z2 = Math.pow(vector.z, 2);\r\n let unit = Math.sqrt(x2 + y2 + z2);\r\n\r\n return new window.Geo3DPoint(vector.x / unit, vector.y / unit, vector.z / unit);\r\n }\r\n\r\n //向量外積\r\n cross(v1, v2) {\r\n let x = v1.y * v2.z - v1.z * v2.y;\r\n let y = v1.z * v2.x - v1.x * v2.z;\r\n let z = v1.x * v2.y - v1.y * v2.x;\r\n\r\n return this.normalize({ x: x, y: y, z: z });\r\n }\r\n\r\n //計算角度\r\n computeAng(v1, v2) {\r\n let dot = v1.x * v2.x + v1.y * v2.y;\r\n let length = Math.sqrt(v1.x * v1.x + v1.y * v1.y) * Math.sqrt(v2.x * v2.x + v2.y * v2.y);\r\n\r\n let cos = dot.toFixed(10) / length.toFixed(10);\r\n\r\n return Math.acos(cos) * 180 / Math.PI;\r\n }\r\n\r\n //計算兩點距離\r\n computeDis(p1, p2) {\r\n let newP1 = new window.GeoPoint(p1.x, p1.y);\r\n let newP2 = new window.GeoPoint(p2.x, p2.y);\r\n engine.Transfer(4326, 3857, newP1);\r\n engine.Transfer(4326, 3857, newP2);\r\n let x2 = Math.pow(newP1.x - newP2.x, 2);\r\n let y2 = Math.pow(newP1.y - newP2.y, 2);\r\n\r\n return Math.sqrt(x2 + y2);\r\n }\r\n\r\n //判斷是否接近\r\n isClose(position, point, distance) {\r\n return this.computeDis(position, point) < distance;\r\n }\r\n\r\n //取得所有已儲存軌跡\r\n getAllTrack() {\r\n const { travelDiaryToolContext } = this.context;\r\n this.listLoading = true;\r\n ApiOviewDocmd.Docmd(\"CMD_GetTrackList\", { token: travelDiaryToolContext.token }, (res) => {\r\n this.trackList = [];\r\n let showTrackList = [];\r\n let nowIndex = -1;\r\n res.list.forEach((track, index) => {\r\n if (track.dir !== \"\") {\r\n nowIndex = index;\r\n }\r\n if (track.name.substring(0, track.name.length - 4) === (this.state.demoName)) {\r\n this.demoIndex = index;\r\n track.dir = \"\";\r\n }\r\n this.trackList.push(track);\r\n showTrackList.push(true);\r\n });\r\n if (nowIndex !== -1) {\r\n this.getTrack(nowIndex);\r\n }\r\n this.listLoading = false;\r\n this.setState({ showTrackList: showTrackList, nowTrackIndex: nowIndex }, () => { this.paintCluster(); })\r\n }, (res) => { this.listLoading = false; console.log(res); });\r\n }\r\n\r\n //輸出影片\r\n outputViedo_OnClick() {\r\n if (this.startVideo) {\r\n window.alertify.log(\"正在錄影中 請稍後。\");\r\n return;\r\n }\r\n\r\n this.startVideo = true;\r\n\r\n let showList = [];\r\n this.nowEntityList.forEach((entity) => {\r\n showList.push(false);\r\n });\r\n\r\n this.recordTimelineEvent = window.gMainMap.TerrainView.addTimeEvent({\r\n start: this.GPXEntity.playingInfo.TimeSpan[0],\r\n end: this.GPXEntity.playingInfo.TimeSpan[1],\r\n onPlay: function () {\r\n }.bind(this),\r\n onEnter: function () {\r\n this.nowEntityList.forEach(entity => {\r\n entity.point.show = true;\r\n });\r\n }.bind(this),\r\n onLeave: function () {\r\n this.widgetTimelinePlayer.stop();\r\n }.bind(this)\r\n });\r\n\r\n let dirName = `${new Date(Date.now()).toLocaleString('zh-TW', { timeZone: 'Asia/Taipei' }).replaceAll('/', '-').replaceAll(':', '.')}`;\r\n this.widgetTimeline.updateParameter({ isRepeat: false });\r\n\r\n let videoStream = window.gMainMap.TerrainView.canvas.captureStream(30);\r\n let mediaRecorder = new MediaRecorder(videoStream);\r\n let chunks = [];\r\n\r\n mediaRecorder.ondataavailable = function (e) {\r\n chunks.push(e.data);\r\n };\r\n\r\n mediaRecorder.onstop = function (e) {\r\n let blob = new Blob(chunks, { type: \"video/mp4\" });\r\n chunks = [];\r\n let videoURL = URL.createObjectURL(blob);\r\n let a = document.createElement(\"a\");\r\n a.href = videoURL;\r\n a.download = dirName + \".mp4\";\r\n a.click();\r\n URL.revokeObjectURL(videoURL);\r\n };\r\n\r\n this.widgetTimelinePlayer.play();\r\n mediaRecorder.start();\r\n\r\n this.recordTimeEvent = setInterval(function () {\r\n if (this.widgetTimelinePlayer._Play || this.isPause) {\r\n mediaRecorder.requestData();\r\n }\r\n else {\r\n this.startVideo = false;\r\n window.alertify.success(\"輸出影片中\");\r\n window.gMainMap.TerrainView.removeTimeEvent(this.recordTimelineEvent);\r\n this.widgetTimeline.updateParameter({ isRepeat: true });\r\n mediaRecorder.stop();\r\n clearInterval(this.recordTimeEvent);\r\n\r\n this.nowEntityList.forEach((entity, index) => {\r\n entity.point.update({ text: this.nowPicList[index].title });\r\n entity.border.show = false;\r\n entity.picture.show = false;\r\n entity.text.show = false;\r\n });\r\n }\r\n\r\n }.bind(this), 100);\r\n\r\n window.alertify.success(\"開始錄影,按下停止或時間到會輸出影片\");\r\n window.alertify.log(\"錄影中請勿關閉視窗或挪動圖台以免錯誤\");\r\n }\r\n\r\n //選擇照片(含座標)\r\n async picFile_OnChange(e) {\r\n if (!this.state.nowTrack) {\r\n window.alertify.log(\"請選擇軌跡檔案。\");\r\n return;\r\n }\r\n\r\n if (e.target.files.length < 1) {\r\n window.alertify.log(\"請選擇檔案。\");\r\n return;\r\n }\r\n\r\n let name = \"\";\r\n\r\n let nowTrack = this.state.nowTrack;\r\n let index = this.nowPicList.length;\r\n let oldIndex = index;\r\n let pointList = this.GPXEntity._entity.TrackManager.Stops;\r\n\r\n for (let i = 0; i < e.target.files.length; i++) {\r\n let file = e.target.files[i];\r\n let result = await exifr.parse(file);\r\n let gps = await exifr.gps(file);\r\n\r\n if (!gps) {\r\n console.log(\"no gps\");\r\n continue;\r\n }\r\n\r\n let lat = gps.latitude;\r\n let lon = gps.longitude;\r\n let height = result.GPSAltitude;\r\n\r\n let geo = { x: lon, y: lat, z: height };\r\n let inTrack = false;\r\n let tooClose = false;\r\n\r\n for (let j = 0; j < pointList.length; j++) {\r\n if (this.isClose(pointList[j].Geo, geo, 1)) {\r\n inTrack = true;\r\n break;\r\n }\r\n }\r\n\r\n for (let j = 0; j < this.nowPicList.length; j++) {\r\n if (this.isClose(this.nowPicList[j].geo, geo, 10)) {\r\n tooClose = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!inTrack) {\r\n window.alertify.log(\"照片座標不在軌跡上。\");\r\n continue;\r\n }\r\n\r\n if (tooClose) {\r\n window.alertify.log(\"照片座標太接近現有照片。\");\r\n continue;\r\n }\r\n\r\n const promise = new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.onload = function () {\r\n let res = reader.result;\r\n resolve(res);\r\n }\r\n reader.readAsDataURL(file);\r\n });\r\n\r\n let uploadData = await promise;\r\n\r\n name += file.name;\r\n if (i < e.target.files.length - 1) {\r\n name += \",\";\r\n }\r\n\r\n let fileName = file.name + `(${new Date(Date.now()).toLocaleString('zh-TW', { timeZone: 'Asia/Taipei' }).replaceAll('/', '-').replaceAll(':', '.')})`;\r\n let picEvent = { fileName: fileName, geo: geo, title: \"旅圖日記\" + index, text: \"\", pic: uploadData, update: true };\r\n this.addPicTimeList(geo);\r\n if (this.state.nowTrack.enable && this.state.nowTrack.dir !== \"\") {\r\n this.picUpload(picEvent, this.state.nowTrack.dir);\r\n }\r\n this.nowPicList.push(picEvent);\r\n this.nowEntityList.push(this.paintEvent(geo, uploadData, index));\r\n\r\n index++;\r\n }\r\n\r\n if (index > oldIndex) {\r\n window.alertify.success(\"上傳成功。\");\r\n }\r\n\r\n this.setState({ nowTrack: nowTrack, picFileName: name, picEdit: false });\r\n }\r\n\r\n //選擇照片(不含座標)\r\n async picFileNoCoor_OnChange(e) {\r\n if (!this.state.nowTrack) {\r\n window.alertify.log(\"請選擇軌跡檔案。\");\r\n return;\r\n }\r\n\r\n if (e.target.files.length < 1) {\r\n window.alertify.log(\"請選擇檔案。\");\r\n return;\r\n }\r\n\r\n console.log(e.target.files);\r\n\r\n let name = \"\";\r\n\r\n let nowTrack = this.state.nowTrack;\r\n let index = this.nowPicList.length;\r\n let param = this.GPXEntity.getParameter();\r\n let trackGeoList = param.path.geo;\r\n let file = e.target.files[0];\r\n\r\n const promise = new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.onload = function () {\r\n let res = reader.result;\r\n resolve(res);\r\n }\r\n reader.readAsDataURL(file);\r\n });\r\n\r\n let uploadData = await promise;\r\n\r\n window.alertify.success(\"點擊圖台加入照片。\");\r\n\r\n window.gMainMap.TerrainView.inputSurfacePoint({\r\n onCompleted: function (result) {\r\n if (result.success) {\r\n let point = result.geo;\r\n let min = Number.MAX_VALUE;\r\n let trackGeo = undefined;\r\n for (let i = 0; i < trackGeoList.length - 1; i++) {\r\n let dis = this.computeDis(trackGeoList[i], point);\r\n if (dis < min) {\r\n min = dis;\r\n trackGeo = trackGeoList[i];\r\n }\r\n }\r\n\r\n let tooClose = false;\r\n for (let j = 0; j < this.nowPicList.length; j++) {\r\n if (this.isClose(this.nowPicList[j].geo, trackGeo, 10)) {\r\n tooClose = true;\r\n break;\r\n }\r\n }\r\n\r\n if (tooClose) {\r\n window.alertify.log(\"照片座標太接近現有照片。\");\r\n trackGeo = undefined;\r\n }\r\n\r\n if (trackGeo) {\r\n let geo = { x: trackGeo.x, y: trackGeo.y, z: 0 };\r\n\r\n name += file.name;\r\n let fileName = file.name + `(${new Date(Date.now()).toLocaleString('zh-TW', { timeZone: 'Asia/Taipei' }).replaceAll('/', '-').replaceAll(':', '.')})`;\r\n let picEvent = { fileName: fileName, geo: geo, title: \"旅圖日記\" + index, text: \"\", pic: uploadData, update: true };\r\n if (this.state.nowTrack.enable && this.state.nowTrack.dir !== \"\") {\r\n this.picUpload(picEvent, this.state.nowTrack.dir);\r\n }\r\n this.nowPicList.push(picEvent);\r\n this.nowEntityList.push(this.paintEvent(geo, uploadData, index));\r\n\r\n this.addPicTimeList(geo);\r\n\r\n this.setState({ nowTrack: nowTrack, picFileName: name, picEdit: false });\r\n }\r\n else {\r\n window.alertify.log(\"上傳失敗。\");\r\n }\r\n }\r\n else {\r\n window.alertify.log(\"上傳失敗。\");\r\n }\r\n }.bind(this)\r\n });\r\n }\r\n\r\n //加入照片在軌跡的時間點\r\n addPicTimeList(picGeo) {\r\n let dates = this.GPXEntity.getParameter().path.date;\r\n let geo = this.GPXEntity.getParameter().path.geo;\r\n\r\n let minDis = this.computeDis(picGeo, geo[0]);\r\n let minInd = 0;\r\n\r\n for (let i = 0; i < geo.length - 1; i++) {\r\n let dis = this.computeDis(picGeo, geo[i]);\r\n if (minDis > dis) {\r\n minDis = dis\r\n minInd = i;\r\n }\r\n }\r\n\r\n this.nowEntityTimeList.push(dates[minInd]);\r\n }\r\n\r\n //上傳照片資料\r\n picUpload(picData, dir) {\r\n ApiOviewDocmd.Docmd(\"CMD_UploadPictureData\", { picData: picData, dir: dir }, () => { }, () => { });\r\n }\r\n\r\n //刪除相片\r\n picDelete_OnClick() {\r\n if (this.state.nowTrack.dir === \"\") {\r\n this.deletePic();\r\n return;\r\n }\r\n\r\n ApiOviewDocmd.Docmd(\"CMD_DeleteTrackPicture\", { fileName: this.nowPicList[this.state.showPicIndex].fileName, dir: this.state.nowTrack.dir },\r\n () => {\r\n this.deletePic();\r\n }, () => { }\r\n );\r\n }\r\n\r\n //刪除前端相片\r\n deletePic() {\r\n this.customPic.removeAllEntity();\r\n this.nowEntityList = [];\r\n this.nowPicList.splice(this.state.showPicIndex, 1);\r\n this.nowEntityTimeList.splice(this.state.showPicIndex, 1);\r\n\r\n this.nowPicList.forEach((pic, index) => {\r\n this.nowEntityList.push(this.paintEvent(pic.geo, pic.pic, index));\r\n });\r\n\r\n this.setState({ showPicIndex: -1, picEdit: false, picTitle: \"\", picText: \"\" });\r\n }\r\n\r\n //取得短網址\r\n async getShortURL_OnClick() {\r\n try {\r\n let shortUrl = window.location.origin + \"/?token=\" + this.state.nowTrack.dir;\r\n\r\n let textArea = document.createElement(\"textarea\");\r\n textArea.value = shortUrl;\r\n //設為不可見\r\n textArea.style.position = \"absolute\";\r\n textArea.style.opacity = 0;\r\n textArea.style.left = \"-999999px\";\r\n textArea.style.top = \"-999999px\";\r\n document.body.appendChild(textArea);\r\n textArea.focus();\r\n textArea.select();\r\n document.execCommand('copy');\r\n textArea.remove();\r\n window.alertify.log(\"網址已複製到剪貼簿\");\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n //文字轉圖片\r\n textBecomeImg(text, fontcolor) {\r\n let canvas = document.createElement('canvas');\r\n\r\n let textNum = 14;\r\n let maxNum = 60;\r\n let fontsize = 20;\r\n let $buHeight = 5;\r\n\r\n let context = canvas.getContext('2d');\r\n\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n canvas.width = 280;\r\n canvas.height = 150;\r\n context.fillStyle = fontcolor;\r\n context.font = fontsize + \"px 微軟正黑體\";\r\n\r\n context.textBaseline = 'middle';\r\n context.fillStyle = \"#659aab\";\r\n context.fillRect(0, 0, canvas.width, canvas.height)\r\n context.fillStyle = fontcolor;\r\n let line = 1;\r\n for (let i = 0; i < text.length; i += textNum) {\r\n if (i > maxNum) {\r\n break;\r\n }\r\n\r\n let height = (fontsize + $buHeight) * line;\r\n if (i + textNum <= text.length - 1) {\r\n context.fillText(text.substring(i, i + textNum), 0, height);\r\n }\r\n else {\r\n context.fillText(text.substring(i, text.length), 0, height);\r\n }\r\n line++;\r\n }\r\n\r\n let dataUrl = canvas.toDataURL('image/png');\r\n canvas.remove();\r\n return dataUrl;\r\n }\r\n\r\n //畫出日記點\r\n paintEvent(geo, picData, index) {\r\n let lon = geo.x;\r\n let lat = geo.y;\r\n //let height = window.gMainMap.TerrainView.getHeight(new window.GeoPoint(lon, lat));\r\n\r\n let pointEntity = this.customPic.addPushpinEntity({\r\n geo: new window.GeoPoint(lon, lat, 0),\r\n symbol: locate,\r\n text: this.nowPicList[index].title,\r\n font: \"微軟正黑體\",\r\n color: \"#FFFFFF\",\r\n size: 20,\r\n epsg: 4326,\r\n absHeight: false\r\n });\r\n\r\n let borderHeight = 150\r\n //圖片邊框\r\n let borderParam = {};\r\n borderParam.geo = new window.GeoPoint(lon, lat, 0);\r\n borderParam.color = \"#FFFFFF\";\r\n borderParam.epsg = 4326;\r\n borderParam.size = 20;\r\n borderParam.opacity = 1.0;\r\n borderParam.absHeight = false;\r\n borderParam.symbol = pictureBorder;\r\n borderParam.symbolSize = [600, 200];\r\n borderParam.pointOffset = new window.GeoPoint(-300, borderHeight);\r\n let borderEntity = this.customPic.addPointEntity(borderParam);\r\n\r\n let pictureEntity = this.customPic.addPointEntity({\r\n geo: new window.GeoPoint(lon, lat, 0),\r\n color: \"#FFFFFF\",\r\n size: 10,\r\n epsg: 4326,\r\n opacity: 1.0,\r\n absHeight: false,\r\n symbol: picData,\r\n symbolSize: [270, 170],\r\n minDisplayDistance: 0,\r\n pointOffset: new window.GeoPoint(-450, borderHeight),\r\n });\r\n\r\n let textImage = this.textBecomeImg(this.nowPicList[index].text, '#f1f1f1');\r\n let textEntity = this.customPic.addPointEntity({\r\n geo: new window.GeoPoint(lon, lat, 0),\r\n color: \"#FFFFFF\",\r\n epsg: 4326,\r\n opacity: 1.0,\r\n absHeight: false,\r\n symbol: textImage,\r\n symbolSize: [280, 150],\r\n label: { color: \"#f1f1f1\", text: \"<\" + this.nowPicList[index].title + \">\", font: \"微軟正黑體\", size: 20, borderSize: 0, borderColor: \"#00000000\" },\r\n pointOffset: new window.GeoPoint(-160, borderHeight),\r\n labelOffset: new window.GeoPoint(-160, borderHeight - 5),\r\n });\r\n\r\n borderEntity.show = false;\r\n pictureEntity.show = false;\r\n textEntity.show = false;\r\n\r\n pointEntity.indexNum = index;\r\n\r\n pointEntity.setOnClickListener(function (pos, attr, SN) {\r\n this.showEntity(pointEntity.indexNum);\r\n }.bind(this));\r\n\r\n return { point: pointEntity, picture: pictureEntity, text: textEntity, border: borderEntity };\r\n }\r\n\r\n //顯示日記點照片\r\n showEntity(newIndex) {\r\n if (this.state.showPicIndex === newIndex) {\r\n this.nowEntityList[newIndex].picture.show = false;\r\n this.nowEntityList[newIndex].text.show = false;\r\n this.nowEntityList[newIndex].border.show = false;\r\n\r\n this.nowEntityList[newIndex].point.update({ text: this.nowPicList[newIndex].title });\r\n this.setState({ showPicIndex: -1, picTitle: \"\", picText: \"\", picText: \"\", nowPicture: picture });\r\n return;\r\n }\r\n\r\n let point = this.nowPicList[newIndex].geo;\r\n let lon = point.x;\r\n let lat = point.y;\r\n let height = window.gMainMap.TerrainView.getHeight(new window.GeoPoint(lon, lat));\r\n\r\n this.nowEntityList.forEach((entity, index) => {\r\n entity.point.update({ text: this.nowPicList[index].title });\r\n this.nowEntityList[newIndex].border.update({ absHeight: false });\r\n this.nowEntityList[newIndex].text.update({ absHeight: false });\r\n this.nowEntityList[newIndex].picture.update({ absHeight: false });\r\n entity.picture.show = false;\r\n entity.text.show = false;\r\n entity.border.show = false;\r\n });\r\n\r\n this.nowEntityList[newIndex].point.update({ text: \"\" });\r\n this.nowEntityList[newIndex].picture.show = true;\r\n this.nowEntityList[newIndex].text.show = true;\r\n this.nowEntityList[newIndex].border.show = true;\r\n\r\n this.nowEntityList[newIndex].border.update({ geo: new window.GeoPoint(lon, lat, height), absHeight: true });\r\n this.nowEntityList[newIndex].text.update({ geo: new window.GeoPoint(lon, lat, height), absHeight: true });\r\n this.nowEntityList[newIndex].picture.update({ geo: new window.GeoPoint(lon, lat, height), absHeight: true });\r\n /*this.nowEntityList[newIndex].border.update({ symbolSize: [0, 0], pointOffset: new window.GeoPoint(0, 0) });\r\n this.nowEntityList[newIndex].picture.update({ symbolSize: [0, 0], pointOffset: new window.GeoPoint(0, 0) });*/\r\n\r\n let title = this.nowPicList[newIndex].title;\r\n let text = this.nowPicList[newIndex].text;\r\n this.setState({ showPicIndex: newIndex, picEdit: false, picTitle: title, picText: text }, () => {/* this.showAnimate(this.nowEntityList[newIndex])*/ });\r\n }\r\n\r\n //顯示日記動畫\r\n /*showAnimate(entity) {\r\n let t = 0;\r\n let timePoint = setInterval(function () {\r\n\r\n if (t <= 10) {\r\n entity.border.update({\r\n symbolSize: [20 * t + (2 * t * t) / 2, 30 * t + (6 * t * t) / 2],\r\n pointOffset: new window.GeoPoint(-9 * t + (-1 * t * t) / 2, 20 * t + (2 * t * t) / 2)\r\n });\r\n entity.picture.update({\r\n symbolSize: [13 * t + (1 * t * t) / 2, 3 * t + (1 * t * t) / 2],\r\n pointOffset: new window.GeoPoint(-9 * t + (-1 * t * t) / 2, 23 * t + (5 * t * t) / 2)\r\n });\r\n t++;\r\n }\r\n else {\r\n entity.text.show = true;\r\n clearInterval(timePoint);\r\n }\r\n }.bind(this), 100);\r\n }*/\r\n\r\n //跳到特定點\r\n goto(x, y) {\r\n let geo = new window.GeoPoint(x, y);\r\n let height = window.gMainMap.TerrainView.getHeight(geo);\r\n let pos = new window.GeoPoint(geo.x, geo.y, height + 1500);\r\n let v = new window.Geo3DPoint(0, 0, -1);\r\n let up = new window.Geo3DPoint(0, 1, 0);\r\n let camera = new window.ov.Camera(pos, v, up);\r\n window.gMainMap.TerrainView.gotoCamera(camera, true, () => {\r\n camera.pos = new window.GeoPoint(geo.x, geo.y - 0.03, height + 1500);\r\n window.gMainMap.TerrainView.gotoCamera(camera, false);\r\n window.gMainMap.TerrainView.setVertArg(20);\r\n });\r\n }\r\n\r\n //跳到特定點 清單物件用\r\n listItem_goto(pos, targetIndex) {\r\n let height = window.gMainMap.TerrainView.getHeight(new GeoPoint(pos.x, pos.y)) + 2000;\r\n let camera = new window.ov.Camera(new Geo3DPoint(pos.x, pos.y, height), new Geo3DPoint(0, 0, -1), new Geo3DPoint(0, 1, 0));\r\n window.gMainMap.TerrainView.gotoCamera(camera, true, () => {\r\n camera.pos = new window.GeoPoint(pos.x, pos.y - 0.03, height);\r\n window.gMainMap.TerrainView.gotoCamera(camera, false);\r\n window.gMainMap.TerrainView.setVertArg(20);\r\n });\r\n\r\n let showTrackList = this.state.showTrackList;\r\n\r\n for (let i = 0; i < showTrackList.length; i++) {\r\n showTrackList[i] = false;\r\n if (i === targetIndex) {\r\n showTrackList[i] = true;\r\n }\r\n }\r\n\r\n this.custom.removeAllEntity();\r\n if (targetIndex !== this.state.nowTrackIndex) {\r\n this.customPic.removeAllEntity();\r\n this.removeTrack();\r\n }\r\n\r\n this.setState({ showTrackList: showTrackList }, () => { this.paintCluster(); });\r\n }\r\n\r\n //軌跡文字敘述更新\r\n editDescribe_OnClick() {\r\n let nowTrack = this.state.nowTrack;\r\n if (this.state.textEdit) {\r\n nowTrack.describe = this.state.describe;\r\n\r\n if (this.state.nowTrack.enable && this.state.nowTrack.dir !== \"\") {\r\n ApiOviewDocmd.Docmd(\"CMD_UpdateTrack\", { describe: this.state.describe, dir: this.state.nowTrack.dir }, () => { }, () => { });\r\n }\r\n\r\n window.alertify.success(\"敘述已更新\");\r\n }\r\n\r\n this.setState({ textEdit: !this.state.textEdit, nowTrack: nowTrack });\r\n }\r\n\r\n //相片編輯/存檔事件\r\n picture_Edit_OnClick() {\r\n if (this.state.picEdit) {\r\n if (this.state.picTitle === \"\") {\r\n window.alertify.error(\"標題不可為空\");\r\n return;\r\n }\r\n\r\n //this.nowEntityList[this.state.showPicIndex].point.update({ text: this.state.picTitle });\r\n this.nowEntityList[this.state.showPicIndex].text.update({ symbol: this.textBecomeImg(this.state.picText, '#f1f1f1'), label: { text: \"<\" + this.state.picTitle + \">\" } });\r\n this.nowPicList[this.state.showPicIndex].title = this.state.picTitle;\r\n this.nowPicList[this.state.showPicIndex].text = this.state.picText;\r\n this.nowPicList[this.state.showPicIndex].update = true;\r\n }\r\n\r\n if (this.state.nowTrack.enable && this.state.nowTrack.dir !== \"\") {\r\n ApiOviewDocmd.Docmd(\"CMD_UpdateTrackPicture\", {\r\n fileName: this.nowPicList[this.state.showPicIndex].fileName,\r\n title: this.state.picTitle, text: this.state.picText, dir: this.state.nowTrack.dir\r\n }, () => { }, () => { });\r\n }\r\n\r\n this.setState({ picEdit: !this.state.picEdit });\r\n }\r\n\r\n //顯示軌跡點\r\n toggleTrackShow(index) {\r\n let showTrackList = this.state.showTrackList;\r\n showTrackList[index] = !showTrackList[index];\r\n this.custom.removeAllEntity();\r\n if (index === this.state.nowTrackIndex) {\r\n if (!showTrackList[index]) {\r\n this.customPic.removeAllEntity();\r\n this.removeTrack();\r\n }\r\n else {\r\n this.getTrack(index);\r\n }\r\n }\r\n\r\n this.setState({ showTrackList: showTrackList }, () => { this.paintCluster(); });\r\n }\r\n\r\n //切換分頁\r\n handleClick = (name) => {\r\n let pageName = this.state.pageName;\r\n\r\n switch (name) {\r\n case \"日記\": {\r\n pageName = \"日記\";\r\n }\r\n break;\r\n case \"日記編輯\": {\r\n if (this.state.nowTrack) {\r\n pageName = \"日記編輯\";\r\n }\r\n break;\r\n }\r\n case \"清單\": {\r\n pageName = \"清單\";\r\n break;\r\n }\r\n }\r\n\r\n if (this.state.nowTrack) {\r\n let title = this.state.picTitle;\r\n let text = this.state.picText;\r\n if (this.state.showPicIndex !== -1) {\r\n title = this.nowPicList[this.state.showPicIndex].title;\r\n text = this.nowPicList[this.state.showPicIndex].text\r\n }\r\n this.setState({\r\n pageName: pageName,\r\n describe: this.state.nowTrack.describe,\r\n textEdit: false,\r\n picEdit: false,\r\n picText: text,\r\n picTitle: title,\r\n });\r\n }\r\n else {\r\n this.setState({ pageName: pageName });\r\n }\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n //軌跡故事編輯版面\r\n trackText_EditPanel() {\r\n if (this.state.nowTrack) {\r\n if (this.state.nowTrack.enable && this.state.textEdit) {\r\n return (\r\n { e.persist(); this.setState({ describe: e.target.value }); }}\r\n />\r\n );\r\n }\r\n }\r\n\r\n return (
    {this.state.describe}
    );\r\n }\r\n\r\n //軌跡上傳頁面\r\n update_Panel() {\r\n return (\r\n
    \r\n
    \r\n GPX選擇:\r\n \r\n \r\n
    \r\n
    \r\n 採用WGS84經緯度坐標系\r\n
    \r\n {this.state.nowTrack && this.state.nowTrack.enable ?\r\n
    \r\n 照片選擇:\r\n \r\n \r\n \r\n
    : null}\r\n
    \r\n 軌跡故事:\r\n {\r\n this.trackText_EditPanel()\r\n }\r\n
    \r\n {this.state.nowTrack ?\r\n
    \r\n
    \r\n \"outputVideo\" { this.outputViedo_OnClick(); }} />\r\n {this.state.nowTrack.enable && this.state.nowTrack.dir !== \"\" ?\r\n \"shared\" { this.getShortURL_OnClick(); }} /> : null\r\n }\r\n
    \r\n {this.state.nowTrack.enable ?\r\n
    {this.state.uploadLoading ? \"loading\" :\r\n this.state.nowTrack.dir === \"\" ?\r\n :\r\n \r\n }\r\n \r\n
    : null\r\n }\r\n
    : null\r\n }\r\n
    \r\n );\r\n }\r\n\r\n //相片標題編輯區域\r\n picture_EditTitle() {\r\n if (this.state.nowTrack) {\r\n if (this.state.nowTrack.enable && this.state.picEdit) {\r\n return (\r\n { this.setState({ picTitle: e.target.value }); }}\r\n />\r\n );\r\n }\r\n }\r\n\r\n return ({this.state.picTitle});\r\n }\r\n\r\n //相片故事編輯區域\r\n picture_EditText() {\r\n if (this.state.nowTrack) {\r\n if (this.state.nowTrack.enable && this.state.picEdit) {\r\n return (\r\n { this.setState({ picText: e.target.value }); }}\r\n />\r\n );\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n {this.state.picText}\r\n
    \r\n );\r\n }\r\n\r\n //相片編輯頁面\r\n picture_Panel() {\r\n return (\r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n {\r\n this.picture_EditTitle()\r\n }\r\n
    \r\n
    \r\n {\r\n this.picture_EditText()\r\n }\r\n
    \r\n {this.state.nowTrack.enable && this.state.showPicIndex !== -1 ?\r\n
    \r\n \r\n \r\n
    \r\n : null}\r\n
    \r\n );\r\n }\r\n\r\n //軌跡清單\r\n list_Panel() {\r\n return (\r\n
    \r\n
    \r\n 範例:\r\n {\r\n this.demoIndex !== -1 && this.trackList[this.demoIndex] ?\r\n : null\r\n }\r\n
    \r\n
    \r\n {\r\n this.trackList.map((track, index) => {\r\n if (index === this.demoIndex) {\r\n return null;\r\n }\r\n return ()\r\n })\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n content() {\r\n return (\r\n
    \r\n
    \r\n \r\n {\r\n this.state.nowTrack ? : null\r\n }\r\n \r\n
    \r\n {this.state.pageName === \"日記\" ? this.update_Panel() : null}\r\n {this.state.pageName === \"日記編輯\" ? this.picture_Panel() : null}\r\n {this.state.pageName === \"清單\" ? this.list_Panel() : null}\r\n
    \r\n );\r\n }\r\n}","import React from 'react';\r\n\r\nvar yellowMan = \"data:application/octet-stream;base64,Z2xURgIAAAA4SQIASCMAAEpTT057ImFzc2V0Ijp7ImdlbmVyYXRvciI6Iktocm9ub3MgZ2xURiBCbGVuZGVyIEkvTyB2MS4zLjQ4IiwidmVyc2lvbiI6IjIuMCJ9LCJzY2VuZSI6MCwic2NlbmVzIjpbeyJuYW1lIjoiU2NlbmUiLCJub2RlcyI6WzAsMSwyLDMsNCw1LDYsNyw4LDldfV0sIm5vZGVzIjpbeyJtZXNoIjowLCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAwNSIsInNjYWxlIjpbMC4zNDEzMzk4MjY1ODM4NjIzLDEsMC40ODI2OTkzMzQ2MjE0Mjk0NF0sInRyYW5zbGF0aW9uIjpbMCwyLjQ2MjE4MDg1Mjg5MDAxNDYsLTAuMDQwNzAyODA0OTIzMDU3NTU2XX0seyJtZXNoIjoxLCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAwNCIsInNjYWxlIjpbMC4zNDEzMzk4MjY1ODM4NjIzLDEsMC40ODI2OTkzMzQ2MjE0Mjk0NF0sInRyYW5zbGF0aW9uIjpbMCwyLjQ2MjE4MDg1Mjg5MDAxNDYsLTAuMDQwNzAyODA0OTIzMDU3NTU2XX0seyJtZXNoIjoyLCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAwNyIsInNjYWxlIjpbMC4zNDEzMzk4MjY1ODM4NjIzLDEsMC40ODI2OTkzMzQ2MjE0Mjk0NF0sInRyYW5zbGF0aW9uIjpbMCwyLjQ2MjE4MDg1Mjg5MDAxNDYsLTAuMDQwNzAyODA0OTIzMDU3NTU2XX0seyJtZXNoIjozLCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAwOCIsInNjYWxlIjpbMC4zNDEzMzk4MjY1ODM4NjIzLDEsMC40ODI2OTkzMzQ2MjE0Mjk0NF0sInRyYW5zbGF0aW9uIjpbMCwyLjQ2MjE4MDg1Mjg5MDAxNDYsLTAuMDQwNzAyODA0OTIzMDU3NTU2XX0seyJtZXNoIjo0LCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAwOSIsInNjYWxlIjpbMC4zNDEzMzk4MjY1ODM4NjIzLDEsMC40ODI2OTkzMzQ2MjE0Mjk0NF0sInRyYW5zbGF0aW9uIjpbMCwyLjQ2MjE4MDg1Mjg5MDAxNDYsLTAuMDQwNzAyODA0OTIzMDU3NTU2XX0seyJtZXNoIjo1LCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAxMCIsInNjYWxlIjpbMC4zNDEzMzk4MjY1ODM4NjIzLDEsMC40ODI2OTkzMzQ2MjE0Mjk0NF0sInRyYW5zbGF0aW9uIjpbMCwyLjQ2MjE4MDg1Mjg5MDAxNDYsLTAuMDQwNzAyODA0OTIzMDU3NTU2XX0seyJtZXNoIjo2LCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAxMSIsInNjYWxlIjpbMC4zNDEzMzk4MjY1ODM4NjIzLDEsMC40ODI2OTkzMzQ2MjE0Mjk0NF0sInRyYW5zbGF0aW9uIjpbMCwyLjQ2MjE4MDg1Mjg5MDAxNDYsLTAuMDQwNzAyODA0OTIzMDU3NTU2XX0seyJtZXNoIjo3LCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAxMiIsInNjYWxlIjpbMC4zNDEzMzk4MjY1ODM4NjIzLDEsMC40ODI2OTkzMzQ2MjE0Mjk0NF0sInRyYW5zbGF0aW9uIjpbMCwyLjQ2MjE4MDg1Mjg5MDAxNDYsLTAuMDQwNzAyODA0OTIzMDU3NTU2XX0seyJtZXNoIjo4LCJuYW1lIjoiXHU1ZTczXHU5NzYyLjAxMyIsInNjYWxlIjpbMC40NDI2MDkzNjk3NTQ3OTEyNiwxLjI5NjY4MjcxNTQxNTk1NDYsMC42MjU5MDc4OTc5NDkyMTg4XSwidHJhbnNsYXRpb24iOlswLjIwNDkxNzYzOTQ5Mzk0MjI2LDMuNDEwOTg1NzA4MjM2Njk0MywtMC4wNDEyMTM5MTQ3NTIwMDY1M119LHsibWVzaCI6OSwibmFtZSI6Ilx1NWU3M1x1OTc2Mi4wMTQiLCJzY2FsZSI6WzAuMzQxMzM5ODI2NTgzODYyMywxLDAuNDgyNjk5MzM0NjIxNDI5NDRdLCJ0cmFuc2xhdGlvbiI6WzAsMi40NjIxODA4NTI4OTAwMTQ2LC0wLjA0MDcwMjgwNDkyMzA1NzU1Nl19XSwibWF0ZXJpYWxzIjpbeyJkb3VibGVTaWRlZCI6dHJ1ZSwiZW1pc3NpdmVGYWN0b3IiOlswLDAsMF0sIm5hbWUiOiJcdTY3NTBcdThkMjguMDM3IiwicGJyTWV0YWxsaWNSb3VnaG5lc3MiOnsiYmFzZUNvbG9yVGV4dHVyZSI6eyJpbmRleCI6MCwidGV4Q29vcmQiOjB9LCJtZXRhbGxpY0ZhY3RvciI6MCwicm91Z2huZXNzRmFjdG9yIjowLjV9fSx7ImRvdWJsZVNpZGVkIjp0cnVlLCJlbWlzc2l2ZUZhY3RvciI6WzAsMCwwXSwibmFtZSI6Ilx1Njc1MFx1OGQyOC4wMjciLCJwYnJNZXRhbGxpY1JvdWdobmVzcyI6eyJiYXNlQ29sb3JUZXh0dXJlIjp7ImluZGV4IjoxLCJ0ZXhDb29yZCI6MH0sIm1ldGFsbGljRmFjdG9yIjowLCJyb3VnaG5lc3NGYWN0b3IiOjAuNX19XSwibWVzaGVzIjpbeyJuYW1lIjoiXHU1ZTczXHU5NzYyLjAxNiIsInByaW1pdGl2ZXMiOlt7ImF0dHJpYnV0ZXMiOnsiUE9TSVRJT04iOjAsIk5PUk1BTCI6MSwiVEVYQ09PUkRfMCI6Mn0sImluZGljZXMiOjMsIm1hdGVyaWFsIjowfV19LHsibmFtZSI6Ilx1NWU3M1x1OTc2Mi4wMDQiLCJwcmltaXRpdmVzIjpbeyJhdHRyaWJ1dGVzIjp7IlBPU0lUSU9OIjo0LCJOT1JNQUwiOjUsIlRFWENPT1JEXzAiOjZ9LCJpbmRpY2VzIjozLCJtYXRlcmlhbCI6MH1dfSx7Im5hbWUiOiJcdTVlNzNcdTk3NjIuMDA1IiwicHJpbWl0aXZlcyI6W3siYXR0cmlidXRlcyI6eyJQT1NJVElPTiI6NywiTk9STUFMIjo4LCJURVhDT09SRF8wIjo5fSwiaW5kaWNlcyI6MTAsIm1hdGVyaWFsIjoxfV19LHsibmFtZSI6Ilx1NWU3M1x1OTc2Mi4wMDYiLCJwcmltaXRpdmVzIjpbeyJhdHRyaWJ1dGVzIjp7IlBPU0lUSU9OIjoxMSwiTk9STUFMIjoxMiwiVEVYQ09PUkRfMCI6MTN9LCJpbmRpY2VzIjozLCJtYXRlcmlhbCI6MH1dfSx7Im5hbWUiOiJcdTVlNzNcdTk3NjIuMDA4IiwicHJpbWl0aXZlcyI6W3siYXR0cmlidXRlcyI6eyJQT1NJVElPTiI6MTQsIk5PUk1BTCI6MTUsIlRFWENPT1JEXzAiOjE2fSwiaW5kaWNlcyI6MTcsIm1hdGVyaWFsIjoxfV19LHsibmFtZSI6Ilx1NWU3M1x1OTc2Mi4wMDkiLCJwcmltaXRpdmVzIjpbeyJhdHRyaWJ1dGVzIjp7IlBPU0lUSU9OIjoxOCwiTk9STUFMIjoxOSwiVEVYQ09PUkRfMCI6MjB9LCJpbmRpY2VzIjoyMSwibWF0ZXJpYWwiOjF9XX0seyJuYW1lIjoiXHU1ZTczXHU5NzYyLjAxMCIsInByaW1pdGl2ZXMiOlt7ImF0dHJpYnV0ZXMiOnsiUE9TSVRJT04iOjIyLCJOT1JNQUwiOjIzLCJURVhDT09SRF8wIjoyNH0sImluZGljZXMiOjIxLCJtYXRlcmlhbCI6MX1dfSx7Im5hbWUiOiJcdTVlNzNcdTk3NjIuMDExIiwicHJpbWl0aXZlcyI6W3siYXR0cmlidXRlcyI6eyJQT1NJVElPTiI6MjUsIk5PUk1BTCI6MjYsIlRFWENPT1JEXzAiOjI3fSwiaW5kaWNlcyI6MjgsIm1hdGVyaWFsIjowfV19LHsibmFtZSI6Ilx1NWU3M1x1OTc2Mi4wMTIiLCJwcmltaXRpdmVzIjpbeyJhdHRyaWJ1dGVzIjp7IlBPU0lUSU9OIjoyOSwiTk9STUFMIjozMCwiVEVYQ09PUkRfMCI6MzF9LCJpbmRpY2VzIjozMiwibWF0ZXJpYWwiOjB9XX0seyJuYW1lIjoiXHU1ZTczXHU5NzYyLjAxMyIsInByaW1pdGl2ZXMiOlt7ImF0dHJpYnV0ZXMiOnsiUE9TSVRJT04iOjMzLCJOT1JNQUwiOjM0LCJURVhDT09SRF8wIjozNX0sImluZGljZXMiOjI4LCJtYXRlcmlhbCI6MH1dfV0sInRleHR1cmVzIjpbeyJzb3VyY2UiOjB9LHsic291cmNlIjoxfV0sImltYWdlcyI6W3siYnVmZmVyVmlldyI6NCwibWltZVR5cGUiOiJpbWFnZS9qcGVnIiwibmFtZSI6Ilx1NWMwZlx1OWVjM1x1NGViYVx1OTE0ZFx1ODI3MiJ9LHsiYnVmZmVyVmlldyI6MTIsIm1pbWVUeXBlIjoiaW1hZ2UvanBlZyIsIm5hbWUiOiJcdTVjMGZcdTllYzNcdTRlYmFcdTc2YWVcdTgxOWEifV0sImFjY2Vzc29ycyI6W3siYnVmZmVyVmlldyI6MCwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjQsIm1heCI6Wy0wLjk4NDUzNDc0MDQ0Nzk5OCw3LjA4MTAzMTc5OTMxNjQwNmUtMDUsMS4wMDk4NzgyNzc3Nzg2MjU1XSwibWluIjpbLTAuOTkwNDI2ODk4MDAyNjI0NSwtMC40Nzc4NDU1MTk3ODExMTI2NywtMS4wMDgxOTE3MDQ3NTAwNjFdLCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6MSwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjQsInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoyLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6NCwidHlwZSI6IlZFQzIifSx7ImJ1ZmZlclZpZXciOjMsImNvbXBvbmVudFR5cGUiOjUxMjMsImNvdW50Ijo2LCJ0eXBlIjoiU0NBTEFSIn0seyJidWZmZXJWaWV3Ijo1LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6NCwibWF4IjpbMC45NzkxNjc0MDE3OTA2MTg5LDAuMDA1NDI5NTM2MTA0MjAyMjcwNSwxLjAwOTg3ODI3Nzc3ODYyNTVdLCJtaW4iOlswLjkyNjQzNjI0NTQ0MTQzNjgsLTAuNDcyMTUxOTM1MTAwNTU1NCwtMS4wMDgxOTE3MDQ3NTAwNjFdLCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6NiwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjQsInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3Ijo3LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6NCwidHlwZSI6IlZFQzIifSx7ImJ1ZmZlclZpZXciOjgsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxOTg0LCJtYXgiOlsxLjU1NTMxNzQwMTg4NTk4NjMsMS4xMTA2Njg1NDAwMDA5MTU1LDEuMDkxNzIxMDU3ODkxODQ1N10sIm1pbiI6Wy0xLjU1MTQyNjE3MjI1NjQ2OTcsMC4wNzIzNjU5Mzk2MTcxNTY5OCwtMS4wODU2NzE1NDQwNzUwMTIyXSwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjksImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxOTg0LCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6MTAsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoxOTg0LCJ0eXBlIjoiVkVDMiJ9LHsiYnVmZmVyVmlldyI6MTEsImNvbXBvbmVudFR5cGUiOjUxMjMsImNvdW50IjoyODgwLCJ0eXBlIjoiU0NBTEFSIn0seyJidWZmZXJWaWV3IjoxMywiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjQsIm1heCI6WzEsMCwxXSwibWluIjpbLTEsMCwtMV0sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoxNCwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjQsInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoxNSwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjQsInR5cGUiOiJWRUMyIn0seyJidWZmZXJWaWV3IjoxNiwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjcxNiwibWF4IjpbMC45NzY5ODA5MjQ2MDYzMjMyLC0wLjAwNTM3ODg0MjM1MzgyMDgwMSwxLjExNzc0ODAyMjA3OTQ2NzhdLCJtaW4iOlstMC45NzY5ODA5MjQ2MDYzMjMyLC0yLjQzNTUwMTA5ODYzMjgxMjUsLTEuMTM5NTE0Njg0Njc3MTI0XSwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjE3LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6NzE2LCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6MTgsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50Ijo3MTYsInR5cGUiOiJWRUMyIn0seyJidWZmZXJWaWV3IjoxOSwiY29tcG9uZW50VHlwZSI6NTEyMywiY291bnQiOjEwODYsInR5cGUiOiJTQ0FMQVIifSx7ImJ1ZmZlclZpZXciOjIwLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MjE2LCJtYXgiOlswLjUyMjc1MjA0NjU4NTA4MywtMC4wMDUwNjI0NjA4OTkzNTMwMjcsLTAuODU3NTQxNTYxMTI2NzA5XSwibWluIjpbLTAuNDcxMTY2MDc0Mjc1OTcwNDYsLTEuMjA1NTg0NzY0NDgwNTkwOCwtMS44NTY0NzkwNDg3Mjg5NDI5XSwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjIxLCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6MjE2LCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6MjIsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoyMTYsInR5cGUiOiJWRUMyIn0seyJidWZmZXJWaWV3IjoyMywiY29tcG9uZW50VHlwZSI6NTEyMywiY291bnQiOjM0MiwidHlwZSI6IlNDQUxBUiJ9LHsiYnVmZmVyVmlldyI6MjQsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoyMTYsIm1heCI6WzAuNDU4OTE3NTI4MzkwODg0NCwtMC4wMDUwNjI1ODAxMDg2NDI1NzgsMS44NTQwNjM1MTA4OTQ3NzU0XSwibWluIjpbLTAuNDk2OTkxNzIzNzc1ODYzNjUsLTEuMjA1NTg0NjQ1MjcxMzAxMywwLjg5NjM5NzM1MjIxODYyNzldLCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6MjUsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoyMTYsInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjoyNiwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjIxNiwidHlwZSI6IlZFQzIifSx7ImJ1ZmZlclZpZXciOjI3LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6Mjk2LCJtYXgiOlszLjIyOTQwODk3OTQxNTg5MzYsLTIuMzk4NTYzMzg1MDA5NzY1NiwyLjMyMDQwMjg2MDY0MTQ3OTVdLCJtaW4iOlstMy4yMjk0MDg5Nzk0MTU4OTM2LC0yLjQ2MjE4MDg1Mjg5MDAxNDYsLTIuMjQ4OTAzNzUxMzczMjkxXSwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjI4LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6Mjk2LCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6MjksImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50IjoyOTYsInR5cGUiOiJWRUMyIn0seyJidWZmZXJWaWV3IjozMCwiY29tcG9uZW50VHlwZSI6NTEyMywiY291bnQiOjM3MiwidHlwZSI6IlNDQUxBUiJ9LHsiYnVmZmVyVmlldyI6MzEsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50Ijo2MiwibWF4IjpbLTIuOTQ3NDU5NDU5MzA0ODA5NiwtMi40MDExOTcxOTUwNTMxMDA2LDAuNzk4Mzc4NDA3OTU1MTY5N10sIm1pbiI6Wy01LjIyODkyODA4OTE0MTg0NiwtMi40NTcyMjU3OTk1NjA1NDcsLTAuNjI5NzMxODMzOTM0NzgzOV0sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjozMiwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjYyLCJ0eXBlIjoiVkVDMyJ9LHsiYnVmZmVyVmlldyI6MzMsImNvbXBvbmVudFR5cGUiOjUxMjYsImNvdW50Ijo2MiwidHlwZSI6IlZFQzIifSx7ImJ1ZmZlclZpZXciOjM0LCJjb21wb25lbnRUeXBlIjo1MTIzLCJjb3VudCI6MTA4LCJ0eXBlIjoiU0NBTEFSIn0seyJidWZmZXJWaWV3IjozNSwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjI5NiwibWF4IjpbMy4yMjk0MDg5Nzk0MTU4OTM2LC0yLjM5ODU2MzM4NTAwOTc2NTYsMi4zMjA0MDI4NjA2NDE0Nzk1XSwibWluIjpbLTMuMjI5NDA4OTc5NDE1ODkzNiwtMi40NjIxODA4NTI4OTAwMTQ2LC0yLjI0ODkwMzc1MTM3MzI5MV0sInR5cGUiOiJWRUMzIn0seyJidWZmZXJWaWV3IjozNiwiY29tcG9uZW50VHlwZSI6NTEyNiwiY291bnQiOjI5NiwidHlwZSI6IlZFQzMifSx7ImJ1ZmZlclZpZXciOjM3LCJjb21wb25lbnRUeXBlIjo1MTI2LCJjb3VudCI6Mjk2LCJ0eXBlIjoiVkVDMiJ9XSwiYnVmZmVyVmlld3MiOlt7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDgsImJ5dGVPZmZzZXQiOjB9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjo0OCwiYnl0ZU9mZnNldCI6NDh9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjozMiwiYnl0ZU9mZnNldCI6OTZ9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxMiwiYnl0ZU9mZnNldCI6MTI4fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDg5MiwiYnl0ZU9mZnNldCI6MTQwfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDgsImJ5dGVPZmZzZXQiOjUwMzJ9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjo0OCwiYnl0ZU9mZnNldCI6NTA4MH0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjMyLCJieXRlT2Zmc2V0Ijo1MTI4fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjM4MDgsImJ5dGVPZmZzZXQiOjUxNjB9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoyMzgwOCwiYnl0ZU9mZnNldCI6Mjg5Njh9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxNTg3MiwiYnl0ZU9mZnNldCI6NTI3NzZ9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjo1NzYwLCJieXRlT2Zmc2V0Ijo2ODY0OH0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjQ3MzksImJ5dGVPZmZzZXQiOjc0NDA4fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDgsImJ5dGVPZmZzZXQiOjc5MTQ4fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NDgsImJ5dGVPZmZzZXQiOjc5MTk2fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MzIsImJ5dGVPZmZzZXQiOjc5MjQ0fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6ODU5MiwiYnl0ZU9mZnNldCI6NzkyNzZ9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjo4NTkyLCJieXRlT2Zmc2V0Ijo4Nzg2OH0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjU3MjgsImJ5dGVPZmZzZXQiOjk2NDYwfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjE3MiwiYnl0ZU9mZnNldCI6MTAyMTg4fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjU5MiwiYnl0ZU9mZnNldCI6MTA0MzYwfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjU5MiwiYnl0ZU9mZnNldCI6MTA2OTUyfSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MTcyOCwiYnl0ZU9mZnNldCI6MTA5NTQ0fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6Njg0LCJieXRlT2Zmc2V0IjoxMTEyNzJ9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoyNTkyLCJieXRlT2Zmc2V0IjoxMTE5NTZ9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoyNTkyLCJieXRlT2Zmc2V0IjoxMTQ1NDh9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoxNzI4LCJieXRlT2Zmc2V0IjoxMTcxNDB9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjozNTUyLCJieXRlT2Zmc2V0IjoxMTg4Njh9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjozNTUyLCJieXRlT2Zmc2V0IjoxMjI0MjB9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjoyMzY4LCJieXRlT2Zmc2V0IjoxMjU5NzJ9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjo3NDQsImJ5dGVPZmZzZXQiOjEyODM0MH0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjc0NCwiYnl0ZU9mZnNldCI6MTI5MDg0fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6NzQ0LCJieXRlT2Zmc2V0IjoxMjk4Mjh9LHsiYnVmZmVyIjowLCJieXRlTGVuZ3RoIjo0OTYsImJ5dGVPZmZzZXQiOjEzMDU3Mn0seyJidWZmZXIiOjAsImJ5dGVMZW5ndGgiOjIxNiwiYnl0ZU9mZnNldCI6MTMxMDY4fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MzU1MiwiYnl0ZU9mZnNldCI6MTMxMjg0fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MzU1MiwiYnl0ZU9mZnNldCI6MTM0ODM2fSx7ImJ1ZmZlciI6MCwiYnl0ZUxlbmd0aCI6MjM2OCwiYnl0ZU9mZnNldCI6MTM4Mzg4fV0sImJ1ZmZlcnMiOlt7ImJ5dGVMZW5ndGgiOjE0MDc1Nn1dfdQlAgBCSU4AeAp8vwBAlDixQ4E/mIx9vyuo9L7ZMTQ/nox9vyeo9L5cxiW/fgp8vwCAlDhtDIG/Bft/P+73SbypcG60Bft/P+73SbypcG60Bft/P+73SbypcG60Bft/P+73SbypcG60AAAAAAAAgD8AAIA/AACAPwAAgD8AAAAAAAAAAAAAAAAAAAEAAgAAAAIAAwD/2P/gABBKRklGAAEBAAABAAEAAP/hAAxOZW9HZW8AAABL/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgCAAIAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8ApUUUVzHxAUUUUAFJS0lABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQIKKKKACiiigAooooAKKKKACiiigYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQIKKKKACiiigAooooAKKKKACikooGLRSUUALRSUtABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQIKKKKACiiigAooooAKKKKAExRilooGJijFLRQAmKWiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooEFFFFABRRRQAUUUUAFFFFABRRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooEFFFFABRRRQAUUUUAFFFFABRRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooEFFFFABRRRQAUUUUAFFFFABRRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooEFFFFABRRRQAUUUUAFFFFABRRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFIAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooopjCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigQUUUUAFFFFABRRRQAUUUUAFFFFABRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKYwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiimMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFIAooooAKKKKACiiigAooooAKKKKACiiigAooooAKM0lFAC5ozSUUALRRRTGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAgooooAKKKKACiiigAooooAKKKKACiiikAUUUUAFFFFABRRRQAUUUUAFFFJQAtFJRQAtFJRQAUUUUAFFFFAC0UUUxhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQIKKKKACiiigAooooAKKKKACiiigAooopAFFFFABRRRQAUUUUAFFFFAAaSlNJQAUUUUAFFFFABRRRQAUUUUALRRRTGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAgooooAKKKKACiiigAooooAKKKKACiiikAUUUUAFFFFABRRmjNABRRmjNACGkpTSYoAKKMUYoAKKMUYoAWiiigAooooAWiiimAUUUUAFFFFABRRRQAUUUUAFFFFABRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApKWkoAKKKKACiiigAooopgFFFFABRRRQAUUUUAFFFFAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKDQAlFFFABRRRQAUUUUAFFFFABRRRQAUUUUwCiiigAooooAKKKKACiiigBaKKKACiiigAooooAKKKKACiiigAooooAKKKKQBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFBopDQAUUlFAC0UlFAC0UlLQAUUUUAFFFFABRRRTAKKKKACiiigAooooAKKKKAFooooAKKKKACiiigAooooAKKKKACiiigAooopAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFGaDSUALmjNJRQAuaM0lFAC5ozSUUALmjNJRQAuaQ0UUAJijFLRQAmKMUtFACYpaKKACiiigAooooAKKKKYBRRRQAUUUUAFGaSigBc0ZpKKAHUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUgCiiigAooooAKKKKACiiigAooooAKKKKACiikoAWikooAWikooAU0lFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUwCiiigAooooASiiigAooooAdRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKSlpKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooopgFFFFABRRRQAlFFFABRRRQA6iiigAooooAKKKKACiiigAooooAKKKM0gCijNGaACijNGaACijNGaACijNGaACijNGaACijNGaACijNGaACmmnZpKAEooxRigAooxRigAFLRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRijFABRRijFABRRiigAooooAKKKKACiijNMAoozRmgAoozRmgBKKKKACiiigB1FFFIAooooAKKKKACiiigAooooAKSlpKACiiigAooooAKKKKACiiigAooooAKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABQKKBQAtFFFABRRRQAUlLSUAFFFFABRRRQAGkpTSUAFFFFABRRRQAUUUUAFFFFAC0UUUgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooopgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFJS0lABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAtFJRSAWikooAWikooAWikooAWikooAWikpaACiiigAooooAKKKKACiiigAooooAKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRQaACikooAWikooAWkoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKADFGKWikAmKMUtFACYoxS0UAJijFLRQAmKMUtFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRTAKKKKACiiloATFGKWigBMUYpaKAEopTSUAFFFFABRRRQAUZpKKAFzRmkooAXNJRRQAUUUUAFFFFABSUtFACYoxS0UAJijFLRQAUUUUAFFFFABRRRQAUUUUAFFFFAC0UUUgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooopgFFFFABS0lFAC0UlFAC0UlFACmkoNJQAtFJRQAtFJRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUALRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiimAUUUUAFFFFABRRRQAUUUUABpKWkoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEooooAKKKKAHUUUUgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooozQAUUZozQAUUZozQAUUZozTAKKM0ZoAKSlzSUAFFFFABRRRQAUUUmKAFopMUYoAWikxRigBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooozQAUUZozQAUUZozQAlFFFABRRRQA6iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooASiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigANJSmkoAKKKKACiiigAooooAKKKKAFooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopKAFopKKAFopKKAFNJRRQAUUUUAFFFFABRRRQAUUUUALRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSUtJQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAGKMUtFACYoxS0UAJijFLRQAmKMUtFACYoxS0UAJijFLRQAmKMUtFACYoxS0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRQaADNGaSigBc0ZpKKAFzSUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//2beqej9A6bE7sUOBP/QqbT/mvfG+2jE0P+0qbT/ivfG+W8Ylv7Cqej9A6rE7bQyBvyV0fj8QwuC9e1uKtCV0fj8QwuC9e1uKtCV0fj8QwuC9e1uKtCV0fj8QwuC9e1uKtAAAAAAAAIA/AACAPwAAgD8AAIA/AAAAAAAAAAAAAAAAwPvhu3obiT8GxNO+wLXzu4XjjD/zZVa+6LJTPXDfjD/7N1K+xGLfPXcTiT+iqs++/KH7vX4jiT/Oqs++PFCIvZznjD8tOFK+wLXzu4XjjD/zZVa+wPvhu3obiT8GxNO+wLXzu4XjjD/zZVa+wKL5u2Mqjj/gAUY76LJTPXDfjD/7N1K+PFCIvZznjD8tOFK+wKL5u2Mqjj/gAUY7wLXzu4XjjD/zZVa+vgFwvjMriT9qh8O+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qi8lP+WrPz/J+Ck/dhBCP+nBLj93EEI/yfgpP+WrPz/J+Ck/5as/P+nBLj8GdUQ/yfgpPwZ1RD+qLyU/dxBCP6ovJT93EEI/yfgpPwV1RD/pwS4/BnVEP8n4KT93EEI/yfgpP3YQQj/pwS4/ltlGP8n4KT+W2UY/qi8lPwZ1RD+qLyU/BnVEP8n4KT+W2UY/6cEuP5bZRj/J+Ck/BnVEP8n4KT8FdUQ/6cEuPyU+ST/K+Ck/JT5JP6ovJT+W2UY/qi8lP5bZRj/J+Ck/JT5JP+nBLj8lPkk/yvgpP5bZRj/J+Ck/ltlGP+nBLj+1oks/yvgpP7WiSz+qLyU/JT5JP6ovJT8lPkk/yvgpP7WiSz/pwS4/taJLP8r4KT8lPkk/yvgpPyU+ST/pwS4/RQdOP8r4KT9FB04/qi8lP7WiSz+qLyU/taJLP8r4KT9FB04/6cEuP0UHTj/K+Ck/taJLP8r4KT+1oks/6cEuP9VrUD/K+Ck/1WtQP6ovJT9FB04/qi8lP0UHTj/K+Ck/1WtQP+nBLj/Va1A/yvgpP0UHTj/K+Ck/RQdOP+nBLj9l0FI/yvgpP2XQUj+qLyU/1WtQP6ovJT/Va1A/yvgpP2XQUj/pwS4/ZdBSP8r4KT/Va1A/yvgpP9VrUD/pwS4/9TRVP8r4KT/1NFU/qi8lP2XQUj+qLyU/ZdBSP8r4KT/1NFU/6cEuP/U0VT/K+Ck/ZdBSP8r4KT9l0FI/6cEuP4SZVz/K+Ck/hJlXP6ovJT/1NFU/qi8lP/U0VT/K+Ck/hJlXP+nBLj+EmVc/yvgpP/U0VT/K+Ck/9TRVP+nBLj8T/lk/yvgpPxP+WT+qLyU/hJlXP6ovJT+EmVc/yvgpPxP+WT/pwS4/E/5ZP8r4KT+EmVc/yvgpP4SZVz/pwS4/o2JcP8r4KT+lYlw/qi8lPxP+WT+qLyU/E/5ZP8r4KT+jYlw/6cEuP6NiXD/K+Ck/E/5ZP8r4KT8T/lk/6cEuPzw1Ej/K+Ck/PDUSP6ovJT+s0A8/qi8lP6zQDz/K+Ck/PDUSP+nBLj88NRI/yvgpP6zQDz/K+Ck/rNAPP+nBLj/LmRQ/yvgpP8uZFD+qLyU/PDUSP6ovJT88NRI/yvgpP8uZFD/pwS4/y5kUP8r4KT88NRI/yvgpPzw1Ej/pwS4/Wv4WP8r4KT9a/hY/qi8lP8uZFD+qLyU/y5kUP8r4KT9a/hY/6cEuP1r+Fj/K+Ck/y5kUP8r4KT/LmRQ/6cEuP+tiGT/J+Ck/62IZP6ovJT9a/hY/qi8lP1r+Fj/K+Ck/62IZP+jBLj/rYhk/yfgpP1r+Fj/K+Ck/Wv4WP+nBLj96xxs/yfgpP3rHGz+qLyU/62IZP6ovJT/rYhk/yfgpP3rHGz/owS4/escbP8n4KT/rYhk/yfgpP+tiGT/owS4/CiweP8n4KT8KLB4/qi8lP3rHGz+qLyU/escbP8n4KT8KLB4/6MEuPwosHj/J+Ck/escbP8n4KT96xxs/6MEuP5qQID/J+Ck/mpAgP6ovJT8KLB4/qi8lPwosHj/J+Ck/mpAgP+jBLj+akCA/yfgpPwosHj/J+Ck/CiweP+jBLj8q9SI/yfgpPyr1Ij+qLyU/mpAgP6ovJT+akCA/yfgpPyr1Ij/owS4/KvUiP8n4KT+akCA/yfgpP5qQID/owS4/uVklP8n4KT+5WSU/qi8lPyr1Ij+qLyU/KvUiP8n4KT+5WSU/6MEuP7lZJT/J+Ck/KvUiP8n4KT8q9SI/6MEuP0i+Jz/J+Ck/SL4nP6ovJT+5WSU/qi8lP7lZJT/J+Ck/SL4nP+jBLj9Ivic/yfgpP7lZJT/J+Ck/uVklP+jBLj/YIio/yfgpP9kiKj+qLyU/SL4nP6ovJT9Ivic/yfgpP9giKj/owS4/2CIqP8n4KT9Ivic/yfgpP0i+Jz/owS4/aIcsP8n4KT9phyw/qi8lP9kiKj+qLyU/2CIqP8n4KT9ohyw/6MEuP2iHLD/J+Ck/2CIqP8n4KT/YIio/6MEuP/jrLj/J+Ck/+OsuP6ovJT9phyw/qi8lP2iHLD/J+Ck/+OsuP+jBLj/46y4/yfgpP2iHLD/J+Ck/aIcsP+jBLj+IUDE/yfgpP4hQMT+qLyU/+OsuP6ovJT/46y4/yfgpP4hQMT/owS4/iFAxP8n4KT/46y4/yfgpP/jrLj/owS4/F7UzP8n4KT8YtTM/qi8lP4hQMT+qLyU/iFAxP8n4KT8XtTM/6MEuPxe1Mz/J+Ck/iFAxP8n4KT+IUDE/6MEuP6cZNj/J+Ck/pxk2P6ovJT8YtTM/qi8lPxe1Mz/J+Ck/pxk2P+jBLj+nGTY/yfgpPxe1Mz/J+Ck/F7UzP+jBLj82fjg/yfgpPzZ+OD+qLyU/pxk2P6ovJT+nGTY/yfgpPzZ+OD/owS4/Nn44P8n4KT+nGTY/yfgpP6cZNj/owS4/x+I6P+nBLj/H4jo/yfgpPzZ+OD/J+Ck/Nn44P+jBLj/H4jo/CIszP8fiOj/pwS4/Nn44P+jBLj82fjg/CIszPzZ+OD8IizM/Nn44P+jBLj+nGTY/6MEuP6cZNj8IizM/Vkc9PwiLMz9WRz0/6cEuP8fiOj/pwS4/x+I6PwiLMz9duyA/KFQ4P127ID8IizM/b9cfPwiLMz9v1x8/KFQ4P2/XHz8oVDg/b9cfPwiLMz9/8x4/CIszP3/zHj8oVDg/5as/PwiLMz/lqz8/6cEuP1ZHPT/pwS4/Vkc9PwiLMz9LnyE/KFQ4P0ufIT8IizM/XbsgPwiLMz9duyA/KFQ4P3YQQj8IizM/dhBCP+nBLj/lqz8/6cEuP+WrPz8IizM/OoMiPyhUOD86gyI/CIszP0ufIT8IizM/S58hPyhUOD8FdUQ/CIszPwV1RD/pwS4/dhBCP+nBLj92EEI/CIszPyhnIz8oVDg/KGcjPwiLMz86gyI/CIszPzqDIj8oVDg/ltlGPwiLMz+W2UY/6cEuPwV1RD/pwS4/BXVEPwiLMz8XSyQ/KFQ4PxdLJD8IizM/KGcjPwiLMz8oZyM/KFQ4PyU+ST8IizM/JT5JP+nBLj+W2UY/6cEuP5bZRj8IizM/BS8lPylUOD8FLyU/CIszPxdLJD8IizM/F0skPyhUOD+1oks/CoszP7WiSz/pwS4/JT5JP+nBLj8lPkk/CIszP/QSJj8pVDg/9BImPwqLMz8FLyU/CIszPwUvJT8pVDg/RQdOPwqLMz9FB04/6cEuP7WiSz/pwS4/taJLPwqLMz/i9iY/KVQ4P+L2Jj8KizM/9BImPwqLMz/0EiY/KVQ4P9VrUD8KizM/1WtQP+nBLj9FB04/6cEuP0UHTj8KizM/0NonPylUOD/Q2ic/CoszP+L2Jj8KizM/4vYmPylUOD9l0FI/CYszP2XQUj/pwS4/1WtQP+nBLj/Va1A/CoszP7++KD8pVDg/v74oPwmLMz/Q2ic/CoszP9DaJz8pVDg/9TRVPwmLMz/1NFU/6cEuP2XQUj/pwS4/ZdBSPwmLMz+toik/KFQ4P62iKT8JizM/v74oPwmLMz+/vig/KVQ4P4SZVz8JizM/hJlXP+nBLj/1NFU/6cEuP/U0VT8JizM/nIYqPyhUOD+chio/CYszP62iKT8JizM/raIpPyhUOD8T/lk/CYszPxP+WT/pwS4/hJlXP+nBLj+EmVc/CYszP4pqKz8oVDg/imorPwmLMz+chio/CYszP5yGKj8oVDg/pWJcPwiLMz+jYlw/6cEuPxP+WT/pwS4/E/5ZPwmLMz95Tiw/KFQ4P3lOLD8IizM/imorPwmLMz+Kais/KFQ4Pzw1Ej8IizM/PDUSP+nBLj+s0A8/6cEuP6zQDz8IizM/mrQQPyhUOD+atBA/CIszP6zQDz8IizM/rNAPPyhUOD/LmRQ/CIszP8uZFD/pwS4/PDUSP+nBLj88NRI/CIszP4iYET8oVDg/iJgRPwiLMz+atBA/CIszP5q0ED8oVDg/Wv4WPwiLMz9a/hY/6cEuP8uZFD/pwS4/y5kUPwiLMz93fBI/KFQ4P3Z8Ej8IizM/iJgRPwiLMz+ImBE/KFQ4P+tiGT8IizM/62IZP+jBLj9a/hY/6cEuP1r+Fj8IizM/ZWATPyhUOD9lYBM/CIszP3Z8Ej8IizM/d3wSPyhUOD96xxs/CIszP3rHGz/owS4/62IZP+jBLj/rYhk/CIszP1NEFD8oVDg/U0QUPwiLMz9lYBM/CIszP2VgEz8oVDg/CiwePwiLMz8KLB4/6MEuP3rHGz/owS4/escbPwiLMz9CKBU/KFQ4P0IoFT8IizM/U0QUPwiLMz9TRBQ/KFQ4P5qQID8IizM/mpAgP+jBLj8KLB4/6MEuPwosHj8IizM/MAwWPyhUOD8wDBY/CIszP0IoFT8IizM/QigVPyhUOD8q9SI/CIszPyr1Ij/owS4/mpAgP+jBLj+akCA/CIszPx/wFj8oVDg/H/AWPwiLMz8wDBY/CIszPzAMFj8oVDg/uVklPwiLMz+5WSU/6MEuPyr1Ij/owS4/KvUiPwiLMz8N1Bc/KFQ4Pw3UFz8IizM/H/AWPwiLMz8f8BY/KFQ4P0i+Jz8IizM/SL4nP+jBLj+5WSU/6MEuP7lZJT8IizM/+7cYPyhUOD/7txg/CIszPw3UFz8IizM/DdQXPyhUOD/YIio/CIszP9giKj/owS4/SL4nP+jBLj9Ivic/CIszP+qbGT8oVDg/6psZPwiLMz/7txg/CIszP/u3GD8oVDg/aIcsPwiLMz9ohyw/6MEuP9giKj/owS4/2CIqPwiLMz/Zfxo/KFQ4P9l/Gj8IizM/6psZPwiLMz/qmxk/KFQ4P/jrLj8IizM/+OsuP+jBLj9ohyw/6MEuP2iHLD8IizM/x2MbPyhUOD/HYxs/CIszP9l/Gj8IizM/2X8aPyhUOD+IUDE/CIszP4hQMT/owS4/+OsuP+jBLj/46y4/CIszP7VHHD8oVDg/tUccPwiLMz/HYxs/CIszP8djGz8oVDg/F7UzPwiLMz8XtTM/6MEuP4hQMT/owS4/iFAxPwiLMz+jKx0/KFQ4P6MrHT8IizM/tUccPwiLMz+1Rxw/KFQ4P6cZNj8IizM/pxk2P+jBLj8XtTM/6MEuPxe1Mz8IizM/kQ8ePyhUOD+SDx4/CIszP6MrHT8IizM/oysdPyhUOD9/8x4/KFQ4P3/zHj8IizM/kg8ePwiLMz+RDx4/KFQ4Py7EAT7Mb1g/LsQBPj6WZj/taPw9PpZmP+1o/D3Mb1g/7Wj8PcxvWD/taPw9PpZmP31J9T0+lmY/fUn1PcxvWD/qUwU+zG9YP+1TBT4+lmY/LsQBPj6WZj8uxAE+zG9YPwyMAz5dSUo/6lMFPsxvWD8uxAE+zG9YP6j4/z1dSUo/LsQBPsxvWD/taPw9zG9YP2Rb3D1dSUo/H+vfPcxvWD+wy9g9zG9YP/Q71T1dSUo/sMvYPcxvWD84rNE9zG9YP2bqGD5dSUo/RLIaPsxvWD+MIhc+zG9YPyJ6HD5dSUo//0EePsxvWD9Esho+zG9YP65aFT5dSUo/jCIXPsxvWD/QkhM+zG9YP/bKET5dSUo/0JITPsxvWD8ZAxA+zG9YPzc7Dj5dSUo/GQMQPsxvWD9dcww+zG9YP3+rCj5dSUo/XXMMPsxvWD+l4wg+zG9YP8QbBz5dSUo/peMIPsxvWD/qUwU+zG9YPzHZ+D1dSUo/7Wj8PcxvWD99SfU9zG9YP8G58T1dSUo/fUn1PcxvWD/+Ke49zG9YP0qa6j1dSUo//inuPcxvWD+WCuc9zG9YP9t64z1dSUo/lgrnPcxvWD8f6989zG9YP4Qczj1dSUo/OKzRPcxvWD/JjMo9zG9YPw39xj1dSUo/yYzKPcxvWD9ZbcM9zG9YP5bdvz1dSUo/WW3DPcxvWD/qTbw9zG9YPy6+uD1dSUo/6k28PcxvWD9yLrU9zG9YP7eesT1dSUo/ci61PcxvWD8DD649zG9YP0d/qj1dSUo/Aw+uPcxvWD+M76Y9zG9YP9hfoz1dSUo/jO+mPcxvWD8c0J89zG9YP2FAnD1dSUo/HNCfPcxvWD+lsJg9zG9YP/EglT1dSUo/pbCYPcxvWD8mkZE9zG9YP3oBjj1dSUo/JpGRPcxvWD++cYo9zG9YPzdoNT5dSUo/FTA3PsxvWD9doDM+zG9YP3/YMT5dSUo/XaAzPsxvWD+iEDA+zG9YP8RILj5dSUo/ohAwPsxvWD/mgCw+zG9YPwy5Kj5dSUo/5oAsPsxvWD8u8Sg+zG9YP1EpJz5dSUo/LvEoPsxvWD9rYSU+zG9YP5WZIz5dSUo/a2ElPsxvWD+30SE+zG9YP90JID5dSUo/t9EhPsxvWD//QR4+zG9YP7fRIT7Mb1g/t9EhPjuWZj//QR4+O5ZmP/9BHj7Mb1g//0EePsxvWD//QR4+O5ZmP0SyGj47lmY/RLIaPsxvWD9rYSU+zG9YP2thJT47lmY/t9EhPjuWZj+30SE+zG9YPy7xKD7Mb1g/LvEoPjuWZj9rYSU+O5ZmP2thJT7Mb1g/5oAsPsxvWD/mgCw+PZZmPy7xKD47lmY/LvEoPsxvWD+iEDA+zG9YP6IQMD49lmY/5oAsPj2WZj/mgCw+zG9YP12gMz7Mb1g/WaAzPj2WZj+iEDA+PZZmP6IQMD7Mb1g/FTA3PsxvWD8VMDc+PpZmP1mgMz49lmY/XaAzPsxvWD8mkZE9zG9YPyaRkT0+lmY/vnGKPT6WZj++cYo9zG9YP6WwmD3Mb1g/pbCYPT6WZj8mkZE9PpZmPyaRkT3Mb1g/HNCfPcxvWD8c0J89PpZmP6WwmD0+lmY/pbCYPcxvWD+M76Y9zG9YP4zvpj0+lmY/HNCfPT6WZj8c0J89zG9YPwMPrj3Mb1g/+w6uPT6WZj+M76Y9PpZmP4zvpj3Mb1g/ci61PcxvWD9yLrU9PpZmP/sOrj0+lmY/Aw+uPcxvWD/qTbw9zG9YP+JNvD0+lmY/ci61PT6WZj9yLrU9zG9YP1ltwz3Mb1g/WW3DPT6WZj/iTbw9PpZmP+pNvD3Mb1g/yYzKPcxvWD/JjMo9PpZmP1ltwz0+lmY/WW3DPcxvWD84rNE9zG9YPzis0T0+lmY/yYzKPT6WZj/JjMo9zG9YP7DL2D3Mb1g/sMvYPT6WZj84rNE9PpZmPzis0T3Mb1g/lgrnPcxvWD+WCuc9PpZmPyfr3z0+lmY/H+vfPcxvWD8f6989zG9YPyfr3z0+lmY/sMvYPT6WZj+wy9g9zG9YP/4p7j3Mb1g//inuPT6WZj+WCuc9PpZmP5YK5z3Mb1g/fUn1PcxvWD99SfU9PpZmP/4p7j0+lmY//inuPcxvWD9dcww+zG9YP11zDD4+lmY/peMIPj6WZj+l4wg+zG9YP6XjCD7Mb1g/peMIPj6WZj/tUwU+PpZmP+pTBT7Mb1g/GQMQPsxvWD8ZAxA+PpZmP11zDD4+lmY/XXMMPsxvWD/QkhM+zG9YP9CSEz4+lmY/GQMQPj6WZj8ZAxA+zG9YP4wiFz7Mb1g/jCIXPj6WZj/QkhM+PpZmP9CSEz7Mb1g/RLIaPsxvWD9Esho+O5ZmP4wiFz4+lmY/jCIXPsxvWD8AAAEAAgAAAAIAAwAEAAUABgAEAAYABwAIAAkACgALAAwADQAOAA8AEAAOABAAEQASABMAFAAVABYAFwAVABcAGAAZABoAGwAcAB0AHgAcAB4AHwAgACEAIgAjACQAJQAjACUAJgAnACgAKQAqACsALAAqACwALQAuAC8AMAAxADIAMwAxADMANAA1ADYANwA4ADkAOgA4ADoAOwA8AD0APgA/AEAAQQA/AEEAQgBDAEQARQBGAEcASABGAEgASQBKAEsATABNAE4ATwBNAE8AUABRAFIAUwBUAFUAVgBUAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABeAGAAYQBiAGMAZABiAGQAZQBmAGcAaABpAGoAawBpAGsAbABtAG4AbwBwAHEAcgBwAHIAcwB0AHUAdgB3AHgAeQB3AHkAegB7AHwAfQB+AH8AgAB+AIAAgQCCAIMAhACFAIYAhwCFAIcAiACJAIoAiwCMAI0AjgCMAI4AjwCQAJEAkgCTAJQAlQCTAJUAlgCXAJgAmQCaAJsAnACaAJwAnQCeAJ8AoAChAKIAowChAKMApAClAKYApwCoAKkAqgCoAKoAqwCsAK0ArgCvALAAsQCvALEAsgCzALQAtQC2ALcAuAC2ALgAuQC6ALsAvAC9AL4AvwC9AL8AwADBAMIAwwDEAMUAxgDEAMYAxwDIAMkAygDLAMwAzQDLAM0AzgDPANAA0QDSANMA1ADSANQA1QDWANcA2ADZANoA2wDZANsA3ADdAN4A3wDgAOEA4gDgAOIA4wDkAOUA5gDkAOYA5wDoAOkA6gDoAOoA6wDsAO0A7gDsAO4A7wDwAPEA8gDwAPIA8wD0APUA9gD0APYA9wD4APkA+gD4APoA+wD8AP0A/gD8AP4A/wAAAQEBAgEAAQIBAwEEAQUBBgEEAQYBBwEIAQkBCgEIAQoBCwEMAQ0BDgEMAQ4BDwEQAREBEgEQARIBEwEUARUBFgEUARYBFwEYARkBGgEYARoBGwEcAR0BHgEcAR4BHwEgASEBIgEgASIBIwEkASUBJgEkASYBJwEoASkBKgEoASoBKwEsAS0BLgEsAS4BLwEwATEBMgEwATIBMwE0ATUBNgE0ATYBNwE4ATkBOgE4AToBOwE8AT0BPgE8AT4BPwFAAUEBQgFAAUIBQwFEAUUBRgFEAUYBRwFIAUkBSgFIAUoBSwFMAU0BTgFMAU4BTwFQAVEBUgFQAVIBUwFUAVUBVgFUAVYBVwFYAVkBWgFYAVoBWwFcAV0BXgFcAV4BXwFgAWEBYgFgAWIBYwFkAWUBZgFkAWYBZwFoAWkBagFoAWoBawFsAW0BbgFsAW4BbwFwAXEBcgFwAXIBcwF0AXUBdgF0AXYBdwF4AXkBegF4AXoBewF8AX0BfgF8AX4BfwGAAYEBggGAAYIBgwGEAYUBhgGEAYYBhwGIAYkBigGIAYoBiwGMAY0BjgGMAY4BjwGQAZEBkgGQAZIBkwGUAZUBlgGUAZYBlwGYAZkBmgGYAZoBmwGcAZ0BngGcAZ4BnwGgAaEBogGgAaIBowGkAaUBpgGkAaYBpwGoAakBqgGoAaoBqwGsAa0BrgGsAa4BrwGwAbEBsgGwAbIBswG0AbUBtgG0AbYBtwG4AbkBugG4AboBuwG8Ab0BvgG8Ab4BvwHAAcEBwgHAAcIBwwHEAcUBxgHEAcYBxwHIAckBygHIAcoBywHMAc0BzgHMAc4BzwHQAdEB0gHQAdIB0wHUAdUB1gHUAdYB1wHYAdkB2gHYAdoB2wHcAd0B3gHcAd4B3wHgAeEB4gHgAeIB4wHkAeUB5gHkAeYB5wHoAekB6gHoAeoB6wHsAe0B7gHsAe4B7wHwAfEB8gHwAfIB8wH0AfUB9gH0AfYB9wH4AfkB+gH4AfoB+wH8Af0B/gH8Af4B/wEAAgECAgIAAgICAwIEAgUCBgIEAgYCBwIIAgkCCgIIAgoCCwIMAg0CDgIMAg4CDwIQAhECEgIQAhICEwIUAhUCFgIUAhYCFwIYAhkCGgIYAhoCGwIcAh0CHgIcAh4CHwIgAiECIgIgAiICIwIkAiUCJgIkAiYCJwIoAikCKgIoAioCKwIsAi0CLgIsAi4CLwIwAjECMgIwAjICMwI0AjUCNgI0AjYCNwI4AjkCOgI4AjoCOwI8Aj0CPgI8Aj4CPwJAAkECQgJAAkICQwJEAkUCRgJEAkYCRwJIAkkCSgJIAkoCSwJMAk0CTgJMAk4CTwJQAlECUgJQAlICUwJUAlUCVgJUAlYCVwJYAlkCWgJYAloCWwJcAl0CXgJcAl4CXwJgAmECYgJgAmICYwJkAmUCZgJkAmYCZwJoAmkCagJoAmoCawJsAm0CbgJsAm4CbwJwAnECcgJwAnICcwJ0AnUCdgJ0AnYCdwJ4AnkCegJ4AnoCewJ8An0CfgJ8An4CfwKAAoECggKAAoICgwKEAoUChgKEAoYChwKIAokCigKIAooCiwKMAo0CjgKMAo4CjwKQApECkgKQApICkwKUApUClgKUApYClwKYApkCmgKYApoCmwKcAp0CngKcAp4CnwKgAqECogKgAqICowKkAqUCpgKkAqYCpwKoAqkCqgKoAqoCqwKsAq0CrgKsAq4CrwKwArECsgKwArICswK0ArUCtgK0ArYCtwK4ArkCugK4AroCuwK8Ar0CvgK8Ar4CvwLAAsECwgLAAsICwwLEAsUCxgLEAsYCxwLIAskCygLIAsoCywLMAs0CzgLMAs4CzwLQAtEC0gLQAtIC0wLUAtUC1gLUAtYC1wLYAtkC2gLYAtoC2wLcAt0C3gLcAt4C3wLgAuEC4gLgAuIC4wLkAuUC5gLkAuYC5wLoAukC6gLoAuoC6wLsAu0C7gLsAu4C7wLwAvEC8gLwAvIC8wL0AvUC9gL0AvYC9wL4AvkC+gL4AvoC+wL8Av0C/gL8Av4C/wIAAwEDAgMAAwIDAwMEAwUDBgMEAwYDBwMIAwkDCgMIAwoDCwMMAw0DDgMMAw4DDwMQAxEDEgMQAxIDEwMUAxUDFgMUAxYDFwMYAxkDGgMYAxoDGwMcAx0DHgMcAx4DHwMgAyEDIgMgAyIDIwMkAyUDJgMkAyYDJwMoAykDKgMoAyoDKwMsAy0DLgMsAy4DLwMwAzEDMgMwAzIDMwM0AzUDNgM0AzYDNwM4AzkDOgM4AzoDOwM8Az0DPgM8Az4DPwNAA0EDQgNAA0IDQwNEA0UDRgNEA0YDRwNIA0kDSgNIA0oDSwNMA00DTgNMA04DTwNQA1EDUgNQA1IDUwNUA1UDVgNUA1YDVwNYA1kDWgNYA1oDWwNcA10DXgNcA14DXwNgA2EDYgNgA2IDYwNkA2UDZgNkA2YDZwNoA2kDagNoA2oDawNsA20DbgNsA24DbwNwA3EDcgNwA3IDcwN0A3UDdgN0A3YDdwN4A3kDegN4A3oDewN8A30DfgN8A34DfwOAA4EDggOAA4IDgwOEA4UDhgOEA4YDhwOIA4kDigOIA4oDiwOMA40DjgOMA44DjwOQA5EDkgOQA5IDkwOUA5UDlgOUA5YDlwOYA5kDmgOYA5oDmwOcA50DngOcA54DnwOgA6EDogOgA6IDowOkA6UDpgOkA6YDpwOoA6kDqgOoA6oDqwOsA60DrgOsA64DrwOwA7EDsgOwA7IDswO0A7UDtgO0A7YDtwO4A7kDugO4A7oDuwO8A70DvgO8A74DvwPAA8EDwgPAA8IDwwPEA8UDxgPEA8YDxwPIA8kDygPIA8oDywPMA80DzgPMA84DzwPQA9ED0gPQA9ID0wPUA9UD1gPUA9YD1wPYA9kD2gPYA9oD2wPcA90D3gPcA94D3wPgA+ED4gPgA+ID4wPkA+UD5gPkA+YD5wPoA+kD6gPoA+oD6wPsA+0D7gPsA+4D7wPwA/ED8gPwA/ID8wP0A/UD9gP0A/YD9wP4A/kD+gP4A/oD+wP8A/0D/gP8A/4D/wMABAEEAgQABAIEAwQEBAUEBgQEBAYEBwQIBAkECgQIBAoECwQMBA0EDgQMBA4EDwQQBBEEEgQQBBIEEwQUBBUEFgQUBBYEFwQYBBkEGgQYBBoEGwQcBB0EHgQcBB4EHwQgBCEEIgQgBCIEIwQkBCUEJgQkBCYEJwQoBCkEKgQoBCoEKwQsBC0ELgQsBC4ELwQwBDEEMgQwBDIEMwQ0BDUENgQ0BDYENwQ4BDkEOgQ4BDoEOwQ8BD0EPgQ8BD4EPwRABEEEQgRABEIEQwREBEUERgREBEYERwRIBEkESgRIBEoESwRMBE0ETgRMBE4ETwRQBFEEUgRQBFIEUwRUBFUEVgRUBFYEVwRYBFkEWgRYBFoEWwRcBF0EXgRcBF4EXwRgBGEEYgRgBGIEYwRkBGUEZgRkBGYEZwRoBGkEagRoBGoEawRsBG0EbgRsBG4EbwRwBHEEcgRwBHIEcwR0BHUEdgR0BHYEdwR4BHkEegR4BHoEewR8BH0EfgR8BH4EfwSABIEEggSABIIEgwSEBIUEhgSEBIYEhwSIBIkEigSIBIoEiwSMBI0EjgSMBI4EjwSQBJEEkgSQBJIEkwSUBJUElgSUBJYElwSYBJkEmgSYBJoEmwScBJ0EngScBJ4EnwSgBKEEogSgBKIEowSkBKUEpgSkBKYEpwSoBKkEqgSoBKoEqwSsBK0ErgSsBK4ErwSwBLEEsgSwBLIEswS0BLUEtgS0BLYEtwS4BLkEugS4BLoEuwS8BL0EvgS8BL4EvwTABMEEwgTABMIEwwTEBMUExgTEBMYExwTIBMkEygTIBMoEywTMBM0EzgTMBM4EzwTQBNEE0gTQBNIE0wTUBNUE1gTUBNYE1wTYBNkE2gTYBNoE2wTcBN0E3gTcBN4E3wTgBOEE4gTgBOIE4wTkBOUE5gTkBOYE5wToBOkE6gToBOoE6wTsBO0E7gTsBO4E7wTwBPEE8gTwBPIE8wT0BPUE9gT0BPYE9wT4BPkE+gT4BPoE+wT8BP0E/gT8BP4E/wQABQEFAgUABQIFAwUEBQUFBgUEBQYFBwUIBQkFCgUIBQoFCwUMBQ0FDgUMBQ4FDwUQBREFEgUQBRIFEwUUBRUFFgUUBRYFFwUYBRkFGgUYBRoFGwUcBR0FHgUcBR4FHwUgBSEFIgUgBSIFIwUkBSUFJgUkBSYFJwUoBSkFKgUoBSoFKwUsBS0FLgUsBS4FLwUwBTEFMgUwBTIFMwU0BTUFNgU0BTYFNwU4BTkFOgU4BToFOwU8BT0FPgU8BT4FPwVABUEFQgVABUIFQwVEBUUFRgVEBUYFRwVIBUkFSgVIBUoFSwVMBU0FTgVMBU4FTwVQBVEFUgVQBVIFUwVUBVUFVgVUBVYFVwVYBVkFWgVYBVoFWwVcBV0FXgVcBV4FXwVgBWEFYgVgBWIFYwVkBWUFZgVkBWYFZwVoBWkFagVoBWoFawVsBW0FbgVsBW4FbwVwBXEFcgVwBXIFcwV0BXUFdgV0BXYFdwV4BXkFegV4BXoFewV8BX0FfgV8BX4FfwWABYEFggWABYIFgwWEBYUFhgWEBYYFhwWIBYkFigWIBYoFiwWMBY0FjgWMBY4FjwWQBZEFkgWQBZIFkwWUBZUFlgWUBZYFlwWYBZkFmgWYBZoFmwWcBZ0FngWcBZ4FnwWgBaEFogWgBaIFowWkBaUFpgWkBaYFpwWoBakFqgWoBaoFqwWsBa0FrgWsBa4FrwWwBbEFsgWwBbIFswW0BbUFtgW0BbYFtwW4BbkFugW4BboFuwW8Bb0FvgW8Bb4FvwXABcEFwgXABcIFwwXEBcUFxgXEBcYFxwXIBckFygXIBcoFywXMBc0FzgXMBc4FzwXQBdEF0gXQBdIF0wXUBdUF1gXUBdYF1wXYBdkF2gXYBdoF2wXcBd0F3gXcBd4F3wXgBeEF4gXgBeIF4wXkBeUF5gXkBeYF5wXoBekF6gXoBeoF6wXsBe0F7gXsBe4F7wXwBfEF8gXwBfIF8wX0BfUF9gX0BfYF9wX4BfkF+gX4BfoF+wX8Bf0F/gX8Bf4F/wUABgEGAgYABgIGAwYEBgUGBgYEBgYGBwYIBgkGCgYIBgoGCwYMBg0GDgYMBg4GDwYQBhEGEgYQBhIGEwYUBhUGFgYUBhYGFwYYBhkGGgYYBhoGGwYcBh0GHgYcBh4GHwYgBiEGIgYgBiIGIwYkBiUGJgYkBiYGJwYoBikGKgYoBioGKwYsBi0GLgYsBi4GLwYwBjEGMgYwBjIGMwY0BjUGNgY0BjYGNwY4BjkGOgY4BjoGOwY8Bj0GPgY8Bj4GPwZABkEGQgZABkIGQwZEBkUGRgZEBkYGRwZIBkkGSgZIBkoGSwZMBk0GTgZMBk4GTwZQBlEGUgZQBlIGUwZUBlUGVgZUBlYGVwZYBlkGWgZYBloGWwZcBl0GXgZcBl4GXwZgBmEGYgZgBmIGYwZkBmUGZgZkBmYGZwZoBmkGagZoBmoGawZsBm0GbgZsBm4GbwZwBnEGcgZwBnIGcwZ0BnUGdgZ0BnYGdwZ4BnkGegZ4BnoGewZ8Bn0GfgZ8Bn4GfwaABoEGggaABoIGgwaEBoUGhgaEBoYGhwaIBokGigaIBooGiwaMBo0GjgaMBo4GjwaQBpEGkgaQBpIGkwaUBpUGlgaUBpYGlwaYBpkGmgaYBpoGmwacBp0GngacBp4GnwagBqEGogagBqIGowakBqUGpgakBqYGpwaoBqkGqgaoBqoGqwasBq0GrgasBq4GrwawBrEGsgawBrIGswa0BrUGtga0BrYGtwa4BrkGuga4BroGuwa8Br0Gvga8Br4GvwbABsEGwgbABsIGwwbEBsUGxgbEBsYGxwbIBskGygbIBsoGywbMBs0GzgbMBs4GzwbQBtEG0gbQBtIG0wbUBtUG1gbUBtYG1wbYBtkG2gbYBtoG2wbcBt0G3gbcBt4G3wbgBuEG4gbgBuIG4wbkBuUG5gbkBuYG5wboBukG6gboBuoG6wbsBu0G7gbvBvAG8QbyBvMG9Ab1BvYG9wb4BvkG+gb7BvwG/Qb+Bv8GAAcBBwIHAwcEBwUHBgcHBwgHCQcKBwsHDAcNBw4HDwcQBxEHEgcTBxQHFQcWBxcHGAcZBxoHGwccBx0HHgcfByAHIQciByMHJAclByYHJwcoBykHKgcrBywHLQcuBy8HMAcxBzIHMwc0BzUHNgc3BzgHOQc6BzsHPAc9Bz4HPwdAB0EHQgdDB0QHRQdGB0cHSAdJB0oHSwdMB00HTgdMB04HTwdQB1EHUgdQB1IHUwdUB1UHVgdUB1YHVwdYB1kHWgdYB1oHWwdcB10HXgdcB14HXwdgB2EHYgdgB2IHYwdkB2UHZgdkB2YHZwdoB2kHagdoB2oHawdsB20HbgdsB24HbwdwB3EHcgdwB3IHcwd0B3UHdgd0B3YHdwd4B3kHegd4B3oHewd8B30Hfgd8B34HfweAB4EHggeAB4IHgweEB4UHhgeEB4YHhweIB4kHigeIB4oHiweMB40HjgeMB44HjweQB5EHkgeQB5IHkweUB5UHlgeUB5YHlweYB5kHmgeYB5oHmwecB50HngecB54HnwegB6EHogegB6IHowekB6UHpgekB6YHpweoB6kHqgeoB6oHqwesB60HrgesB64HrwewB7EHsgewB7IHswe0B7UHtge0B7YHtwe4B7kHuge4B7oHuwe8B70Hvge8B74Hvwf/2P/gABBKRklGAAEBAAABAAEAAP/hAAxOZW9HZW8AAABL/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgCAAIAAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A9Aooor81PpgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK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agBrAGwAbQBtAG4AbwBtAG8AawBwAHEAcgBwAHIAcwB0AHUAdgB0AHYAdwB4AHkAegB6AHsAfAB8AH0AeAB6AHwAeAB+AH8AgAB+AIAAgQCCAIMAhACCAIQAhQCGAIcAiACGAIgAiQCKAIsAjACKAIwAjQCOAI8AkACOAJAAkQCSAJMAlACSAJQAlQCWAJcAmACWAJgAmQCaAJsAnACaAJwAnQCeAJ8AoACeAKAAoQCiAKMApACiAKQApQCmAKcAqACmAKgAqQCqAKsArACqAKwArQCuAK8AsACxALIAswCxALMAtAC1ALYAtwC1ALcAuAC5ALoAuwC5ALsAvAC9AL4AvwC9AL8AwADBAMIAwwDBAMMAxADFAMYAxwDFAMcAyADJAMoAywDJAMsAzADNAM4AzwDQANEA0gDQANIA0wDUANUA1gDUANYA1wDYANkA2gDYANoA2wDcAN0A3gDcAN4A3wDgAOEA4gDgAOIA4wDkAOUA5gDkAOYA5wDoAOkA6gDoAOoA6wDsAO0A7gDsAO4A7wDwAPEA8gDwAPIA8wD0APUA9gD3APgA+QD3APkA+gD7APwA/QD7AP0A/gD/AAABAQH/AAEBAgEDAQQBBQEDAQUBBgEHAQgBCQEHAQkBCgELAQwBDQELAQ0BDgEPARABEQEPAREBEgETARQBFQETARUBFgEXARgBGQEXARkBGgEbARwBHQEeAR8BIAEeASABIQEiASMBJAEiASQBJQEmAScBKAEmASgBKQEqASsBLAEqASwBLQEuAS8BMAEuATABMQEyATMBNAEyATQBNQE2ATcBOAE2ATgBOQE6ATsBPAE6ATwBPQE+AT8BQAE+AUABQQFCAUMBRAFCAUQBRQFGAUcBSAFGAUgBSQFKAUsBTAFKAUwBTQFOAU8BUAFOAVABUQFSAVMBVAFSAVQBVQFWAVcBWAFWAVgBWQFaAVsBXAFaAVwBXQFeAV8BYAFhAWIBYwFhAWMBZAFlAWYBZwFlAWcBaAFpAWoBawFpAWsBbAFtAW4BbwFtAW8BcAFxAXIBcwFxAXMBdAF1AXYBdwF1AXcBeAF5AXoBewF5AXsBfAF9AX4BfwF9AX8BgAGBAYIBgwGBAYMBhAGFAYYBhwGIAYkBigGIAYoBiwGMAY0BjgGMAY4BjwGQAZEBkgGQAZIBkwGUAZUBlgGUAZYBlwGYAZkBmgGYAZoBmwGcAZ0BngGcAZ4BnwGgAaEBogGgAaIBowGkAaUBpgGkAaYBpwGoAakBqgGoAaoBqwGsAa0BrgGvAbABsQGvAbEBsgGzAbQBtQGzAbUBtgG3AbgBuQG3AbkBugG7AbwBvQG7Ab0BvgG/AcABwQG/AcEBwgHDAcQBxQHDAcUBxgHHAcgByQHHAckBygHLAcwBzQHLAc0BzgHPAdAB0QHPAdEB0gHTAdQB1QHTAdUB1gHXAdgB2QHXAdkB2gHbAdwB3QHbAd0B3gHfAeAB4QHfAeEB4gHjAeQB5QHjAeUB5gHnAegB6QHnAekB6gHrAewB7QHuAe8B8AHuAfAB8QHyAfMB9AHyAfQB9QH2AfcB+AH2AfgB+QH6AfsB/AH6AfwB/QH+Af8BAAL+AQACAQICAgMCBAICAgQCBQIGAgcCCAIGAggCCQIKAgsCDAIKAgwCDQIOAg8CAwIOAgMCAgIQAhECEgIQAhICEwIUAhUCFgIUAhYCFwIYAhkCGgIYAhoCGwIcAh0CFQIcAhUCFAIeAh8CIAIgAiECIgIgAiICHgIjAiQCJQIjAiUCJgInAigCKQIqAisCLAIqAiwCLQIuAi8CMAIuAjACMQIyAjMCNAI1AjYCNwI1AjcCOAI5AjoCOwI7AjwCPQI7Aj0COQI+Aj8CQAJBAkICQwJBAkMCRAJFAkYCRwJFAkcCSAJJAkoCSwJJAksCTAJNAk4CTwJQAlECUgJQAlICUwJUAlUCVgJXAlgCWQJXAlkCWgJbAlwCXQJdAl4CXwJfAmACYQJhAmICWwJbAl0CXwJfAmECWwJjAmQCZQJmAmcCaAJmAmgCaQJqAmsCbAJqAmwCbQJuAm8CcAJxAnICcwJzAnQCdQJ1AnYCdwJ3AngCcQJxAnMCdQJ1AncCcQJ5AnoCewJ5AnsCfAJ9An4CfwJ9An8CgAKBAoICgwKBAoMChAKFAoYChwKFAocCiAKJAooCiwKJAosCjAKNAo4CjwKNAo8CkAKRApICkwKRApMClAKVApYClwKYApkCmgKYApoCmwKcAp0CngKfAqACoQKfAqECogKjAqQCpQKjAqUCpgKnAqgCqQKqAqsCrAKqAqwCrQKuAq8CsAKuArACsQKyArMCtAKyArQCtQK2ArcCuAK2ArgCuQK6ArsCvAK9Ar4CvwK9Ar8CwALBAsICwwLBAsMC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2Yn3vAsxej/orFY+2Yn3vAsxej/orFY+2Yn3vAsxej8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/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AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8=\";\r\nexport default yellowMan;","import React, { Component } from 'react';\r\n\r\nimport { LayoutContext } from '../../../../../modules/ContextModules/LayoutContext';\r\n\r\nimport deletePng from './.image/清除圖案.png';\r\nimport optionPng from './.image/選單圖案.png';\r\n\r\nimport './BuildingItem.css'\r\n\r\nexport class BuildingItem extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isOpen: false,\r\n }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n locate(layer) {\r\n if (layer != null)\r\n layer.goto();\r\n }\r\n\r\n remove(index) {\r\n\r\n }\r\n\r\n render() {\r\n const { buildingToolContext } = this.context;\r\n let item = buildingToolContext.buildingList[this.props.index];\r\n return (\r\n
    \r\n
    \r\n {this.props.name}\r\n \r\n
    \r\n {this.state.isOpen ?\r\n
    \r\n {this.props.type === \"I3S\" ? <>不透明度:\r\n { buildingToolContext.setOpacity(this.props.index, e.target.value / 100); }} />\r\n : null}\r\n \r\n { buildingToolContext.remove(this.props.index); }} alt=\"delete\" />\r\n
    : null\r\n }\r\n
    \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { DraggableWindow } from '../DraggableWindow';\r\n\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport { BuildingItem } from './BuildingItem/BuildingItem';\r\nimport './ThreeDBuildingTool.css'\r\n\r\nconst city = [\"臺北市\", \"臺中市\", \"基隆市\", \"臺南市\",\r\n \"高雄市\", \"新北市\", \"宜蘭市\", \"桃園市\", \"嘉義市\",\r\n \"新竹縣\", \"苗栗縣\", \"南投縣\", \"彰化縣\", \"新竹市\",\r\n \"雲林縣\", \"嘉義縣\", \"屏東縣\", \"花蓮縣\", \"臺東縣\",\r\n \"金門縣\", \"澎湖縣\", \"連江縣\"];\r\n\r\nconst ThreeDTile = \"https://3dtiles.nlsc.gov.tw/building/tiles3d/\";\r\nconst I3S = \"https://i3s.nlsc.gov.tw/building/i3s/SceneServer/layers/\";\r\nconst roadI3S = \"https://i3s.nlsc.gov.tw/road/i3s\";\r\nconst road2ndI3S = \"https://i3s.nlsc.gov.tw/road2nd/i3s\";\r\nconst road3DTiles = \"https://3dtiles.nlsc.gov.tw/road/tiles3d/\";\r\nconst road2nd3DTiles = \"https://3dtiles.nlsc.gov.tw/road2nd/tiles3d/\";\r\n\r\nexport class ThreeDBuildingTool extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n url: \"\",\r\n isOpenHelp: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let inputText = document.getElementById(\"buildingToolInputURL\");\r\n\r\n inputText.addEventListener(\"keyup\", function (event) {\r\n if (event.key === \"Enter\") {\r\n this.introducer();\r\n }\r\n }.bind(this));\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n async introducer() {\r\n const { buildingToolContext } = this.context;\r\n let param = {};\r\n param.url = this.state.url;\r\n param.urlTemplate = \"{URL}\"\r\n let outResolve;\r\n let waitPromise = new Promise((rs) => { outResolve = rs });\r\n param.callback = (success, layer) => {\r\n outResolve({ success, layer })\r\n };\r\n\r\n if (param.url.includes(ThreeDTile) || param.url.includes(road3DTiles) || param.url.includes(road2nd3DTiles)) {\r\n let urlSp = param.url.split('/');\r\n let index = parseInt(urlSp[urlSp.length - 2]);\r\n let name;\r\n if (param.url.includes(road3DTiles)) {\r\n name = \"國道-原始成果版\";\r\n }\r\n else if (param.url.includes(road2nd3DTiles)) {\r\n name = \"國道-地形貼合版\";\r\n }\r\n else {\r\n name = city[index] + \"近似化建物模型3DTile\";\r\n }\r\n\r\n if (!this.findItem(name)) {\r\n window.gMainMap.TerrainView.addOGC3DTilesLayer(param);\r\n let { success, layer } = await waitPromise;\r\n\r\n if (success) {\r\n buildingToolContext.push({ name: name, layer: layer, opacity: 1.0, type: \"3DTiles\" });\r\n }\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n if (param.url.includes(I3S) || param.url.includes(roadI3S) || param.url.includes(road2ndI3S)) {\r\n let urlSp = param.url.split('/');\r\n let index = parseInt(urlSp[urlSp.length - 1]);\r\n let name;\r\n if (param.url.includes(roadI3S)) {\r\n name = \"國道-原始成果版\";\r\n }\r\n else if (param.url.includes(road2ndI3S)) {\r\n name = \"國道-地形貼合版\";\r\n }\r\n else {\r\n name = city[index] + \"近似化建物模型I3S\";\r\n }\r\n\r\n if (!this.findItem(name)) {\r\n window.gMainMap.TerrainView.addOGCI3SLayer(param);\r\n let { success, layer } = await waitPromise;\r\n\r\n if (success) {\r\n buildingToolContext.push({ name: name, layer: layer, opacity: 1.0, type: \"I3S\" });\r\n }\r\n }\r\n }\r\n }\r\n\r\n findItem(name) {\r\n const { buildingToolContext } = this.context;\r\n let list = buildingToolContext.buildingList;\r\n for (let i = 0; i < list.length; i++) {\r\n if (list[i].name == name) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n content() {\r\n const { buildingToolContext } = this.context;\r\n return (\r\n
    \r\n
    \r\n 套疊網址:\r\n { this.setState({ url: e.target.value }); }}\r\n style={{ width: \"70%\" }} />\r\n \r\n
    \r\n
    \r\n \r\n {\r\n this.state.isOpenHelp ?\r\n
    \r\n 本工具用於顯示套疊的3DTile、I3S模型
    \r\n 支援內政部國土測繪中心的介接服務
    \r\n I3S服務網址規則:https://i3s.nlsc.gov.tw/building/i3s/SceneServer/layers/建物服務代碼\r\n
    \r\n 3D Tiles服務網址規則:https://3dtiles.nlsc.gov.tw/building/tiles3d/建物服務代碼/tileset.json\r\n
    : null\r\n }\r\n
    \r\n
    \r\n 套疊圖層:\r\n
    \r\n
    \r\n {\r\n buildingToolContext.buildingList.map((item, index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n\r\n
    \r\n
    \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { DraggableWindow } from '../DraggableWindow';\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport './Socioeconomic.css';\r\n\r\nimport {\r\n Chart as ChartJS,\r\n CategoryScale,\r\n LinearScale,\r\n ArcElement,\r\n PointElement,\r\n BarElement,\r\n LineElement,\r\n Title,\r\n Tooltip,\r\n Legend,\r\n} from 'chart.js';\r\n\r\nimport { Line, Bar, Pie } from 'react-chartjs-2';\r\n\r\nChartJS.register(\r\n CategoryScale,\r\n LinearScale,\r\n ArcElement,\r\n PointElement,\r\n LineElement,\r\n BarElement,\r\n Title,\r\n Tooltip,\r\n Legend\r\n);\r\n\r\nconst townNames = [\"南投市\", \"埔里鎮\", \"草屯鎮\", \"竹山鎮\", \"集集鎮\", \"名間鄉\", \"鹿谷鄉\", \"中寮鄉\", \"魚池鄉\", \"國姓鄉\", \"水里鄉\", \"信義鄉\", \"仁愛鄉\"]\r\n\r\nexport class Socioeconomic extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n activeChartType: 'bar',\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n selectTown_OnChange(e) {\r\n const { socioeconomicContext } = this.context;\r\n let townName = e.target.value;\r\n let newList = socioeconomicContext.selectTown;\r\n\r\n let index = newList.indexOf(townName);\r\n if (index == -1) {\r\n newList.push(townName);\r\n }\r\n else {\r\n newList.splice(index, 1);\r\n }\r\n\r\n if (socioeconomicContext.layerModule) {\r\n socioeconomicContext.layerModule.repaint(newList);\r\n if (socioeconomicContext.showChart) {\r\n this.updateData();\r\n }\r\n }\r\n\r\n socioeconomicContext.update({ selectTown: newList });\r\n }\r\n\r\n render() {\r\n // 在 render 中將可以使用 this.context\r\n return (\r\n \r\n );\r\n }\r\n\r\n chartContent() {\r\n const { socioeconomicContext } = this.context;\r\n if (this.state.activeChartType === 'line') {\r\n return (\r\n \r\n );\r\n }\r\n if (this.state.activeChartType === 'bar') {\r\n return (\r\n \r\n );\r\n }\r\n if (this.state.activeChartType === 'pie') {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n showChart_OnClick() {\r\n const { socioeconomicContext } = this.context;\r\n\r\n if (socioeconomicContext.layerModule) {\r\n this.updateData();\r\n socioeconomicContext.update({ showChart: true, height: 500 })\r\n }\r\n }\r\n\r\n updateData() {\r\n const { socioeconomicContext } = this.context;\r\n let labels = [];\r\n let data = [];\r\n let rgbArray = [];\r\n let rgbaArray = [];\r\n\r\n if (socioeconomicContext.layerModule) {\r\n let colorList = socioeconomicContext.layerModule.colorList;\r\n socioeconomicContext.layerModule.entityList.forEach((entity, index) => {\r\n\r\n if (socioeconomicContext.selectTown.indexOf(entity.townName) >= 0) {\r\n labels.push(entity.townName);\r\n data.push(entity.count);\r\n let rgb = `rgb(${colorList[index].r} , ${colorList[index].g} , ${colorList[index].b} )`;\r\n let rgba = `rgb(${colorList[index].r} , ${colorList[index].g} , ${colorList[index].b} ,0.2 )`;\r\n rgbArray.push(rgb);\r\n rgbaArray.push(rgba)\r\n }\r\n });\r\n\r\n socioeconomicContext.update({ data: data, labels: labels, backgroundColorArray: rgbaArray, borderColorArray: rgbArray })\r\n }\r\n }\r\n\r\n content() {\r\n const { socioeconomicContext } = this.context;\r\n\r\n return (\r\n
    \r\n
    \r\n
    {\r\n townNames.map(townName => {\r\n return (\r\n \r\n { this.selectTown_OnChange(e); }} checked={socioeconomicContext.selectTown.indexOf(townName) >= 0 ? true : false} />\r\n \r\n \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {socioeconomicContext.showChart ?
    \r\n
    \r\n {this.chartContent()}\r\n
    \r\n
    : null}\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport ls from 'localstorage-slim';\r\nimport { LayoutContext } from \"../../../modules/ContextModules/LayoutContext\";\r\nimport storyMap from './doc/台灣好行.json';\r\n\r\nimport \"./TopBar.css\"\r\nexport class TopBar extends Component {\r\n static contextType = LayoutContext;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isLogined: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let lsInfo = ls.get(\"userInfo\", { decrypt: true });\r\n if (lsInfo) {\r\n this.setState({ isLogined: true });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    { this.openSensorThings(); }}>民生公共物聯資訊
    \r\n {this.state.isLogined ?
    { this.tabClick(\"kmlUploadTool\") }}>道路養護成果上傳
    : null}\r\n {this.state.isLogined ?
    { this.tabClick(\"readilyAvailableHouseTool\") }}>既有成屋檢核工具
    : null}\r\n
    { this.tabClick(\"travelDiaryTool\") }}>旅圖日記
    \r\n {/*
    { this.gotoBestCommentator_OnClick() }}>故事地圖編輯器
    */}\r\n
    { /*this.openBestCommentatorPlayer()*/ }}>使用者故事
    \r\n {this.dropmenu()}\r\n
    \r\n {this.state.isLogined ?
    { this.tabClick(\"threeDBuildingTool\") }}>套疊3D建物模型
    : null}\r\n
    \r\n );\r\n }\r\n\r\n dropmenu() {\r\n return (\r\n
      \r\n
    • \r\n
      { this.gotoBestCommentator_OnClick() }}>使用者故事編輯器
      \r\n
    • \r\n
    • \r\n
      { this.openBestCommentatorPlayer() }}>使用者故事播放器
      \r\n
    • \r\n
    \r\n );\r\n }\r\n\r\n gotoBestCommentator_OnClick() {\r\n const link = document.createElement(\"a\");\r\n link.href = \"https://ntmap.nantou.gov.tw/storymap/\";\r\n link.target = \"_blank\";\r\n link.click();\r\n link.remove();\r\n }\r\n\r\n openBestCommentatorPlayer() {\r\n let blob = new Blob([JSON.stringify(storyMap)], { type: 'application/json' });\r\n\r\n let file = new File([blob],\"台灣好行.json\");\r\n this.BestCommentatorPlayer = new window.ov.Widget.BestCommentatorPlayer({\r\n view: window.gMainMap.TerrainView,\r\n storySrcList: [file]\r\n });\r\n this.BestCommentatorPlayer._WidgetUI._PosX = 500;\r\n let bcpCss = document.getElementsByClassName(\"ov-widget-bestCommentatorPlayer\")[0];\r\n bcpCss.style.left = \"500px\";\r\n }\r\n\r\n openSensorThings() {\r\n this.DTM = new window.ov.Widget.SensorThings({ listX: 500, view: window.gMainMap.TerrainView, proxy: \"OviewProxy?https://sample.pilotgaea.com.tw/sensorthings.ashx?\" });\r\n this.DTM._WidgetUI._PosX = 500;\r\n let dtmCss = document.getElementsByClassName(\"ov-widget-DTM\")[0];\r\n dtmCss.style.left = \"500px\";\r\n }\r\n\r\n tabClick = (constextKey) => {\r\n this.context\r\n .draggableWindowContext[constextKey]\r\n .update({\r\n isOpened: true,\r\n isMinimized: false\r\n });\r\n }\r\n}","import React, {Component} from \"react\";\r\n\r\nimport \"./BottomBarItem.css\"\r\n\r\nexport class BottomBarItem extends Component {\r\n render() {\r\n return(\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"底部按鈕_圖示\"/\r\n
    \r\n
    \r\n {this.props.name}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n\r\n handleClick = (event) => {\r\n this.props.handleClick && this.props.handleClick(event, this.props.name);\r\n }\r\n}","import React, { Component } from \"react\";\r\n\r\nimport { BottomBarItem } from './BottomBarItem/BottomBarItem'\r\nimport { LayoutContext } from \"../../../modules/ContextModules/LayoutContext\";\r\nimport \"./BottomBar.css\"\r\n\r\nimport measureImg from './.image/pen-ruler-solid@3x.png'\r\nimport tagImg from './.image/tag-solid@3x.png'\r\nimport printImg from './.image/print-solid@3x.png'\r\nimport locate from './.image/locate.png'\r\n\r\nexport class BottomBar extends Component {\r\n static contextType = LayoutContext;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n topbar: 1\r\n }\r\n\r\n this.buttonList = [\r\n { icon: measureImg, name: \"測量工具\" },\r\n { icon: tagImg, name: \"標註功能\" },\r\n { icon: printImg, name: \"列印功能\" },\r\n { icon: locate, name: \"定位功能\" },\r\n ]\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n 工具列\r\n
    \r\n
    \r\n
    \r\n {\r\n this.buttonList.map(item => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n handleClick = (event, name) => {\r\n (this.getClickHandles()[name])(event);\r\n }\r\n\r\n getClickHandles = () => ({\r\n 測量工具: (event) => {\r\n // todo handle\r\n console.log(\"測量工具\");\r\n this.context\r\n .draggableWindowContext\r\n .measureTool\r\n .update({\r\n isOpened: true,\r\n isMinimized: false\r\n });\r\n },\r\n 標註功能: (event) => {\r\n // todo handle\r\n console.log(\"標註功能\");\r\n this.context\r\n .draggableWindowContext\r\n .markFunction\r\n .update({\r\n isOpened: true,\r\n isMinimized: false\r\n });\r\n\r\n },\r\n 列印功能: (event) => {\r\n // todo handle\r\n console.log(\"列印功能\");\r\n this.context\r\n .draggableWindowContext\r\n .printFunction\r\n .update({\r\n isOpened: true,\r\n isMinimized: false\r\n });\r\n },\r\n 定位功能: (event) => {\r\n // todo handle\r\n console.log(\"定位功能\");\r\n this.context\r\n .draggableWindowContext\r\n .locateTool\r\n .update({\r\n isOpened: true,\r\n isMinimized: false\r\n });\r\n }\r\n })\r\n}","import React, { Component } from 'react';\r\nimport { CancelButton } from '../../../.common/Buttons/Cancel/CancelButton';\r\nimport { LayoutContext } from '../../../../modules/ContextModules/LayoutContext';\r\nimport './MinimizedWindowStatusItem.css'\r\nexport class MinimizedWindowStatusItem extends Component {\r\n static contextType = LayoutContext;\r\n\r\n render() {\r\n return (\r\n
    \r\n {this.props.data.name}\r\n {this.props.data.name !== this.context.draggableWindowContext[\"socioeconomic\"].name?
    \r\n {/* */}\r\n {/* */}\r\n \r\n
    :null}\r\n
    \r\n );\r\n \r\n }\r\n\r\n status = () => {\r\n return `minimizedWindowStatusItem \r\n ${this.props.data.isOpened? 'minimizedWindowStatusItem--isOpened':''} \r\n ${this.props.data.isMinimized? 'minimizedWindowStatusItem--isMinimized':''}`;\r\n }\r\n\r\n handleBodyClick = () => {\r\n this.props.handleBodyClick && this.props.handleBodyClick(this.props.data); \r\n }\r\n\r\n handleCancel = (e) => {\r\n this.props.handleCancel && this.props.handleCancel(this.props.data); \r\n e.stopPropagation();\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport { MinimizedWindowStatusItem } from './MinimizedWindowStatusItem/MinimizedWindowStatusItem';\r\nimport { LayoutContext } from '../../../modules/ContextModules/LayoutContext';\r\nimport './MinimizedWindowStatusBar.css'\r\nexport class MinimizedWindowStatusBar extends Component {\r\n static contextType = LayoutContext;\r\n\r\n render() {\r\n return (\r\n
    \r\n {\r\n this.props.data.minimizedStatusStack.map(key=>{\r\n let item = this.props.data[key];\r\n item.contextKey = key;\r\n return \r\n })\r\n }\r\n
    \r\n ); \r\n }\r\n\r\n handleBodyClick = (data) => {\r\n this.context\r\n .draggableWindowContext[data.contextKey]\r\n .update({\r\n isOpened: true,\r\n isMinimized: !data.isMinimized\r\n });\r\n }\r\n\r\n handleCancel = (data) => {\r\n this.context\r\n .draggableWindowContext[data.contextKey]\r\n .update({\r\n isOpened: false\r\n });\r\n }\r\n}","import React, { Component } from \"react\";\r\n\r\nimport './Modal.css'\r\n\r\nexport class Modal extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n render() {\r\n return (\r\n
    \r\n
    \r\n {this.props.content || this.content()} \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n content() {\r\n return (\r\n
    \r\n 顯示內容\r\n
    \r\n );\r\n }\r\n\r\n handleOutterClick = (e)=>{\r\n this.props.onOutterClick && this.props.onOutterClick(e);\r\n }\r\n\r\n handleInnerClick = (e) => {\r\n this.props.onInnerClick && this.props.onInnerClick(e);\r\n e.stopPropagation();//阻止他傳遞到外面導致視窗關掉\r\n }\r\n}\r\n ","import React, { Component } from \"react\";\r\n\r\nimport { Modal } from \"../../.common/Modal/Modal\";\r\nimport { LayoutContext } from \"../../../modules/ContextModules/LayoutContext\";\r\n\r\nimport './AttributesModal.css'\r\n\r\nexport class AttributesModal extends Component {\r\n static contextType = LayoutContext;\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n\r\n handleOutterClick = (e) => {\r\n const {attributesModalContext} = this.context;\r\n attributesModalContext.updateContent({isOpened: false})\r\n }\r\n}\r\n ","import React, { Component } from 'react';\r\nimport { Rnd } from 'react-rnd';\r\nimport { LayoutContext } from '../../../modules/ContextModules/LayoutContext';\r\nimport './LayerAttrsRnd.css'\r\n\r\nexport class LayerAttrsRnd extends Component {\r\n static contextType = LayoutContext;\r\n\r\n render() {\r\n const { LayerAttrsRndContext } = this.context;\r\n const style = {\r\n borderRadius: \"5px\",\r\n transition: \"right 0.5s\",\r\n border: \"1px solid black\",\r\n display: LayerAttrsRndContext.isShowLayerAttrsRnd ? \"\" : \"none\",\r\n };\r\n\r\n return (\r\n {\r\n let layerAttrsRndPosition = { x: d.x, y: d.y };\r\n LayerAttrsRndContext.update({ layerAttrsRndPosition: layerAttrsRndPosition });\r\n }}\r\n maxWidth='338px'\r\n maxHeight='397px'\r\n enableResizing={{\r\n top: false,\r\n right: false,\r\n bottom: false,\r\n left: false,\r\n topRight: false,\r\n bottomRight: false,\r\n bottomLeft: false,\r\n topLeft: false\r\n }}\r\n onResize={(e, direction, ref, delta, position) => {\r\n }}\r\n >\r\n
    \r\n {LayerAttrsRndContext.layerAttrsRndTitle}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n {\r\n Object.keys(LayerAttrsRndContext.layerAttrsRnd).map((key, i) => {\r\n if (key === \"\") {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
    {key}{LayerAttrsRndContext.layerAttrsRnd[key]}
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\n\r\nimport OviewMap from './Oview/OviewMap'\r\nimport { SearchParamProcess } from '../SearchParamProcess'\r\nimport { BottomStatusBar } from './BottomStatusBar/BottomStatusBar'\r\nimport { RightPanel } from './RightPanel/RightPanel'\r\nimport { LayersMap } from './.draggable/LayersMap/LayersMap'\r\nimport { MeasureTool } from './.draggable/MeasureTool/MeasureTool'\r\nimport { MarkFunction } from './.draggable/MarkFunction/MarkFunction'\r\nimport { PrintFunction } from './.draggable/PrintFunction/PrintFunction'\r\nimport { KMLUploadTool } from './.draggable/KMLUploadTool/KMLUploadTool';\r\nimport { ReadilyAvailableHouseTool } from './.draggable/ReadilyAvailableHouseTool/ReadilyAvailableHouseTool';\r\nimport { LocateTool } from './.draggable/LocateTool/LocateTool';\r\nimport { TravelDiaryTool } from './.draggable/TravelDiaryTool/TravelDiaryTool';\r\nimport { ThreeDBuildingTool } from './.draggable/ThreeDBuildingTool/ThreeDBuildingTool';\r\nimport { Socioeconomic } from './.draggable/Socioeconomic/Socioeconomic';\r\nimport { TopBar } from './TopBar/TopBar';\r\nimport { BottomBar } from './BottomBar/BottomBar'\r\nimport { MinimizedWindowStatusBar } from './MinimizedWindowStatusBar/MinimizedWindowStatusBar';\r\nimport { LayoutContext } from './../../modules/ContextModules/LayoutContext';\r\nimport { AttributesModal } from './AttributesModal/AttributesModal';\r\nimport { LayerAttrsRnd } from './LayerAttrsRnd/LayerAttrsRnd';\r\n\r\n//Api\r\nimport ApiLayersMap from '../../modules/WebApiModules/ApiLayersMap';\r\n\r\n//樣式\r\nimport './Layout.css'\r\n\r\n//圖片\r\nimport logo1 from './.image/南投縣政府新logo.png'\r\n//import logo2 from './.image/42531_5.png'\r\n\r\nconst townNames = [\"南投市\", \"埔里鎮\", \"草屯鎮\", \"竹山鎮\", \"集集鎮\", \"名間鄉\", \"鹿谷鄉\", \"中寮鄉\", \"魚池鄉\", \"國姓鄉\", \"水里鄉\", \"信義鄉\", \"仁愛鄉\"];\r\n\r\nconst buildingAttrMap = {\r\n \"BUILD_ID\": \"建物編號\", \"BUILDNAME\": \"建物名稱\", \"BUILDTYPE\": \"建物類型\",\r\n \"BUILD_STR\": \"建物結構\", \"M_SOURCE\": \"建物模型產製單位\", \"SOURCE\": \"SOURCE\", \"SOURCE_DES\": \"SOURCE_DES\",\r\n \"MDATE\": \"建物框繪製年月\", \"BUILD_H\": \"建物高度\", \"BUILD_NO\": \"建物樓層數\", \"H_SOURCE\": \"H_SOURCE\",\r\n \"H_EXTRAC\": \"H_EXTRAC\", \"NO_SOURCE\": \"NO_SOURCE\", \"M_MDATE\": \"建物模型產製日期\", \"MODEL_LOD\": \"LOD細緻度等級代碼\",\r\n \"COUNTY\": \"直轄市、縣(市)名稱\", \"MODEL_NAME\": \"模型檔案名稱\", \"CENT_E_97\": \"建物框中心E座標\", \"CENT_N_97\": \"建物框中心N座標\",\r\n \"C_FRAMEID\": \"圖幅框ID\"\r\n};\r\n\r\nexport class Layout extends Component {\r\n // ref = React.createRef();\r\n\r\n constructor(props) {\r\n super(props);\r\n ////// 在 state 中放入修改 state 的方法,並傳入 中\r\n this.state = {\r\n opacityValue:100,\r\n // 自己的屬性\r\n // width: 0,\r\n // height: 0,\r\n // 已選圖層 狀態\r\n selectedLayerContext: {\r\n layers: [],\r\n economicLayerModules: undefined,\r\n updateLayers: this.updateLayers,\r\n addInitLayer: this.addInitLayer,\r\n },\r\n // 視窗 狀態\r\n draggableWindowContext: {\r\n minimizedStatusStack: [],\r\n layersMap: {\r\n name: \"圖資庫\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"layersMap\");\r\n }\r\n },\r\n measureTool: {\r\n name: \"測量工具\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"measureTool\");\r\n }\r\n },\r\n markFunction: {\r\n name: \"標註功能\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"markFunction\");\r\n }\r\n },\r\n printFunction: {\r\n name: \"列印功能\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"printFunction\");\r\n }\r\n },\r\n kmlUploadTool: {\r\n name: \"道路養護\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"kmlUploadTool\");\r\n }\r\n },\r\n readilyAvailableHouseTool: {\r\n name: \"既有成屋\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"readilyAvailableHouseTool\");\r\n }\r\n },\r\n locateTool: {\r\n name: \"定位工具\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"locateTool\");\r\n }\r\n },\r\n travelDiaryTool: {\r\n name: \"旅圖日記\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"travelDiaryTool\");\r\n }\r\n },\r\n threeDBuildingTool: {\r\n name: \"介接功能\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"threeDBuildingTool\");\r\n }\r\n },\r\n socioeconomic: {\r\n name: \"經濟資料\",\r\n isOpened: false,\r\n isMinimized: false,\r\n update: (status) => {\r\n this.updateDraggableWindow(status, \"socioeconomic\");\r\n }\r\n },\r\n },\r\n //既有成屋狀態\r\n readilyAvailableHouseToolContext: {\r\n layer: undefined,\r\n selectedBuildingID: -1,\r\n setID: this.readilyAvailableHouseSetID,\r\n set: this.readilyAvailableHouseSetLayer,\r\n remove: this.readilyAvailableHouseRemoveLayer,\r\n },\r\n // KML 上傳狀態\r\n kmlUploadContext: {\r\n kmlList: [],\r\n push: this.pushKMLItem,\r\n updateList: this.updateKMLList,\r\n toggleOpened: this.toggleKMLOpened,\r\n copyByRef: this.copyByRefKMLInstance,\r\n updateContextList: this.updateKMLContextList,\r\n },\r\n // 屬性視窗 狀態\r\n attributesModalContext: {\r\n isOpened: false,\r\n position: { x: \"10px\", y: \"-25px\" },\r\n content: (<>asjfl;ka\r\n
    jsda;fkjs;
    \r\n
    jsda;fkjs;
    \r\n
    jsda;fkjs;
    \r\n
    jsda;fkjs;
    \r\n
    jsda;fkjs;
    ),\r\n updateContent: this.updateAttributesContent,\r\n },\r\n // 近似化建物 介接狀態\r\n buildingToolContext: {\r\n buildingList: [],\r\n push: this.pushBuildingItem,\r\n remove: this.removeBuildingItem,\r\n setOpacity: this.setBuildingItemOpacity,\r\n },\r\n //經濟工具 狀態\r\n socioeconomicContext: {\r\n layerModule: undefined,\r\n data: [],\r\n labels: [],\r\n height: 200,\r\n selectTown: townNames,\r\n backgroundColorArray: [],\r\n borderColorArray: [],\r\n showChart: false,\r\n update: this.updateSocioeconomicContext,\r\n remove: this.removeSocioeconomicContext\r\n },\r\n travelDiaryToolContext: {\r\n token: \"\",\r\n update: this.updateTravelDiaryToolContext\r\n },\r\n LayerAttrsRndContext: {\r\n attrsMaps: [buildingAttrMap],\r\n layerAttrsRndTitle: \"\",\r\n isShowLayerAttrsRnd: false,\r\n layerAttrsRnd: {},\r\n layerAttrsRndPosition: { x: 0, y: 0 },\r\n update: this.updateLayerAttrsRnd,\r\n }\r\n }\r\n }\r\n\r\n addInitLayer(FolderFullName, Name) {\r\n ApiLayersMap.ListLayerInfo(\r\n { FolderFullName: FolderFullName, Name: Name },\r\n (obj) => {\r\n let result = obj.result;\r\n let addLayer = [];\r\n addLayer.push(result);\r\n this.updateLayers(\r\n {\r\n add: addLayer\r\n });\r\n },\r\n () => {\r\n console.error(`取得${this.layerInfo.FolderFullName}/${this.layerInfo.Name}圖層資訊失敗`)\r\n }\r\n )\r\n }\r\n\r\n ////// 定義修改 state 的方法\r\n /* 更新選取圖層狀態 */updateLayers = (updatingLayers) => {\r\n let updatedLayers = this.state.selectedLayerContext.layers;\r\n // remove\r\n if (updatingLayers.remove && updatingLayers.remove.length > 0) {\r\n updatedLayers = updatedLayers.filter((layer) => {\r\n return updatingLayers.remove.indexOf(layer.Name) < 0;\r\n })\r\n }\r\n // add\r\n if (updatingLayers.add && updatingLayers.add.length > 0) {\r\n updatedLayers = updatedLayers.concat(updatingLayers.add);\r\n }\r\n\r\n this.setState(prevState => ({\r\n // 加入圖層 \r\n selectedLayerContext: {\r\n ...prevState.selectedLayerContext,\r\n layers: updatedLayers\r\n },\r\n }))\r\n }\r\n\r\n /* 更新可拖曳視窗狀態 */updateDraggableWindow = (status, contextKey) => {\r\n let updatedMinimizedStatusStack = this.state.draggableWindowContext.minimizedStatusStack;\r\n let index = updatedMinimizedStatusStack.indexOf(contextKey);\r\n if (status.isOpened) { //開啟視窗\r\n if (index < 0) { //不存在就push \r\n updatedMinimizedStatusStack.push(contextKey);\r\n }\r\n } else { //關閉視窗\r\n if (index >= 0) { //從清單移除 \r\n updatedMinimizedStatusStack.splice(index, 1);\r\n }\r\n }\r\n let newDraggableWindowContext = this.state.draggableWindowContext;\r\n newDraggableWindowContext.minimizedStatusStack = updatedMinimizedStatusStack;\r\n newDraggableWindowContext[contextKey] = {\r\n ...this.state.draggableWindowContext[contextKey],\r\n isOpened: status.isOpened,\r\n isMinimized: status.isMinimized,\r\n }\r\n this.setState({\r\n draggableWindowContext: newDraggableWindowContext\r\n })\r\n\r\n }\r\n\r\n /* 新增KML項目 */pushKMLItem = (kml) => {\r\n // 更新\r\n let newKMLUploadContext = this.state.kmlUploadContext;\r\n newKMLUploadContext.kmlList.push(kml);\r\n this.updateKMLContextList(newKMLUploadContext.kmlList);\r\n }\r\n\r\n /* 更新KML清單 */updateKMLList = (list) => {\r\n let oldList = this.state.kmlUploadContext.kmlList;\r\n let newList = list.map((name) => { return { name: name, isOpened: false } });\r\n for (let i in newList) {\r\n let newOne = newList[i];\r\n for (let j in oldList) {\r\n let oldOne = oldList[j];\r\n if (newOne.name === oldOne.name) {\r\n newOne.isOpened = oldOne.isOpened;\r\n newOne.instance = oldOne.instance;\r\n break;\r\n }\r\n }\r\n }\r\n // 更新\r\n this.updateKMLContextList(newList);\r\n }\r\n /* 切換KML開關 */toggleKMLOpened = (name) => {\r\n let newList = this.state.kmlUploadContext.kmlList;\r\n for (let i in newList) {\r\n let kml = newList[i];\r\n if (kml.name === name) {\r\n kml.isOpened = !kml.isOpened;\r\n break;\r\n }\r\n }\r\n // 更新\r\n let newKMLUploadContext = this.state.kmlUploadContext;\r\n newKMLUploadContext.kmlList = newList;\r\n this.updateKMLContextList(newKMLUploadContext.kmlList);\r\n }\r\n\r\n /* 複製一份kml實體 */copyByRefKMLInstance = (name, instance) => {\r\n let newList = this.state.kmlUploadContext.kmlList;\r\n for (let i in newList) {\r\n let kml = newList[i];\r\n if (kml.name === name) {\r\n kml.instance = instance;\r\n break;\r\n }\r\n }\r\n // 更新\r\n this.updateKMLContextList(newList);\r\n }\r\n\r\n /* 更新kml context*/ updateKMLContextList = (newList) => {\r\n // 更新\r\n let newKMLUploadContext = this.state.kmlUploadContext;\r\n newKMLUploadContext.kmlList = newList;\r\n this.setState({\r\n kmlUploadContext: newKMLUploadContext\r\n });\r\n }\r\n\r\n /* 更新並開啟屬性視窗 */ updateAttributesContent = (param) => {\r\n // 更新\r\n let newAttributesModalContext = this.state.attributesModalContext;\r\n newAttributesModalContext.isOpened = param.isOpened !== false;\r\n newAttributesModalContext.position = param.position || newAttributesModalContext.position;\r\n newAttributesModalContext.content = param.content || newAttributesModalContext.content;\r\n this.setState({\r\n attributesModalContext: newAttributesModalContext\r\n });\r\n }\r\n ////\r\n\r\n /* 新增既有成屋圖層 */readilyAvailableHouseSetLayer = (layer) => {\r\n // 更新\r\n let readilyAvailableHouseToolContext = this.state.readilyAvailableHouseToolContext;\r\n readilyAvailableHouseToolContext.layer = layer\r\n this.setState({\r\n readilyAvailableHouseToolContext: readilyAvailableHouseToolContext\r\n });\r\n }\r\n\r\n /* 移除既有成屋圖層 */readilyAvailableHouseRemoveLayer = () => {\r\n let readilyAvailableHouseToolContext = this.state.readilyAvailableHouseToolContext;\r\n if (!!readilyAvailableHouseToolContext.layer) {\r\n window.gMainMap.TerrainView.removeLayer(readilyAvailableHouseToolContext.layer);\r\n readilyAvailableHouseToolContext.layer = undefined;\r\n readilyAvailableHouseToolContext.selectedBuildingID = -1;\r\n }\r\n this.setState({\r\n readilyAvailableHouseToolContext: readilyAvailableHouseToolContext\r\n });\r\n }\r\n\r\n /*設定點擊建物ID*/\r\n readilyAvailableHouseSetID = (id) => {\r\n let readilyAvailableHouseToolContext = this.state.readilyAvailableHouseToolContext;\r\n readilyAvailableHouseToolContext.selectedBuildingID = id;\r\n this.setState({\r\n readilyAvailableHouseToolContext: readilyAvailableHouseToolContext\r\n });\r\n }\r\n\r\n /* 新增近似化建物項目 */pushBuildingItem = (building) => {\r\n // 更新\r\n let newBuildingToolContext = this.state.buildingToolContext;\r\n newBuildingToolContext.buildingList.push(building);\r\n this.setState({\r\n buildingToolContext: newBuildingToolContext\r\n });\r\n }\r\n\r\n /* 移除近似化建物項目 */removeBuildingItem = (index) => {\r\n let newBuildingToolContext = this.state.buildingToolContext;\r\n let item = newBuildingToolContext.buildingList[index];\r\n\r\n window.gMainMap.TerrainView.removeLayer(item.layer);\r\n newBuildingToolContext.buildingList.splice(index, 1);\r\n this.setState({\r\n buildingToolContext: newBuildingToolContext\r\n });\r\n }\r\n\r\n /* 變更近似化建物項目透明度 */setBuildingItemOpacity = (index, value) => {\r\n // 更新\r\n let newBuildingToolContext = this.state.buildingToolContext;\r\n let item = newBuildingToolContext.buildingList[index];\r\n item.opacity = value;\r\n item.layer.setOpacity(value);\r\n this.setState({\r\n buildingToolContext: newBuildingToolContext\r\n });\r\n }\r\n\r\n /* 變更經濟工具資料 */updateSocioeconomicContext = (param) => {\r\n // 更新\r\n let newSocioeconomicContext = this.state.socioeconomicContext;\r\n\r\n if (param.isEmptyModule) {\r\n newSocioeconomicContext.layerModule = undefined;\r\n }\r\n else {\r\n newSocioeconomicContext.layerModule = param.layerModule || newSocioeconomicContext.layerModule;\r\n }\r\n newSocioeconomicContext.selectTown = param.selectTown || newSocioeconomicContext.selectTown;\r\n newSocioeconomicContext.showChart = param.showChart || newSocioeconomicContext.showChart;\r\n newSocioeconomicContext.labels = param.labels || newSocioeconomicContext.labels;\r\n newSocioeconomicContext.data = param.data || newSocioeconomicContext.data;\r\n newSocioeconomicContext.height = param.height || newSocioeconomicContext.height;\r\n newSocioeconomicContext.borderColorArray = param.borderColorArray || newSocioeconomicContext.borderColorArray;\r\n newSocioeconomicContext.backgroundColorArray = param.backgroundColorArray || newSocioeconomicContext.backgroundColorArray;\r\n this.setState({\r\n socioeconomicContext: newSocioeconomicContext\r\n });\r\n }\r\n\r\n /* 移除經濟工具資料 */removeSocioeconomicContext = () => {\r\n // 移除\r\n let newSocioeconomicContext = this.state.socioeconomicContext;\r\n\r\n newSocioeconomicContext.showChart = false;\r\n newSocioeconomicContext.selectTown = [\"南投市\", \"埔里鎮\", \"草屯鎮\", \"竹山鎮\", \"集集鎮\", \"名間鄉\", \"鹿谷鄉\", \"中寮鄉\", \"魚池鄉\", \"國姓鄉\", \"水里鄉\", \"信義鄉\", \"仁愛鄉\"];\r\n newSocioeconomicContext.labels = [];\r\n newSocioeconomicContext.data = [];\r\n newSocioeconomicContext.borderColorArray = [];\r\n newSocioeconomicContext.backgroundColorArray = [];\r\n newSocioeconomicContext.height = 200;\r\n this.setState({\r\n socioeconomicContext: newSocioeconomicContext\r\n });\r\n }\r\n\r\n /**變更旅行日記資料 */updateTravelDiaryToolContext = (param) => {\r\n // 更新\r\n let newTravelDiaryToolContext = this.state.travelDiaryToolContext;\r\n\r\n newTravelDiaryToolContext.token = param.token || newTravelDiaryToolContext.token;\r\n\r\n this.setState({\r\n travelDiaryToolContext: newTravelDiaryToolContext\r\n });\r\n }\r\n\r\n /**變更屬性視窗 */updateLayerAttrsRnd = (param) => {\r\n let newLayerAttrsRndContext = this.state.LayerAttrsRndContext;\r\n\r\n newLayerAttrsRndContext.layerModule = param.layerModule || newLayerAttrsRndContext.layerModule;\r\n newLayerAttrsRndContext.layerAttrsRndTitle = param.layerAttrsRndTitle || newLayerAttrsRndContext.layerAttrsRndTitle;\r\n newLayerAttrsRndContext.isShowLayerAttrsRnd = param.isShowLayerAttrsRnd !== undefined ? param.isShowLayerAttrsRnd : newLayerAttrsRndContext.isShowLayerAttrsRnd;\r\n newLayerAttrsRndContext.layerAttrsRnd = param.layerAttrsRnd || newLayerAttrsRndContext.layerAttrsRnd;\r\n newLayerAttrsRndContext.layerAttrsRndPosition = param.layerAttrsRndPosition || newLayerAttrsRndContext.layerAttrsRndPosition;\r\n this.setState({\r\n LayerAttrsRndContext: newLayerAttrsRndContext\r\n });\r\n }\r\n\r\n async Async_WaitMapInit() {\r\n if (window.gMainMap.IsReady) {\r\n return;\r\n }\r\n function Wait(time) {\r\n return new Promise((rs) => { setTimeout(rs, time ?? 100) })\r\n }\r\n while (!window.gMainMap.IsReady) {\r\n await Wait();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.Async_WaitMapInit().then(() => {\r\n this.addInitLayer(\"/底圖\", \"正射影像\");\r\n this.addInitLayer(\"/三維圖資\", \"南投市近似化建物\");\r\n\r\n this.mapClickResetEvent = () => {\r\n if (this.state.LayerAttrsRndContext.isShowLayerAttrsRnd === true) {\r\n this.state.LayerAttrsRndContext.update({ isShowLayerAttrsRnd: false });\r\n }\r\n };\r\n\r\n let updateOpacity = () => {\r\n this.seeOpacity();\r\n };\r\n this.updateOpacityIntervalId = setInterval(updateOpacity, 1000);\r\n\r\n window.gMainMap.TerrainView.addEventListener(\"MouseDown\", this.mapClickResetEvent.bind(this));\r\n });\r\n\r\n // const { current } = this.ref;\r\n // this.setState({\r\n // width: current.offsetWidth,\r\n // height: current.offsetHeight\r\n // })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    { window.gMainMap.Close(); this.props.changePage(1); }}>\r\n \"圖台_標誌\"\r\n {/*\"圖台_標誌2\"*/}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n { //圖資庫移動視窗\r\n this.handleDraggableWindowDisplay(\"layersMap\") ?\r\n { this.handleDraggableWindowMinimize(\"layersMap\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"layersMap\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"layersMap\")} />\r\n : null\r\n }\r\n { //測量工具移動視窗\r\n this.handleDraggableWindowDisplay(\"measureTool\") ?\r\n { this.handleDraggableWindowMinimize(\"measureTool\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"measureTool\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"measureTool\")} />\r\n : null\r\n }\r\n { //標註功能移動視窗\r\n this.handleDraggableWindowDisplay(\"markFunction\") ?\r\n { this.handleDraggableWindowMinimize(\"markFunction\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"markFunction\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"markFunction\")} />\r\n : null\r\n }\r\n { //列印功能移動視窗\r\n this.handleDraggableWindowDisplay(\"printFunction\") ?\r\n { this.handleDraggableWindowMinimize(\"printFunction\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"printFunction\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"printFunction\")} />\r\n : null\r\n }\r\n { //kml上傳功能移動視窗\r\n this.handleDraggableWindowDisplay(\"kmlUploadTool\") ?\r\n { this.handleDraggableWindowMinimize(\"kmlUploadTool\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"kmlUploadTool\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"kmlUploadTool\")} />\r\n : null\r\n }\r\n { //既有成屋功能移動視窗\r\n this.handleDraggableWindowDisplay(\"readilyAvailableHouseTool\") ?\r\n { this.handleDraggableWindowMinimize(\"readilyAvailableHouseTool\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"readilyAvailableHouseTool\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"readilyAvailableHouseTool\")} />\r\n : null\r\n }\r\n { //定位功能移動視窗\r\n this.handleDraggableWindowDisplay(\"locateTool\") ?\r\n { this.handleDraggableWindowMinimize(\"locateTool\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"locateTool\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"locateTool\")} />\r\n : null\r\n }\r\n { //旅行日記功能移動視窗\r\n this.handleDraggableWindowDisplay(\"travelDiaryTool\") ?\r\n { this.handleDraggableWindowMinimize(\"travelDiaryTool\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"travelDiaryTool\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"travelDiaryTool\")} />\r\n : null\r\n }\r\n { //介接3D模型功能移動視窗\r\n this.handleDraggableWindowDisplay(\"threeDBuildingTool\") ?\r\n { this.handleDraggableWindowMinimize(\"threeDBuildingTool\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"threeDBuildingTool\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"threeDBuildingTool\")} />\r\n : null\r\n }\r\n { //社會經濟資料功能移動視窗\r\n this.handleDraggableWindowDisplay(\"socioeconomic\") ?\r\n { this.handleDraggableWindowMinimize(\"socioeconomic\"); }}\r\n handleCancel={() => { this.handleDraggableWindowCancel(\"socioeconomic\"); }}\r\n isShow={!this.isDraggableWindowMinimize(\"socioeconomic\")} />\r\n : null\r\n }\r\n {\r\n this.handleAttributesModalDisplay() ?\r\n \r\n : null\r\n }\r\n \r\n
    \r\n this.opacityOnChange(e)}\r\n style={{ backgroundSize: `${3 + this.state.opacityValue * 0.94}% 100%` }}>\r\n 不透明度:{this.state.opacityValue}%\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n opacityOnChange(e) {\r\n this.setState({ opacityValue: e.target.value });\r\n window.gMainMap.TerrainView.terrainAlpha = parseFloat(e.target.value) / 100.0;\r\n }\r\n\r\n seeOpacity() {\r\n let opacity = window.gMainMap.TerrainView.terrainAlpha;\r\n if (opacity * 100 !== this.state.opacityValue) {\r\n this.setState({ opacityValue: parseInt(opacity * 100) });\r\n let opacityInput = document.getElementById(\"opacityInputTerrain\");\r\n opacityInput.value = opacity * 100;\r\n }\r\n }\r\n\r\n handleDraggableWindowDisplay = (key) => {\r\n let state = this.state.draggableWindowContext[key];\r\n return state.isOpened;\r\n }\r\n\r\n isDraggableWindowMinimize = (key) => {\r\n let state = this.state.draggableWindowContext[key];\r\n return state.isMinimized;\r\n }\r\n\r\n handleDraggableWindowMinimize = (key) => {\r\n this.state\r\n .draggableWindowContext[key]\r\n .update({\r\n isOpened: true,\r\n isMinimized: true\r\n });\r\n }\r\n\r\n handleDraggableWindowCancel = (key) => {\r\n console.log(\"關閉\");\r\n this.state\r\n .draggableWindowContext[key]\r\n .update({\r\n isOpened: false,\r\n });\r\n }\r\n\r\n handleAttributesModalDisplay = () => {\r\n return this.state\r\n .attributesModalContext\r\n .isOpened;\r\n }\r\n\r\n handleAttributesModalContent = () => {\r\n return this.state\r\n .attributesModalContext\r\n .content;\r\n }\r\n\r\n handleAttributesModalPosition = () => {\r\n return this.state\r\n .attributesModalContext\r\n .position;\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Home } from './Home/Home';\r\nimport { Layout } from './Map/Layout';\r\n\r\nexport class System extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n page: 1,\r\n };\r\n this.changePage = this.changePage.bind(this);\r\n }\r\n\r\n changePage(page) {\r\n this.setState({ page: page });\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {\r\n this.state.page === 1 ? :\r\n this.state.page === 2 ? : null\r\n }\r\n
    \r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Route } from 'react-router';\r\n//import { Layout } from './components/Layout';\r\n//import { Home } from './components/Home';\r\n//import { FetchData } from './components/FetchData';\r\n//import { Counter } from './components/Counter';\r\n// import { Layout } from './components/Map/Layout';\r\nimport { System } from './components/System';\r\n\r\nimport './custom.css'\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n\r\n render () {\r\n return ( \r\n
    \r\n \r\n {/* */}\r\n {/**/}\r\n {/**/}\r\n {/**/}\r\n {/**/}\r\n
    \r\n );\r\n }\r\n}","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport { unregister } from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nunregister();\r\n//registerServiceWorker()"],"sourceRoot":""}