{"version":3,"sources":["webpack:///static/js/app.12222c3d26dfd06665ef.js","webpack:///./src/pages/kort.vue","webpack:///./src/pages/projekt.vue","webpack:///./src/pages/projekter.vue","webpack:///./src/pages/velkommen.vue","webpack:///./src/pages/kort.vue?2a32","webpack:///./src/App.vue?b87a","webpack:///./src/pages/velkommen.vue?2b19","webpack:///./src/pages/init.vue?6292","webpack:///./src/components/MapComponent.vue?b9a4","webpack:///./src/components/helpmodal.vue?3aac","webpack:///./src/pages/projekter.vue?fcb0","webpack:///./src/components/FormUpload.vue?efdf","webpack:///./src/components/modal.vue?94de","webpack:///./src/pages/default.vue?8266","webpack:///./src/pages/projekt.vue?aa6e","webpack:///./src/assets/image/logo.png","webpack:///./src/router/index.js","webpack:///./src/store/store.js","webpack:///./~/leaflet/dist/images/marker-icon-2x.png","webpack:///./~/leaflet/dist/images/marker-icon.png","webpack:///./~/leaflet/dist/images/marker-shadow.png","webpack:///./src/App.vue?35a7","webpack:///./src/js/Sync/dal.js","webpack:///App.vue","webpack:///FormUpload.vue","webpack:///MapComponent.vue","webpack:///helpmodal.vue","webpack:///modal.vue","webpack:///default.vue","webpack:///init.vue","webpack:///kort.vue","webpack:///projekt.vue","webpack:///projekter.vue","webpack:///velkommen.vue","webpack:///./src/js/Sync/config.js","webpack:///./src/js/proj4js.js","webpack:///./src/main.js","webpack:///./src/mixins/FormUploadHandler.js","webpack:///./src/js/Sync/clearQueue.js","webpack:///./~/moment/locale ^\\.\\/.*$","webpack:///./~/ts-custom-error/dist/custom-error.mjs","webpack:///./src/assets/image/black-circle.svg","webpack:///./src/assets/image/green-circle.svg","webpack:///./src/assets/image/image.png","webpack:///./src/assets/image/invoice.png","webpack:///./src/assets/image/lyngbyTaarbæk-logo.png","webpack:///./src/assets/image/niraslogo.svg","webpack:///./src/assets/image/novafos.jpg","webpack:///./src/assets/image/red-circle.svg","webpack:///./src/assets/image/tårnbyForsyning-logo.png","webpack:///./src/assets/image/vandOgAffald-logo.png","webpack:///./src/components/FormUpload.vue","webpack:///./src/components/MapComponent.vue?a849","webpack:///./src/components/helpmodal.vue","webpack:///./src/components/modal.vue?1bc2","webpack:///./src/pages/default.vue","webpack:///./src/pages/init.vue"],"names":["webpackJsonp","1000","module","exports","__webpack_require__","Component","1001","1002","1003","injectStyle","ssrContext","1004","render","_vm","this","_h","$createElement","_c","_self","staticClass","staticStyle","on","$event","goBack","attrs","_v","selectedDate","undefined","_s","_f","today","staticRenderFns","1005","directives","name","rawName","value","expression","closeMenu","_m","activeStep","totalSteps","errorMessage","length","_e","showMenu","notification","gotoMap","gotoProjects","syncData","gotoAbout","showModal","version","date","image","1006","closeError","getServerData","1007","domProps","target","composing","key","validateKey","downloading","$$selectedVal","Array","prototype","filter","call","options","o","selected","map","_value","multiple","_l","option","navn","class","disabled","empty","chooseUser","gotoStep1","gotoStep2","message","active","step1","step2","step3","1008","zoom","center","url","attribution","item","coordinates","icon","popup","tooltip","1009","closeModal","_t","clearAll","1010","getSelectedDate","model","state","callback","$$v","$set","showUsers","selectedUser","user","id","selectUser","filteredResult","createNew","project","index","gotoProject","classObject","bookingTypeNavn","adresse","etage","doer","vejnavn","husnummer","postnummer","by","fratid","tiltid","bemaerkning","projectView","1011","dataSourceFull","style","dataSource","upload","removeUpload","1012","cancelCamera","finalResult","stopCamera","1013","1014","show","maalerType","maalernummer","data","tidligerestand","Math","floor","beregnForventetForbrugForDato","aflaesningsdato","aarsforbrug","childClicked","scanClick","timetype","saveInfo","kunde","email","mobil","note","noteselect","notetype","gotUpload","webcam","ref","selectedCameraId","getAvailableCameras","camera","deviceId","label","capture_screenshot","toggleCamera","text","mongoid","doremoveUpload","goToBooking","goToCustomer","goToNotes","goToImages","deviation","maxDeviation","closeAlert","1045","234","238","494","__webpack_exports__","Vue","use","Router","routes","path","component","Default","Init","params","Welcome","Projects","Project","Maps","495","Vuex","store","Store","getters","mutations","updateNotification","payload","actions","commit","localStorage","setItem","498","499","505","506","507","509","52","mongoObjectId","Date","getTime","toString","replace","random","toLowerCase","framework","createStore","localforage","createInstance","driver","INDEXEDDB","getItem","clearStore","clear","iterate","removeItem","keys","SIOdal","storeNames","stores","dal","storeName","getStores","deleteStore","getStoreLength","getStoreKeys","clearAllStores","promises","push","clearQueue","deleteAllStores","cloneItem","storeNameFrom","storeNameTo","then","result","moveItem","init","forEach","SIOdefaults","window","551","Object","defineProperty","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default","n","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default","__WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker__","__WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker___default","__WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__","__WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__","__WEBPACK_IMPORTED_MODULE_5_zangodb__","__WEBPACK_IMPORTED_MODULE_6__components_helpmodal_vue__","__WEBPACK_IMPORTED_MODULE_6__components_helpmodal_vue___default","__WEBPACK_IMPORTED_MODULE_7__assets_image_novafos_jpg__","__WEBPACK_IMPORTED_MODULE_7__assets_image_novafos_jpg___default","__WEBPACK_IMPORTED_MODULE_8__assets_image_lyngbyTaarb_k_logo_png__","__WEBPACK_IMPORTED_MODULE_8__assets_image_lyngbyTaarb_k_logo_png___default","__WEBPACK_IMPORTED_MODULE_9__assets_image_t_rnbyForsyning_logo_png__","__WEBPACK_IMPORTED_MODULE_9__assets_image_t_rnbyForsyning_logo_png___default","__WEBPACK_IMPORTED_MODULE_10__assets_image_vandOgAffald_logo_png__","__WEBPACK_IMPORTED_MODULE_10__assets_image_vandOgAffald_logo_png___default","components","Datepicker","syncOverlay","overlay","reloadProjekter","computed","get","$store","set","dispatch","methods","showHelpModal","$router","gotoSettings","_this","tempdata","tempimages","idArr","JSON","parse","$cookie","navigator","onLine","console","log","resolve","tempdataPromises","i","$http","post","reject","Error","err","response","body","parseInt","tempimagePromises","imageToUpload","bookingId","projectId","base64Data","base64","filnavn","fileName","error","setTimeout","logout","mounted","$","document","foundation","firmanavn","logoUrl","$route","552","__WEBPACK_IMPORTED_MODULE_2__assets_image_image_png__","__WEBPACK_IMPORTED_MODULE_2__assets_image_image_png___default","props","images","thumb","dataView","DataView","blob","Blob","type","URL","createObjectURL","dataViewFull","blobFull","revokeObjectURL","$emit","beforeDestroy","553","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_defineProperty__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_defineProperty___default","__WEBPACK_IMPORTED_MODULE_4_vue2_leaflet__","__WEBPACK_IMPORTED_MODULE_4_vue2_leaflet___default","__WEBPACK_IMPORTED_MODULE_5_leaflet_dist_leaflet_css__","__WEBPACK_IMPORTED_MODULE_6__js_Sync_dal__","__WEBPACK_IMPORTED_MODULE_7_proj4_dist_proj4_src__","__WEBPACK_IMPORTED_MODULE_8__js_proj4js__","__WEBPACK_IMPORTED_MODULE_9__assets_image_green_circle_svg__","__WEBPACK_IMPORTED_MODULE_9__assets_image_green_circle_svg___default","__WEBPACK_IMPORTED_MODULE_10__assets_image_red_circle_svg__","__WEBPACK_IMPORTED_MODULE_10__assets_image_red_circle_svg___default","__WEBPACK_IMPORTED_MODULE_11__assets_image_black_circle_svg__","__WEBPACK_IMPORTED_MODULE_11__assets_image_black_circle_svg___default","markers","centerObj","unfinishedObj","minX","maxX","minY","maxY","doneLoading","generateGoogleMapsLink","geolocation","getCurrentPosition","open","554","__WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__","555","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_map__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_map___default","__WEBPACK_IMPORTED_MODULE_1_webrtc_adapter__","__WEBPACK_IMPORTED_MODULE_2__zxing_library__","lastResult","codeReader","e","preventDefault","reset","watch","oldVal","val","created","listVideoInputDevices","556","msg","hide","557","__WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__","__WEBPACK_IMPORTED_MODULE_3__js_Sync_clearQueue__","__WEBPACK_IMPORTED_MODULE_4_zangodb__","validated","showLoader","serviceUrl","serviceVersion","expires","promiseArray","bookinger","booking","558","__WEBPACK_IMPORTED_MODULE_0_vuejs_datepicker__","__WEBPACK_IMPORTED_MODULE_0_vuejs_datepicker___default","__WEBPACK_IMPORTED_MODULE_1__components_MapComponent_vue__","__WEBPACK_IMPORTED_MODULE_1__components_MapComponent_vue___default","mapcomponent","filters","moment","format","go","559","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default","__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__","__WEBPACK_IMPORTED_MODULE_2__components_FormUpload__","__WEBPACK_IMPORTED_MODULE_2__components_FormUpload___default","__WEBPACK_IMPORTED_MODULE_3__mixins_FormUploadHandler__","__WEBPACK_IMPORTED_MODULE_4__components_modal__","__WEBPACK_IMPORTED_MODULE_4__components_modal___default","__WEBPACK_IMPORTED_MODULE_5_vue_web_cam__","560","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default","projects","users","showUserList","reloadData","getTasksFromIDB","maalerStand","delete","tasks","sort","a","b","sortByUser","montoerId","shorten","substring","561","__WEBPACK_IMPORTED_MODULE_2__js_Sync_clearQueue__","__WEBPACK_IMPORTED_MODULE_3_zangodb__","562","563","phi4z","eccent","e0","e1","e2","e3","c","phi","sinphi","sin2ph","tanphi","ml","mlp","con1","con2","con3","dphi","sin","tan","sqrt","cos","abs","Proj4js","reportError","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default","defaultDatum","transform","source","dest","point","readyToUse","srsCode","datum","datum_type","common","PJD_3PARAM","PJD_7PARAM","datumCode","wgs84","WGS84","axis","adjust_axis","projName","x","D2R","y","to_meter","inverse","from_greenwich","datum_transform","R2D","forward","compare_datums","PJD_NODATUM","es","geodetic_to_geocentric","geocentric_to_wgs84","geocentric_from_wgs84","geocentric_to_geodetic","crs","denorm","v","t","xin","yin","zin","z","alert","extend","destination","property","Class","parent","initialize","apply","arguments","extended","bind","func","object","args","slice","newArgs","concat","scriptName","defsLookupService","libPath","getScriptLocation","scriptNameLen","scripts","getElementsByTagName","src","getAttribute","lastIndexOf","loadScript","onload","onfail","loadCheck","script","createElement","defer","onerror","test","userAgent","onreadystatechange","checkReadyState","appendChild","readyState","Proj","title","units","x0","y0","localCS","queue","srsCodeInput","indexOf","parseWKT","deriveConstants","loadProjCode","urn","split","match","toUpperCase","srsAuth","srsProjNumber","loadProjDefinition","defs","defsLoaded","loadFromService","checkDefsLoaded","defsFailed","parseDefs","initTransforms","loadProjCodeSuccess","loadProjCodeFailure","checkCodeLoaded","dependsOn","shift","wktRE","wkt","wktMatch","wktName","wktObject","wktContent","wktTemp","wktArray","bkCount","obj","token","j","charAt","geocsCode","wktProjections","datumName","ellps","parseFloat","rf","unitsPerMeter","k0","long0","lat0","datum_params","substr","defData","paramName","paramVal","paramArray","prop","nagrids","lat1","lat2","lat_ts","alpha","longc","R_A","zone","utmSouth","PrimeMeridian","legalAxis","datumDef","Datum","towgs84","ellipse","Ellipsoid","EPSLN","sphere","a2","b2","SIXTH","RA4","RA6","ep2","longlat","pt","identity","PI","HALF_PI","TWO_PI","FORTPI","SEC_TO_RAD","MAX_ITER","COS_67P5","AD_C","PJD_UNKNOWN","PJD_GRIDSHIFT","PJD_WGS84","SRS_WGS84_SEMIMAJOR","RV4","RV6","msfnz","cosphi","con","tsfnz","com","pow","phi2z","ts","eccnth","atan","qsfnz","asinz","asin","e0fn","e1fn","e2fn","e3fn","mlfn","srat","esinp","exp","sign","adjust_lon","adjust_lat","latiso","Number","NaN","POSITIVE_INFINITY","fL","L","invlatiso","Iphi","sinh","r","cosh","tanh","asinh","acosh","atanh","gN","temp","pj_enfn","en","C00","C02","C04","C06","C08","C22","C44","C46","C48","C66","C68","C88","pj_mlfn","sphi","cphi","pj_inv_mlfn","arg","k","s","proj","p","X","Y","Z","Rn","Sin_Lat","Sin2_Lat","Cos_Lat","Longitude","Latitude","Height","P","RR","CT","ST","RX","RK","RN","CPHI0","SPHI0","CPHI","SPHI","SDPHI","iter","atan2","genau","geocentric_to_geodetic_noniter","W","W2","T0","T1","S0","S1","Sin_B0","Sin3_B0","Cos_B0","Sin_p1","Cos_p1","Sum","At_Pole","Dx_BF","Dy_BF","Dz_BF","Rx_BF","Ry_BF","Rz_BF","M_BF","x_out","y_out","z_out","x_tmp","y_tmp","z_tmp","Point","coords","clone","toShortString","ellipseName","nadgrids","aea","sin_po","cos_po","t1","ms1","qs1","t2","ms2","qs2","t3","qs0","ns0","rh","lon","lat","sin_phi","cos_phi","qs","rh1","theta","phi1z","eccnts","sterea","rc","sinc0","phic0","cosc0","R2","sinc","cosc","cosl","rho","poly","ml0","ms","al","iflg","equi","dlon","merc","utm","eqdc","mode","ml1","ml2","ns","g","phi3z","tmerc","delta_lon","acos","als","tq","delta_phi","f","h","tan_phi","cs","d","ds","gstmerc","lc","rs","sinz","pc","sinzpc","cp","n2","xs","ys","Ls","Ls1","LC","ortho","def","sin_p14","cos_p14","coslon","ksp","cosz","krovak","s45","s90","fi0","alfa","uq","u0","k1","n0","s0","ro0","ad","gfi","u","deltav","eps","ro","czech","fi1","ok","tmp","somerc","phy0","lambda0","sinPhy0","semiMajorAxis","invF","flattening","R","b0","K","Sa1","Sa2","S","I","rotI","rotB","lambda","phy","prevPhy","iteration","stere","ssfn_","phit","eccen","TOL","NITER","CONV","S_POLE","N_POLE","OBLIQ","EQUIT","phits","akm1","sinX1","cosX1","sinph0","cosph0","coslam","sinlam","sinX","cosX","Xt","A","tp","phi_l","halfe","pi2","phi0","nzmg","iterations","B_re","B_im","C_re","C_im","D","delta_lat","d_phi","d_lambda","d_phi_n","d_psi","th_n_re1","th_n_im1","th_re","th_im","th_n_re","th_n_im","z_re","z_im","z_n_re1","z_n_im1","delta_x","delta_y","z_n_re","z_n_im","num_re","num_im","den_re","den_im","den2","d_psi_n","mill","gnom","infinity_dist","sinu","m","C_y","C_x","V","vandg","asq","sinth","costh","gsq","msq","xx","yy","xys","c1","c2","c3","a1","m1","th1","cea","eqc","dlat","cass","m0","C1","C2","C3","C4","C5","lam","tn","dd","ph1","d2","gauss","C","ratexp","num","omerc","lon1","lon2","sin_p20","cos_p20","bl","el","gama","singam","cosgam","sinaz","cosaz","at1","ts1","ts2","l","gam","q","us","vl","ul","vs","lcc","sin1","cos1","sin2","cos2","ts0","f0","laea","qp","mmf","apa","authset","rq","xmf","ymf","sinb1","cosb1","sinb","cosb","cCe","sCe","ab","authlat","P00","P01","P02","P10","P11","P20","APA","beta","aeqd","sin_p12","cos_p12","moll","delta_theta","564","Es6Promise","polyfill","Icon","_getIconUrl","mergeOptions","iconRetinaUrl","require","iconUrl","shadowUrl","proj4","proj4x","jQuery","MotionUI","VueCookie","vueResource","http","interceptors","request","next","credentials","headers","btoa","xhr","withCredentials","emulateJSON","emulateHTTP","crossOrigin","config","productionTip","router","template","App","locale","565","getOrientedImage","formUploadHandler","uploadId","localImages","DAL","process","arrayB","dv","ArrayBuffer","offset","recess","pieces","getUint16","app1","byteLength","newPieces","event","file","res","fullres","fullimg","files","reader","FileReader","theFile","customerId","imageId","numberInIndexedDB","iterationNumber","customer","canvas","toBlob","orientedImageBlob","fileReader","arrayBf","readAsArrayBuffer","orientedImageArrayBuffer","createThumbnail","readerFull","readAsDataURL","Uint8Array","onloadend","base64data","imageObj","uploadObj","toISOString","gotScreenshot","base64Image","dataURLtoFile","dataurl","filename","arr","mime","bstr","atob","u8arr","charCodeAt","File","width","quality","fullImageBlob","ctx","getContext","img","Image","ratio","newHeight","height","drawImage","fr","887","888","889","89","reduce","prev","cur","890","891","892","893","915","webpackContext","req","webpackContextResolve","979","fixProto","setPrototypeOf","__proto__","fixStack","fn","constructor","captureStackTrace","customErrorFactory","CustomError","arguments$1","_i","__spreadArrays","enumerable","configurable","defineProperties","create","writable","__extends","extendStatics","hasOwnProperty","__","_super","_newTarget","il","jl","984","985","986","987","988","989","990","991","992","993","994","995","996","997","998","999"],"mappings":"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G,E0BvpFvH,YACIxV,KAAM,eACN+P,YACI,QAAS,EAAjB,MACQ,cAAe,EAAvB,YACQ,UAAW,EAAnB,QACQ,WAAY,EAApB,SACQ,YAAa,EAArB,WAEI5I,KATJ,WASA,KACQ,QACI1D,KAAM,GACNC,QAAS,UAAW,UACpBC,IAAK,qCACLC,YAAa,sEACb8R,WACAC,aACAC,iBACAxT,SAAZ,+FACYyT,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,aAAa,IAGrBxF,SACI,KADR,WACA,oKACA,kBACA,KACA,KACA,oCAEA,2CACA,uBACA,yCAEA,+BACA,iCACA,cAEA,CACA,yCAEA,gBACA,cAlBA,kBAyBA,CAzBA,cA2BA,yCACA,0CACA,IAEA,wBAEA,EADA,qDACA,oBAEA,oCAGA,gBACA,QACA,IACA,uBACA,cACA,QAIA,IACA,UACA,SAjDA,mBAwDA,CAxDA,SAyDA,0BAzDA,UAoEA,gCAGA,uBACA,8CAGA,YACA,OAEA,6BACA,iCACA,yHACA,kCAEA,0BACA,0BACA,KAEA,yEACA,4IAEA,6BACA,4BACA,qBAEA,qBAEA,uDACA,sEACA,sEAGA,yBAEA,mEAGA,yBAEA,8CACA,YACA,uGACA,YACA,sCACA,YACA,qEAGA,cACA,wEACA,YACA,YACA,iBACA,yBAEA,iDACA,YACA,YACA,iBACA,yBAEA,gBACA,YACA,YACA,iBACA,yBAGA,YACA,YACA,iBACA,0BAKA,gBAEA,QACA,8BACA,QACA,qBACA,UACA,UACA,SACA,UACA,8BACA,kCACA,oCACA,0BACA,0BACA,UAKA,gBACA,6CACA,WAEA,YAEA,oDACA,wDACA,uFACA,yEAEA,6CACA,mCAIA,oBAIA,sCAGA,sDACA,yBACA,yBACA,2CACA,mBAEA,qBACA,sBACA,2CACA,4BAEA,2CACA,4BAEA,2CACA,4BAEA,2CACA,0BAIA,4BACA,2BACA,QAEA,QACA,6CACA,WACA,WAEA,wBAGA,6BAIA,2CACA,6BAnOA,gRA+OQyF,uBAhPR,SAgPA,GAWY9E,UAAU+E,YAAYC,mBAAmB,SAArD,GACgB,GAAhB,uIACgB7H,QAAO8H,KAAK1S,EAAK,cA4P7BmP,QAnhBJ,WAqhBQC,EAAEC,UAAUC,aACZF,EAAE,UAAU/L,QAUhB,QAhiBJ,WAgiBA,qIAEA,QAFA,QAQA,iBARA,gDAUA,mCACA,gBAXA,0D1ByvFMsP,IACA,SAAUtY,EAAQ4L,EAAqB1L,GAE7C,YACAuQ,QAAOC,eAAe9E,EAAqB,cAAgB1J,OAAO,GAC7C,IAAIqW,GAA6CrY,EAAoB,G2BrxG1F,YACI8B,KAAM,YACNmH,KAFJ,WAGQ,OACI+I,SAAS,IAGjBO,SACItM,WADR,WAEYvF,KAAKyV,MAAM,UAEfhQ,SAJR,WAIA,UACYzF,MAAKsR,SAAU,EACf0C,WAAW,WACP,IAAhB,iDACgB,IAAhB,8CACgB,IAAhB,mDACgB,IAAhB,6CACgB,IAAhB,0CACgB,IAAhB,8CACgB,IAAhB,0CACgB,IAAhB,6CACgB,IAAhB,+CAEgB,EAAhB,6BACgB,EAAhB,sBACgB,EAAhB,uBACgB,EAAhB,0BAEgB,EAAhB,WACgB,EAAhB,eAEgB,EAAhB,cACoB5S,KAAM,aAE1B,S3B41GMwW,IACA,SAAUxY,EAAQ4L,EAAqB1L,GAE7C,YACAuQ,QAAOC,eAAe9E,EAAqB,cAAgB1J,OAAO,GAC7C,IAAIuW,GAA0DvY,EAAoB,KAC9EwY,EAAkExY,EAAoB2Q,EAAE4H,GACxFE,EAA+CzY,EAAoB,KAEnE0Y,GADuD1Y,EAAoB2Q,EAAE8H,GAC9BzY,EAAoB,KACZA,GAAoB2Q,EAAE+H,E4B74GtG,YACI5W,KAAM,QACNmH,KAFJ,WAGQ,OACI0P,WAAY,KACZjQ,YAAa,GACbkQ,WAAY,OAGpBrG,SACI5J,WADR,SACA,GACYkQ,EAAEC,iBACFpY,KAAKkY,WAAWG,QAChBrY,KAAKyV,MAAM,QAASzV,KAAKgI,aAAa,IAE1CD,aANR,SAMA,GACYoQ,EAAEC,iBACFpY,KAAKkY,WAAWG,QAChBrY,KAAKyV,MAAM,QAAS,MAAM,KAGlC6C,OACItQ,YADR,SACA,KACgBuQ,GAAUC,IACV9F,QAAQC,IAAI,SAAU4F,GACtB7F,QAAQC,IAAI,MAAO6F,MAI/BC,QA7BJ,aA8BIvE,QA9BJ,WA+BQ,IACI,GAAIjC,GAAQjS,IACZmU,GAAEC,UAAUC,cAExB,SACkB1C,IAAI,EAAtB,6BAEY,IACZ,6BACYM,GAAMiG,WAAaA,EAEnBA,EAAWQ,wBACvB,iBACgB,GAAhB,iBACA,IACwB,EAAxB,yBAGgB,GAAhB,0BACA,GAZA,QAYA,KAGA,SACYhG,QAAQC,IAAIwF,EAAE5T,SACd0N,EAAMjK,YAAcmQ,EAAE5T,Y5Bo8G5BoU,IACA,SAAUvZ,EAAQ4L,EAAqB1L,GAE7C,YACAuQ,QAAOC,eAAe9E,EAAqB,cAAgB1J,OAAO,I6B7iHlE,WACIF,KAAM,YACNmH,KAFJ,WAGQ,OACIqQ,IAAK,KAGb1E,QAPJ,WAQQ,GAAIjC,GAAQjS,IACZmU,GAAEC,UAAUC,aACZF,EAAE,UAAU0E,OACZ7E,WAAW,WACP/B,EAAMF,QAAQhD,MACV3N,KAAM,OACNqK,QAAhB,cAEA,Q7B8jHMqN,IACA,SAAU1Z,EAAQ4L,EAAqB1L,GAE7C,YACAuQ,QAAOC,eAAe9E,EAAqB,cAAgB1J,OAAO,GAC7C,IAAIyO,GAAqEzQ,EAAoB,KACzF0Q,EAA6E1Q,EAAoB2Q,EAAEF,GACnGG,EAA8D5Q,EAAoB,IAClF6Q,EAAsE7Q,EAAoB2Q,EAAEC,GAC5F6I,EAA6CzZ,EAAoB,IACjE0Z,EAAoD1Z,EAAoB,IACxE2Z,EAAwC3Z,EAAoB,IACZA,GAAoB2Q,EAAEgJ,E8B5gH/F,YACI7X,KAAM,OACNmH,KAFJ,WAGQ,OACI9D,OAAO,EACPC,OAAO,EACPC,OAAO,EAGP3B,IAAK,GACLkW,WAAW,EACX/S,KAAM,GACNzC,SAAU,GACV9B,aAAc,GACd4B,WACAW,OAAO,EACPgV,YAAY,EACZzX,WAAY,EACZC,WAAY,EACZuB,aAAa,EACb6B,IAAK,GACLR,QAAS,KAGjBsN,SACIvN,UADR,WAEYtE,KAAKyE,OAAQ,EACbzE,KAAK0E,OAAQ,EACb1E,KAAK2E,OAAQ,EACb3E,KAAK4B,aAAe,IAExByC,UAPR,WAQYrE,KAAKyE,OAAQ,EACbzE,KAAK0E,OAAQ,EACb1E,KAAK2E,OAAQ,EACb3E,KAAK4B,aAAe,IAExBqB,YAbR,WAcYjD,KAAKkD,aAAc,CACnB,IAAI+O,GAAQjS,KAExB,+BACY2P,QAAe,OAAI3P,KAAKgD,IACpBwP,UAAUC,OACV,SAAhB,GACA,gBACoB,IACI,MAAO,IAAI,GAAnC,gBAC4BR,EAAMc,MAAMtB,IAAI,yDAC5C,uBACA,QAEA,wBACA,gDACA,iBACA,KAGA,iBAC4B,MAAO2B,GAASC,MAC5C,YAG4B,MAFApB,GAAMrQ,aAAe,+BACrBqQ,EAAM/O,aAAc,GACb,IAEnC,SACwBwP,QAAQC,IAAI,OACZV,EAAMrQ,aAAe,2CAG7C,iBACoB,OAAYf,IAAR0H,EAOA,MAHA0J,GAAM/O,aAAc,EACpByM,OAAY,IAAIpH,EAAK6Q,WACrBzJ,OAAgB,QAAIpH,EAAK8Q,eAClB,EAA/B,oCANwBpH,GAAMrQ,aAAe,+BACrBqQ,EAAM/O,aAAc,IAQ5C,gBACoB,MAAO,IAAI,GAA/B,gBACwB+O,EAAMc,MAAMtB,IAAI9B,OAAY,IAApD,wCACA,+BACA,uBACA,yDACA,KAGA,iBACwB,MAAOyD,GAASC,MACxC,YAGwB,MAFApB,GAAMrQ,aAAe,+BACrBqQ,EAAM/O,aAAc,GACb,MAG/B,iBACoB,OAAYrC,IAAR0H,EAYA,MARA0J,GAAMrQ,aAAe,GACrBqQ,EAAMiH,WAAY,EAClBjH,EAAMzO,QAAU+E,EAChB0J,EAAMxN,OAAQ,EACdwN,EAAMvN,OAAQ,EACduN,EAAMtN,OAAQ,EACdsN,EAAMrQ,aAAe,GACrBqQ,EAAM/O,aAAc,EACb,EAA/B,8BAXwB+O,GAAMrQ,aAAe,+BACrBqQ,EAAM/O,aAAc,IAc5B+O,EAAMrQ,aAAe,8BAG7BwC,WA9FR,WA+F8B,GAAdpE,KAAKmE,OACLnE,KAAKuS,QAAQZ,IAAI,MAAOhC,OAAY,KAAK2J,QAAS,QAClDtZ,KAAKuS,QAAQZ,IAAI,UAAWhC,OAAgB,SAAK2J,QAAS,QAC1DtZ,KAAKuS,QAAQZ,IAAI,SAAUhC,OAAe,QAAK2J,QAAS,QACxDtZ,KAAKuS,QAAQZ,IAAI,OAAQ,IAAzC,8BACgB3R,KAAKyE,OAAQ,EACbzE,KAAK0E,OAAQ,EACb1E,KAAK2E,OAAQ,EACb3E,KAAK4B,aAAe,IAEpB5B,KAAK4B,aAAe,2BAG5Be,cA5GR,WA6GY,GAAIsP,GAAQjS,IAEZA,MAAKmZ,YAAa,CAClB,IAAZ,gCAKA,kBACgB,SAAhB,GACA,0BACoBlH,GAAMvQ,WAAa,EACnBuQ,EAAM1N,QAAU,4BAChB,KACI,MAAO,IAAI,GAAnC,gBAC4B0N,EAAMc,MAAMtB,IAAI9B,OAAY,IAAxD,yCACA,+BACA,8BAEA,iBAC4B,MAAOyD,GAASC,MAC5C,YAG4B,MAFA,GAA5B,WAC4B,EAA5B,wDACmC,IAEnC,SACwBX,QAAQC,IAAI,MAAOQ,GACnBlB,EAAMrQ,aAAe,2CAG7C,iBACoB,OAAYf,IAAR0H,EAGxB,CACwB,GAAIgR,KAcJ,OAZAhR,GAAKiR,UAAU/J,QAAQ,SAAUgK,GAC7BF,EAAaxK,KAAK,WACd,MAAO,GAAvC,mDAKwB,IAAxB,wDACwB,IAAxB,gDACwB,IAAxB,sDACwB,IAAxB,8DAE+B,EAA/B,UAjBwB/O,KAAKuE,QAAU,GACfvE,KAAK4B,aAAe,4CAmB5C,gBACoBqQ,EAAMkH,YAAa,EACnBlH,EAAM1N,QAAU,GAChB0N,EAAMM,QAAQZ,IAAI,cAAc,GAApD,eACoBM,EAAMF,QAAQhD,MACV3N,KAAM,gBAId6Q,EAAMrQ,aAAe,+BAIjC0W,OACI5U,SADR,SACA,KACgB6U,GAAUC,IACV7I,OAAa,MAA7B,qBAC2B,IAAP6I,GACAxY,KAAKmE,OAAQ,EACbnE,KAAK4B,aAAe,IAEpB5B,KAAKmE,OAAQ,KAK7B+P,QApNJ,WAqNQC,EAAEC,UAAUC,aACZF,EAAE,UAAU0E,OAEZnG,QAAQC,IAAI,UAAW3S,KAAKwU,OAAO/I,OAAOzI,IAE1C,IAAIiP,GAAQjS,IACpB,0BACgBA,KAAKuS,QAAQd,IAAI,WACjBiB,QAAQC,IAAI,uBACZ3S,KAAKgD,IAAMhD,KAAKuS,QAAQd,IAAI,WAE5C,8BACgBzR,KAAKgD,IAAMhD,KAAKwU,OAAO/I,OAAOzI,IAE9BhD,KAAKgD,IAAM,IAIfhD,KAAKuS,QAAQd,IAAI,cACjBQ,EAAMF,QAAQhD,MACV3N,KAAM,cAGVsR,QAAQC,IAAI,2B9BmmHlB+G,IACA,SAAUta,EAAQ4L,EAAqB1L,GAE7C,YACAuQ,QAAOC,eAAe9E,EAAqB,cAAgB1J,OAAO,GAC7C,IAAIqY,GAAiDra,EAAoB,KACrEsa,EAAyDta,EAAoB2Q,EAAE0J,GAC/EE,EAA6Dva,EAAoB,KACjFwa,EAAqExa,EAAoB2Q,EAAE4J,G+Br5HhHhU,GACJ,QAGA,YACIzE,KAAM,OACN+P,YACI4I,aAAR,IACQ3I,WAAR,KAEI7I,KANJ,WAOQ,OACI1C,MAAOA,EACPjF,aAAc+O,OAAqB,aACnC3O,MAAO,GAAIkM,QAGnB8M,SACIC,OADR,uHACA,GACY,MAAOA,QAAO/P,GAAMgQ,OAAO,qBAGnCrI,SACIpR,OADR,WAEYT,KAAK+R,QAAQoI,IAAI,KAGzBjG,QAvBJ,WAwBQC,EAAEC,UAAUC,aACZF,EAAE,UAAU0E,MACZ,IAAI5G,GAAQjS,IAEPA,MAAKuS,QAAQd,IAAI,eAClBQ,EAAMF,QAAQhD,MACV3N,KAAM,e/Bm8HhBgZ,IACA,SAAUhb,EAAQ4L,EAAqB1L,GAE7C,YACAuQ,QAAOC,eAAe9E,EAAqB,cAAgB1J,OAAO,GAC7C,IAAI+Y,GAA8D/a,EAAoB,IAClFgb,EAAsEhb,EAAoB2Q,EAAEoK,GAC5FE,EAA6Cjb,EAAoB,IACjEkb,EAAuDlb,EAAoB,KAC3Emb,EAA+Dnb,EAAoB2Q,EAAEuK,GACrFE,EAA0Dpb,EAAoB,KAC9Eqb,EAAkDrb,EAAoB,KACtEsb,EAA0Dtb,EAAoB2Q,EAAE0K,GAChFE,EAA4Cvb,EAAoB,KACZA,GAAoB2Q,EAAE4K,EgC5yHnG,QACA,OAEA,WACA,eACA,YACA,eACA,UACA,iBAEA,aACA,KARA,WASA,OACA,aACA,UACA,kBACA,eACA,cACA,QACA,WACA,aACA,gBACA,QACA,eACA,aACA,cACA,aACA,MACA,oBACA,oBACA,0BACA,YACA,cACA,cACA,SACA,UAEA,SACA,kBACA,aACA,QACA,UACA,sBACA,sBACA,yBAIA,SACA,UADA,WAEA,mBAEA,WAJA,WAKA,mBAEA,aAPA,SAOA,KACA,WACA,mCAEA,OACA,UACA,gBACA,WAGA,wBACA,mBAEA,OApBA,WAqBA,qBAEA,QAvBA,WAwBA,mBACA,eAGA,UA5BA,WA6BA,iBAEA,QA/BA,WAgCA,iBAEA,SAlCA,WAmCA,0BACA,MAEA,eAEA,sBACA,YACA,MAEA,2CACA,4CACA,6CACA,mCACA,sCACA,wBACA,sBACA,uCAEA,oCACA,sBACA,+BAEA,sBACA,+BAGA,sBAEA,iDACA,4CAGA,uBAEA,YArEA,SAqEA,GACA,+BAEA,YAxEA,WAyEA,qBAEA,aA3EA,WA4EA,sBAEA,UA9EA,WA+EA,mBAEA,WAjFA,WAkFA,oBAEA,cApFA,WAqFA,UAEA,8BACA,QAEA,0CACA,0BACA,YAEA,gBACA,iBAGA,6CACA,2BACA,8CACA,YALA,kCASA,gBACA,sBACA,uDACA,wDACA,yDACA,kDACA,+CACA,oCACA,oDAEA,yBACA,+BAEA,SAEA,gBACA,6BACA,2CACA,kCACA,wBAEA,gBACA,oCACA,wBAKA,eArIA,WAsIA,+BACA,iNAEA,gBAzIA,SAyIA,GACA,iBAEA,OADA,qDAGA,cA9IA,SA8IA,KAEA,MADA,MAGA,8BAlJA,SAkJA,OAMA,MAJA,qCACA,yBAFA,OAGA,IACA,GAGA,+BA1JA,SA0JA,KACA,qBAKA,QAJA,gBACA,KAEA,OAGA,sCAlKA,SAkKA,WACA,WACA,2CACA,kCACA,8BACA,yBACA,+CACA,0CAGA,uDACA,QACA,2DAEA,iFACA,oDAEA,gBACA,0CACA,eACA,uEAIA,mBA1LA,WA2LA,iDAEA,aA7LA,WA8LA,oBACA,sBACA,kCACA,kCACA,oCAEA,sBACA,sCAGA,oBAxMA,SAwMA,GACA,+BACA,WACA,2CAEA,6CAIA,SACA,OADA,uHACA,GACA,mCAEA,cAJA,SAIA,GACA,gDAEA,QAPA,SAOA,GACA,mBACA,wBAEA,IAGA,YA5QA,WA6QA,sBAEA,QA/QA,WAgRA,UACA,0BACA,mBAEA,cAEA,wDACA,QACA,sDAEA,gBAIA,wDACA,QACA,6DAEA,gBAIA,8DACA,QACA,yDAEA,eAIA,kEACA,QACA,4DAEA,mBhCgiIMC,IACA,SAAU1b,EAAQ4L,EAAqB1L,GAE7C,YACAuQ,QAAOC,eAAe9E,EAAqB,cAAgB1J,OAAO,GAC7C,IAAI+Y,GAA8D/a,EAAoB,IAClFgb,EAAsEhb,EAAoB2Q,EAAEoK,GAC5FU,EAAqEzb,EAAoB,KACzF0b,EAA6E1b,EAAoB2Q,EAAE8K,GACnG3K,EAAiD9Q,EAAoB,KACrE+Q,EAAyD/Q,EAAoB2Q,EAAEG,GAC/EE,EAA6ChR,EAAoB,IiC9/ItFuG,GjC+/IyEvG,EAAoB,IiCpgJzF,EAAR,MAMEiD,KAAM,IAGR,YACEnB,KAAM,YACNwT,OAAQ,cACRzD,YACEC,WAAJ,KAEE7I,KANF,WAOI,OACErC,aAAc,GACd+U,YACAC,MAAO,GAEPrV,MAAOA,EAEPS,kBACAC,WAAW,EACX4U,cAAc,IAGlB3J,UACEjK,YADJ,WAEM,MAAOvH,MAAKsG,iBAGhBgS,OACE8C,WADJ,SACA,KACU7C,GAAUC,GACZxY,KAAKqb,gBAAgB1L,OAAqB,aAAGA,OAAa,KAAEvJ,MAIlEyL,SACElL,YADJ,SACA,GAeM,WAAyB9F,KAArBoE,EAAKqW,aAAkD,KAArBrW,EAAKqW,aAA2C,OAArBrW,EAAKqW,aAElE,eAAe,IAEzB,oDAEA,kBAEU,aAAa,KAMnB5U,YA9BJ,SA8BA,GACM1G,KAAK+R,QAAQhD,MACX3N,KAAM,UACNqK,QAAUrF,GAAII,EAAQJ,OAG1BT,gBApCJ,SAoCA,OACkB9E,IAAR0B,GAA6B,IAARA,GAAsB,MAARA,IACrCA,EAAO,GAAI2K,MAEb,IAAN,+BACM,QAAN,eACM,KAAN,mCAEIjH,UA5CJ,WA6CMjG,KAAKmb,cAAgBnb,KAAKmb,cAG5B9U,WAhDJ,SAgDA,GACMrG,KAAKkG,aAAeC,EACpBuM,QAAQC,IAAI,OAAQxM,GACpBwJ,OAAa,KAAIxJ,EACjBnG,KAAKuS,QAAQgJ,OAAO,QACpBvb,KAAKuS,QAAQZ,IAAI,OAAQ,IAA/B,8BACM3R,KAAK2F,gBAAgB3F,KAAK6F,MAAMtD,OAElC8Y,gBAxDJ,SAwDA,KACM,GAAIpJ,GAAQjS,KACRwb,IAEJ,IAAI,KAAV,cAC4B,MAAhB5a,OAAwCC,IAAhBD,GAA6C,IAAhBA,IACvDA,EAAe,OAAzB,8BAEQ,IAAR,qCACA,oCACA,aACA,iBACc,QAAd,eACc,EAAd,WAGA,gBACU,MAAV,uCAEY,GADZ,oCACA,aACc,GAAd,KACA,IACA,kBACgB,EAAhB,oBACA,cACoB,GAApB,KAGA,IACkB,EAAlB,QACkB,GAAlB,OAKA,gBACY,EAAZ,SAIA,iBACQ,MAAO,IAAI,GAAnB,gBACU4a,EAAMC,KAAK,SAArB,KACY,MAAO,IAAIvO,MAAKwO,EAAEtU,QAAU,GAAI8F,MAAKyO,EAAEvU,UAErB,MAAhBxG,GACFqR,EAAMgJ,SAAWO,EACjBvJ,EAAM2J,WAAWJ,IAEjBvJ,EAAMgJ,SAAWO,EAEnB5I,EAAQ4I,OAElB,gBACQvJ,EAAM2J,WAAWJ,MAGrBI,WAjHJ,SAiHA,GACM5b,KAAKsG,iBACL,KAAK,GAAIwM,GAAI,EAAGA,EAAIvK,EAAK1G,OAAQiR,IAC3BvK,EAAKuK,GAAG+I,WAAa7b,KAAKkG,aAAaE,IACzCpG,KAAKsG,eAAeyI,KAAKxG,EAAKuK,MAKtCkH,SACEC,OADJ,uHACA,GACM,MAAOA,QAAO/P,GAAMgQ,OAAO,WAE7B4B,QAJJ,SAIA,GACM,MAAI5R,GAAKrI,OAAS,GACTqI,EAAK6R,UAAU,EAAG,IAAM,MAE1B7R,IAGXgK,QApKF,WAqKI,GAAIjC,GAAQjS,IAKZ,IAHAmU,EAAEC,UAAUC,aACZF,EAAE,UAAU/L,OAEPpI,KAAKuS,QAAQd,IAAI,cAI1B,CACkBwI,OAAO,GAAI/M,MACvByC,QAAa,KAAI0C,KAAKC,MAAMtS,KAAKuS,QAAQd,IAAI,SAC7CzR,KAAKkG,aAAeyJ,OAAa,KACjCA,OAAe,OAAI3P,KAAKuS,QAAQd,IAAI,UAEpC,IAAN,4CACA,QACUiB,QAAQC,IAAI,wCAEZV,EAAMiJ,MAAQ5L,IAKlBtP,KAAKqb,gBAAgB1L,OAAqB,aAAGA,OAAa,KAAEvJ,QAlB5D,GAAN,cACQ,KAAR,ejCsmJM4V,IACA,SAAU5c,EAAQ4L,EAAqB1L,GAE7C,YACAuQ,QAAOC,eAAe9E,EAAqB,cAAgB1J,OAAO,GAC7C,IAAI+Y,GAA8D/a,EAAoB,IAClFgb,EAAsEhb,EAAoB2Q,EAAEoK,GAC5FE,EAA6Cjb,EAAoB,IACjE2c,EAAoD3c,EAAoB,IACxE4c,EAAwC5c,EAAoB,IACZA,GAAoB2Q,EAAEiM,EkCtzJ/F,YACI9a,KAAM,YACNmH,KAFJ,WAGQ,OACI4Q,YAAY,EACZzX,WAAY,EACZC,WAAY,EACZC,aAAc,KAGtBiQ,SACIlP,cADR,WAEY,GAAIsP,GAAQjS,IAEZA,MAAKmZ,YAAa,CAClB,IAAZ,gCAEY,UAAZ,GACA,gBAAgB,GAAhB,OAGgB,OAFAlH,GAAMvQ,WAAa,EAEZ,GAAI,GAA3B,gBACoBuQ,EAAMc,MAAMtB,IAAI,+DACpC,+BACA,8BAEA,iBAEoB,MADAiB,SAAQC,IAAI,WAAYS,EAASC,MAC1BD,EAASC,MACpC,YAGoB,MAFAX,SAAQC,IAAI,SACZ,EAApB,wDAC2B,MAG3B,iBACgB,OAAY9R,IAAR0H,EAKA,MADAmK,SAAQC,IAAI,2BAA4BpK,GACjC,EAA3B,oCAJoBmK,SAAQC,IAAI,yBACZ3S,KAAK4B,aAAe,4CAMxC,0BAGgB,OAFAqQ,GAAMvQ,WAAa,EAEZ,GAAI,GAA3B,gBACoBuQ,EAAMc,MAAMtB,IAAI,sEACpC,+BACA,8BAEA,iBAEoB,MADAiB,SAAQC,IAAI,WAAYS,EAASC,MAC1BD,EAASC,MACpC,YAGoB,MAFAX,SAAQC,IAAI,SACZ,EAApB,wDAC2B,MAG3B,iBACgB,OAAY9R,IAAR0H,EAGpB,CACoBmK,QAAQC,IAAI,2BAA4BpK,EAAKiR,UAC7C,IAAID,KASJ,OAPAhR,GAAKiR,UAAU/J,QAAQ,SAAUgK,GAC7BF,EAAaxK,KAAK,WACd,MAAO,GAAnC,4CACgC2D,QAAQC,IAAI,iBAAkB8G,EAAQrT,UAI3C,EAA3B,UAboBsM,QAAQC,IAAI,yBACZ3S,KAAK4B,aAAe,4CAexC,gBACgBqQ,EAAMkH,YAAa,EACnBlH,EAAMM,QAAQZ,IAAI,cAAc,GAAhD,eACgBM,EAAMF,QAAQhD,MACV3N,KAAM,kBAKtB8S,QAxFJ,WAyFQC,EAAEC,UAAUC,aACZF,EAAE,UAAU0E,OAER7Y,KAAKuS,QAAQd,IAAI,eACjBzR,KAAK+R,QAAQhD,MACT3N,KAAM,iBlC+2JhB+a,IACA,SAAU/c,EAAQ4L,EAAqB1L,GAE7C,YmC3/Je,MACXgP,QACI,cACA,aACA,UACA,gBnC+/JF8N,IACA,SAAUhd,EAAQ4L,EAAqB1L,GAE7C,YoC/+FI,SAAS+c,GAAOC,EAAOC,EAAGC,EAAGC,EAAGC,EAAGhB,EAAEC,EAAEgB,EAAEC,GACrC,GAAIC,GAAQC,EAAQC,EAAQC,EAAIC,EAAKC,EAAMC,EAAMC,EAAMC,EAAMvK,CAG7D,KADA8J,EAAMlB,EACD5I,EAAI,EAAGA,GAAK,GAAIA,IAgBjB,GAfA+J,EAASpU,KAAK6U,IAAIV,GAClBG,EAAStU,KAAK8U,IAAIX,GAClBD,EAAII,EAAStU,KAAK+U,KAAM,EAAMlB,EAASO,EAASA,GAChDC,EAASrU,KAAK6U,IAAK,EAAMV,GAKzBI,EAAKT,EAAKK,EAAMJ,EAAKM,EAASL,EAAKhU,KAAK6U,IAAK,EAAOV,GAAOF,EAAKjU,KAAK6U,IAAK,EAAMV,GAChFK,EAAMV,EAAK,EAAMC,EAAK/T,KAAKgV,IAAK,EAAOb,GAAO,EAAMH,EAAKhU,KAAKgV,IAAK,EAAOb,GAAO,EAAMF,EAAKjU,KAAKgV,IAAK,EAAOb,GAC7GM,EAAO,EAAMF,EAAKL,GAAKK,EAAKA,EAAKrB,GAAK,EAAMD,GAAMiB,EAAIK,EAAK,GAC3DG,EAAOb,EAASQ,GAAUE,EAAKA,EAAKrB,EAAI,EAAMD,EAAIsB,IAAO,EAAKL,GAC9DS,EAAO,GAAO1B,EAAIsB,IAAOL,EAAIM,EAAM,EAAMH,GAAU,EAAMG,EACzDI,EAAOH,GAAQC,EAAOC,GACtBR,GAAOS,EACH5U,KAAKiV,IAAIL,IAAS,MAAc,MAAOT,EAG/C,OADAe,GAAQC,YAAY,yBACb,KpCy9FM,GAAIC,GAA6Dve,EAAoB,KACjFwe,EAAqExe,EAAoB2Q,EAAE4N,GoCv7JhHF,GAMII,aAAc,QAadC,UAAW,SAASC,EAAQC,EAAMC,GAC9B,IAAKF,EAAOG,WAER,MADApe,MAAK4d,YAAY,8BAA8BK,EAAOI,QAAQ,qBACvDF,CAEX,KAAKD,EAAKE,WAEN,MADApe,MAAK4d,YAAY,8BAA8BM,EAAKG,QAAQ,qBACrDF,CAIX,IAAIF,EAAOK,OAASJ,EAAKI,SACnBL,EAAOK,MAAMC,YAAcZ,EAAQa,OAAOC,YAAcR,EAAOK,MAAMC,YAAcZ,EAAQa,OAAOE,aAAiC,SAAlBR,EAAKS,YACtHT,EAAKI,MAAMC,YAAcZ,EAAQa,OAAOC,YAAcP,EAAKI,MAAMC,YAAcZ,EAAQa,OAAOE,aAAmC,SAApBT,EAAOU,WAAwB,CAC9I,GAAIC,GAAQjB,EAAQkB,KACpB7e,MAAKge,UAAUC,EAAQW,EAAOT,GAC9BF,EAASW,EAkDb,MA9CiB,OAAbX,EAAOa,MACP9e,KAAK+e,YAAYd,GAAO,EAAME,GAIZ,WAAjBF,EAAOe,UACRb,EAAMc,GAAKtB,EAAQa,OAAOU,IAC1Bf,EAAMgB,GAAKxB,EAAQa,OAAOU,MAEtBjB,EAAOmB,WACPjB,EAAMc,GAAKhB,EAAOmB,SAClBjB,EAAMgB,GAAKlB,EAAOmB,UAEtBnB,EAAOoB,QAAQlB,IAIfF,EAAOqB,iBACPnB,EAAMc,GAAKhB,EAAOqB,gBAItBnB,EAAQne,KAAKuf,gBAAiBtB,EAAOK,MAAOJ,EAAKI,MAAOH,GAGpDD,EAAKoB,iBACLnB,EAAMc,GAAKf,EAAKoB,gBAGD,WAAfpB,EAAKc,UAELb,EAAMc,GAAKtB,EAAQa,OAAOgB,IAC1BrB,EAAMgB,GAAKxB,EAAQa,OAAOgB,MAE1BtB,EAAKuB,QAAQtB,GACTD,EAAKkB,WACLjB,EAAMc,GAAKf,EAAKkB,SAChBjB,EAAMgB,GAAKjB,EAAKkB,WAKT,OAAXlB,EAAKY,MACL9e,KAAK+e,YAAYb,GAAK,EAAKC,GAGxBA,GAQXoB,gBAAkB,SAAUtB,EAAQC,EAAMC,GAGxC,MAAIF,GAAOyB,eAAgBxB,GAChBC,EAMPF,EAAOM,YAAcZ,EAAQa,OAAOmB,aACjCzB,EAAKK,YAAcZ,EAAQa,OAAOmB,YAC9BxB,GAIPF,EAAO2B,IAAM1B,EAAK0B,IAAM3B,EAAOvC,GAAKwC,EAAKxC,GACtCuC,EAAOM,YAAcZ,EAAQa,OAAOC,YACpCR,EAAOM,YAAcZ,EAAQa,OAAOE,YACpCR,EAAKK,YAAcZ,EAAQa,OAAOC,YAClCP,EAAKK,YAAcZ,EAAQa,OAAOE,aAIvCT,EAAO4B,uBAAwB1B,GAI3BF,EAAOM,YAAcZ,EAAQa,OAAOC,YAAcR,EAAOM,YAAcZ,EAAQa,OAAOE,YACxFT,EAAO6B,oBAAoB3B,GAIzBD,EAAKK,YAAcZ,EAAQa,OAAOC,YAAcP,EAAKK,YAAcZ,EAAQa,OAAOE,YACpFR,EAAK6B,sBAAsB5B,GAK7BD,EAAK8B,uBAAwB7B,IAIxBA,IAYTY,YAAa,SAASkB,EAAKC,EAAQ/B,GAG/B,IAAK,GADDgC,GAAGC,EADHC,EAAKlC,EAAMc,EAAGqB,EAAKnC,EAAMgB,EAAGoB,EAAKpC,EAAMqC,GAAK,EAEvC1N,EAAG,EAAGA,EAAE,EAAGA,IAChB,IAAIoN,GAAa,GAAHpN,OAAkBjS,KAAVsd,EAAMqC,EAI5B,OAHY,GAAH1N,GAAQqN,EAAGE,EAAKD,EAAG,KAChB,GAAHtN,GAAQqN,EAAGG,EAAKF,EAAG,MACXD,EAAGI,EAAKH,EAAG,KACrBH,EAAInB,KAAKhM,IAChB,IAAK,IACDqL,EAAMiC,GAAID,CACV,MACJ,KAAK,IACDhC,EAAMiC,IAAKD,CACX,MACJ,KAAK,IACDhC,EAAMiC,GAAID,CACV,MACJ,KAAK,IACDhC,EAAMiC,IAAKD,CACX,MACJ,KAAK,QACctf,KAAXsd,EAAMiC,KAAkBjC,EAAMqC,EAAGL,EACrC,MACJ,KAAK,QACctf,KAAXsd,EAAMiC,KAAkBjC,EAAMqC,GAAIL,EACtC,MACJ,SAEI,MADAM,OAAM,uBAAuBR,EAAInB,KAAKhM,GAAG,2BAA2BmN,EAAIjB,UACjE,KAGf,MAAOb,IAQXP,YAAa,SAAShF,KA2BtB8H,OAAQ,SAASC,EAAa1C,GAE5B,GADA0C,EAAcA,MACX1C,EACC,IAAI,GAAI2C,KAAY3C,GAAQ,CACxB,GAAI3c,GAAQ2c,EAAO2C,OACN/f,KAAVS,IACCqf,EAAYC,GAAYtf,GAIpC,MAAOqf,IASTE,MAAO,WAOL,IAAI,GADAC,GALAD,EAAQ,WACR7gB,KAAK+gB,WAAWC,MAAMhhB,KAAMihB,YAG5BC,KAEIpO,EAAE,EAAGA,EAAEmO,UAAUpf,SAAUiR,EAG3BgO,EAFsB,kBAAhBG,WAAUnO,GAEPmO,UAAUnO,GAAGzP,UAGb4d,UAAUnO,GAEvB6K,EAAQ+C,OAAOQ,EAAUJ,EAI7B,OAFAD,GAAMxd,UAAY6d,EAEXL,GAeTM,KAAM,SAASC,EAAMC,GAEjB,GAAIC,GAAOle,MAAMC,UAAUke,MAAMP,MAAMC,WAAY,GACnD,OAAO,YAGH,GAAIO,GAAUF,EAAKG,OACfre,MAAMC,UAAUke,MAAMP,MAAMC,WAAY,IAE5C,OAAOG,GAAKJ,MAAMK,EAAQG,KAYlCE,WAAY,sBAMZC,kBAAmB,kCAMnBC,QAAS,KASTC,kBAAmB,WACf,GAAI7hB,KAAK4hB,QAAS,MAAO5hB,MAAK4hB,OAK9B,KAAK,GAJDF,GAAa1hB,KAAK0hB,WAClBI,EAAgBJ,EAAW7f,OAE3BkgB,EAAU3N,SAAS4N,qBAAqB,UACnClP,EAAI,EAAGA,EAAIiP,EAAQlgB,OAAQiR,IAAK,CACrC,GAAImP,GAAMF,EAAQjP,GAAGoP,aAAa,MAClC,IAAID,EAAK,CACL,GAAIxb,GAAQwb,EAAIE,YAAYT,EAE5B,IAAKjb,GAAS,GAAOA,EAAQqb,GAAiBG,EAAIpgB,OAAS,CACvD7B,KAAK4hB,QAAUK,EAAIV,MAAM,GAAIO,EAC7B,SAIZ,MAAO9hB,MAAK4hB,SAAS,IAezBQ,WAAY,SAASrd,EAAKsd,EAAQC,EAAQC,GACxC,GAAIC,GAASpO,SAASqO,cAAc,SACpCD,GAAOE,OAAQ,EACfF,EAAOrN,KAAO,kBACdqN,EAAOpc,GAAKrB,EACZyd,EAAOP,IAAMld,EACbyd,EAAOH,OAASA,EAChBG,EAAOG,QAAUL,EACjBE,EAAOD,UAAYA,EACf,OAAOK,KAAKpQ,UAAUqQ,aACxBL,EAAOM,mBAAqB9iB,KAAK+iB,iBAEnC3O,SAAS4N,qBAAqB,QAAQ,GAAGgB,YAAYR,IASvDO,gBAAiB,WACQ,UAAnB/iB,KAAKijB,aACFjjB,KAAKuiB,YAGRviB,KAAKqiB,SAFLriB,KAAK2iB,YAuBfhF,GAAQuF,KAAOvF,EAAQkD,OAMrBzC,YAAY,EAMZ+E,MAAO,KAQPnE,SAAU,KAKVoE,MAAO,KAKP9E,MAAO,KAKP+E,GAAI,EAKJC,GAAI,EAMJC,SAAS,EAMTC,MAAO,KAUPzC,WAAY,SAAS1C,EAASvY,GAU1B,GATA9F,KAAKyjB,aAAepF,EAGpBre,KAAKwjB,SACD1d,GACC9F,KAAKwjB,MAAMzU,KAAMjJ,GAIjBuY,EAAQqF,QAAQ,WAAa,GAC7BrF,EAAQqF,QAAQ,WAAa,GAC7BrF,EAAQqF,QAAQ,WAAa,GAC7BrF,EAAQqF,QAAQ,aAAe,EAI9B,MAHA1jB,MAAK2jB,SAAStF,GACdre,KAAK4jB,sBACL5jB,MAAK6jB,aAAa7jB,KAAKgf,SAK7B,IAA+B,GAA3BX,EAAQqF,QAAQ,QAAc,CAE9B,GAAII,GAAMzF,EAAQ0F,MAAM,IACT,QAAVD,EAAI,IAAwB,SAATA,EAAI,IACd,OAATA,EAAI,IACK,OAATA,EAAI,KACLzF,EAAUyF,EAAI,GAAG,IAAIA,EAAIA,EAAIjiB,OAAO,QAErC,IAAkC,GAA9Bwc,EAAQqF,QAAQ,WAAiB,CAExC,GAAI3e,GAAMsZ,EAAQ0F,MAAM,IACpBhf,GAAI,GAAGif,MAAM,YAEf3F,EAAU,QAAQtZ,EAAI,GACbA,EAAI,GAAGif,MAAM,aAGtB3F,EAAU,QAAQtZ,EAAI,IAG5B/E,KAAKqe,QAAUA,EAAQ4F,cACa,GAAhCjkB,KAAKqe,QAAQqF,QAAQ,SACrB1jB,KAAKqe,QAAUre,KAAKqe,QACpBre,KAAKkkB,QAAU,OACflkB,KAAKmkB,cAAgBnkB,KAAKqe,QAAQtC,UAAU,IAEL,GAAhC/b,KAAKqe,QAAQqF,QAAQ,SAC5B1jB,KAAKqe,QAAUre,KAAKqe,QACpBre,KAAKkkB,QAAU,OACflkB,KAAKmkB,cAAgBnkB,KAAKqe,QAAQtC,UAAU,IAEN,GAA/B/b,KAAKqe,QAAQqF,QAAQ,QAC5B1jB,KAAKqe,QAAUre,KAAKqe,QACpBre,KAAKkkB,QAAU,MACflkB,KAAKmkB,cAAgBnkB,KAAKqe,QAAQtC,UAAU,KAE5C/b,KAAKkkB,QAAU,GACflkB,KAAKmkB,cAAgBnkB,KAAKqe,SAG9Bre,KAAKokB,sBAYPA,mBAAoB,WAElB,GAAIzG,EAAQ0G,KAAKrkB,KAAKqe,SAEpB,WADAre,MAAKskB,YAKP,IAAIvf,GAAM4Y,EAAQkE,oBAAsB,QAAU7hB,KAAKkkB,QAAQD,cAAgBjkB,KAAKmkB,cAAgB,KACpGxG,GAAQyE,WAAWrd,EACT4Y,EAAQwD,KAAKnhB,KAAKskB,WAAYtkB,MAC9B2d,EAAQwD,KAAKnhB,KAAKukB,gBAAiBvkB,MACnC2d,EAAQwD,KAAKnhB,KAAKwkB,gBAAiBxkB,QAS/CukB,gBAAiB,WAEf,GAAIxf,GAAM4Y,EAAQgE,kBAAmB,IAAM3hB,KAAKkkB,QAAS,IAAKlkB,KAAKmkB,cAAgB,WACnFxG,GAAQyE,WAAWrd,EACb4Y,EAAQwD,KAAKnhB,KAAKskB,WAAYtkB,MAC9B2d,EAAQwD,KAAKnhB,KAAKykB,WAAYzkB,MAC9B2d,EAAQwD,KAAKnhB,KAAKwkB,gBAAiBxkB,QAQ3CskB,WAAY,WACVtkB,KAAK0kB,YACL1kB,KAAK6jB,aAAa7jB,KAAKgf,WAQzBwF,gBAAiB,WACf,QAAI7G,EAAQ0G,KAAKrkB,KAAKqe,UAYzBoG,WAAY,WACT9G,EAAQC,YAAY,6CAA6C5d,KAAKqe,SACtEV,EAAQ0G,KAAKrkB,KAAKqe,SAAWV,EAAQ0G,KAAR,MAC7BrkB,KAAKskB,cAUPT,aAAc,SAAS7E,GACrB,GAAIrB,EAAQuF,KAAKlE,GAEf,WADAhf,MAAK2kB,gBAKP,IAAI5f,GAAM4Y,EAAQkE,oBAAsB,YAAc7C,EAAW,KACjErB,GAAQyE,WAAWrd,EACX4Y,EAAQwD,KAAKnhB,KAAK4kB,oBAAqB5kB,KAAMgf,GAC7CrB,EAAQwD,KAAKnhB,KAAK6kB,oBAAqB7kB,KAAMgf,GAC7CrB,EAAQwD,KAAKnhB,KAAK8kB,gBAAiB9kB,KAAMgf,KAQnD4F,oBAAqB,SAAS5F,GACxBrB,EAAQuF,KAAKlE,GAAU+F,UACzB/kB,KAAK6jB,aAAalG,EAAQuF,KAAKlE,GAAU+F,WAEzC/kB,KAAK2kB,kBAUTE,oBAAqB,SAAS7F,GAC5BrB,EAAQC,YAAY,uCAAyCoB,IAS/D8F,gBAAiB,SAAS9F,GACxB,QAAIrB,EAAQuF,KAAKlE,IAYnB2F,eAAgB,WAId,GAHAhH,EAAQ+C,OAAO1gB,KAAM2d,EAAQuF,KAAKljB,KAAKgf,WACvChf,KAAKwP,OACLxP,KAAKoe,YAAa,EACdpe,KAAKwjB,MAEP,IADA,GAAIve,GACIA,EAAOjF,KAAKwjB,MAAMwB,SACxB/f,EAAK1B,KAAMvD,KAAMA,OAU1BilB,MAAO,kBACPtB,SAAU,SAASuB,GAChB,GAAIC,GAAWD,EAAIlB,MAAMhkB,KAAKilB,MAC9B,IAAKE,EAAL,CACA,GAGIC,GAHAC,EAAYF,EAAS,GACrBG,EAAaH,EAAS,GACtBI,EAAUD,EAAWvB,MAAM,IAG7BqB,GAD6B,WAA3BC,EAAUpB,cACFoB,EAEAE,EAAQP,QAEpBI,EAAUA,EAAQ/X,QAAQ,MAAM,IAChC+X,EAAUA,EAAQ/X,QAAQ,MAAM,GAahC,KAAK,GAHDmY,GAAW,GAAIpiB,OACfqiB,EAAU,EACVC,EAAM,GACD5S,EAAE,EAAGA,EAAEyS,EAAQ1jB,SAAUiR,EAAG,CAEnC,IAAK,GADD6S,GAAQJ,EAAQzS,GACX8S,EAAE,EAAGA,EAAED,EAAM9jB,SAAU+jB,EACP,KAAnBD,EAAME,OAAOD,MAAaH,EACP,KAAnBE,EAAME,OAAOD,MAAaH,CAEhCC,IAAOC,EACS,IAAZF,GACFD,EAASzW,KAAK2W,GACdA,EAAM,IAENA,GAAO,IAMX,OAAQL,GACN,IAAK,WACHrlB,KAAKgf,SAAW,WAChBhf,KAAKujB,SAAU,EACfvjB,KAAKqe,QAAU+G,CACf,MACF,KAAK,SACHplB,KAAKgf,SAAW,UAChBhf,KAAK8lB,UAAYV,EACZplB,KAAKqe,UAASre,KAAKqe,QAAU+G,EAClC,MACF,KAAK,SACHplB,KAAKqe,QAAU+G,CACf,MACF,KAAK,SACH,KACF,KAAK,aACHplB,KAAKgf,SAAWrB,EAAQoI,eAAeX,EACvC,MACF,KAAK,QACHplB,KAAKgmB,UAAYZ,CACjB,MACF,KAAK,cACHplB,KAAK2e,UAAY,MACjB,MACF,KAAK,WACH3e,KAAKimB,MAAQb,EACbplB,KAAK0b,EAAIwK,WAAWV,EAASR,SAC7BhlB,KAAKmmB,GAAKD,WAAWV,EAASR,QAC9B,MACF,KAAK,SACHhlB,KAAKsf,eAAiB4G,WAAWV,EAASR,QAC1C,MACF,KAAK,OACHhlB,KAAKojB,MAAQgC,EACbplB,KAAKomB,cAAgBF,WAAWV,EAASR,QACzC,MACF,KAAK,YACH,GAAI5jB,GAAOgkB,EAAQ7X,cACfjM,EAAQ4kB,WAAWV,EAASR,QAGhC,QAAQ5jB,GACN,IAAK,gBACHpB,KAAKqjB,GAAK/hB,CACV,MACF,KAAK,iBACHtB,KAAKsjB,GAAKhiB,CACV,MACF,KAAK,eACHtB,KAAKqmB,GAAK/kB,CACV,MACF,KAAK,mBACHtB,KAAKsmB,MAAQhlB,EAAMqc,EAAQa,OAAOU,GAClC,MACF,KAAK,qBACHlf,KAAKumB,KAAOjlB,EAAMqc,EAAQa,OAAOU,IAOrC,KACF,KAAK,UACHlf,KAAKwmB,aAAehB,CACpB,MAEF,KAAK,OACH,GAAIpkB,GAAMgkB,EAAQ7X,cACdjM,EAAOkkB,EAASR,OACpB,QAAQ1jB,GACN,IAAK,OAASA,EAAO,GAAK,MAC1B,KAAK,OAASA,EAAO,GAAK,MAC1B,KAAK,QAASA,EAAO,GAAK,MAC1B,KAAK,QAASA,EAAO,GAAK,MAC1B,KAAK,KAASA,EAAO,GAAK,MAC1B,KAAK,OAASA,EAAO,GAAK,MAC1B,KAAK,QACL,QAAcA,EAAO,IAGvB,OADKtB,KAAK8e,OAAQ9e,KAAK8e,KAAM,OACtB1d,GACL,IAAK,IAAKpB,KAAK8e,KAA8Bxd,EAAQtB,KAAK8e,KAAK2H,OAAO,EAAE,EAAI,MAC5E,KAAK,IAAKzmB,KAAK8e,KAAM9e,KAAK8e,KAAK2H,OAAO,EAAE,GAAKnlB,EAAQtB,KAAK8e,KAAK2H,OAAO,EAAE,EAAI,MAC5E,KAAK,IAAKzmB,KAAK8e,KAAM9e,KAAK8e,KAAK2H,OAAO,EAAE,GAAKnlB,GAQnD,IAAK,GAAIwR,GAAE,EAAGA,EAAE0S,EAAS3jB,SAAUiR,EACjC9S,KAAK2jB,SAAS6B,EAAS1S,MAS3B4R,UAAW,WACP1kB,KAAK0mB,QAAU/I,EAAQ0G,KAAKrkB,KAAKqe,QACjC,IAAIsI,GAAWC,CACf,IAAK5mB,KAAK0mB,QAAV,CAKA,IAAK,GAFDG,GAAW7mB,KAAK0mB,QAAQ3C,MAAM,KAEzB+C,EAAK,EAAGA,EAAKD,EAAWhlB,OAAQilB,IAAQ,CAC7C,GAAIlG,GAAWiG,EAAWC,GAAM/C,MAAM,IAItC,QAHA4C,EAAY/F,EAAS,GAAGrT,cACxBqZ,EAAWhG,EAAS,GAEZ+F,EAAUtZ,QAAQ,OAAO,KAC7B,IAAK,GAAI,KACT,KAAK,QAAUrN,KAAKmjB,MAAQyD,CAAU,MACtC,KAAK,OAAU5mB,KAAKgf,SAAY4H,EAASvZ,QAAQ,OAAO,GAAK,MAC7D,KAAK,QAAUrN,KAAKojB,MAAQwD,EAASvZ,QAAQ,OAAO,GAAK,MACzD,KAAK,QAAUrN,KAAK2e,UAAYiI,EAASvZ,QAAQ,OAAO,GAAK,MAC7D,KAAK,WAAYrN,KAAK+mB,QAAUH,EAASvZ,QAAQ,OAAO,GAAK,MAC7D,KAAK,QAAUrN,KAAKimB,MAAQW,EAASvZ,QAAQ,OAAO,GAAK,MACzD,KAAK,IAAUrN,KAAK0b,EAAKwK,WAAWU,EAAW,MAC/C,KAAK,IAAU5mB,KAAK2b,EAAKuK,WAAWU,EAAW,MAE/C,KAAK,KAAU5mB,KAAKmmB,GAAKD,WAAWU,EAAW,MAC/C,KAAK,QAAU5mB,KAAKumB,KAAOK,EAASjJ,EAAQa,OAAOU,GAAK,MACxD,KAAK,QAAUlf,KAAKgnB,KAAOJ,EAASjJ,EAAQa,OAAOU,GAAK,MACxD,KAAK,QAAUlf,KAAKinB,KAAOL,EAASjJ,EAAQa,OAAOU,GAAK,MACxD,KAAK,SAAUlf,KAAKknB,OAASN,EAASjJ,EAAQa,OAAOU,GAAK,MAC1D,KAAK,QAAUlf,KAAKsmB,MAAQM,EAASjJ,EAAQa,OAAOU,GAAK,MACzD,KAAK,QAAUlf,KAAKmnB,MAASjB,WAAWU,GAAUjJ,EAAQa,OAAOU,GAAK,MACtE,KAAK,OAAUlf,KAAKonB,MAAQR,EAASjJ,EAAQa,OAAOU,GAAK,MACzD,KAAK,MAAUlf,KAAKqjB,GAAK6C,WAAWU,EAAW,MAC/C,KAAK,MAAU5mB,KAAKsjB,GAAK4C,WAAWU,EAAW,MAC/C,KAAK,MACL,IAAK,IAAU5mB,KAAKqmB,GAAKH,WAAWU,EAAW,MAC/C,KAAK,MAAU5mB,KAAKqnB,KAAM,CAAM,MAChC,KAAK,OAAUrnB,KAAKsnB,KAAOhU,SAASsT,EAAS,GAAK,MAClD,KAAK,QAAW5mB,KAAKunB,UAAW,CAAM,MACtC,KAAK,UAAUvnB,KAAKwmB,aAAeI,EAAS7C,MAAM,IAAM,MACxD,KAAK,WAAY/jB,KAAKof,SAAW8G,WAAWU,EAAW,MACvD,KAAK,iBAAkB5mB,KAAKsf,eAAiBsH,EAASjJ,EAAQa,OAAOU,GAAK,MAG1E,KAAK,KAAU0H,EAAWA,EAASvZ,QAAQ,OAAO,IACnCrN,KAAKsf,eAAiB3B,EAAQ6J,cAAcZ,GACzCjJ,EAAQ6J,cAAcZ,GAAYV,WAAWU,GAChD5mB,KAAKsf,gBAAkB3B,EAAQa,OAAOU,GACtC,MAEf,KAAK,OAAU0H,EAAWA,EAASvZ,QAAQ,OAAO,GACnC,IAAIoa,GAAW,QACM,IAAjBb,EAAS/kB,SACiC,GAA1C4lB,EAAU/D,QAAQkD,EAASH,OAAO,EAAE,MACM,GAA1CgB,EAAU/D,QAAQkD,EAASH,OAAO,EAAE,MACM,GAA1CgB,EAAU/D,QAAQkD,EAASH,OAAO,EAAE,MACrCzmB,KAAK8e,KAAM8H,IAOrC5mB,KAAK4jB,oBASTA,gBAAiB,WAEb,GADoB,SAAhB5jB,KAAK+mB,UAAoB/mB,KAAK2e,UAAY,QAC1C3e,KAAK2e,WAA+B,QAAlB3e,KAAK2e,UAAqB,CAC9C,GAAI+I,GAAW/J,EAAQgK,MAAM3nB,KAAK2e,UAC9B+I,KACF1nB,KAAKwmB,aAAekB,EAASE,QAAUF,EAASE,QAAQ7D,MAAM,KAAO,KACrE/jB,KAAKimB,MAAQyB,EAASG,QACtB7nB,KAAKgmB,UAAY0B,EAAS1B,UAAY0B,EAAS1B,UAAYhmB,KAAK2e,WAGpE,IAAK3e,KAAK0b,EAAG,CACT,GAAImM,GAAUlK,EAAQmK,UAAU9nB,KAAKimB,OAAStI,EAAQmK,UAAU9nB,KAAKimB,OAAStI,EAAQmK,UAAR,KAC9EnK,GAAQ+C,OAAO1gB,KAAM6nB,GAErB7nB,KAAKmmB,KAAOnmB,KAAK2b,IAAG3b,KAAK2b,GAAK,EAAM,EAAI3b,KAAKmmB,IAAMnmB,KAAK0b,IAC5C,IAAZ1b,KAAKmmB,IAAY1d,KAAKiV,IAAI1d,KAAK0b,EAAI1b,KAAK2b,GAAGgC,EAAQa,OAAOuJ,SAC5D/nB,KAAKgoB,QAAS,EACdhoB,KAAK2b,EAAG3b,KAAK0b,GAEf1b,KAAKioB,GAAKjoB,KAAK0b,EAAI1b,KAAK0b,EACxB1b,KAAKkoB,GAAKloB,KAAK2b,EAAI3b,KAAK2b,EACxB3b,KAAK4f,IAAM5f,KAAKioB,GAAGjoB,KAAKkoB,IAAIloB,KAAKioB,GACjCjoB,KAAKmY,EAAI1P,KAAK+U,KAAKxd,KAAK4f,IACpB5f,KAAKqnB,MACPrnB,KAAK0b,GAAK,EAAK1b,KAAK4f,IAAMjC,EAAQa,OAAO2J,MAAQnoB,KAAK4f,IAAMjC,EAAQa,OAAO4J,IAAMpoB,KAAK4f,GAAKjC,EAAQa,OAAO6J,MAC1GroB,KAAKioB,GAAKjoB,KAAK0b,EAAI1b,KAAK0b,EACxB1b,KAAKkoB,GAAKloB,KAAK2b,EAAI3b,KAAK2b,EACxB3b,KAAK4f,GAAK,GAEZ5f,KAAKsoB,KAAKtoB,KAAKioB,GAAGjoB,KAAKkoB,IAAIloB,KAAKkoB,GAC3BloB,KAAKqmB,KAAIrmB,KAAKqmB,GAAK,GAEnBrmB,KAAK8e,OAAQ9e,KAAK8e,KAAM,OAE7B9e,KAAKse,MAAQ,GAAIX,GAAQW,MAAMte,SAIrC2d,EAAQuF,KAAKqF,SACX/Y,KAAM,aAGNiQ,QAAS,SAAS+I,GAEhB,MAAOA,IAETnJ,QAAS,SAASmJ,GAEhB,MAAOA,KAGX7K,EAAQuF,KAAKuF,SAAW9K,EAAQuF,KAAKqF,QAgBrC5K,EAAQ0G,MAGN,MAAS,+EACT,YAAa,gHACb,YAAa,gHACb,YAAa,4IAEf1G,EAAQ0G,KAAK,aAAe1G,EAAQ0G,KAAK,aACzC1G,EAAQ0G,KAAR,OAAyB1G,EAAQ0G,KAAK,aACtC1G,EAAQ0G,KAAK,eAAiB1G,EAAQ0G,KAAK,aAC3C1G,EAAQ0G,KAAK,eAAiB1G,EAAQ0G,KAAK,aAE3C1G,EAAQa,QACNkK,GAAK,kBACLC,QAAU,mBACVC,OAAS,kBACTC,OAAS,kBACTrJ,IAAM,kBACNN,IAAM,oBACN4J,WAAa,oBACbf,MAAQ,MACRgB,SAAW,GAEXC,SAAW,kBACXC,KAAO,OAGPC,YAAe,EACfzK,WAAe,EACfC,WAAe,EACfyK,cAAe,EACfC,UAAe,EACfzJ,YAAe,EACf0J,oBAAsB,QAGtBlB,MAAQ,mBACRC,IAAQ,mBACRC,IAAQ,oBACRiB,IAAQ,mBACRC,IAAQ,mBAKRC,MAAQ,SAASlN,EAAQO,EAAQ4M,GAC7B,GAAIC,GAAMpN,EAASO,CACnB,OAAO4M,GAAQhhB,KAAK+U,KAAK,EAAMkM,EAAMA,IAOzCC,MAAQ,SAASrN,EAAQM,EAAKC,GAC5B,GAAI6M,GAAMpN,EAASO,EACf+M,EAAM,GAAKtN,CAEf,OADAoN,GAAMjhB,KAAKohB,KAAM,EAAMH,IAAQ,EAAMA,GAAOE,GACpCnhB,KAAK8U,IAAI,IAAMvd,KAAK2oB,QAAU/L,IAAM8M,GAM9CI,MAAQ,SAASxN,EAAQyN,GAIvB,IAAK,GAFDL,GAAKrM,EADL2M,EAAS,GAAK1N,EAEdM,EAAM5c,KAAK2oB,QAAU,EAAIlgB,KAAKwhB,KAAKF,GAC9BjX,EAAI,EAAGA,GAAK,GAAIA,IAIvB,GAHA4W,EAAMpN,EAAS7T,KAAK6U,IAAIV,GACxBS,EAAOrd,KAAK2oB,QAAU,EAAIlgB,KAAKwhB,KAAKF,EAAKthB,KAAKohB,KAAM,EAAMH,IAAM,EAAMA,GAAMM,IAAYpN,EACxFA,GAAOS,EACH5U,KAAKiV,IAAIL,IAAS,MAAa,MAAOT,EAG5C,OADA6D,OAAM,4BACG,MAMXyJ,MAAQ,SAAS5N,EAAOO,GACtB,GAAI6M,EACJ,OAAIpN,GAAS,MACXoN,EAAMpN,EAASO,GACL,EAAKP,EAASA,IAAWO,GAAS,EAAM6M,EAAMA,GAAQ,GAAGpN,EAAQ7T,KAAKkK,KAAK,EAAM+W,IAAM,EAAMA,MAEhG,EAAM7M,GAMjBsN,MAAQ,SAASlL,GAIf,MAHIxW,MAAKiV,IAAIuB,GAAG,IACdA,EAAGA,EAAE,EAAK,GAAK,GAEVxW,KAAK2hB,KAAKnL,IAInBoL,KAAO,SAASpL,GAAI,MAAO,GAAI,IAAKA,GAAG,EAAIA,EAAE,IAAM,EAAI,KAAKA,KAC5DqL,KAAO,SAASrL,GAAI,MAAO,KAAMA,GAAG,EAAI,IAAKA,GAAG,EAAI,OAAQA,KAC5DsL,KAAO,SAAStL,GAAI,MAAO,UAAWA,EAAEA,GAAG,EAAI,IAAKA,IACpDuL,KAAO,SAASvL,GAAI,MAAOA,GAAEA,EAAEA,GAAG,GAAK,OACvCwL,KAAO,SAASlO,EAAGC,EAAGC,EAAGC,EAAGE,GAAM,MAAOL,GAAGK,EAAIJ,EAAG/T,KAAK6U,IAAI,EAAIV,GAAKH,EAAGhU,KAAK6U,IAAI,EAAIV,GAAKF,EAAGjU,KAAK6U,IAAI,EAAIV,IAE1G8N,KAAO,SAASC,EAAOC,GACrB,MAAOniB,MAAKohB,KAAK,EAAIc,IAAQ,EAAIA,GAAQC,IAI3CC,KAAO,SAAS5L,GAAK,MAAIA,GAAI,GAAa,EAAgB,GAG1D6L,WAAa,SAAS7L,GAEpB,MADAA,GAAKxW,KAAKiV,IAAIuB,GAAKjf,KAAK0oB,GAAMzJ,EAAIA,EAAKjf,KAAK6qB,KAAK5L,GAAGjf,KAAK4oB,QAO3DmC,WAAa,SAAS9L,GAEpB,MADAA,GAAIxW,KAAKiV,IAAIuB,GAAKjf,KAAK2oB,QAAW1J,EAAIA,EAAKjf,KAAK6qB,KAAK5L,GAAGjf,KAAK0oB,IAK/DsC,OAAS,SAAS1O,EAAQM,EAAKC,GAC7B,GAAIpU,KAAKiV,IAAId,GAAO5c,KAAK2oB,QAAS,OAAQsC,OAAOC,GACjD,IAAItO,GAAK5c,KAAK2oB,QAAS,MAAOsC,QAAOE,iBACrC,IAAIvO,IAAM,EAAI5c,KAAK2oB,QAAS,OAAQ,EAAIsC,OAAOE,iBAE/C,IAAIzB,GAAKpN,EAAOO,CAChB,OAAOpU,MAAKkK,IAAIlK,KAAK8U,KAAKvd,KAAK2oB,QAAQ/L,GAAK,IAAMN,EAAO7T,KAAKkK,KAAK,EAAI+W,IAAM,EAAIA,IAAM,GAGzF0B,GAAK,SAASnM,EAAEoM,GACd,MAAO,GAAI5iB,KAAKwhB,KAAKhL,EAAExW,KAAKmiB,IAAIS,IAAMrrB,KAAK2oB,SAI7C2C,UAAY,SAAShP,EAAQyN,GAC3B,GAAInN,GAAK5c,KAAKorB,GAAG,EAAIrB,GACjBwB,EAAM,EACN7B,EAAK,CACT,IACE6B,EAAM3O,EACN8M,EAAKpN,EAAO7T,KAAK6U,IAAIiO,GACrB3O,EAAK5c,KAAKorB,GAAG3iB,KAAKmiB,IAAItO,EAAO7T,KAAKkK,KAAK,EAAI+W,IAAM,EAAIA,IAAM,GAAKK,SACzDthB,KAAKiV,IAAId,EAAI2O,GAAM,MAC5B,OAAO3O,IAMT4O,KAAO,SAASvM,GAEd,GAAIwM,GAAGhjB,KAAKmiB,IAAI3L,EAEhB,OADAwM,IAAIA,EAAE,EAAIA,GAAG,GAIfC,KAAO,SAASzM,GAEd,GAAIwM,GAAGhjB,KAAKmiB,IAAI3L,EAEhB,OADAwM,IAAIA,EAAE,EAAIA,GAAG,GAIfE,KAAO,SAAS1M,GAEd,GAAIwM,GAAGhjB,KAAKmiB,IAAI3L,EAEhB,OADAwM,IAAIA,EAAE,EAAIA,IAAIA,EAAE,EAAIA,IAItBG,MAAQ,SAAS3M,GAGf,OADQA,GAAI,EAAG,GAAK,GACVxW,KAAKkK,IAAKlK,KAAKiV,IAAIuB,GAAKxW,KAAK+U,KAAKyB,EAAEA,EAAE,KAGlD4M,MAAQ,SAAS5M,GAEf,MAAO,GAAIxW,KAAKkK,IAAIlK,KAAK+U,MAAMyB,EAAE,GAAK,GAAOxW,KAAK+U,MAAMyB,EAAE,GAAK,KAGjE6M,MAAQ,SAAS7M,GAEf,MAAOxW,MAAKkK,KAAKsM,EAAE,IAAMA,EAAE,IAAM,GAInC8M,GAAK,SAASrQ,EAAEvD,EAAE0E,GAEhB,GAAImP,GAAM7T,EAAE0E,CACZ,OAAOnB,GAAEjT,KAAK+U,KAAK,EAAMwO,EAAKA,IAIhCC,QAAS,SAASrM,GAChB,GAAIsM,GAAK,GAAI9oB,MACb8oB,GAAG,GAAKlsB,KAAKmsB,IAAMvM,GAAM5f,KAAKosB,IAAMxM,GAAM5f,KAAKqsB,IAAMzM,GAAM5f,KAAKssB,IAAM1M,EAAK5f,KAAKusB,OAChFL,EAAG,GAAKtM,GAAM5f,KAAKwsB,IAAM5M,GAAM5f,KAAKqsB,IAAMzM,GAAM5f,KAAKssB,IAAM1M,EAAK5f,KAAKusB,MACrE,IAAInM,GAAIR,EAAKA,CAKb,OAJAsM,GAAG,GAAK9L,GAAKpgB,KAAKysB,IAAM7M,GAAM5f,KAAK0sB,IAAM9M,EAAK5f,KAAK2sB,MACnDvM,GAAKR,EACLsM,EAAG,GAAK9L,GAAKpgB,KAAK4sB,IAAMhN,EAAK5f,KAAK6sB,KAClCX,EAAG,GAAK9L,EAAIR,EAAK5f,KAAK8sB,IACfZ,GAGTa,QAAS,SAASnQ,EAAKoQ,EAAMC,EAAMf,GAGjC,MAFAe,IAAQD,EACRA,GAAQA,EACDd,EAAG,GAAKtP,EAAMqQ,GAAQf,EAAG,GAAKc,GAAMd,EAAG,GAAIc,GAAMd,EAAG,GAAKc,EAAKd,EAAG,OAG1EgB,YAAa,SAASC,EAAKvN,EAAIsM,GAG7B,IAAK,GAFDkB,GAAI,GAAI,EAAGxN,GACXhD,EAAMuQ,EACDra,EAAI6K,EAAQa,OAAOuK,SAAUjW,IAAMA,EAAG,CAC7C,GAAIua,GAAI5kB,KAAK6U,IAAIV,GACbwD,EAAI,EAAKR,EAAKyN,EAAIA,CAKtB,IAFAjN,GAAKpgB,KAAK+sB,QAAQnQ,EAAKyQ,EAAG5kB,KAAKgV,IAAIb,GAAMsP,GAAMiB,IAAQ/M,EAAI3X,KAAK+U,KAAK4C,IAAMgN,EAC3ExQ,GAAOwD,EACH3X,KAAKiV,IAAI0C,GAAKzC,EAAQa,OAAOuJ,MAC/B,MAAOnL,GAGX,MADAe,GAAQC,YAAY,uCACbhB,GAQTuP,IAAK,EACLC,IAAK,IACLC,IAAK,QACLC,IAAK,UACLC,IAAK,gBACLC,IAAK,IACLC,IAAK,OACLC,IAAK,oBACLC,IAAK,oBACLC,IAAK,kBACLC,IAAK,oBACLC,IAAK,aAMPnP,EAAQW,MAAQX,EAAQkD,OAEtBE,WAAa,SAASuM,GAKpB,GAJAttB,KAAKue,WAAaZ,EAAQa,OAAO4K,UAC7BkE,EAAK3O,WAA+B,QAAlB2O,EAAK3O,YACzB3e,KAAKue,WAAaZ,EAAQa,OAAOmB,aAE/B2N,GAAQA,EAAK9G,aAAc,CAC7B,IAAK,GAAI1T,GAAE,EAAGA,EAAEwa,EAAK9G,aAAa3kB,OAAQiR,IACxCwa,EAAK9G,aAAa1T,GAAGoT,WAAWoH,EAAK9G,aAAa1T,GAExB,IAAxBwa,EAAK9G,aAAa,IAAmC,GAAxB8G,EAAK9G,aAAa,IAAmC,GAAxB8G,EAAK9G,aAAa,KAC9ExmB,KAAKue,WAAaZ,EAAQa,OAAOC,YAE/B6O,EAAK9G,aAAa3kB,OAAS,IACD,GAAxByrB,EAAK9G,aAAa,IAAmC,GAAxB8G,EAAK9G,aAAa,IACvB,GAAxB8G,EAAK9G,aAAa,IAAmC,GAAxB8G,EAAK9G,aAAa,KACjDxmB,KAAKue,WAAaZ,EAAQa,OAAOE,WACjC4O,EAAK9G,aAAa,IAAM7I,EAAQa,OAAOsK,WACvCwE,EAAK9G,aAAa,IAAM7I,EAAQa,OAAOsK,WACvCwE,EAAK9G,aAAa,IAAM7I,EAAQa,OAAOsK,WACvCwE,EAAK9G,aAAa,GAAM8G,EAAK9G,aAAa,GAAG,IAAa,IAI5D8G,IACFttB,KAAK0b,EAAI4R,EAAK5R,EACd1b,KAAK2b,EAAI2R,EAAK3R,EACd3b,KAAK4f,GAAK0N,EAAK1N,GACf5f,KAAKsoB,IAAMgF,EAAKhF,IAChBtoB,KAAKwmB,aAAe8G,EAAK9G,eAO7B9G,eAAiB,SAAUxB,GACzB,MAAIle,MAAKue,YAAcL,EAAKK,eAEjBve,KAAK0b,GAAKwC,EAAKxC,GAAKjT,KAAKiV,IAAI1d,KAAK4f,GAAG1B,EAAK0B,IAAM,SAIhD5f,KAAKue,YAAcZ,EAAQa,OAAOC,WACnCze,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,IACvCxmB,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,IAC1CxmB,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,GAC5CxmB,KAAKue,YAAcZ,EAAQa,OAAOE,WACnC1e,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,IACvCxmB,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,IAC1CxmB,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,IAC1CxmB,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,IAC1CxmB,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,IAC1CxmB,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,IAC1CxmB,KAAKwmB,aAAa,IAAMtI,EAAKsI,aAAa,GAC3CxmB,KAAKue,YAAcZ,EAAQa,OAAO2K,eAClCjL,EAAKK,YAAcZ,EAAQa,OAAO2K,gBAC5C1I,MAAM,2DACC,MAmBXZ,uBAAyB,SAAS0N,GAChC,GAGIC,GACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EAXAC,EAAYR,EAAEtO,EACd+O,EAAWT,EAAEpO,EACb8O,EAASV,EAAE/M,EAAI+M,EAAE/M,EAAI,CAgBzB,IAAIwN,GAAYrQ,EAAQa,OAAOmK,SAAWqF,GAAY,MAAQrQ,EAAQa,OAAOmK,QACzEqF,GAAYrQ,EAAQa,OAAOmK,YACxB,IAAIqF,EAAWrQ,EAAQa,OAAOmK,SAAWqF,EAAW,MAAQrQ,EAAQa,OAAOmK,QAC9EqF,EAAWrQ,EAAQa,OAAOmK,YACvB,IAAKqF,GAAYrQ,EAAQa,OAAOmK,SAAaqF,EAAWrQ,EAAQa,OAAOmK,QAG5E,MADAhL,GAAQC,YAAY,4BAA4BoQ,GACzC,IAeT,OAZID,GAAYpQ,EAAQa,OAAOkK,KAAIqF,GAAc,EAAEpQ,EAAQa,OAAOkK,IAClEkF,EAAUnlB,KAAK6U,IAAI0Q,GACnBF,EAAUrlB,KAAKgV,IAAIuQ,GACnBH,EAAWD,EAAUA,EACrBD,EAAK3tB,KAAK0b,EAAKjT,KAAK+U,KAAK,EAAQxd,KAAK4f,GAAKiO,GAC3CL,GAAKG,EAAKM,GAAUH,EAAUrlB,KAAKgV,IAAIsQ,GACvCN,GAAKE,EAAKM,GAAUH,EAAUrlB,KAAK6U,IAAIyQ,GACvCL,GAAMC,GAAM,EAAI3tB,KAAK4f,IAAOqO,GAAUL,EAEtCL,EAAEtO,EAAIuO,EACND,EAAEpO,EAAIsO,EACNF,EAAE/M,EAAIkN,EAhCS,GAqCjB1N,uBAAyB,SAAUuN,GAGrC,GAIQW,GACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EAKAf,EACAC,EACAC,EALAT,EAAID,EAAEtO,EACNwO,EAAIF,EAAEpO,EACNuO,EAAIH,EAAE/M,EAAI+M,EAAE/M,EAAI,CAUpB,KALU,EACV0N,EAAIzlB,KAAK+U,KAAKgQ,EAAEA,EAAEC,EAAEA,GACpBU,EAAK1lB,KAAK+U,KAAKgQ,EAAEA,EAAEC,EAAEA,EAAEC,EAAEA,GAGrBQ,EAAEluB,KAAK0b,EA/BH,OAuCJ,IALU,EACVqS,EAAY,EAIRI,EAAGnuB,KAAK0b,EAvCR,MA0CA,MAFAsS,GAAWrQ,EAAQa,OAAOmK,aAC1BsF,GAAYjuB,KAAK2b,OAMrBoS,GAAUtlB,KAAKsmB,MAAMtB,EAAED,EAY3BY,GAAKV,EAAES,EACPE,EAAKH,EAAEC,EACPG,EAAK,EAAI7lB,KAAK+U,KAAK,EAAIxd,KAAK4f,IAAI,EAAI5f,KAAK4f,IAAIyO,EAAGA,GAChDI,EAAQJ,GAAI,EAAIruB,KAAK4f,IAAI0O,EACzBI,EAAQN,EAAGE,EACXQ,EAAO,CAIP,IAEIA,IACAN,EAAKxuB,KAAK0b,EAAEjT,KAAK+U,KAAK,EAAIxd,KAAK4f,GAAG8O,EAAMA,GAGxCT,EAASC,EAAEO,EAAMf,EAAEgB,EAAMF,GAAI,EAAIxuB,KAAK4f,GAAG8O,EAAMA,GAE/CH,EAAKvuB,KAAK4f,GAAG4O,GAAIA,EAAGP,GACpBK,EAAK,EAAI7lB,KAAK+U,KAAK,EAAI+Q,GAAI,EAAIA,GAAIF,EAAGA,GACtCM,EAAON,GAAI,EAAIE,GAAID,EACnBM,EAAOR,EAAGE,EACVO,EAAQD,EAAKH,EAAME,EAAKD,EACxBD,EAAQE,EACRD,EAAQE,QAELC,EAAMA,EAnFHG,OAmFqBF,EAlFrB,GA0FV,OALAd,GAASvlB,KAAKwhB,KAAK2E,EAAKnmB,KAAKiV,IAAIiR,IAEjCpB,EAAEtO,EAAI8O,EACNR,EAAEpO,EAAI6O,EACNT,EAAE/M,EAAIyN,EACCV,GAOT0B,+BAAiC,SAAU1B,GACzC,GAGIQ,GACAC,EACAC,EAEAiB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAjC,EACAkC,EACAC,EApBAtC,EAAID,EAAEtO,EACNwO,EAAIF,EAAEpO,EACNuO,EAAIH,EAAE/M,EAAI+M,EAAE/M,EAAI,CAyBpB,IALAgN,EAAItH,WAAWsH,GACfC,EAAIvH,WAAWuH,GACfC,EAAIxH,WAAWwH,GAEfoC,GAAU,EACD,GAALtC,EAEAO,EAAYtlB,KAAKsmB,MAAMtB,EAAED,OAIzB,IAAIC,EAAI,EAEJM,EAAYpQ,EAAQa,OAAOmK,YAE1B,IAAI8E,EAAI,EAETM,GAAapQ,EAAQa,OAAOmK,YAM5B,IAFAmH,GAAU,EACV/B,EAAY,EACRL,EAAI,EAEJM,EAAWrQ,EAAQa,OAAOmK,YAEzB,MAAI+E,EAAI,GAQT,MAFAM,GAAWrQ,EAAQa,OAAOmK,aAC1BsF,GAAUjuB,KAAK2b,EALfqS,IAAYrQ,EAAQa,OAAOmK,QA2CvC,MAjCAwG,GAAK3B,EAAEA,EAAIC,EAAEA,EACbyB,EAAIzmB,KAAK+U,KAAK2R,GACdC,EAAK1B,EAAI/P,EAAQa,OAAOyK,KACxBqG,EAAK7mB,KAAK+U,KAAK4R,EAAKA,EAAKD,GACzBK,EAASJ,EAAKE,EACdI,EAASR,EAAII,EACbG,EAAUD,EAASA,EAASA,EAC5BH,EAAK3B,EAAI1tB,KAAK2b,EAAI3b,KAAKsoB,IAAMmH,EAC7BI,EAAMX,EAAIlvB,KAAK0b,EAAI1b,KAAK4f,GAAK8P,EAASA,EAASA,EAC/CH,EAAK9mB,KAAK+U,KAAK6R,EAAGA,EAAKQ,EAAMA,GAC7BF,EAASN,EAAKE,EACdK,EAASC,EAAMN,EACf5B,EAAK3tB,KAAK0b,EAAIjT,KAAK+U,KAAK,EAAMxd,KAAK4f,GAAK+P,EAASA,GAG7C1B,EAFA2B,GAAUjS,EAAQa,OAAOwK,SAEhBkG,EAAIU,EAASjC,EAEjBiC,IAAWjS,EAAQa,OAAOwK,SAEtBkG,GAAKU,EAASjC,EAIdD,EAAIiC,EAAShC,GAAM3tB,KAAK4f,GAAK,GAE3B,GAAXkQ,IAEA9B,EAAWvlB,KAAKwhB,KAAK0F,EAASC,IAGlCrC,EAAEtO,EAAI8O,EACNR,EAAEpO,EAAI6O,EACNT,EAAE/M,EAAIyN,EACCV,GAMTzN,oBAAsB,SAAWyN,GAE/B,GAAIvtB,KAAKue,YAAcZ,EAAQa,OAAOC,WAIpC8O,EAAEtO,GAAKjf,KAAKwmB,aAAa,GACzB+G,EAAEpO,GAAKnf,KAAKwmB,aAAa,GACzB+G,EAAE/M,GAAKxgB,KAAKwmB,aAAa,OAGtB,IAAIxmB,KAAKue,YAAcZ,EAAQa,OAAOE,WAC3C,CACE,GAAIqR,GAAO/vB,KAAKwmB,aAAa,GACzBwJ,EAAOhwB,KAAKwmB,aAAa,GACzByJ,EAAOjwB,KAAKwmB,aAAa,GACzB0J,EAAOlwB,KAAKwmB,aAAa,GACzB2J,EAAOnwB,KAAKwmB,aAAa,GACzB4J,EAAOpwB,KAAKwmB,aAAa,GACzB6J,EAAOrwB,KAAKwmB,aAAa,GAGzB8J,EAAQD,GAAa9C,EAAEtO,EAAImR,EAAM7C,EAAEpO,EAAIgR,EAAM5C,EAAE/M,GAAKuP,EACpDQ,EAAQF,GAAOD,EAAM7C,EAAEtO,EAAUsO,EAAEpO,EAAI+Q,EAAM3C,EAAE/M,GAAKwP,EACpDQ,EAAQH,IAAOF,EAAM5C,EAAEtO,EAAIiR,EAAM3C,EAAEpO,EAAUoO,EAAE/M,GAAKyP,CACxD1C,GAAEtO,EAAIqR,EACN/C,EAAEpO,EAAIoR,EACNhD,EAAE/M,EAAIgQ,IAQVzQ,sBAAwB,SAAUwN,GAEhC,GAAIvtB,KAAKue,YAAcZ,EAAQa,OAAOC,WAIpC8O,EAAEtO,GAAKjf,KAAKwmB,aAAa,GACzB+G,EAAEpO,GAAKnf,KAAKwmB,aAAa,GACzB+G,EAAE/M,GAAKxgB,KAAKwmB,aAAa,OAGtB,IAAIxmB,KAAKue,YAAcZ,EAAQa,OAAOE,WAC3C,CACE,GAAIqR,GAAO/vB,KAAKwmB,aAAa,GACzBwJ,EAAOhwB,KAAKwmB,aAAa,GACzByJ,EAAOjwB,KAAKwmB,aAAa,GACzB0J,EAAOlwB,KAAKwmB,aAAa,GACzB2J,EAAOnwB,KAAKwmB,aAAa,GACzB4J,EAAOpwB,KAAKwmB,aAAa,GACzB6J,EAAOrwB,KAAKwmB,aAAa,GACzBiK,GAASlD,EAAEtO,EAAI8Q,GAASM,EACxBK,GAASnD,EAAEpO,EAAI6Q,GAASK,EACxBM,GAASpD,EAAE/M,EAAIyP,GAASI,CAI5B9C,GAAEtO,EAAWwR,EAAQL,EAAMM,EAAQP,EAAMQ,EACzCpD,EAAEpO,GAAKiR,EAAMK,EAAcC,EAAQR,EAAMS,EACzCpD,EAAE/M,EAAK2P,EAAMM,EAAQP,EAAMQ,EAAcC,MAU/ChT,EAAQiT,MAAQjT,EAAQkD,OAWpBE,WAAa,SAAS9B,EAAEE,EAAEqB,GACxB,GAAgB,eAAZ,KAAOvB,EAAP,gBAAOA,IACTjf,KAAKif,EAAIA,EAAE,GACXjf,KAAKmf,EAAIF,EAAE,GACXjf,KAAKwgB,EAAIvB,EAAE,IAAM,MACZ,IAAgB,gBAALA,QAA6B,KAALE,EAAkB,CAC1D,GAAI0R,GAAS5R,EAAE8E,MAAM,IACrB/jB,MAAKif,EAAIiH,WAAW2K,EAAO,IAC3B7wB,KAAKmf,EAAI+G,WAAW2K,EAAO,IAC3B7wB,KAAKwgB,EAAI0F,WAAW2K,EAAO,KAAO,MAElC7wB,MAAKif,EAAIA,EACTjf,KAAKmf,EAAIA,EACTnf,KAAKwgB,EAAIA,GAAK,GAWlBsQ,MAAQ,WACN,MAAO,IAAInT,GAAQiT,MAAM5wB,KAAKif,EAAGjf,KAAKmf,EAAGnf,KAAKwgB,IAWhDpT,SAAW,WACP,MAAQ,KAAOpN,KAAKif,EAAI,MAAQjf,KAAKmf,GAWzC4R,cAAgB,WACZ,MAAQ/wB,MAAKif,EAAI,KAAOjf,KAAKmf,KAIrCxB,EAAQ6J,eACJ,UAAa,EACb,QAAe,eACf,MAAe,eACf,QAAc,gBACd,QAAe,eACf,KAAc,gBACd,KAAe,eACf,QAAa,iBACb,OAAc,gBACd,SAAe,SACf,UAAc,gBACd,OAAc,WACd,KAAc,iBAGlB7J,EAAQmK,WACN,OAAUpM,EAAE,QAAWyK,GAAG,QAAS6K,YAAY,cAC/C,OAAUtV,EAAE,QAAWyK,GAAG,QAAS6K,YAAY,6BAC/C,OAAUtV,EAAE,QAAWyK,GAAG,cAAe6K,YAAY,wBACrD,OAAUtV,EAAE,QAAWyK,GAAG,QAAS6K,YAAY,YAC/C,MAAStV,EAAE,YAAaC,EAAE,WAAaqV,YAAY,aACnD,SAAUtV,EAAE,QAASyK,GAAG,OAAQ6K,YAAY,uBAC5C,OAAUtV,EAAE,QAAWyK,GAAG,OAAQ6K,YAAY,4BAC9C,UAAatV,EAAE,YAAaC,EAAE,YAAaqV,YAAY,iBACvD,QAAWtV,EAAE,WAAYyK,GAAG,IAAO6K,YAAY,8BAC/C,SAAYtV,EAAE,QAAWyK,GAAG,OAAQ6K,YAAY,mCAChD,OAAUtV,EAAE,QAAWyK,GAAG,cAAgB6K,YAAY,qBACtD,QAAWtV,EAAE,YAAayK,GAAG,YAAa6K,YAAY,eACtD,UAAatV,EAAE,YAAayK,GAAG,YAAa6K,YAAY,yBACxD,QAAWtV,EAAE,UAAWC,EAAE,UAAWqV,YAAY,eACjD,QAAWtV,EAAE,YAAayK,GAAG,SAAU6K,YAAY,oBACnD,KAAQtV,EAAE,UAAWyK,GAAG,OAAQ6K,YAAY,mCAC5C,QAAWtV,EAAE,QAAWyK,GAAG,MAAO6K,YAAY,2BAC9C,SAAYtV,EAAE,WAAYyK,GAAG,SAAU6K,YAAY,gBACnD,SAAYtV,EAAE,YAAayK,GAAG,SAAU6K,YAAY,gBACpD,SAAYtV,EAAE,YAAayK,GAAG,SAAU6K,YAAY,gBACpD,SAAYtV,EAAE,YAAayK,GAAG,SAAU6K,YAAY,gBACpD,SAAYtV,EAAE,YAAayK,GAAG,SAAU6K,YAAY,gBACpD,SAAYtV,EAAE,YAAayK,GAAG,SAAU6K,YAAY,6BACpD,SAAYtV,EAAE,QAAWyK,GAAG,MAAO6K,YAAY,gCAC/C,UAAatV,EAAE,QAAWyK,GAAG,MAAO6K,YAAY,gBAChD,SAAYtV,EAAE,QAAWyK,GAAG,MAAO6K,YAAY,gBAC/C,SAAYtV,EAAE,QAAWyK,GAAG,MAAO6K,YAAY,gBAC/C,OAAUtV,EAAE,QAAWyK,GAAG,IAAO6K,YAAY,SAC7C,MAAStV,EAAE,QAAWyK,GAAG,IAAO6K,YAAY,gCAC5C,OAAUtV,EAAE,QAAWyK,GAAG,OAAQ6K,YAAY,cAC9C,OAAUtV,EAAE,QAAWyK,GAAG,QAAS6K,YAAY,cAC/C,OAAUtV,EAAE,QAAWyK,GAAG,IAAO6K,YAAY,mBAC7C,UAAatV,EAAE,UAAWC,EAAE,UAAWqV,YAAY,0BACnD,SAAYtV,EAAE,QAAWyK,GAAG,QAAW6K,YAAY,yBACnD,OAAUtV,EAAE,QAAWyK,GAAG,MAAO6K,YAAY,oBAC7C,QAAWtV,EAAE,QAAWC,EAAE,aAAcqV,YAAY,kBACpD,SAAYtV,EAAE,QAAWC,EAAE,aAAcqV,YAAY,WACrD,OAAUtV,EAAE,QAAWyK,GAAG,MAAO6K,YAAY,UAC7C,OAAUtV,EAAE,QAAWyK,GAAG,OAAQ6K,YAAY,UAC9C,OAAUtV,EAAE,QAAWyK,GAAG,OAAQ6K,YAAY,UAC9C,OAAUtV,EAAE,QAAWyK,GAAG,cAAe6K,YAAY,UACrD,QAAWtV,EAAE,QAAWC,EAAE,QAAWqV,YAAY,8BAGnDrT,EAAQgK,OACN,OAAUC,QAAS,QAASC,QAAS,QAAS7B,UAAW,SACzD,QAAW4B,QAAS,uBAAwBC,QAAS,QAAS7B,UAAW,wCACzE,OAAU4B,QAAS,QAASC,QAAS,QAAS7B,UAAW,6BACzD,OAAUiL,SAAU,2CAA4CpJ,QAAS,SAAU7B,UAAW,6BAC9F,SAAY4B,QAAS,mBAAoBC,QAAS,SAAU7B,UAAW,+BACvE,UAAa4B,QAAS,mBAAoBC,QAAS,UAAW7B,UAAW,yBACzE,eAAkB4B,QAAS,qBAAsBC,QAAS,SAAU7B,UAAW,iBAC/E,OAAU4B,QAAS,qDAAsDC,QAAS,WAAY7B,UAAW,gBACzG,QAAW4B,QAAS,6CAA8CC,QAAS,OAAQ7B,UAAW,mCAC9F,QAAW4B,QAAS,yDAA0DC,QAAS,OAAQ7B,UAAW,cAG5GrI,EAAQkB,MAAQ,GAAIlB,GAAQuF,KAAK,SACjCvF,EAAQgK,MAAR,MAAyBhK,EAAQgK,MAAR,OAIzBhK,EAAQoI,gBACN,gDAAiD,MACjD,SAAY,OACZ,wCAAyC,OACzC,aAAgB,OAChB,oBAAuB,QACvB,sBAAuB,QACvB,+BAAgC,OAChC,uCAAwC,OAgC1CpI,EAAQuF,KAAKgO,KACX1hB,KAAO,WAEL,GAAI/G,KAAKiV,IAAI1d,KAAKgnB,KAAOhnB,KAAKinB,MAAQtJ,EAAQa,OAAOuJ,MAElD,WADApK,GAAQC,YAAY,wBAGvB5d,MAAKgsB,KAAOhsB,KAAK2b,EAAI3b,KAAK0b,EAC1B1b,KAAK4f,GAAK,EAAMnX,KAAKohB,IAAI7pB,KAAKgsB,KAAK,GACnChsB,KAAK0c,GAAKjU,KAAK+U,KAAKxd,KAAK4f,IAEzB5f,KAAKmxB,OAAO1oB,KAAK6U,IAAItd,KAAKgnB,MAC1BhnB,KAAKoxB,OAAO3oB,KAAKgV,IAAIzd,KAAKgnB,MAC1BhnB,KAAKqxB,GAAGrxB,KAAKmxB,OACbnxB,KAAK0pB,IAAM1pB,KAAKmxB,OAChBnxB,KAAKsxB,IAAM3T,EAAQa,OAAOgL,MAAMxpB,KAAK0c,GAAG1c,KAAKmxB,OAAOnxB,KAAKoxB,QACzDpxB,KAAKuxB,IAAM5T,EAAQa,OAAO0L,MAAMlqB,KAAK0c,GAAG1c,KAAKmxB,OAAOnxB,KAAKoxB,QAEzDpxB,KAAKmxB,OAAO1oB,KAAK6U,IAAItd,KAAKinB,MAC1BjnB,KAAKoxB,OAAO3oB,KAAKgV,IAAIzd,KAAKinB,MAC1BjnB,KAAKwxB,GAAGxxB,KAAKmxB,OACbnxB,KAAKyxB,IAAM9T,EAAQa,OAAOgL,MAAMxpB,KAAK0c,GAAG1c,KAAKmxB,OAAOnxB,KAAKoxB,QACzDpxB,KAAK0xB,IAAM/T,EAAQa,OAAO0L,MAAMlqB,KAAK0c,GAAG1c,KAAKmxB,OAAOnxB,KAAKoxB,QAEzDpxB,KAAKmxB,OAAO1oB,KAAK6U,IAAItd,KAAKumB,MAC1BvmB,KAAKoxB,OAAO3oB,KAAKgV,IAAIzd,KAAKumB,MAC1BvmB,KAAK2xB,GAAG3xB,KAAKmxB,OACbnxB,KAAK4xB,IAAMjU,EAAQa,OAAO0L,MAAMlqB,KAAK0c,GAAG1c,KAAKmxB,OAAOnxB,KAAKoxB,QAErD3oB,KAAKiV,IAAI1d,KAAKgnB,KAAOhnB,KAAKinB,MAAQtJ,EAAQa,OAAOuJ,MACnD/nB,KAAK6xB,KAAO7xB,KAAKsxB,IAAMtxB,KAAKsxB,IAAMtxB,KAAKyxB,IAAKzxB,KAAKyxB,MAAOzxB,KAAK0xB,IAAM1xB,KAAKuxB,KAExEvxB,KAAK6xB,IAAM7xB,KAAK0pB,IAElB1pB,KAAK2c,EAAI3c,KAAKsxB,IAAMtxB,KAAKsxB,IAAMtxB,KAAK6xB,IAAM7xB,KAAKuxB,IAC/CvxB,KAAK8xB,GAAK9xB,KAAK0b,EAAIjT,KAAK+U,KAAKxd,KAAK2c,EAAI3c,KAAK6xB,IAAM7xB,KAAK4xB,KAAK5xB,KAAK6xB,KAKlEpS,QAAS,SAAS8N,GAEhB,GAAIwE,GAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,CAEVnf,MAAKiyB,QAAQxpB,KAAK6U,IAAI0U,GACtBhyB,KAAKkyB,QAAQzpB,KAAKgV,IAAIuU,EAEtB,IAAIG,GAAKxU,EAAQa,OAAO0L,MAAMlqB,KAAK0c,GAAG1c,KAAKiyB,QAAQjyB,KAAKkyB,SACpDE,EAAKpyB,KAAK0b,EAAIjT,KAAK+U,KAAKxd,KAAK2c,EAAI3c,KAAK6xB,IAAMM,GAAInyB,KAAK6xB,IACrDQ,EAAQryB,KAAK6xB,IAAMlU,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OACxDrH,EAAImT,EAAM3pB,KAAK6U,IAAI+U,GAASryB,KAAKqjB,GACjClE,EAAInf,KAAK8xB,GAAKM,EAAM3pB,KAAKgV,IAAI4U,GAASryB,KAAKsjB,EAI/C,OAFAiK,GAAEtO,EAAIA,EACNsO,EAAEpO,EAAIA,EACCoO,GAITlO,QAAS,SAASkO,GAChB,GAAI6E,GAAID,EAAGzI,EAAI2I,EAAMN,EAAIC,CAmCzB,OAjCAzE,GAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,EAAInf,KAAK8xB,GAAKvE,EAAEpO,EAAInf,KAAKsjB,GACvBtjB,KAAK6xB,KAAO,GACdO,EAAM3pB,KAAK+U,KAAK+P,EAAEtO,EAAGsO,EAAEtO,EAAIsO,EAAEpO,EAAIoO,EAAEpO,GACnCuK,EAAM,IAEN0I,GAAO3pB,KAAK+U,KAAK+P,EAAEtO,EAAIsO,EAAEtO,EAAIsO,EAAEpO,EAAGoO,EAAEpO,GACpCuK,GAAO,GAET2I,EAAQ,EACG,GAAPD,IACFC,EAAQ5pB,KAAKsmB,MAAMrF,EAAM6D,EAAEtO,EAAGyK,EAAM6D,EAAEpO,IAExCuK,EAAM0I,EAAMpyB,KAAK6xB,IAAM7xB,KAAK0b,EAC5ByW,GAAMnyB,KAAK2c,EAAI+M,EAAMA,GAAO1pB,KAAK6xB,IAC7B7xB,KAAK0c,IAAM,OACbgN,EAAM,EAAI,IAAM,EAAK1pB,KAAK4f,IAAMnX,KAAKkK,KAAK,EAAM3S,KAAK0c,KAAO,EAAM1c,KAAK0c,KAAK1c,KAAK0c,GAE7EsV,EADAvpB,KAAKiV,IAAIjV,KAAKiV,IAAIgM,GAAOjhB,KAAKiV,IAAIyU,IAAO,MACnCnyB,KAAKsyB,MAAMtyB,KAAK0c,GAAGyV,GAErBA,GAAM,EACD,GAAKxU,EAAQa,OAAOkK,IAEnB,GAAK/K,EAAQa,OAAOkK,IAIlCsJ,EAAMhyB,KAAKsyB,MAAMtyB,KAAK0c,GAAGyV,GAG3BJ,EAAMpU,EAAQa,OAAOsM,WAAWuH,EAAMryB,KAAK6xB,IAAM7xB,KAAKsmB,OACtDiH,EAAEtO,EAAI8S,EACNxE,EAAEpO,EAAI6S,EACCzE,GAMT+E,MAAO,SAAUhW,EAAO6V,GACtB,GAAItV,GAAQ4M,EAAQC,EAAKE,EAAKvM,EAC1BT,EAAMe,EAAQa,OAAO2L,MAAM,GAAKgI,EACpC,IAAI7V,EAASqB,EAAQa,OAAOuJ,MAAO,MAAOnL,EAG1C,KAAK,GADD2V,GAASjW,EAASA,EACbxJ,EAAI,EAAGA,GAAK,GAAIA,IAOrB,GANA+J,EAASpU,KAAK6U,IAAIV,GAClB6M,EAAShhB,KAAKgV,IAAIb,GAClB8M,EAAMpN,EAASO,EACf+M,EAAM,EAAMF,EAAMA,EAClBrM,EAAO,GAAKuM,EAAMA,EAAMH,GAAU0I,GAAM,EAAMI,GAAU1V,EAAS+M,EAAM,GAAKtN,EAAS7T,KAAKkK,KAAK,EAAM+W,IAAQ,EAAMA,KACnH9M,GAAYS,EACR5U,KAAKiV,IAAIL,IAAS,KAAM,MAAOT,EAGvC,OADAe,GAAQC,YAAY,+BACb,OAYXD,EAAQuF,KAAKsP,QACXzN,UAAY,QAEZvV,KAAO,WAEL,GADAmO,EAAQuF,KAAR,MAAsB1T,KAAKwR,MAAMhhB,OAC5BA,KAAKyyB,GAER,WADA9U,GAAQC,YAAY,wBAGtB5d,MAAK0yB,MAAQjqB,KAAK6U,IAAItd,KAAK2yB,OAC3B3yB,KAAK4yB,MAAQnqB,KAAKgV,IAAIzd,KAAK2yB,OAC3B3yB,KAAK6yB,GAAK,EAAM7yB,KAAKyyB,GAChBzyB,KAAKmjB,QAAOnjB,KAAKmjB,MAAQ,sCAGhC1D,QAAU,SAAS8N,GACjB,GAAIuF,GAAMC,EAAMC,EAAM5F,CAWtB,OAVAG,GAAEtO,EAAItB,EAAQa,OAAOsM,WAAWyC,EAAEtO,EAAEjf,KAAKsmB,OACzC3I,EAAQuF,KAAR,MAAsBzD,QAAQuB,MAAMhhB,MAAOutB,IAC3CuF,EAAOrqB,KAAK6U,IAAIiQ,EAAEpO,GAClB4T,EAAOtqB,KAAKgV,IAAI8P,EAAEpO,GAClB6T,EAAOvqB,KAAKgV,IAAI8P,EAAEtO,GAClBmO,EAAIptB,KAAKqmB,GAAKrmB,KAAK6yB,IAAM,EAAM7yB,KAAK0yB,MAAQI,EAAO9yB,KAAK4yB,MAAQG,EAAOC,GACvEzF,EAAEtO,EAAImO,EAAI2F,EAAOtqB,KAAK6U,IAAIiQ,EAAEtO,GAC5BsO,EAAEpO,EAAIiO,GAAKptB,KAAK4yB,MAAQE,EAAO9yB,KAAK0yB,MAAQK,EAAOC,GACnDzF,EAAEtO,EAAIjf,KAAK0b,EAAI6R,EAAEtO,EAAIjf,KAAKqjB,GAC1BkK,EAAEpO,EAAInf,KAAK0b,EAAI6R,EAAEpO,EAAInf,KAAKsjB,GACnBiK,GAGTlO,QAAU,SAASkO,GACjB,GAAIuF,GAAMC,EAAMhB,EAAKC,EAAKiB,CAM1B,IALA1F,EAAEtO,GAAKsO,EAAEtO,EAAIjf,KAAKqjB,IAAMrjB,KAAK0b,EAC7B6R,EAAEpO,GAAKoO,EAAEpO,EAAInf,KAAKsjB,IAAMtjB,KAAK0b,EAE7B6R,EAAEtO,GAAKjf,KAAKqmB,GACZkH,EAAEpO,GAAKnf,KAAKqmB,GACN4M,EAAMxqB,KAAK+U,KAAK+P,EAAEtO,EAAEsO,EAAEtO,EAAIsO,EAAEpO,EAAEoO,EAAEpO,GAAM,CAC1C,GAAIxC,GAAI,EAAMlU,KAAKsmB,MAAMkE,EAAKjzB,KAAK6yB,GACnCC,GAAOrqB,KAAK6U,IAAIX,GAChBoW,EAAOtqB,KAAKgV,IAAId,GAChBqV,EAAMvpB,KAAK2hB,KAAK2I,EAAO/yB,KAAK0yB,MAAQnF,EAAEpO,EAAI2T,EAAO9yB,KAAK4yB,MAAQK,GAC9DlB,EAAMtpB,KAAKsmB,MAAMxB,EAAEtO,EAAI6T,EAAMG,EAAMjzB,KAAK4yB,MAAQG,EAAOxF,EAAEpO,EAAInf,KAAK0yB,MAAQI,OAE1Ed,GAAMhyB,KAAK2yB,MACXZ,EAAM,CAOR,OAJAxE,GAAEtO,EAAI8S,EACNxE,EAAEpO,EAAI6S,EACNrU,EAAQuF,KAAR,MAAsB7D,QAAQ2B,MAAMhhB,MAAMutB,IAC1CA,EAAEtO,EAAItB,EAAQa,OAAOsM,WAAWyC,EAAEtO,EAAIjf,KAAKsmB,OACpCiH,IA4EX5P,EAAQuF,KAAKgQ,MAIT1jB,KAAM,WAEe,GAAbxP,KAAKumB,OAAWvmB,KAAKumB,KAAO,IAIhCvmB,KAAKgsB,KAAOhsB,KAAK2b,EAAI3b,KAAK0b,EAC1B1b,KAAK4f,GAAK,EAAMnX,KAAKohB,IAAI7pB,KAAKgsB,KAAK,GACnChsB,KAAKmY,EAAI1P,KAAK+U,KAAKxd,KAAK4f,IACxB5f,KAAKuc,GAAKoB,EAAQa,OAAO6L,KAAKrqB,KAAK4f,IACnC5f,KAAKwc,GAAKmB,EAAQa,OAAO8L,KAAKtqB,KAAK4f,IACnC5f,KAAKyc,GAAKkB,EAAQa,OAAO+L,KAAKvqB,KAAK4f,IACnC5f,KAAK0c,GAAKiB,EAAQa,OAAOgM,KAAKxqB,KAAK4f,IACnC5f,KAAKmzB,IAAMxV,EAAQa,OAAOiM,KAAKzqB,KAAKuc,GAAIvc,KAAKwc,GAAGxc,KAAKyc,GAAIzc,KAAK0c,GAAI1c,KAAKumB,OAO3E9G,QAAS,SAAS8N,GACd,GAAI1Q,GAAQ4M,EAGRC,EAAK1M,EACLoW,EACAnU,EAAEE,EAEF4S,EAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,CAmBV,OAjBAuK,GAAM/L,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OACvC7d,KAAKiV,IAAIsU,IAAQ,MACjB/S,EAAIjf,KAAKqjB,GAAKrjB,KAAK0b,EAAIgO,EACvBvK,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAI1b,KAAKmzB,MAE5BtW,EAASpU,KAAK6U,IAAI0U,GAClBvI,EAAShhB,KAAKgV,IAAIuU,GAElBhV,EAAKW,EAAQa,OAAOiM,KAAKzqB,KAAKuc,GAAIvc,KAAKwc,GAAIxc,KAAKyc,GAAIzc,KAAK0c,GAAIsV,GAC7DoB,EAAKzV,EAAQa,OAAOgL,MAAMxpB,KAAKmY,EAAE0E,EAAO4M,GACxCC,EAAM7M,EACNoC,EAAIjf,KAAKqjB,GAAKrjB,KAAK0b,EAAI0X,EAAK3qB,KAAK6U,IAAIoM,GAAK7M,EAC1CsC,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,GAAKsB,EAAKhd,KAAKmzB,IAAMC,GAAM,EAAM3qB,KAAKgV,IAAIiM,IAAM7M,IAGvE0Q,EAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAMXlO,QAAS,SAASkO,GACd,GACI8F,GACA1X,EACAgB,EAEA2W,EACAvB,EAAIC,CAMR,IALAzE,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,GACZ+P,EAAKrzB,KAAKmzB,IAAM5F,EAAEpO,EAAEnf,KAAK0b,EACzB4X,EAAO,EAEH7qB,KAAKiV,IAAI2V,IAAO,KAChBtB,EAAMxE,EAAEtO,EAAEjf,KAAK0b,EAAI1b,KAAKsmB,MACxB0L,EAAM,MACH,CAGH,GAFArW,EAAI0X,EAAKA,EAAM9F,EAAEtO,EAAEjf,KAAK0b,GAAM6R,EAAEtO,EAAEjf,KAAK0b,GAE3B,IADZ4X,EAAOjX,EAAMrc,KAAK4f,GAAG5f,KAAKuc,GAAGvc,KAAKwc,GAAGxc,KAAKyc,GAAGzc,KAAK0c,GAAG1c,KAAKqzB,GAAG1X,EAAEgB,EAAEqV,IAClD,MAAOsB,EACtBvB,GAAMpU,EAAQa,OAAOsM,WAAYnN,EAAQa,OAAO2L,MAAMoD,EAAEtO,EAAItC,EAAI3c,KAAK0b,GAAKjT,KAAK6U,IAAI0U,GAAQhyB,KAAKsmB,OAKpG,MAFAiH,GAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IAgCf5P,EAAQuF,KAAKqQ,MAEX/jB,KAAM,WACAxP,KAAKqjB,KAAIrjB,KAAKqjB,GAAG,GACjBrjB,KAAKsjB,KAAItjB,KAAKsjB,GAAG,GACjBtjB,KAAKumB,OAAMvmB,KAAKumB,KAAK,GACrBvmB,KAAKsmB,QAAOtmB,KAAKsmB,MAAM,IAQ7B7G,QAAS,SAAS8N,GAEhB,GAAIwE,GAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,EAENqU,EAAO7V,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAC5CrH,EAAIjf,KAAKqjB,GAAIrjB,KAAM0b,EAAI8X,EAAM/qB,KAAKgV,IAAIzd,KAAKumB,MAC3CpH,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAIsW,CAM3B,OAJAhyB,MAAKqxB,GAAGpS,EACRjf,KAAKwxB,GAAG/oB,KAAKgV,IAAIzd,KAAKumB,MACtBgH,EAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAOTlO,QAAS,SAASkO,GAEhBA,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,EACZ,IAAI0O,GAAMzE,EAAEpO,EAAGnf,KAAM0b,CAEhBjT,MAAKiV,IAAIsU,GAAOrU,EAAQa,OAAOmK,SAChChL,EAAQC,YAAY,qBAExB,IAAImU,GAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAQiH,EAAEtO,GAAKjf,KAAK0b,EAAIjT,KAAKgV,IAAIzd,KAAKumB,OAC/EgH,GAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,IA2CRrU,EAAQuF,KAAKuQ,MACXjkB,KAAO,WAODxP,KAAKknB,SACHlnB,KAAKgoB,OACPhoB,KAAKqmB,GAAK5d,KAAKgV,IAAIzd,KAAKknB,QAExBlnB,KAAKqmB,GAAK1I,EAAQa,OAAOgL,MAAMxpB,KAAK4f,GAAInX,KAAK6U,IAAItd,KAAKknB,QAASze,KAAKgV,IAAIzd,KAAKknB,WAQnFzH,QAAU,SAAS8N,GAEjB,GAAIwE,GAAMxE,EAAEtO,EACR+S,EAAMzE,EAAEpO,CAEZ,IAAK6S,EAAIrU,EAAQa,OAAOgB,IAAM,IACxBwS,EAAIrU,EAAQa,OAAOgB,KAAO,IAC1BuS,EAAIpU,EAAQa,OAAOgB,IAAM,KACzBuS,EAAIpU,EAAQa,OAAOgB,KAAO,IAE9B,MADA7B,GAAQC,YAAY,oCAAqCmU,EAAK,MAAQC,GAC/D,IAGT,IAAI/S,GAAEE,CACN,IAAG1W,KAAKiV,IAAKjV,KAAKiV,IAAIsU,GAAOrU,EAAQa,OAAOmK,UAAahL,EAAQa,OAAOuJ,MAEtE,MADApK,GAAQC,YAAY,6BACb,IAEP,IAAI5d,KAAKgoB,OACP/I,EAAIjf,KAAKqjB,GAAKrjB,KAAK0b,EAAI1b,KAAKqmB,GAAK1I,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OACtEnH,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAI1b,KAAKqmB,GAAK5d,KAAKkK,IAAIlK,KAAK8U,IAAII,EAAQa,OAAOqK,OAAS,GAAImJ,QAC1E,CACL,GAAInV,GAASpU,KAAK6U,IAAI0U,GAClBjI,EAAKpM,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAE6Z,EAAInV,EACzCoC,GAAIjf,KAAKqjB,GAAKrjB,KAAK0b,EAAI1b,KAAKqmB,GAAK1I,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OACtEnH,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAI1b,KAAKqmB,GAAK5d,KAAKkK,IAAIoX,GAI5C,MAFAwD,GAAEtO,EAAIA,EACNsO,EAAEpO,EAAIA,EACCoO,GAOXlO,QAAU,SAASkO,GAEjB,GAEIwE,GAAIC,EAFJ/S,EAAIsO,EAAEtO,EAAIjf,KAAKqjB,GACflE,EAAIoO,EAAEpO,EAAInf,KAAKsjB,EAGnB,IAAItjB,KAAKgoB,OACPgK,EAAMrU,EAAQa,OAAOmK,QAAU,EAAMlgB,KAAKwhB,KAAKxhB,KAAKmiB,KAAKzL,EAAInf,KAAK0b,EAAI1b,KAAKqmB,SACtE,CACL,GAAI0D,GAAKthB,KAAKmiB,KAAKzL,GAAKnf,KAAK0b,EAAI1b,KAAKqmB,IAEtC,KAAW,OADX2L,EAAMrU,EAAQa,OAAOsL,MAAM9pB,KAAKmY,EAAE4R,IAGhC,MADApM,GAAQC,YAAY,6BACb,KAOX,MAJAmU,GAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAOrH,GAAKjf,KAAK0b,EAAI1b,KAAKqmB,KAE/DkH,EAAEtO,EAAI8S,EACNxE,EAAEpO,EAAI6S,EACCzE,IAiCX5P,EAAQuF,KAAKwQ,KACX3O,UAAY,QAEZvV,KAAO,WACL,IAAKxP,KAAKsnB,KAER,WADA3J,GAAQC,YAAY,2CAGtB5d,MAAKumB,KAAO,EACZvmB,KAAKsmB,OAAU,EAAI7d,KAAKiV,IAAI1d,KAAKsnB,MAAS,KAAO3J,EAAQa,OAAOU,IAChElf,KAAKqjB,GAAK,IACVrjB,KAAKsjB,GAAKtjB,KAAKunB,SAAW,IAAa,EACvCvnB,KAAKqmB,GAAK,MAEV1I,EAAQuF,KAAR,MAAsB1T,KAAKwR,MAAMhhB,MACjCA,KAAKyf,QAAU9B,EAAQuF,KAAR,MAAsBzD,QACrCzf,KAAKqf,QAAU1B,EAAQuF,KAAR,MAAsB7D,UAiCzC1B,EAAQuF,KAAKyQ,MAIXnkB,KAAM,WAKAxP,KAAK4zB,OAAM5zB,KAAK4zB,KAAK,GACzB5zB,KAAKgsB,KAAOhsB,KAAK2b,EAAI3b,KAAK0b,EAC1B1b,KAAK4f,GAAK,EAAMnX,KAAKohB,IAAI7pB,KAAKgsB,KAAK,GACnChsB,KAAKmY,EAAI1P,KAAK+U,KAAKxd,KAAK4f,IACxB5f,KAAKuc,GAAKoB,EAAQa,OAAO6L,KAAKrqB,KAAK4f,IACnC5f,KAAKwc,GAAKmB,EAAQa,OAAO8L,KAAKtqB,KAAK4f,IACnC5f,KAAKyc,GAAKkB,EAAQa,OAAO+L,KAAKvqB,KAAK4f,IACnC5f,KAAK0c,GAAKiB,EAAQa,OAAOgM,KAAKxqB,KAAK4f,IAEnC5f,KAAK6c,OAAOpU,KAAK6U,IAAItd,KAAKgnB,MAC1BhnB,KAAKypB,OAAOhhB,KAAKgV,IAAIzd,KAAKgnB,MAE1BhnB,KAAKsxB,IAAM3T,EAAQa,OAAOgL,MAAMxpB,KAAKmY,EAAEnY,KAAK6c,OAAO7c,KAAKypB,QACxDzpB,KAAK6zB,IAAMlW,EAAQa,OAAOiM,KAAKzqB,KAAKuc,GAAIvc,KAAKwc,GAAIxc,KAAKyc,GAAGzc,KAAK0c,GAAI1c,KAAKgnB,MAItD,GAAbhnB,KAAK4zB,MACHnrB,KAAKiV,IAAI1d,KAAKgnB,KAAOhnB,KAAKinB,MAAQtJ,EAAQa,OAAOuJ,OAC/CpK,EAAQC,YAAY,4BAGzB5d,KAAK6c,OAAOpU,KAAK6U,IAAItd,KAAKinB,MAC1BjnB,KAAKypB,OAAOhhB,KAAKgV,IAAIzd,KAAKinB,MAE1BjnB,KAAKyxB,IAAM9T,EAAQa,OAAOgL,MAAMxpB,KAAKmY,EAAEnY,KAAK6c,OAAO7c,KAAKypB,QACxDzpB,KAAK8zB,IAAMnW,EAAQa,OAAOiM,KAAKzqB,KAAKuc,GAAIvc,KAAKwc,GAAIxc,KAAKyc,GAAIzc,KAAK0c,GAAI1c,KAAKinB,MACpExe,KAAKiV,IAAI1d,KAAKgnB,KAAOhnB,KAAKinB,OAAStJ,EAAQa,OAAOuJ,MACpD/nB,KAAK+zB,IAAM/zB,KAAKsxB,IAAMtxB,KAAKyxB,MAAQzxB,KAAK8zB,IAAM9zB,KAAK6zB,KAElD7zB,KAAK+zB,GAAK/zB,KAAK6c,QAGnB7c,KAAK+zB,GAAK/zB,KAAK6c,OAEjB7c,KAAKg0B,EAAIh0B,KAAK6zB,IAAM7zB,KAAKsxB,IAAItxB,KAAK+zB,GAClC/zB,KAAKmzB,IAAMxV,EAAQa,OAAOiM,KAAKzqB,KAAKuc,GAAIvc,KAAKwc,GAAGxc,KAAMyc,GAAIzc,KAAK0c,GAAI1c,KAAKumB,MACxEvmB,KAAK8xB,GAAK9xB,KAAK0b,GAAK1b,KAAKg0B,EAAIh0B,KAAKmzB,MAMpC1T,QAAS,SAAS8N,GAChB,GAAIwE,GAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,EAINnC,EAAKW,EAAQa,OAAOiM,KAAKzqB,KAAKuc,GAAIvc,KAAKwc,GAAIxc,KAAKyc,GAAIzc,KAAK0c,GAAIsV,GAC7DI,EAAMpyB,KAAK0b,GAAK1b,KAAKg0B,EAAIhX,GACzBqV,EAAQryB,KAAK+zB,GAAKpW,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAEvDrH,EAAIjf,KAAKqjB,GAAM+O,EAAM3pB,KAAK6U,IAAI+U,GAC9BlT,EAAInf,KAAKsjB,GAAKtjB,KAAK8xB,GAAKM,EAAM3pB,KAAKgV,IAAI4U,EAG3C,OAFA9E,GAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAKTlO,QAAS,SAASkO,GAChBA,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,EAAKnf,KAAK8xB,GAAKvE,EAAEpO,EAAInf,KAAKsjB,EAC5B,IAAIoG,GAAK0I,CACLpyB,MAAK+zB,IAAM,GACZ3B,EAAM3pB,KAAK+U,KAAK+P,EAAEtO,EAAGsO,EAAEtO,EAAIsO,EAAEpO,EAAIoO,EAAEpO,GACnCuK,EAAM,IAEN0I,GAAO3pB,KAAK+U,KAAK+P,EAAEtO,EAAGsO,EAAGtO,EAAGsO,EAAGpO,EAAIoO,EAAEpO,GACrCuK,GAAO,EAEV,IAAI2I,GAAQ,CACD,IAAPD,IAAYC,EAAQ5pB,KAAKsmB,MAAMrF,EAAK6D,EAAEtO,EAAGyK,EAAK6D,EAAEpO,GACpD,IAAInC,GAAKhd,KAAKg0B,EAAI5B,EAAKpyB,KAAK0b,EACxBsW,EAAMhyB,KAAKi0B,MAAMjX,EAAGhd,KAAKuc,GAAGvc,KAAKwc,GAAGxc,KAAKyc,GAAGzc,KAAK0c,IACjDqV,EAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAQ+L,EAAQryB,KAAK+zB,GAI7D,OAFAxG,GAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,GAMV0G,MAAO,SAASjX,EAAGT,EAAGC,EAAGC,EAAGC,GAC1B,GAAIE,GACAS,CAEJT,GAAMI,CACN,KAAK,GAAIlK,GAAI,EAAGA,EAAI,GAAIA,IAGtB,GAFAuK,GAAQL,EAAKR,EAAK/T,KAAK6U,IAAI,EAAMV,GAAOH,EAAKhU,KAAK6U,IAAI,EAAMV,GAAOF,EAAKjU,KAAK6U,IAAI,EAAMV,IAAOL,EAAKK,EACnGA,GAAOS,EACH5U,KAAKiV,IAAIL,IAAS,MACpB,MAAOT,EAIX,OADAe,GAAQC,YAAY,8DACb,OAiCXD,EAAQuF,KAAKgR,OACX1kB,KAAO,WACLxP,KAAKuc,GAAKoB,EAAQa,OAAO6L,KAAKrqB,KAAK4f,IACnC5f,KAAKwc,GAAKmB,EAAQa,OAAO8L,KAAKtqB,KAAK4f,IACnC5f,KAAKyc,GAAKkB,EAAQa,OAAO+L,KAAKvqB,KAAK4f,IACnC5f,KAAK0c,GAAKiB,EAAQa,OAAOgM,KAAKxqB,KAAK4f,IACnC5f,KAAKmzB,IAAMnzB,KAAK0b,EAAIiC,EAAQa,OAAOiM,KAAKzqB,KAAKuc,GAAIvc,KAAKwc,GAAIxc,KAAKyc,GAAIzc,KAAK0c,GAAI1c,KAAKumB,OAOnF9G,QAAU,SAAS8N,GACjB,GAII7D,GACAzK,EAAGE,EALH4S,EAAMxE,EAAEtO,EACR+S,EAAMzE,EAAEpO,EAERgV,EAAYxW,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAGjD2L,EAAQxpB,KAAK6U,IAAI0U,GACjBE,EAAQzpB,KAAKgV,IAAIuU,EAErB,IAAIhyB,KAAKgoB,OAAQ,CACf,GAAIrM,GAAIuW,EAAUzpB,KAAK6U,IAAI6W,EAC3B,IAAK1rB,KAAKiV,IAAIjV,KAAKiV,IAAI/B,GAAK,GAAQ,MAElC,MADAgC,GAAQC,YAAY,+CACb,EAEPqB,GAAI,GAAKjf,KAAK0b,EAAI1b,KAAKqmB,GAAK5d,KAAKkK,KAAK,EAAMgJ,IAAI,EAAMA,IACtD+N,EAAMjhB,KAAK2rB,KAAKlC,EAAUzpB,KAAKgV,IAAI0W,GAAW1rB,KAAK+U,KAAK,EAAM7B,EAAEA,IAC5DqW,EAAM,IAAGtI,GAAQA,GACrBvK,EAAInf,KAAK0b,EAAI1b,KAAKqmB,IAAMqD,EAAM1pB,KAAKumB,UAEhC,CACL,GAAI8M,GAAMnB,EAAUiC,EAChBE,EAAM5rB,KAAKohB,IAAIwJ,EAAG,GAClB1W,EAAM3c,KAAKsoB,IAAM7f,KAAKohB,IAAIqI,EAAQ,GAClCoC,EAAM7rB,KAAK8U,IAAIyU,GACf5R,EAAM3X,KAAKohB,IAAIyK,EAAG,EACtB5K,GAAM,EAAM1pB,KAAK4f,GAAKnX,KAAKohB,IAAIoI,EAAQ,EACvC,IAAIhiB,GAAMjQ,KAAK0b,EAAIjT,KAAK+U,KAAKkM,GACzB1M,EAAMhd,KAAK0b,EAAIiC,EAAQa,OAAOiM,KAAKzqB,KAAKuc,GAAIvc,KAAKwc,GAAIxc,KAAKyc,GAAIzc,KAAK0c,GAAIsV,EAE3E/S,GAAIjf,KAAKqmB,GAAKpW,EAAIojB,GAAM,EAAMgB,EAAM,GAAO,EAAMjU,EAAIzD,EAAI0X,EAAM,IAAQ,EAAM,GAAOjU,EAAI3X,KAAKohB,IAAIzJ,EAAE,GAAK,GAAOzD,EAAI,GAAO3c,KAAKsoB,OAAStoB,KAAKqjB,GAC7IlE,EAAInf,KAAKqmB,IAAMrJ,EAAKhd,KAAKmzB,IAAMljB,EAAIqkB,GAAMD,GAAO,GAAMA,EAAM,IAAQ,EAAMjU,EAAI,EAAMzD,EAAI,EAAMlU,KAAKohB,IAAIlN,EAAE,GAAK0X,EAAM,IAAQ,GAAO,GAAOjU,EAAI3X,KAAKohB,IAAIzJ,EAAE,GAAK,IAAQzD,EAAI,IAAQ3c,KAAKsoB,SAAWtoB,KAAKsjB,GAIzM,MADAiK,GAAEtO,EAAIA,EAAGsO,EAAEpO,EAAIA,EACRoO,GAMTlO,QAAU,SAASkO,GACjB,GAAI7D,GAAK9M,EACL2X,EACAzhB,EAEAkf,EAAKD,CAET,IAAI/xB,KAAKgoB,OAAQ,CACf,GAAIwM,GAAI/rB,KAAKmiB,IAAI2C,EAAEtO,GAAGjf,KAAK0b,EAAI1b,KAAKqmB,KAChC2N,EAAI,IAAMQ,EAAI,EAAEA,GAChBxI,EAAOhsB,KAAKumB,KAAOgH,EAAEpO,GAAGnf,KAAK0b,EAAI1b,KAAKqmB,IACtCoO,EAAIhsB,KAAKgV,IAAIuO,EACjBtC,GAAMjhB,KAAK+U,MAAM,EAAMiX,EAAIA,IAAI,EAAMT,EAAIA,IACzChC,EAAMrU,EAAQa,OAAO2L,MAAMT,GACvBsC,EAAO,IACTgG,GAAOA,GAEPD,EADQ,GAALiC,GAAiB,GAALS,EACTz0B,KAAKsmB,MAEL3I,EAAQa,OAAOsM,WAAWriB,KAAKsmB,MAAMiF,EAAES,GAAKz0B,KAAKsmB,WAEpD,CACL,GAAIrH,GAAIsO,EAAEtO,EAAIjf,KAAKqjB,GACflE,EAAIoO,EAAEpO,EAAInf,KAAKsjB,EAInB,KAFAoG,GAAO1pB,KAAKmzB,IAAMhU,EAAInf,KAAKqmB,IAAMrmB,KAAK0b,EACtCkB,EAAM8M,EACD5W,EAAE,GAAE,IACPyhB,GAAY7K,EAAM1pB,KAAKwc,GAAK/T,KAAK6U,IAAI,EAAIV,GAAO5c,KAAKyc,GAAKhU,KAAK6U,IAAI,EAAIV,GAAO5c,KAAK0c,GAAKjU,KAAK6U,IAAI,EAAIV,IAAQ5c,KAAKuc,GAAMK,EACxHA,GAAO2X,IACH9rB,KAAKiV,IAAI6W,IAAc5W,EAAQa,OAAOuJ,QAH9BjV,IAIZ,GAAIA,GA3BO,EA6BT,MADA6K,GAAQC,YAAY,8CACb,EAGX,IAAInV,KAAKiV,IAAId,GAAOe,EAAQa,OAAOmK,QAAS,CAE1C,GAAIsJ,GAAQxpB,KAAK6U,IAAIV,GACjBsV,EAAQzpB,KAAKgV,IAAIb,GACjB8X,EAAUjsB,KAAK8U,IAAIX,GACnBD,EAAI3c,KAAKsoB,IAAM7f,KAAKohB,IAAIqI,EAAQ,GAChCyC,EAAKlsB,KAAKohB,IAAIlN,EAAE,GAChByD,EAAI3X,KAAKohB,IAAI6K,EAAQ,GACrB3K,EAAKthB,KAAKohB,IAAIzJ,EAAE,EACpBsJ,GAAM,EAAM1pB,KAAK4f,GAAKnX,KAAKohB,IAAIoI,EAAQ,EACvC,IAAIhiB,GAAIjQ,KAAK0b,EAAIjT,KAAK+U,KAAKkM,GACvB+B,EAAIxb,GAAK,EAAMjQ,KAAK4f,IAAM8J,EAC1BkL,EAAI3V,GAAKhP,EAAIjQ,KAAKqmB,IAClBwO,EAAKpsB,KAAKohB,IAAI+K,EAAE,EACpB5C,GAAMpV,EAAO3M,EAAIykB,EAAUG,EAAKpJ,GAAM,GAAMoJ,EAAK,IAAQ,EAAM,EAAMzU,EAAI,GAAOzD,EAAI,EAAMgY,EAAK,EAAM30B,KAAKsoB,IAAMuM,EAAK,IAAQ,GAAO,GAAOzU,EAAI,IAAQzD,EAAI,GAAOoN,EAAK,IAAQ/pB,KAAKsoB,IAAM,EAAMqM,KAChM5C,EAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAASsO,GAAK,EAAMC,EAAK,GAAO,EAAM,EAAMzU,EAAIzD,EAAIkY,EAAK,IAAQ,EAAM,EAAMlY,EAAI,GAAOyD,EAAI,EAAMuU,EAAK,EAAM30B,KAAKsoB,IAAM,GAAOyB,KAAQmI,OAE5KF,GAAMrU,EAAQa,OAAOmK,QAAUhL,EAAQa,OAAOqM,KAAK1L,GACnD4S,EAAM/xB,KAAKsmB,MAKf,MAFAiH,GAAEtO,EAAI8S,EACNxE,EAAEpO,EAAI6S,EACCzE,IAOX5P,EAAQ0G,KAAR,OAAuB,mHACvB1G,EAAQ0G,KAAK,eAAe1G,EAAQ0G,KAAR,OAK5B1G,EAAQuF,KAAK4R,SACXtlB,KAAO,WAGH,GAAIwc,GAAMhsB,KAAK2b,EAAI3b,KAAK0b,CACxB1b,MAAKmY,EAAG1P,KAAK+U,KAAK,EAAMwO,EAAKA,GAC7BhsB,KAAK+0B,GAAI/0B,KAAKsmB,MACdtmB,KAAKg1B,GAAIvsB,KAAK+U,KAAK,EAAIxd,KAAKmY,EAAEnY,KAAKmY,EAAE1P,KAAKohB,IAAIphB,KAAKgV,IAAIzd,KAAKumB,MAAM,IAAM,EAAIvmB,KAAKmY,EAAEnY,KAAKmY,GACxF,IAAI8c,GAAMxsB,KAAK6U,IAAItd,KAAKumB,MACpB2O,EAAIzsB,KAAK2hB,KAAK6K,EAAKj1B,KAAKg1B,IACxBG,EAAQ1sB,KAAK6U,IAAI4X,EACrBl1B,MAAKo1B,GAAIzX,EAAQa,OAAOwM,OAAO,EAAIkK,EAAGC,GAAQn1B,KAAKg1B,GAAGrX,EAAQa,OAAOwM,OAAOhrB,KAAKmY,EAAEnY,KAAKumB,KAAK0O,GAC7Fj1B,KAAKq1B,GAAIr1B,KAAKqmB,GAAGrmB,KAAK0b,EAAEjT,KAAK+U,KAAK,EAAIxd,KAAKmY,EAAEnY,KAAKmY,IAAI,EAAInY,KAAKmY,EAAEnY,KAAKmY,EAAE8c,EAAKA,GAC7Ej1B,KAAKs1B,GAAIt1B,KAAKqjB,GACdrjB,KAAKu1B,GAAIv1B,KAAKsjB,GAAGtjB,KAAKq1B,GAAGH,EAEpBl1B,KAAKmjB,QAAOnjB,KAAKmjB,MAAQ,wCAMhC1D,QAAU,SAAS8N,GAEjB,GAAIwE,GAAKxE,EAAEtO,EACP+S,EAAKzE,EAAEpO,EAEPkM,EAAGrrB,KAAKg1B,IAAIjD,EAAI/xB,KAAK+0B,IACrBS,EAAIx1B,KAAKo1B,GAAIp1B,KAAKg1B,GAAGrX,EAAQa,OAAOwM,OAAOhrB,KAAKmY,EAAE6Z,EAAIvpB,KAAK6U,IAAI0U,IAC/DhL,EAAMve,KAAK2hB,KAAK3hB,KAAK6U,IAAI+N,GAAG1N,EAAQa,OAAOkN,KAAK8J,IAChDC,EAAK9X,EAAQa,OAAOwM,OAAO,EAAIhE,EAAKve,KAAK6U,IAAI0J,GAGjD,OAFAuG,GAAEtO,EAAGjf,KAAKs1B,GAAIt1B,KAAKq1B,GAAGI,EACtBlI,EAAEpO,EAAGnf,KAAKu1B,GAAIv1B,KAAKq1B,GAAG5sB,KAAKwhB,KAAKtM,EAAQa,OAAOgN,KAAKgK,GAAI/sB,KAAKgV,IAAI4N,IAC1DkC,GAKXlO,QAAU,SAASkO,GAEjB,GAAItO,GAAGsO,EAAEtO,EACLE,EAAGoO,EAAEpO,EAELkM,EAAG5iB,KAAKwhB,KAAKtM,EAAQa,OAAOgN,MAAMvM,EAAEjf,KAAKs1B,IAAIt1B,KAAKq1B,IAAI5sB,KAAKgV,KAAK0B,EAAEnf,KAAKu1B,IAAIv1B,KAAKq1B,KAChFrO,EAAMve,KAAK2hB,KAAK3hB,KAAK6U,KAAK6B,EAAEnf,KAAKu1B,IAAIv1B,KAAKq1B,IAAI1X,EAAQa,OAAOkN,MAAMzM,EAAEjf,KAAKs1B,IAAIt1B,KAAKq1B,KACnFK,EAAI/X,EAAQa,OAAOwM,OAAO,EAAIhE,EAAKve,KAAK6U,IAAI0J,GAGhD,OAFAuG,GAAEtO,EAAGjf,KAAK+0B,GAAG1J,EAAErrB,KAAKg1B,GACpBzH,EAAEpO,EAAGxB,EAAQa,OAAO8M,UAAUtrB,KAAKmY,GAAGud,EAAG11B,KAAKo1B,IAAIp1B,KAAKg1B,IAChDzH,IA+BX5P,EAAQuF,KAAKyS,OAIXnmB,KAAM,SAASomB,GAKb51B,KAAK61B,QAAQptB,KAAK6U,IAAItd,KAAKumB,MAC3BvmB,KAAK81B,QAAQrtB,KAAKgV,IAAIzd,KAAKumB,OAM7B9G,QAAS,SAAS8N,GAChB,GAAI1Q,GAAQ4M,EACR+J,EACAuC,EACAC,EACAhC,EACAjC,EAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,CAWV,IARAqU,EAAO7V,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAE5CzJ,EAAOpU,KAAK6U,IAAI0U,GAChBvI,EAAOhhB,KAAKgV,IAAIuU,GAEhB+D,EAASttB,KAAKgV,IAAI+V,GAClBQ,EAAIh0B,KAAK61B,QAAUhZ,EAAS7c,KAAK81B,QAAUrM,EAASsM,EACpDC,EAAM,EACDhC,EAAI,GAAOvrB,KAAKiV,IAAIsW,IAAMrW,EAAQa,OAAOuJ,MAC5C,GAAI9I,GAAIjf,KAAK0b,EAAIsa,EAAMvM,EAAShhB,KAAK6U,IAAIkW,GACrCrU,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAIsa,GAAOh2B,KAAK81B,QAAUjZ,EAAS7c,KAAK61B,QAAUpM,EAASsM,OAElFpY,GAAQC,YAAY,qBAItB,OAFA2P,GAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAITlO,QAAS,SAASkO,GAChB,GAAIuE,GACAtR,EACAyU,EAAKgB,EAELvM,EACAqI,EAAMC,CA8BV,OA3BAzE,GAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,GACZwO,EAAKrpB,KAAK+U,KAAK+P,EAAEtO,EAAIsO,EAAEtO,EAAIsO,EAAEpO,EAAIoO,EAAEpO,GAC/B2S,EAAK9xB,KAAK0b,EAAI,MAChBiC,EAAQC,YAAY,qBAEtB4C,EAAI7C,EAAQa,OAAO2L,MAAM2H,EAAK9xB,KAAK0b,GAEnCuZ,EAAKxsB,KAAK6U,IAAIkD,GACdyV,EAAKxtB,KAAKgV,IAAI+C,GAEduR,EAAM/xB,KAAKsmB,MACP7d,KAAKiV,IAAIoU,IAAOnU,EAAQa,OAAOuJ,QACjCiK,EAAMhyB,KAAKumB,MAEbyL,EAAMrU,EAAQa,OAAO2L,MAAM8L,EAAOj2B,KAAK61B,QAAWtI,EAAEpO,EAAI8V,EAAOj1B,KAAK81B,QAAShE,GAC7EpI,EAAMjhB,KAAKiV,IAAI1d,KAAKumB,MAAQ5I,EAAQa,OAAOmK,QACvClgB,KAAKiV,IAAIgM,IAAQ/L,EAAQa,OAAOuJ,QAE9BgK,EADC/xB,KAAKumB,MAAQ,EACR5I,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAQ7d,KAAKsmB,MAAMxB,EAAEtO,GAAIsO,EAAEpO,IAE1DxB,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAO7d,KAAKsmB,OAAOxB,EAAEtO,EAAGsO,EAAEpO,KAGrEuK,EAAMuM,EAAOj2B,KAAK61B,QAAUptB,KAAK6U,IAAI0U,GACrCzE,EAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IAgCX5P,EAAQuF,KAAKgT,QAET1mB,KAAM,WAEFxP,KAAK0b,EAAK,YACV1b,KAAK4f,GAAK,iBACV5f,KAAKmY,EAAI1P,KAAK+U,KAAKxd,KAAK4f,IAEnB5f,KAAKumB,OACNvmB,KAAKumB,KAAO,kBAEXvmB,KAAKsmB,QACNtmB,KAAKsmB,MAAQ,mBAGZtmB,KAAKqmB,KACNrmB,KAAKqmB,GAAK,OAEdrmB,KAAKm2B,IAAM,iBACXn2B,KAAKo2B,IAAM,EAAIp2B,KAAKm2B,IACpBn2B,KAAKq2B,IAAMr2B,KAAKumB,KAIhBvmB,KAAKyc,GAAKzc,KAAK4f,GACf5f,KAAKmY,EAAI1P,KAAK+U,KAAKxd,KAAKyc,IACxBzc,KAAKs2B,KAAO7tB,KAAK+U,KAAK,EAAMxd,KAAKyc,GAAKhU,KAAKohB,IAAIphB,KAAKgV,IAAIzd,KAAKq2B,KAAM,IAAO,EAAKr2B,KAAKyc,KACpFzc,KAAKu2B,GAAK,iBACVv2B,KAAKw2B,GAAK/tB,KAAK2hB,KAAK3hB,KAAK6U,IAAItd,KAAKq2B,KAAOr2B,KAAKs2B,MAC9Ct2B,KAAKg0B,EAAIvrB,KAAKohB,KAAQ,EAAK7pB,KAAKmY,EAAI1P,KAAK6U,IAAItd,KAAKq2B,OAAS,EAAKr2B,KAAKmY,EAAI1P,KAAK6U,IAAItd,KAAKq2B,MAAQr2B,KAAKs2B,KAAOt2B,KAAKmY,EAAI,GACpHnY,KAAKotB,EAAI3kB,KAAK8U,IAAKvd,KAAKw2B,GAAK,EAAKx2B,KAAKm2B,KAAO1tB,KAAKohB,IAAMphB,KAAK8U,IAAIvd,KAAKq2B,IAAM,EAAKr2B,KAAKm2B,KAAOn2B,KAAKs2B,MAAQt2B,KAAKg0B,EAChHh0B,KAAKy2B,GAAKz2B,KAAKqmB,GACfrmB,KAAK02B,GAAK12B,KAAK0b,EAAIjT,KAAK+U,KAAK,EAAKxd,KAAKyc,KAAO,EAAKzc,KAAKyc,GAAKhU,KAAKohB,IAAIphB,KAAK6U,IAAItd,KAAKq2B,KAAM,IAC1Fr2B,KAAK22B,GAAK,iBACV32B,KAAKiQ,EAAIxH,KAAK6U,IAAItd,KAAK22B,IACvB32B,KAAK42B,IAAM52B,KAAKy2B,GAAKz2B,KAAK02B,GAAKjuB,KAAK8U,IAAIvd,KAAK22B,IAC7C32B,KAAK62B,GAAK72B,KAAKo2B,IAAMp2B,KAAKu2B,IAM9B9W,QAAS,SAAS8N,GACd,GAAIuJ,GAAKC,EAAGC,EAAQ3J,EAAGuH,EAAGqC,EAAKC,EAC3BnF,EAAMxE,EAAEtO,EACR+S,EAAMzE,EAAEpO,EACRgV,EAAYxW,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,MAmBrD,OAjBAwQ,GAAMruB,KAAKohB,KAAQ,EAAK7pB,KAAKmY,EAAI1P,KAAK6U,IAAI0U,KAAS,EAAKhyB,KAAKmY,EAAI1P,KAAK6U,IAAI0U,IAAUhyB,KAAKs2B,KAAOt2B,KAAKmY,EAAI,GACzG4e,EAAG,GAAMtuB,KAAKwhB,KAAKjqB,KAAKotB,EAAI3kB,KAAKohB,IAAKphB,KAAK8U,IAAIyU,EAAM,EAAKhyB,KAAKm2B,KAAMn2B,KAAKs2B,MAAQQ,GAAK92B,KAAKm2B,KAC5Fa,GAAW7C,EAAYn0B,KAAKs2B,KAC5BjJ,EAAI5kB,KAAK2hB,KAAK3hB,KAAKgV,IAAIzd,KAAK62B,IAAMpuB,KAAK6U,IAAIyZ,GAAKtuB,KAAK6U,IAAItd,KAAK62B,IAAMpuB,KAAKgV,IAAIsZ,GAAKtuB,KAAKgV,IAAIuZ,IAC3FpC,EAAInsB,KAAK2hB,KAAK3hB,KAAKgV,IAAIsZ,GAAKtuB,KAAK6U,IAAI0Z,GAAUvuB,KAAKgV,IAAI4P,IACxD4J,EAAMj3B,KAAKiQ,EAAI2kB,EACfsC,EAAKl3B,KAAK42B,IAAMnuB,KAAKohB,IAAIphB,KAAK8U,IAAIvd,KAAK22B,GAAK,EAAK32B,KAAKm2B,KAAOn2B,KAAKiQ,GAAKxH,KAAKohB,IAAIphB,KAAK8U,IAAI8P,EAAI,EAAKrtB,KAAKm2B,KAAOn2B,KAAKiQ,GAInHsd,EAAEpO,EAAI+X,EAAKzuB,KAAKgV,IAAIwZ,GAAO,EAC3B1J,EAAEtO,EAAIiY,EAAKzuB,KAAK6U,IAAI2Z,GAAO,EAExBj3B,KAAKm3B,QACA5J,EAAEpO,IAAM,EACRoO,EAAEtO,IAAM,GAERsO,GAIZlO,QAAS,SAASkO,GAEd,GAAIwJ,GAAGC,EAAQ3J,EAAGuH,EAAGqC,EAAKC,EAAIE,EAC1BC,EAIAC,EAAM/J,EAAEtO,CACZsO,GAAEtO,EAAEsO,EAAEpO,EACNoO,EAAEpO,EAAEmY,EACDt3B,KAAKm3B,QACA5J,EAAEpO,IAAM,EACRoO,EAAEtO,IAAM,GAEhBiY,EAAKzuB,KAAK+U,KAAK+P,EAAEtO,EAAIsO,EAAEtO,EAAIsO,EAAEpO,EAAIoO,EAAEpO,GACnC8X,EAAMxuB,KAAKsmB,MAAMxB,EAAEpO,EAAGoO,EAAEtO,GACxB2V,EAAIqC,EAAMxuB,KAAK6U,IAAItd,KAAK22B,IACxBtJ,EAAI,GAAM5kB,KAAKwhB,KAAOxhB,KAAKohB,IAAI7pB,KAAK42B,IAAMM,EAAI,EAAKl3B,KAAKiQ,GAAKxH,KAAK8U,IAAIvd,KAAK22B,GAAK,EAAK32B,KAAKm2B,MAAQn2B,KAAKm2B,KACvGY,EAAItuB,KAAK2hB,KAAK3hB,KAAKgV,IAAIzd,KAAK62B,IAAMpuB,KAAK6U,IAAI+P,GAAK5kB,KAAK6U,IAAItd,KAAK62B,IAAMpuB,KAAKgV,IAAI4P,GAAK5kB,KAAKgV,IAAImX,IAC3FoC,EAASvuB,KAAK2hB,KAAK3hB,KAAKgV,IAAI4P,GAAK5kB,KAAK6U,IAAIsX,GAAKnsB,KAAKgV,IAAIsZ,IACxDxJ,EAAEtO,EAAIjf,KAAKsmB,MAAQ0Q,EAASh3B,KAAKs2B,KAEjCc,EAAML,EACNM,EAAK,CACL,IAAIvI,GAAO,CACX,IACIvB,EAAEpO,EAAI,GAAO1W,KAAKwhB,KAAMxhB,KAAKohB,IAAK7pB,KAAKotB,GAAI,EAAKptB,KAAKs2B,MACrC7tB,KAAKohB,IAAKphB,KAAK8U,IAAIwZ,EAAI,EAAK/2B,KAAKm2B,KAAO,EAAKn2B,KAAKs2B,MAClD7tB,KAAKohB,KAAM,EAAK7pB,KAAKmY,EAAI1P,KAAK6U,IAAI8Z,KAAS,EAAKp3B,KAAKmY,EAAI1P,KAAK6U,IAAI8Z,IAAQp3B,KAAKmY,EAAI,IAC/EnY,KAAKm2B,KACf1tB,KAAKiV,IAAI0Z,EAAM7J,EAAEpO,GAAK,QAAckY,EAAG,GACjDD,EAAM7J,EAAEpO,EACR2P,GAAQ,QACC,GAAJuI,GAASvI,EAAO,GACzB,OAAIA,IAAQ,IACRnR,EAAQC,YAAY,8DAEb,MAGH2P,IAsBhB5P,EAAQuF,KAAKqU,QAEX/nB,KAAM,WACJ,GAAIgoB,GAAOx3B,KAAKumB,IAChBvmB,MAAKy3B,QAAUz3B,KAAKsmB,KACpB,IAAIoR,GAAUjvB,KAAK6U,IAAIka,GACnBG,EAAgB33B,KAAK0b,EACrBkc,EAAO53B,KAAKmmB,GACZ0R,EAAa,EAAID,EACjBnb,EAAK,EAAIob,EAAapvB,KAAKohB,IAAIgO,EAAY,GAC3C1f,EAAInY,KAAKmY,EAAI1P,KAAK+U,KAAKf,EAC3Bzc,MAAK83B,EAAI93B,KAAKqmB,GAAKsR,EAAgBlvB,KAAK+U,KAAK,EAAIf,IAAO,EAAIA,EAAKhU,KAAKohB,IAAI6N,EAAS,IACnF13B,KAAKmnB,MAAQ1e,KAAK+U,KAAK,EAAIf,GAAM,EAAIA,GAAMhU,KAAKohB,IAAIphB,KAAKgV,IAAI+Z,GAAO,IACpEx3B,KAAK+3B,GAAKtvB,KAAK2hB,KAAKsN,EAAU13B,KAAKmnB,OACnCnnB,KAAKg4B,EAAIvvB,KAAKkK,IAAIlK,KAAK8U,IAAI9U,KAAKigB,GAAK,EAAM1oB,KAAK+3B,GAAK,IAC3C/3B,KAAKmnB,MACL1e,KAAKkK,IAAIlK,KAAK8U,IAAI9U,KAAKigB,GAAK,EAAM8O,EAAO,IACzCx3B,KAAKmnB,MACLhP,EAAI,EACJ1P,KAAKkK,KAAK,EAAIwF,EAAIuf,IACjB,EAAIvf,EAAIuf,KAIrBjY,QAAS,SAAS8N,GAChB,GAAI0K,GAAMxvB,KAAKkK,IAAIlK,KAAK8U,IAAI9U,KAAKigB,GAAK,EAAM6E,EAAEpO,EAAI,IAC9C+Y,EAAMl4B,KAAKmY,EAAI,EACT1P,KAAKkK,KAAK,EAAI3S,KAAKmY,EAAI1P,KAAK6U,IAAIiQ,EAAEpO,KACjC,EAAInf,KAAKmY,EAAI1P,KAAK6U,IAAIiQ,EAAEpO,KAC/BgZ,GAAKn4B,KAAKmnB,OAAS8Q,EAAMC,GAAOl4B,KAAKg4B,EAGrCrc,EAAI,GAAOlT,KAAKwhB,KAAKxhB,KAAKmiB,IAAIuN,IAAM1vB,KAAKigB,GAAK,GAG9C0P,EAAIp4B,KAAKmnB,OAASoG,EAAEtO,EAAIjf,KAAKy3B,SAG7BY,EAAO5vB,KAAKwhB,KAAKxhB,KAAK6U,IAAI8a,IACnB3vB,KAAK6U,IAAItd,KAAK+3B,IAAMtvB,KAAK8U,IAAI5B,GAC7BlT,KAAKgV,IAAIzd,KAAK+3B,IAAMtvB,KAAKgV,IAAI2a,KAEpCE,EAAO7vB,KAAK2hB,KAAK3hB,KAAKgV,IAAIzd,KAAK+3B,IAAMtvB,KAAK6U,IAAI3B,GAC7BlT,KAAK6U,IAAItd,KAAK+3B,IAAMtvB,KAAKgV,IAAI9B,GAAKlT,KAAKgV,IAAI2a,GAMhE,OAJA7K,GAAEpO,EAAInf,KAAK83B,EAAI,EACLrvB,KAAKkK,KAAK,EAAIlK,KAAK6U,IAAIgb,KAAU,EAAI7vB,KAAK6U,IAAIgb,KAC9Ct4B,KAAKsjB,GACfiK,EAAEtO,EAAIjf,KAAK83B,EAAIO,EAAOr4B,KAAKqjB,GACpBkK,GAGTlO,QAAS,SAASkO,GAmBhB,IAlBA,GAAIE,GAAIF,EAAEtO,EAAIjf,KAAKqjB,GACfmK,EAAID,EAAEpO,EAAInf,KAAKsjB,GAEf+U,EAAO5K,EAAIztB,KAAK83B,EAChBQ,EAAO,GAAK7vB,KAAKwhB,KAAKxhB,KAAKmiB,IAAI4C,EAAIxtB,KAAK83B,IAAMrvB,KAAKigB,GAAK,GAExD/M,EAAIlT,KAAK2hB,KAAK3hB,KAAKgV,IAAIzd,KAAK+3B,IAAMtvB,KAAK6U,IAAIgb,GACrC7vB,KAAK6U,IAAItd,KAAK+3B,IAAMtvB,KAAKgV,IAAI6a,GAAQ7vB,KAAKgV,IAAI4a,IACpDD,EAAI3vB,KAAKwhB,KAAKxhB,KAAK6U,IAAI+a,IAChB5vB,KAAKgV,IAAIzd,KAAK+3B,IAAMtvB,KAAKgV,IAAI4a,GAAQ5vB,KAAK6U,IAAItd,KAAK+3B,IACpDtvB,KAAK8U,IAAI+a,KAEfC,EAASv4B,KAAKy3B,QAAUW,EAAIp4B,KAAKmnB,MAEjCgR,EAAI,EACJK,EAAM7c,EACN8c,GAAW,IACXC,EAAY,EACTjwB,KAAKiV,IAAI8a,EAAMC,GAAW,MACjC,CACE,KAAMC,EAAY,GAGhB,WADA/a,GAAQC,YAAY,mBAItBua,GAAI,EACMn4B,KAAKmnB,OACJ1e,KAAKkK,IAAIlK,KAAK8U,IAAI9U,KAAKigB,GAAK,EAAM/M,EAAI,IAAQ3b,KAAKg4B,GACpDh4B,KAAKmY,EACL1P,KAAKkK,IAAIlK,KAAK8U,IAAI9U,KAAKigB,GAAK,EAC5BjgB,KAAK2hB,KAAKpqB,KAAKmY,EAAI1P,KAAK6U,IAAIkb,IAC5B,IACVC,EAAUD,EACVA,EAAM,EAAM/vB,KAAKwhB,KAAKxhB,KAAKmiB,IAAIuN,IAAM1vB,KAAKigB,GAAK,EAKjD,MAFA6E,GAAEtO,EAAIsZ,EACNhL,EAAEpO,EAAIqZ,EACCjL,IAUX5P,EAAQuF,KAAKyV,OACXC,MAAO,SAASC,EAAMhc,EAAQic,GAE1B,MADAjc,IAAUic,EACFrwB,KAAK8U,IAAK,IAAMI,EAAQa,OAAOmK,QAAUkQ,IAASpwB,KAAKohB,KAAK,EAAKhN,IAAW,EAAKA,GAAS,GAAKic,IAE3GC,IAAK,KACLC,MAAO,EACPC,KAAM,MACNC,OAAQ,EACRC,OAAQ,EACRC,MAAO,EACPC,MAAO,EAEP7pB,KAAM,WACFxP,KAAKs5B,MAAQt5B,KAAKknB,OAASlnB,KAAKknB,OAASvJ,EAAQa,OAAOmK,OAC1D,IAAIvI,GAAI3X,KAAKiV,IAAI1d,KAAKumB,KAOpB,IANK9d,KAAKiV,IAAI0C,GAAKzC,EAAQa,OAAOmK,QAAWhL,EAAQa,OAAOuJ,MACxD/nB,KAAK4zB,KAAO5zB,KAAKumB,KAAO,EAAKvmB,KAAKk5B,OAASl5B,KAAKm5B,OAEhDn5B,KAAK4zB,KAAOxT,EAAIzC,EAAQa,OAAOuJ,MAAQ/nB,KAAKo5B,MAAQp5B,KAAKq5B,MAE7Dr5B,KAAKs5B,MAAQ7wB,KAAKiV,IAAI1d,KAAKs5B,OACvBt5B,KAAK4f,GAAI,CACT,GAAI4N,EAEJ,QAAQxtB,KAAK4zB,MACb,IAAK5zB,MAAKm5B,OACV,IAAKn5B,MAAKk5B,OACFzwB,KAAKiV,IAAI1d,KAAKs5B,MAAQ3b,EAAQa,OAAOmK,SAAWhL,EAAQa,OAAOuJ,MAC/D/nB,KAAKu5B,KAAO,EAAKv5B,KAAKqmB,GAAK5d,KAAK+U,KAAK/U,KAAKohB,IAAI,EAAE7pB,KAAKmY,EAAE,EAAEnY,KAAKmY,GAAG1P,KAAKohB,IAAI,EAAE7pB,KAAKmY,EAAE,EAAEnY,KAAKmY,KAElGiI,EAAI3X,KAAK6U,IAAItd,KAAKs5B,OACVt5B,KAAKu5B,KAAO9wB,KAAKgV,IAAIzd,KAAKs5B,OAAS3b,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAGnY,KAAKs5B,MAAOlZ,GAC5EA,GAAKpgB,KAAKmY,EACVnY,KAAKu5B,MAAQ9wB,KAAK+U,KAAK,EAAK4C,EAAIA,GAEpC,MACJ,KAAKpgB,MAAKq5B,MACNr5B,KAAKu5B,KAAO,EAAKv5B,KAAKqmB,EACtB,MACJ,KAAKrmB,MAAKo5B,MACNhZ,EAAI3X,KAAK6U,IAAItd,KAAKumB,MAClBiH,EAAI,EAAK/kB,KAAKwhB,KAAKjqB,KAAK44B,MAAM54B,KAAKumB,KAAMnG,EAAGpgB,KAAKmY,IAAMwF,EAAQa,OAAOmK,QACtEvI,GAAKpgB,KAAKmY,EACVnY,KAAKu5B,KAAO,EAAKv5B,KAAKqmB,GAAK5d,KAAKgV,IAAIzd,KAAKumB,MAAQ9d,KAAK+U,KAAK,EAAK4C,EAAIA,GACpEpgB,KAAKw5B,MAAQ/wB,KAAK6U,IAAIkQ,GACtBxtB,KAAKy5B,MAAQhxB,KAAKgV,IAAI+P,QAI1B,QAAQxtB,KAAK4zB,MACb,IAAK5zB,MAAKo5B,MACNp5B,KAAK05B,OAASjxB,KAAK6U,IAAItd,KAAKumB,MAC5BvmB,KAAK25B,OAASlxB,KAAKgV,IAAIzd,KAAKumB,KAChC,KAAKvmB,MAAKq5B,MACNr5B,KAAKu5B,KAAO,EAAKv5B,KAAKqmB,EACtB,MACJ,KAAKrmB,MAAKk5B,OACV,IAAKl5B,MAAKm5B,OACNn5B,KAAKu5B,KAAO9wB,KAAKiV,IAAI1d,KAAKs5B,MAAQ3b,EAAQa,OAAOmK,UAAYhL,EAAQa,OAAOuJ,MACzEtf,KAAKgV,IAAIzd,KAAKs5B,OAAS7wB,KAAK8U,IAAII,EAAQa,OAAOqK,OAAS,GAAK7oB,KAAKs5B,OAClE,EAAKt5B,KAAKqmB,KAOzB5G,QAAS,SAAS8N,GAChB,GAAIwE,GAAMxE,EAAEtO,CACZ8S,GAAMpU,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,MAC3C,IACIrH,GAAGE,EADH6S,EAAMzE,EAAEpO,CAGZ,IAAInf,KAAKgoB,OAAQ,CACb,GAAKnL,GAAQ4M,EAAQmQ,EAAQC,CAM7B,QAJAhd,EAASpU,KAAK6U,IAAI0U,GAClBvI,EAAShhB,KAAKgV,IAAIuU,GAClB4H,EAASnxB,KAAKgV,IAAIsU,GAClB8H,EAASpxB,KAAK6U,IAAIyU,GACV/xB,KAAK4zB,MACb,IAAK5zB,MAAKq5B,MACNla,EAAI,EAAKsK,EAASmQ,EACdza,GAAKxB,EAAQa,OAAOuJ,OACxBpK,EAAQC,YAAY,uBAExBuB,EAAInf,KAAKu5B,KAAOpa,EACZF,EAAIE,EAAIsK,EAASoQ,EACrB1a,GAAKtC,CACD,MACJ,KAAK7c,MAAKo5B,MACNja,EAAI,EAAKnf,KAAK05B,OAAS7c,EAAS7c,KAAK25B,OAASlQ,EAASmQ,EACnDza,GAAKxB,EAAQa,OAAOuJ,OACxBpK,EAAQC,YAAY,uBAExBuB,EAAInf,KAAKu5B,KAAOpa,EACZF,EAAIE,EAAIsK,EAASoQ,EACjB1a,GAAKnf,KAAK25B,OAAS9c,EAAS7c,KAAK05B,OAASjQ,EAASmQ,CACnD,MACJ,KAAK55B,MAAKm5B,OACNS,GAAUA,EACV5H,GAAOA,CAEX,KAAKhyB,MAAKk5B,OACFzwB,KAAKiV,IAAIsU,EAAMrU,EAAQa,OAAOmK,SAAW3oB,KAAK+4B,KAClDpb,EAAQC,YAAY,wBAExBuB,EAAInf,KAAKu5B,KAAO9wB,KAAK8U,IAAII,EAAQa,OAAOqK,OAAS,GAAKmJ,GAClD/S,EAAI4a,EAAS1a,EACbA,GAAKya,OAGN,CACHA,EAASnxB,KAAKgV,IAAIsU,GAClB8H,EAASpxB,KAAK6U,IAAIyU,GAClBlV,EAASpU,KAAK6U,IAAI0U,EAClB,IAAI8H,GAAMC,CACV,IAAI/5B,KAAK4zB,MAAQ5zB,KAAKo5B,OAASp5B,KAAK4zB,MAAQ5zB,KAAKq5B,MAAO,CACtD,GAAIW,GAAK,EAAKvxB,KAAKwhB,KAAKjqB,KAAK44B,MAAM5G,EAAKnV,EAAQ7c,KAAKmY,GACvD2hB,GAAOrxB,KAAK6U,IAAI0c,EAAKrc,EAAQa,OAAOmK,SACpCoR,EAAOtxB,KAAKgV,IAAIuc,GAEhB,OAAQh6B,KAAK4zB,MACb,IAAK5zB,MAAKo5B,MACN,GAAIa,GAAIj6B,KAAKu5B,MAAQv5B,KAAKy5B,OAAS,EAAKz5B,KAAKw5B,MAAQM,EAAO95B,KAAKy5B,MAAQM,EAAOH,GAChFza,GAAI8a,GAAKj6B,KAAKy5B,MAAQK,EAAO95B,KAAKw5B,MAAQO,EAAOH,GACjD3a,EAAIgb,EAAIF,CACR,MACJ,KAAK/5B,MAAKq5B,MACN,GAAIY,GAAI,EAAKj6B,KAAKu5B,MAAQ,EAAKQ,EAAOH,EACtCza,GAAI8a,EAAIH,EACR7a,EAAIgb,EAAIF,CACR,MACJ,KAAK/5B,MAAKk5B,OACNlH,GAAOA,EACP4H,GAAWA,EACX/c,GAAUA,CACd,KAAK7c,MAAKm5B,OACNla,EAAIjf,KAAKu5B,KAAO5b,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAG6Z,EAAKnV,GAClDsC,GAAMF,EAAI2a,EAGd3a,GAAQ4a,EAIZ,MAFAtM,GAAEtO,EAAIA,EAAEjf,KAAK0b,EAAI1b,KAAKqjB,GACtBkK,EAAEpO,EAAIA,EAAEnf,KAAK0b,EAAI1b,KAAKsjB,GACfiK,GAKTlO,QAAS,SAASkO,GAChB,GAEIwE,GAAKC,EAELvI,EAAQ5M,EAA2BoW,EACnCngB,EALAmM,GAAKsO,EAAEtO,EAAIjf,KAAKqjB,IAAIrjB,KAAK0b,EACzByD,GAAKoO,EAAEpO,EAAInf,KAAKsjB,IAAItjB,KAAK0b,EAGTwe,EAAG,EAAKC,EAAM,EAAUC,EAAM,EAAKC,EAAI,CAG3D,IAAIr6B,KAAKgoB,OAAQ,CACb,GAAKrL,GAAGmV,EAAIgB,EAAMC,CAOlB,QALFjB,EAAKrpB,KAAK+U,KAAKyB,EAAEA,EAAIE,EAAEA,GACvBxC,EAAI,EAAKlU,KAAKwhB,KAAK6H,EAAK9xB,KAAKu5B,MAC3BzG,EAAOrqB,KAAK6U,IAAIX,GAChBoW,EAAOtqB,KAAKgV,IAAId,GAChBoV,EAAM,EACE/xB,KAAK4zB,MACb,IAAK5zB,MAAKq5B,MAEFrH,EADAvpB,KAAKiV,IAAIoU,IAAOnU,EAAQa,OAAOuJ,MACzB,EAEAtf,KAAK2hB,KAAKjL,EAAI2T,EAAOhB,GAEnB,GAARiB,GAAmB,GAAL9T,IAAS8S,EAAMtpB,KAAKsmB,MAAM9P,EAAI6T,EAAMC,EAAOjB,GAC7D,MACJ,KAAK9xB,MAAKo5B,MAEFpH,EADAvpB,KAAKiV,IAAIoU,IAAOnU,EAAQa,OAAOuJ,MACzB/nB,KAAKs6B,KAEL7xB,KAAK2hB,KAAK2I,EAAO/yB,KAAK05B,OAASva,EAAI2T,EAAO9yB,KAAK25B,OAAS7H,GAEtEnV,EAAIoW,EAAO/yB,KAAK05B,OAASjxB,KAAK6U,IAAI0U,GACrB,GAALrV,GAAgB,GAALsC,IACX8S,EAAMtpB,KAAKsmB,MAAM9P,EAAI6T,EAAO9yB,KAAK25B,OAAQhd,EAAImV,GAEjD,MACJ,KAAK9xB,MAAKm5B,OACNha,GAAKA,CACT,KAAKnf,MAAKk5B,OAEFlH,EADAvpB,KAAKiV,IAAIoU,IAAOnU,EAAQa,OAAOuJ,MACzB/nB,KAAKs6B,KAEL7xB,KAAK2hB,KAAKpqB,KAAK4zB,MAAQ5zB,KAAKk5B,QAAUnG,EAAOA,GAEvDhB,EAAY,GAAL9S,GAAgB,GAALE,EAAW,EAAK1W,KAAKsmB,MAAM9P,EAAGE,GAGpDoO,EAAEtO,EAAItB,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAC3CiH,EAAEpO,EAAI6S,MACH,CAEH,OADAiB,EAAMxqB,KAAK+U,KAAKyB,EAAEA,EAAIE,EAAEA,GAChBnf,KAAK4zB,MACb,IAAK5zB,MAAKo5B,MACV,IAAKp5B,MAAKq5B,MACVa,EAAK,EAAKzxB,KAAKsmB,MAAMkE,EAAMjzB,KAAKy5B,MAAQz5B,KAAKu5B,MACzC9P,EAAShhB,KAAKgV,IAAIyc,GAClBrd,EAASpU,KAAK6U,IAAI4c,GAEhBC,EADK,GAAPlH,EACUxqB,KAAK2hB,KAAKX,EAASzpB,KAAKw5B,OAExB/wB,KAAK2hB,KAAKX,EAASzpB,KAAKw5B,MAASra,EAAItC,EAAS7c,KAAKy5B,MAAQxG,GAGrEiH,EAAKzxB,KAAK8U,IAAI,IAAMI,EAAQa,OAAOmK,QAAUwR,IAC7Clb,GAAKpC,EACLsC,EAAI8T,EAAMjzB,KAAKy5B,MAAQhQ,EAAStK,EAAInf,KAAKw5B,MAAO3c,EAChDwd,EAAM1c,EAAQa,OAAOmK,QACrByR,EAAQ,GAAKp6B,KAAKmY,CAClB,MACJ,KAAKnY,MAAKm5B,OACNha,GAAKA,CACT,KAAKnf,MAAKk5B,OACVgB,GAAOjH,EAAMjzB,KAAKu5B,KACdY,EAAQxc,EAAQa,OAAOmK,QAAU,EAAKlgB,KAAKwhB,KAAKiQ,GAChDG,GAAO1c,EAAQa,OAAOmK,QACtByR,GAAS,GAAKp6B,KAAKmY,EAGvB,IAAKrF,EAAI9S,KAAKg5B,MAAOlmB,IAAKqnB,EAAQnI,EAG9B,GAFAnV,EAAS7c,KAAKmY,EAAI1P,KAAK6U,IAAI6c,GAC3BnI,EAAM,EAAKvpB,KAAKwhB,KAAKiQ,EAAKzxB,KAAKohB,KAAK,EAAGhN,IAAS,EAAGA,GAASud,IAAUC,EAClE5xB,KAAKiV,IAAIyc,EAAQnI,GAAOhyB,KAAKi5B,KAK7B,MAJIj5B,MAAK4zB,MAAQ5zB,KAAKk5B,SAAQlH,GAAOA,GACrCD,EAAY,GAAL9S,GAAgB,GAALE,EAAW,EAAK1W,KAAKsmB,MAAM9P,EAAGE,GACtDoO,EAAEtO,EAAItB,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAC3CiH,EAAEpO,EAAI6S,EACOzE,KA6HvB5P,EAAQuF,KAAKqX,MAQXC,WAAY,EAEZhrB,KAAO,WACLxP,KAAKi6B,EAAI,GAAI72B,OACbpD,KAAKi6B,EAAE,GAAM,YACbj6B,KAAKi6B,EAAE,IAAO,YACdj6B,KAAKi6B,EAAE,GAAM,WACbj6B,KAAKi6B,EAAE,IAAO,UACdj6B,KAAKi6B,EAAE,GAAM,SACbj6B,KAAKi6B,EAAE,IAAO,SACdj6B,KAAKi6B,EAAE,GAAM,SACbj6B,KAAKi6B,EAAE,IAAO,QACdj6B,KAAKi6B,EAAE,GAAM,MACbj6B,KAAKi6B,EAAE,KAAO,MAEdj6B,KAAKy6B,KAAO,GAAIr3B,OAAgBpD,KAAK06B,KAAO,GAAIt3B,OAChDpD,KAAKy6B,KAAK,GAAK,YAAiBz6B,KAAK06B,KAAK,GAAM,EAChD16B,KAAKy6B,KAAK,GAAK,WAAiBz6B,KAAK06B,KAAK,GAAK,WAC/C16B,KAAKy6B,KAAK,IAAM,WAAgBz6B,KAAK06B,KAAK,GAAK,UAC/C16B,KAAKy6B,KAAK,IAAM,UAAgBz6B,KAAK06B,KAAK,GAAK,UAC/C16B,KAAKy6B,KAAK,IAAM,UAAgBz6B,KAAK06B,KAAK,IAAM,UAChD16B,KAAKy6B,KAAK,IAAM,SAAgBz6B,KAAK06B,KAAK,IAAM,UAEhD16B,KAAK26B,KAAO,GAAIv3B,OAAgBpD,KAAK46B,KAAO,GAAIx3B,OAChDpD,KAAK26B,KAAK,GAAK,aAAiB36B,KAAK46B,KAAK,GAAM,EAChD56B,KAAK26B,KAAK,IAAM,WAAgB36B,KAAK46B,KAAK,IAAM,WAChD56B,KAAK26B,KAAK,GAAK,WAAiB36B,KAAK46B,KAAK,IAAM,WAChD56B,KAAK26B,KAAK,IAAM,UAAgB36B,KAAK46B,KAAK,GAAK,UAC/C56B,KAAK26B,KAAK,GAAK,WAAiB36B,KAAK46B,KAAK,GAAK,WAC/C56B,KAAK26B,KAAK,GAAK,UAAiB36B,KAAK46B,KAAK,GAAK,UAE/C56B,KAAK66B,EAAI,GAAIz3B,OACbpD,KAAK66B,EAAE,GAAK,aACZ76B,KAAK66B,EAAE,GAAK,YACZ76B,KAAK66B,EAAE,IAAM,UACb76B,KAAK66B,EAAE,IAAM,SACb76B,KAAK66B,EAAE,IAAM,SACb76B,KAAK66B,EAAE,GAAK,QACZ76B,KAAK66B,EAAE,GAAK,MACZ76B,KAAK66B,EAAE,GAAK,OACZ76B,KAAK66B,EAAE,IAAM,OAOfpb,QAAU,SAAS8N,GAajB,IAAK,GAZDwE,GAAMxE,EAAEtO,EACR+S,EAAMzE,EAAEpO,EAER2b,EAAY9I,EAAMhyB,KAAKumB,KACvB4N,EAAYpC,EAAM/xB,KAAKsmB,MAIvByU,EAAQD,EAAYnd,EAAQa,OAAOsK,WAAa,KAAgBkS,EAAW7G,EAC3E8G,EAAU,EAEVC,EAAQ,EACHjrB,EAAI,EAAGA,GAAK,GAAIA,IACvBgrB,GAAoBF,EACpBG,GAAgBl7B,KAAKi6B,EAAEhqB,GAAKgrB,CAW9B,KAAK,GAHDE,GAAgEC,EAJhEC,EAAQH,EAAwDI,EAAQN,EAGxEO,EAAU,EAAsDC,EAAU,EAG1EC,EAAO,EAAyDC,EAAO,EAClEzrB,EAAI,EAAGA,GAAK,EAAGA,IACtBkrB,EAAWI,EAAQF,EAAQG,EAAQF,EAA2BF,EAAWI,EAAQH,EAAQE,EAAQD,EACjGC,EAAUJ,EAAoDK,EAAUJ,EACxEK,EAAOA,EAAOz7B,KAAKy6B,KAAKxqB,GAAGsrB,EAAUv7B,KAAK06B,KAAKzqB,GAAGurB,EAAYE,EAAOA,EAAO17B,KAAK06B,KAAKzqB,GAAGsrB,EAAUv7B,KAAKy6B,KAAKxqB,GAAGurB,CAOlH,OAHAjO,GAAEtO,EAAKyc,EAAO17B,KAAK0b,EAAK1b,KAAKqjB,GAC7BkK,EAAEpO,EAAKsc,EAAOz7B,KAAK0b,EAAK1b,KAAKsjB,GAEtBiK,GAOTlO,QAAU,SAASkO,GAgBjB,IAAK,GAHDoO,GAA0EC,EAX1E3c,EAAIsO,EAAEtO,EACNE,EAAIoO,EAAEpO,EAEN0c,EAAU5c,EAAIjf,KAAKqjB,GACnByY,EAAU3c,EAAInf,KAAKsjB,GAGnBmY,EAAOK,EAAU97B,KAAK0b,EAAoDggB,EAAOG,EAAU77B,KAAK0b,EAGhGqgB,EAAS,EAAiEC,EAAS,EAGnFX,EAAQ,EAAkEC,EAAQ,EAC7ErrB,EAAI,EAAGA,GAAK,EAAGA,IACtB0rB,EAAUI,EAAON,EAAOO,EAAON,EAAyCE,EAAUI,EAAOP,EAAOM,EAAOL,EACvGK,EAASJ,EAA+DK,EAASJ,EACjFP,EAAQA,EAAQr7B,KAAK26B,KAAK1qB,GAAG8rB,EAAS/7B,KAAK46B,KAAK3qB,GAAG+rB,EAAqBV,EAAQA,EAAQt7B,KAAK46B,KAAK3qB,GAAG8rB,EAAS/7B,KAAK26B,KAAK1qB,GAAG+rB,CAO7H,KAAK,GAAIlpB,GAAI,EAAGA,EAAI9S,KAAKw6B,WAAY1nB,IAAK,CAKvC,IAAK,GAHDqoB,GAA0EC,EAD1EG,EAAUF,EAAgEG,EAAUF,EAGpFW,EAASR,EAAiES,EAASR,EAC9EzrB,EAAI,EAAGA,GAAK,EAAGA,IACtBkrB,EAAWI,EAAQF,EAAQG,EAAQF,EAAqCF,EAAWI,EAAQH,EAAQE,EAAQD,EAC3GC,EAAUJ,EAA8DK,EAAUJ,EAClFa,IAAmBhsB,EAAE,IAAIjQ,KAAKy6B,KAAKxqB,GAAGsrB,EAAUv7B,KAAK06B,KAAKzqB,GAAGurB,GAAWU,IAAmBjsB,EAAE,IAAIjQ,KAAK06B,KAAKzqB,GAAGsrB,EAAUv7B,KAAKy6B,KAAKxqB,GAAGurB,EAGvID,GAAU,EAAgEC,EAAU,CAEpF,KAAK,GADDW,GAASn8B,KAAKy6B,KAAK,GAAuD2B,EAASp8B,KAAK06B,KAAK,GACxFzqB,EAAI,EAAGA,GAAK,EAAGA,IACtBkrB,EAAWI,EAAQF,EAAQG,EAAQF,EAAqCF,EAAWI,EAAQH,EAAQE,EAAQD,EAC3GC,EAAUJ,EAA8DK,EAAUJ,EAClFe,GAAkBlsB,GAAKjQ,KAAKy6B,KAAKxqB,GAAGsrB,EAAUv7B,KAAK06B,KAAKzqB,GAAGurB,GAAaY,GAAkBnsB,GAAKjQ,KAAK06B,KAAKzqB,GAAGsrB,EAAUv7B,KAAKy6B,KAAKxqB,GAAGurB,EAIrI,IAAIa,GAAOF,EAAOA,EAASC,EAAOA,CAClCf,IAASY,EAAOE,EAASD,EAAOE,GAAUC,EAAgCf,GAASY,EAAOC,EAASF,EAAOG,GAAUC,EAQvH,IAAK,GAJDnB,GAAQG,EAAkEL,EAAWM,EACrFgB,EAAU,EAEVvB,EAAQ,EACH9qB,EAAI,EAAGA,GAAK,EAAGA,IACrBqsB,GAAoBpB,EACpBH,GAAgB/6B,KAAK66B,EAAE5qB,GAAKqsB,CAK/B,IAAItK,GAAMhyB,KAAKumB,KAAQwU,EAAQpd,EAAQa,OAAOsK,WAAa,IACvDiJ,EAAM/xB,KAAKsmB,MAAS0U,CAKxB,OAHAzN,GAAEtO,EAAI8S,EACNxE,EAAEpO,EAAI6S,EAECzE,IAoCX5P,EAAQuF,KAAKqZ,MAIX/sB,KAAM,aAONiQ,QAAS,SAAS8N,GAChB,GAAIwE,GAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,EAGNqU,EAAO7V,EAAQa,OAAOsM,WAAWiH,EAAK/xB,KAAKsmB,OAC3CrH,EAAIjf,KAAKqjB,GAAKrjB,KAAK0b,EAAI8X,EACvBrU,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAIjT,KAAKkK,IAAIlK,KAAK8U,IAAKI,EAAQa,OAAOkK,GAAK,EAAQsJ,EAAM,MAAS,IAIzF,OAFAzE,GAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAKTlO,QAAS,SAASkO,GAChBA,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,EAEZ,IAAIyO,GAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAQiH,EAAEtO,EAAGjf,KAAK0b,GACvDsW,EAAM,KAAOvpB,KAAKwhB,KAAKxhB,KAAKmiB,IAAI,GAAI2C,EAAEpO,EAAEnf,KAAK0b,IAAMiC,EAAQa,OAAOkK,GAAK,EAI3E,OAFA6E,GAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IA6BX5P,EAAQuF,KAAKsZ,MAIXhtB,KAAM,SAASomB,GAIb51B,KAAK61B,QAAQptB,KAAK6U,IAAItd,KAAKumB,MAC3BvmB,KAAK81B,QAAQrtB,KAAKgV,IAAIzd,KAAKumB,MAE3BvmB,KAAKy8B,cAAgB,IAAOz8B,KAAK0b,EACjC1b,KAAKyyB,GAAK,GAMZhT,QAAS,SAAS8N,GAChB,GAAI1Q,GAAQ4M,EACR+J,EACAuC,EACAC,EACAhC,EACA/U,EAAGE,EACH4S,EAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,CA8BV,OA3BAqU,GAAO7V,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAE5CzJ,EAAOpU,KAAK6U,IAAI0U,GAChBvI,EAAOhhB,KAAKgV,IAAIuU,GAEhB+D,EAASttB,KAAKgV,IAAI+V,GAClBQ,EAAIh0B,KAAK61B,QAAUhZ,EAAS7c,KAAK81B,QAAUrM,EAASsM,EACpDC,EAAM,EACDhC,EAAI,GAAOvrB,KAAKiV,IAAIsW,IAAMrW,EAAQa,OAAOuJ,OAC5C9I,EAAIjf,KAAKqjB,GAAKrjB,KAAK0b,EAAIsa,EAAMvM,EAAShhB,KAAK6U,IAAIkW,GAAQQ,EACvD7U,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAIsa,GAAOh2B,KAAK81B,QAAUjZ,EAAS7c,KAAK61B,QAAUpM,EAASsM,GAAU/B,IAExFrW,EAAQC,YAAY,sBASpBqB,EAAIjf,KAAKqjB,GAAKrjB,KAAKy8B,cAAgBhT,EAAShhB,KAAK6U,IAAIkW,GACrDrU,EAAInf,KAAKsjB,GAAKtjB,KAAKy8B,eAAiBz8B,KAAK81B,QAAUjZ,EAAS7c,KAAK61B,QAAUpM,EAASsM,IAGtFxI,EAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAITlO,QAAS,SAASkO,GAChB,GAAIuE,GAEAgB,EAAMC,EACNpW,EACAoV,EAAMC,CAyBV,OArBAzE,GAAEtO,GAAKsO,EAAEtO,EAAIjf,KAAKqjB,IAAMrjB,KAAK0b,EAC7B6R,EAAEpO,GAAKoO,EAAEpO,EAAInf,KAAKsjB,IAAMtjB,KAAK0b,EAE7B6R,EAAEtO,GAAKjf,KAAKqmB,GACZkH,EAAEpO,GAAKnf,KAAKqmB,IAENyL,EAAKrpB,KAAK+U,KAAK+P,EAAEtO,EAAIsO,EAAEtO,EAAIsO,EAAEpO,EAAIoO,EAAEpO,KACvCxC,EAAIlU,KAAKsmB,MAAM+C,EAAI9xB,KAAKyyB,IACxBK,EAAOrqB,KAAK6U,IAAIX,GAChBoW,EAAOtqB,KAAKgV,IAAId,GAEhBqV,EAAMrU,EAAQa,OAAO2L,MAAM4I,EAAK/yB,KAAK61B,QAAWtI,EAAEpO,EAAE2T,EAAK9yB,KAAK81B,QAAWhE,GACzEC,EAAMtpB,KAAKsmB,MAAMxB,EAAEtO,EAAE6T,EAAMhB,EAAG9xB,KAAK81B,QAAQ/C,EAAOxF,EAAEpO,EAAEnf,KAAK61B,QAAQ/C,GACnEf,EAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAMyL,KAE3CC,EAAMhyB,KAAK2yB,MACXZ,EAAM,GAGRxE,EAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IAmCX5P,EAAQuF,KAAKwZ,MAITltB,KAAM,WAKGxP,KAAKgoB,QAGZhoB,KAAKiQ,EAAI,EACTjQ,KAAK28B,EAAI,EACT38B,KAAK4f,GAAK,EACV5f,KAAK48B,IAAMn0B,KAAK+U,MAAMxd,KAAK28B,EAAI,GAAM38B,KAAKiQ,GAC1CjQ,KAAK68B,IAAM78B,KAAK48B,KAAK58B,KAAK28B,EAAI,IAN1B38B,KAAKksB,GAAKvO,EAAQa,OAAOyN,QAAQjsB,KAAK4f,KAa5CH,QAAS,SAAS8N,GACd,GAAItO,GAAEE,EACF4S,EAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,CAKV,IAFA4S,EAAMpU,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAEvCtmB,KAAKgoB,OAAQ,CACnB,GAAKhoB,KAAK28B,EAIR,IAAK,GADDvP,GAAIptB,KAAKiQ,EAAIxH,KAAK6U,IAAI0U,GACjBlf,EAAI6K,EAAQa,OAAOuK,SAAUjW,IAAMA,EAAG,CAC7C,GAAIgqB,IAAK98B,KAAK28B,EAAI3K,EAAMvpB,KAAK6U,IAAI0U,GAAO5E,IAAMptB,KAAK28B,EAAIl0B,KAAKgV,IAAIuU,GAEhE,IADAA,GAAO8K,EACHr0B,KAAKiV,IAAIof,GAAKnf,EAAQa,OAAOuJ,MAAO,UAN1CiK,GAAgB,GAAVhyB,KAAKiQ,EAAUxH,KAAK2hB,KAAKpqB,KAAKiQ,EAAIxH,KAAK6U,IAAI0U,IAAOA,CAS1D/S,GAAIjf,KAAK0b,EAAI1b,KAAK68B,IAAM9K,GAAO/xB,KAAK28B,EAAIl0B,KAAKgV,IAAIuU,IACjD7S,EAAInf,KAAK0b,EAAI1b,KAAK48B,IAAM5K,MAEf,CAEL,GAAI3E,GAAI5kB,KAAK6U,IAAI0U,GACbrV,EAAIlU,KAAKgV,IAAIuU,EACrB7S,GAAInf,KAAK0b,EAAIiC,EAAQa,OAAOuO,QAAQiF,EAAK3E,EAAG1Q,EAAG3c,KAAKksB,IACpDjN,EAAIjf,KAAK0b,EAAIqW,EAAMpV,EAAIlU,KAAK+U,KAAK,EAAKxd,KAAK4f,GAAKyN,EAAIA,GAKlD,MAFAE,GAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAGXlO,QAAS,SAASkO,GACd,GAAIyE,GAAIhG,EAAK+F,CAQb,IAJAxE,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,GACZ0O,EAAMzE,EAAEpO,EAAInf,KAAK0b,EAEb1b,KAAKgoB,OAEXuF,EAAEpO,GAAKnf,KAAK48B,IACZ5K,EAAMhyB,KAAK28B,EAAIl0B,KAAK2hB,MAAMpqB,KAAK28B,EAAIpP,EAAEpO,EAAI1W,KAAK6U,IAAIiQ,EAAEpO,IAAMnf,KAAKiQ,GACjD,GAAVjQ,KAAKiQ,EAAUxH,KAAK2hB,KAAK3hB,KAAK6U,IAAIiQ,EAAEpO,GAAKnf,KAAKiQ,GAAKsd,EAAEpO,EACzD4S,EAAMxE,EAAEtO,GAAKjf,KAAK68B,KAAO78B,KAAK28B,EAAIl0B,KAAKgV,IAAI8P,EAAEpO,SAEpC,CACL6S,EAAMrU,EAAQa,OAAO0O,YAAYK,EAAEpO,EAAEnf,KAAK0b,EAAG1b,KAAK4f,GAAI5f,KAAKksB,GAC3D,IAAImB,GAAI5kB,KAAKiV,IAAIsU,EACjB3E,GAAI1P,EAAQa,OAAOmK,SACrB0E,EAAI5kB,KAAK6U,IAAI0U,GACbhG,EAAOhsB,KAAKsmB,MAAQiH,EAAEtO,EAAIxW,KAAK+U,KAAK,EAAKxd,KAAK4f,GAAKyN,EAAIA,IAAKrtB,KAAK0b,EAAIjT,KAAKgV,IAAIuU,IAE9ED,EAAMpU,EAAQa,OAAOsM,WAAWkB,IACtBqB,EAAI1P,EAAQa,OAAOuJ,MAASpK,EAAQa,OAAOmK,UACrDoJ,EAAM/xB,KAAKsmB,OAOX,MAFAiH,GAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IAsCf5P,EAAQuF,KAAK6Z,OAITvtB,KAAM,WACFxP,KAAK83B,EAAI,SAGbrY,QAAS,SAAS8N,GAEd,GAMItO,GAAEE,EANF4S,EAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,EAINqU,EAAO7V,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,MAG5C7d,MAAKiV,IAAIsU,IAAQrU,EAAQa,OAAOuJ,QAChC9I,EAAIjf,KAAKqjB,GAAMrjB,KAAK83B,EAAItE,EACxBrU,EAAInf,KAAKsjB,GAEb,IAAI+O,GAAQ1U,EAAQa,OAAO2L,MAAM,EAAM1hB,KAAKiV,IAAIsU,EAAMrU,EAAQa,OAAOkK,MAChEjgB,KAAKiV,IAAI8V,IAAS7V,EAAQa,OAAOuJ,OAAWtf,KAAKiV,IAAIjV,KAAKiV,IAAIsU,GAAOrU,EAAQa,OAAOmK,UAAYhL,EAAQa,OAAOuJ,SAChH9I,EAAIjf,KAAKqjB,GAELlE,EADA6S,GAAO,EACHhyB,KAAKsjB,GAAK3F,EAAQa,OAAOkK,GAAK1oB,KAAK83B,EAAIrvB,KAAK8U,IAAI,GAAK8U,GAErDryB,KAAKsjB,GAAK3F,EAAQa,OAAOkK,GAAK1oB,KAAK83B,GAAMrvB,KAAK8U,IAAI,GAAK8U,GAInE,IAAIgB,GAAK,GAAK5qB,KAAKiV,IAAKC,EAAQa,OAAOkK,GAAK8K,EAASA,EAAO7V,EAAQa,OAAOkK,IACvEsU,EAAM3J,EAAKA,EACX4J,EAAQx0B,KAAK6U,IAAI+U,GACjB6K,EAAQz0B,KAAKgV,IAAI4U,GAEjB2B,EAAIkJ,GAASD,EAAQC,EAAQ,GAC7BC,EAAMnJ,EAAIA,EACV2I,EAAI3I,GAAK,EAAMiJ,EAAQ,GACvBG,EAAMT,EAAIA,EACVjT,EAAM/L,EAAQa,OAAOkK,GAAK1oB,KAAK83B,GAAKzE,GAAMW,EAAIoJ,GAAO30B,KAAK+U,KAAKwf,GAAOhJ,EAAIoJ,IAAQpJ,EAAIoJ,IAAQA,EAAMJ,IAAQG,EAAMC,MAAUA,EAAMJ,EAatI,OAZIxJ,GAAO,IACV9J,GAAOA,GAERzK,EAAIjf,KAAKqjB,GAAKqG,EACdA,EAAMjhB,KAAKiV,IAAIgM,GAAO/L,EAAQa,OAAOkK,GAAK1oB,KAAK83B,IAE9C3Y,EADG6S,GAAO,EACNhyB,KAAKsjB,GAAK3F,EAAQa,OAAOkK,GAAK1oB,KAAK83B,EAAIrvB,KAAK+U,KAAK,EAAMkM,EAAMA,EAAM,EAAM2J,EAAK3J,GAE9E1pB,KAAKsjB,GAAK3F,EAAQa,OAAOkK,GAAK1oB,KAAK83B,EAAIrvB,KAAK+U,KAAK,EAAMkM,EAAMA,EAAM,EAAM2J,EAAK3J,GAEnF6D,EAAEtO,EAAIA,EACNsO,EAAEpO,EAAIA,EACCoO,GAKXlO,QAAS,SAASkO,GACd,GAAIwE,GAAKC,EACLqL,EAAGC,EAAGC,EAAIC,EAAGC,EAAGC,EAEhBC,EACAC,EACAlU,EACAmU,EACAjJ,CAsCJ,OAlCArH,GAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,GACZoG,EAAM/L,EAAQa,OAAOkK,GAAK1oB,KAAK83B,EAC/BuF,EAAK9P,EAAEtO,EAAIyK,EACX4T,EAAI/P,EAAEpO,EAAIuK,EACV6T,EAAMF,EAAKA,EAAKC,EAAKA,EACrBE,GAAM/0B,KAAKiV,IAAI4f,IAAO,EAAMC,GAC5BE,EAAKD,EAAK,EAAMF,EAAKA,EAAKD,EAAKA,EAC/BK,GAAM,EAAMF,EAAK,EAAM,EAAMF,EAAKA,EAAKC,EAAMA,EAC7C3I,EAAI0I,EAAKA,EAAKI,GAAM,EAAMD,EAAKA,EAAKA,EAAKC,EAAKA,EAAKA,EAAK,EAAMF,EAAKC,EAAKC,EAAIA,GAAM,GAClFC,GAAMH,EAAKC,EAAKA,EAAK,EAAMC,GAAMA,EACjCE,EAAK,EAAMn1B,KAAK+U,MAAOmgB,EAAK,GAC5BjU,EAAQ,EAAMkL,EAAK+I,EAAMC,EACrBn1B,KAAKiV,IAAIgM,GAAO,IAEZA,EADAA,GAAO,EACD,GAEC,GAGfmU,EAAMp1B,KAAK2rB,KAAK1K,GAAO,EAEnBsI,EADAzE,EAAEpO,GAAK,IACCye,EAAIn1B,KAAKgV,IAAIogB,EAAMlgB,EAAQa,OAAOkK,GAAK,GAAO+U,EAAK,EAAMC,GAAM/f,EAAQa,OAAOkK,MAE7EkV,EAAKn1B,KAAKgV,IAAIogB,EAAMlgB,EAAQa,OAAOkK,GAAK,GAAO+U,EAAK,EAAMC,GAAM/f,EAAQa,OAAOkK,GAGxFjgB,KAAKiV,IAAI2f,GAAM1f,EAAQa,OAAOuJ,QAC9BgK,EAAM/xB,KAAKsmB,OAEfyL,EAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAQ3I,EAAQa,OAAOkK,IAAM6U,EAAM,EAAM90B,KAAK+U,KAAK,EAAM,GAAO6f,EAAKA,EAAKC,EAAKA,GAAMC,EAAMA,IAAQ,EAAMF,GAE9I9P,EAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IA0Cf5P,EAAQuF,KAAK4a,KAIXtuB,KAAM,aAONiQ,QAAS,SAAS8N,GAChB,GAAIwE,GAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,EAGNqU,EAAO7V,EAAQa,OAAOsM,WAAWiH,EAAK/xB,KAAKsmB,OAC3CrH,EAAIjf,KAAKqjB,GAAKrjB,KAAK0b,EAAI8X,EAAO/qB,KAAKgV,IAAIzd,KAAKknB,QAC5C/H,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAIjT,KAAK6U,IAAI0U,GAAOvpB,KAAKgV,IAAIzd,KAAKknB,OAczD,OAFAqG,GAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAKTlO,QAAS,SAASkO,GAChBA,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,EAEZ,IAAIyO,GAAMpU,EAAQa,OAAOsM,WAAY9qB,KAAKsmB,MAASiH,EAAEtO,EAAIjf,KAAK0b,EAAKjT,KAAKgV,IAAIzd,KAAKknB,SAE7E8K,EAAMvpB,KAAK2hB,KAAOmD,EAAEpO,EAAEnf,KAAK0b,EAAKjT,KAAKgV,IAAIzd,KAAKknB,QAIlD,OAFAqG,GAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IAQX5P,EAAQuF,KAAK6a,KACXvuB,KAAO,WAECxP,KAAKqjB,KAAIrjB,KAAKqjB,GAAG,GACjBrjB,KAAKsjB,KAAItjB,KAAKsjB,GAAG,GACjBtjB,KAAKumB,OAAMvmB,KAAKumB,KAAK,GACrBvmB,KAAKsmB,QAAOtmB,KAAKsmB,MAAM,GACvBtmB,KAAKknB,SAAQlnB,KAAKknB,OAAO,GACxBlnB,KAAKmjB,QAAOnjB,KAAKmjB,MAAQ,yCAE9BnjB,KAAKyyB,GAAIhqB,KAAKgV,IAAIzd,KAAKknB,SAMzBzH,QAAU,SAAS8N,GAEjB,GAAIwE,GAAKxE,EAAEtO,EACP+S,EAAKzE,EAAEpO,EAEPqU,EAAO7V,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAC5C0X,EAAOrgB,EAAQa,OAAOuM,WAAWiH,EAAMhyB,KAAKumB,KAGhD,OAFAgH,GAAEtO,EAAGjf,KAAKqjB,GAAMrjB,KAAK0b,EAAE8X,EAAKxzB,KAAKyyB,GACjClF,EAAEpO,EAAGnf,KAAKsjB,GAAMtjB,KAAK0b,EAAEsiB,EAChBzQ,GAKXlO,QAAU,SAASkO,GAEjB,GAAItO,GAAGsO,EAAEtO,EACLE,EAAGoO,EAAEpO,CAIT,OAFAoO,GAAEtO,EAAGtB,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,OAAUrH,EAAIjf,KAAKqjB,KAAKrjB,KAAK0b,EAAE1b,KAAKyyB,KACxElF,EAAEpO,EAAGxB,EAAQa,OAAOuM,WAAW/qB,KAAKumB,MAAUpH,EAAInf,KAAKsjB,IAAKtjB,KAAK0b,GAC1D6R,IAkCX5P,EAAQuF,KAAK+a,MACXzuB,KAAO,WACAxP,KAAKgoB,SACRhoB,KAAKksB,GAAKvO,EAAQa,OAAOyN,QAAQjsB,KAAK4f,IACtC5f,KAAKk+B,GAAKvgB,EAAQa,OAAOuO,QAAQ/sB,KAAKumB,KAAM9d,KAAK6U,IAAItd,KAAKumB,MAAO9d,KAAKgV,IAAIzd,KAAKumB,MAAOvmB,KAAKksB,MAI/FiS,GAAI,mBACJC,GAAI,oBACJC,GAAI,oBACJC,GAAI,kBACJC,GAAI,mBAKJ9e,QAAS,SAAS8N,GAIhB,GAAItO,GAAEE,EACFqf,EAAIjR,EAAEtO,EACNrC,EAAI2Q,EAAEpO,CAuBV,OAtBAqf,GAAM7gB,EAAQa,OAAOsM,WAAW0T,EAAMx+B,KAAKsmB,OAEvCtmB,KAAKgoB,QACP/I,EAAIxW,KAAK2hB,KAAK3hB,KAAKgV,IAAIb,GAAOnU,KAAK6U,IAAIkhB,IACvCrf,EAAI1W,KAAKsmB,MAAMtmB,KAAK8U,IAAIX,GAAOnU,KAAKgV,IAAI+gB,IAAQx+B,KAAKs6B,OAGrDt6B,KAAKiQ,EAAIxH,KAAK6U,IAAIV,GAClB5c,KAAK2c,EAAIlU,KAAKgV,IAAIb,GAClBuC,EAAIxB,EAAQa,OAAOuO,QAAQnQ,EAAK5c,KAAKiQ,EAAGjQ,KAAK2c,EAAG3c,KAAKksB,IACrDlsB,KAAKiQ,EAAI,EAAGxH,KAAK+U,KAAK,EAAKxd,KAAK4f,GAAK5f,KAAKiQ,EAAIjQ,KAAKiQ,GACnDjQ,KAAKy+B,GAAKh2B,KAAK8U,IAAIX,GACnB5c,KAAKogB,EAAIpgB,KAAKy+B,GAAKz+B,KAAKy+B,GACxBz+B,KAAK29B,GAAKa,EAAMx+B,KAAK2c,EACrB3c,KAAK2c,GAAK3c,KAAK4f,GAAK5f,KAAK2c,GAAK,EAAI3c,KAAK4f,IACvC5f,KAAKioB,GAAKjoB,KAAK29B,GAAK39B,KAAK29B,GACzB1e,EAAIjf,KAAKiQ,EAAIjQ,KAAK29B,IAAM,EAAK39B,KAAKioB,GAAKjoB,KAAKogB,GAAKpgB,KAAKm+B,IAAM,EAAKn+B,KAAKogB,EAAI,EAAKpgB,KAAK2c,GAAK3c,KAAKioB,GAAKjoB,KAAKo+B,KACxGjf,GAAKnf,KAAKk+B,GAAKl+B,KAAKiQ,EAAIjQ,KAAKy+B,GAAKz+B,KAAKioB,IAAM,IAAM,EAAKjoB,KAAKogB,EAAI,EAAKpgB,KAAK2c,GAAK3c,KAAKioB,GAAKjoB,KAAKq+B,KAGjG9Q,EAAEtO,EAAIjf,KAAK0b,EAAEuD,EAAIjf,KAAKqjB,GACtBkK,EAAEpO,EAAInf,KAAK0b,EAAEyD,EAAInf,KAAKsjB,GACfiK,GAKTlO,QAAS,SAASkO,GAChBA,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,EACZ,IAEI1G,GAAK4hB,EAFLvf,EAAIsO,EAAEtO,EAAEjf,KAAK0b,EACbyD,EAAIoO,EAAEpO,EAAEnf,KAAK0b,CAGjB,IAAI1b,KAAKgoB,OACPhoB,KAAK0+B,GAAKvf,EAAInf,KAAKumB,KACnB3J,EAAMnU,KAAK2hB,KAAK3hB,KAAK6U,IAAItd,KAAK0+B,IAAMj2B,KAAKgV,IAAIwB,IAC7Cuf,EAAM/1B,KAAKsmB,MAAMtmB,KAAK8U,IAAI0B,GAAIxW,KAAKgV,IAAIzd,KAAK0+B,SACvC,CAEL,GAAIC,GAAMhhB,EAAQa,OAAO0O,YAAYltB,KAAKk+B,GAAK/e,EAAGnf,KAAK4f,GAAI5f,KAAKksB,GAChElsB,MAAKy+B,GAAKh2B,KAAK8U,IAAIohB,GACnB3+B,KAAKogB,EAAIpgB,KAAKy+B,GAAKz+B,KAAKy+B,GACxBz+B,KAAKiQ,EAAIxH,KAAK6U,IAAIqhB,GAClB3+B,KAAKyrB,EAAI,GAAM,EAAKzrB,KAAK4f,GAAK5f,KAAKiQ,EAAIjQ,KAAKiQ,GAC5CjQ,KAAKiQ,EAAIxH,KAAK+U,KAAKxd,KAAKyrB,GACxBzrB,KAAKyrB,IAAM,EAAKzrB,KAAK4f,IAAM5f,KAAKiQ,EAChCjQ,KAAK0+B,GAAKzf,EAAIjf,KAAKiQ,EACnBjQ,KAAK4+B,GAAK5+B,KAAK0+B,GAAK1+B,KAAK0+B,GACzB9hB,EAAM+hB,EAAO3+B,KAAKiQ,EAAIjQ,KAAKy+B,GAAKz+B,KAAKyrB,EAAKzrB,KAAK4+B,IAAM,IAAM,EAAK,EAAK5+B,KAAKogB,GAAKpgB,KAAK4+B,GAAK5+B,KAAKq+B,IAC9FG,EAAMx+B,KAAK0+B,IAAM,EAAK1+B,KAAKogB,EAAIpgB,KAAK4+B,KAAO5+B,KAAKs+B,IAAM,EAAK,EAAKt+B,KAAKogB,GAAKpgB,KAAK4+B,GAAK5+B,KAAKu+B,KAAO91B,KAAKgV,IAAIkhB,GAI3G,MAFApR,GAAEtO,EAAItB,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAMkY,GAC3CjR,EAAEpO,EAAIvC,EACC2Q,IASX5P,EAAQuF,KAAK2b,OAEXrvB,KAAO,WACL,GAAIwd,GAAOvkB,KAAK6U,IAAItd,KAAKumB,MACrB0G,EAAOxkB,KAAKgV,IAAIzd,KAAKumB,KACzB0G,IAAQA,EACRjtB,KAAKyyB,GAAKhqB,KAAK+U,KAAK,EAAMxd,KAAK4f,KAAO,EAAM5f,KAAK4f,GAAKoN,EAAOA,GAC7DhtB,KAAK8+B,EAAIr2B,KAAK+U,KAAK,EAAMxd,KAAK4f,GAAKqN,EAAOA,GAAQ,EAAMjtB,KAAK4f,KAC7D5f,KAAK2yB,MAAQlqB,KAAK2hB,KAAK4C,EAAOhtB,KAAK8+B,GACnC9+B,KAAK++B,OAAS,GAAM/+B,KAAK8+B,EAAI9+B,KAAKmY,EAClCnY,KAAKg4B,EAAIvvB,KAAK8U,IAAI,GAAMvd,KAAK2yB,MAAQhV,EAAQa,OAAOqK,SAAWpgB,KAAKohB,IAAIphB,KAAK8U,IAAI,GAAIvd,KAAKumB,KAAO5I,EAAQa,OAAOqK,QAAS7oB,KAAK8+B,GAAKnhB,EAAQa,OAAOkM,KAAK1qB,KAAKmY,EAAE6U,EAAMhtB,KAAK++B,UAG3Ktf,QAAU,SAAS8N,GACjB,GAAIwE,GAAMxE,EAAEtO,EACR+S,EAAMzE,EAAEpO,CAIZ,OAFAoO,GAAEpO,EAAI,EAAM1W,KAAKwhB,KAAMjqB,KAAKg4B,EAAIvvB,KAAKohB,IAAIphB,KAAK8U,IAAI,GAAMyU,EAAMrU,EAAQa,OAAOqK,QAAS7oB,KAAK8+B,GAAKnhB,EAAQa,OAAOkM,KAAK1qB,KAAKmY,EAAI1P,KAAK6U,IAAI0U,GAAMhyB,KAAK++B,SAAYphB,EAAQa,OAAOmK,QAC5K4E,EAAEtO,EAAIjf,KAAK8+B,EAAI/M,EACRxE,GAGTlO,QAAU,SAASkO,GAKjB,IAAK,GAHDwE,GAAMxE,EAAEtO,EAAIjf,KAAK8+B,EACjB9M,EAAMzE,EAAEpO,EACR6f,EAAMv2B,KAAKohB,IAAIphB,KAAK8U,IAAI,GAAMyU,EAAMrU,EAAQa,OAAOqK,QAAQ7oB,KAAKg4B,EAAG,EAAGh4B,KAAK8+B,GACtEhsB,EAAI6K,EAAQa,OAAOuK,SAAUjW,EAAE,IACtCkf,EAAM,EAAMvpB,KAAKwhB,KAAK+U,EAAMrhB,EAAQa,OAAOkM,KAAK1qB,KAAKmY,EAAI1P,KAAK6U,IAAIiQ,EAAEpO,IAAK,GAAMnf,KAAKmY,IAAMwF,EAAQa,OAAOmK,UACrGlgB,KAAKiV,IAAIsU,EAAMzE,EAAEpO,GANT,UAI+BrM,EAG3Cya,EAAEpO,EAAI6S,CAGR,OAAKlf,IAILya,EAAEtO,EAAI8S,EACNxE,EAAEpO,EAAI6S,EACCzE,IALL5P,EAAQC,YAAY,oCACb,QAmCbD,EAAQuF,KAAK+b,OAIXzvB,KAAM,WACCxP,KAAK4zB,OAAM5zB,KAAK4zB,KAAK,GACrB5zB,KAAKk/B,OAASl/B,KAAKk/B,KAAK,EAAEl/B,KAAK4zB,KAAK,GACpC5zB,KAAKm/B,OAAQn/B,KAAKm/B,KAAK,GACvBn/B,KAAKinB,OAASjnB,KAAKinB,KAAK,EAI7B,IAAI+E,GAAOhsB,KAAK2b,EAAG3b,KAAK0b,EACpBkE,EAAK,EAAMnX,KAAKohB,IAAImC,EAAK,EACrBvjB,MAAK+U,KAAKoC,EAElB5f,MAAKo/B,QAAQ32B,KAAK6U,IAAItd,KAAKumB,MAC3BvmB,KAAKq/B,QAAQ52B,KAAKgV,IAAIzd,KAAKumB,MAE3BvmB,KAAK0pB,IAAM,EAAM1pB,KAAK4f,GAAK5f,KAAKo/B,QAAUp/B,KAAKo/B,QAC/Cp/B,KAAK4pB,IAAMnhB,KAAK+U,KAAK,EAAMoC,GAC3B5f,KAAKs/B,GAAK72B,KAAK+U,KAAK,EAAMxd,KAAK4f,GAAKnX,KAAKohB,IAAI7pB,KAAKq/B,QAAQ,IAAM,EAAMzf,IACtE5f,KAAKqzB,GAAKrzB,KAAK0b,EAAI1b,KAAKs/B,GAAKt/B,KAAKqmB,GAAKrmB,KAAK4pB,IAAM5pB,KAAK0pB,IACnDjhB,KAAKiV,IAAI1d,KAAKumB,MAAQ5I,EAAQa,OAAOuJ,OACtC/nB,KAAK+pB,GAAK,EACV/pB,KAAK40B,EAAI,EACT50B,KAAKu/B,GAAK,IAEVv/B,KAAK+pB,GAAKpM,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAEnY,KAAKumB,KAAKvmB,KAAKo/B,SACrDp/B,KAAK0pB,IAAMjhB,KAAK+U,KAAKxd,KAAK0pB,KAC1B1pB,KAAK40B,EAAI50B,KAAKs/B,GAAKt/B,KAAK4pB,KAAO5pB,KAAKq/B,QAAUr/B,KAAK0pB,KAC9C1pB,KAAK40B,EAAI50B,KAAK40B,EAAI,EAAO,EACvB50B,KAAKumB,MAAQ,EACdvmB,KAAKw0B,EAAIx0B,KAAK40B,EAAInsB,KAAK+U,KAAKxd,KAAK40B,EAAI50B,KAAK40B,EAAI,GAE9C50B,KAAKw0B,EAAIx0B,KAAK40B,EAAInsB,KAAK+U,KAAKxd,KAAK40B,EAAI50B,KAAK40B,EAAI,GAGlD50B,KAAKw0B,EAAIx0B,KAAK40B,EAEhB50B,KAAKu/B,GAAKv/B,KAAKw0B,EAAI/rB,KAAKohB,IAAI7pB,KAAK+pB,GAAG/pB,KAAKs/B,KAK3B,GAAbt/B,KAAK4zB,MACN5zB,KAAKg0B,EAAI,IAAMh0B,KAAKw0B,EAAI,EAAIx0B,KAAKw0B,GACjCx0B,KAAKw/B,KAAO7hB,EAAQa,OAAO2L,MAAM1hB,KAAK6U,IAAItd,KAAKmnB,OAASnnB,KAAK40B,GAC7D50B,KAAKonB,MAAOpnB,KAAKonB,MAAQzJ,EAAQa,OAAO2L,MAAMnqB,KAAKg0B,EAAIvrB,KAAK8U,IAAIvd,KAAKw/B,OAAOx/B,KAAKs/B,GAQjFt/B,KAAK0pB,IAAMjhB,KAAKiV,IAAI1d,KAAKumB,MACpBvmB,KAAK0pB,IAAM/L,EAAQa,OAAOuJ,OAAWtf,KAAKiV,IAAI1d,KAAK0pB,IAAM/L,EAAQa,OAAOmK,SAAWhL,EAAQa,OAAOuJ,OAClG/nB,KAAKy/B,OAAOh3B,KAAK6U,IAAItd,KAAKw/B,MAC1Bx/B,KAAK0/B,OAAOj3B,KAAKgV,IAAIzd,KAAKw/B,MAE1Bx/B,KAAK2/B,MAAMl3B,KAAK6U,IAAItd,KAAKmnB,OACzBnnB,KAAK4/B,MAAMn3B,KAAKgV,IAAIzd,KAAKmnB,OAErBnnB,KAAKumB,MAAO,EACbvmB,KAAK+2B,EAAM/2B,KAAKqzB,GAAKrzB,KAAKs/B,GAAM72B,KAAKwhB,KAAKxhB,KAAK+U,KAAKxd,KAAK40B,EAAE50B,KAAK40B,EAAI,GAAK50B,KAAK4/B,OAE9E5/B,KAAK+2B,GAAO/2B,KAAKqzB,GAAKrzB,KAAKs/B,GAAK72B,KAAKwhB,KAAKxhB,KAAK+U,KAAKxd,KAAK40B,EAAE50B,KAAK40B,EAAI,GAAK50B,KAAK4/B,QAGjFjiB,EAAQC,YAAY,0BAGzB5d,KAAK6c,OAAQpU,KAAM6U,IAAItd,KAAK6/B,KAC5B7/B,KAAK8/B,IAAMniB,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAEnY,KAAKgnB,KAAKhnB,KAAK6c,QACtD7c,KAAK6c,OAASpU,KAAK6U,IAAItd,KAAKinB,MAC5BjnB,KAAK+/B,IAAMpiB,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAEnY,KAAKinB,KAAKjnB,KAAK6c,QACtD7c,KAAKy0B,EAAIhsB,KAAKohB,IAAI7pB,KAAK8/B,IAAI9/B,KAAKs/B,IAChCt/B,KAAKggC,EAAIv3B,KAAKohB,IAAI7pB,KAAK+/B,IAAI//B,KAAKs/B,IAChCt/B,KAAKw0B,EAAIx0B,KAAKu/B,GAAGv/B,KAAKy0B,EACtBz0B,KAAKg0B,EAAI,IAAMh0B,KAAKw0B,EAAI,EAAIx0B,KAAKw0B,GACjCx0B,KAAK4lB,GAAK5lB,KAAKu/B,GAAKv/B,KAAKu/B,GAAKv/B,KAAKggC,EAAIhgC,KAAKy0B,IAAIz0B,KAAKu/B,GAAKv/B,KAAKu/B,GAAKv/B,KAAKggC,EAAIhgC,KAAKy0B,GAClFz0B,KAAKutB,GAAKvtB,KAAKggC,EAAIhgC,KAAKy0B,IAAMz0B,KAAKggC,EAAIhgC,KAAKy0B,GAC5Cz0B,KAAKwzB,KAAOxzB,KAAKk/B,KAAOl/B,KAAKm/B,KACzBn/B,KAAKwzB,MAAQ7V,EAAQa,OAAOkK,KAAI1oB,KAAKm/B,KAAOn/B,KAAKm/B,KAAO,EAAMxhB,EAAQa,OAAOkK,IAC7E1oB,KAAKwzB,KAAO7V,EAAQa,OAAOkK,KAAI1oB,KAAKm/B,KAAOn/B,KAAKm/B,KAAO,EAAMxhB,EAAQa,OAAOkK,IAChF1oB,KAAKwzB,KAAOxzB,KAAKk/B,KAAOl/B,KAAKm/B,KAC7Bn/B,KAAKonB,MAAQ,IAAMpnB,KAAKk/B,KAAOl/B,KAAKm/B,MAAO12B,KAAKwhB,KAAKjqB,KAAK4lB,EAAInd,KAAK8U,IAAI,GAAKvd,KAAKs/B,GAAKt/B,KAAKwzB,MAAMxzB,KAAKutB,GAAGvtB,KAAKs/B,GAC9Gt/B,KAAKwzB,KAAQ7V,EAAQa,OAAOsM,WAAW9qB,KAAKk/B,KAAOl/B,KAAKonB,OACxDpnB,KAAKw/B,KAAO/2B,KAAKwhB,KAAKxhB,KAAK6U,IAAItd,KAAKs/B,GAAKt/B,KAAKwzB,MAAMxzB,KAAKg0B,GACzDh0B,KAAKmnB,MAAQxJ,EAAQa,OAAO2L,MAAMnqB,KAAK40B,EAAInsB,KAAK6U,IAAItd,KAAKw/B,OAKrD/2B,KAAKiV,IAAI1d,KAAKgnB,KAAOhnB,KAAKinB,OAAStJ,EAAQa,OAAOuJ,MACnDpK,EAAQC,YAAY,sBAGpB5d,KAAK0pB,IAAMjhB,KAAKiV,IAAI1d,KAAKgnB,MAEvBhnB,KAAK0pB,KAAO/L,EAAQa,OAAOuJ,OAAWtf,KAAKiV,IAAI1d,KAAK0pB,IAAM/L,EAAQa,OAAOmK,UAAYhL,EAAQa,OAAOuJ,MACrGpK,EAAQC,YAAY,sBAGlBnV,KAAKiV,IAAIjV,KAAKiV,IAAI1d,KAAKumB,MAAQ5I,EAAQa,OAAOmK,UAAYhL,EAAQa,OAAOuJ,OAC1EpK,EAAQC,YAAY,sBAKzB5d,KAAKy/B,OAAOh3B,KAAK6U,IAAItd,KAAKigC,KAC1BjgC,KAAK0/B,OAAOj3B,KAAKgV,IAAIzd,KAAKigC,KAE1BjgC,KAAK2/B,MAAMl3B,KAAK6U,IAAItd,KAAKmnB,OACzBnnB,KAAK4/B,MAAMn3B,KAAKgV,IAAIzd,KAAKmnB,OAGrBnnB,KAAKumB,MAAQ,EACdvmB,KAAK+2B,EAAM/2B,KAAKqzB,GAAGrzB,KAAKs/B,GAAM72B,KAAKwhB,KAAKxhB,KAAK+U,KAAKxd,KAAK40B,EAAI50B,KAAK40B,EAAI,GAAK50B,KAAK4/B,OAE9E5/B,KAAK+2B,GAAM/2B,KAAKqzB,GAAGrzB,KAAKs/B,GAAM72B,KAAKwhB,KAAKxhB,KAAK+U,KAAKxd,KAAK40B,EAAI50B,KAAK40B,EAAI,GAAK50B,KAAK4/B,SAQtFngB,QAAS,SAAS8N,GAChB,GACI0E,GAEG7R,EACHsJ,EACAwW,EAAEC,EAAGC,EACLC,EAAGC,EACHjT,EACAmG,EACAsM,EAEA/N,EAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,CAGV8S,GAAUxpB,KAAK6U,IAAI0U,GACnBwB,EAAO7V,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKonB,OAC5CgZ,EAAK33B,KAAK6U,IAAItd,KAAKs/B,GAAK9L,GACpB/qB,KAAKiV,IAAIjV,KAAKiV,IAAIsU,GAAOrU,EAAQa,OAAOmK,SAAWhL,EAAQa,OAAOuJ,OACnE+X,EAAMniB,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAE6Z,EAAIC,GACtCiO,EAAIlgC,KAAKu/B,GAAM92B,KAAKohB,IAAIiW,EAAI9/B,KAAKs/B,IACjCjS,EAAI,IAAM6S,EAAI,EAAMA,GACpB9f,EAAI,IAAM8f,EAAI,EAAKA,GACnBG,GAAMhT,EAAIrtB,KAAKy/B,OAASW,EAAKpgC,KAAK0/B,QAAUtf,EAC5CsJ,EAAMjhB,KAAKgV,IAAIzd,KAAKs/B,GAAK9L,GACrB/qB,KAAKiV,IAAIgM,GAAO,KACjByW,EAAKngC,KAAKqzB,GAAKrzB,KAAKs/B,GAAK9L,GAEzB2M,EAAKngC,KAAKqzB,GAAK5qB,KAAKwhB,MAAMoD,EAAIrtB,KAAK0/B,OAASU,EAAKpgC,KAAKy/B,QAAU/V,GAAK1pB,KAAKs/B,GACtE5V,EAAM,IAAGyW,GAAUxiB,EAAQa,OAAOkK,GAAK1oB,KAAKqzB,GAAKrzB,KAAKs/B,OAI1De,EADCrO,GAAO,EACHhyB,KAAKy/B,QAEJz/B,KAAKy/B,OAEdU,EAAKngC,KAAKqzB,GAAKrB,EAAMhyB,KAAKs/B,IAEzB72B,KAAKiV,IAAIjV,KAAKiV,IAAI2iB,GAAM,IAAQ1iB,EAAQa,OAAOuJ,OAEhDpK,EAAQC,YAAY,oBAGvB0iB,EAAK,GAAKtgC,KAAKqzB,GAAK5qB,KAAKkK,KAAK,EAAM0tB,IAAK,EAAMA,IAAOrgC,KAAKs/B,GAC3Da,GAAUngC,KAAK+2B,CACf,IAAI9X,GAAIjf,KAAKqjB,GAAKid,EAAKtgC,KAAK4/B,MAAQO,EAAKngC,KAAK2/B,MAC1CxgB,EAAInf,KAAKsjB,GAAK6c,EAAKngC,KAAK4/B,MAAQU,EAAKtgC,KAAK2/B,KAI9C,OAFApS,GAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAGTlO,QAAS,SAASkO,GAChB,GACI8E,GAIGjS,EACHsJ,EACA4W,EAAGH,EAAGD,EAAE7S,EAAEyS,EACVM,EAAGC,EACHtO,EAAKC,CAoCT,OA/BAzE,GAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,GACL,EACPgd,EAAK/S,EAAEtO,EAAIjf,KAAK4/B,MAAQrS,EAAEpO,EAAInf,KAAK2/B,MACnCQ,EAAK5S,EAAEpO,EAAInf,KAAK4/B,MAAQrS,EAAEtO,EAAIjf,KAAK2/B,MACnCQ,GAAUngC,KAAK+2B,EACfmJ,EAAIz3B,KAAKmiB,KAAK5qB,KAAKs/B,GAAKgB,EAAKtgC,KAAKqzB,IAClChG,EAAI,IAAM6S,EAAI,EAAIA,GAClB9f,EAAI,IAAM8f,EAAI,EAAIA,GAClBE,EAAK33B,KAAK6U,IAAItd,KAAKs/B,GAAKa,EAAKngC,KAAKqzB,IAClCgN,GAAMD,EAAKpgC,KAAK0/B,OAASrS,EAAIrtB,KAAKy/B,QAAQrf,EACtC3X,KAAKiV,IAAIjV,KAAKiV,IAAI2iB,GAAM,IAAQ1iB,EAAQa,OAAOuJ,OAEhDgK,EAAM/xB,KAAKonB,MAER4K,EADCqO,GAAM,EACD1iB,EAAQa,OAAOmK,SAEfhL,EAAQa,OAAOmK,UAGxBe,EAAM,EAAM1pB,KAAKs/B,GACjBQ,EAAKr3B,KAAKohB,IAAK7pB,KAAKu/B,GAAK92B,KAAK+U,MAAM,EAAM6iB,IAAO,EAAMA,IAAM3W,GAC7DsI,EAAMrU,EAAQa,OAAOsL,MAAM9pB,KAAKmY,EAAE2nB,GAIlCzN,EAAQryB,KAAKonB,MAAQ3e,KAAKsmB,MAAO1B,EAAIrtB,KAAK0/B,OAASU,EAAKpgC,KAAKy/B,OAAU/V,GAAK1pB,KAAKs/B,GACjFvN,EAAMpU,EAAQa,OAAOsM,WAAWuH,IAEnC9E,EAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IAiCX5P,EAAQuF,KAAKqd,KACX/wB,KAAO,WAgBH,GAJKxP,KAAKinB,OAAMjnB,KAAKinB,KAAKjnB,KAAKumB,MAC1BvmB,KAAKqmB,KAAIrmB,KAAKqmB,GAAK,GAGpB5d,KAAKiV,IAAI1d,KAAKgnB,KAAKhnB,KAAKinB,MAAQtJ,EAAQa,OAAOuJ,MAEjD,WADApK,GAAQC,YAAY,4BAItB,IAAIoO,GAAOhsB,KAAK2b,EAAI3b,KAAK0b,CACzB1b,MAAKmY,EAAI1P,KAAK+U,KAAK,EAAMwO,EAAKA,EAE9B,IAAIwU,GAAO/3B,KAAK6U,IAAItd,KAAKgnB,MACrByZ,EAAOh4B,KAAKgV,IAAIzd,KAAKgnB,MACrBsK,EAAM3T,EAAQa,OAAOgL,MAAMxpB,KAAKmY,EAAGqoB,EAAMC,GACzCX,EAAMniB,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAGnY,KAAKgnB,KAAMwZ,GAE9CE,EAAOj4B,KAAK6U,IAAItd,KAAKinB,MACrB0Z,EAAOl4B,KAAKgV,IAAIzd,KAAKinB,MACrBwK,EAAM9T,EAAQa,OAAOgL,MAAMxpB,KAAKmY,EAAGuoB,EAAMC,GACzCZ,EAAMpiB,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAGnY,KAAKinB,KAAMyZ,GAE9CE,EAAMjjB,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAGnY,KAAKumB,KAAM9d,KAAK6U,IAAItd,KAAKumB,MAE5D9d,MAAKiV,IAAI1d,KAAKgnB,KAAOhnB,KAAKinB,MAAQtJ,EAAQa,OAAOuJ,MACnD/nB,KAAK+zB,GAAKtrB,KAAKkK,IAAI2e,EAAIG,GAAKhpB,KAAKkK,IAAImtB,EAAIC,GAEzC//B,KAAK+zB,GAAKyM,EAEZxgC,KAAK6gC,GAAKvP,GAAOtxB,KAAK+zB,GAAKtrB,KAAKohB,IAAIiW,EAAK9/B,KAAK+zB,KAC9C/zB,KAAK8xB,GAAK9xB,KAAK0b,EAAI1b,KAAK6gC,GAAKp4B,KAAKohB,IAAI+W,EAAK5gC,KAAK+zB,IAC3C/zB,KAAKmjB,QAAOnjB,KAAKmjB,MAAQ,4BAMhC1D,QAAU,SAAS8N,GAEjB,GAAIwE,GAAMxE,EAAEtO,EACR+S,EAAMzE,EAAEpO,CAGZ,MAAK6S,GAAO,IAAQA,IAAQ,IAAQD,GAAO,KAASA,IAAQ,KAK1D,MADApU,GAAQC,YAAY,mCAAoCmU,EAAK,MAAQC,GAC9D,IAGT,IACIjI,GAAIqI,EADJ1I,EAAOjhB,KAAKiV,IAAKjV,KAAKiV,IAAIsU,GAAOrU,EAAQa,OAAOmK,QAEpD,IAAIe,EAAM/L,EAAQa,OAAOuJ,MACvBgC,EAAKpM,EAAQa,OAAOmL,MAAM3pB,KAAKmY,EAAG6Z,EAAKvpB,KAAK6U,IAAI0U,IAChDI,EAAMpyB,KAAK0b,EAAI1b,KAAK6gC,GAAKp4B,KAAKohB,IAAIE,EAAI/pB,KAAK+zB,QACtC,CAEL,IADArK,EAAMsI,EAAMhyB,KAAK+zB,KACN,EAET,MADApW,GAAQC,YAAY,8BACb,IAETwU,GAAM,EAER,GAAIC,GAAQryB,KAAK+zB,GAAKpW,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,MAI3D,OAHAiH,GAAEtO,EAAIjf,KAAKqmB,IAAM+L,EAAM3pB,KAAK6U,IAAI+U,IAAUryB,KAAKqjB,GAC/CkK,EAAEpO,EAAInf,KAAKqmB,IAAMrmB,KAAK8xB,GAAKM,EAAM3pB,KAAKgV,IAAI4U,IAAUryB,KAAKsjB,GAElDiK,GAKXlO,QAAU,SAASkO,GAEjB,GAAI6E,GAAK1I,EAAKK,EACViI,EAAKD,EACL9S,GAAKsO,EAAEtO,EAAIjf,KAAKqjB,IAAIrjB,KAAKqmB,GACzBlH,EAAKnf,KAAK8xB,IAAMvE,EAAEpO,EAAInf,KAAKsjB,IAAItjB,KAAKqmB,EACpCrmB,MAAK+zB,GAAK,GACZ3B,EAAM3pB,KAAK+U,KAAMyB,EAAIA,EAAIE,EAAIA,GAC7BuK,EAAM,IAEN0I,GAAO3pB,KAAK+U,KAAMyB,EAAIA,EAAIE,EAAIA,GAC9BuK,GAAO,EAET,IAAI2I,GAAQ,CAIZ,IAHW,GAAPD,IACFC,EAAQ5pB,KAAKsmB,MAAOrF,EAAMzK,EAAIyK,EAAMvK,IAE1B,GAAPiT,GAAcpyB,KAAK+zB,GAAK,GAI3B,GAHArK,EAAM,EAAI1pB,KAAK+zB,GACfhK,EAAKthB,KAAKohB,IAAKuI,GAAKpyB,KAAK0b,EAAI1b,KAAK6gC,IAAMnX,IAE5B,OADZsI,EAAMrU,EAAQa,OAAOsL,MAAM9pB,KAAKmY,EAAG4R,IACjB,MAAO,UAEzBiI,IAAOrU,EAAQa,OAAOmK,OAMxB,OAJAoJ,GAAMpU,EAAQa,OAAOsM,WAAWuH,EAAMryB,KAAK+zB,GAAK/zB,KAAKsmB,OAErDiH,EAAEtO,EAAI8S,EACNxE,EAAEpO,EAAI6S,EACCzE,IAwCX5P,EAAQuF,KAAK4d,MACX5H,OAAQ,EACRC,OAAQ,EACRE,MAAO,EACPD,MAAO,EAKP5pB,KAAM,WACJ,GAAI4Q,GAAI3X,KAAKiV,IAAI1d,KAAKumB,KAQtB,IAPI9d,KAAKiV,IAAI0C,EAAIzC,EAAQa,OAAOmK,SAAWhL,EAAQa,OAAOuJ,MACxD/nB,KAAK4zB,KAAO5zB,KAAKumB,KAAO,EAAKvmB,KAAKk5B,OAASl5B,KAAKm5B,OACvC1wB,KAAKiV,IAAI0C,GAAKzC,EAAQa,OAAOuJ,MACtC/nB,KAAK4zB,KAAO5zB,KAAKq5B,MAEjBr5B,KAAK4zB,KAAO5zB,KAAKo5B,MAEfp5B,KAAK4f,GAAK,EAAG,CACf,GAAI/C,EAKJ,QAHA7c,KAAK+gC,GAAKpjB,EAAQa,OAAO0L,MAAMlqB,KAAKmY,EAAG,GACvCnY,KAAKghC,IAAM,IAAM,EAAKhhC,KAAK4f,IAC3B5f,KAAKihC,IAAMjhC,KAAKkhC,QAAQlhC,KAAK4f,IACrB5f,KAAK4zB,MACX,IAAK5zB,MAAKm5B,OACV,IAAKn5B,MAAKk5B,OACRl5B,KAAK0+B,GAAK,CACV,MACF,KAAK1+B,MAAKq5B,MACRr5B,KAAKmhC,GAAK14B,KAAK+U,KAAK,GAAKxd,KAAK+gC,IAC9B/gC,KAAK0+B,GAAK,EAAK1+B,KAAKmhC,GACpBnhC,KAAKohC,IAAM,EACXphC,KAAKqhC,IAAM,GAAKrhC,KAAK+gC,EACrB,MACF,KAAK/gC,MAAKo5B,MACRp5B,KAAKmhC,GAAK14B,KAAK+U,KAAK,GAAKxd,KAAK+gC,IAC9BlkB,EAASpU,KAAK6U,IAAItd,KAAKumB,MACvBvmB,KAAKshC,MAAQ3jB,EAAQa,OAAO0L,MAAMlqB,KAAKmY,EAAG0E,GAAU7c,KAAK+gC,GACzD/gC,KAAKuhC,MAAQ94B,KAAK+U,KAAK,EAAKxd,KAAKshC,MAAQthC,KAAKshC,OAC9CthC,KAAK0+B,GAAKj2B,KAAKgV,IAAIzd,KAAKumB,OAAS9d,KAAK+U,KAAK,EAAKxd,KAAK4f,GAAK/C,EAASA,GAAU7c,KAAKmhC,GAAKnhC,KAAKuhC,OAC5FvhC,KAAKqhC,KAAOrhC,KAAKohC,IAAMphC,KAAKmhC,IAAMnhC,KAAK0+B,GACvC1+B,KAAKohC,KAAOphC,KAAK0+B,QAIjB1+B,MAAK4zB,MAAQ5zB,KAAKo5B,QACpBp5B,KAAK05B,OAASjxB,KAAK6U,IAAItd,KAAKumB,MAC5BvmB,KAAK25B,OAASlxB,KAAKgV,IAAIzd,KAAKumB,QAOlC9G,QAAS,SAAS8N,GAIhB,GAAItO,GAAEE,EACFqf,EAAIjR,EAAEtO,EACNrC,EAAI2Q,EAAEpO,CAGV,IAFAqf,EAAM7gB,EAAQa,OAAOsM,WAAW0T,EAAMx+B,KAAKsmB,OAEvCtmB,KAAKgoB,OAAQ,CACb,GAAI4R,GAAQnQ,EAAQ5M,CAKpB,QAHAA,EAASpU,KAAK6U,IAAIV,GAClB6M,EAAShhB,KAAKgV,IAAIb,GAClBgd,EAASnxB,KAAKgV,IAAI+gB,GACVx+B,KAAK4zB,MACX,IAAK5zB,MAAKo5B,MACV,IAAKp5B,MAAKq5B,MAER,IADAla,EAAKnf,KAAK4zB,MAAQ5zB,KAAKq5B,MAAS,EAAK5P,EAASmQ,EAAS,EAAK55B,KAAK05B,OAAS7c,EAAS7c,KAAK25B,OAASlQ,EAASmQ,IACjGjc,EAAQa,OAAOuJ,MAEtB,MADApK,GAAQC,YAAY,4BACb,IAETuB,GAAI1W,KAAK+U,KAAK,EAAK2B,GACnBF,EAAIE,EAAIsK,EAAShhB,KAAK6U,IAAIkhB,GAC1Brf,GAAMnf,KAAK4zB,MAAQ5zB,KAAKq5B,MAASxc,EAAS7c,KAAK25B,OAAS9c,EAAS7c,KAAK05B,OAASjQ,EAASmQ,CACxF,MACF,KAAK55B,MAAKm5B,OACRS,GAAUA,CACZ,KAAK55B,MAAKk5B,OACR,GAAIzwB,KAAKiV,IAAId,EAAM5c,KAAKs6B,MAAQ3c,EAAQa,OAAOuJ,MAE7C,MADApK,GAAQC,YAAY,sBACb,IAETuB,GAAIxB,EAAQa,OAAOqK,OAAe,GAANjM,EAC5BuC,EAAI,GAAOnf,KAAK4zB,MAAQ5zB,KAAKk5B,OAAUzwB,KAAKgV,IAAI0B,GAAK1W,KAAK6U,IAAI6B,IAC9DF,EAAIE,EAAI1W,KAAK6U,IAAIkhB,GACjBrf,GAAKya,OAGN,CACH,GAAIA,GAAQC,EAAQhd,EAAQqjB,EAAGsB,EAAK,EAAKC,EAAK,EAAK9lB,EAAE,CAUrD,QARAie,EAASnxB,KAAKgV,IAAI+gB,GAClB3E,EAASpxB,KAAK6U,IAAIkhB,GAClB3hB,EAASpU,KAAK6U,IAAIV,GAClBsjB,EAAIviB,EAAQa,OAAO0L,MAAMlqB,KAAKmY,EAAG0E,GAC7B7c,KAAK4zB,MAAQ5zB,KAAKo5B,OAASp5B,KAAK4zB,MAAQ5zB,KAAKq5B,QAC/CmI,EAAOtB,EAAIlgC,KAAK+gC,GAChBU,EAAOh5B,KAAK+U,KAAK,EAAKgkB,EAAOA,IAEvBxhC,KAAK4zB,MACX,IAAK5zB,MAAKo5B,MACRzd,EAAI,EAAK3b,KAAKshC,MAAQE,EAAOxhC,KAAKuhC,MAAQE,EAAO7H,CACjD,MACF,KAAK55B,MAAKq5B,MACR1d,EAAI,EAAK8lB,EAAO7H,CAChB,MACF,KAAK55B,MAAKm5B,OACRxd,EAAIgC,EAAQa,OAAOmK,QAAU/L,EAC7BsjB,EAAIlgC,KAAK+gC,GAAKb,CACd,MACF,KAAKlgC,MAAKk5B,OACRvd,EAAIiB,EAAMe,EAAQa,OAAOmK,QACzBuX,EAAIlgC,KAAK+gC,GAAKb,EAGlB,GAAIz3B,KAAKiV,IAAI/B,GAAKgC,EAAQa,OAAOuJ,MAE7B,MADApK,GAAQC,YAAY,oBACb,IAEX,QAAQ5d,KAAK4zB,MACX,IAAK5zB,MAAKo5B,MACV,IAAKp5B,MAAKq5B,MACR1d,EAAIlT,KAAK+U,KAAK,EAAK7B,GAEjBwD,EADEnf,KAAK4zB,MAAQ5zB,KAAKo5B,MAChBp5B,KAAKqhC,IAAM1lB,GAAK3b,KAAKuhC,MAAQC,EAAOxhC,KAAKshC,MAAQG,EAAO7H,IAEvDje,EAAIlT,KAAK+U,KAAK,GAAM,EAAKikB,EAAO7H,KAAY4H,EAAOxhC,KAAKqhC,IAE/DpiB,EAAIjf,KAAKohC,IAAMzlB,EAAI8lB,EAAO5H,CAC1B,MACF,KAAK75B,MAAKm5B,OACV,IAAKn5B,MAAKk5B,OACJgH,GAAK,GACPjhB,GAAKtD,EAAIlT,KAAK+U,KAAK0iB,IAAMrG,EACzB1a,EAAIya,GAAW55B,KAAK4zB,MAAQ5zB,KAAKk5B,OAAUvd,GAAKA,IAEhDsD,EAAIE,EAAI,GAyBlB,MAFAoO,GAAEtO,EAAIjf,KAAK0b,EAAEuD,EAAIjf,KAAKqjB,GACtBkK,EAAEpO,EAAInf,KAAK0b,EAAEyD,EAAInf,KAAKsjB,GACfiK,GAKTlO,QAAS,SAASkO,GAChBA,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,EACZ,IAEIkb,GAAK5hB,EAFLqC,EAAIsO,EAAEtO,EAAEjf,KAAK0b,EACbyD,EAAIoO,EAAEpO,EAAEnf,KAAK0b,CAGjB,IAAI1b,KAAKgoB,OAAQ,CACb,GAAe8J,GAAVmE,EAAK,EAAShB,EAAK,CAIxB,IAFAnD,EAAKrpB,KAAK+U,KAAKyB,EAAEA,EAAIE,EAAEA,IACvBvC,EAAW,GAALkV,GACI,EAER,MADAnU,GAAQC,YAAY,sBACb,IAOT,QALAhB,EAAM,EAAKnU,KAAK2hB,KAAKxN,GACjB5c,KAAK4zB,MAAQ5zB,KAAKo5B,OAASp5B,KAAK4zB,MAAQ5zB,KAAKq5B,QAC/CpE,EAAOxsB,KAAK6U,IAAIV,GAChBqZ,EAAOxtB,KAAKgV,IAAIb,IAEV5c,KAAK4zB,MACb,IAAK5zB,MAAKq5B,MACRzc,EAAOnU,KAAKiV,IAAIoU,IAAOnU,EAAQa,OAAOuJ,MAAS,EAAKtf,KAAK2hB,KAAKjL,EAAI8V,EAAOnD,GACzE7S,GAAKgW,EACL9V,EAAI8W,EAAOnE,CACX,MACF,KAAK9xB,MAAKo5B,MACRxc,EAAOnU,KAAKiV,IAAIoU,IAAOnU,EAAQa,OAAOuJ,MAAS/nB,KAAKs6B,KAAO7xB,KAAK2hB,KAAK6L,EAAOj2B,KAAK05B,OAASva,EAAI8V,EAAOj1B,KAAK25B,OAAS7H,GACnH7S,GAAKgW,EAAOj1B,KAAK25B,OACjBxa,GAAK8W,EAAOxtB,KAAK6U,IAAIV,GAAO5c,KAAK05B,QAAU5H,CAC3C,MACF,KAAK9xB,MAAKm5B,OACRha,GAAKA,EACLvC,EAAMe,EAAQa,OAAOmK,QAAU/L,CAC/B,MACF,KAAK5c,MAAKk5B,OACRtc,GAAOe,EAAQa,OAAOmK,QAGxB6V,EAAY,GAALrf,GAAYnf,KAAK4zB,MAAQ5zB,KAAKq5B,OAASr5B,KAAK4zB,MAAQ5zB,KAAKo5B,MAAe3wB,KAAKsmB,MAAM9P,EAAGE,GAAnB,MACvE,CACH,GAAIuiB,GAAKC,EAAKzB,EAAGjN,EAAK2O,EAAG,CAEzB,QAAQ5hC,KAAK4zB,MACX,IAAK5zB,MAAKq5B,MACV,IAAKr5B,MAAKo5B,MAIR,GAHAna,GAAKjf,KAAK0+B,GACVvf,GAAMnf,KAAK0+B,IACXzL,EAAMxqB,KAAK+U,KAAKyB,EAAEA,EAAIE,EAAEA,IACdxB,EAAQa,OAAOuJ,MAGvB,MAFAwF,GAAEtO,EAAI,EACNsO,EAAEpO,EAAInf,KAAKs6B,KACJ/M,CAEToU,GAAM,EAAKl5B,KAAK2hB,KAAK,GAAK6I,EAAMjzB,KAAKmhC,IACrCO,EAAMj5B,KAAKgV,IAAIkkB,GACf1iB,GAAM0iB,EAAMl5B,KAAK6U,IAAIqkB,GACjB3hC,KAAK4zB,MAAQ5zB,KAAKo5B,OACpBwI,EAAKF,EAAM1hC,KAAKshC,MAAQniB,EAAIwiB,EAAM3hC,KAAKuhC,MAAQtO,EAC/CiN,EAAIlgC,KAAK+gC,GAAKa,EACdziB,EAAI8T,EAAMjzB,KAAKuhC,MAAQG,EAAMviB,EAAInf,KAAKshC,MAAQK,IAE9CC,EAAKziB,EAAIwiB,EAAM1O,EACfiN,EAAIlgC,KAAK+gC,GAAKa,EACdziB,EAAI8T,EAAMyO,EAEZ,MACF,KAAK1hC,MAAKm5B,OACRha,GAAKA,CACP,KAAKnf,MAAKk5B,OAER,KADAgH,EAAKjhB,EAAIA,EAAIE,EAAIA,GAIf,MAFAoO,GAAEtO,EAAI,EACNsO,EAAEpO,EAAInf,KAAKs6B,KACJ/M,CAKTqU,GAAK,EAAK1B,EAAIlgC,KAAK+gC,GACf/gC,KAAK4zB,MAAQ5zB,KAAKk5B,SACpB0I,GAAOA,GAIbpD,EAAM/1B,KAAKsmB,MAAM9P,EAAGE,GACpBvC,EAAM5c,KAAK6hC,QAAQp5B,KAAK2hB,KAAKwX,GAAK5hC,KAAKihC,KAmC3C,MAFA1T,GAAEtO,EAAItB,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAMkY,GAC3CjR,EAAEpO,EAAIvC,EACC2Q,GAITuU,IAAK,kBACLC,IAAK,mBACLC,IAAK,mBACLC,IAAK,mBACLC,IAAK,kBACLC,IAAK,oBAELjB,QAAS,SAASthB,GAChB,GAAIQ,GACAgiB,EAAM,GAAIh/B,MASd,OARAg/B,GAAI,GAAKxiB,EAAK5f,KAAK8hC,IACnB1hB,EAAIR,EAAKA,EACTwiB,EAAI,IAAMhiB,EAAIpgB,KAAK+hC,IACnBK,EAAI,GAAKhiB,EAAIpgB,KAAKiiC,IAClB7hB,GAAKR,EACLwiB,EAAI,IAAMhiB,EAAIpgB,KAAKgiC,IACnBI,EAAI,IAAMhiB,EAAIpgB,KAAKkiC,IACnBE,EAAI,GAAKhiB,EAAIpgB,KAAKmiC,IACXC,GAGTP,QAAS,SAASQ,EAAMD,GACtB,GAAIhiB,GAAIiiB,EAAKA,CACb,OAAOA,GAAOD,EAAI,GAAK35B,KAAK6U,IAAI8C,GAAKgiB,EAAI,GAAK35B,KAAK6U,IAAI8C,EAAEA,GAAKgiB,EAAI,GAAK35B,KAAK6U,IAAI8C,EAAEA,EAAEA,KAWxFzC,EAAQuF,KAAKof,MAEX9yB,KAAO,WACLxP,KAAKuiC,QAAQ95B,KAAK6U,IAAItd,KAAKumB,MAC3BvmB,KAAKwiC,QAAQ/5B,KAAKgV,IAAIzd,KAAKumB,OAG7B9G,QAAS,SAAS8N,GAChB,GAEIyI,GAFAjE,EAAIxE,EAAEtO,EAINpC,GAHI0Q,EAAEpO,EAGC1W,KAAK6U,IAAIiQ,EAAEpO,IAClBsK,EAAOhhB,KAAKgV,IAAI8P,EAAEpO,GAClBqU,EAAO7V,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OAC5CyP,EAASttB,KAAKgV,IAAI+V,GAClBQ,EAAIh0B,KAAKuiC,QAAU1lB,EAAS7c,KAAKwiC,QAAU/Y,EAASsM,CACxD,IAAIttB,KAAKiV,IAAIjV,KAAKiV,IAAIsW,GAAK,GAAOrW,EAAQa,OAAOuJ,OAE9C,GADAiO,EAAM,EACFhC,EAAI,EAEN,WADArW,GAAQC,YAAY,2BAGlB,CACJ,GAAI4C,GAAI/X,KAAK2rB,KAAKJ,EAClBgC,GAAMxV,EAAE/X,KAAK6U,IAAIkD,GAIpB,MAFA+M,GAAEtO,EAAIjf,KAAKqjB,GAAKrjB,KAAK0b,EAAIsa,EAAMvM,EAAShhB,KAAK6U,IAAIkW,GACjDjG,EAAEpO,EAAInf,KAAKsjB,GAAKtjB,KAAK0b,EAAIsa,GAAOh2B,KAAKwiC,QAAU3lB,EAAS7c,KAAKuiC,QAAU9Y,EAASsM,GACzExI,GAGTlO,QAAS,SAASkO,GAChBA,EAAEtO,GAAKjf,KAAKqjB,GACZkK,EAAEpO,GAAKnf,KAAKsjB,EAEZ,IAAIwO,GAAKrpB,KAAK+U,KAAK+P,EAAEtO,EAAIsO,EAAEtO,EAAIsO,EAAEpO,EAAGoO,EAAEpO,EACtC,IAAI2S,EAAM,EAAMnU,EAAQa,OAAOmK,QAAU3oB,KAAK0b,EAE3C,WADAiC,GAAQC,YAAY,mBAGvB,IAMIoU,GANAxR,EAAIsR,EAAK9xB,KAAK0b,EAEduZ,EAAKxsB,KAAK6U,IAAIkD,GACdyV,EAAKxtB,KAAKgV,IAAI+C,GAEduR,EAAM/xB,KAAKsmB,KAEf,IAAI7d,KAAKiV,IAAIoU,IAAOnU,EAAQa,OAAOuJ,MACjCiK,EAAMhyB,KAAKumB,SACN,CACLyL,EAAMrU,EAAQa,OAAO2L,MAAM8L,EAAOj2B,KAAKuiC,QAAWhV,EAAEpO,EAAI8V,EAAOj1B,KAAKwiC,QAAW1Q,EAC/E,IAAIpI,GAAMjhB,KAAKiV,IAAI1d,KAAKumB,MAAQ5I,EAAQa,OAAOmK,OAC/C,IAAIlgB,KAAKiV,IAAIgM,IAAQ/L,EAAQa,OAAOuJ,MAEhCgK,EADE/xB,KAAKumB,MAAQ,EACT5I,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAQ7d,KAAKsmB,MAAMxB,EAAEtO,GAAKsO,EAAEpO,IAE3DxB,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAQ7d,KAAKsmB,OAAOxB,EAAEtO,EAAIsO,EAAEpO,QAInE,IADAuK,EAAMuM,EAAOj2B,KAAKuiC,QAAU95B,KAAK6U,IAAI0U,GAChCvpB,KAAKiV,IAAIgM,GAAO/L,EAAQa,OAAOuJ,OAAWtf,KAAKiV,IAAI6P,EAAEtO,GAAKtB,EAAQa,OAAOuJ,WAEvE,CACMtf,KAAKsmB,MAAOxB,EAAEtO,EAAIgW,EAAOj1B,KAAKwiC,QAAW9Y,EAAMoI,EAC1DC,GAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAAQ7d,KAAKsmB,MAAOxB,EAAEtO,EAAIgW,EAAOj1B,KAAKwiC,QAAW9Y,EAAMoI,KAOlG,MAFAvE,GAAEtO,EAAI8S,EACNxE,EAAEpO,EAAI6S,EACCzE,IAgCX5P,EAAQuF,KAAKuf,MAIXjzB,KAAM,aAMNiQ,QAAS,SAAS8N,GAahB,IAAK,GATDwE,GAAIxE,EAAEtO,EACN+S,EAAIzE,EAAEpO,EAENgV,EAAYxW,EAAQa,OAAOsM,WAAWiH,EAAM/xB,KAAKsmB,OACjD+L,EAAQL,EACRtI,EAAM/L,EAAQa,OAAOkK,GAAKjgB,KAAK6U,IAAI0U,GAI9Blf,EAAE,GAAE,EAAKA,IAAK,CACpB,GAAI4vB,KAAgBrQ,EAAQ5pB,KAAK6U,IAAI+U,GAAS3I,IAAO,EAAMjhB,KAAKgV,IAAI4U,GAEpE,IADAA,GAASqQ,EACLj6B,KAAKiV,IAAIglB,GAAe/kB,EAAQa,OAAOuJ,MAAO,KAC9CjV,IAAK,IACN6K,EAAQC,YAAY,2BAI1ByU,GAAS,EAKL1U,EAAQa,OAAOkK,GAAG,EAAIjgB,KAAKiV,IAAIsU,GAAOrU,EAAQa,OAAOuJ,QAAOoM,EAAW,EAC3E,IAAIlV,GAAI,cAAiBjf,KAAK0b,EAAIyY,EAAY1rB,KAAKgV,IAAI4U,GAASryB,KAAKqjB,GACjElE,EAAI,gBAAkBnf,KAAK0b,EAAIjT,KAAK6U,IAAI+U,GAASryB,KAAKsjB,EAI1D,OAFAiK,GAAEtO,EAAEA,EACJsO,EAAEpO,EAAEA,EACGoO,GAGTlO,QAAS,SAASkO,GAChB,GAAI8E,GACAlF,CAIJI,GAAEtO,GAAIjf,KAAKqjB,EAEX,IAAI8J,GAAMI,EAAEpO,GAAM,gBAAkBnf,KAAK0b,EAKtCjT,MAAKiV,IAAIyP,GAAO,gBAAgBA,EAAI,cACvC,IAAIkF,GAAO5pB,KAAK2hB,KAAK+C,GACjB4E,EAAMpU,EAAQa,OAAOsM,WAAW9qB,KAAKsmB,MAASiH,EAAEtO,GAAK,cAAiBjf,KAAK0b,EAAIjT,KAAKgV,IAAI4U,IACzFN,IAAQpU,EAAQa,OAAOkK,KAAKqJ,GAAMpU,EAAQa,OAAOkK,IACjDqJ,EAAMpU,EAAQa,OAAOkK,KAAIqJ,EAAKpU,EAAQa,OAAOkK,IAChDyE,GAAO,EAAMkF,EAAQ5pB,KAAK6U,IAAI,EAAM+U,IAAU1U,EAAQa,OAAOkK,GAC1DjgB,KAAKiV,IAAIyP,GAAO,IAAIA,EAAI,EAC3B,IAAI6E,GAAMvpB,KAAK2hB,KAAK+C,EAKpB,OAFAI,GAAEtO,EAAE8S,EACJxE,EAAEpO,EAAE6S,EACGzE,IAIX5d,OAAOgO,QAAUA,EAEFA,OpCo8JbglB,IACA,SAAUvjC,EAAQ4L,EAAqB1L,GAE7C,YqCvwUA,4RAiBAsjC,KAAWC,iBAEJxX,KAAEyX,KAAKv3B,QAAQlI,UAAU0/B,YAEhC1X,IAAEyX,KAAKv3B,QAAQy3B,cACbC,cAAeC,EAAQ,KACvBC,QAASD,EAAQ,KACjBE,UAAWF,EAAQ,OAGrBvzB,OAAO0zB,MAAQC,UACf3zB,OAAO4zB,OAASA,IAChB5zB,OAAOwE,EAAIovB,IACX5zB,OAAA,OAAmBsK,IACnBtK,OAAA,EAAc0b,IACd1b,OAAO6zB,SAAWN,EAAQ,KAG1BvzB,OAAA,OAAmB,GACnBA,OAAA,KAAiB,GACjBA,OAAA,IAAgB,GAChBA,OAAA,QAAoB,GACpBA,OAAA,aAAyB,KAEzBuzB,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,IACR,IAAIO,GAAYP,EAAQ,IAExBj4B,WAAIC,IAAIw4B,KACRz4B,UAAIC,IAAIu4B,GAERx4B,UAAI04B,KAAKC,aAAa70B,KAAK,SAAC80B,EAASC,GACnCD,EAAQE,aAAc,EACtBF,EAAQG,QAAQryB,IAAI,gBAAiB,SAAWsyB,KAAK,QAASt0B,OAAA,SAC9Dm0B,MAGF74B,UAAI04B,KAAKngC,QAAQugC,aAAc,EAE/B94B,UAAI04B,KAAKngC,QAAQ0gC,KACfC,iBAAiB,GAEnBl5B,UAAI04B,KAAKngC,QAAQ4gC,aAAc,EAC/Bn5B,UAAI04B,KAAKngC,QAAQ6gC,aAAc,EAC/Bp5B,UAAI04B,KAAKngC,QAAQ8gC,aAAc,EAE/Br5B,UAAI04B,KAAKK,QAAQxlB,OAAO,+BAAiC,IACzDvT,UAAI04B,KAAKK,QAAQxlB,OAAO,gBAAkB,mBAC1CvT,UAAI04B,KAAKK,QAAQxlB,OAAjB,OAAoC,mBACpCvT,UAAI04B,KAAKK,QAAQxlB,OAAO,gCAAkC,2EAE1DvT,UAAIs5B,OAAOC,eAAgB,EAG3B,GAAIv5B,YACFs0B,GAAI,OACJvzB,UACAy4B,WACAC,SAAU,SACVvzB,YAAcwzB,WAGhBxwB,EAAEC,UAAUC,aAEZ4F,IAAO2qB,OAAO,OrCuyURC,IACA,SAAUzlC,EAAQ4L,EAAqB1L,GAE7C,YACqB,IAAI+a,GAA8D/a,EAAoB,IAClFgb,EAAsEhb,EAAoB2Q,EAAEoK,GAC5FE,EAA6Cjb,EAAoB,IsC/3UtFwlC,EAAmB5B,EAAQ,KAE3B6B,GACAx8B,KADoB,WAEhB,OACIqL,OAAQ,KAGhB/B,SACIzH,eADK,SACU46B,GAEXtyB,QAAQC,IAAI,oBAAqBqyB,EAAUhlC,KAAKilC,YAEhD,IAAIhzB,GAAQjS,IAEZiS,GAAMgzB,YAAchzB,EAAMgzB,YAAY3hC,OAAO,SAAU+8B,GACnD,MAAOA,GAAGj6B,IAAM4+B,IAEpBtyB,QAAQC,IAAI,WAAYqyB,GAGxBE,IAAIh3B,WAAW,eAAgB82B,GAAU31B,KAAK,SAAUC,GACpDoD,QAAQC,IAAI,4BAKpBwyB,QAnBK,SAmBGC,GACJ,GAAIC,GAAK,GAAIrwB,UAAS,GAAIswB,aAAYF,EAAOh4B,aACzCm4B,EAAS,EAAGC,EAAS,EACrBC,KACA3yB,EAAI,CACR,IAA4B,OAAxBuyB,EAAGK,UAAUH,GAAkB,CAC/BA,GAAU,CACV,IAAII,GAAON,EAAGK,UAAUH,EAExB,KADAA,GAAU,EACHA,EAASF,EAAGO,YAAW,CAC1B,GAAY,OAARD,EAEAF,EAAO3yB,IAAM0yB,OAAOA,EAAOD,OAAOA,EAAO,GACzCC,EAASD,EAASF,EAAGK,UAAUH,GAC/BzyB,QAEC,IAAY,OAAR6yB,EACL,KAEJJ,IAAUF,EAAGK,UAAUH,EACvB,IAAII,GAAON,EAAGK,UAAUH,EACxBA,IAAU,EAEd,GAAIE,EAAO5jC,OAAS,EAAE,CAClB,GAAIgkC,KAKJ,OAJAJ,GAAOh2B,QAAQ,SAAS0Q,GACpB0lB,EAAU92B,KAAKq2B,EAAO7jB,MAAMpB,EAAEqlB,OAAQrlB,EAAEolB,UACzCvlC,MACH6lC,EAAU92B,KAAKq2B,EAAO7jB,MAAMikB,IACrB,GAAItwB,MAAK2wB,GAAY1wB,KAAM,kBAK9C3L,UArDK,SAqDMs8B,GACP,GAAI7zB,GAAQjS,KAER+lC,EAAO,GACPC,EAAM,GACNC,EAAU,GACVC,EAAU,EAId,IAFAxzB,QAAQC,IAAI,oBAAqBmzB,GAED,GAA7BA,EAAMhjC,OAAOqjC,MAAMtkC,QAA+D,GAAhDikC,EAAMhjC,OAAOqjC,MAAM,GAAGhxB,KAAKuO,QAAQ,UAAgB,CAEpF,GAAI0iB,GAAS,GAAIC,WAEjBD,GAAO/jB,OAAS,SAAUikB,GAEtB,GACIC,GADAC,EAAUv5B,WAKVw5B,GAFiBx5B,WAEG,EACxBi4B,KAAIj3B,QAAQ,eAAgB,SAAS3M,EAAO0B,EAAK0jC,GAC7Ch0B,QAAQC,IAAI,6CAA8CrR,EAAMoS,WAAazB,EAAM3L,eAAeF,IAC9F9E,EAAMoS,WAAazB,EAAM3L,eAAeF,KACxCqgC,GAAqB,IAI7B,IAAIE,GAAWt0B,KAAKC,MAAML,EAAMM,QAAQd,IAAI,QAE5CyzB,KAAIp3B,QAAQ,UAAW,SAASuB,KAAK,SAAUC,GAK3C,MAHAi3B,GAAaI,EAASvgC,GACtB2/B,EAAOD,EAAMhjC,OAAOqjC,MAAM,GAEnB,GAAI,KAAQ,SAAUvzB,EAASK,GAClC6xB,EAAiBiB,EAAK,SAAS5yB,EAAIyzB,GAC1BzzB,GACDyzB,EAAOC,OAAO,SAAU5xB,GAChBrC,EAAQqC,IAEb,aAAc,SAMhC5F,KAAK,SAASy3B,GACX,QAAY,SAASl0B,EAASK,GAC1B,GACI8zB,GAAa,GAAIV,WACrBU,GAAW1kB,OAAS,WAChB,GAAI2kB,GAAUD,EAAWz3B,MACzBoD,SAAQC,IAAI,UAAWq0B,GAIvBp0B,EAAQ5S,KAAKsP,SAEjBy3B,EAAWE,kBAAkBH,KAC9Bz3B,KAAK,SAAS63B,GAGb,MADAjB,GAAUiB,EACHj1B,EAAMk1B,gBAAgBD,EAA0BpB,EAAMhjC,OAAOqjC,MAAM,GAAGhxB,QAC9E9F,KAAK,SAASC,GAEb,MADA02B,GAAM12B,EACC2C,EAAMk1B,gBAAgBlB,EAASH,EAAMhjC,OAAOqjC,MAAM,GAAGhxB,KAAM,IAAK,KACxE9F,KAAK,SAASC,GAGb,MAFA42B,GAAU52B,EACVoD,QAAQC,IAAI,SAAUrD,GACf,GAAI,KAAQ,SAASsD,EAASK,GAChC,GAAIm0B,GAAa,GAAIz3B,QAAO02B,UAE5Be,GAAWC,cAAc,GAAInyB,OAAM,GAAIoyB,YAAWh4B,MAClD83B,EAAWG,UAAY,WACpB,GAAIC,GAAaJ,EAAW93B,MAC5BsD,GAAQ40B,QAKnBn4B,KAAM,SAAUuE,GACblB,QAAQC,IAAI,eAAgBiB,EAAO/R,QACnCoQ,EAAM2B,OAASA,CACf,IAAI6zB,IACA,GAAMjB,EACN,MAASR,EACT,KAASE,EACT,OAAWj0B,EAAM2B,OACjB,cAAkB3G,WAClB,KAAS84B,EAAK5wB,KACd,MAAU,QACV,SAAalD,EAAM3L,eAAegC,aAAe,IAAMm+B,EAAoB,OAC3E,SAAa,iBAAmBF,EAAa,eAAiBt0B,EAAM3L,eAAeF,GACnF,UAAc6L,EAAM3L,eAAeF,GAKvC,OAHAsM,SAAQC,IAAI,WAAY80B,GAExBx1B,EAAMgzB,YAAYl2B,KAAK04B,GAChBvC,IAAIz4B,QAAQ,eAAgB+5B,EAASiB,KAC7Cp4B,KAAK,SAAUC,GACd,GAAIo4B,IACA,SAAaz6B,WACb,SAAagF,EAAM3L,eAAegC,aAAe,IAAMm+B,EAAoB,OAC3E,SAAa,iBAAmBF,EAAa,eAAiBt0B,EAAM3L,eAAeF,GACnF,iBAAoB,GAAI8G,OAAOy6B,cAC/B,QAAY,GACZ,QACA,QAAYnB,EAEhB9zB,SAAQC,IAAI,YAAa+0B,GACzBz1B,EAAMP,OAAOE,SAAS,qBAAsB,GAC5CK,EAAMwD,MAAM,YAAaiyB,GAEzBh1B,QAAQC,IAAI,cAAeV,EAAMgzB,aAEjCa,EAAMhjC,OAAOxB,MAAQ,QAIjC8kC,EAAOa,kBAAkBnB,EAAMhjC,OAAOqjC,MAAM,MAGpDyB,cAjLK,SAiLUC,GACX,GAAI51B,GAAQjS,KAER+lC,EAAO/lC,KAAK8nC,cAAcD,EAAa,cACvC7B,EAAM,GACNC,EAAU,GACVC,EAAU,GAEVE,EAAS,GAAIC,WAEjBD,GAAO/jB,OAAS,SAAUikB,GAEtB,GACIC,GADAC,EAAUv5B,WAKVw5B,GAFiBx5B,WAEG,EACxBi4B,KAAIj3B,QAAQ,eAAgB,SAAS3M,EAAO0B,EAAK0jC,GAC7Ch0B,QAAQC,IAAI,6CAA8CrR,EAAMoS,WAAazB,EAAM3L,eAAeF,IAC9F9E,EAAMoS,WAAazB,EAAM3L,eAAeF,KACxCqgC,GAAqB,IAI7B,IAAIE,GAAWt0B,KAAKC,MAAML,EAAMM,QAAQd,IAAI,QAE5CyzB,KAAIp3B,QAAQ,UAAW,SAASuB,KAAK,SAAUC,GAI3C,MAFAi3B,GAAaI,EAASvgC,GAEf,GAAI,KAAQ,SAAUwM,EAASK,GAClC6xB,EAAiBiB,EAAK,SAAS5yB,EAAIyzB,GAC1BzzB,GACDyzB,EAAOC,OAAO,SAAU5xB,GAChBrC,EAAQqC,IAEb,aAAc,SAMhC5F,KAAK,SAASy3B,GACX,QAAY,SAASl0B,EAASK,GAC1B,GACI8zB,GAAa,GAAIV,WACrBU,GAAW1kB,OAAS,WAChB,GAAI2kB,GAAUD,EAAWz3B,MACzBoD,SAAQC,IAAI,UAAWq0B,GAIvBp0B,EAAQ5S,KAAKsP,SAEjBy3B,EAAWE,kBAAkBH,KAC9Bz3B,KAAK,SAAS63B,GAGb,MADAjB,GAAUiB,EACHj1B,EAAMk1B,gBAAgBD,EAA0BnB,EAAK5wB,QAC7D9F,KAAK,SAASC,GAEb,MADA02B,GAAM12B,EACC2C,EAAMk1B,gBAAgBlB,EAASF,EAAK5wB,KAAM,IAAK,KACvD9F,KAAK,SAASC,GAGb,MAFA42B,GAAU52B,EACVoD,QAAQC,IAAI,SAAUrD,GACf,GAAI,KAAQ,SAASsD,EAASK,GAChC,GAAIm0B,GAAa,GAAIz3B,QAAO02B,UAE5Be,GAAWC,cAAc,GAAInyB,OAAM,GAAIoyB,YAAWh4B,MAClD83B,EAAWG,UAAY,WACpB,GAAIC,GAAaJ,EAAW93B,MAC5BsD,GAAQ40B,QAKnBn4B,KAAM,SAAUuE,GACblB,QAAQC,IAAI,eAAgBiB,EAAO/R,QACnCoQ,EAAM2B,OAASA,CACf,IAAI6zB,IACA,GAAMjB,EACN,MAASR,EACT,KAASE,EACT,OAAWj0B,EAAM2B,OACjB,cAAkB3G,WAClB,KAAS84B,EAAK5wB,KACd,MAAU,QACV,SAAalD,EAAM3L,eAAegC,aAAe,IAAMm+B,EAAoB,OAC3E,SAAa,iBAAmBF,EAAa,eAAiBt0B,EAAM3L,eAAeF,GACnF,UAAc6L,EAAM3L,eAAeF,GAKvC,OAHAsM,SAAQC,IAAI,WAAY80B,GAExBx1B,EAAMgzB,YAAYl2B,KAAK04B,GAChBvC,IAAIz4B,QAAQ,eAAgB+5B,EAASiB,KAC7Cp4B,KAAK,SAAUC,GACd,GAAIo4B,IACA,SAAaz6B,WACb,SAAagF,EAAM3L,eAAegC,aAAe,IAAMm+B,EAAoB,OAC3E,SAAa,iBAAmBF,EAAa,eAAiBt0B,EAAM3L,eAAeF,GACnF,iBAAoB,GAAI8G,OAAOy6B,cAC/B,QAAY,GACZ,QACA,QAAYnB,EAEhB9zB,SAAQC,IAAI,YAAa+0B,GACzBz1B,EAAMP,OAAOE,SAAS,qBAAsB,GAC5CK,EAAMwD,MAAM,YAAaiyB,GAEzBh1B,QAAQC,IAAI,cAAeV,EAAMgzB,kBAM7CmB,EAAOa,kBAAkBlB,IAE7B+B,cAvSK,SAuSSC,EAASC,GAOnB,IANA,GAAIC,GAAMF,EAAQhkB,MAAM,KACpBmkB,EAAOD,EAAI,GAAGjkB,MAAM,WAAW,GAC/BmkB,EAAOC,KAAKH,EAAI,IAChBh4B,EAAIk4B,EAAKtmC,OACTwmC,EAAQ,GAAIf,YAAWr3B,GAErBA,KACFo4B,EAAMp4B,GAAKk4B,EAAKG,WAAWr4B,EAG/B,OAAO,IAAIs4B,OAAMF,GAAQL,GAAW7yB,KAAK+yB,KAE7Cf,gBApTK,SAoTY3kC,EAAO2S,EAAMqzB,EAAOC,GA4CjC,WA3Ca5nC,IAAT2nC,IACAA,EAAQ,SAGG3nC,IAAX4nC,IACAA,EAAU,IAGN,GAAI,KAAQ,SAAC71B,EAASK,GAE1B,GAAI8B,GAAW,GAAIC,UAASxS,GACxBkmC,EAAgB,GAAIxzB,OAAMH,IAAaI,KAAMA,IAC7CyxB,EAASxyB,SAASqO,cAAc,UAChCkmB,EAAM/B,EAAOgC,WAAW,MACxBC,EAAM,GAAIC,MAEdD,GAAIxmB,OAAS,WAET,GAAI0mB,GAAQP,EAAQK,EAAIL,MACpBQ,EAAYD,EAAQF,EAAII,MAE5BrC,GAAOqC,OAASD,EAChBpC,EAAO4B,MAAQA,EAEfG,EAAIO,UAAWL,EAAK,EAAG,EAAGL,EAAOQ,GAEjCpC,EAAOC,OAAO,SAAU5xB,GAEpB,GAAIk0B,GAAK,GAAI9C,WAEb8C,GAAG9mB,OAAS,SAAUyjB,GAElBlzB,EAAQu2B,EAAG75B,SAEf65B,EAAGlC,kBAAkBhyB,IAGtB,aAAcwzB,IAGrBI,EAAI5mB,IAAM7M,IAAIC,gBAAgBqzB,OAM1Cl3B,UACIrH,QAAS,WACL,MAAO8C,cAMJ83B,QtCs3UTqE,IACA,SAAUhqC,EAAQC,KAMlBgqC,IACA,SAAUjqC,EAAQC,KAMlBiqC,IACA,SAAUlqC,EAAQC,KAMlBkqC,GACA,SAAUnqC,EAAQ4L,EAAqB1L,GAE7C,YuCnwVe,SAAS0P,GAAYkxB,GAChC,GAAI3S,GAAI,IAAQ3a,SAEhB,OAAOstB,GAAEsJ,OAAO,SAASC,EAAKC,GAC1B,MAAOD,GAAKp6B,KAAKq6B,IAClBnc,GvC+vV0BviB,EAAuB,EAAIgE,CACvC,IAAIqL,GAA8D/a,EAAoB,IAClFgb,EAAsEhb,EAAoB2Q,EAAEoK,IAY/GsvB,IACA,SAAUvqC,EAAQC,KAMlBuqC,IACA,SAAUxqC,EAAQC,KAMlBwqC,IACA,SAAUzqC,EAAQC,KAMlByqC,IACA,SAAU1qC,EAAQC,KAMlB0qC,IACA,SAAU3qC,EAAQC,EAASC,GwC/hVjC,QAAS0qC,GAAeC,GACvB,MAAO3qC,GAAoB4qC,EAAsBD,IAElD,QAASC,GAAsBD,GAC9B,GAAI7jC,GAAKzC,EAAIsmC,EACb,MAAK7jC,EAAK,GACT,KAAM,IAAI8M,OAAM,uBAAyB+2B,EAAM,KAChD,OAAO7jC,GAvRR,GAAIzC,IACH,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,WAAY,IACZ,cAAe,IACf,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,QAAS,IACT,aAAc,IACd,gBAAiB,IACjB,WAAY,IACZ,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IAWfqmC,GAAe77B,KAAO,WACrB,MAAO0B,QAAO1B,KAAKxK,IAEpBqmC,EAAep3B,QAAUs3B,EACzB9qC,EAAOC,QAAU2qC,EACjBA,EAAe5jC,GAAK,KxCqzVd+jC,IACA,SAAU/qC,EAAQ4L,EAAqB1L,GAE7C,YyCtlWA,SAAS8qC,GAAStnC,EAAQO,GACxB,GAAIgnC,GAAiBx6B,OAAOw6B,cAC5BA,GAAiBA,EAAevnC,EAAQO,GAAaP,EAAOwnC,UAAYjnC,EAE1E,QAASknC,GAASznC,EAAQ0nC,OACb,KAAPA,IACFA,EAAK1nC,EAAO2nC,YAGd,IAAIC,GAAoBx3B,MAAMw3B,iBAC9BA,IAAqBA,EAAkB5nC,EAAQ0nC,GAyDjD,QAASG,GAAmBH,EAAI1pB,GAK9B,QAAS8pB,KAKP,IAAK,GAJDC,GAAc5pB,UAEdK,KAEKwpB,EAAK,EAAGA,EAAK7pB,UAAUpf,OAAQipC,IACtCxpB,EAAKwpB,GAAMD,EAAYC,EAGzB,MAAM9qC,eAAgB4qC,IAAgB,MAAO,KAAKA,EAAYzpB,KAAKH,MAAM4pB,EAAaG,OAAgB,IAASzpB,IAC/GR,GAAOE,MAAMhhB,KAAMshB,GACnBzR,OAAOC,eAAe9P,KAAM,QAC1BsB,MAAOkpC,EAAGppC,MAAQ0f,EAAO1f,KACzB4pC,YAAY,EACZC,cAAc,IAEhBT,EAAGxpB,MAAMhhB,KAAMshB,GACfipB,EAASvqC,KAAM4qC,GAGjB,WAxBe,KAAX9pB,IACFA,EAAS5N,OAuBJrD,OAAOq7B,iBAAiBN,GAC7BvnC,WACE/B,MAAOuO,OAAOs7B,OAAOrqB,EAAOzd,WAC1BonC,aACEnpC,MAAOspC,EACPQ,UAAU,EACVH,cAAc,QAlGxB,2IAaA,IAAII,GAAgD,WAClD,GAAIC,GAAgB,SAAU1W,EAAGjZ,GAS/B,OARA2vB,EAAgBz7B,OAAOw6B,iBACrBC,uBACWlnC,QAAS,SAAUwxB,EAAGjZ,GACjCiZ,EAAE0V,UAAY3uB,IACX,SAAUiZ,EAAGjZ,GAChB,IAAK,GAAI4R,KAAK5R,GAASA,EAAE4vB,eAAehe,KAAMqH,EAAErH,GAAK5R,EAAE4R,MAGpCqH,EAAGjZ,GAG1B,OAAO,UAAUiZ,EAAGjZ,GAGlB,QAAS6vB,KACPxrC,KAAKyqC,YAAc7V,EAHrB0W,EAAc1W,EAAGjZ,GAMjBiZ,EAAEvxB,UAAkB,OAANsY,EAAa9L,OAAOs7B,OAAOxvB,IAAM6vB,EAAGnoC,UAAYsY,EAAEtY,UAAW,GAAImoC,QAI/EZ,EAAc,SAAUa,GAG1B,QAASb,GAAYrmC,GACnB,GAAImnC,GAAa1rC,KAAKyqC,YAElBx4B,EAAQw5B,EAAOloC,KAAKvD,KAAMuE,IAAYvE,IAS1C,OAPA6P,QAAOC,eAAemC,EAAO,QAC3B3Q,MAAOoqC,EAAWtqC,KAClB4pC,YAAY,EACZC,cAAc,IAEhBb,EAASn4B,EAAOy5B,EAAWroC,WAC3BknC,EAASt4B,GACFA,EAGT,MAjBAo5B,GAAUT,EAAaa,GAiBhBb,GACP13B,OAEE63B,EAA0D,WAG5D,IAAK,GAFDF,GAAc5pB,UAEToM,EAAI,EAAGva,EAAI,EAAG64B,EAAK1qB,UAAUpf,OAAQiR,EAAI64B,EAAI74B,IAAOua,GAAKwd,EAAY/3B,GAAGjR,MAEjF,KAAK,GAAI4pB,GAAIroB,MAAMiqB,GAAID,EAAI,EAAGta,EAAI,EAAGA,EAAI64B,EAAI74B,IAAO,IAAK,GAAI4I,GAAIuF,UAAUnO,GAAI8S,EAAI,EAAGgmB,EAAKlwB,EAAE7Z,OAAQ+jB,EAAIgmB,EAAIhmB,IAAKwH,IAAO3B,EAAE2B,GAAK1R,EAAEkK,EAElI,OAAO6F,KzCwoWHogB,IACA,SAAUzsC,EAAQC,G0C1sWxBD,EAAOC,QAAU,k8B1CgtWXysC,IACA,SAAU1sC,EAAQC,G2CjtWxBD,EAAOC,QAAU,k8B3CutWX0sC,IACA,SAAU3sC,EAAQC,G4CxtWxBD,EAAOC,QAAU,koD5C8tWX2sC,IACA,SAAU5sC,EAAQC,G6C/tWxBD,EAAOC,QAAU,03E7CquWX4sC,IACA,SAAU7sC,EAAQC,EAASC,G8CtuWjCF,EAAOC,QAAU,IAA0B,6C9C4uWrC6sC,IACA,SAAU9sC,EAAQC,G+C7uWxBD,EAAOC,QAAU,8wD/CmvWX8sC,IACA,SAAU/sC,EAAQC,EAASC,GgDpvWjCF,EAAOC,QAAU,IAA0B,kChD0vWrC+sC,IACA,SAAUhtC,EAAQC,GiD3vWxBD,EAAOC,QAAU,k8BjDiwWXgtC,IACA,SAAUjtC,EAAQC,GkDlwWxBD,EAAOC,QAAU,8wQlDwwWXitC,IACA,SAAUltC,EAAQC,GmDzwWxBD,EAAOC,QAAU,spGnD+wWXktC,IACA,SAAUntC,EAAQC,EAASC,GoDhxWjC,GAAIC,GAAY,EAAQ,IAEtB,EAAQ,KAER,EAAQ,MAER,KAEA,KAEA,KAGFH,GAAOC,QAAUE,EAAUF,SpDuxWrBmtC,IACA,SAAUptC,EAAQC,EAASC,GqDryWjC,QAASK,GAAaC,GACpB,EAAQ,KAEV,GAAIL,GAAY,EAAQ,IAEtB,EAAQ,KAER,EAAQ,MAERI,EAEA,KAEA,KAGFP,GAAOC,QAAUE,EAAUF,SrD4yWrBotC,IACA,SAAUrtC,EAAQC,EAASC,GsD7zWjC,QAASK,GAAaC,GACpB,EAAQ,KAEV,GAAIL,GAAY,EAAQ,IAEtB,EAAQ,KAER,EAAQ,MAERI,EAEA,KAEA,KAGFP,GAAOC,QAAUE,EAAUF,StDo0WrBqtC,IACA,SAAUttC,EAAQC,EAASC,GuDr1WjC,QAASK,GAAaC,GACpB,EAAQ,KAEV,GAAIL,GAAY,EAAQ,IAEtB,EAAQ,KAER,EAAQ,MAERI,EAEA,KAEA,KAGFP,GAAOC,QAAUE,EAAUF,SvD41WrBstC,IACA,SAAUvtC,EAAQC,EAASC,GwD72WjC,QAASK,GAAaC,GACpB,EAAQ,KAEV,GAAIL,GAAY,EAAQ,IAEtB,EAAQ,KAER,EAAQ,MAERI,EAEA,KAEA,KAGFP,GAAOC,QAAUE,EAAUF,SxDo3WrButC,IACA,SAAUxtC,EAAQC,EAASC,GyDr4WjC,GAAIC,GAAY,EAAQ,IAEtB,EAAQ,KAER,EAAQ,MAER,KAEA,KAEA,KAGFH,GAAOC,QAAUE,EAAUF,WzD44WxB","file":"static/js/app.12222c3d26dfd06665ef.js","sourcesContent":["webpackJsonp([1],{\n\n/***/ 1000:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(558),\n /* template */\n __webpack_require__(1004),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 1001:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(559),\n /* template */\n __webpack_require__(1014),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 1002:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(560),\n /* template */\n __webpack_require__(1010),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 1003:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(889)\n}\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(561),\n /* template */\n __webpack_require__(1006),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 1004:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"kort topspacing\",\n staticStyle: {\n \"margin-top\": \"55.4px\"\n }\n }, [_c('div', {\n staticClass: \"header\",\n staticStyle: {\n \"height\": \"55.4px\"\n }\n }, [_c('div', {\n staticClass: \"left\",\n on: {\n \"click\": function($event) {\n return _vm.goBack()\n }\n }\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 240.823 240.823\",\n \"vertical-align\": \"-3px\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"viewBox\": \"0 0 240.823 240.823\",\n \"xml:space\": \"preserve\",\n \"width\": \"18px\",\n \"height\": \"18px\"\n }\n }, [_c('g', [_c('path', {\n attrs: {\n \"id\": \"Chevron_Right\",\n \"d\": \"M57.633,129.007L165.93,237.268c4.752,4.74,12.451,4.74,17.215,0c4.752-4.74,4.752-12.439,0-17.179 l-99.707-99.671l99.695-99.671c4.752-4.74,4.752-12.439,0-17.191c-4.752-4.74-12.463-4.74-17.215,0L57.621,111.816 C52.942,116.507,52.942,124.327,57.633,129.007z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])]), _vm._v(\" \"), _c('h1', [_vm._v(\"Kort\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"right selected-date\"\n }, [(_vm.selectedDate != null || _vm.selectedDate != undefined) ? _c('span', [_vm._v(_vm._s(_vm._f(\"moment\")(_vm.selectedDate)))]) : _c('span', [_vm._v(_vm._s(_vm._f(\"moment\")(_vm.today)))])])]), _vm._v(\" \"), _c('mapcomponent')], 1)\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 1005:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.overlay),\n expression: \"overlay\"\n }],\n staticClass: \"overlay\",\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.closeMenu\n }\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.syncOverlay),\n expression: \"syncOverlay\"\n }],\n staticClass: \"loading-overlay\"\n }, [_c('div', {\n staticClass: \"counter text-center\"\n }, [_vm._m(0), _vm._v(\" \"), _c('p', [_vm._v(\"Trin \" + _vm._s(_vm.activeStep) + \" ud af \" + _vm._s(_vm.totalSteps))]), _vm._v(\" \"), (_vm.errorMessage.length > 0) ? _c('p', {\n staticClass: \"error-message\"\n }, [_vm._v(_vm._s(_vm.errorMessage))]) : _vm._e()])]), _vm._v(\" \"), _c('header', {\n attrs: {\n \"id\": \"header\"\n }\n }, [_c('div', {\n staticClass: \"left\",\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.showMenu\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"menu\")]), _vm._v(\" \"), (_vm.notification > 0) ? _c('p', {\n staticClass: \"small-icon notification\"\n }, [_vm._v(\"!\")]) : _vm._e()]), _vm._v(\" \"), _c('h1', [_vm._v(\"Opgaver\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"right\",\n on: {\n \"click\": _vm.gotoMap\n }\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 533.333 533.333\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"width\": \"20px\",\n \"height\": \"20px\",\n \"viewBox\": \"0 0 533.333 533.333\",\n \"xml:space\": \"preserve\"\n }\n }, [_c('g', [_c('path', {\n attrs: {\n \"d\": \"M455.229,78.105c50.367,50.367,78.104,117.333,78.104,188.563c0,71.229-27.739,138.194-78.104,188.561 c-50.368,50.366-117.333,78.104-188.562,78.104c-71.229,0-138.195-27.738-188.562-78.104C27.738,404.862,0,337.896,0,266.668 c0-71.229,27.736-138.196,78.104-188.563S195.438,0,266.667,0C337.896,0,404.861,27.738,455.229,78.105z M431.658,431.659 c32.843-32.843,54.681-73.754,63.686-118.262c-7.019,10.331-13.732,14.165-17.888-8.961c-4.281-37.703-38.911-13.618-60.688-27.011 c-22.919,15.447-74.43-30.032-65.676,21.263c13.507,23.137,72.921-30.964,43.307,17.99 c-18.893,34.176-69.085,109.86-62.555,149.093c0.823,57.158-58.404,11.919-78.81-7.041 c-13.727-37.979-4.678-104.362-40.572-122.962c-38.959-1.691-72.398-5.232-87.497-48.786c-9.086-31.161,9.669-77.549,43.062-84.71 c48.88-30.711,66.341,35.965,112.183,37.205c14.233-14.893,53.029-19.628,56.246-36.328c-30.078-5.308,38.16-25.291-2.879-36.657 c-22.642,2.663-37.229,23.476-25.193,41.124c-43.874,10.23-45.279-63.492-87.454-40.238c-1.072,36.765-68.865,11.919-23.456,4.464 c15.602-6.816-25.448-26.57-3.271-22.98c10.894-0.592,47.569-13.444,37.644-22.084c20.421-12.677,37.583,30.359,57.572-0.98 c14.431-24.097-6.052-28.546-24.141-16.332c-10.198-11.418,18.006-36.081,42.882-46.738c8.29-3.552,16.208-5.487,22.263-4.939 c12.531,14.475,35.703,16.982,36.916-1.741c-31.031-14.861-65.247-22.712-100.672-22.712c-50.845,0-99.203,16.158-139.223,46.036 c10.755,4.927,16.86,11.062,6.499,18.904c-8.05,23.987-40.713,56.186-69.387,51.627c-14.889,25.674-24.694,53.961-28.885,83.608 c24.016,7.946,29.554,23.672,24.394,28.932c-12.237,10.671-19.759,25.797-23.633,42.355c7.817,47.832,30.298,91.914,65.245,126.862 C145.746,475.729,204.34,500,266.667,500C328.992,500,387.587,475.729,431.658,431.659z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"sidemenu fast\",\n staticStyle: {\n \"display\": \"none\"\n },\n attrs: {\n \"id\": \"sidemenu\",\n \"data-toggler\": \"\",\n \"data-animate\": \"slide-in-left slide-out-left\"\n }\n }, [_c('div', {\n staticClass: \"close-button\",\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.closeMenu\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"×\")])]), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _c('ul', [_c('li', {\n staticClass: \"active\",\n attrs: {\n \"id\": \"projekter\"\n }\n }, [_c('a', {\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.gotoProjects\n }\n }, [_vm._m(2), _vm._v(\"\\n Opgaver\\n \")])]), _vm._v(\" \"), _c('li', {\n attrs: {\n \"id\": \"kort\"\n }\n }, [_c('a', {\n staticClass: \"map-item\",\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.gotoMap\n }\n }, [_c('div', {\n staticClass: \"icon\"\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 533.333 533.333\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"width\": \"20px\",\n \"height\": \"20px\",\n \"viewBox\": \"0 0 533.333 533.333\",\n \"xml:space\": \"preserve\"\n }\n }, [_c('g', [_c('path', {\n attrs: {\n \"d\": \"M455.229,78.105c50.367,50.367,78.104,117.333,78.104,188.563c0,71.229-27.739,138.194-78.104,188.561 c-50.368,50.366-117.333,78.104-188.562,78.104c-71.229,0-138.195-27.738-188.562-78.104C27.738,404.862,0,337.896,0,266.668 c0-71.229,27.736-138.196,78.104-188.563S195.438,0,266.667,0C337.896,0,404.861,27.738,455.229,78.105z M431.658,431.659 c32.843-32.843,54.681-73.754,63.686-118.262c-7.019,10.331-13.732,14.165-17.888-8.961c-4.281-37.703-38.911-13.618-60.688-27.011 c-22.919,15.447-74.43-30.032-65.676,21.263c13.507,23.137,72.921-30.964,43.307,17.99 c-18.893,34.176-69.085,109.86-62.555,149.093c0.823,57.158-58.404,11.919-78.81-7.041 c-13.727-37.979-4.678-104.362-40.572-122.962c-38.959-1.691-72.398-5.232-87.497-48.786c-9.086-31.161,9.669-77.549,43.062-84.71 c48.88-30.711,66.341,35.965,112.183,37.205c14.233-14.893,53.029-19.628,56.246-36.328c-30.078-5.308,38.16-25.291-2.879-36.657 c-22.642,2.663-37.229,23.476-25.193,41.124c-43.874,10.23-45.279-63.492-87.454-40.238c-1.072,36.765-68.865,11.919-23.456,4.464 c15.602-6.816-25.448-26.57-3.271-22.98c10.894-0.592,47.569-13.444,37.644-22.084c20.421-12.677,37.583,30.359,57.572-0.98 c14.431-24.097-6.052-28.546-24.141-16.332c-10.198-11.418,18.006-36.081,42.882-46.738c8.29-3.552,16.208-5.487,22.263-4.939 c12.531,14.475,35.703,16.982,36.916-1.741c-31.031-14.861-65.247-22.712-100.672-22.712c-50.845,0-99.203,16.158-139.223,46.036 c10.755,4.927,16.86,11.062,6.499,18.904c-8.05,23.987-40.713,56.186-69.387,51.627c-14.889,25.674-24.694,53.961-28.885,83.608 c24.016,7.946,29.554,23.672,24.394,28.932c-12.237,10.671-19.759,25.797-23.633,42.355c7.817,47.832,30.298,91.914,65.245,126.862 C145.746,475.729,204.34,500,266.667,500C328.992,500,387.587,475.729,431.658,431.659z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])]), _vm._v(\"\\n Kort\\n \")])]), _vm._v(\" \"), _c('li', [_c('a', {\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.syncData\n }\n }, [_c('div', {\n staticClass: \"icon\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"sync\")]), _vm._v(\" \"), (_vm.notification > 0) ? _c('p', {\n staticClass: \"notification\"\n }, [_vm._v(\"!\")]) : _vm._e()]), _vm._v(\"\\n Synkronisér\\n \")])]), _vm._v(\" \"), _vm._m(3), _vm._v(\" \"), _c('li', [_c('a', {\n attrs: {\n \"data-open\": \"aboutModal\",\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.gotoAbout\n }\n }, [_vm._m(4), _vm._v(\"\\n Om MålerTjek\\n \")])])])]), _vm._v(\" \"), (_vm.showModal) ? _c('help-modal', {\n on: {\n \"close\": function($event) {\n _vm.showModal = false\n }\n }\n }) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"reveal\",\n attrs: {\n \"id\": \"aboutModal\",\n \"data-reveal\": \"\"\n }\n }, [_c('div', {\n staticClass: \"reveal-header special-text\"\n }, [_c('img', {\n staticClass: \"logo\",\n attrs: {\n \"src\": __webpack_require__(234),\n \"alt\": \"logo\"\n }\n }), _vm._v(\" \"), _c('p', {\n staticClass: \"text-center\"\n }, [_vm._v(\"V. \" + _vm._s(_vm.version) + \", udgivet \" + _vm._s(_vm.date))])]), _vm._v(\" \"), _vm._m(5), _vm._v(\" \"), _c('img', {\n staticClass: \"niras-logo\",\n attrs: {\n \"src\": __webpack_require__(989),\n \"alt\": \"Niras logo\"\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"reveal-footer\"\n }, [_vm._m(6), _vm._v(\" \"), _c('img', {\n staticClass: \"firm-logo\",\n attrs: {\n \"src\": _vm.image\n }\n })]), _vm._v(\" \"), _vm._m(7)]), _vm._v(\" \"), _c('main', {\n attrs: {\n \"role\": \"main\"\n }\n }, [_c('router-view')], 1)], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h3', [_vm._v(\"Synkroniserer data\"), _c('span', {\n staticClass: \"loading-overview\"\n }, [_c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"header-menu\"\n }, [_c('h2', [_c('b', [_vm._v(\"Måler\")]), _vm._v(\"tjek\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"icon\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"assignment\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('li', [_c('a', {\n attrs: {\n \"href\": \"./files/MålertjekVejledning.pdf\",\n \"target\": \"_blank\"\n }\n }, [_c('div', {\n staticClass: \"icon\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"help\")])]), _vm._v(\"\\n Hjælp\\n \")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"icon\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"info\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"reveal-body\"\n }, [_c('h5', [_vm._v(\"MålerTjek™ - programmet, der rationaliserer kontrol og udskiftning af forbrugsmålere.\")]), _vm._v(\" \"), _c('p', [_vm._v(\"NIRAS har udviklet et system, der rationaliserer arbejdsopgaver vedrørende kontrol og udskiftning af forbrugsmålere i forsyningssektoren. Programmet hedder MålerTjek, og med det fjerner du tidsrøvere og gør samtidig livet lettere for både forsyningernes montører og deres administration samt for borgerne. \")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('p', [_vm._v(\"Har du brug for support til MålerTjek, kan du ringe på support-telefonen \"), _c('b', [_vm._v(\"2857 5859\")]), _vm._v(\" eller sende en e-mail til \"), _c('a', {\n attrs: {\n \"href\": \"mailto:infosupport@niras.dk?Subject=MålerTjek\",\n \"target\": \"_top\"\n }\n }, [_vm._v(\"infosupport@niras.dk\")]), _vm._v(\".\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('button', {\n staticClass: \"close-button\",\n attrs: {\n \"data-close\": \"\",\n \"aria-label\": \"Close modal\",\n \"type\": \"button\"\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"×\")])])\n}]}\n\n/***/ }),\n\n/***/ 1006:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"velkommen topspacing\"\n }, [(_vm.showLoader) ? _c('div', {\n staticClass: \"loading-overlay\"\n }, [_c('div', {\n staticClass: \"counter\"\n }, [(_vm.errorMessage.length == 0) ? _c('div', [_vm._m(0), _vm._v(\" \"), _c('p', [_vm._v(\"Trin \" + _vm._s(_vm.activeStep) + \" af \" + _vm._s(_vm.totalSteps))])]) : _vm._e(), _vm._v(\" \"), (_vm.errorMessage.length > 0) ? _c('div', [_vm._v(\"\\n \" + _vm._s(_vm.errorMessage) + \"\\n \"), _c('a', {\n staticClass: \"button error-button\",\n on: {\n \"click\": _vm.closeError\n }\n }, [_vm._v(\"Okay\")])]) : _vm._e()])]) : _vm._e(), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x grid-padding-x\"\n }, [_c('div', {\n staticClass: \"large-12 cell\"\n }, [_c('section', [_vm._m(2), _vm._v(\" \"), _c('div', {\n staticClass: \"content text-center\"\n }, [_c('p', [_vm._v(\"\\n NIRAS har udviklet et system, der rationaliserer arbejdsopgaver vedrørende kontrol og udskiftning af forbrugsmålere i forsyningssektoren. Programmet hedder MålerTjek, og med det fjerner du tidsrøvere og gør samtidig livet lettere for både forsyningernes montører og deres administration samt for borgerne. \\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"text-center download-container\"\n }, [_c('a', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.getServerData\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"file_download\")]), _vm._v(\"Hent app\")])])])])])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h3', [_vm._v(\"Installerer MålerTjek app'en \"), _c('span', {\n staticClass: \"loading-overview\"\n }, [_c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"header\",\n staticStyle: {\n \"height\": \"55.4px\"\n }\n }, [_c('h1', [_vm._v(\"Hent indstillinger\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"header-welcome\"\n }, [_c('img', {\n attrs: {\n \"src\": __webpack_require__(234),\n \"alt\": \"logo\"\n }\n })])\n}]}\n\n/***/ }),\n\n/***/ 1007:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"step-container\"\n }, [_vm._m(0), _vm._v(\" \"), (_vm.step1) ? _c('div', [_c('div', {\n staticClass: \"top-image step1\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"step-content\"\n }, [_c('h3', [_vm._v(\"Indtast din nøgle\")]), _vm._v(\" \"), _c('p', [_vm._v(\"For at kunne finde ud af hvilken forsyning, som du hører til, skal vi bruge en nøgle. Tryk på knappen nedenfor for at validere nøglen.\")]), _vm._v(\" \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.key),\n expression: \"key\"\n }],\n attrs: {\n \"type\": \"text\",\n \"placeholder\": \"Nøgle\"\n },\n domProps: {\n \"value\": (_vm.key)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.key = $event.target.value\n }\n }\n }), _vm._v(\" \"), _c('a', {\n staticClass: \"button\",\n staticStyle: {\n \"max-height\": \"38px\",\n \"height\": \"38px\"\n },\n on: {\n \"click\": _vm.validateKey\n }\n }, [(!_vm.downloading) ? _c('span', [_vm._v(\"Validér nøgle\")]) : _vm._e(), _vm._v(\" \"), (_vm.downloading) ? _c('span', [_c('div', {\n staticClass: \"loading-spinner\"\n }), _vm._v(\"   Validerer...\")]) : _vm._e()]), _vm._v(\" \"), _c('p', {\n staticClass: \"error\"\n }, [_vm._v(_vm._s(_vm.errorMessage))])])]) : _vm._e(), _vm._v(\" \"), (_vm.step2) ? _c('div', [_c('div', {\n staticClass: \"top-image step2\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"step-content\"\n }, [_c('h3', [_vm._v(\"Vælg montør\")]), _vm._v(\" \"), _c('p', [_vm._v(\"For at optimere din brugeroplevelse og sikre korrekt data, skal du fortælle os, hvem du er. Dette gøres i dropdown-feltet nedenfor.\")]), _vm._v(\" \"), _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selected),\n expression: \"selected\"\n }],\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.selected = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, [_c('option', {\n attrs: {\n \"disabled\": \"\",\n \"value\": \"0\",\n \"selected\": \"selected\"\n }\n }, [_vm._v(\"Vælg en montør\")]), _vm._v(\" \"), _vm._l((_vm.options), function(option) {\n return _c('option', {\n key: option,\n domProps: {\n \"value\": option\n }\n }, [_vm._v(\"\\n \" + _vm._s(option.navn) + \"\\n \")])\n })], 2), _vm._v(\" \"), _c('a', {\n staticClass: \"button\",\n class: {\n disabled: _vm.empty\n },\n on: {\n \"click\": _vm.chooseUser\n }\n }, [_vm._v(\"Næste\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"error\"\n }, [_vm._v(_vm._s(_vm.errorMessage))])]), _vm._v(\" \"), _c('p', {\n staticClass: \"goback\",\n on: {\n \"click\": _vm.gotoStep1\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"arrow_back\")]), _vm._v(\" \\n Tilbage\\n \")])]) : _vm._e(), _vm._v(\" \"), (_vm.step3) ? _c('div', [_c('div', {\n staticClass: \"top-image step3\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"step-content\"\n }, [_c('h3', [_vm._v(\"Hent app'en og kom i gang\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Du er nu klar til at komme i gang. Tryk på knappen nedenfor for at hente nødvendige data ned på din enhed, så det fungerer uden internet og sikrer en bedre brugeroplevelse\")]), _vm._v(\" \"), _c('a', {\n staticClass: \"button\",\n on: {\n \"click\": _vm.getServerData\n }\n }, [_vm._v(\"Hent app\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"error\"\n }, [_vm._v(_vm._s(_vm.errorMessage))])]), _vm._v(\" \"), _c('p', {\n staticClass: \"goback\",\n on: {\n \"click\": _vm.gotoStep2\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"arrow_back\")]), _vm._v(\" \\n Tilbage\\n \")])]) : _vm._e(), _vm._v(\" \"), (_vm.showLoader) ? _c('div', {\n staticClass: \"loading-overlay\"\n }, [_c('div', {\n staticClass: \"counter\"\n }, [(_vm.errorMessage.length == 0) ? _c('div', [_vm._m(1), _vm._v(\" \"), _c('p', {\n staticClass: \"small-text-loading\"\n }, [_vm._v(_vm._s(_vm.message))])]) : _vm._e(), _vm._v(\" \"), (_vm.errorMessage.length > 0) ? _c('div', [_vm._v(\"\\n \" + _vm._s(_vm.errorMessage) + \"\\n \"), _c('a', {\n staticClass: \"button error-button\",\n on: {\n \"click\": _vm.closeError\n }\n }, [_vm._v(\"Okay\")])]) : _vm._e()])]) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"steps\"\n }, [_c('ul', [_c('li', {\n class: {\n active: _vm.step1\n }\n }), _vm._v(\" \"), _c('li', {\n class: {\n active: _vm.step2\n }\n }), _vm._v(\" \"), _c('li', {\n class: {\n active: _vm.step3\n }\n })])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"logo-top\"\n }, [_c('img', {\n attrs: {\n \"src\": __webpack_require__(234),\n \"alt\": \"logo\"\n }\n })])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h3', [_vm._v(\"Installerer MålerTjek-app'en \"), _c('span', {\n staticClass: \"loading-overview\"\n }, [_c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")])])])\n}]}\n\n/***/ }),\n\n/***/ 1008:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return (_vm.doneLoading) ? _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('v-map', {\n attrs: {\n \"zoom\": _vm.zoom,\n \"center\": _vm.center\n }\n }, [_c('v-tilelayer', {\n attrs: {\n \"url\": _vm.url,\n \"attribution\": _vm.attribution\n }\n }), _vm._v(\" \"), _vm._l((_vm.markers), function(item) {\n return _c('div', [_c('v-marker', {\n attrs: {\n \"lat-lng\": item.coordinates,\n \"icon\": item.icon\n }\n }, [_c('v-popup', {\n attrs: {\n \"content\": item.popup\n }\n }), _vm._v(\" \"), _c('v-tooltip', {\n attrs: {\n \"content\": item.tooltip,\n \"options\": _vm.options\n }\n })], 1)], 1)\n })], 2)], 1) : _c('div', [_vm._v(\"\\n Henter kort...\\n\")])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 1009:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.overlay),\n expression: \"overlay\"\n }],\n staticClass: \"deleting-overlay\"\n }, [_vm._m(0)]), _vm._v(\" \"), _c('transition', {\n attrs: {\n \"name\": \"modal\"\n }\n }, [_c('div', {\n staticClass: \"modal-mask\"\n }, [_c('div', {\n staticClass: \"modal-wrapper\"\n }, [_c('div', {\n staticClass: \"modal-container\"\n }, [_c('button', {\n staticClass: \"close-button\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": _vm.closeModal\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\",\n \"tabindex\": \"-1\"\n }\n }, [_vm._v(\"×\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-header\"\n }, [_vm._t(\"header\", function() {\n return [_c('h3', [_vm._v(\"Hjælp til MålerTjek\")])]\n })], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-body\"\n }, [_vm._t(\"body\", function() {\n return [_c('p', [_vm._v(\"\\n Hvis du oplever problemer med at den ikke vil synkronisere dit data, kan en\\n mulig løsning være, at fjerne dine lokale ændringer. Dette vil resultere i,\\n at alle ændringer siden sidst du synkroniserede, vil gå tabt. Hvis du ønsker\\n at slette dine lokale data, klik på knappen nedenfor.\\n \")]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n Har du brug for support til MålerTjek, kan du ringe på support-telefonen \\n \"), _c('b', [_vm._v(\"2857 5859\")]), _vm._v(\" eller sende en e-mail til \"), _c('a', {\n attrs: {\n \"href\": \"mailto:infosupport@niras.dk?Subject=MålerTjek\",\n \"target\": \"_top\"\n }\n }, [_vm._v(\"infosupport@niras.dk\")]), _vm._v(\". \\n \")])]\n })], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-footer\"\n }, [_vm._t(\"footer\", function() {\n return [_c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('a', {\n staticClass: \"button\",\n on: {\n \"click\": _vm.closeModal\n }\n }, [_vm._v(\"Luk\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-left\": \"4px\"\n }\n }, [_c('a', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.clearAll\n }\n }, [_vm._v(\"Slet data\")])])])]\n })], 2)])])])])], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"counter text-center\"\n }, [_c('h3', [_vm._v(\"Sletter lokale data\"), _c('span', {\n staticClass: \"loading-overview\"\n }, [_c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")])])])])\n}]}\n\n/***/ }),\n\n/***/ 1010:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"projekter topspacing\"\n }, [_c('div', {\n staticClass: \"grid-x content\"\n }, [_c('div', {\n staticClass: \"small-8 cell\"\n }, [_vm._m(0), _vm._v(\" \"), _c('datepicker', {\n attrs: {\n \"id\": \"datepicker\",\n \"name\": \"Datepicker\",\n \"language\": \"da\",\n \"placeholder\": \"I dag\"\n },\n on: {\n \"selected\": _vm.getSelectedDate\n },\n model: {\n value: (_vm.state.date),\n callback: function($$v) {\n _vm.$set(_vm.state, \"date\", $$v)\n },\n expression: \"state.date\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"small-4 cell\"\n }, [_c('div', {\n staticClass: \"user special-text text-right\",\n on: {\n \"click\": _vm.showUsers\n }\n }, [_c('p', [_vm._v(_vm._s(_vm.selectedUser.navn) + \" \"), _c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"keyboard_arrow_down\")])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showUserList),\n expression: \"showUserList\"\n }],\n staticClass: \"user-list\"\n }, [_c('ul', _vm._l((_vm.users), function(user) {\n return _c('li', {\n key: user.id,\n on: {\n \"click\": function($event) {\n return _vm.selectUser(user)\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(user.navn) + \"\\n \")])\n }), 0)])])])]), _vm._v(\" \"), _c('ul', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.filteredResult.length > 0),\n expression: \"filteredResult.length > 0\"\n }],\n staticClass: \"list content\",\n class: {\n 'hide-list': _vm.createNew\n }\n }, _vm._l((_vm.projectView), function(project, index) {\n return _c('li', {\n key: project.id,\n on: {\n \"click\": function($event) {\n return _vm.gotoProject(project)\n }\n }\n }, [_c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-1 cell\"\n }, [_c('div', {\n staticClass: \"status dark-color\",\n class: _vm.classObject(project)\n }, [(index < 9) ? _c('span', [_vm._v(\"0\")]) : _vm._e(), _vm._v(_vm._s(index + 1))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\"\n }, [_c('span', [_vm._v(_vm._s(project.bookingTypeNavn))]), _c('br'), _vm._v(\" \"), (!project.adresse.etage && !project.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(project.adresse.vejnavn + ' ' + project.adresse.husnummer + ', ' + project.adresse.postnummer + ' ' + project.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (project.adresse.etage && !project.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(project.adresse.vejnavn + ' ' + project.adresse.husnummer + '. ' + project.adresse.etage + ', ' + project.adresse.postnummer + ' ' + project.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (!project.adresse.etage && project.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(project.adresse.vejnavn + ' ' + project.adresse.husnummer + '. ' + project.adresse.doer + ', ' + project.adresse.postnummer + ' ' + project.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (project.adresse.etage && project.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(project.adresse.vejnavn + ' ' + project.adresse.husnummer + '. ' + project.adresse.etage + ' - ' + project.adresse.doer + ', ' + project.adresse.postnummer + ' ' + project.adresse.by)))]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-4 cell padding-text\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm._f(\"moment\")(project.fratid)) + \" - \" + _vm._s(_vm._f(\"moment\")(project.tiltid)) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-1 cell icon-center\"\n }, [(project.bemaerkning !== '') ? _c('i', {\n staticClass: \"material-icons note-icon\"\n }, [_vm._v(\"note\")]) : _vm._e()])])])\n }), 0), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.filteredResult.length == 0 || _vm.projectView == undefined),\n expression: \"filteredResult.length == 0 || projectView == undefined\"\n }],\n staticClass: \"placeholder\"\n }, [_vm._m(1), _vm._v(\" \"), _vm._m(2)])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('span', {\n staticClass: \"float-left\"\n }, [_c('i', {\n staticClass: \"material-icons date-icon\"\n }, [_vm._v(\"date_range\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"placeholder-image\"\n }, [_c('img', {\n attrs: {\n \"src\": __webpack_require__(987),\n \"alt\": \"projekt-ikon\"\n }\n })])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h5', [_vm._v(\"Ingen opgaver for den\"), _c('br'), _vm._v(\" valgte dato eller montør\")])\n}]}\n\n/***/ }),\n\n/***/ 1011:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"small-6 cell image-cells\"\n }, [_c('a', {\n attrs: {\n \"href\": _vm.dataSourceFull,\n \"data-lightbox\": \"image-1\"\n }\n }, [_c('div', {\n staticClass: \"img-container\",\n style: ({\n 'background': 'url(' + _vm.dataSource + ')'\n })\n })]), _vm._v(\" \"), _c('span', {\n staticClass: \"remove-image\",\n attrs: {\n \"aria-hidden\": \"true\",\n \"data-open\": 'removeImageModal' + _vm.upload.id\n }\n }, [_vm._v(\"×\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"reveal\",\n attrs: {\n \"id\": 'removeImageModal' + _vm.upload.id,\n \"data-reveal\": \"\"\n }\n }, [_vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-body\"\n }, [_c('p', [_vm._v(\"Du er ved at slette et billede\")]), _vm._v(\" \"), _c('div', [_c('img', {\n staticClass: \"img-center\",\n attrs: {\n \"src\": _vm.dataSource,\n \"alt\": \"\"\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"spacing\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('button', {\n staticClass: \"button\",\n attrs: {\n \"data-close\": 'removeImageModal' + _vm.upload.id\n }\n }, [_vm._v(\"Annuller\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-left\": \"4px\"\n }\n }, [_c('button', {\n staticClass: \"button call-to-action\",\n attrs: {\n \"data-close\": 'removeImageModal' + _vm.upload.id\n },\n on: {\n \"click\": function($event) {\n return _vm.removeUpload(_vm.upload.id)\n }\n }\n }, [_vm._v(\"Slet\")])])])])])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"modal-header\"\n }, [_c('h3', [_c('b', [_vm._v(\"Er du sikker?\")])])])\n}]}\n\n/***/ }),\n\n/***/ 1012:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition', {\n attrs: {\n \"name\": \"modal\"\n }\n }, [_c('div', {\n staticClass: \"modal-mask\"\n }, [_c('div', {\n staticClass: \"modal-wrapper\"\n }, [_c('div', {\n staticClass: \"modal-container\"\n }, [_c('button', {\n staticClass: \"close-button\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": _vm.cancelCamera\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\",\n \"tabindex\": \"-1\"\n }\n }, [_vm._v(\"×\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-header\"\n }, [_vm._t(\"header\")], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-body\"\n }, [_vm._t(\"body\", function() {\n return [_c('p', {\n staticStyle: {\n \"margin-bottom\": \"0px\"\n }\n }, [_c('b', [_vm._v(\"Stregkode:\")]), _vm._v(\" \" + _vm._s(_vm.finalResult))]), _vm._v(\" \"), _c('p', {\n staticClass: \"green-color\",\n class: {\n 'visibility': !_vm.finalResult\n },\n staticStyle: {\n \"text-transform\": \"uppercase\"\n }\n }, [_vm._v(\"Stregkode på \" + _vm._s(_vm.finalResult.length) + \" cifre scannet!\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"viewport\",\n attrs: {\n \"id\": \"interactive\"\n }\n }, [_c('video', {\n attrs: {\n \"id\": \"video\"\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"red-line\"\n }, [_c('hr')])])]\n })], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-footer\"\n }, [_vm._t(\"footer\", function() {\n return [_c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('a', {\n staticClass: \"button\",\n attrs: {\n \"data-toggle\": \"barcodeModal\",\n \"aria-controls\": \"barcodeModal\"\n },\n on: {\n \"click\": _vm.cancelCamera\n }\n }, [_vm._v(\"Annuller\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-left\": \"4px\"\n }\n }, [_c('a', {\n staticClass: \"button call-to-action\",\n attrs: {\n \"data-toggle\": \"barcodeModal\",\n \"aria-controls\": \"barcodeModal\"\n },\n on: {\n \"click\": _vm.stopCamera\n }\n }, [_vm._v(\"Brug stregkode\")])])])]\n })], 2)])])])])\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 1013:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"default content text-center\"\n })\n},staticRenderFns: []}\n\n/***/ }),\n\n/***/ 1014:\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"projekt topspacing-big\"\n }, [_c('div', {\n staticClass: \"header-big\"\n }, [_c('div', {\n staticClass: \"left\",\n on: {\n \"click\": function($event) {\n return _vm.goBack()\n }\n }\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 240.823 240.823\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"viewBox\": \"0 0 240.823 240.823\",\n \"xml:space\": \"preserve\",\n \"width\": \"18px\",\n \"height\": \"18px\"\n }\n }, [_c('g', [_c('path', {\n attrs: {\n \"id\": \"Chevron_Right\",\n \"d\": \"M57.633,129.007L165.93,237.268c4.752,4.74,12.451,4.74,17.215,0c4.752-4.74,4.752-12.439,0-17.179 l-99.707-99.671l99.695-99.671c4.752-4.74,4.752-12.439,0-17.191c-4.752-4.74-12.463-4.74-17.215,0L57.621,111.816 C52.942,116.507,52.942,124.327,57.633,129.007z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])]), _vm._v(\" \"), _c('h1', [_vm._v(_vm._s(_vm.filteredResult.bookingTypeNavn))]), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"info-user\"\n }, [(_vm.filteredResult && !_vm.filteredResult.adresse.etage && !_vm.filteredResult.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(_vm.filteredResult.adresse.vejnavn + ' ' + _vm.filteredResult.adresse.husnummer + ', ' + _vm.filteredResult.adresse.postnummer + ' ' + _vm.filteredResult.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult && _vm.filteredResult.adresse.etage && !_vm.filteredResult.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(_vm.filteredResult.adresse.vejnavn + ' ' + _vm.filteredResult.adresse.husnummer + '. ' + _vm.filteredResult.adresse.etage + ', ' + _vm.filteredResult.adresse.postnummer + ' ' + _vm.filteredResult.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult && !_vm.filteredResult.adresse.etage && _vm.filteredResult.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(_vm.filteredResult.adresse.vejnavn + ' ' + _vm.filteredResult.adresse.husnummer + '. ' + _vm.filteredResult.adresse.doer + ', ' + _vm.filteredResult.adresse.postnummer + ' ' + _vm.filteredResult.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult && _vm.filteredResult.adresse.etage && _vm.filteredResult.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(_vm.filteredResult.adresse.vejnavn + ' ' + _vm.filteredResult.adresse.husnummer + '. ' + _vm.filteredResult.adresse.etage + ' - ' + _vm.filteredResult.adresse.doer + ', ' + _vm.filteredResult.adresse.postnummer + ' ' + _vm.filteredResult.adresse.by)))]) : _vm._e(), _vm._v(\" \"), _c('p', {\n staticClass: \"time\"\n }, [_vm._v(_vm._s(_vm._f(\"formattedDate\")(_vm.filteredResult.fratid)) + \" - \" + _vm._s(_vm._f(\"moment\")(_vm.filteredResult.tiltid)))])])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.show == 'booking'),\n expression: \"show == 'booking'\"\n }],\n staticClass: \"content padding-bottom-big\"\n }, [_c('h5', [_vm._v(\"Måler\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"special-text under-header\"\n }, [_c('p', [_vm._v(_vm._s(_vm.filteredResult.maalerType))]), _vm._v(\" \"), _c('span', [_vm._v(_vm._s(_vm.filteredResult.maalernummer))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\",\n staticStyle: {\n \"width\": \"100%\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"målerplacering\"\n }\n }, [_vm._v(\"Målerplacering\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.målerplacering),\n expression: \"data.målerplacering\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"målerplacering\",\n \"disabled\": \"disabled\"\n },\n domProps: {\n \"value\": (_vm.data.målerplacering)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"målerplacering\", $event.target.value)\n }\n }\n })]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"tidligerestand\"\n }\n }, [_vm._v(\"Tidligere stand\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.tidligerestand),\n expression: \"data.tidligerestand\"\n }],\n attrs: {\n \"type\": \"number\",\n \"disabled\": \"disabled\",\n \"id\": \"tidligerestand\"\n },\n domProps: {\n \"value\": (_vm.data.tidligerestand)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"tidligerestand\", $event.target.value)\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-left\": \"4px\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"aktuelstand\"\n }\n }, [_vm._v(\"Aktuel stand\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.tidligereaktuelstand),\n expression: \"data.tidligereaktuelstand\"\n }],\n attrs: {\n \"type\": \"number\",\n \"id\": \"aktuelstand\"\n },\n domProps: {\n \"value\": (_vm.data.tidligereaktuelstand)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"tidligereaktuelstand\", $event.target.value)\n }\n }\n })]), _vm._v(\" \"), (_vm.data.tidligerestand > 0) ? _c('p', {\n staticStyle: {\n \"font-size\": \"0.9rem\",\n \"margin-top\": \"-5px\",\n \"padding-left\": \"2px\",\n \"font-style\": \"italic\",\n \"margin-bottom\": \"0px\"\n }\n }, [_vm._v(\"Forventet: \" + _vm._s(Math.floor(_vm.beregnForventetForbrugForDato(_vm.filteredResult.aflaesningsdato, _vm.filteredResult.fratid, _vm.filteredResult.aarsforbrug)) + _vm.data.tidligerestand))]) : _vm._e()])]), _vm._v(\" \"), _c('h5', {\n staticStyle: {\n \"margin-top\": \"10px\"\n }\n }, [_vm._v(\"Ny måler\")]), _vm._v(\" \"), (_vm.showModal) ? _c('modal', {\n on: {\n \"close\": _vm.childClicked\n }\n }) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"number\"\n }\n }, [_vm._v(\"Nummer\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.nummer),\n expression: \"data.nummer\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"number\"\n },\n domProps: {\n \"value\": (_vm.data.nummer)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"nummer\", $event.target.value)\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-2 cell\"\n }, [_c('button', {\n staticClass: \"button barcode\",\n attrs: {\n \"data-open\": \"barcodeModal\"\n },\n on: {\n \"click\": _vm.scanClick\n }\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 28.046 28.046\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"width\": \"24px\",\n \"height\": \"24px\",\n \"viewBox\": \"0 0 28.046 28.046\",\n \"xml:space\": \"preserve\"\n }\n }, [_c('g', [_c('g', [_c('rect', {\n attrs: {\n \"y\": \"4.877\",\n \"width\": \"3.161\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"20.631\",\n \"y\": \"4.877\",\n \"width\": \"3.165\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"5.141\",\n \"y\": \"4.877\",\n \"width\": \"1.579\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"14.995\",\n \"y\": \"4.877\",\n \"width\": \"1.581\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"17.766\",\n \"y\": \"4.877\",\n \"width\": \"1.576\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"24.486\",\n \"y\": \"4.877\",\n \"width\": \"1.584\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"27.255\",\n \"y\": \"4.877\",\n \"width\": \"0.791\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"8.765\",\n \"y\": \"4.877\",\n \"width\": \"4.746\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n })])])])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-4 cell\",\n staticStyle: {\n \"padding-left\": \"6px\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"stand\"\n }\n }, [_vm._v(\"Aktuel stand\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.aktuelstand),\n expression: \"data.aktuelstand\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"stand\"\n },\n domProps: {\n \"value\": (_vm.data.aktuelstand)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"aktuelstand\", $event.target.value)\n }\n }\n })])])]), _vm._v(\" \"), _c('label', {\n attrs: {\n \"for\": \"select\"\n }\n }, [_vm._v(\"Årsag til ny tid\\n \"), _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.nytidselect),\n expression: \"data.nytidselect\"\n }],\n attrs: {\n \"id\": \"select\"\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(_vm.data, \"nytidselect\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"value\": \"0\"\n }\n }, [_vm._v(\"Ingen valgt\")]), _vm._v(\" \"), _vm._l((_vm.timetypes), function(timetype) {\n return _c('option', {\n key: timetype.id,\n domProps: {\n \"selected\": _vm.selected,\n \"value\": timetype.id\n }\n }, [_vm._v(\"\\n \" + _vm._s(timetype.navn) + \"\\n \")])\n })], 2)]), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-12 cell\"\n }, [_c('button', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.saveInfo\n }\n }, [_vm._v(\"Gem\")])])])], 1), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.show == 'customer'),\n expression: \"show == 'customer'\"\n }],\n staticClass: \"content padding-bottom-big\"\n }, [_vm._m(1), _vm._v(\" \"), (_vm.filteredResult.kunde) ? _c('div', {\n staticClass: \"customer-info\"\n }, [_c('p', [_vm._v(_vm._s(_vm.filteredResult.kunde.navn))]), _vm._v(\" \"), _c('p', [_vm._v(_vm._s(_vm.filteredResult.adresse.vejnavn) + \" \" + _vm._s(_vm.filteredResult.adresse.husnummer) + \", \" + _vm._s(_vm.filteredResult.adresse.postnummer) + \" \" + _vm._s(_vm.filteredResult.adresse.by))]), _vm._v(\" \"), _c('p', [_vm._v(_vm._s(_vm.filteredResult.by))]), _vm._v(\" \"), (_vm.filteredResult.kunde.email != null || _vm.filteredResult.kunde.email != undefined) ? _c('p', [_vm._v(_vm._s(_vm.filteredResult.kunde.email))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult.kunde.email == null || _vm.filteredResult.kunde.email == undefined) ? _c('p', [_c('br'), _vm._v(\" \"), _c('label', {\n attrs: {\n \"for\": \"email\"\n }\n }, [_vm._v(\"Email\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.email),\n expression: \"data.email\"\n }],\n attrs: {\n \"type\": \"email\",\n \"id\": \"email\"\n },\n domProps: {\n \"value\": (_vm.data.email)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"email\", $event.target.value)\n }\n }\n })])]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult.kunde.mobil != null || _vm.filteredResult.kunde.mobil != undefined) ? _c('p', [_vm._v(_vm._s(_vm.filteredResult.kunde.mobil))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult.kunde.mobil == null || _vm.filteredResult.kunde.mobil == undefined) ? _c('p', [(_vm.filteredResult.kunde.email != null || _vm.filteredResult.kunde.email != undefined) ? _c('br') : _vm._e(), _vm._v(\" \"), _c('label', {\n attrs: {\n \"for\": \"phone\"\n }\n }, [_vm._v(\"Mobil\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.mobil),\n expression: \"data.mobil\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"phone\"\n },\n domProps: {\n \"value\": (_vm.data.mobil)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"mobil\", $event.target.value)\n }\n }\n })])]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult.kunde.email == null || _vm.filteredResult.kunde.email == undefined || _vm.filteredResult.kunde.mobil == null || _vm.filteredResult.kunde.mobil == undefined) ? _c('a', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.saveInfo\n }\n }, [_vm._v(\"Gem\")]) : _vm._e()]) : _vm._e(), _vm._v(\" \"), (!_vm.filteredResult.kunde) ? _c('div', {\n staticClass: \"customer-info no-info\"\n }, [_c('p', {\n staticClass: \"text-center\"\n }, [_vm._v(\"Der findes ingen oplysninger på kunden\")])]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.show == 'notes'),\n expression: \"show == 'notes'\"\n }],\n staticClass: \"content padding-bottom-big\"\n }, [_c('h5', [_vm._v(\"Noter\")]), _vm._v(\" \"), _c('textarea', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.note),\n expression: \"note\"\n }],\n attrs: {\n \"rows\": \"4\"\n },\n domProps: {\n \"value\": (_vm.note)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.note = $event.target.value\n }\n }\n }), _vm._v(\" \"), _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.noteselect),\n expression: \"noteselect\"\n }],\n attrs: {\n \"id\": \"select\"\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.noteselect = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, [_c('option', {\n attrs: {\n \"value\": \"-1\",\n \"disabled\": \"disabled\"\n }\n }, [_vm._v(\"Ingen valgt\")]), _vm._v(\" \"), _vm._l((_vm.notetypes), function(notetype) {\n return _c('option', {\n key: notetype.id,\n domProps: {\n \"value\": notetype.navn\n }\n }, [_vm._v(\"\\n \" + _vm._s(notetype.navn) + \"\\n \")])\n })], 2), _vm._v(\" \"), _c('button', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.saveInfo\n }\n }, [_vm._v(\"Gem\")])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.show == 'images'),\n expression: \"show == 'images'\"\n }],\n staticClass: \"content padding-bottom-big\"\n }, [_c('div', {\n staticClass: \"addFile\"\n }, [_c('input', {\n attrs: {\n \"type\": \"file\",\n \"name\": \"fileUpload\",\n \"accept\": \"image/*\",\n \"capture\": \"\"\n },\n on: {\n \"change\": _vm.gotUpload\n }\n }), _vm._v(\" \"), _c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"cloud_upload\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Tilføj billede\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"addScreenshot\"\n }, [(_vm.webcam.active) ? _c('div', [_c('web-cam', {\n ref: \"webcam\",\n attrs: {\n \"deviceId\": _vm.webcam.selectedCameraId,\n \"height\": 200\n },\n on: {\n \"cameras\": _vm.getAvailableCameras\n }\n }), _vm._v(\" \"), (_vm.webcam.availableCameras) ? _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.webcam.selectedCameraId),\n expression: \"webcam.selectedCameraId\"\n }],\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(_vm.webcam, \"selectedCameraId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"disabled\": \"\"\n }\n }, [_vm._v(\"Vælg Kamera\")]), _vm._v(\" \"), _vm._l((_vm.webcam.availableCameras), function(camera) {\n return _c('option', {\n key: camera.deviceId,\n domProps: {\n \"value\": camera.deviceId\n }\n }, [_vm._v(\"\\n \" + _vm._s(camera.label) + \"\\n \")])\n })], 2) : _vm._e(), _vm._v(\" \"), _c('button', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": function($event) {\n return _vm.capture_screenshot()\n }\n }\n }, [_vm._v(\"Tag screenshot\")])], 1) : _vm._e(), _vm._v(\" \"), _c('button', {\n staticClass: \"button\",\n on: {\n \"click\": function($event) {\n return _vm.toggleCamera()\n }\n }\n }, [_vm._v(_vm._s(_vm.webcam.text))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\"\n }, _vm._l((_vm.localImages), function(upload) {\n return _c('FormUpload', {\n key: upload.id || _vm.mongoid,\n attrs: {\n \"upload\": upload\n },\n on: {\n \"removeUpload\": function($event) {\n return _vm.doremoveUpload(upload.id)\n }\n }\n })\n }), 1)]), _vm._v(\" \"), _c('footer', [_c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"auto cell\",\n class: {\n 'active-item': _vm.show == 'booking'\n },\n on: {\n \"click\": _vm.goToBooking\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"date_range\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Booking\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"auto cell\",\n class: {\n 'active-item': _vm.show == 'customer'\n },\n on: {\n \"click\": _vm.goToCustomer\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"person\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Kunde\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"auto cell\",\n class: {\n 'active-item': _vm.show == 'notes'\n },\n on: {\n \"click\": _vm.goToNotes\n }\n }, [_c('svg', {\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Layer_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"width\": \"23px\",\n \"height\": \"25px\",\n \"viewBox\": \"0 0 128 128\",\n \"enable-background\": \"new 0 0 128 128\",\n \"xml:space\": \"preserve\"\n }\n }, [_c('g', [_c('g', [_c('path', {\n attrs: {\n \"d\": \"M8,112V16c0-4.414,3.594-8,8-8h80c4.414,0,8,3.586,8,8v47.031l8-8V16c0-8.836-7.164-16-16-16H16C7.164,0,0,7.164,0,16v96 c0,8.836,7.164,16,16,16h44v-8H16C11.594,120,8,116.414,8,112z M88,24H24v8h64V24z M88,40H24v8h64V40z M88,56H24v8h64V56z M24,80 h32v-8H24V80z M125.656,72L120,66.344c-1.563-1.563-3.609-2.344-5.656-2.344s-4.094,0.781-5.656,2.344l-34.344,34.344 C72.781,102.25,68,108.293,68,110.34L64,128l17.656-4c0,0,8.094-4.781,9.656-6.344l34.344-34.344 C128.781,80.188,128.781,75.121,125.656,72z M88.492,114.82c-0.453,0.43-2.02,1.488-3.934,2.707l-10.363-10.363 c1.063-1.457,2.246-2.922,2.977-3.648l25.859-25.859l11.313,11.313L88.492,114.82z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])]), _vm._v(\" \"), _c('p', [_vm._v(\"Noter\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"auto cell\",\n class: {\n 'active-item': _vm.show == 'images'\n },\n on: {\n \"click\": _vm.goToImages\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"camera_alt\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Billeder\")])])])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.overlay),\n expression: \"overlay\"\n }],\n staticClass: \"overlay\",\n attrs: {\n \"data-toggle\": \"bottommenu\",\n \"aria-controls\": \"bottommenu\"\n },\n on: {\n \"click\": _vm.closeMenu\n }\n }), _vm._v(\" \"), (_vm.deviation === true) ? _c('div', {\n staticClass: \"alert-message\"\n }, [_c('div', {\n staticClass: \"align-alert-item\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"warning\")]), _vm._v(\" \"), _c('h5', [_vm._v(\"Der er en afvigelse på mere end \" + _vm._s(_vm.maxDeviation) + \"%\")]), _vm._v(\" \"), _c('button', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.closeAlert\n }\n }, [_vm._v(\"Luk\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.popup == true) ? _c('div', {\n staticClass: \"popup-message\"\n }, [_vm._m(2)]) : _vm._e()])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"right\"\n }, [_c('i', {\n staticClass: \"material-icons\",\n staticStyle: {\n \"visibility\": \"hidden\"\n }\n }, [_vm._v(\"receipt\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h5', [_vm._v(\"Kundeoplysninger   \"), _c('i', {\n staticClass: \"material-icons person-icon\"\n }, [_vm._v(\"person\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"align-item\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"check_circle\")]), _vm._v(\" \"), _c('h5', [_vm._v(\"Gemt!\")])])\n}]}\n\n/***/ }),\n\n/***/ 1045:\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n\n/***/ 234:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,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\"\n\n/***/ }),\n\n/***/ 238:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 494:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_router__ = __webpack_require__(1015);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__pages_init__ = __webpack_require__(999);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__pages_init___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__pages_init__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__pages_velkommen__ = __webpack_require__(1003);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__pages_velkommen___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__pages_velkommen__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__pages_projekter__ = __webpack_require__(1002);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__pages_projekter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__pages_projekter__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__pages_projekt__ = __webpack_require__(1001);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__pages_projekt___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__pages_projekt__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__pages_kort__ = __webpack_require__(1000);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__pages_kort___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__pages_kort__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__pages_default__ = __webpack_require__(998);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__pages_default___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__pages_default__);\n\n\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_1_vue_router__[\"a\" /* default */]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_1_vue_router__[\"a\" /* default */]({\n routes: [{\n path: '/',\n name: 'default',\n component: __WEBPACK_IMPORTED_MODULE_7__pages_default___default.a\n }, {\n path: '/init/:key',\n name: 'init',\n component: __WEBPACK_IMPORTED_MODULE_2__pages_init___default.a,\n params: { key: '' }\n }, {\n path: '/velkommen',\n name: 'velkommen',\n component: __WEBPACK_IMPORTED_MODULE_3__pages_velkommen___default.a\n }, {\n path: '/projekter',\n name: 'projekter',\n component: __WEBPACK_IMPORTED_MODULE_4__pages_projekter___default.a\n }, {\n path: '/projekt/:id',\n name: 'projekt',\n params: { id: '' },\n component: __WEBPACK_IMPORTED_MODULE_5__pages_projekt___default.a\n }, {\n path: '/kort',\n name: 'kort',\n component: __WEBPACK_IMPORTED_MODULE_6__pages_kort___default.a\n }]\n // mode: 'history'\n}));\n\n/***/ }),\n\n/***/ 495:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return store; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(1019);\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */]);\n\nvar store = new __WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */].Store({\n state: {\n notification: 0\n },\n getters: {\n notification: function notification(state) {\n return state.notification;\n }\n },\n mutations: {\n updateNotification: function updateNotification(state, payload) {\n state.notification = payload;\n }\n },\n actions: {\n updateNotification: function updateNotification(_ref, payload) {\n var commit = _ref.commit;\n\n commit('updateNotification', payload);\n localStorage.setItem('notification', payload);\n }\n }\n});\n\n/***/ }),\n\n/***/ 498:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 499:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 505:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAMAAAAhFXfZAAAC91BMVEVMaXEzeak2f7I4g7g3g7cua5gzeKg8hJo3grY4g7c3grU0gLI2frE0daAubJc2gbQwd6QzeKk2gLMtd5sxdKIua5g1frA2f7IydaM0e6w2fq41fK01eqo3grgubJgta5cxdKI1f7AydaQydaMxc6EubJgvbJkwcZ4ubZkwcJwubZgubJcydqUydKIxapgubJctbJcubZcubJcvbJYubJcvbZkubJctbJctbZcubJg2f7AubJcrbZcubJcubJcua5g3grY0fq8ubJcubJdEkdEwhsw6i88vhswuhcsuhMtBjMgthMsrg8srgss6is8qgcs8i9A9iMYtg8spgcoogMo7hcMngMonf8olfso4gr8kfck5iM8jfMk4iM8he8k1fro7itAgesk2hs8eecgzfLcofssdeMg0hc4cd8g2hcsxeLQbdsgZdcgxeLImfcszhM0vda4xgckzhM4xg84wf8Yxgs4udKsvfcQucqhUndROmdM1fK0wcZ8vb5w0eqpQm9MzeKhXoNVcpdYydKNWn9VZotVKltJFjsIwcJ1Rms9OlslLmtH///8+kc9epdYzd6dbo9VHkMM2f7FHmNBClM8ydqVcpNY9hro3gLM9hLczealQmcw3fa46f7A8gLMxc6I3eagyc6FIldJMl9JSnNRSntNNl9JPnNJFi75UnM9ZodVKksg8kM45jc09e6ZHltFBk883gbRBh7pDk9EwcaBzn784g7dKkcY2i81Om9M7j85Llc81is09g7Q4grY/j9A0eqxKmdFFltBEjcXf6fFImdBCiLxJl9FGlNFBi78yiMxVndEvbpo6js74+vx+psPP3+o/ks5HkcpGmNCjwdZCkNDM3ehYoNJEls+lxNkxh8xHks0+jdC1zd5Lg6r+/v/H2ufz9/o3jM3t8/edvdM/k89Th61OiLBSjbZklbaTt9BfptdjmL1AicBHj8hGk9FAgK1dkLNTjLRekrdClc/k7fM0icy0y9tgp9c4jc2NtM9Dlc8zicxeXZn3AAAAQ3RSTlMAHDdTb4yPA+LtnEQmC4L2EmHqB7XA0d0sr478x4/Yd5i1zOfyPkf1sLVq4Nh3FvjxopQ2/STNuFzUwFIwxKaejILpIBEV9wAABhVJREFUeF6s1NdyFEcY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\"\n\n/***/ }),\n\n/***/ 506:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=\"\n\n/***/ }),\n\n/***/ 507:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC\"\n\n/***/ }),\n\n/***/ 509:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(888)\n}\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(551),\n /* template */\n __webpack_require__(1005),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 52:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return mongoObjectId; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__config__ = __webpack_require__(562);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__clearQueue__ = __webpack_require__(89);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_localforage__ = __webpack_require__(897);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_localforage___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_localforage__);\n\n\n\n\nvar mongoObjectId = function mongoObjectId() {\n var timestamp = (new Date().getTime() / 1000 | 0).toString(16);\n return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {\n return (Math.random() * 16 | 0).toString(16);\n }).toLowerCase();\n};\n\nvar framework = {\n createStore: function createStore(name) {\n return __WEBPACK_IMPORTED_MODULE_2_localforage___default.a.createInstance({\n name: name,\n driver: __WEBPACK_IMPORTED_MODULE_2_localforage___default.a.INDEXEDDB\n });\n },\n getItem: function getItem(store, key) {\n return store.getItem(key);\n },\n setItem: function setItem(store, key, value) {\n return store.setItem(key, value);\n },\n clearStore: function clearStore(store) {\n return store.clear();\n },\n iterate: function iterate(store, callback) {\n return store.iterate(callback);\n },\n removeItem: function removeItem(store, key) {\n return store.removeItem(key);\n },\n length: function length(store) {\n return store.length();\n },\n keys: function keys(store) {\n return store.keys();\n }\n};\n\nvar SIOdal = function (storeNames) {\n\n \"use strict\";\n\n var stores = {};\n\n var dal = {\n createStore: function createStore(storeName) {\n\n stores[storeName] = framework.createStore(storeName);\n\n return stores[storeName];\n },\n getStores: function getStores() {\n return stores;\n },\n deleteStore: function deleteStore() {},\n clearStore: function clearStore(storeName) {\n if (typeof stores[storeName] == \"undefined\") {\n dal.createStore(storeName);\n }\n\n return framework.clearStore(stores[storeName]);\n },\n getStoreLength: function getStoreLength(storeName) {\n if (typeof stores[storeName] == \"undefined\") {\n dal.createStore(storeName);\n }\n\n return framework.length(stores[storeName]);\n },\n getStoreKeys: function getStoreKeys(storeName) {\n if (typeof stores[storeName] == \"undefined\") {\n dal.createStore(storeName);\n }\n\n return framework.keys(stores[storeName]);\n },\n clearAllStores: function clearAllStores() {\n var promises = [];\n\n for (var store in stores) {\n promises.push(function () {\n return framework.clearStore(stores[store]);\n });\n }\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__clearQueue__[\"a\" /* default */])(promises);\n },\n deleteAllStores: function deleteAllStores() {},\n getItem: function getItem(storeName, key) {\n\n if (typeof stores[storeName] == \"undefined\") {\n dal.createStore(storeName);\n }\n\n return framework.getItem(stores[storeName], key);\n },\n setItem: function setItem(storeName, key, value) {\n if (typeof stores[storeName] == \"undefined\") {\n dal.createStore(storeName);\n }\n\n return framework.setItem(stores[storeName], key, value);\n },\n iterate: function iterate(storeName, callback) {\n if (typeof stores[storeName] == \"undefined\") {\n dal.createStore(storeName);\n }\n\n return framework.iterate(stores[storeName], callback);\n },\n removeItem: function removeItem(storeName, key) {\n return framework.removeItem(stores[storeName], key);\n },\n cloneItem: function cloneItem(storeNameFrom, storeNameTo, key) {\n\n return framework.getItem(stores[storeNameFrom], key).then(function (result) {\n return framework.setItem(stores[storeNameTo], key, result);\n });\n },\n moveItem: function moveItem() {},\n init: function init(storeNames) {\n storeNames.forEach(function (name) {\n dal.createStore(name);\n });\n }\n\n };\n\n dal.init(storeNames);\n\n return dal;\n}(__WEBPACK_IMPORTED_MODULE_0__config__[\"a\" /* default */].stores);\n\nwindow.dal = SIOdal;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (SIOdal);\n\n\n\n/***/ }),\n\n/***/ 551:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__ = __webpack_require__(175);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker__ = __webpack_require__(235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__ = __webpack_require__(52);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__ = __webpack_require__(89);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_zangodb__ = __webpack_require__(236);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_zangodb___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_zangodb__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_helpmodal_vue__ = __webpack_require__(996);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_helpmodal_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__components_helpmodal_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__assets_image_novafos_jpg__ = __webpack_require__(990);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__assets_image_novafos_jpg___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__assets_image_novafos_jpg__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__assets_image_lyngbyTaarb_k_logo_png__ = __webpack_require__(988);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__assets_image_lyngbyTaarb_k_logo_png___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__assets_image_lyngbyTaarb_k_logo_png__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__assets_image_t_rnbyForsyning_logo_png__ = __webpack_require__(992);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__assets_image_t_rnbyForsyning_logo_png___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__assets_image_t_rnbyForsyning_logo_png__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__assets_image_vandOgAffald_logo_png__ = __webpack_require__(993);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__assets_image_vandOgAffald_logo_png___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__assets_image_vandOgAffald_logo_png__);\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar state = {\n date: ''\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"app\",\n components: {\n Datepicker: __WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker___default.a,\n 'help-modal': __WEBPACK_IMPORTED_MODULE_6__components_helpmodal_vue___default.a\n },\n data: function data() {\n return {\n version: '1.15',\n date: '28. september 2021',\n syncOverlay: false,\n overlay: false,\n state: state,\n errorMessage: '',\n activeStep: 0,\n totalSteps: 8,\n reloadProjekter: false,\n image: '',\n showModal: false\n };\n },\n\n computed: {\n notification: {\n get: function get() {\n return this.$store.getters.notification;\n },\n set: function set(value) {\n this.$store.dispatch('updateNotification', value);\n }\n }\n },\n methods: {\n showHelpModal: function showHelpModal() {\n this.overlay = false;\n this.showModal = true;\n },\n showMenu: function showMenu() {\n this.overlay = true;\n },\n closeMenu: function closeMenu() {\n this.overlay = false;\n },\n gotoMap: function gotoMap() {\n this.overlay = false;\n this.$router.push({\n name: 'kort'\n });\n },\n gotoProjects: function gotoProjects() {\n this.overlay = false;\n this.$router.push({\n name: 'projekter'\n });\n },\n gotoAbout: function gotoAbout() {\n this.overlay = false;\n },\n gotoSettings: function gotoSettings() {\n this.overlay = false;\n },\n syncData: function syncData() {\n var _this = this;\n var tempdata = [];\n var tempimages = [];\n var bookingId = [];\n var idArr = [];\n var promiseArray = [];\n var user = JSON.parse(this.$cookie.get('user'));\n var promises = [__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a.resolve(), __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a.resolve()];\n\n this.overlay = false;\n this.errorMessage = '';\n this.syncOverlay = true;\n\n if (navigator.onLine) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__[\"a\" /* default */])(promises).then(function () {\n _this.activeStep = 1;\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].iterate(\"MTTempData\", function (value, key, iterationNumber) {\n tempdata.push(value);\n }).then(function () {\n console.log(tempdata);\n resolve(tempdata);\n });\n });\n }).then(function () {\n _this.activeStep = 2;\n var tempdataPromises = [];\n\n var _loop = function _loop(i) {\n tempdataPromises.push(function () {\n console.log(\"tempdata test\", tempdata[i]);\n try {\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.post(window['url'] + 'v' + window['version'] + '/booking/gem', tempdata[i], { params: { 'montoernavn': user.navn } }).then(function (response) {\n return resolve(response);\n }).catch(function (err) {\n reject(new Error(\"Der skete en fejl!\")).then(function (err) {\n // not called\n }, function (err) {\n console.log(\"error\", err);\n _this.errorMessage = \"Der skete en fejl. Prøv igen\";\n });\n });\n }).then(function (response) {\n if (response.body > 0) {\n var id = parseInt(response.body);\n\n //var id = {old: tempdata[i].id, new: response.body};\n idArr.push(id);\n console.log(\"idArr\", idArr);\n return response.body;\n } else {\n return false;\n }\n });\n } catch (err) {\n console.log(\"err step 2 catch\");\n _this.errorMessage = \"Der gik noget galt. Prøv igen\";\n }\n });\n console.log(\"tempdataPromises\", tempdataPromises);\n };\n\n for (var i = 0; i < tempdata.length; i++) {\n _loop(i);\n }\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__[\"a\" /* default */])(tempdataPromises);\n //Aktiverdokumentation\n }).then(function () {\n _this.activeStep = 3;\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTTempData').then(function (result) {});\n }).then(function () {\n _this.activeStep = 4;\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].iterate(\"MTTempImages\", function (value, key, iterationNumber) {\n tempimages.push(value);\n }).then(function () {\n console.log(tempimages);\n resolve(tempimages);\n });\n });\n }).then(function () {\n var tempimagePromises = [];\n\n var _loop2 = function _loop2(i) {\n tempimagePromises.push(function () {\n // Check if some of the images were added to a new project\n // if (idArr) {\n // idArr.forEach(function(item){\n // console.log(item);\n // if(item.old == tempimages[i].projectId){\n // tempimages[i].projectId = item.new;\n // }\n // });\n // console.log(\"tempimages projectID after\", tempimages[i].projectId);\n // }\n\n var imageToUpload = {};\n imageToUpload.bookingId = tempimages[i].projectId;\n imageToUpload.base64Data = tempimages[i].base64;\n imageToUpload.filnavn = tempimages[i].fileName;\n console.log(\"imageToUpload\", imageToUpload);\n try {\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.post(window['url'] + 'v' + window['version'] + '/booking/gembillede', imageToUpload).then(function (response) {\n return resolve(response);\n }).catch(function (err) {\n reject(new Error(\"Der skete en fejl!\")).then(function (err) {\n // not called\n }, function (err) {\n console.log(\"error\", err);\n _this.errorMessage = \"Der skete en fejl. Prøv igen\";\n });\n });\n }).then(function (response) {\n if (response.body > 0) {\n return response.body;\n } else {\n _this.errorMessage = \"Der gik noget galt. Prøv igen\";\n return false;\n }\n });\n } catch (err) {\n console.log(\"err step 4 catch\", err);\n _this.error = err;\n _this.errorMessage = \"Der gik noget galt. Prøv igen\" + err;\n }\n });\n };\n\n for (var i = 0; i < tempimages.length; i++) {\n _loop2(i);\n }\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__[\"a\" /* default */])(tempimagePromises);\n }).then(function () {\n _this.activeStep = 5;\n if (idArr.length > 0) {\n console.log('idArr', idArr);\n try {\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.post('https://mobileservice.maalertjek.niras.dk/api/v1/booking/aktiverdokumentation', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default()(idArr)).then(function (response) {\n return resolve(response);\n }).catch(function (err) {\n reject(new Error(\"Der skete en fejl!\")).then(function (err) {\n // not called\n }, function (err) {\n console.log(\"error\", err);\n _this.errorMessage = \"Der skete en fejl. Prøv igen\";\n });\n });\n }).then(function (response) {\n console.log('response aktiverdokumentation', response);\n if (response.body > 0) {\n return response.body;\n } else {\n console.log(\"error\", response.body);\n return false;\n }\n });\n } catch (err) {\n console.log(\"err step 5 catch\", err);\n _this.errorMessage = \"Der gik noget galt. Prøv igen\" + err;\n }\n }\n }).then(function () {\n console.log(\"image sync done\");\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTTempImages').then(function (result) {});\n }).then(function () {\n _this.activeStep = 6;\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTBookingTypes').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTNoteTypes').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTPlacementTypes').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTSettings').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTTasks').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTTimeTypes').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].clearStore('MTUsers').then(function (result) {});\n }).then(function () {\n console.log(\"insert all data\");\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__[\"a\" /* default */])(promises).then(function () {\n _this.activeStep = 7;\n try {\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.get(window['url'] + 'v' + window['version'] + '/lister/allelister').then(function (response) {\n return resolve(response);\n }).catch(function (err) {\n reject(new Error(\"Der skete en fejl!\")).then(function (err) {\n // not called\n }, function (err) {\n console.log(\"error\", err);\n _this.errorMessage = \"Der skete en fejl. Prøv igen\";\n });\n });\n }).then(function (response) {\n console.log(\"response from step 7\", response);\n return response.body;\n }, function (response) {\n console.log(\"Der opstod en fejl\");\n return false;\n });\n } catch (err) {\n console.log(\"err step 7 catch\", err);\n _this.errorMessage = \"Der gik noget galt. Prøv igen\";\n }\n }).then(function (data) {\n if (data == undefined || data == false) {\n _this.errorMessage = \"Der gik noget galt. Prøv igen\";\n console.log(\"Der opstod en fejl\");\n } else {\n console.log(\"inserting into IndexedDB\", data.bookinger);\n var promiseArray = [];\n console.log(\"data\", data);\n\n data.bookinger.forEach(function (booking) {\n promiseArray.push(function () {\n return __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].setItem(\"MTTasks\", booking.id, booking).then(function () {\n //\n });\n });\n });\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].setItem(\"MTBookingTypes\", \"bookingtypes\", data.bookingTyper);\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].setItem(\"MTTimeTypes\", \"timetypes\", data.nyTidTyper);\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].setItem(\"MTNoteTypes\", \"notetypes\", data.bemaerkningTyper);\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].setItem(\"MTPlacementTypes\", \"placementtypes\", data.placeringTyper);\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].setItem(\"MTUsers\", \"users\", data.montoerer);\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__[\"a\" /* default */])(promiseArray);\n }\n }).then(function () {\n _this.activeStep = 8;\n console.log(\"insert settings\");\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__[\"a\" /* default */])(promises);\n try {\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.get('https://mobileservice.maalertjek.niras.dk/api/indstillinger').then(function (response) {\n return resolve(response);\n }).catch(function (err) {\n reject(new Error(\"Der skete en fejl!\")).then(function (err) {\n // not called\n }, function (err) {\n console.log(\"error\", err);\n _this.errorMessage = \"Der skete en fejl. Prøv igen\";\n });\n });\n }).then(function (response) {\n return response.body;\n }, function (response) {\n return false;\n });\n } catch (err) {\n console.log(\"err step 8 catch\", err);\n _this.errorMessage = \"Der gik noget galt. Prøv igen\" + err;\n }\n }).then(function (data) {\n if (data == undefined || data == false) {\n _this.errorMessage = \"Der skete en fejl\";\n console.log(\"der opstod en fejl\");\n } else {\n window['url'] = data.serviceUrl;\n window['version'] = data.serviceVersion;\n return __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].setItem(\"MTSettings\", \"settings\", data);\n }\n }).then(function () {\n _this.syncOverlay = false;\n _this.activeStep = 0;\n _this.errorMessage = '';\n _this.$store.dispatch('updateNotification', 0);\n localStorage.clear();\n\n _this.$router.push({\n name: 'default'\n });\n\n // hent nyt data på projektsiden, så listen opdatere\n });\n });\n } else {\n _this.errorMessage = \"Du har ikke noget internet\";\n setTimeout(function () {\n _this.syncOverlay = false;\n _this.activeStep = 0;\n _this.errorMessage = '';\n }, 5000);\n }\n },\n logout: function logout() {\n this.overlay = false;\n this.$router.push({\n name: 'init',\n params: { key: 'Key' }\n });\n }\n },\n mounted: function mounted() {\n var _this = this;\n $(document).foundation();\n\n window['apikey'] = this.$cookie.get('apikey');\n window['user'] = JSON.parse(this.$cookie.get('user'));\n window['url'] = this.$cookie.get('url');\n window['version'] = this.$cookie.get('version');\n\n if (!this.$cookie.get('downloaded')) {\n if (this.$route.name == 'init') {\n window['apikey'] = this.$route.params.key;\n console.log(\"apikey\", window['apikey']);\n\n this.$router.push({\n name: 'init',\n key: window['apikey']\n });\n } else {\n this.$router.push({\n name: 'default'\n });\n }\n } else {\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].getItem('MTSettings', 'settings').then(function (result) {\n if (result.firmanavn == \"Novafos\") {\n this.image = __WEBPACK_IMPORTED_MODULE_7__assets_image_novafos_jpg___default.a;\n }\n if (result.firmanavn == \"Lyngby-Taarnbæk Forsyning\") {\n this.image = __WEBPACK_IMPORTED_MODULE_8__assets_image_lyngbyTaarb_k_logo_png___default.a;\n }\n if (result.firmanavn == \"Taarnby Forsyning\") {\n this.image = __WEBPACK_IMPORTED_MODULE_9__assets_image_t_rnbyForsyning_logo_png___default.a;\n }\n if (result.firmanavn == \"Vand & Affald\") {\n this.image = __WEBPACK_IMPORTED_MODULE_10__assets_image_vandOgAffald_logo_png___default.a;\n }\n });\n\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].getItem('MTSettings', 'settings').then(function (result) {\n _this.image = result.logoUrl;\n });\n\n _this.$store.dispatch('updateNotification', localStorage.getItem('notification') == null ? 0 : localStorage.getItem('notification'));\n }\n }\n});\n\n/***/ }),\n\n/***/ 552:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__ = __webpack_require__(52);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__js_Sync_clearQueue__ = __webpack_require__(89);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__assets_image_image_png__ = __webpack_require__(986);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__assets_image_image_png___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__assets_image_image_png__);\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'formUpload',\n props: ['upload'],\n data: function data() {\n return {\n dataSource: undefined,\n dataSourceFull: undefined,\n images: []\n };\n },\n mounted: function mounted() {\n var _this = this;\n $(document).foundation();\n\n if (_this.upload.thumb != null && _this.upload.thumb != undefined) {\n var result = _this.upload;\n var dataView = new DataView(result.thumb || result.data);\n var blob = new Blob([dataView], { type: result.type });\n\n _this.dataSource = URL.createObjectURL(blob);\n\n var dataViewFull = new DataView(result.data);\n var blobFull = new Blob([dataViewFull], { type: result.type });\n\n _this.dataSourceFull = URL.createObjectURL(blobFull);\n } else {\n _this.dataSource = __WEBPACK_IMPORTED_MODULE_2__assets_image_image_png___default.a; // <-- Placeholder\n }\n },\n\n methods: {\n removeUpload: function removeUpload(id) {\n var _this = this;\n\n URL.revokeObjectURL(_this.dataSource);\n\n console.log(\"removeUpload\", id);\n\n _this.$emit('removeUpload', id);\n }\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n URL.revokeObjectURL(_this.dataSource);\n URL.revokeObjectURL(_this.dataSourceFull);\n }\n});\n\n/***/ }),\n\n/***/ 553:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__ = __webpack_require__(580);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator__ = __webpack_require__(578);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_defineProperty__ = __webpack_require__(579);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_defineProperty__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue2_leaflet__ = __webpack_require__(1018);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue2_leaflet___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_vue2_leaflet__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_leaflet_dist_leaflet_css__ = __webpack_require__(238);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_leaflet_dist_leaflet_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_leaflet_dist_leaflet_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__js_Sync_dal__ = __webpack_require__(52);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_proj4_dist_proj4_src__ = __webpack_require__(239);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_proj4_dist_proj4_src___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_proj4_dist_proj4_src__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__js_proj4js__ = __webpack_require__(563);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__assets_image_green_circle_svg__ = __webpack_require__(985);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__assets_image_green_circle_svg___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__assets_image_green_circle_svg__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__assets_image_red_circle_svg__ = __webpack_require__(991);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__assets_image_red_circle_svg___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__assets_image_red_circle_svg__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__assets_image_black_circle_svg__ = __webpack_require__(984);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__assets_image_black_circle_svg___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__assets_image_black_circle_svg__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'mapcomponent',\n components: {\n 'v-map': __WEBPACK_IMPORTED_MODULE_4_vue2_leaflet___default.a.Map,\n 'v-tilelayer': __WEBPACK_IMPORTED_MODULE_4_vue2_leaflet___default.a.TileLayer,\n 'v-popup': __WEBPACK_IMPORTED_MODULE_4_vue2_leaflet___default.a.Popup,\n 'v-marker': __WEBPACK_IMPORTED_MODULE_4_vue2_leaflet___default.a.Marker,\n 'v-tooltip': __WEBPACK_IMPORTED_MODULE_4_vue2_leaflet___default.a.Tooltip\n },\n data: function data() {\n var _options;\n\n return {\n zoom: 14,\n center: [56.129172, 9.219482],\n url: '//{s}.tile.osm.org/{z}/{x}/{y}.png',\n attribution: '© OpenStreetMap contributors',\n markers: [],\n centerObj: [],\n unfinishedObj: [],\n options: (_options = { permanent: true, custom: true, className: 'tooltipBox' }, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_defineProperty___default()(_options, 'custom', true), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_defineProperty___default()(_options, 'dashOffset', \"\"), _options),\n minX: null,\n maxX: null,\n minY: null,\n maxY: null,\n doneLoading: false\n };\n },\n\n methods: {\n init: function init() {\n var _this = this;\n\n return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator___default()( /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee() {\n var marker, items, user, promiseIterateTempData, promiseIterateTasks, cookie, result, _i, value, x, y, popupContent, source, dest, point, setIcon, iteration, _i2, lat, lng, calcX, calcY, newCenterObject;\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this.doneLoading = false;\n marker = [];\n items = [];\n user = JSON.parse(_this.$cookie.get('user'));\n promiseIterateTempData = __WEBPACK_IMPORTED_MODULE_6__js_Sync_dal__[\"a\" /* default */].iterate('MTTempData', function (value, key, iterationNumber) {\n if (value.montoerId === user.id) {\n var date = moment(value.fratid).format('YYYYMMDD');\n\n if (window['selectedDate'] !== null) {\n if (date.includes(window['selectedDate'])) {\n items.push(value);\n }\n } else {\n var now = moment(new Date()).format('YYYYMMDD');\n\n if (date.includes(now)) {\n items.push(value);\n }\n }\n }\n });\n _context.prev = 5;\n _context.next = 8;\n return promiseIterateTempData;\n\n case 8:\n promiseIterateTasks = __WEBPACK_IMPORTED_MODULE_6__js_Sync_dal__[\"a\" /* default */].iterate('MTTasks', function (value, key, iterationNumber) {\n var date = moment(value.fratid).format('YYYYMMDD');\n var selected = '';\n\n if (value.montoerId == user.id) {\n if (window['selectedDate'] !== null && window['selectedDate'] !== '') {\n selected = window['selectedDate'];\n } else {\n selected = moment(new Date()).format('YYYYMMDD');\n }\n\n if (date.includes(selected)) {\n var tempItems = items;\n var existsBool = false;\n tempItems.forEach(function (item) {\n if (item.id === value.id) {\n existsBool = true;\n }\n });\n\n if (!existsBool) {\n items.push(value);\n existsBool = false;\n }\n }\n }\n });\n _context.prev = 9;\n _context.next = 12;\n return promiseIterateTasks;\n\n case 12:\n cookie = _this.$cookie.get('apikey');\n _context.prev = 13;\n\n // const promiseCurrentPosition = new Promise((resolve, reject) => {\n // navigator.geolocation.getCurrentPosition(position => {\n // resolve(position.coords)\n // })\n // })\n\n // const currentPosition = await promiseCurrentPosition\n\n console.log('step 1: result', items);\n // console.log('currentPosition', currentPosition)\n\n result = items.sort(function (a, b) {\n return new Date(a.fratid) - new Date(b.fratid);\n });\n\n\n for (_i in result) {\n value = result[_i];\n\n\n if (value.adresse.koordinater === null) {\n console.log('koordinat er null');\n } else if (value.adresse.koordinater.x === null || value.adresse.koordinater.y === null || value.adresse.koordinater.x === 0 || value.adresse.koordinater.y === 0) {\n console.log('koordinat er null');\n } else {\n x = value.adresse.koordinater.x;\n y = value.adresse.koordinater.y;\n popupContent = '';\n\n\n __WEBPACK_IMPORTED_MODULE_8__js_proj4js__[\"a\" /* default */].defs['EPSG:4326'] = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs';\n __WEBPACK_IMPORTED_MODULE_8__js_proj4js__[\"a\" /* default */].defs['EPSG:25832'] = '+title= ETRF89 / UTM zone 32N EPSG:25832 +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs';\n\n source = new __WEBPACK_IMPORTED_MODULE_8__js_proj4js__[\"a\" /* default */].Proj('EPSG:25832');\n dest = new __WEBPACK_IMPORTED_MODULE_8__js_proj4js__[\"a\" /* default */].Proj('EPSG:4326');\n point = new __WEBPACK_IMPORTED_MODULE_8__js_proj4js__[\"a\" /* default */].Point(x, y);\n\n\n __WEBPACK_IMPORTED_MODULE_8__js_proj4js__[\"a\" /* default */].transform(source, dest, point);\n\n popupContent = '

' + value.bookingTypeNavn + '

';\n popupContent += 'Adresse:
' + value.adresse.vejnavn + ' ' + value.adresse.husnummer;\n if (value.adresse.etage == null || value.adresse.etage == undefined || value.adresse.etage == '') {\n // No data\n } else {\n popupContent += '. ' + value.adresse.etage;\n }\n if (value.adresse.doer == null || value.adresse.doer == undefined || value.adresse.doer == '') {\n // No data\n } else {\n popupContent += ' - ' + value.adresse.doer;\n }\n popupContent += ', ' + value.adresse.postnummer + ' ' + value.adresse.by;\n popupContent += '
';\n popupContent += 'Tidspunkt:
' + moment(value.fratid).format('HH:mm') + ' - ' + moment(value.tiltid).format('HH:mm');\n popupContent += '
';\n popupContent += 'Kunde:' + '
' + value.kunde.navn;\n popupContent += '
';\n popupContent += 'Gå til booking';\n // popupContent += `Rutevejledning`\n\n setIcon = function setIcon(item) {\n if (item.maalerStand !== undefined && item.maalerStand !== \"\" && item.maalerStand !== null) {\n return new L.icon({\n iconUrl: __WEBPACK_IMPORTED_MODULE_9__assets_image_green_circle_svg___default.a,\n iconSize: [25, 25],\n iconAnchor: [12.5, 12.5]\n });\n } else if (item.nytMaalernummer !== null && item.nytMaalernummer !== \"\") {\n return new L.icon({\n iconUrl: __WEBPACK_IMPORTED_MODULE_11__assets_image_black_circle_svg___default.a,\n iconSize: [25, 25],\n iconAnchor: [12.5, 12.5]\n });\n } else if (item.nytidTypeId > 0) {\n return new L.icon({\n iconUrl: __WEBPACK_IMPORTED_MODULE_10__assets_image_red_circle_svg___default.a,\n iconSize: [25, 25],\n iconAnchor: [12.5, 12.5]\n });\n } else {\n return new L.icon({\n iconUrl: __WEBPACK_IMPORTED_MODULE_11__assets_image_black_circle_svg___default.a,\n iconSize: [25, 25],\n iconAnchor: [12.5, 12.5]\n });\n }\n };\n\n iteration = parseInt(_i) + 1;\n\n\n marker.push({\n coordinates: L.latLng(point.y, point.x),\n popup: popupContent,\n tooltip: iteration.toString(),\n icon: setIcon(value),\n stroke: false,\n weight: 0,\n opacity: 1,\n nyMaalerStand: value.nyMaalerStand,\n nytMaalernummer: value.nytMaalernummer,\n sidsteaflaesning: value.sidsteaflaesning,\n maalerStand: value.maalerStand,\n nytidTypeId: value.nytidTypeId,\n value: value\n });\n }\n }\n\n if (marker.length > 0) {\n console.log('if marker.length > 0', marker.length);\n _this.markers = marker;\n\n for (_i2 in marker) {\n if (marker[_i2].nyMaalerStand !== null && marker[_i2].nyMaalerStand !== \"\" && marker[_i2].nytMaalernummer !== null && marker[_i2].nytMaalernummer !== \"\" && marker[_i2].sidsteaflaesning > 0 && marker[_i2].sidsteaflaesning !== null && marker[_i2].sidsteaflaesning !== \"\" && marker[_i2].maalerStand !== undefined && marker[_i2].maalerStand != \"\" && marker[_i2].maalerStand !== null) {\n if (marker[_i2].nytidTypeId === undefined || marker[_i2].nytidTypeId === 0) {\n _this.centerObj.push(marker[_i2].coordinates);\n } else {\n // red color\n }\n } else if (marker[_i2].nytidTypeId > 0) {\n // red color\n } else {\n // black color\n _this.unfinishedObj.push(marker[_i2].coordinates);\n }\n }\n if (_this.unfinishedObj !== [] && _this.unfinishedObj[0] !== undefined) {\n lat = _this.unfinishedObj[0].lat;\n lng = _this.unfinishedObj[0].lng;\n\n console.log('this.center[lat, lng]', [lat, lng]);\n _this.center = [lat, lng];\n } else {\n if (_this.centerObj != []) {\n for (i in _this.centerObj) {\n if (_this.centerObj[i].lat < _this.minX || _this.minX == null) {\n _this.minX = _this.centerObj[i].lat;\n }\n if (_this.centerObj[i].lng < _this.minY || _this.minY == null) {\n _this.minY = _this.centerObj[i].lng;\n }\n if (_this.centerObj[i].lat > _this.maxX || _this.minX == null) {\n _this.maxX = _this.centerObj[i].lat;\n }\n if (_this.centerObj[i].lng > _this.maxY || _this.minX == null) {\n _this.maxY = _this.centerObj[i].lng;\n }\n }\n\n calcX = (_this.maxX - _this.minX) / 2 + _this.minX;\n calcY = (_this.maxY - _this.minY) / 2 + _this.minY;\n newCenterObject = [calcX, calcY];\n\n\n if (newCenterObject !== []) {\n console.log('this.center newCenterObject', newCenterObject);\n _this.center = newCenterObject;\n _this.zoom = 12;\n } else {\n console.log(\"else\");\n }\n } else {\n console.log(\"else wat\");\n }\n }\n } else {\n console.log('else this.center = default');\n _this.center = [56.129172, 9.219482];\n }\n _context.next = 23;\n break;\n\n case 20:\n _context.prev = 20;\n _context.t0 = _context['catch'](13);\n throw _context.t0;\n\n case 23:\n _context.next = 28;\n break;\n\n case 25:\n _context.prev = 25;\n _context.t1 = _context['catch'](9);\n throw _context.t1;\n\n case 28:\n _context.next = 33;\n break;\n\n case 30:\n _context.prev = 30;\n _context.t2 = _context['catch'](5);\n throw _context.t2;\n\n case 33:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, _this, [[5, 30], [9, 25], [13, 20]]);\n }))();\n },\n generateGoogleMapsLink: function generateGoogleMapsLink(adresse) {\n // let windowReference = window.open()\n // new Promise((resolve, reject) => {\n // navigator.geolocation.getCurrentPosition(position => {\n // resolve(position)\n // })\n // }).then(position => {\n // let url = `https://www.google.com/maps/dir/${position.coords.latitude},${position.coords.longitude}/${adresse.vejnavn}+${adresse.husnummer},+${adresse.postnummer}+${adresse.by}`\n // // windowReference.name = '_blank'\n // windowReference.location = url\n // })\n navigator.geolocation.getCurrentPosition(function (position) {\n var url = 'https://www.google.com/maps/dir/' + position.coords.latitude + ',' + position.coords.longitude + '/' + adresse.vejnavn + '+' + adresse.husnummer + ',+' + adresse.postnummer + '+' + adresse.by;\n window.open(url, '_blank');\n });\n }\n // init() {\n // var _this = this;\n // var marker = [];\n // var items = [];\n // var user = JSON.parse(this.$cookie.get('user'));\n\n // return new Promise(function (resolve, reject) {\n\n // DAL.iterate(\"MTTempData\", function (value, key, iterationNumber) {\n\n // if (value.montoerId == user.id) {\n // var date = moment(value.fratid).format('YYYYMMDD');\n\n // if (window['selectedDate'] != null) {\n // if (date.includes(window['selectedDate'])) {\n // items.push(value);\n // }\n // } else {\n // var now = moment(new Date()).format('YYYYMMDD');\n\n // if (date.includes(now)) {\n // items.push(value);\n // }\n // }\n // }\n\n // }).then(function () {\n // DAL.iterate(\"MTTasks\", function (value, key, iterationNumber) {\n // var date = moment(value.fratid).format('YYYYMMDD');\n // var selected = '';\n\n // if (value.montoerId == user.id) {\n // if (window['selectedDate'] != null) {\n // selected = window['selectedDate'];\n // } else {\n // selected = moment(new Date()).format('YYYYMMDD');\n // }\n\n // if (date.includes(selected)) {\n // var tempItems = items;\n // var existsBool = false;\n // tempItems.forEach(function(item){\n // if(item.id === value.id){\n // existsBool = true;\n // }\n // });\n\n // if(!existsBool){\n // items.push(value);\n // existsBool = false;\n // }\n // }\n // }\n // }).then(function () {\n // resolve(items)\n // })\n // })\n\n // }).then(function (result) {\n // return new Promise((resolve, reject) => {\n // navigator.geolocation.getCurrentPosition(currentPosition => {\n // currentPosition = currentPosition.coords\n // resolve({position: currentPosition, items: result})\n // })\n // })\n // }).then(function (object) {\n // return new Promise(function (resolve, reject) {\n // let result = object.items\n\n // result.sort(function(a, b) {\n // return new Date(a.fratid) - new Date(b.fratid);\n // });\n\n // for (var i in result) {\n\n // var value = result[i];\n\n // if (value.adresse.koordinater == null ) {\n // console.log(\"koordinat er null\");\n // } else if (value.adresse.koordinater.x == null || value.adresse.koordinater.y == null || value.adresse.koordinater.x == 0 || value.adresse.koordinater.y == 0) {\n // console.log(\"koordinat er null\");\n // } else {\n // console.log(\"if coordinates is defined\")\n // var x = value.adresse.koordinater.x;\n // var y = value.adresse.koordinater.y;\n // var popupContent = '';\n\n // Proj4js.defs[\"EPSG:4326\"] = \"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs\";\n // Proj4js.defs[\"EPSG:25832\"] = \"+title= ETRF89 / UTM zone 32N EPSG:25832 +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs\"\n\n // var source = new Proj4js.Proj(\"EPSG:25832\");\n // var dest = new Proj4js.Proj(\"EPSG:4326\");\n\n // var point = new Proj4js.Point(x, y);\n\n // Proj4js.transform(source, dest, point);\n\n // popupContent = '

' + value.bookingTypeNavn + '

'\n // popupContent += 'Adresse:
' + value.adresse.vejnavn + ' ' + value.adresse.husnummer;\n // if (value.adresse.etage == null || value.adresse.etage == undefined || value.adresse.etage == '') {\n // // No data\n // } else {\n // popupContent += '. ' + value.adresse.etage;\n // }\n // if (value.adresse.doer == null || value.adresse.doer == undefined || value.adresse.doer == '') {\n // // No data\n // } else {\n // popupContent += ' - ' + value.adresse.doer;\n // }\n // popupContent += ', ' + value.adresse.postnummer + ' ' + value.adresse.by;\n // popupContent += '
';\n // popupContent += 'Tidspunkt:
' + moment(value.fratid).format('HH:mm') + ' - ' + moment(value.tiltid).format('HH:mm');\n // popupContent += '
';\n // popupContent += 'Kunde:' + '
' + value.kunde.navn;\n // popupContent += '
';\n // popupContent += 'Gå til booking';\n // popupContent += `Rutevejledning`\n\n // var setIcon = function(item) {\n // if (\n // item.nyMaalerStand !== null && item.nyMaalerStand !== \"\"\n // && item.nytMaalernummer !== null && item.nytMaalernummer !== \"\"\n // && item.sidsteaflaesning > 0 && item.sidsteaflaesning !== null && item.sidsteaflaesning !== \"\"\n // && item.maalerStand !== undefined && item.maalerStand != \"\" && item.maalerStand !== null\n // ){\n // if (item.nytidTypeId === undefined || item.nytidTypeId === 0) {\n // return new L.icon({ \n // iconUrl: greenCircle,\n // iconSize: [25, 25],\n // iconAnchor: [12.5, 12.5]\n // })\n // } else if (item.nytidTypeId > 0) {\n // return new L.icon({\n // iconUrl: redCircle,\n // iconSize: [25, 25],\n // iconAnchor: [12.5, 12.5]\n // })\n // } else {\n // return new L.icon({\n // iconUrl: blackCircle,\n // iconSize: [25, 25],\n // iconAnchor: [12.5, 12.5]\n // })\n // }\n // } else if (item.nytidTypeId > 0) {\n // return new L.icon({\n // iconUrl: redCircle,\n // iconSize: [25, 25],\n // iconAnchor: [12.5, 12.5]\n // })\n // } else {\n // return new L.icon({\n // iconUrl: blackCircle,\n // iconSize: [25, 25],\n // iconAnchor: [12.5, 12.5]\n // })\n // }\n // }\n\n // var iteration = parseInt(i) + 1;\n\n // console.log(\"value\", value)\n\n // marker.push({\n // coordinates: L.latLng(point.y, point.x), \n // popup: popupContent, \n // tooltip: iteration.toString(),\n // icon: setIcon(value),\n // stroke: false,\n // weight: 0,\n // opacity: 1,\n // nyMaalerStand: value.nyMaalerStand,\n // nytMaalernummer: value.nytMaalernummer,\n // sidsteaflaesning: value.sidsteaflaesning,\n // maalerStand: value.maalerStand,\n // nytidTypeId: value.nytidTypeId\n // })\n // }\n // }\n // if (marker.length > 0) {\n // console.log(\"if marker.length > 0\")\n\n // _this.markers = marker;\n\n // for (i in marker) {\n // if (\n // marker[i].nyMaalerStand !== null && marker[i].nyMaalerStand !== \"\"\n // && marker[i].nytMaalernummer !== null && marker[i].nytMaalernummer !== \"\"\n // && marker[i].sidsteaflaesning > 0 && marker[i].sidsteaflaesning !== null && marker[i].sidsteaflaesning !== \"\"\n // && marker[i].maalerStand !== undefined && marker[i].maalerStand != \"\" && marker[i].maalerStand !== null\n // ) {\n // if (marker[i].nytidTypeId === undefined || marker[i].nytidTypeId === 0) {\n // _this.centerObj.push(marker[i].coordinates)\n // } else {\n // // red color\n // }\n // } else if (marker[i].nytidTypeId > 0) {\n // // red color\n // } else {\n // // black color\n // _this.unfinishedObj.push(marker[i].coordinates)\n // }\n // }\n\n // if (_this.unfinishedObj !== [] && _this.unfinishedObj[0] !== undefined) {\n // console.log(\"if unfinishedObj != []\")\n // console.log(_this.unfinishedObj)\n // _this.center = _this.unfinishedObj[0];\n // } else {\n\n // if (_this.centerObj != []) {\n // console.log(\"if centerObj\")\n // for (i in _this.centerObj) {\n // if (_this.centerObj[i].lat < _this.minX || _this.minX == null) {\n // _this.minX = _this.centerObj[i].lat;\n // }\n // if (_this.centerObj[i].lng < _this.minY || _this.minY == null) {\n // _this.minY = _this.centerObj[i].lng;\n // }\n // if (_this.centerObj[i].lat > _this.maxX || _this.minX == null) {\n // _this.maxX = _this.centerObj[i].lat;\n // }\n // if (_this.centerObj[i].lng > _this.maxY || _this.minX == null) {\n // _this.maxY = _this.centerObj[i].lng;\n // }\n // }\n\n // var calcX = ((_this.maxX - _this.minX) / 2) + _this.minX;\n // var calcY = ((_this.maxY - _this.minY) / 2) + _this.minY;\n // var newCenterObject = [calcX, calcY]\n\n // if (newCenterObject !== []) {\n // console.log(\"if newCenterObj\")\n // _this.center = newCenterObject;\n // _this.zoom = 12;\n // } else {\n // console.log(\"else\")\n // }\n // } else {\n // console.log(\"else wat\")\n // }\n // }\n // } else {\n // _this.center = [56.129172, 9.219482]\n // }\n // });\n // });\n // }\n\n },\n mounted: function mounted() {\n // var _this = this;\n $(document).foundation();\n $('header').show();\n // this.init().then(function (result) {\n // console.log(\"init after\", result)\n // if (result.length > 0) {\n // console.log(\"result\", result);\n // _this.markers = result;\n // _this.center = result[0].coordinates;\n // }\n // });\n },\n created: function created() {\n var _this2 = this;\n\n return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_asyncToGenerator___default()( /*#__PURE__*/__WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.mark(function _callee2() {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_regenerator___default.a.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return _this2.init();\n\n case 3:\n // let cookie = this.$cookie.get('apikey')\n // if (cookie === 'DBB06AEE-989F-4F9E-847A-DC5C97FAA94A') {\n // alert(this.center)\n // }\n // this.center = [56.129172, 9.219482]\n _this2.doneLoading = true;\n _context2.next = 10;\n break;\n\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2['catch'](0);\n\n console.log('error init map', _context2.t0);\n _this2.doneLoading = true;\n\n case 10:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, _this2, [[0, 6]]);\n }))();\n }\n});\n\n/***/ }),\n\n/***/ 554:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__ = __webpack_require__(52);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'helpmodal',\n data: function data() {\n return {\n overlay: false\n };\n },\n\n methods: {\n closeModal: function closeModal() {\n this.$emit('close');\n },\n clearAll: function clearAll() {\n var _this = this;\n\n this.overlay = true;\n setTimeout(function () {\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTBookingTypes').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTNoteTypes').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTPlacementTypes').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTSettings').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTTasks').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTTimeTypes').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTUsers').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTTempData').then(function (result) {});\n __WEBPACK_IMPORTED_MODULE_0__js_Sync_dal__[\"a\" /* default */].clearStore('MTTempImages').then(function (result) {});\n\n _this.$cookie.delete('downloaded');\n _this.$cookie.delete('url');\n _this.$cookie.delete('user');\n _this.$cookie.delete('version');\n\n _this.overlay = false;\n _this.$emit('close');\n\n _this.$router.push({\n name: 'default'\n });\n }, 3000);\n }\n }\n});\n\n/***/ }),\n\n/***/ 555:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_map__ = __webpack_require__(568);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_map__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_webrtc_adapter__ = __webpack_require__(240);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_webrtc_adapter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_webrtc_adapter__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__zxing_library__ = __webpack_require__(267);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__zxing_library___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__zxing_library__);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'modal',\n data: function data() {\n return {\n lastResult: null,\n finalResult: \"\",\n codeReader: null\n };\n },\n\n methods: {\n stopCamera: function stopCamera(e) {\n e.preventDefault();\n this.codeReader.reset();\n this.$emit(\"close\", this.finalResult, false);\n },\n cancelCamera: function cancelCamera(e) {\n e.preventDefault();\n this.codeReader.reset();\n this.$emit(\"close\", null, false);\n }\n },\n watch: {\n finalResult: function finalResult(val, oldVal) {\n if (oldVal != val) {\n console.log(\"oldVal\", oldVal);\n console.log(\"val\", val);\n }\n }\n },\n created: function created() {},\n mounted: function mounted() {\n try {\n var _this = this;\n $(document).foundation();\n\n var hints = new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_map___default.a();\n hints.set(__WEBPACK_IMPORTED_MODULE_2__zxing_library__[\"DecodeHintType\"].TRY_HARDER, true);\n\n var videoHtmlElementId = \"video\";\n var codeReader = new __WEBPACK_IMPORTED_MODULE_2__zxing_library__[\"BrowserBarcodeReader\"]();\n _this.codeReader = codeReader;\n\n codeReader.listVideoInputDevices().then(function (devices) {\n var handleDecodeResult = function handleDecodeResult(result, error) {\n if (result) {\n _this.finalResult = result.getText();\n }\n };\n codeReader.decodeFromVideoDevice(undefined, videoHtmlElementId, handleDecodeResult);\n });\n } catch (e) {\n console.log(e.message);\n _this.finalResult = e.message;\n }\n }\n});\n\n/***/ }),\n\n/***/ 556:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'startpage',\n data: function data() {\n return {\n msg: ''\n };\n },\n mounted: function mounted() {\n var _this = this;\n $(document).foundation();\n $('header').hide();\n setTimeout(function () {\n _this.$router.push({\n name: 'init',\n params: { key: 'Key' }\n });\n }, 100);\n }\n});\n\n/***/ }),\n\n/***/ 557:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__ = __webpack_require__(175);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__ = __webpack_require__(52);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__js_Sync_clearQueue__ = __webpack_require__(89);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_zangodb__ = __webpack_require__(236);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_zangodb___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_zangodb__);\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'init',\n data: function data() {\n return {\n step1: true,\n step2: false,\n step3: false,\n //key: '58255dfc-7963-46f5-9001-302da1f70327',\n //key: 'DBB06AEE-989F-4F9E-847A-DC5C97FAA94A',\n key: '',\n validated: false,\n user: '',\n selected: '',\n errorMessage: '',\n options: [],\n empty: true,\n showLoader: false,\n activeStep: 0,\n totalSteps: 1,\n downloading: false,\n url: '',\n message: ''\n };\n },\n\n methods: {\n gotoStep2: function gotoStep2() {\n this.step1 = false;\n this.step2 = true;\n this.step3 = false;\n this.errorMessage = \"\";\n },\n gotoStep1: function gotoStep1() {\n this.step1 = true;\n this.step2 = false;\n this.step3 = false;\n this.errorMessage = \"\";\n },\n validateKey: function validateKey() {\n this.downloading = true;\n var _this = this;\n var promiseArray = [];\n var promises = [__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a.resolve(), __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a.resolve()];\n window['apikey'] = this.key;\n if (navigator.onLine) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__js_Sync_clearQueue__[\"a\" /* default */])(promises).then(function () {\n try {\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.get('//mobileservice.maalertjek.niras.dk/api/indstillinger').then(function (response) {\n return resolve(response);\n }).catch(function (err) {\n return _this.errorMessage = \"Den angivne nøgle er forkert\";\n }, _this.downloading = false, reject);\n }).then(function (response) {\n return response.body;\n }, function (response) {\n _this.errorMessage = \"Den angivne nøgle er forkert\";\n _this.downloading = false;\n return false;\n });\n } catch (err) {\n console.log(\"err\");\n _this.errorMessage = \"Der skete en fejl. Prøv venligst igen\";\n }\n }).then(function (data) {\n if (data == undefined) {\n _this.errorMessage = \"Den angivne nøgle er forkert\";\n _this.downloading = false;\n } else {\n _this.downloading = true;\n window['url'] = data.serviceUrl;\n window['version'] = data.serviceVersion;\n return __WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__[\"a\" /* default */].setItem(\"MTSettings\", \"settings\", data);\n }\n }).then(function () {\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.get(window['url'] + 'v' + window['version'] + '/lister/montoerer').then(function (response) {\n return resolve(response);\n }).catch(function () {\n return _this.errorMessage = \"Der skete en fejl. Prøv venligst igen\";\n }, reject);\n }).then(function (response) {\n return response.body;\n }, function (response) {\n _this.errorMessage = \"Den angivne nøgle er forkert\";\n _this.downloading = false;\n return false;\n });\n }).then(function (data) {\n if (data == undefined) {\n _this.errorMessage = \"Den angivne nøgle er forkert\";\n _this.downloading = false;\n } else {\n _this.errorMessage = '';\n _this.validated = true;\n _this.options = data;\n _this.step1 = false;\n _this.step2 = true;\n _this.step3 = false;\n _this.errorMessage = \"\";\n _this.downloading = false;\n return __WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__[\"a\" /* default */].setItem(\"MTUsers\", \"users\", data);\n }\n });\n } else {\n _this.errorMessage = \"Du har ikke noget internet\";\n }\n },\n chooseUser: function chooseUser() {\n if (this.empty == false) {\n this.$cookie.set('url', window['url'], { expires: '20Y' });\n this.$cookie.set('version', window['version'], { expires: '20Y' });\n this.$cookie.set('apikey', window['apikey'], { expires: '20Y' });\n this.$cookie.set('user', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default()(window['user']), { expires: '20Y' });\n this.step1 = false;\n this.step2 = false;\n this.step3 = true;\n this.errorMessage = \"\";\n } else {\n this.errorMessage = \"Vælg en bruger i listen\";\n }\n },\n getServerData: function getServerData() {\n var _this = this;\n var promiseArray = [];\n this.showLoader = true;\n var promises = [__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a.resolve(), __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a.resolve()];\n\n // Check om der allerede findes noget i indexedDB\n // Slet hvis det findes\n\n if (navigator.onLine) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__js_Sync_clearQueue__[\"a\" /* default */])(promises).then(function () {\n var _this2 = this;\n\n _this.activeStep = 1;\n _this.message = \"Dette kan tage lidt tid...\";\n try {\n return new __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.get(window['url'] + 'v' + window['version'] + '/lister/allelister').then(function (response) {\n return resolve(response);\n }).catch(function () {\n return reject;\n });\n }).then(function (response) {\n return response.body;\n }, function (response) {\n _this2.message = \"\";\n _this2.errorMessage = \"Der opstod en fejl under installationen\";\n return false;\n });\n } catch (err) {\n console.log(\"err\", err);\n _this.errorMessage = \"Der skete en fejl. Prøv venligst igen\";\n }\n }).then(function (data) {\n if (data == undefined) {\n this.message = \"\";\n this.errorMessage = \"Der opstod en fejl under installationen\";\n } else {\n var promiseArray = [];\n\n data.bookinger.forEach(function (booking) {\n promiseArray.push(function () {\n return __WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__[\"a\" /* default */].setItem(\"MTTasks\", booking.id, booking).then(function () {});\n });\n });\n\n __WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__[\"a\" /* default */].setItem(\"MTBookingTypes\", \"bookingtypes\", data.bookingTyper);\n __WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__[\"a\" /* default */].setItem(\"MTTimeTypes\", \"timetypes\", data.nyTidTyper);\n __WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__[\"a\" /* default */].setItem(\"MTNoteTypes\", \"notetypes\", data.bemaerkningTyper);\n __WEBPACK_IMPORTED_MODULE_2__js_Sync_dal__[\"a\" /* default */].setItem(\"MTPlacementTypes\", \"placementtypes\", data.placeringTyper);\n\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__js_Sync_clearQueue__[\"a\" /* default */])(promiseArray);\n }\n }).then(function () {\n _this.showLoader = false;\n _this.message = \"\";\n _this.$cookie.set('downloaded', true, { expires: '1Y' });\n _this.$router.push({\n name: 'projekter'\n });\n });\n } else {\n _this.errorMessage = \"Du har ikke noget internet\";\n }\n }\n },\n watch: {\n selected: function selected(val, oldVal) {\n if (oldVal != val) {\n window['user'] = { navn: val.navn, id: val.id };\n if (val != '') {\n this.empty = false;\n this.errorMessage = '';\n } else {\n ;\n this.empty = true;\n }\n }\n }\n },\n mounted: function mounted() {\n $(document).foundation();\n $('header').hide();\n\n console.log(\"mounted\", this.$route.params.key);\n\n var _this = this;\n if (this.$route.params.key) {\n if (this.$cookie.get('apikey')) {\n console.log(\"got key from cookie\");\n this.key = this.$cookie.get('apikey');\n } else if (this.$route.params.key != \"Key\") {\n this.key = this.$route.params.key;\n } else {\n this.key = \"\";\n }\n }\n\n if (this.$cookie.get('downloaded')) {\n _this.$router.push({\n name: 'projekter'\n });\n } else {\n console.log(\"app isn't downloaded\");\n }\n }\n});\n\n/***/ }),\n\n/***/ 558:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuejs_datepicker__ = __webpack_require__(235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuejs_datepicker___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vuejs_datepicker__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_MapComponent_vue__ = __webpack_require__(995);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_MapComponent_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__components_MapComponent_vue__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\nvar state = {\n date: ''\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'kort',\n components: {\n mapcomponent: __WEBPACK_IMPORTED_MODULE_1__components_MapComponent_vue___default.a,\n Datepicker: __WEBPACK_IMPORTED_MODULE_0_vuejs_datepicker___default.a\n },\n data: function data() {\n return {\n state: state,\n selectedDate: window['selectedDate'],\n today: new Date()\n };\n },\n\n filters: {\n moment: function (_moment) {\n function moment(_x) {\n return _moment.apply(this, arguments);\n }\n\n moment.toString = function () {\n return _moment.toString();\n };\n\n return moment;\n }(function (text) {\n return moment(text).format('DD[.] MMM YYYY');\n })\n },\n methods: {\n goBack: function goBack() {\n this.$router.go(-1);\n }\n },\n mounted: function mounted() {\n $(document).foundation();\n $('header').hide();\n var _this = this;\n\n if (!this.$cookie.get('downloaded')) {\n _this.$router.push({\n name: 'default'\n });\n }\n }\n});\n\n/***/ }),\n\n/***/ 559:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__ = __webpack_require__(52);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_FormUpload__ = __webpack_require__(994);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_FormUpload___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__components_FormUpload__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_FormUploadHandler__ = __webpack_require__(565);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_modal__ = __webpack_require__(997);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_modal___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__components_modal__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue_web_cam__ = __webpack_require__(1017);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vue_web_cam___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_vue_web_cam__);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n__webpack_require__(887);\n__webpack_require__(896);\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"projekt\",\n components: {\n FormUpload: __WEBPACK_IMPORTED_MODULE_2__components_FormUpload___default.a,\n modal: __WEBPACK_IMPORTED_MODULE_4__components_modal___default.a,\n WebCam: __WEBPACK_IMPORTED_MODULE_5_vue_web_cam__[\"WebCam\"]\n },\n mixins: [__WEBPACK_IMPORTED_MODULE_3__mixins_FormUploadHandler__[\"a\" /* default */]],\n data: function data() {\n return {\n showModal: false,\n images: \"\",\n filteredResult: \"\",\n show: \"booking\",\n noteselect: \"\",\n note: \"\",\n overlay: false,\n userEmail: \"\",\n difference: null,\n diff: '',\n localImages: [],\n timetypes: [],\n selected: null,\n notetypes: [],\n data: {\n målerplacering: \"\",\n tidligerestand: null,\n tidligereaktuelstand: null,\n nummer: null,\n aktuelstand: 0,\n nytidselect: 0,\n email: \"\",\n mobil: \"\"\n },\n popup: false,\n maxDeviation: null,\n deviation: false,\n webcam: {\n active: false,\n text: 'Aktiver kamera',\n availableCameras: null,\n selectedCameraId: null\n }\n };\n },\n\n methods: {\n scanClick: function scanClick() {\n this.showModal = true;\n },\n closeAlert: function closeAlert() {\n this.deviation = false;\n },\n childClicked: function childClicked(result, value) {\n var _this = this;\n var input = document.getElementById('number');\n\n if (value == false) {\n if (result != null) {\n _this.data.nummer = result;\n input.value = result;\n }\n }\n console.log(\"result\", result);\n this.showModal = false;\n },\n goBack: function goBack() {\n this.$router.go(-1);\n },\n gotoMap: function gotoMap() {\n this.$router.push({\n name: \"kort\"\n });\n },\n closeMenu: function closeMenu() {\n this.overlay = false;\n },\n receipt: function receipt() {\n this.overlay = true;\n },\n saveInfo: function saveInfo() {\n var data = this.filteredResult;\n var _this = this;\n\n this.popup = true;\n\n setTimeout(function () {\n _this.popup = false;\n }, 1500);\n\n data.maalerplacering = this.data.målerplacering;\n data.sidsteaflaesning = this.data.tidligerestand;\n data.maalerStand = this.data.tidligereaktuelstand;\n data.nytMaalernummer = this.data.nummer;\n data.nyMaalerStand = this.data.aktuelstand;\n data.bemaerkning = this.note;\n if (this.noteselect != \"\") {\n data.bemaerkning += '\\r\\n' + this.noteselect;\n }\n data.nytidTypeId = this.data.nytidselect;\n if (this.data.email != \"\") {\n data.kunde.email = this.data.email;\n }\n if (this.data.mobil != \"\") {\n data.kunde.mobil = this.data.mobil;\n }\n\n console.log('data', data);\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].setItem(\"MTTempData\", data.id, data).then(function () {\n _this.$store.dispatch('updateNotification', 1);\n });\n\n this.checkDeviation(); // check om der er en afvigelse på årsforbrug på mere end 15 % \n },\n removeImage: function removeImage(image) {\n console.log(\"remove image\", image);\n },\n goToBooking: function goToBooking() {\n this.show = \"booking\";\n },\n goToCustomer: function goToCustomer() {\n this.show = \"customer\";\n },\n goToNotes: function goToNotes() {\n this.show = \"notes\";\n },\n goToImages: function goToImages() {\n this.show = \"images\";\n },\n getServerData: function getServerData() {\n var _this = this;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var tasks = [];\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].iterate(\"MTTempData\", function (value, key, iterationNumber) {\n if (value.id == _this.$route.params.id) {\n tasks.push(value);\n }\n }).then(function () {\n if (tasks.length > 0) {\n console.log(\"found some data\");\n } else {\n return __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].iterate(\"MTTasks\", function (value, key, iterationNumber) {\n if (value.id == _this.$route.params.id) {\n console.log(\"found something inside tasks\", value);\n tasks.push(value);\n }\n });\n }\n }).then(function () {\n _this.filteredResult = tasks[0];\n _this.data.målerplacering = _this.filteredResult.maalerplacering;\n _this.data.tidligerestand = _this.filteredResult.sidsteaflaesning;\n _this.data.tidligereaktuelstand = _this.filteredResult.maalerStand;\n _this.data.aktuelstand = _this.filteredResult.nyMaalerStand;\n _this.data.nummer = _this.filteredResult.nytMaalernummer;\n _this.note = _this.filteredResult.bemaerkning;\n _this.data.nytidselect = _this.filteredResult.nytidTypeId;\n\n if (_this.data.nytidTypeId != undefined) {\n _this.selected = _this.data.nytidTypeId;\n }\n resolve(tasks);\n });\n }).then(function () {\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].iterate('MTTempImages', function (value, key, iterationNumber) {\n if (value.projectId == _this.filteredResult.id) {\n _this.localImages.push(value);\n }\n }).then(function () {\n console.log(\"images\", _this.localImages);\n resolve(_this.localImages);\n });\n });\n });\n },\n checkDeviation: function checkDeviation() {\n console.log('check deviation');\n this.beregnForbrugAfvigelseIProcentForDato(this.filteredResult.sidsteaflaesning, this.filteredResult.aflaesningsdato, this.filteredResult.maalerStand, this.filteredResult.fratid, this.filteredResult.aarsforbrug);\n },\n dateString2Date: function dateString2Date(date) {\n var dateFormat = new Date(date);\n var newDate = new Date(dateFormat.getFullYear(), dateFormat.getMonth(), dateFormat.getDate());\n return newDate;\n },\n beregnForbrug: function beregnForbrug(senesteStand, nyStand) {\n var forbrug = nyStand - senesteStand;\n return forbrug;\n },\n beregnForventetForbrugForDato: function beregnForventetForbrugForDato(senesteStandDatoTid, nyStandDatoTid, aarsforbrug) {\n var oneDayInMiliseconds = 86400000;\n var totalDays = Math.floor((this.dateString2Date(nyStandDatoTid) - this.dateString2Date(senesteStandDatoTid)) / oneDayInMiliseconds);\n var totalYears = totalDays / 365.0;\n var forventetForbrug = totalYears * aarsforbrug;\n return forventetForbrug;\n },\n beregnForbrugAfvigelseIProcent: function beregnForbrugAfvigelseIProcent(forventetForbrug, forbrug) {\n var forbrugAfvigelse = Math.abs(forbrug - forventetForbrug) / forventetForbrug;\n if (forbrugAfvigelse === Infinity || forbrugAfvigelse < 0) {\n forbrugAfvigelse = 0;\n }\n var forbrugAfvigelseIProcent = forbrugAfvigelse * 100;\n return forbrugAfvigelseIProcent;\n },\n beregnForbrugAfvigelseIProcentForDato: function beregnForbrugAfvigelseIProcentForDato(senesteStand, senesteStandDatoTid, nyStand, nyStandDatoTid, aarsforbrug) {\n var _this = this;\n var forventetForbrug = this.beregnForventetForbrugForDato(senesteStandDatoTid, nyStandDatoTid, aarsforbrug);\n console.log('forventetForbrug', forventetForbrug);\n var forbrug = this.beregnForbrug(senesteStand, nyStand);\n console.log('forbrug', forbrug);\n var forbrugAfvigelseIProcent = this.beregnForbrugAfvigelseIProcent(forventetForbrug, forbrug);\n console.log('forbrugAfvigelseIProcent', forbrugAfvigelseIProcent);\n var maxDeviation = null;\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].getItem('MTSettings', 'settings').then(function (result) {\n if (result == null) {\n console.log(\"Kunne ikke finde nogle indstillinger i IDB\");\n } else {\n console.log('maxAfvigelseFraForventetForbrug', result.maxAfvigelseFraForventetForbrug);\n _this.maxDeviation = result.maxAfvigelseFraForventetForbrug;\n }\n }).then(function () {\n if (_this.maxDeviation !== null && forbrugAfvigelseIProcent > _this.maxDeviation) {\n _this.deviation = true;\n console.log('Der er en afvigelse på mere end ' + _this.maxDeviation + '!');\n }\n });\n },\n capture_screenshot: function capture_screenshot() {\n this.gotScreenshot(this.$refs.webcam.capture());\n },\n toggleCamera: function toggleCamera() {\n if (this.webcam.active) {\n this.webcam.active = false;\n this.webcam.text = 'Aktiver kamera';\n this.webcam.availableCameras = null;\n this.webcam.selectedCameraId = null;\n } else {\n this.webcam.active = true;\n this.webcam.text = 'Deaktiver kamera';\n }\n },\n getAvailableCameras: function getAvailableCameras(list) {\n this.webcam.availableCameras = list;\n if (list.length > 1) {\n this.webcam.selectedCameraId = list[1].deviceId;\n } else {\n this.webcam.selectedCameraId = list[0].deviceId;\n }\n }\n },\n filters: {\n moment: function (_moment) {\n function moment(_x) {\n return _moment.apply(this, arguments);\n }\n\n moment.toString = function () {\n return _moment.toString();\n };\n\n return moment;\n }(function (text) {\n return moment(text).format('HH:mm');\n }),\n formattedDate: function formattedDate(text) {\n return moment(text).format('DD MMMM [kl.] HH:mm');\n },\n shorten: function shorten(text) {\n if (text.length > 28) {\n return text.substring(0, 28) + '...';\n }\n return text;\n }\n },\n beforeMount: function beforeMount() {\n this.getServerData();\n },\n mounted: function mounted() {\n var _this = this;\n $(document).foundation();\n $(\"header\").hide();\n\n _this.openScan = false;\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].getItem('MTTimeTypes', 'timetypes').then(function (result) {\n if (result == null) {\n console.log(\"Kunne ikke finde nogle tidstyper i IDB\");\n } else {\n _this.timetypes = result;\n }\n });\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].getItem('MTNoteTypes', 'notetypes').then(function (result) {\n if (result == null) {\n console.log(\"Kunne ikke finde nogle bemærkningstyper i IDB\");\n } else {\n _this.notetypes = result;\n }\n });\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].getItem('MTBookingTypes', 'bookingtypes').then(function (result) {\n if (result == null) {\n console.log(\"Kunne ikke finde nogle bookingtyper i IDB\");\n } else {\n _this.bookings = result;\n }\n });\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].getItem('MTPlacementTypes', 'placementtypes').then(function (result) {\n if (result == null) {\n console.log(\"Kunne ikke finde nogle placeringstyper i IDB\");\n } else {\n _this.placement = result;\n }\n });\n }\n});\n\n/***/ }),\n\n/***/ 560:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__ = __webpack_require__(175);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker__ = __webpack_require__(235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__ = __webpack_require__(52);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__js_Sync_clearQueue__ = __webpack_require__(89);\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\nvar _ = __webpack_require__(898);\n\n\n\n\nvar state = {\n date: ''\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'projekter',\n props: ['reloadData'],\n components: {\n Datepicker: __WEBPACK_IMPORTED_MODULE_2_vuejs_datepicker___default.a\n },\n data: function data() {\n return {\n selectedUser: '',\n projects: [],\n users: '',\n // Datepicker\n state: state,\n // Filtered\n filteredResult: [],\n createNew: false,\n showUserList: false\n };\n },\n\n computed: {\n projectView: function projectView() {\n return this.filteredResult;\n }\n },\n watch: {\n reloadData: function reloadData(oldVal, val) {\n if (oldVal != val) {\n this.getTasksFromIDB(window['selectedDate'], window['user'].id);\n }\n }\n },\n methods: {\n classObject: function classObject(item) {\n // console.log('item.nyMaalerStand !== null', item.nyMaalerStand !== null)\n // console.log('item.nyMaalerStand !== \"\"', item.nyMaalerStand !== \"\")\n // console.log('item.nytMaalernummer !== null', item.nytMaalernummer !== null)\n // console.log('item.nytMaalernummer !== \"\"', item.nytMaalernummer !== \"\")\n // console.log('item.sidsteaflaesning', item.sidsteaflaesning)\n // console.log('item.sidsteaflaesning > 0', item.sidsteaflaesning > 0)\n // console.log('item.sidsteaflaesning !== null', item.sidsteaflaesning !== null)\n // console.log('item.sidsteaflaesning !== \"\"', item.sidsteaflaesning !== \"\")\n // console.log('item.maalerStand !== undefined', item.maalerStand !== undefined)\n // console.log('item.nytidTypeId === undefined', item.nytidTypeId === undefined)\n // console.log('item.nytidTypeId === 0', item.nytidTypeId === 0)\n // console.log('item.nytidTypeId > 0', item.nytidTypeId > 0)\n // console.log('item end')\n\n if (item.maalerStand !== undefined && item.maalerStand !== \"\" && item.maalerStand !== null) {\n return {\n 'green-color': true\n };\n } else if (item.nytMaalernummer !== null && item.nytMaalernummer !== \"\") {\n return false;\n } else if (item.nytidTypeId > 0) {\n return {\n 'red-color': true\n };\n } else {\n return false;\n }\n },\n gotoProject: function gotoProject(project) {\n this.$router.push({\n name: 'projekt',\n params: { id: project.id }\n });\n },\n getSelectedDate: function getSelectedDate(date) {\n if (date == undefined || date == \"\" || date == null) {\n date = new Date();\n }\n var formatted = moment(date).format('YYYYMMDD');\n window['selectedDate'] = formatted;\n this.getTasksFromIDB(formatted, window['user'].id);\n },\n showUsers: function showUsers() {\n this.showUserList = !this.showUserList;\n //$('.user-list').toggle();\n },\n selectUser: function selectUser(user) {\n this.selectedUser = user;\n console.log('user', user);\n window['user'] = user;\n this.$cookie.delete('user');\n this.$cookie.set('user', __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()(window['user']), { expires: '20Y' });\n this.getSelectedDate(this.state.date);\n },\n getTasksFromIDB: function getTasksFromIDB(selectedDate, selectedUserId) {\n var _this = this;\n var tasks = [];\n\n new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n if (selectedDate == null || selectedDate == undefined || selectedDate == '') {\n selectedDate = moment(new Date()).format('YYYYMMDD');\n }\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].iterate(\"MTTempData\", function (value, key, iterationNumber) {\n var date = moment(value.fratid).format('YYYYMMDD');\n if (date.includes(selectedDate)) {\n if (value.montoerId == selectedUserId) {\n console.log(\"value\", value);\n tasks.push(value);\n }\n }\n }).then(function () {\n return __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].iterate(\"MTTasks\", function (value, key, iterationNumber) {\n var date = moment(value.fratid).format('YYYYMMDD');\n if (date.includes(selectedDate)) {\n var tempTasks = tasks;\n var existsBool = false;\n if (value.montoerId == selectedUserId) {\n tempTasks.forEach(function (item) {\n if (item.id === value.id) {\n existsBool = true;\n }\n });\n if (!existsBool) {\n tasks.push(value);\n existsBool = false;\n }\n }\n }\n }).then(function () {\n resolve(tasks);\n });\n });\n }).then(function (result) {\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n tasks.sort(function (a, b) {\n return new Date(a.fratid) - new Date(b.fratid);\n });\n if (selectedDate != null) {\n _this.projects = tasks;\n _this.sortByUser(tasks);\n } else {\n _this.projects = tasks;\n }\n resolve(tasks);\n });\n }).then(function () {\n _this.sortByUser(tasks);\n });\n },\n sortByUser: function sortByUser(data) {\n this.filteredResult = [];\n for (var i = 0; i < data.length; i++) {\n if (data[i].montoerId == this.selectedUser.id) {\n this.filteredResult.push(data[i]);\n }\n }\n }\n },\n filters: {\n moment: function (_moment) {\n function moment(_x) {\n return _moment.apply(this, arguments);\n }\n\n moment.toString = function () {\n return _moment.toString();\n };\n\n return moment;\n }(function (text) {\n return moment(text).format('HH:mm');\n }),\n shorten: function shorten(text) {\n if (text.length > 24) {\n return text.substring(0, 24) + '...';\n }\n return text;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n $(document).foundation();\n $('header').show();\n\n if (!this.$cookie.get('downloaded')) {\n _this.$router.push({\n name: 'default'\n });\n } else {\n var today = moment(new Date());\n window['user'] = JSON.parse(this.$cookie.get('user'));\n this.selectedUser = window['user'];\n window['apikey'] = this.$cookie.get('apikey');\n\n __WEBPACK_IMPORTED_MODULE_3__js_Sync_dal__[\"a\" /* default */].getItem('MTUsers', 'users').then(function (result) {\n if (result == null) {\n console.log(\"Kunne ikke finde nogle brugere i IDB\");\n } else {\n _this.users = result;\n }\n });\n\n // get tasks for the given date\n this.getTasksFromIDB(window['selectedDate'], window['user'].id);\n }\n }\n});\n\n/***/ }),\n\n/***/ 561:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__ = __webpack_require__(52);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__js_Sync_clearQueue__ = __webpack_require__(89);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_zangodb__ = __webpack_require__(236);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_zangodb___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_zangodb__);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: 'velkommen',\n data: function data() {\n return {\n showLoader: false,\n activeStep: 0,\n totalSteps: 2,\n errorMessage: ''\n };\n },\n\n methods: {\n getServerData: function getServerData() {\n var _this = this;\n var promiseArray = [];\n this.showLoader = true;\n var promises = [__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a.resolve(), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a.resolve()];\n\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__js_Sync_clearQueue__[\"a\" /* default */])(promises).then(function () {\n var _this2 = this;\n\n _this.activeStep = 1;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.get('https://mobileservice.maalertjek.niras.dk/api/indstillinger').then(function (response) {\n return resolve(response);\n }).catch(function () {\n return reject;\n });\n }).then(function (response) {\n console.log(\"response\", response.body);\n return response.body;\n }, function (response) {\n console.log(\"error\");\n _this2.errorMessage = \"Der opstod en fejl under installationen\";\n return false;\n });\n }).then(function (data) {\n if (data == undefined) {\n console.log(\"response is undefined\");\n this.errorMessage = \"Der opstod en fejl under installationen\";\n } else {\n console.log(\"inserting into IndexedDB\", data);\n return __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].setItem(\"MTSettings\", \"settings\", data);\n }\n }).then(function () {\n var _this3 = this;\n\n _this.activeStep = 2;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n _this.$http.get('https://mobileservice.maalertjek.niras.dk/api/v1/lister/allelister').then(function (response) {\n return resolve(response);\n }).catch(function () {\n return reject;\n });\n }).then(function (response) {\n console.log(\"response\", response.body);\n return response.body;\n }, function (response) {\n console.log(\"error\");\n _this3.errorMessage = \"Der opstod en fejl under installationen\";\n return false;\n });\n }).then(function (data) {\n if (data == undefined) {\n console.log(\"response is undefined\");\n this.errorMessage = \"Der opstod en fejl under installationen\";\n } else {\n console.log(\"inserting into IndexedDB\", data.bookinger);\n var promiseArray = [];\n\n data.bookinger.forEach(function (booking) {\n promiseArray.push(function () {\n return __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].setItem(\"MTTasks\", booking.id, booking).then(function () {\n console.log(\"Inserted task:\", booking.id);\n });\n });\n });\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__js_Sync_clearQueue__[\"a\" /* default */])(promiseArray);\n }\n }).then(function () {\n _this.showLoader = false;\n _this.$cookie.set('downloaded', true, { expires: '1y' });\n _this.$router.push({\n name: 'projekter'\n });\n });\n }\n },\n mounted: function mounted() {\n $(document).foundation();\n $('header').hide();\n\n if (this.$cookie.get('downloaded')) {\n this.$router.push({\n name: 'projekter'\n });\n }\n }\n});\n\n/***/ }),\n\n/***/ 562:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n stores: [\"MTTempImage\", \"MTSettings\", \"MTTasks\", \"MTTempData\"]\n});\n\n/***/ }),\n\n/***/ 563:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__ = __webpack_require__(271);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof__);\n\n/*\r\n proj4js.js -- Javascript reprojection library. \r\n \r\n Authors: Mike Adair madairATdmsolutions.ca\r\n Richard Greenwood richATgreenwoodmap.com\r\n Didier Richard didier.richardATign.fr\r\n Stephen Irons stephen.ironsATclear.net.nz\r\n Olivier Terral oterralATgmail.com\r\n \r\n License: \r\n Copyright (c) 2012, Mike Adair, Richard Greenwood, Didier Richard, \r\n Stephen Irons and Olivier Terral\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a\r\n copy of this software and associated documentation files (the \"Software\"),\r\n to deal in the Software without restriction, including without limitation\r\n the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n and/or sell copies of the Software, and to permit persons to whom the\r\n Software is furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included\r\n in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r\n THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r\n FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r\n DEALINGS IN THE SOFTWARE.\r\n \r\n Note: This program is an almost direct port of the C library PROJ.4.\r\n*/\n/* ======================================================================\r\n proj4js.js\r\n ====================================================================== */\n\n/*\r\nAuthor: Mike Adair madairATdmsolutions.ca\r\n Richard Greenwood rich@greenwoodmap.com\r\nLicense: LGPL as per: http://www.gnu.org/copyleft/lesser.html\r\n\r\n$Id: Proj.js 2956 2007-07-09 12:17:52Z steven $\r\n*/\n\n/**\r\n * Namespace: Proj4js\r\n *\r\n * Proj4js is a JavaScript library to transform point coordinates from one \r\n * coordinate system to another, including datum transformations.\r\n *\r\n * This library is a port of both the Proj.4 and GCTCP C libraries to JavaScript. \r\n * Enabling these transformations in the browser allows geographic data stored \r\n * in different projections to be combined in browser-based web mapping \r\n * applications.\r\n * \r\n * Proj4js must have access to coordinate system initialization strings (which\r\n * are the same as for PROJ.4 command line). Thes can be included in your \r\n * application using a \r\n\r\n def is a CS definition in PROJ.4 WKT format, for example:\r\n +proj=\"tmerc\" //longlat, etc.\r\n +a=majorRadius\r\n +b=minorRadius\r\n +lat0=somenumber\r\n +long=somenumber\r\n*/\nProj4js.defs = {\n // These are so widely used, we'll go ahead and throw them in\n // without requiring a separate .js file\n 'WGS84': \"+title=long/lat:WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\",\n 'EPSG:4326': \"+title=long/lat:WGS84 +proj=longlat +a=6378137.0 +b=6356752.31424518 +ellps=WGS84 +datum=WGS84 +units=degrees\",\n 'EPSG:4269': \"+title=long/lat:NAD83 +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\",\n 'EPSG:3875': \"+title= Google Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"\n};\nProj4js.defs['EPSG:3785'] = Proj4js.defs['EPSG:3875']; //maintain backward compat, official code is 3875\nProj4js.defs['GOOGLE'] = Proj4js.defs['EPSG:3875'];\nProj4js.defs['EPSG:900913'] = Proj4js.defs['EPSG:3875'];\nProj4js.defs['EPSG:102113'] = Proj4js.defs['EPSG:3875'];\n\nProj4js.common = {\n PI: 3.141592653589793238, //Math.PI,\n HALF_PI: 1.570796326794896619, //Math.PI*0.5,\n TWO_PI: 6.283185307179586477, //Math.PI*2,\n FORTPI: 0.78539816339744833,\n R2D: 57.29577951308232088,\n D2R: 0.01745329251994329577,\n SEC_TO_RAD: 4.84813681109535993589914102357e-6, /* SEC_TO_RAD = Pi/180/3600 */\n EPSLN: 1.0e-10,\n MAX_ITER: 20,\n // following constants from geocent.c\n COS_67P5: 0.38268343236508977, /* cosine of 67.5 degrees */\n AD_C: 1.0026000, /* Toms region 1 constant */\n\n /* datum_type values */\n PJD_UNKNOWN: 0,\n PJD_3PARAM: 1,\n PJD_7PARAM: 2,\n PJD_GRIDSHIFT: 3,\n PJD_WGS84: 4, // WGS84 or equivalent\n PJD_NODATUM: 5, // WGS84 or equivalent\n SRS_WGS84_SEMIMAJOR: 6378137.0, // only used in grid shift transforms\n\n // ellipoid pj_set_ell.c\n SIXTH: .1666666666666666667, /* 1/6 */\n RA4: .04722222222222222222, /* 17/360 */\n RA6: .02215608465608465608, /* 67/3024 */\n RV4: .06944444444444444444, /* 5/72 */\n RV6: .04243827160493827160, /* 55/1296 */\n\n // Function to compute the constant small m which is the radius of\n // a parallel of latitude, phi, divided by the semimajor axis.\n // -----------------------------------------------------------------\n msfnz: function msfnz(eccent, sinphi, cosphi) {\n var con = eccent * sinphi;\n return cosphi / Math.sqrt(1.0 - con * con);\n },\n\n // Function to compute the constant small t for use in the forward\n // computations in the Lambert Conformal Conic and the Polar\n // Stereographic projections.\n // -----------------------------------------------------------------\n tsfnz: function tsfnz(eccent, phi, sinphi) {\n var con = eccent * sinphi;\n var com = .5 * eccent;\n con = Math.pow((1.0 - con) / (1.0 + con), com);\n return Math.tan(.5 * (this.HALF_PI - phi)) / con;\n },\n\n // Function to compute the latitude angle, phi2, for the inverse of the\n // Lambert Conformal Conic and Polar Stereographic projections.\n // ----------------------------------------------------------------\n phi2z: function phi2z(eccent, ts) {\n var eccnth = .5 * eccent;\n var con, dphi;\n var phi = this.HALF_PI - 2 * Math.atan(ts);\n for (var i = 0; i <= 15; i++) {\n con = eccent * Math.sin(phi);\n dphi = this.HALF_PI - 2 * Math.atan(ts * Math.pow((1.0 - con) / (1.0 + con), eccnth)) - phi;\n phi += dphi;\n if (Math.abs(dphi) <= .0000000001) return phi;\n }\n alert(\"phi2z has NoConvergence\");\n return -9999;\n },\n\n /* Function to compute constant small q which is the radius of a \r\n parallel of latitude, phi, divided by the semimajor axis. \r\n ------------------------------------------------------------*/\n qsfnz: function qsfnz(eccent, sinphi) {\n var con;\n if (eccent > 1.0e-7) {\n con = eccent * sinphi;\n return (1.0 - eccent * eccent) * (sinphi / (1.0 - con * con) - .5 / eccent * Math.log((1.0 - con) / (1.0 + con)));\n } else {\n return 2.0 * sinphi;\n }\n },\n\n /* Function to eliminate roundoff errors in asin\r\n ----------------------------------------------*/\n asinz: function asinz(x) {\n if (Math.abs(x) > 1.0) {\n x = x > 1.0 ? 1.0 : -1.0;\n }\n return Math.asin(x);\n },\n\n // following functions from gctpc cproj.c for transverse mercator projections\n e0fn: function e0fn(x) {\n return 1.0 - 0.25 * x * (1.0 + x / 16.0 * (3.0 + 1.25 * x));\n },\n e1fn: function e1fn(x) {\n return 0.375 * x * (1.0 + 0.25 * x * (1.0 + 0.46875 * x));\n },\n e2fn: function e2fn(x) {\n return 0.05859375 * x * x * (1.0 + 0.75 * x);\n },\n e3fn: function e3fn(x) {\n return x * x * x * (35.0 / 3072.0);\n },\n mlfn: function mlfn(e0, e1, e2, e3, phi) {\n return e0 * phi - e1 * Math.sin(2.0 * phi) + e2 * Math.sin(4.0 * phi) - e3 * Math.sin(6.0 * phi);\n },\n\n srat: function srat(esinp, exp) {\n return Math.pow((1.0 - esinp) / (1.0 + esinp), exp);\n },\n\n // Function to return the sign of an argument\n sign: function sign(x) {\n if (x < 0.0) return -1;else return 1;\n },\n\n // Function to adjust longitude to -180 to 180; input in radians\n adjust_lon: function adjust_lon(x) {\n x = Math.abs(x) < this.PI ? x : x - this.sign(x) * this.TWO_PI;\n return x;\n },\n\n // IGNF - DGR : algorithms used by IGN France\n\n // Function to adjust latitude to -90 to 90; input in radians\n adjust_lat: function adjust_lat(x) {\n x = Math.abs(x) < this.HALF_PI ? x : x - this.sign(x) * this.PI;\n return x;\n },\n\n // Latitude Isometrique - close to tsfnz ...\n latiso: function latiso(eccent, phi, sinphi) {\n if (Math.abs(phi) > this.HALF_PI) return +Number.NaN;\n if (phi == this.HALF_PI) return Number.POSITIVE_INFINITY;\n if (phi == -1.0 * this.HALF_PI) return -1.0 * Number.POSITIVE_INFINITY;\n\n var con = eccent * sinphi;\n return Math.log(Math.tan((this.HALF_PI + phi) / 2.0)) + eccent * Math.log((1.0 - con) / (1.0 + con)) / 2.0;\n },\n\n fL: function fL(x, L) {\n return 2.0 * Math.atan(x * Math.exp(L)) - this.HALF_PI;\n },\n\n // Inverse Latitude Isometrique - close to ph2z\n invlatiso: function invlatiso(eccent, ts) {\n var phi = this.fL(1.0, ts);\n var Iphi = 0.0;\n var con = 0.0;\n do {\n Iphi = phi;\n con = eccent * Math.sin(Iphi);\n phi = this.fL(Math.exp(eccent * Math.log((1.0 + con) / (1.0 - con)) / 2.0), ts);\n } while (Math.abs(phi - Iphi) > 1.0e-12);\n return phi;\n },\n\n // Needed for Gauss Schreiber\n // Original: Denis Makarov (info@binarythings.com)\n // Web Site: http://www.binarythings.com\n sinh: function sinh(x) {\n var r = Math.exp(x);\n r = (r - 1.0 / r) / 2.0;\n return r;\n },\n\n cosh: function cosh(x) {\n var r = Math.exp(x);\n r = (r + 1.0 / r) / 2.0;\n return r;\n },\n\n tanh: function tanh(x) {\n var r = Math.exp(x);\n r = (r - 1.0 / r) / (r + 1.0 / r);\n return r;\n },\n\n asinh: function asinh(x) {\n var s = x >= 0 ? 1.0 : -1.0;\n return s * Math.log(Math.abs(x) + Math.sqrt(x * x + 1.0));\n },\n\n acosh: function acosh(x) {\n return 2.0 * Math.log(Math.sqrt((x + 1.0) / 2.0) + Math.sqrt((x - 1.0) / 2.0));\n },\n\n atanh: function atanh(x) {\n return Math.log((x - 1.0) / (x + 1.0)) / 2.0;\n },\n\n // Grande Normale\n gN: function gN(a, e, sinphi) {\n var temp = e * sinphi;\n return a / Math.sqrt(1.0 - temp * temp);\n },\n\n //code from the PROJ.4 pj_mlfn.c file; this may be useful for other projections\n pj_enfn: function pj_enfn(es) {\n var en = new Array();\n en[0] = this.C00 - es * (this.C02 + es * (this.C04 + es * (this.C06 + es * this.C08)));\n en[1] = es * (this.C22 - es * (this.C04 + es * (this.C06 + es * this.C08)));\n var t = es * es;\n en[2] = t * (this.C44 - es * (this.C46 + es * this.C48));\n t *= es;\n en[3] = t * (this.C66 - es * this.C68);\n en[4] = t * es * this.C88;\n return en;\n },\n\n pj_mlfn: function pj_mlfn(phi, sphi, cphi, en) {\n cphi *= sphi;\n sphi *= sphi;\n return en[0] * phi - cphi * (en[1] + sphi * (en[2] + sphi * (en[3] + sphi * en[4])));\n },\n\n pj_inv_mlfn: function pj_inv_mlfn(arg, es, en) {\n var k = 1. / (1. - es);\n var phi = arg;\n for (var i = Proj4js.common.MAX_ITER; i; --i) {\n /* rarely goes over 2 iterations */\n var s = Math.sin(phi);\n var t = 1. - es * s * s;\n //t = this.pj_mlfn(phi, s, Math.cos(phi), en) - arg;\n //phi -= t * (t * Math.sqrt(t)) * k;\n t = (this.pj_mlfn(phi, s, Math.cos(phi), en) - arg) * (t * Math.sqrt(t)) * k;\n phi -= t;\n if (Math.abs(t) < Proj4js.common.EPSLN) return phi;\n }\n Proj4js.reportError(\"cass:pj_inv_mlfn: Convergence error\");\n return phi;\n },\n\n /* meridinal distance for ellipsoid and inverse\r\n **\t8th degree - accurate to < 1e-5 meters when used in conjuction\r\n **\t\twith typical major axis values.\r\n **\tInverse determines phi to EPS (1e-11) radians, about 1e-6 seconds.\r\n */\n C00: 1.0,\n C02: .25,\n C04: .046875,\n C06: .01953125,\n C08: .01068115234375,\n C22: .75,\n C44: .46875,\n C46: .01302083333333333333,\n C48: .00712076822916666666,\n C66: .36458333333333333333,\n C68: .00569661458333333333,\n C88: .3076171875\n\n};\n\n/** datum object\r\n*/\nProj4js.datum = Proj4js.Class({\n\n initialize: function initialize(proj) {\n this.datum_type = Proj4js.common.PJD_WGS84; //default setting\n if (proj.datumCode && proj.datumCode == 'none') {\n this.datum_type = Proj4js.common.PJD_NODATUM;\n }\n if (proj && proj.datum_params) {\n for (var i = 0; i < proj.datum_params.length; i++) {\n proj.datum_params[i] = parseFloat(proj.datum_params[i]);\n }\n if (proj.datum_params[0] != 0 || proj.datum_params[1] != 0 || proj.datum_params[2] != 0) {\n this.datum_type = Proj4js.common.PJD_3PARAM;\n }\n if (proj.datum_params.length > 3) {\n if (proj.datum_params[3] != 0 || proj.datum_params[4] != 0 || proj.datum_params[5] != 0 || proj.datum_params[6] != 0) {\n this.datum_type = Proj4js.common.PJD_7PARAM;\n proj.datum_params[3] *= Proj4js.common.SEC_TO_RAD;\n proj.datum_params[4] *= Proj4js.common.SEC_TO_RAD;\n proj.datum_params[5] *= Proj4js.common.SEC_TO_RAD;\n proj.datum_params[6] = proj.datum_params[6] / 1000000.0 + 1.0;\n }\n }\n }\n if (proj) {\n this.a = proj.a; //datum object also uses these values\n this.b = proj.b;\n this.es = proj.es;\n this.ep2 = proj.ep2;\n this.datum_params = proj.datum_params;\n }\n },\n\n /****************************************************************/\n // cs_compare_datums()\n // Returns TRUE if the two datums match, otherwise FALSE.\n compare_datums: function compare_datums(dest) {\n if (this.datum_type != dest.datum_type) {\n return false; // false, datums are not equal\n } else if (this.a != dest.a || Math.abs(this.es - dest.es) > 0.000000000050) {\n // the tolerence for es is to ensure that GRS80 and WGS84\n // are considered identical\n return false;\n } else if (this.datum_type == Proj4js.common.PJD_3PARAM) {\n return this.datum_params[0] == dest.datum_params[0] && this.datum_params[1] == dest.datum_params[1] && this.datum_params[2] == dest.datum_params[2];\n } else if (this.datum_type == Proj4js.common.PJD_7PARAM) {\n return this.datum_params[0] == dest.datum_params[0] && this.datum_params[1] == dest.datum_params[1] && this.datum_params[2] == dest.datum_params[2] && this.datum_params[3] == dest.datum_params[3] && this.datum_params[4] == dest.datum_params[4] && this.datum_params[5] == dest.datum_params[5] && this.datum_params[6] == dest.datum_params[6];\n } else if (this.datum_type == Proj4js.common.PJD_GRIDSHIFT || dest.datum_type == Proj4js.common.PJD_GRIDSHIFT) {\n alert(\"ERROR: Grid shift transformations are not implemented.\");\n return false;\n } else {\n return true; // datums are equal\n }\n }, // cs_compare_datums()\n\n /*\r\n * The function Convert_Geodetic_To_Geocentric converts geodetic coordinates\r\n * (latitude, longitude, and height) to geocentric coordinates (X, Y, Z),\r\n * according to the current ellipsoid parameters.\r\n *\r\n * Latitude : Geodetic latitude in radians (input)\r\n * Longitude : Geodetic longitude in radians (input)\r\n * Height : Geodetic height, in meters (input)\r\n * X : Calculated Geocentric X coordinate, in meters (output)\r\n * Y : Calculated Geocentric Y coordinate, in meters (output)\r\n * Z : Calculated Geocentric Z coordinate, in meters (output)\r\n *\r\n */\n geodetic_to_geocentric: function geodetic_to_geocentric(p) {\n var Longitude = p.x;\n var Latitude = p.y;\n var Height = p.z ? p.z : 0; //Z value not always supplied\n var X; // output\n var Y;\n var Z;\n\n var Error_Code = 0; // GEOCENT_NO_ERROR;\n var Rn; /* Earth radius at location */\n var Sin_Lat; /* Math.sin(Latitude) */\n var Sin2_Lat; /* Square of Math.sin(Latitude) */\n var Cos_Lat; /* Math.cos(Latitude) */\n\n /*\r\n ** Don't blow up if Latitude is just a little out of the value\r\n ** range as it may just be a rounding issue. Also removed longitude\r\n ** test, it should be wrapped by Math.cos() and Math.sin(). NFW for PROJ.4, Sep/2001.\r\n */\n if (Latitude < -Proj4js.common.HALF_PI && Latitude > -1.001 * Proj4js.common.HALF_PI) {\n Latitude = -Proj4js.common.HALF_PI;\n } else if (Latitude > Proj4js.common.HALF_PI && Latitude < 1.001 * Proj4js.common.HALF_PI) {\n Latitude = Proj4js.common.HALF_PI;\n } else if (Latitude < -Proj4js.common.HALF_PI || Latitude > Proj4js.common.HALF_PI) {\n /* Latitude out of range */\n Proj4js.reportError('geocent:lat out of range:' + Latitude);\n return null;\n }\n\n if (Longitude > Proj4js.common.PI) Longitude -= 2 * Proj4js.common.PI;\n Sin_Lat = Math.sin(Latitude);\n Cos_Lat = Math.cos(Latitude);\n Sin2_Lat = Sin_Lat * Sin_Lat;\n Rn = this.a / Math.sqrt(1.0e0 - this.es * Sin2_Lat);\n X = (Rn + Height) * Cos_Lat * Math.cos(Longitude);\n Y = (Rn + Height) * Cos_Lat * Math.sin(Longitude);\n Z = (Rn * (1 - this.es) + Height) * Sin_Lat;\n\n p.x = X;\n p.y = Y;\n p.z = Z;\n return Error_Code;\n }, // cs_geodetic_to_geocentric()\n\n\n geocentric_to_geodetic: function geocentric_to_geodetic(p) {\n /* local defintions and variables */\n /* end-criterium of loop, accuracy of sin(Latitude) */\n var genau = 1.E-12;\n var genau2 = genau * genau;\n var maxiter = 30;\n\n var P; /* distance between semi-minor axis and location */\n var RR; /* distance between center and location */\n var CT; /* sin of geocentric latitude */\n var ST; /* cos of geocentric latitude */\n var RX;\n var RK;\n var RN; /* Earth radius at location */\n var CPHI0; /* cos of start or old geodetic latitude in iterations */\n var SPHI0; /* sin of start or old geodetic latitude in iterations */\n var CPHI; /* cos of searched geodetic latitude */\n var SPHI; /* sin of searched geodetic latitude */\n var SDPHI; /* end-criterium: addition-theorem of sin(Latitude(iter)-Latitude(iter-1)) */\n var At_Pole; /* indicates location is in polar region */\n var iter; /* # of continous iteration, max. 30 is always enough (s.a.) */\n\n var X = p.x;\n var Y = p.y;\n var Z = p.z ? p.z : 0.0; //Z value not always supplied\n var Longitude;\n var Latitude;\n var Height;\n\n At_Pole = false;\n P = Math.sqrt(X * X + Y * Y);\n RR = Math.sqrt(X * X + Y * Y + Z * Z);\n\n /* special cases for latitude and longitude */\n if (P / this.a < genau) {\n\n /* special case, if P=0. (X=0., Y=0.) */\n At_Pole = true;\n Longitude = 0.0;\n\n /* if (X,Y,Z)=(0.,0.,0.) then Height becomes semi-minor axis\r\n * of ellipsoid (=center of mass), Latitude becomes PI/2 */\n if (RR / this.a < genau) {\n Latitude = Proj4js.common.HALF_PI;\n Height = -this.b;\n return;\n }\n } else {\n /* ellipsoidal (geodetic) longitude\r\n * interval: -PI < Longitude <= +PI */\n Longitude = Math.atan2(Y, X);\n }\n\n /* --------------------------------------------------------------\r\n * Following iterative algorithm was developped by\r\n * \"Institut f�r Erdmessung\", University of Hannover, July 1988.\r\n * Internet: www.ife.uni-hannover.de\r\n * Iterative computation of CPHI,SPHI and Height.\r\n * Iteration of CPHI and SPHI to 10**-12 radian resp.\r\n * 2*10**-7 arcsec.\r\n * --------------------------------------------------------------\r\n */\n CT = Z / RR;\n ST = P / RR;\n RX = 1.0 / Math.sqrt(1.0 - this.es * (2.0 - this.es) * ST * ST);\n CPHI0 = ST * (1.0 - this.es) * RX;\n SPHI0 = CT * RX;\n iter = 0;\n\n /* loop to find sin(Latitude) resp. Latitude\r\n * until |sin(Latitude(iter)-Latitude(iter-1))| < genau */\n do {\n iter++;\n RN = this.a / Math.sqrt(1.0 - this.es * SPHI0 * SPHI0);\n\n /* ellipsoidal (geodetic) height */\n Height = P * CPHI0 + Z * SPHI0 - RN * (1.0 - this.es * SPHI0 * SPHI0);\n\n RK = this.es * RN / (RN + Height);\n RX = 1.0 / Math.sqrt(1.0 - RK * (2.0 - RK) * ST * ST);\n CPHI = ST * (1.0 - RK) * RX;\n SPHI = CT * RX;\n SDPHI = SPHI * CPHI0 - CPHI * SPHI0;\n CPHI0 = CPHI;\n SPHI0 = SPHI;\n } while (SDPHI * SDPHI > genau2 && iter < maxiter);\n\n /* ellipsoidal (geodetic) latitude */\n Latitude = Math.atan(SPHI / Math.abs(CPHI));\n\n p.x = Longitude;\n p.y = Latitude;\n p.z = Height;\n return p;\n }, // cs_geocentric_to_geodetic()\n\n /** Convert_Geocentric_To_Geodetic\r\n * The method used here is derived from 'An Improved Algorithm for\r\n * Geocentric to Geodetic Coordinate Conversion', by Ralph Toms, Feb 1996\r\n */\n geocentric_to_geodetic_noniter: function geocentric_to_geodetic_noniter(p) {\n var X = p.x;\n var Y = p.y;\n var Z = p.z ? p.z : 0; //Z value not always supplied\n var Longitude;\n var Latitude;\n var Height;\n\n var W; /* distance from Z axis */\n var W2; /* square of distance from Z axis */\n var T0; /* initial estimate of vertical component */\n var T1; /* corrected estimate of vertical component */\n var S0; /* initial estimate of horizontal component */\n var S1; /* corrected estimate of horizontal component */\n var Sin_B0; /* Math.sin(B0), B0 is estimate of Bowring aux variable */\n var Sin3_B0; /* cube of Math.sin(B0) */\n var Cos_B0; /* Math.cos(B0) */\n var Sin_p1; /* Math.sin(phi1), phi1 is estimated latitude */\n var Cos_p1; /* Math.cos(phi1) */\n var Rn; /* Earth radius at location */\n var Sum; /* numerator of Math.cos(phi1) */\n var At_Pole; /* indicates location is in polar region */\n\n X = parseFloat(X); // cast from string to float\n Y = parseFloat(Y);\n Z = parseFloat(Z);\n\n At_Pole = false;\n if (X != 0.0) {\n Longitude = Math.atan2(Y, X);\n } else {\n if (Y > 0) {\n Longitude = Proj4js.common.HALF_PI;\n } else if (Y < 0) {\n Longitude = -Proj4js.common.HALF_PI;\n } else {\n At_Pole = true;\n Longitude = 0.0;\n if (Z > 0.0) {\n /* north pole */\n Latitude = Proj4js.common.HALF_PI;\n } else if (Z < 0.0) {\n /* south pole */\n Latitude = -Proj4js.common.HALF_PI;\n } else {\n /* center of earth */\n Latitude = Proj4js.common.HALF_PI;\n Height = -this.b;\n return;\n }\n }\n }\n W2 = X * X + Y * Y;\n W = Math.sqrt(W2);\n T0 = Z * Proj4js.common.AD_C;\n S0 = Math.sqrt(T0 * T0 + W2);\n Sin_B0 = T0 / S0;\n Cos_B0 = W / S0;\n Sin3_B0 = Sin_B0 * Sin_B0 * Sin_B0;\n T1 = Z + this.b * this.ep2 * Sin3_B0;\n Sum = W - this.a * this.es * Cos_B0 * Cos_B0 * Cos_B0;\n S1 = Math.sqrt(T1 * T1 + Sum * Sum);\n Sin_p1 = T1 / S1;\n Cos_p1 = Sum / S1;\n Rn = this.a / Math.sqrt(1.0 - this.es * Sin_p1 * Sin_p1);\n if (Cos_p1 >= Proj4js.common.COS_67P5) {\n Height = W / Cos_p1 - Rn;\n } else if (Cos_p1 <= -Proj4js.common.COS_67P5) {\n Height = W / -Cos_p1 - Rn;\n } else {\n Height = Z / Sin_p1 + Rn * (this.es - 1.0);\n }\n if (At_Pole == false) {\n Latitude = Math.atan(Sin_p1 / Cos_p1);\n }\n\n p.x = Longitude;\n p.y = Latitude;\n p.z = Height;\n return p;\n }, // geocentric_to_geodetic_noniter()\n\n /****************************************************************/\n // pj_geocentic_to_wgs84( p )\n // p = point to transform in geocentric coordinates (x,y,z)\n geocentric_to_wgs84: function geocentric_to_wgs84(p) {\n\n if (this.datum_type == Proj4js.common.PJD_3PARAM) {\n // if( x[io] == HUGE_VAL )\n // continue;\n p.x += this.datum_params[0];\n p.y += this.datum_params[1];\n p.z += this.datum_params[2];\n } else if (this.datum_type == Proj4js.common.PJD_7PARAM) {\n var Dx_BF = this.datum_params[0];\n var Dy_BF = this.datum_params[1];\n var Dz_BF = this.datum_params[2];\n var Rx_BF = this.datum_params[3];\n var Ry_BF = this.datum_params[4];\n var Rz_BF = this.datum_params[5];\n var M_BF = this.datum_params[6];\n // if( x[io] == HUGE_VAL )\n // continue;\n var x_out = M_BF * (p.x - Rz_BF * p.y + Ry_BF * p.z) + Dx_BF;\n var y_out = M_BF * (Rz_BF * p.x + p.y - Rx_BF * p.z) + Dy_BF;\n var z_out = M_BF * (-Ry_BF * p.x + Rx_BF * p.y + p.z) + Dz_BF;\n p.x = x_out;\n p.y = y_out;\n p.z = z_out;\n }\n }, // cs_geocentric_to_wgs84\n\n /****************************************************************/\n // pj_geocentic_from_wgs84()\n // coordinate system definition,\n // point to transform in geocentric coordinates (x,y,z)\n geocentric_from_wgs84: function geocentric_from_wgs84(p) {\n\n if (this.datum_type == Proj4js.common.PJD_3PARAM) {\n //if( x[io] == HUGE_VAL )\n // continue;\n p.x -= this.datum_params[0];\n p.y -= this.datum_params[1];\n p.z -= this.datum_params[2];\n } else if (this.datum_type == Proj4js.common.PJD_7PARAM) {\n var Dx_BF = this.datum_params[0];\n var Dy_BF = this.datum_params[1];\n var Dz_BF = this.datum_params[2];\n var Rx_BF = this.datum_params[3];\n var Ry_BF = this.datum_params[4];\n var Rz_BF = this.datum_params[5];\n var M_BF = this.datum_params[6];\n var x_tmp = (p.x - Dx_BF) / M_BF;\n var y_tmp = (p.y - Dy_BF) / M_BF;\n var z_tmp = (p.z - Dz_BF) / M_BF;\n //if( x[io] == HUGE_VAL )\n // continue;\n\n p.x = x_tmp + Rz_BF * y_tmp - Ry_BF * z_tmp;\n p.y = -Rz_BF * x_tmp + y_tmp + Rx_BF * z_tmp;\n p.z = Ry_BF * x_tmp - Rx_BF * y_tmp + z_tmp;\n } //cs_geocentric_from_wgs84()\n }\n});\n\n/** point object, nothing fancy, just allows values to be\r\n passed back and forth by reference rather than by value.\r\n Other point classes may be used as long as they have\r\n x and y properties, which will get modified in the transform method.\r\n*/\nProj4js.Point = Proj4js.Class({\n\n /**\r\n * Constructor: Proj4js.Point\r\n *\r\n * Parameters:\r\n * - x {float} or {Array} either the first coordinates component or\r\n * the full coordinates\r\n * - y {float} the second component\r\n * - z {float} the third component, optional.\r\n */\n initialize: function initialize(x, y, z) {\n if ((typeof x === \"undefined\" ? \"undefined\" : __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_typeof___default()(x)) == 'object') {\n this.x = x[0];\n this.y = x[1];\n this.z = x[2] || 0.0;\n } else if (typeof x == 'string' && typeof y == 'undefined') {\n var coords = x.split(',');\n this.x = parseFloat(coords[0]);\n this.y = parseFloat(coords[1]);\n this.z = parseFloat(coords[2]) || 0.0;\n } else {\n this.x = x;\n this.y = y;\n this.z = z || 0.0;\n }\n },\n\n /**\r\n * APIMethod: clone\r\n * Build a copy of a Proj4js.Point object.\r\n *\r\n * Return:\r\n * {Proj4js}.Point the cloned point.\r\n */\n clone: function clone() {\n return new Proj4js.Point(this.x, this.y, this.z);\n },\n\n /**\r\n * APIMethod: toString\r\n * Return a readable string version of the point\r\n *\r\n * Return:\r\n * {String} String representation of Proj4js.Point object. \r\n * (ex. \"x=5,y=42\")\r\n */\n toString: function toString() {\n return \"x=\" + this.x + \",y=\" + this.y;\n },\n\n /** \r\n * APIMethod: toShortString\r\n * Return a short string version of the point.\r\n *\r\n * Return:\r\n * {String} Shortened String representation of Proj4js.Point object. \r\n * (ex. \"5, 42\")\r\n */\n toShortString: function toShortString() {\n return this.x + \", \" + this.y;\n }\n});\n\nProj4js.PrimeMeridian = {\n \"greenwich\": 0.0, //\"0dE\",\n \"lisbon\": -9.131906111111, //\"9d07'54.862\\\"W\",\n \"paris\": 2.337229166667, //\"2d20'14.025\\\"E\",\n \"bogota\": -74.080916666667, //\"74d04'51.3\\\"W\",\n \"madrid\": -3.687938888889, //\"3d41'16.58\\\"W\",\n \"rome\": 12.452333333333, //\"12d27'8.4\\\"E\",\n \"bern\": 7.439583333333, //\"7d26'22.5\\\"E\",\n \"jakarta\": 106.807719444444, //\"106d48'27.79\\\"E\",\n \"ferro\": -17.666666666667, //\"17d40'W\",\n \"brussels\": 4.367975, //\"4d22'4.71\\\"E\",\n \"stockholm\": 18.058277777778, //\"18d3'29.8\\\"E\",\n \"athens\": 23.7163375, //\"23d42'58.815\\\"E\",\n \"oslo\": 10.722916666667 //\"10d43'22.5\\\"E\"\n};\n\nProj4js.Ellipsoid = {\n \"MERIT\": { a: 6378137.0, rf: 298.257, ellipseName: \"MERIT 1983\" },\n \"SGS85\": { a: 6378136.0, rf: 298.257, ellipseName: \"Soviet Geodetic System 85\" },\n \"GRS80\": { a: 6378137.0, rf: 298.257222101, ellipseName: \"GRS 1980(IUGG, 1980)\" },\n \"IAU76\": { a: 6378140.0, rf: 298.257, ellipseName: \"IAU 1976\" },\n \"airy\": { a: 6377563.396, b: 6356256.910, ellipseName: \"Airy 1830\" },\n \"APL4.\": { a: 6378137, rf: 298.25, ellipseName: \"Appl. Physics. 1965\" },\n \"NWL9D\": { a: 6378145.0, rf: 298.25, ellipseName: \"Naval Weapons Lab., 1965\" },\n \"mod_airy\": { a: 6377340.189, b: 6356034.446, ellipseName: \"Modified Airy\" },\n \"andrae\": { a: 6377104.43, rf: 300.0, ellipseName: \"Andrae 1876 (Den., Iclnd.)\" },\n \"aust_SA\": { a: 6378160.0, rf: 298.25, ellipseName: \"Australian Natl & S. Amer. 1969\" },\n \"GRS67\": { a: 6378160.0, rf: 298.2471674270, ellipseName: \"GRS 67(IUGG 1967)\" },\n \"bessel\": { a: 6377397.155, rf: 299.1528128, ellipseName: \"Bessel 1841\" },\n \"bess_nam\": { a: 6377483.865, rf: 299.1528128, ellipseName: \"Bessel 1841 (Namibia)\" },\n \"clrk66\": { a: 6378206.4, b: 6356583.8, ellipseName: \"Clarke 1866\" },\n \"clrk80\": { a: 6378249.145, rf: 293.4663, ellipseName: \"Clarke 1880 mod.\" },\n \"CPM\": { a: 6375738.7, rf: 334.29, ellipseName: \"Comm. des Poids et Mesures 1799\" },\n \"delmbr\": { a: 6376428.0, rf: 311.5, ellipseName: \"Delambre 1810 (Belgium)\" },\n \"engelis\": { a: 6378136.05, rf: 298.2566, ellipseName: \"Engelis 1985\" },\n \"evrst30\": { a: 6377276.345, rf: 300.8017, ellipseName: \"Everest 1830\" },\n \"evrst48\": { a: 6377304.063, rf: 300.8017, ellipseName: \"Everest 1948\" },\n \"evrst56\": { a: 6377301.243, rf: 300.8017, ellipseName: \"Everest 1956\" },\n \"evrst69\": { a: 6377295.664, rf: 300.8017, ellipseName: \"Everest 1969\" },\n \"evrstSS\": { a: 6377298.556, rf: 300.8017, ellipseName: \"Everest (Sabah & Sarawak)\" },\n \"fschr60\": { a: 6378166.0, rf: 298.3, ellipseName: \"Fischer (Mercury Datum) 1960\" },\n \"fschr60m\": { a: 6378155.0, rf: 298.3, ellipseName: \"Fischer 1960\" },\n \"fschr68\": { a: 6378150.0, rf: 298.3, ellipseName: \"Fischer 1968\" },\n \"helmert\": { a: 6378200.0, rf: 298.3, ellipseName: \"Helmert 1906\" },\n \"hough\": { a: 6378270.0, rf: 297.0, ellipseName: \"Hough\" },\n \"intl\": { a: 6378388.0, rf: 297.0, ellipseName: \"International 1909 (Hayford)\" },\n \"kaula\": { a: 6378163.0, rf: 298.24, ellipseName: \"Kaula 1961\" },\n \"lerch\": { a: 6378139.0, rf: 298.257, ellipseName: \"Lerch 1979\" },\n \"mprts\": { a: 6397300.0, rf: 191.0, ellipseName: \"Maupertius 1738\" },\n \"new_intl\": { a: 6378157.5, b: 6356772.2, ellipseName: \"New International 1967\" },\n \"plessis\": { a: 6376523.0, rf: 6355863.0, ellipseName: \"Plessis 1817 (France)\" },\n \"krass\": { a: 6378245.0, rf: 298.3, ellipseName: \"Krassovsky, 1942\" },\n \"SEasia\": { a: 6378155.0, b: 6356773.3205, ellipseName: \"Southeast Asia\" },\n \"walbeck\": { a: 6376896.0, b: 6355834.8467, ellipseName: \"Walbeck\" },\n \"WGS60\": { a: 6378165.0, rf: 298.3, ellipseName: \"WGS 60\" },\n \"WGS66\": { a: 6378145.0, rf: 298.25, ellipseName: \"WGS 66\" },\n \"WGS72\": { a: 6378135.0, rf: 298.26, ellipseName: \"WGS 72\" },\n \"WGS84\": { a: 6378137.0, rf: 298.257223563, ellipseName: \"WGS 84\" },\n \"sphere\": { a: 6370997.0, b: 6370997.0, ellipseName: \"Normal Sphere (r=6370997)\" }\n};\n\nProj4js.Datum = {\n \"WGS84\": { towgs84: \"0,0,0\", ellipse: \"WGS84\", datumName: \"WGS84\" },\n \"GGRS87\": { towgs84: \"-199.87,74.79,246.62\", ellipse: \"GRS80\", datumName: \"Greek_Geodetic_Reference_System_1987\" },\n \"NAD83\": { towgs84: \"0,0,0\", ellipse: \"GRS80\", datumName: \"North_American_Datum_1983\" },\n \"NAD27\": { nadgrids: \"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat\", ellipse: \"clrk66\", datumName: \"North_American_Datum_1927\" },\n \"potsdam\": { towgs84: \"606.0,23.0,413.0\", ellipse: \"bessel\", datumName: \"Potsdam Rauenberg 1950 DHDN\" },\n \"carthage\": { towgs84: \"-263.0,6.0,431.0\", ellipse: \"clark80\", datumName: \"Carthage 1934 Tunisia\" },\n \"hermannskogel\": { towgs84: \"653.0,-212.0,449.0\", ellipse: \"bessel\", datumName: \"Hermannskogel\" },\n \"ire65\": { towgs84: \"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\", ellipse: \"mod_airy\", datumName: \"Ireland 1965\" },\n \"nzgd49\": { towgs84: \"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993\", ellipse: \"intl\", datumName: \"New Zealand Geodetic Datum 1949\" },\n \"OSGB36\": { towgs84: \"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894\", ellipse: \"airy\", datumName: \"Airy 1830\" }\n};\n\nProj4js.WGS84 = new Proj4js.Proj('WGS84');\nProj4js.Datum['OSB36'] = Proj4js.Datum['OSGB36']; //as returned from spatialreference.org\n\n//lookup table to go from the projection name in WKT to the Proj4js projection name\n//build this out as required\nProj4js.wktProjections = {\n \"Lambert Tangential Conformal Conic Projection\": \"lcc\",\n \"Mercator\": \"merc\",\n \"Popular Visualisation Pseudo Mercator\": \"merc\",\n \"Mercator_1SP\": \"merc\",\n \"Transverse_Mercator\": \"tmerc\",\n \"Transverse Mercator\": \"tmerc\",\n \"Lambert Azimuthal Equal Area\": \"laea\",\n \"Universal Transverse Mercator System\": \"utm\"\n};\n\n/* ======================================================================\r\n projCode/aea.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME ALBERS CONICAL EQUAL AREA \r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and Northing\r\n for the Albers Conical Equal Area projection. The longitude\r\n and latitude must be in radians. The Easting and Northing\r\n values will be returned in meters.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nT. Mittan, \tFeb, 1992\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\n\nProj4js.Proj.aea = {\n init: function init() {\n\n if (Math.abs(this.lat1 + this.lat2) < Proj4js.common.EPSLN) {\n Proj4js.reportError(\"aeaInitEqualLatitudes\");\n return;\n }\n this.temp = this.b / this.a;\n this.es = 1.0 - Math.pow(this.temp, 2);\n this.e3 = Math.sqrt(this.es);\n\n this.sin_po = Math.sin(this.lat1);\n this.cos_po = Math.cos(this.lat1);\n this.t1 = this.sin_po;\n this.con = this.sin_po;\n this.ms1 = Proj4js.common.msfnz(this.e3, this.sin_po, this.cos_po);\n this.qs1 = Proj4js.common.qsfnz(this.e3, this.sin_po, this.cos_po);\n\n this.sin_po = Math.sin(this.lat2);\n this.cos_po = Math.cos(this.lat2);\n this.t2 = this.sin_po;\n this.ms2 = Proj4js.common.msfnz(this.e3, this.sin_po, this.cos_po);\n this.qs2 = Proj4js.common.qsfnz(this.e3, this.sin_po, this.cos_po);\n\n this.sin_po = Math.sin(this.lat0);\n this.cos_po = Math.cos(this.lat0);\n this.t3 = this.sin_po;\n this.qs0 = Proj4js.common.qsfnz(this.e3, this.sin_po, this.cos_po);\n\n if (Math.abs(this.lat1 - this.lat2) > Proj4js.common.EPSLN) {\n this.ns0 = (this.ms1 * this.ms1 - this.ms2 * this.ms2) / (this.qs2 - this.qs1);\n } else {\n this.ns0 = this.con;\n }\n this.c = this.ms1 * this.ms1 + this.ns0 * this.qs1;\n this.rh = this.a * Math.sqrt(this.c - this.ns0 * this.qs0) / this.ns0;\n },\n\n /* Albers Conical Equal Area forward equations--mapping lat,long to x,y\r\n -------------------------------------------------------------------*/\n forward: function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n this.sin_phi = Math.sin(lat);\n this.cos_phi = Math.cos(lat);\n\n var qs = Proj4js.common.qsfnz(this.e3, this.sin_phi, this.cos_phi);\n var rh1 = this.a * Math.sqrt(this.c - this.ns0 * qs) / this.ns0;\n var theta = this.ns0 * Proj4js.common.adjust_lon(lon - this.long0);\n var x = rh1 * Math.sin(theta) + this.x0;\n var y = this.rh - rh1 * Math.cos(theta) + this.y0;\n\n p.x = x;\n p.y = y;\n return p;\n },\n\n inverse: function inverse(p) {\n var rh1, qs, con, theta, lon, lat;\n\n p.x -= this.x0;\n p.y = this.rh - p.y + this.y0;\n if (this.ns0 >= 0) {\n rh1 = Math.sqrt(p.x * p.x + p.y * p.y);\n con = 1.0;\n } else {\n rh1 = -Math.sqrt(p.x * p.x + p.y * p.y);\n con = -1.0;\n }\n theta = 0.0;\n if (rh1 != 0.0) {\n theta = Math.atan2(con * p.x, con * p.y);\n }\n con = rh1 * this.ns0 / this.a;\n qs = (this.c - con * con) / this.ns0;\n if (this.e3 >= 1e-10) {\n con = 1 - .5 * (1.0 - this.es) * Math.log((1.0 - this.e3) / (1.0 + this.e3)) / this.e3;\n if (Math.abs(Math.abs(con) - Math.abs(qs)) > .0000000001) {\n lat = this.phi1z(this.e3, qs);\n } else {\n if (qs >= 0) {\n lat = .5 * Proj4js.common.PI;\n } else {\n lat = -.5 * Proj4js.common.PI;\n }\n }\n } else {\n lat = this.phi1z(this.e3, qs);\n }\n\n lon = Proj4js.common.adjust_lon(theta / this.ns0 + this.long0);\n p.x = lon;\n p.y = lat;\n return p;\n },\n\n /* Function to compute phi1, the latitude for the inverse of the\r\n Albers Conical Equal-Area projection.\r\n -------------------------------------------*/\n phi1z: function phi1z(eccent, qs) {\n var sinphi, cosphi, con, com, dphi;\n var phi = Proj4js.common.asinz(.5 * qs);\n if (eccent < Proj4js.common.EPSLN) return phi;\n\n var eccnts = eccent * eccent;\n for (var i = 1; i <= 25; i++) {\n sinphi = Math.sin(phi);\n cosphi = Math.cos(phi);\n con = eccent * sinphi;\n com = 1.0 - con * con;\n dphi = .5 * com * com / cosphi * (qs / (1.0 - eccnts) - sinphi / com + .5 / eccent * Math.log((1.0 - con) / (1.0 + con)));\n phi = phi + dphi;\n if (Math.abs(dphi) <= 1e-7) return phi;\n }\n Proj4js.reportError(\"aea:phi1z:Convergence error\");\n return null;\n }\n\n};\n\n/* ======================================================================\r\n projCode/sterea.js\r\n ====================================================================== */\n\nProj4js.Proj.sterea = {\n dependsOn: 'gauss',\n\n init: function init() {\n Proj4js.Proj['gauss'].init.apply(this);\n if (!this.rc) {\n Proj4js.reportError(\"sterea:init:E_ERROR_0\");\n return;\n }\n this.sinc0 = Math.sin(this.phic0);\n this.cosc0 = Math.cos(this.phic0);\n this.R2 = 2.0 * this.rc;\n if (!this.title) this.title = \"Oblique Stereographic Alternative\";\n },\n\n forward: function forward(p) {\n var sinc, cosc, cosl, k;\n p.x = Proj4js.common.adjust_lon(p.x - this.long0); /* adjust del longitude */\n Proj4js.Proj['gauss'].forward.apply(this, [p]);\n sinc = Math.sin(p.y);\n cosc = Math.cos(p.y);\n cosl = Math.cos(p.x);\n k = this.k0 * this.R2 / (1.0 + this.sinc0 * sinc + this.cosc0 * cosc * cosl);\n p.x = k * cosc * Math.sin(p.x);\n p.y = k * (this.cosc0 * sinc - this.sinc0 * cosc * cosl);\n p.x = this.a * p.x + this.x0;\n p.y = this.a * p.y + this.y0;\n return p;\n },\n\n inverse: function inverse(p) {\n var sinc, cosc, lon, lat, rho;\n p.x = (p.x - this.x0) / this.a; /* descale and de-offset */\n p.y = (p.y - this.y0) / this.a;\n\n p.x /= this.k0;\n p.y /= this.k0;\n if (rho = Math.sqrt(p.x * p.x + p.y * p.y)) {\n var c = 2.0 * Math.atan2(rho, this.R2);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n lat = Math.asin(cosc * this.sinc0 + p.y * sinc * this.cosc0 / rho);\n lon = Math.atan2(p.x * sinc, rho * this.cosc0 * cosc - p.y * this.sinc0 * sinc);\n } else {\n lat = this.phic0;\n lon = 0.;\n }\n\n p.x = lon;\n p.y = lat;\n Proj4js.Proj['gauss'].inverse.apply(this, [p]);\n p.x = Proj4js.common.adjust_lon(p.x + this.long0); /* adjust longitude to CM */\n return p;\n }\n};\n\n/* ======================================================================\r\n projCode/poly.js\r\n ====================================================================== */\n\n/* Function to compute, phi4, the latitude for the inverse of the\r\n Polyconic projection.\r\n------------------------------------------------------------*/\nfunction phi4z(eccent, e0, e1, e2, e3, a, b, c, phi) {\n var sinphi, sin2ph, tanphi, ml, mlp, con1, con2, con3, dphi, i;\n\n phi = a;\n for (i = 1; i <= 15; i++) {\n sinphi = Math.sin(phi);\n tanphi = Math.tan(phi);\n c = tanphi * Math.sqrt(1.0 - eccent * sinphi * sinphi);\n sin2ph = Math.sin(2.0 * phi);\n /*\r\n ml = e0 * *phi - e1 * sin2ph + e2 * sin (4.0 * *phi);\r\n mlp = e0 - 2.0 * e1 * cos (2.0 * *phi) + 4.0 * e2 * cos (4.0 * *phi);\r\n */\n ml = e0 * phi - e1 * sin2ph + e2 * Math.sin(4.0 * phi) - e3 * Math.sin(6.0 * phi);\n mlp = e0 - 2.0 * e1 * Math.cos(2.0 * phi) + 4.0 * e2 * Math.cos(4.0 * phi) - 6.0 * e3 * Math.cos(6.0 * phi);\n con1 = 2.0 * ml + c * (ml * ml + b) - 2.0 * a * (c * ml + 1.0);\n con2 = eccent * sin2ph * (ml * ml + b - 2.0 * a * ml) / (2.0 * c);\n con3 = 2.0 * (a - ml) * (c * mlp - 2.0 / sin2ph) - 2.0 * mlp;\n dphi = con1 / (con2 + con3);\n phi += dphi;\n if (Math.abs(dphi) <= .0000000001) return phi;\n }\n Proj4js.reportError(\"phi4z: No convergence\");\n return null;\n}\n\n/* Function to compute the constant e4 from the input of the eccentricity\r\n of the spheroid, x. This constant is used in the Polar Stereographic\r\n projection.\r\n--------------------------------------------------------------------*/\nfunction e4fn(x) {\n var con, com;\n con = 1.0 + x;\n com = 1.0 - x;\n return Math.sqrt(Math.pow(con, con) * Math.pow(com, com));\n}\n\n/*******************************************************************************\r\nNAME POLYCONIC \r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Polyconic projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nT. Mittan\t\tMar, 1993\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\n\nProj4js.Proj.poly = {\n\n /* Initialize the POLYCONIC projection\r\n ----------------------------------*/\n init: function init() {\n var temp; /* temporary variable\t\t*/\n if (this.lat0 == 0) this.lat0 = 90; //this.lat0 ca\n\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\n this.temp = this.b / this.a;\n this.es = 1.0 - Math.pow(this.temp, 2); // devait etre dans tmerc.js mais n y est pas donc je commente sinon retour de valeurs nulles \n this.e = Math.sqrt(this.es);\n this.e0 = Proj4js.common.e0fn(this.es);\n this.e1 = Proj4js.common.e1fn(this.es);\n this.e2 = Proj4js.common.e2fn(this.es);\n this.e3 = Proj4js.common.e3fn(this.es);\n this.ml0 = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0); //si que des zeros le calcul ne se fait pas\n //if (!this.ml0) {this.ml0=0;}\n },\n\n /* Polyconic forward equations--mapping lat,long to x,y\r\n ---------------------------------------------------*/\n forward: function forward(p) {\n var sinphi, cosphi; /* sin and cos value\t\t\t\t*/\n var al; /* temporary values\t\t\t\t*/\n var c; /* temporary values\t\t\t\t*/\n var con, ml; /* cone constant, small m\t\t\t*/\n var ms; /* small m\t\t\t\t\t*/\n var x, y;\n\n var lon = p.x;\n var lat = p.y;\n\n con = Proj4js.common.adjust_lon(lon - this.long0);\n if (Math.abs(lat) <= .0000001) {\n x = this.x0 + this.a * con;\n y = this.y0 - this.a * this.ml0;\n } else {\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n ml = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, lat);\n ms = Proj4js.common.msfnz(this.e, sinphi, cosphi);\n con = sinphi;\n x = this.x0 + this.a * ms * Math.sin(con) / sinphi;\n y = this.y0 + this.a * (ml - this.ml0 + ms * (1.0 - Math.cos(con)) / sinphi);\n }\n\n p.x = x;\n p.y = y;\n return p;\n },\n\n /* Inverse equations\r\n -----------------*/\n inverse: function inverse(p) {\n var sin_phi, cos_phi; /* sin and cos value\t\t\t\t*/\n var al; /* temporary values\t\t\t\t*/\n var b; /* temporary values\t\t\t\t*/\n var c; /* temporary values\t\t\t\t*/\n var con, ml; /* cone constant, small m\t\t\t*/\n var iflg; /* error flag\t\t\t\t\t*/\n var lon, lat;\n p.x -= this.x0;\n p.y -= this.y0;\n al = this.ml0 + p.y / this.a;\n iflg = 0;\n\n if (Math.abs(al) <= .0000001) {\n lon = p.x / this.a + this.long0;\n lat = 0.0;\n } else {\n b = al * al + p.x / this.a * (p.x / this.a);\n iflg = phi4z(this.es, this.e0, this.e1, this.e2, this.e3, this.al, b, c, lat);\n if (iflg != 1) return iflg;\n lon = Proj4js.common.adjust_lon(Proj4js.common.asinz(p.x * c / this.a) / Math.sin(lat) + this.long0);\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n\n/* ======================================================================\r\n projCode/equi.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME EQUIRECTANGULAR \r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Equirectangular projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nT. Mittan\t\tMar, 1993\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\nProj4js.Proj.equi = {\n\n init: function init() {\n if (!this.x0) this.x0 = 0;\n if (!this.y0) this.y0 = 0;\n if (!this.lat0) this.lat0 = 0;\n if (!this.long0) this.long0 = 0;\n ///this.t2;\n },\n\n /* Equirectangular forward equations--mapping lat,long to x,y\r\n ---------------------------------------------------------*/\n forward: function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\n var x = this.x0 + this.a * dlon * Math.cos(this.lat0);\n var y = this.y0 + this.a * lat;\n\n this.t1 = x;\n this.t2 = Math.cos(this.lat0);\n p.x = x;\n p.y = y;\n return p;\n }, //equiFwd()\n\n\n /* Equirectangular inverse equations--mapping x,y to lat/long\r\n ---------------------------------------------------------*/\n inverse: function inverse(p) {\n\n p.x -= this.x0;\n p.y -= this.y0;\n var lat = p.y / this.a;\n\n if (Math.abs(lat) > Proj4js.common.HALF_PI) {\n Proj4js.reportError(\"equi:Inv:DataError\");\n }\n var lon = Proj4js.common.adjust_lon(this.long0 + p.x / (this.a * Math.cos(this.lat0)));\n p.x = lon;\n p.y = lat;\n } //equiInv()\n};\n\n/* ======================================================================\r\n projCode/merc.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME MERCATOR\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Mercator projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nD. Steinwand, EROS Nov, 1991\r\nT. Mittan\t\tMar, 1993\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\n\n//static double r_major = a;\t\t /* major axis \t\t\t\t*/\n//static double r_minor = b;\t\t /* minor axis \t\t\t\t*/\n//static double lon_center = long0;\t /* Center longitude (projection center) */\n//static double lat_origin = lat0;\t /* center latitude\t\t\t*/\n//static double e,es;\t\t /* eccentricity constants\t\t*/\n//static double m1;\t\t /* small value m\t\t\t*/\n//static double false_northing = y0; /* y offset in meters\t\t\t*/\n//static double false_easting = x0;\t /* x offset in meters\t\t\t*/\n//scale_fact = k0 \n\nProj4js.Proj.merc = {\n init: function init() {\n //?this.temp = this.r_minor / this.r_major;\n //this.temp = this.b / this.a;\n //this.es = 1.0 - Math.sqrt(this.temp);\n //this.e = Math.sqrt( this.es );\n //?this.m1 = Math.cos(this.lat_origin) / (Math.sqrt( 1.0 - this.es * Math.sin(this.lat_origin) * Math.sin(this.lat_origin)));\n //this.m1 = Math.cos(0.0) / (Math.sqrt( 1.0 - this.es * Math.sin(0.0) * Math.sin(0.0)));\n if (this.lat_ts) {\n if (this.sphere) {\n this.k0 = Math.cos(this.lat_ts);\n } else {\n this.k0 = Proj4js.common.msfnz(this.es, Math.sin(this.lat_ts), Math.cos(this.lat_ts));\n }\n }\n },\n\n /* Mercator forward equations--mapping lat,long to x,y\r\n --------------------------------------------------*/\n\n forward: function forward(p) {\n //alert(\"ll2m coords : \"+coords);\n var lon = p.x;\n var lat = p.y;\n // convert to radians\n if (lat * Proj4js.common.R2D > 90.0 && lat * Proj4js.common.R2D < -90.0 && lon * Proj4js.common.R2D > 180.0 && lon * Proj4js.common.R2D < -180.0) {\n Proj4js.reportError(\"merc:forward: llInputOutOfRange: \" + lon + \" : \" + lat);\n return null;\n }\n\n var x, y;\n if (Math.abs(Math.abs(lat) - Proj4js.common.HALF_PI) <= Proj4js.common.EPSLN) {\n Proj4js.reportError(\"merc:forward: ll2mAtPoles\");\n return null;\n } else {\n if (this.sphere) {\n x = this.x0 + this.a * this.k0 * Proj4js.common.adjust_lon(lon - this.long0);\n y = this.y0 + this.a * this.k0 * Math.log(Math.tan(Proj4js.common.FORTPI + 0.5 * lat));\n } else {\n var sinphi = Math.sin(lat);\n var ts = Proj4js.common.tsfnz(this.e, lat, sinphi);\n x = this.x0 + this.a * this.k0 * Proj4js.common.adjust_lon(lon - this.long0);\n y = this.y0 - this.a * this.k0 * Math.log(ts);\n }\n p.x = x;\n p.y = y;\n return p;\n }\n },\n\n /* Mercator inverse equations--mapping x,y to lat/long\r\n --------------------------------------------------*/\n inverse: function inverse(p) {\n\n var x = p.x - this.x0;\n var y = p.y - this.y0;\n var lon, lat;\n\n if (this.sphere) {\n lat = Proj4js.common.HALF_PI - 2.0 * Math.atan(Math.exp(-y / this.a * this.k0));\n } else {\n var ts = Math.exp(-y / (this.a * this.k0));\n lat = Proj4js.common.phi2z(this.e, ts);\n if (lat == -9999) {\n Proj4js.reportError(\"merc:inverse: lat = -9999\");\n return null;\n }\n }\n lon = Proj4js.common.adjust_lon(this.long0 + x / (this.a * this.k0));\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n\n/* ======================================================================\r\n projCode/utm.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME TRANSVERSE MERCATOR\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Transverse Mercator projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\n\n/**\r\n Initialize Transverse Mercator projection\r\n*/\n\nProj4js.Proj.utm = {\n dependsOn: 'tmerc',\n\n init: function init() {\n if (!this.zone) {\n Proj4js.reportError(\"utm:init: zone must be specified for UTM\");\n return;\n }\n this.lat0 = 0.0;\n this.long0 = (6 * Math.abs(this.zone) - 183) * Proj4js.common.D2R;\n this.x0 = 500000.0;\n this.y0 = this.utmSouth ? 10000000.0 : 0.0;\n this.k0 = 0.9996;\n\n Proj4js.Proj['tmerc'].init.apply(this);\n this.forward = Proj4js.Proj['tmerc'].forward;\n this.inverse = Proj4js.Proj['tmerc'].inverse;\n }\n};\n/* ======================================================================\r\n projCode/eqdc.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME EQUIDISTANT CONIC \r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and Northing\r\n for the Equidistant Conic projection. The longitude and\r\n latitude must be in radians. The Easting and Northing values\r\n will be returned in meters.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nT. Mittan\t\tMar, 1993\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\n\n/* Variables common to all subroutines in this code file\r\n -----------------------------------------------------*/\n\nProj4js.Proj.eqdc = {\n\n /* Initialize the Equidistant Conic projection\r\n ------------------------------------------*/\n init: function init() {\n\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\n\n if (!this.mode) this.mode = 0; //chosen default mode\n this.temp = this.b / this.a;\n this.es = 1.0 - Math.pow(this.temp, 2);\n this.e = Math.sqrt(this.es);\n this.e0 = Proj4js.common.e0fn(this.es);\n this.e1 = Proj4js.common.e1fn(this.es);\n this.e2 = Proj4js.common.e2fn(this.es);\n this.e3 = Proj4js.common.e3fn(this.es);\n\n this.sinphi = Math.sin(this.lat1);\n this.cosphi = Math.cos(this.lat1);\n\n this.ms1 = Proj4js.common.msfnz(this.e, this.sinphi, this.cosphi);\n this.ml1 = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, this.lat1);\n\n /* format B\r\n ---------*/\n if (this.mode != 0) {\n if (Math.abs(this.lat1 + this.lat2) < Proj4js.common.EPSLN) {\n Proj4js.reportError(\"eqdc:Init:EqualLatitudes\");\n //return(81);\n }\n this.sinphi = Math.sin(this.lat2);\n this.cosphi = Math.cos(this.lat2);\n\n this.ms2 = Proj4js.common.msfnz(this.e, this.sinphi, this.cosphi);\n this.ml2 = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, this.lat2);\n if (Math.abs(this.lat1 - this.lat2) >= Proj4js.common.EPSLN) {\n this.ns = (this.ms1 - this.ms2) / (this.ml2 - this.ml1);\n } else {\n this.ns = this.sinphi;\n }\n } else {\n this.ns = this.sinphi;\n }\n this.g = this.ml1 + this.ms1 / this.ns;\n this.ml0 = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\n this.rh = this.a * (this.g - this.ml0);\n },\n\n /* Equidistant Conic forward equations--mapping lat,long to x,y\r\n -----------------------------------------------------------*/\n forward: function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n /* Forward equations\r\n -----------------*/\n var ml = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, lat);\n var rh1 = this.a * (this.g - ml);\n var theta = this.ns * Proj4js.common.adjust_lon(lon - this.long0);\n\n var x = this.x0 + rh1 * Math.sin(theta);\n var y = this.y0 + this.rh - rh1 * Math.cos(theta);\n p.x = x;\n p.y = y;\n return p;\n },\n\n /* Inverse equations\r\n -----------------*/\n inverse: function inverse(p) {\n p.x -= this.x0;\n p.y = this.rh - p.y + this.y0;\n var con, rh1;\n if (this.ns >= 0) {\n rh1 = Math.sqrt(p.x * p.x + p.y * p.y);\n con = 1.0;\n } else {\n rh1 = -Math.sqrt(p.x * p.x + p.y * p.y);\n con = -1.0;\n }\n var theta = 0.0;\n if (rh1 != 0.0) theta = Math.atan2(con * p.x, con * p.y);\n var ml = this.g - rh1 / this.a;\n var lat = this.phi3z(ml, this.e0, this.e1, this.e2, this.e3);\n var lon = Proj4js.common.adjust_lon(this.long0 + theta / this.ns);\n\n p.x = lon;\n p.y = lat;\n return p;\n },\n\n /* Function to compute latitude, phi3, for the inverse of the Equidistant\r\n Conic projection.\r\n -----------------------------------------------------------------*/\n phi3z: function phi3z(ml, e0, e1, e2, e3) {\n var phi;\n var dphi;\n\n phi = ml;\n for (var i = 0; i < 15; i++) {\n dphi = (ml + e1 * Math.sin(2.0 * phi) - e2 * Math.sin(4.0 * phi) + e3 * Math.sin(6.0 * phi)) / e0 - phi;\n phi += dphi;\n if (Math.abs(dphi) <= .0000000001) {\n return phi;\n }\n }\n Proj4js.reportError(\"PHI3Z-CONV:Latitude failed to converge after 15 iterations\");\n return null;\n }\n\n};\n/* ======================================================================\r\n projCode/tmerc.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME TRANSVERSE MERCATOR\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Transverse Mercator projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\n\n/**\r\n Initialize Transverse Mercator projection\r\n*/\n\nProj4js.Proj.tmerc = {\n init: function init() {\n this.e0 = Proj4js.common.e0fn(this.es);\n this.e1 = Proj4js.common.e1fn(this.es);\n this.e2 = Proj4js.common.e2fn(this.es);\n this.e3 = Proj4js.common.e3fn(this.es);\n this.ml0 = this.a * Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\n },\n\n /**\r\n Transverse Mercator Forward - long/lat to x/y\r\n long/lat in radians\r\n */\n forward: function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n var delta_lon = Proj4js.common.adjust_lon(lon - this.long0); // Delta longitude\n var con; // cone constant\n var x, y;\n var sin_phi = Math.sin(lat);\n var cos_phi = Math.cos(lat);\n\n if (this.sphere) {\n /* spherical form */\n var b = cos_phi * Math.sin(delta_lon);\n if (Math.abs(Math.abs(b) - 1.0) < .0000000001) {\n Proj4js.reportError(\"tmerc:forward: Point projects into infinity\");\n return 93;\n } else {\n x = .5 * this.a * this.k0 * Math.log((1.0 + b) / (1.0 - b));\n con = Math.acos(cos_phi * Math.cos(delta_lon) / Math.sqrt(1.0 - b * b));\n if (lat < 0) con = -con;\n y = this.a * this.k0 * (con - this.lat0);\n }\n } else {\n var al = cos_phi * delta_lon;\n var als = Math.pow(al, 2);\n var c = this.ep2 * Math.pow(cos_phi, 2);\n var tq = Math.tan(lat);\n var t = Math.pow(tq, 2);\n con = 1.0 - this.es * Math.pow(sin_phi, 2);\n var n = this.a / Math.sqrt(con);\n var ml = this.a * Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, lat);\n\n x = this.k0 * n * al * (1.0 + als / 6.0 * (1.0 - t + c + als / 20.0 * (5.0 - 18.0 * t + Math.pow(t, 2) + 72.0 * c - 58.0 * this.ep2))) + this.x0;\n y = this.k0 * (ml - this.ml0 + n * tq * (als * (0.5 + als / 24.0 * (5.0 - t + 9.0 * c + 4.0 * Math.pow(c, 2) + als / 30.0 * (61.0 - 58.0 * t + Math.pow(t, 2) + 600.0 * c - 330.0 * this.ep2))))) + this.y0;\n }\n p.x = x;p.y = y;\n return p;\n }, // tmercFwd()\n\n /**\r\n Transverse Mercator Inverse - x/y to long/lat\r\n */\n inverse: function inverse(p) {\n var con, phi; /* temporary angles */\n var delta_phi; /* difference between longitudes */\n var i;\n var max_iter = 6; /* maximun number of iterations */\n var lat, lon;\n\n if (this.sphere) {\n /* spherical form */\n var f = Math.exp(p.x / (this.a * this.k0));\n var g = .5 * (f - 1 / f);\n var temp = this.lat0 + p.y / (this.a * this.k0);\n var h = Math.cos(temp);\n con = Math.sqrt((1.0 - h * h) / (1.0 + g * g));\n lat = Proj4js.common.asinz(con);\n if (temp < 0) lat = -lat;\n if (g == 0 && h == 0) {\n lon = this.long0;\n } else {\n lon = Proj4js.common.adjust_lon(Math.atan2(g, h) + this.long0);\n }\n } else {\n // ellipsoidal form\n var x = p.x - this.x0;\n var y = p.y - this.y0;\n\n con = (this.ml0 + y / this.k0) / this.a;\n phi = con;\n for (i = 0; true; i++) {\n delta_phi = (con + this.e1 * Math.sin(2.0 * phi) - this.e2 * Math.sin(4.0 * phi) + this.e3 * Math.sin(6.0 * phi)) / this.e0 - phi;\n phi += delta_phi;\n if (Math.abs(delta_phi) <= Proj4js.common.EPSLN) break;\n if (i >= max_iter) {\n Proj4js.reportError(\"tmerc:inverse: Latitude failed to converge\");\n return 95;\n }\n } // for()\n if (Math.abs(phi) < Proj4js.common.HALF_PI) {\n // sincos(phi, &sin_phi, &cos_phi);\n var sin_phi = Math.sin(phi);\n var cos_phi = Math.cos(phi);\n var tan_phi = Math.tan(phi);\n var c = this.ep2 * Math.pow(cos_phi, 2);\n var cs = Math.pow(c, 2);\n var t = Math.pow(tan_phi, 2);\n var ts = Math.pow(t, 2);\n con = 1.0 - this.es * Math.pow(sin_phi, 2);\n var n = this.a / Math.sqrt(con);\n var r = n * (1.0 - this.es) / con;\n var d = x / (n * this.k0);\n var ds = Math.pow(d, 2);\n lat = phi - n * tan_phi * ds / r * (0.5 - ds / 24.0 * (5.0 + 3.0 * t + 10.0 * c - 4.0 * cs - 9.0 * this.ep2 - ds / 30.0 * (61.0 + 90.0 * t + 298.0 * c + 45.0 * ts - 252.0 * this.ep2 - 3.0 * cs)));\n lon = Proj4js.common.adjust_lon(this.long0 + d * (1.0 - ds / 6.0 * (1.0 + 2.0 * t + c - ds / 20.0 * (5.0 - 2.0 * c + 28.0 * t - 3.0 * cs + 8.0 * this.ep2 + 24.0 * ts))) / cos_phi);\n } else {\n lat = Proj4js.common.HALF_PI * Proj4js.common.sign(y);\n lon = this.long0;\n }\n }\n p.x = lon;\n p.y = lat;\n return p;\n } // tmercInv()\n};\n/* ======================================================================\r\n defs/GOOGLE.js\r\n ====================================================================== */\n\nProj4js.defs[\"GOOGLE\"] = \"+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\";\nProj4js.defs[\"EPSG:900913\"] = Proj4js.defs[\"GOOGLE\"];\n/* ======================================================================\r\n projCode/gstmerc.js\r\n ====================================================================== */\n\nProj4js.Proj.gstmerc = {\n init: function init() {\n\n // array of: a, b, lon0, lat0, k0, x0, y0\n var temp = this.b / this.a;\n this.e = Math.sqrt(1.0 - temp * temp);\n this.lc = this.long0;\n this.rs = Math.sqrt(1.0 + this.e * this.e * Math.pow(Math.cos(this.lat0), 4.0) / (1.0 - this.e * this.e));\n var sinz = Math.sin(this.lat0);\n var pc = Math.asin(sinz / this.rs);\n var sinzpc = Math.sin(pc);\n this.cp = Proj4js.common.latiso(0.0, pc, sinzpc) - this.rs * Proj4js.common.latiso(this.e, this.lat0, sinz);\n this.n2 = this.k0 * this.a * Math.sqrt(1.0 - this.e * this.e) / (1.0 - this.e * this.e * sinz * sinz);\n this.xs = this.x0;\n this.ys = this.y0 - this.n2 * pc;\n\n if (!this.title) this.title = \"Gauss Schreiber transverse mercator\";\n },\n\n // forward equations--mapping lat,long to x,y\n // -----------------------------------------------------------------\n forward: function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n var L = this.rs * (lon - this.lc);\n var Ls = this.cp + this.rs * Proj4js.common.latiso(this.e, lat, Math.sin(lat));\n var lat1 = Math.asin(Math.sin(L) / Proj4js.common.cosh(Ls));\n var Ls1 = Proj4js.common.latiso(0.0, lat1, Math.sin(lat1));\n p.x = this.xs + this.n2 * Ls1;\n p.y = this.ys + this.n2 * Math.atan(Proj4js.common.sinh(Ls) / Math.cos(L));\n return p;\n },\n\n // inverse equations--mapping x,y to lat/long\n // -----------------------------------------------------------------\n inverse: function inverse(p) {\n\n var x = p.x;\n var y = p.y;\n\n var L = Math.atan(Proj4js.common.sinh((x - this.xs) / this.n2) / Math.cos((y - this.ys) / this.n2));\n var lat1 = Math.asin(Math.sin((y - this.ys) / this.n2) / Proj4js.common.cosh((x - this.xs) / this.n2));\n var LC = Proj4js.common.latiso(0.0, lat1, Math.sin(lat1));\n p.x = this.lc + L / this.rs;\n p.y = Proj4js.common.invlatiso(this.e, (LC - this.cp) / this.rs);\n return p;\n }\n\n};\n/* ======================================================================\r\n projCode/ortho.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME ORTHOGRAPHIC \r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Orthographic projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nT. Mittan\t\tMar, 1993\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\n\nProj4js.Proj.ortho = {\n\n /* Initialize the Orthographic projection\r\n -------------------------------------*/\n init: function init(def) {\n //double temp;\t\t\t/* temporary variable\t\t*/\n\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/;\n this.sin_p14 = Math.sin(this.lat0);\n this.cos_p14 = Math.cos(this.lat0);\n },\n\n /* Orthographic forward equations--mapping lat,long to x,y\r\n ---------------------------------------------------*/\n forward: function forward(p) {\n var sinphi, cosphi; /* sin and cos value\t\t\t\t*/\n var dlon; /* delta longitude value\t\t\t*/\n var coslon; /* cos of longitude\t\t\t\t*/\n var ksp; /* scale factor\t\t\t\t\t*/\n var g;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\r\n -----------------*/\n dlon = Proj4js.common.adjust_lon(lon - this.long0);\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n coslon = Math.cos(dlon);\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\n ksp = 1.0;\n if (g > 0 || Math.abs(g) <= Proj4js.common.EPSLN) {\n var x = this.a * ksp * cosphi * Math.sin(dlon);\n var y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\n } else {\n Proj4js.reportError(\"orthoFwdPointError\");\n }\n p.x = x;\n p.y = y;\n return p;\n },\n\n inverse: function inverse(p) {\n var rh; /* height above ellipsoid\t\t\t*/\n var z; /* angle\t\t\t\t\t*/\n var sinz, cosz; /* sin of z and cos of z\t\t\t*/\n var temp;\n var con;\n var lon, lat;\n /* Inverse equations\r\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n if (rh > this.a + .0000001) {\n Proj4js.reportError(\"orthoInvDataError\");\n }\n z = Proj4js.common.asinz(rh / this.a);\n\n sinz = Math.sin(z);\n cosz = Math.cos(z);\n\n lon = this.long0;\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\n lat = this.lat0;\n }\n lat = Proj4js.common.asinz(cosz * this.sin_p14 + p.y * sinz * this.cos_p14 / rh);\n con = Math.abs(this.lat0) - Proj4js.common.HALF_PI;\n if (Math.abs(con) <= Proj4js.common.EPSLN) {\n if (this.lat0 >= 0) {\n lon = Proj4js.common.adjust_lon(this.long0 + Math.atan2(p.x, -p.y));\n } else {\n lon = Proj4js.common.adjust_lon(this.long0 - Math.atan2(-p.x, p.y));\n }\n }\n con = cosz - this.sin_p14 * Math.sin(lat);\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n\n/* ======================================================================\r\n projCode/krovak.js\r\n ====================================================================== */\n\n/**\r\n NOTES: According to EPSG the full Krovak projection method should have\r\n the following parameters. Within PROJ.4 the azimuth, and pseudo\r\n standard parallel are hardcoded in the algorithm and can't be \r\n altered from outside. The others all have defaults to match the\r\n common usage with Krovak projection.\r\n\r\n lat_0 = latitude of centre of the projection\r\n \r\n lon_0 = longitude of centre of the projection\r\n \r\n ** = azimuth (true) of the centre line passing through the centre of the projection\r\n\r\n ** = latitude of pseudo standard parallel\r\n \r\n k = scale factor on the pseudo standard parallel\r\n \r\n x_0 = False Easting of the centre of the projection at the apex of the cone\r\n \r\n y_0 = False Northing of the centre of the projection at the apex of the cone\r\n\r\n **/\n\nProj4js.Proj.krovak = {\n\n init: function init() {\n /* we want Bessel as fixed ellipsoid */\n this.a = 6377397.155;\n this.es = 0.006674372230614;\n this.e = Math.sqrt(this.es);\n /* if latitude of projection center is not set, use 49d30'N */\n if (!this.lat0) {\n this.lat0 = 0.863937979737193;\n }\n if (!this.long0) {\n this.long0 = 0.7417649320975901 - 0.308341501185665;\n }\n /* if scale not set default to 0.9999 */\n if (!this.k0) {\n this.k0 = 0.9999;\n }\n this.s45 = 0.785398163397448; /* 45° */\n this.s90 = 2 * this.s45;\n this.fi0 = this.lat0; /* Latitude of projection centre 49° 30' */\n /* Ellipsoid Bessel 1841 a = 6377397.155m 1/f = 299.1528128,\r\n e2=0.006674372230614;\r\n */\n this.e2 = this.es; /* 0.006674372230614; */\n this.e = Math.sqrt(this.e2);\n this.alfa = Math.sqrt(1. + this.e2 * Math.pow(Math.cos(this.fi0), 4) / (1. - this.e2));\n this.uq = 1.04216856380474; /* DU(2, 59, 42, 42.69689) */\n this.u0 = Math.asin(Math.sin(this.fi0) / this.alfa);\n this.g = Math.pow((1. + this.e * Math.sin(this.fi0)) / (1. - this.e * Math.sin(this.fi0)), this.alfa * this.e / 2.);\n this.k = Math.tan(this.u0 / 2. + this.s45) / Math.pow(Math.tan(this.fi0 / 2. + this.s45), this.alfa) * this.g;\n this.k1 = this.k0;\n this.n0 = this.a * Math.sqrt(1. - this.e2) / (1. - this.e2 * Math.pow(Math.sin(this.fi0), 2));\n this.s0 = 1.37008346281555; /* Latitude of pseudo standard parallel 78° 30'00\" N */\n this.n = Math.sin(this.s0);\n this.ro0 = this.k1 * this.n0 / Math.tan(this.s0);\n this.ad = this.s90 - this.uq;\n },\n\n /* ellipsoid */\n /* calculate xy from lat/lon */\n /* Constants, identical to inverse transform function */\n forward: function forward(p) {\n var gfi, u, deltav, s, d, eps, ro;\n var lon = p.x;\n var lat = p.y;\n var delta_lon = Proj4js.common.adjust_lon(lon - this.long0); // Delta longitude\n /* Transformation */\n gfi = Math.pow((1. + this.e * Math.sin(lat)) / (1. - this.e * Math.sin(lat)), this.alfa * this.e / 2.);\n u = 2. * (Math.atan(this.k * Math.pow(Math.tan(lat / 2. + this.s45), this.alfa) / gfi) - this.s45);\n deltav = -delta_lon * this.alfa;\n s = Math.asin(Math.cos(this.ad) * Math.sin(u) + Math.sin(this.ad) * Math.cos(u) * Math.cos(deltav));\n d = Math.asin(Math.cos(u) * Math.sin(deltav) / Math.cos(s));\n eps = this.n * d;\n ro = this.ro0 * Math.pow(Math.tan(this.s0 / 2. + this.s45), this.n) / Math.pow(Math.tan(s / 2. + this.s45), this.n);\n /* x and y are reverted! */\n //p.y = ro * Math.cos(eps) / a;\n //p.x = ro * Math.sin(eps) / a;\n p.y = ro * Math.cos(eps) / 1.0;\n p.x = ro * Math.sin(eps) / 1.0;\n\n if (this.czech) {\n p.y *= -1.0;\n p.x *= -1.0;\n }\n return p;\n },\n\n /* calculate lat/lon from xy */\n inverse: function inverse(p) {\n /* Constants, identisch wie in der Umkehrfunktion */\n var u, deltav, s, d, eps, ro, fi1;\n var ok;\n\n /* Transformation */\n /* revert y, x*/\n var tmp = p.x;\n p.x = p.y;\n p.y = tmp;\n if (this.czech) {\n p.y *= -1.0;\n p.x *= -1.0;\n }\n ro = Math.sqrt(p.x * p.x + p.y * p.y);\n eps = Math.atan2(p.y, p.x);\n d = eps / Math.sin(this.s0);\n s = 2. * (Math.atan(Math.pow(this.ro0 / ro, 1. / this.n) * Math.tan(this.s0 / 2. + this.s45)) - this.s45);\n u = Math.asin(Math.cos(this.ad) * Math.sin(s) - Math.sin(this.ad) * Math.cos(s) * Math.cos(d));\n deltav = Math.asin(Math.cos(s) * Math.sin(d) / Math.cos(u));\n p.x = this.long0 - deltav / this.alfa;\n /* ITERATION FOR lat */\n fi1 = u;\n ok = 0;\n var iter = 0;\n do {\n p.y = 2. * (Math.atan(Math.pow(this.k, -1. / this.alfa) * Math.pow(Math.tan(u / 2. + this.s45), 1. / this.alfa) * Math.pow((1. + this.e * Math.sin(fi1)) / (1. - this.e * Math.sin(fi1)), this.e / 2.)) - this.s45);\n if (Math.abs(fi1 - p.y) < 0.0000000001) ok = 1;\n fi1 = p.y;\n iter += 1;\n } while (ok == 0 && iter < 15);\n if (iter >= 15) {\n Proj4js.reportError(\"PHI3Z-CONV:Latitude failed to converge after 15 iterations\");\n //console.log('iter:', iter);\n return null;\n }\n\n return p;\n }\n};\n/* ======================================================================\r\n projCode/somerc.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME SWISS OBLIQUE MERCATOR\r\n\r\nPURPOSE:\tSwiss projection.\r\nWARNING: X and Y are inverted (weird) in the swiss coordinate system. Not\r\n here, since we want X to be horizontal and Y vertical.\r\n\r\nALGORITHM REFERENCES\r\n1. \"Formules et constantes pour le Calcul pour la\r\n projection cylindrique conforme à axe oblique et pour la transformation entre\r\n des systèmes de référence\".\r\n http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf\r\n\r\n*******************************************************************************/\n\nProj4js.Proj.somerc = {\n\n init: function init() {\n var phy0 = this.lat0;\n this.lambda0 = this.long0;\n var sinPhy0 = Math.sin(phy0);\n var semiMajorAxis = this.a;\n var invF = this.rf;\n var flattening = 1 / invF;\n var e2 = 2 * flattening - Math.pow(flattening, 2);\n var e = this.e = Math.sqrt(e2);\n this.R = this.k0 * semiMajorAxis * Math.sqrt(1 - e2) / (1 - e2 * Math.pow(sinPhy0, 2.0));\n this.alpha = Math.sqrt(1 + e2 / (1 - e2) * Math.pow(Math.cos(phy0), 4.0));\n this.b0 = Math.asin(sinPhy0 / this.alpha);\n this.K = Math.log(Math.tan(Math.PI / 4.0 + this.b0 / 2.0)) - this.alpha * Math.log(Math.tan(Math.PI / 4.0 + phy0 / 2.0)) + this.alpha * e / 2 * Math.log((1 + e * sinPhy0) / (1 - e * sinPhy0));\n },\n\n forward: function forward(p) {\n var Sa1 = Math.log(Math.tan(Math.PI / 4.0 - p.y / 2.0));\n var Sa2 = this.e / 2.0 * Math.log((1 + this.e * Math.sin(p.y)) / (1 - this.e * Math.sin(p.y)));\n var S = -this.alpha * (Sa1 + Sa2) + this.K;\n\n // spheric latitude\n var b = 2.0 * (Math.atan(Math.exp(S)) - Math.PI / 4.0);\n\n // spheric longitude\n var I = this.alpha * (p.x - this.lambda0);\n\n // psoeudo equatorial rotation\n var rotI = Math.atan(Math.sin(I) / (Math.sin(this.b0) * Math.tan(b) + Math.cos(this.b0) * Math.cos(I)));\n\n var rotB = Math.asin(Math.cos(this.b0) * Math.sin(b) - Math.sin(this.b0) * Math.cos(b) * Math.cos(I));\n\n p.y = this.R / 2.0 * Math.log((1 + Math.sin(rotB)) / (1 - Math.sin(rotB))) + this.y0;\n p.x = this.R * rotI + this.x0;\n return p;\n },\n\n inverse: function inverse(p) {\n var Y = p.x - this.x0;\n var X = p.y - this.y0;\n\n var rotI = Y / this.R;\n var rotB = 2 * (Math.atan(Math.exp(X / this.R)) - Math.PI / 4.0);\n\n var b = Math.asin(Math.cos(this.b0) * Math.sin(rotB) + Math.sin(this.b0) * Math.cos(rotB) * Math.cos(rotI));\n var I = Math.atan(Math.sin(rotI) / (Math.cos(this.b0) * Math.cos(rotI) - Math.sin(this.b0) * Math.tan(rotB)));\n\n var lambda = this.lambda0 + I / this.alpha;\n\n var S = 0.0;\n var phy = b;\n var prevPhy = -1000.0;\n var iteration = 0;\n while (Math.abs(phy - prevPhy) > 0.0000001) {\n if (++iteration > 20) {\n Proj4js.reportError(\"omercFwdInfinity\");\n return;\n }\n //S = Math.log(Math.tan(Math.PI / 4.0 + phy / 2.0));\n S = 1.0 / this.alpha * (Math.log(Math.tan(Math.PI / 4.0 + b / 2.0)) - this.K) + this.e * Math.log(Math.tan(Math.PI / 4.0 + Math.asin(this.e * Math.sin(phy)) / 2.0));\n prevPhy = phy;\n phy = 2.0 * Math.atan(Math.exp(S)) - Math.PI / 2.0;\n }\n\n p.x = lambda;\n p.y = phy;\n return p;\n }\n};\n/* ======================================================================\r\n projCode/stere.js\r\n ====================================================================== */\n\n// Initialize the Stereographic projection\n\nProj4js.Proj.stere = {\n ssfn_: function ssfn_(phit, sinphi, eccen) {\n sinphi *= eccen;\n return Math.tan(.5 * (Proj4js.common.HALF_PI + phit)) * Math.pow((1. - sinphi) / (1. + sinphi), .5 * eccen);\n },\n TOL: 1.e-8,\n NITER: 8,\n CONV: 1.e-10,\n S_POLE: 0,\n N_POLE: 1,\n OBLIQ: 2,\n EQUIT: 3,\n\n init: function init() {\n this.phits = this.lat_ts ? this.lat_ts : Proj4js.common.HALF_PI;\n var t = Math.abs(this.lat0);\n if (Math.abs(t) - Proj4js.common.HALF_PI < Proj4js.common.EPSLN) {\n this.mode = this.lat0 < 0. ? this.S_POLE : this.N_POLE;\n } else {\n this.mode = t > Proj4js.common.EPSLN ? this.OBLIQ : this.EQUIT;\n }\n this.phits = Math.abs(this.phits);\n if (this.es) {\n var X;\n\n switch (this.mode) {\n case this.N_POLE:\n case this.S_POLE:\n if (Math.abs(this.phits - Proj4js.common.HALF_PI) < Proj4js.common.EPSLN) {\n this.akm1 = 2. * this.k0 / Math.sqrt(Math.pow(1 + this.e, 1 + this.e) * Math.pow(1 - this.e, 1 - this.e));\n } else {\n t = Math.sin(this.phits);\n this.akm1 = Math.cos(this.phits) / Proj4js.common.tsfnz(this.e, this.phits, t);\n t *= this.e;\n this.akm1 /= Math.sqrt(1. - t * t);\n }\n break;\n case this.EQUIT:\n this.akm1 = 2. * this.k0;\n break;\n case this.OBLIQ:\n t = Math.sin(this.lat0);\n X = 2. * Math.atan(this.ssfn_(this.lat0, t, this.e)) - Proj4js.common.HALF_PI;\n t *= this.e;\n this.akm1 = 2. * this.k0 * Math.cos(this.lat0) / Math.sqrt(1. - t * t);\n this.sinX1 = Math.sin(X);\n this.cosX1 = Math.cos(X);\n break;\n }\n } else {\n switch (this.mode) {\n case this.OBLIQ:\n this.sinph0 = Math.sin(this.lat0);\n this.cosph0 = Math.cos(this.lat0);\n case this.EQUIT:\n this.akm1 = 2. * this.k0;\n break;\n case this.S_POLE:\n case this.N_POLE:\n this.akm1 = Math.abs(this.phits - Proj4js.common.HALF_PI) >= Proj4js.common.EPSLN ? Math.cos(this.phits) / Math.tan(Proj4js.common.FORTPI - .5 * this.phits) : 2. * this.k0;\n break;\n }\n }\n },\n\n // Stereographic forward equations--mapping lat,long to x,y\n forward: function forward(p) {\n var lon = p.x;\n lon = Proj4js.common.adjust_lon(lon - this.long0);\n var lat = p.y;\n var x, y;\n\n if (this.sphere) {\n var sinphi, cosphi, coslam, sinlam;\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n coslam = Math.cos(lon);\n sinlam = Math.sin(lon);\n switch (this.mode) {\n case this.EQUIT:\n y = 1. + cosphi * coslam;\n if (y <= Proj4js.common.EPSLN) {\n Proj4js.reportError(\"stere:forward:Equit\");\n }\n y = this.akm1 / y;\n x = y * cosphi * sinlam;\n y *= sinphi;\n break;\n case this.OBLIQ:\n y = 1. + this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\n if (y <= Proj4js.common.EPSLN) {\n Proj4js.reportError(\"stere:forward:Obliq\");\n }\n y = this.akm1 / y;\n x = y * cosphi * sinlam;\n y *= this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\n break;\n case this.N_POLE:\n coslam = -coslam;\n lat = -lat;\n //Note no break here so it conitnues through S_POLE\n case this.S_POLE:\n if (Math.abs(lat - Proj4js.common.HALF_PI) < this.TOL) {\n Proj4js.reportError(\"stere:forward:S_POLE\");\n }\n y = this.akm1 * Math.tan(Proj4js.common.FORTPI + .5 * lat);\n x = sinlam * y;\n y *= coslam;\n break;\n }\n } else {\n coslam = Math.cos(lon);\n sinlam = Math.sin(lon);\n sinphi = Math.sin(lat);\n var sinX, cosX;\n if (this.mode == this.OBLIQ || this.mode == this.EQUIT) {\n var Xt = 2. * Math.atan(this.ssfn_(lat, sinphi, this.e));\n sinX = Math.sin(Xt - Proj4js.common.HALF_PI);\n cosX = Math.cos(Xt);\n }\n switch (this.mode) {\n case this.OBLIQ:\n var A = this.akm1 / (this.cosX1 * (1. + this.sinX1 * sinX + this.cosX1 * cosX * coslam));\n y = A * (this.cosX1 * sinX - this.sinX1 * cosX * coslam);\n x = A * cosX;\n break;\n case this.EQUIT:\n var A = 2. * this.akm1 / (1. + cosX * coslam);\n y = A * sinX;\n x = A * cosX;\n break;\n case this.S_POLE:\n lat = -lat;\n coslam = -coslam;\n sinphi = -sinphi;\n case this.N_POLE:\n x = this.akm1 * Proj4js.common.tsfnz(this.e, lat, sinphi);\n y = -x * coslam;\n break;\n }\n x = x * sinlam;\n }\n p.x = x * this.a + this.x0;\n p.y = y * this.a + this.y0;\n return p;\n },\n\n //* Stereographic inverse equations--mapping x,y to lat/long\n inverse: function inverse(p) {\n var x = (p.x - this.x0) / this.a; /* descale and de-offset */\n var y = (p.y - this.y0) / this.a;\n var lon, lat;\n\n var cosphi,\n sinphi,\n tp = 0.0,\n phi_l = 0.0,\n rho,\n halfe = 0.0,\n pi2 = 0.0;\n var i;\n\n if (this.sphere) {\n var c, rh, sinc, cosc;\n\n rh = Math.sqrt(x * x + y * y);\n c = 2. * Math.atan(rh / this.akm1);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n lon = 0.;\n switch (this.mode) {\n case this.EQUIT:\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\n lat = 0.;\n } else {\n lat = Math.asin(y * sinc / rh);\n }\n if (cosc != 0. || x != 0.) lon = Math.atan2(x * sinc, cosc * rh);\n break;\n case this.OBLIQ:\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\n lat = this.phi0;\n } else {\n lat = Math.asin(cosc * this.sinph0 + y * sinc * this.cosph0 / rh);\n }\n c = cosc - this.sinph0 * Math.sin(lat);\n if (c != 0. || x != 0.) {\n lon = Math.atan2(x * sinc * this.cosph0, c * rh);\n }\n break;\n case this.N_POLE:\n y = -y;\n case this.S_POLE:\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\n lat = this.phi0;\n } else {\n lat = Math.asin(this.mode == this.S_POLE ? -cosc : cosc);\n }\n lon = x == 0. && y == 0. ? 0. : Math.atan2(x, y);\n break;\n }\n p.x = Proj4js.common.adjust_lon(lon + this.long0);\n p.y = lat;\n } else {\n rho = Math.sqrt(x * x + y * y);\n switch (this.mode) {\n case this.OBLIQ:\n case this.EQUIT:\n tp = 2. * Math.atan2(rho * this.cosX1, this.akm1);\n cosphi = Math.cos(tp);\n sinphi = Math.sin(tp);\n if (rho == 0.0) {\n phi_l = Math.asin(cosphi * this.sinX1);\n } else {\n phi_l = Math.asin(cosphi * this.sinX1 + y * sinphi * this.cosX1 / rho);\n }\n\n tp = Math.tan(.5 * (Proj4js.common.HALF_PI + phi_l));\n x *= sinphi;\n y = rho * this.cosX1 * cosphi - y * this.sinX1 * sinphi;\n pi2 = Proj4js.common.HALF_PI;\n halfe = .5 * this.e;\n break;\n case this.N_POLE:\n y = -y;\n case this.S_POLE:\n tp = -rho / this.akm1;\n phi_l = Proj4js.common.HALF_PI - 2. * Math.atan(tp);\n pi2 = -Proj4js.common.HALF_PI;\n halfe = -.5 * this.e;\n break;\n }\n for (i = this.NITER; i--; phi_l = lat) {\n //check this\n sinphi = this.e * Math.sin(phi_l);\n lat = 2. * Math.atan(tp * Math.pow((1. + sinphi) / (1. - sinphi), halfe)) - pi2;\n if (Math.abs(phi_l - lat) < this.CONV) {\n if (this.mode == this.S_POLE) lat = -lat;\n lon = x == 0. && y == 0. ? 0. : Math.atan2(x, y);\n p.x = Proj4js.common.adjust_lon(lon + this.long0);\n p.y = lat;\n return p;\n }\n }\n }\n }\n};\n/* ======================================================================\r\n projCode/nzmg.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME NEW ZEALAND MAP GRID\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the New Zealand Map Grid projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Department of Land and Survey Technical Circular 1973/32\r\n http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf\r\n\r\n2. OSG Technical Report 4.1\r\n http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf\r\n\r\n\r\nIMPLEMENTATION NOTES\r\n\r\nThe two references use different symbols for the calculated values. This\r\nimplementation uses the variable names similar to the symbols in reference [1].\r\n\r\nThe alogrithm uses different units for delta latitude and delta longitude.\r\nThe delta latitude is assumed to be in units of seconds of arc x 10^-5.\r\nThe delta longitude is the usual radians. Look out for these conversions.\r\n\r\nThe algorithm is described using complex arithmetic. There were three\r\noptions:\r\n * find and use a Javascript library for complex arithmetic\r\n * write my own complex library\r\n * expand the complex arithmetic by hand to simple arithmetic\r\n\r\nThis implementation has expanded the complex multiplication operations\r\ninto parallel simple arithmetic operations for the real and imaginary parts.\r\nThe imaginary part is way over to the right of the display; this probably\r\nviolates every coding standard in the world, but, to me, it makes it much\r\nmore obvious what is going on.\r\n\r\nThe following complex operations are used:\r\n - addition\r\n - multiplication\r\n - division\r\n - complex number raised to integer power\r\n - summation\r\n\r\nA summary of complex arithmetic operations:\r\n (from http://en.wikipedia.org/wiki/Complex_arithmetic)\r\n addition: (a + bi) + (c + di) = (a + c) + (b + d)i\r\n subtraction: (a + bi) - (c + di) = (a - c) + (b - d)i\r\n multiplication: (a + bi) x (c + di) = (ac - bd) + (bc + ad)i\r\n division: (a + bi) / (c + di) = [(ac + bd)/(cc + dd)] + [(bc - ad)/(cc + dd)]i\r\n\r\nThe algorithm needs to calculate summations of simple and complex numbers. This is\r\nimplemented using a for-loop, pre-loading the summed value to zero.\r\n\r\nThe algorithm needs to calculate theta^2, theta^3, etc while doing a summation.\r\nThere are three possible implementations:\r\n - use Math.pow in the summation loop - except for complex numbers\r\n - precalculate the values before running the loop\r\n - calculate theta^n = theta^(n-1) * theta during the loop\r\nThis implementation uses the third option for both real and complex arithmetic.\r\n\r\nFor example\r\n psi_n = 1;\r\n sum = 0;\r\n for (n = 1; n <=6; n++) {\r\n psi_n1 = psi_n * psi; // calculate psi^(n+1)\r\n psi_n = psi_n1;\r\n sum = sum + A[n] * psi_n;\r\n }\r\n\r\n\r\nTEST VECTORS\r\n\r\nNZMG E, N: 2487100.638 6751049.719 metres\r\nNZGD49 long, lat: 172.739194 -34.444066 degrees\r\n\r\nNZMG E, N: 2486533.395 6077263.661 metres\r\nNZGD49 long, lat: 172.723106 -40.512409 degrees\r\n\r\nNZMG E, N: 2216746.425 5388508.765 metres\r\nNZGD49 long, lat: 169.172062 -46.651295 degrees\r\n\r\nNote that these test vectors convert from NZMG metres to lat/long referenced\r\nto NZGD49, not the more usual WGS84. The difference is about 70m N/S and about\r\n10m E/W.\r\n\r\nThese test vectors are provided in reference [1]. Many more test\r\nvectors are available in\r\n http://www.linz.govt.nz/docs/topography/topographicdata/placenamesdatabase/nznamesmar08.zip\r\nwhich is a catalog of names on the 260-series maps.\r\n\r\n\r\nEPSG CODES\r\n\r\nNZMG EPSG:27200\r\nNZGD49 EPSG:4272\r\n\r\nhttp://spatialreference.org/ defines these as\r\n Proj4js.defs[\"EPSG:4272\"] = \"+proj=longlat +ellps=intl +datum=nzgd49 +no_defs \";\r\n Proj4js.defs[\"EPSG:27200\"] = \"+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150 +ellps=intl +datum=nzgd49 +units=m +no_defs \";\r\n\r\n\r\nLICENSE\r\n Copyright: Stephen Irons 2008\r\n Released under terms of the LGPL as per: http://www.gnu.org/copyleft/lesser.html\r\n\r\n*******************************************************************************/\n\n/**\r\n Initialize New Zealand Map Grip projection\r\n*/\n\nProj4js.Proj.nzmg = {\n\n /**\r\n * iterations: Number of iterations to refine inverse transform.\r\n * 0 -> km accuracy\r\n * 1 -> m accuracy -- suitable for most mapping applications\r\n * 2 -> mm accuracy\r\n */\n iterations: 1,\n\n init: function init() {\n this.A = new Array();\n this.A[1] = +0.6399175073;\n this.A[2] = -0.1358797613;\n this.A[3] = +0.063294409;\n this.A[4] = -0.02526853;\n this.A[5] = +0.0117879;\n this.A[6] = -0.0055161;\n this.A[7] = +0.0026906;\n this.A[8] = -0.001333;\n this.A[9] = +0.00067;\n this.A[10] = -0.00034;\n\n this.B_re = new Array();this.B_im = new Array();\n this.B_re[1] = +0.7557853228;this.B_im[1] = 0.0;\n this.B_re[2] = +0.249204646;this.B_im[2] = +0.003371507;\n this.B_re[3] = -0.001541739;this.B_im[3] = +0.041058560;\n this.B_re[4] = -0.10162907;this.B_im[4] = +0.01727609;\n this.B_re[5] = -0.26623489;this.B_im[5] = -0.36249218;\n this.B_re[6] = -0.6870983;this.B_im[6] = -1.1651967;\n\n this.C_re = new Array();this.C_im = new Array();\n this.C_re[1] = +1.3231270439;this.C_im[1] = 0.0;\n this.C_re[2] = -0.577245789;this.C_im[2] = -0.007809598;\n this.C_re[3] = +0.508307513;this.C_im[3] = -0.112208952;\n this.C_re[4] = -0.15094762;this.C_im[4] = +0.18200602;\n this.C_re[5] = +1.01418179;this.C_im[5] = +1.64497696;\n this.C_re[6] = +1.9660549;this.C_im[6] = +2.5127645;\n\n this.D = new Array();\n this.D[1] = +1.5627014243;\n this.D[2] = +0.5185406398;\n this.D[3] = -0.03333098;\n this.D[4] = -0.1052906;\n this.D[5] = -0.0368594;\n this.D[6] = +0.007317;\n this.D[7] = +0.01220;\n this.D[8] = +0.00394;\n this.D[9] = -0.0013;\n },\n\n /**\r\n New Zealand Map Grid Forward - long/lat to x/y\r\n long/lat in radians\r\n */\n forward: function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n var delta_lat = lat - this.lat0;\n var delta_lon = lon - this.long0;\n\n // 1. Calculate d_phi and d_psi ... // and d_lambda\n // For this algorithm, delta_latitude is in seconds of arc x 10-5, so we need to scale to those units. Longitude is radians.\n var d_phi = delta_lat / Proj4js.common.SEC_TO_RAD * 1E-5;var d_lambda = delta_lon;\n var d_phi_n = 1; // d_phi^0\n\n var d_psi = 0;\n for (var n = 1; n <= 10; n++) {\n d_phi_n = d_phi_n * d_phi;\n d_psi = d_psi + this.A[n] * d_phi_n;\n }\n\n // 2. Calculate theta\n var th_re = d_psi;var th_im = d_lambda;\n\n // 3. Calculate z\n var th_n_re = 1;var th_n_im = 0; // theta^0\n var th_n_re1;var th_n_im1;\n\n var z_re = 0;var z_im = 0;\n for (var n = 1; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;th_n_im = th_n_im1;\n z_re = z_re + this.B_re[n] * th_n_re - this.B_im[n] * th_n_im;z_im = z_im + this.B_im[n] * th_n_re + this.B_re[n] * th_n_im;\n }\n\n // 4. Calculate easting and northing\n p.x = z_im * this.a + this.x0;\n p.y = z_re * this.a + this.y0;\n\n return p;\n },\n\n /**\r\n New Zealand Map Grid Inverse - x/y to long/lat\r\n */\n inverse: function inverse(p) {\n\n var x = p.x;\n var y = p.y;\n\n var delta_x = x - this.x0;\n var delta_y = y - this.y0;\n\n // 1. Calculate z\n var z_re = delta_y / this.a;var z_im = delta_x / this.a;\n\n // 2a. Calculate theta - first approximation gives km accuracy\n var z_n_re = 1;var z_n_im = 0; // z^0\n var z_n_re1;var z_n_im1;\n\n var th_re = 0;var th_im = 0;\n for (var n = 1; n <= 6; n++) {\n z_n_re1 = z_n_re * z_re - z_n_im * z_im;z_n_im1 = z_n_im * z_re + z_n_re * z_im;\n z_n_re = z_n_re1;z_n_im = z_n_im1;\n th_re = th_re + this.C_re[n] * z_n_re - this.C_im[n] * z_n_im;th_im = th_im + this.C_im[n] * z_n_re + this.C_re[n] * z_n_im;\n }\n\n // 2b. Iterate to refine the accuracy of the calculation\n // 0 iterations gives km accuracy\n // 1 iteration gives m accuracy -- good enough for most mapping applications\n // 2 iterations bives mm accuracy\n for (var i = 0; i < this.iterations; i++) {\n var th_n_re = th_re;var th_n_im = th_im;\n var th_n_re1;var th_n_im1;\n\n var num_re = z_re;var num_im = z_im;\n for (var n = 2; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;th_n_im = th_n_im1;\n num_re = num_re + (n - 1) * (this.B_re[n] * th_n_re - this.B_im[n] * th_n_im);num_im = num_im + (n - 1) * (this.B_im[n] * th_n_re + this.B_re[n] * th_n_im);\n }\n\n th_n_re = 1;th_n_im = 0;\n var den_re = this.B_re[1];var den_im = this.B_im[1];\n for (var n = 2; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;th_n_im = th_n_im1;\n den_re = den_re + n * (this.B_re[n] * th_n_re - this.B_im[n] * th_n_im);den_im = den_im + n * (this.B_im[n] * th_n_re + this.B_re[n] * th_n_im);\n }\n\n // Complex division\n var den2 = den_re * den_re + den_im * den_im;\n th_re = (num_re * den_re + num_im * den_im) / den2;th_im = (num_im * den_re - num_re * den_im) / den2;\n }\n\n // 3. Calculate d_phi ... // and d_lambda\n var d_psi = th_re;var d_lambda = th_im;\n var d_psi_n = 1; // d_psi^0\n\n var d_phi = 0;\n for (var n = 1; n <= 9; n++) {\n d_psi_n = d_psi_n * d_psi;\n d_phi = d_phi + this.D[n] * d_psi_n;\n }\n\n // 4. Calculate latitude and longitude\n // d_phi is calcuated in second of arc * 10^-5, so we need to scale back to radians. d_lambda is in radians.\n var lat = this.lat0 + d_phi * Proj4js.common.SEC_TO_RAD * 1E5;\n var lon = this.long0 + d_lambda;\n\n p.x = lon;\n p.y = lat;\n\n return p;\n }\n};\n/* ======================================================================\r\n projCode/mill.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME MILLER CYLINDRICAL \r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Miller Cylindrical projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE \r\n---------- ---- \r\nT. Mittan\t\tMarch, 1993\r\n\r\nThis function was adapted from the Lambert Azimuthal Equal Area projection\r\ncode (FORTRAN) in the General Cartographic Transformation Package software\r\nwhich is available from the U.S. Geological Survey National Mapping Division.\r\n \r\nALGORITHM REFERENCES\r\n\r\n1. \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\r\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\r\n\r\n2. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n3. \"Software Documentation for GCTP General Cartographic Transformation\r\n Package\", U.S. Geological Survey National Mapping Division, May 1982.\r\n*******************************************************************************/\n\nProj4js.Proj.mill = {\n\n /* Initialize the Miller Cylindrical projection\r\n -------------------------------------------*/\n init: function init() {\n //no-op\n },\n\n /* Miller Cylindrical forward equations--mapping lat,long to x,y\r\n ------------------------------------------------------------*/\n forward: function forward(p) {\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\r\n -----------------*/\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\n var x = this.x0 + this.a * dlon;\n var y = this.y0 + this.a * Math.log(Math.tan(Proj4js.common.PI / 4.0 + lat / 2.5)) * 1.25;\n\n p.x = x;\n p.y = y;\n return p;\n }, //millFwd()\n\n /* Miller Cylindrical inverse equations--mapping x,y to lat/long\r\n ------------------------------------------------------------*/\n inverse: function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n\n var lon = Proj4js.common.adjust_lon(this.long0 + p.x / this.a);\n var lat = 2.5 * (Math.atan(Math.exp(0.8 * p.y / this.a)) - Proj4js.common.PI / 4.0);\n\n p.x = lon;\n p.y = lat;\n return p;\n } //millInv()\n};\n/* ======================================================================\r\n projCode/gnom.js\r\n ====================================================================== */\n\n/*****************************************************************************\r\nNAME GNOMONIC\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Gnomonic Projection.\r\n Implementation based on the existing sterea and ortho\r\n implementations.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nRichard Marsden November 2009\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Flattening the Earth - Two Thousand Years of Map \r\n Projections\", University of Chicago Press 1993\r\n\r\n2. Wolfram Mathworld \"Gnomonic Projection\"\r\n http://mathworld.wolfram.com/GnomonicProjection.html\r\n Accessed: 12th November 2009\r\n******************************************************************************/\n\nProj4js.Proj.gnom = {\n\n /* Initialize the Gnomonic projection\r\n -------------------------------------*/\n init: function init(def) {\n\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\n this.sin_p14 = Math.sin(this.lat0);\n this.cos_p14 = Math.cos(this.lat0);\n // Approximation for projecting points to the horizon (infinity)\n this.infinity_dist = 1000 * this.a;\n this.rc = 1;\n },\n\n /* Gnomonic forward equations--mapping lat,long to x,y\r\n ---------------------------------------------------*/\n forward: function forward(p) {\n var sinphi, cosphi; /* sin and cos value\t\t\t\t*/\n var dlon; /* delta longitude value\t\t\t*/\n var coslon; /* cos of longitude\t\t\t\t*/\n var ksp; /* scale factor\t\t\t\t\t*/\n var g;\n var x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\r\n -----------------*/\n dlon = Proj4js.common.adjust_lon(lon - this.long0);\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n coslon = Math.cos(dlon);\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\n ksp = 1.0;\n if (g > 0 || Math.abs(g) <= Proj4js.common.EPSLN) {\n x = this.x0 + this.a * ksp * cosphi * Math.sin(dlon) / g;\n y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon) / g;\n } else {\n Proj4js.reportError(\"orthoFwdPointError\");\n\n // Point is in the opposing hemisphere and is unprojectable\n // We still need to return a reasonable point, so we project \n // to infinity, on a bearing \n // equivalent to the northern hemisphere equivalent\n // This is a reasonable approximation for short shapes and lines that \n // straddle the horizon.\n\n x = this.x0 + this.infinity_dist * cosphi * Math.sin(dlon);\n y = this.y0 + this.infinity_dist * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\n }\n p.x = x;\n p.y = y;\n return p;\n },\n\n inverse: function inverse(p) {\n var rh; /* Rho */\n var z; /* angle */\n var sinc, cosc;\n var c;\n var lon, lat;\n\n /* Inverse equations\r\n -----------------*/\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n p.x /= this.k0;\n p.y /= this.k0;\n\n if (rh = Math.sqrt(p.x * p.x + p.y * p.y)) {\n c = Math.atan2(rh, this.rc);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n\n lat = Proj4js.common.asinz(cosc * this.sin_p14 + p.y * sinc * this.cos_p14 / rh);\n lon = Math.atan2(p.x * sinc, rh * this.cos_p14 * cosc - p.y * this.sin_p14 * sinc);\n lon = Proj4js.common.adjust_lon(this.long0 + lon);\n } else {\n lat = this.phic0;\n lon = 0.0;\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n\n/* ======================================================================\r\n projCode/sinu.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME \t\tSINUSOIDAL\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Sinusoidal projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE \r\n---------- ---- \r\nD. Steinwand, EROS May, 1991 \r\n\r\nThis function was adapted from the Sinusoidal projection code (FORTRAN) in the \r\nGeneral Cartographic Transformation Package software which is available from \r\nthe U.S. Geological Survey National Mapping Division.\r\n \r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. \"Software Documentation for GCTP General Cartographic Transformation\r\n Package\", U.S. Geological Survey National Mapping Division, May 1982.\r\n*******************************************************************************/\n\nProj4js.Proj.sinu = {\n\n /* Initialize the Sinusoidal projection\r\n ------------------------------------*/\n init: function init() {\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\n\n if (!this.sphere) {\n this.en = Proj4js.common.pj_enfn(this.es);\n } else {\n this.n = 1.;\n this.m = 0.;\n this.es = 0;\n this.C_y = Math.sqrt((this.m + 1.) / this.n);\n this.C_x = this.C_y / (this.m + 1.);\n }\n },\n\n /* Sinusoidal forward equations--mapping lat,long to x,y\r\n -----------------------------------------------------*/\n forward: function forward(p) {\n var x, y, delta_lon;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\r\n -----------------*/\n lon = Proj4js.common.adjust_lon(lon - this.long0);\n\n if (this.sphere) {\n if (!this.m) {\n lat = this.n != 1. ? Math.asin(this.n * Math.sin(lat)) : lat;\n } else {\n var k = this.n * Math.sin(lat);\n for (var i = Proj4js.common.MAX_ITER; i; --i) {\n var V = (this.m * lat + Math.sin(lat) - k) / (this.m + Math.cos(lat));\n lat -= V;\n if (Math.abs(V) < Proj4js.common.EPSLN) break;\n }\n }\n x = this.a * this.C_x * lon * (this.m + Math.cos(lat));\n y = this.a * this.C_y * lat;\n } else {\n\n var s = Math.sin(lat);\n var c = Math.cos(lat);\n y = this.a * Proj4js.common.pj_mlfn(lat, s, c, this.en);\n x = this.a * lon * c / Math.sqrt(1. - this.es * s * s);\n }\n\n p.x = x;\n p.y = y;\n return p;\n },\n\n inverse: function inverse(p) {\n var lat, temp, lon;\n\n /* Inverse equations\r\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n lat = p.y / this.a;\n\n if (this.sphere) {\n\n p.y /= this.C_y;\n lat = this.m ? Math.asin((this.m * p.y + Math.sin(p.y)) / this.n) : this.n != 1. ? Math.asin(Math.sin(p.y) / this.n) : p.y;\n lon = p.x / (this.C_x * (this.m + Math.cos(p.y)));\n } else {\n lat = Proj4js.common.pj_inv_mlfn(p.y / this.a, this.es, this.en);\n var s = Math.abs(lat);\n if (s < Proj4js.common.HALF_PI) {\n s = Math.sin(lat);\n temp = this.long0 + p.x * Math.sqrt(1. - this.es * s * s) / (this.a * Math.cos(lat));\n //temp = this.long0 + p.x / (this.a * Math.cos(lat));\n lon = Proj4js.common.adjust_lon(temp);\n } else if (s - Proj4js.common.EPSLN < Proj4js.common.HALF_PI) {\n lon = this.long0;\n }\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n\n/* ======================================================================\r\n projCode/vandg.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME VAN DER GRINTEN \r\n\r\nPURPOSE:\tTransforms input Easting and Northing to longitude and\r\n latitude for the Van der Grinten projection. The\r\n Easting and Northing must be in meters. The longitude\r\n and latitude values will be returned in radians.\r\n\r\nPROGRAMMER DATE \r\n---------- ---- \r\nT. Mittan\t\tMarch, 1993\r\n\r\nThis function was adapted from the Van Der Grinten projection code\r\n(FORTRAN) in the General Cartographic Transformation Package software\r\nwhich is available from the U.S. Geological Survey National Mapping Division.\r\n \r\nALGORITHM REFERENCES\r\n\r\n1. \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\r\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\r\n\r\n2. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n3. \"Software Documentation for GCTP General Cartographic Transformation\r\n Package\", U.S. Geological Survey National Mapping Division, May 1982.\r\n*******************************************************************************/\n\nProj4js.Proj.vandg = {\n\n /* Initialize the Van Der Grinten projection\r\n ----------------------------------------*/\n init: function init() {\n this.R = 6370997.0; //Radius of earth\n },\n\n forward: function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n /* Forward equations\r\n -----------------*/\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\n var x, y;\n\n if (Math.abs(lat) <= Proj4js.common.EPSLN) {\n x = this.x0 + this.R * dlon;\n y = this.y0;\n }\n var theta = Proj4js.common.asinz(2.0 * Math.abs(lat / Proj4js.common.PI));\n if (Math.abs(dlon) <= Proj4js.common.EPSLN || Math.abs(Math.abs(lat) - Proj4js.common.HALF_PI) <= Proj4js.common.EPSLN) {\n x = this.x0;\n if (lat >= 0) {\n y = this.y0 + Proj4js.common.PI * this.R * Math.tan(.5 * theta);\n } else {\n y = this.y0 + Proj4js.common.PI * this.R * -Math.tan(.5 * theta);\n }\n // return(OK);\n }\n var al = .5 * Math.abs(Proj4js.common.PI / dlon - dlon / Proj4js.common.PI);\n var asq = al * al;\n var sinth = Math.sin(theta);\n var costh = Math.cos(theta);\n\n var g = costh / (sinth + costh - 1.0);\n var gsq = g * g;\n var m = g * (2.0 / sinth - 1.0);\n var msq = m * m;\n var con = Proj4js.common.PI * this.R * (al * (g - msq) + Math.sqrt(asq * (g - msq) * (g - msq) - (msq + asq) * (gsq - msq))) / (msq + asq);\n if (dlon < 0) {\n con = -con;\n }\n x = this.x0 + con;\n con = Math.abs(con / (Proj4js.common.PI * this.R));\n if (lat >= 0) {\n y = this.y0 + Proj4js.common.PI * this.R * Math.sqrt(1.0 - con * con - 2.0 * al * con);\n } else {\n y = this.y0 - Proj4js.common.PI * this.R * Math.sqrt(1.0 - con * con - 2.0 * al * con);\n }\n p.x = x;\n p.y = y;\n return p;\n },\n\n /* Van Der Grinten inverse equations--mapping x,y to lat/long\r\n ---------------------------------------------------------*/\n inverse: function inverse(p) {\n var lon, lat;\n var xx, yy, xys, c1, c2, c3;\n var al, asq;\n var a1;\n var m1;\n var con;\n var th1;\n var d;\n\n /* inverse equations\r\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n con = Proj4js.common.PI * this.R;\n xx = p.x / con;\n yy = p.y / con;\n xys = xx * xx + yy * yy;\n c1 = -Math.abs(yy) * (1.0 + xys);\n c2 = c1 - 2.0 * yy * yy + xx * xx;\n c3 = -2.0 * c1 + 1.0 + 2.0 * yy * yy + xys * xys;\n d = yy * yy / c3 + (2.0 * c2 * c2 * c2 / c3 / c3 / c3 - 9.0 * c1 * c2 / c3 / c3) / 27.0;\n a1 = (c1 - c2 * c2 / 3.0 / c3) / c3;\n m1 = 2.0 * Math.sqrt(-a1 / 3.0);\n con = 3.0 * d / a1 / m1;\n if (Math.abs(con) > 1.0) {\n if (con >= 0.0) {\n con = 1.0;\n } else {\n con = -1.0;\n }\n }\n th1 = Math.acos(con) / 3.0;\n if (p.y >= 0) {\n lat = (-m1 * Math.cos(th1 + Proj4js.common.PI / 3.0) - c2 / 3.0 / c3) * Proj4js.common.PI;\n } else {\n lat = -(-m1 * Math.cos(th1 + Proj4js.common.PI / 3.0) - c2 / 3.0 / c3) * Proj4js.common.PI;\n }\n\n if (Math.abs(xx) < Proj4js.common.EPSLN) {\n lon = this.long0;\n }\n lon = Proj4js.common.adjust_lon(this.long0 + Proj4js.common.PI * (xys - 1.0 + Math.sqrt(1.0 + 2.0 * (xx * xx - yy * yy) + xys * xys)) / 2.0 / xx);\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n/* ======================================================================\r\n projCode/cea.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME LAMBERT CYLINDRICAL EQUAL AREA\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Lambert Cylindrical Equal Area projection.\r\n This class of projection includes the Behrmann and \r\n Gall-Peters Projections. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE \r\n---------- ----\r\nR. Marsden August 2009\r\nWinwaed Software Tech LLC, http://www.winwaed.com\r\n\r\nThis function was adapted from the Miller Cylindrical Projection in the Proj4JS\r\nlibrary.\r\n\r\nNote: This implementation assumes a Spherical Earth. The (commented) code \r\nhas been included for the ellipsoidal forward transform, but derivation of \r\nthe ellispoidal inverse transform is beyond me. Note that most of the \r\nProj4JS implementations do NOT currently support ellipsoidal figures. \r\nTherefore this is not seen as a problem - especially this lack of support \r\nis explicitly stated here.\r\n \r\nALGORITHM REFERENCES\r\n\r\n1. \"Cartographic Projection Procedures for the UNIX Environment - \r\n A User's Manual\" by Gerald I. Evenden, USGS Open File Report 90-284\r\n and Release 4 Interim Reports (2003)\r\n\r\n2. Snyder, John P., \"Flattening the Earth - Two Thousand Years of Map \r\n Projections\", Univ. Chicago Press, 1993\r\n*******************************************************************************/\n\nProj4js.Proj.cea = {\n\n /* Initialize the Cylindrical Equal Area projection\r\n -------------------------------------------*/\n init: function init() {\n //no-op\n },\n\n /* Cylindrical Equal Area forward equations--mapping lat,long to x,y\r\n ------------------------------------------------------------*/\n forward: function forward(p) {\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\r\n -----------------*/\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\n var x = this.x0 + this.a * dlon * Math.cos(this.lat_ts);\n var y = this.y0 + this.a * Math.sin(lat) / Math.cos(this.lat_ts);\n /* Elliptical Forward Transform\r\n Not implemented due to a lack of a matchign inverse function\r\n {\r\n var Sin_Lat = Math.sin(lat);\r\n var Rn = this.a * (Math.sqrt(1.0e0 - this.es * Sin_Lat * Sin_Lat ));\r\n x = this.x0 + this.a * dlon * Math.cos(this.lat_ts);\r\n y = this.y0 + Rn * Math.sin(lat) / Math.cos(this.lat_ts);\r\n }\r\n */\n\n p.x = x;\n p.y = y;\n return p;\n }, //ceaFwd()\n\n /* Cylindrical Equal Area inverse equations--mapping x,y to lat/long\r\n ------------------------------------------------------------*/\n inverse: function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n\n var lon = Proj4js.common.adjust_lon(this.long0 + p.x / this.a / Math.cos(this.lat_ts));\n\n var lat = Math.asin(p.y / this.a * Math.cos(this.lat_ts));\n\n p.x = lon;\n p.y = lat;\n return p;\n } //ceaInv()\n};\n/* ======================================================================\r\n projCode/eqc.js\r\n ====================================================================== */\n\n/* similar to equi.js FIXME proj4 uses eqc */\nProj4js.Proj.eqc = {\n init: function init() {\n\n if (!this.x0) this.x0 = 0;\n if (!this.y0) this.y0 = 0;\n if (!this.lat0) this.lat0 = 0;\n if (!this.long0) this.long0 = 0;\n if (!this.lat_ts) this.lat_ts = 0;\n if (!this.title) this.title = \"Equidistant Cylindrical (Plate Carre)\";\n\n this.rc = Math.cos(this.lat_ts);\n },\n\n // forward equations--mapping lat,long to x,y\n // -----------------------------------------------------------------\n forward: function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\n var dlat = Proj4js.common.adjust_lat(lat - this.lat0);\n p.x = this.x0 + this.a * dlon * this.rc;\n p.y = this.y0 + this.a * dlat;\n return p;\n },\n\n // inverse equations--mapping x,y to lat/long\n // -----------------------------------------------------------------\n inverse: function inverse(p) {\n\n var x = p.x;\n var y = p.y;\n\n p.x = Proj4js.common.adjust_lon(this.long0 + (x - this.x0) / (this.a * this.rc));\n p.y = Proj4js.common.adjust_lat(this.lat0 + (y - this.y0) / this.a);\n return p;\n }\n\n};\n/* ======================================================================\r\n projCode/cass.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME CASSINI\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Cassini projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n Ported from PROJ.4.\r\n\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n*******************************************************************************/\n\n//Proj4js.defs[\"EPSG:28191\"] = \"+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs\";\n\n// Initialize the Cassini projection\n// -----------------------------------------------------------------\n\nProj4js.Proj.cass = {\n init: function init() {\n if (!this.sphere) {\n this.en = Proj4js.common.pj_enfn(this.es);\n this.m0 = Proj4js.common.pj_mlfn(this.lat0, Math.sin(this.lat0), Math.cos(this.lat0), this.en);\n }\n },\n\n C1: .16666666666666666666,\n C2: .00833333333333333333,\n C3: .04166666666666666666,\n C4: .33333333333333333333,\n C5: .06666666666666666666,\n\n /* Cassini forward equations--mapping lat,long to x,y\r\n -----------------------------------------------------------------------*/\n forward: function forward(p) {\n\n /* Forward equations\r\n -----------------*/\n var x, y;\n var lam = p.x;\n var phi = p.y;\n lam = Proj4js.common.adjust_lon(lam - this.long0);\n\n if (this.sphere) {\n x = Math.asin(Math.cos(phi) * Math.sin(lam));\n y = Math.atan2(Math.tan(phi), Math.cos(lam)) - this.phi0;\n } else {\n //ellipsoid\n this.n = Math.sin(phi);\n this.c = Math.cos(phi);\n y = Proj4js.common.pj_mlfn(phi, this.n, this.c, this.en);\n this.n = 1. / Math.sqrt(1. - this.es * this.n * this.n);\n this.tn = Math.tan(phi);\n this.t = this.tn * this.tn;\n this.a1 = lam * this.c;\n this.c *= this.es * this.c / (1 - this.es);\n this.a2 = this.a1 * this.a1;\n x = this.n * this.a1 * (1. - this.a2 * this.t * (this.C1 - (8. - this.t + 8. * this.c) * this.a2 * this.C2));\n y -= this.m0 - this.n * this.tn * this.a2 * (.5 + (5. - this.t + 6. * this.c) * this.a2 * this.C3);\n }\n\n p.x = this.a * x + this.x0;\n p.y = this.a * y + this.y0;\n return p;\n }, //cassFwd()\n\n /* Inverse equations\r\n -----------------*/\n inverse: function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var x = p.x / this.a;\n var y = p.y / this.a;\n var phi, lam;\n\n if (this.sphere) {\n this.dd = y + this.lat0;\n phi = Math.asin(Math.sin(this.dd) * Math.cos(x));\n lam = Math.atan2(Math.tan(x), Math.cos(this.dd));\n } else {\n /* ellipsoid */\n var ph1 = Proj4js.common.pj_inv_mlfn(this.m0 + y, this.es, this.en);\n this.tn = Math.tan(ph1);\n this.t = this.tn * this.tn;\n this.n = Math.sin(ph1);\n this.r = 1. / (1. - this.es * this.n * this.n);\n this.n = Math.sqrt(this.r);\n this.r *= (1. - this.es) * this.n;\n this.dd = x / this.n;\n this.d2 = this.dd * this.dd;\n phi = ph1 - this.n * this.tn / this.r * this.d2 * (.5 - (1. + 3. * this.t) * this.d2 * this.C3);\n lam = this.dd * (1. + this.t * this.d2 * (-this.C4 + (1. + 3. * this.t) * this.d2 * this.C5)) / Math.cos(ph1);\n }\n p.x = Proj4js.common.adjust_lon(this.long0 + lam);\n p.y = phi;\n return p;\n } //cassInv()\n\n /* ======================================================================\r\n projCode/gauss.js\r\n ====================================================================== */\n\n};Proj4js.Proj.gauss = {\n\n init: function init() {\n var sphi = Math.sin(this.lat0);\n var cphi = Math.cos(this.lat0);\n cphi *= cphi;\n this.rc = Math.sqrt(1.0 - this.es) / (1.0 - this.es * sphi * sphi);\n this.C = Math.sqrt(1.0 + this.es * cphi * cphi / (1.0 - this.es));\n this.phic0 = Math.asin(sphi / this.C);\n this.ratexp = 0.5 * this.C * this.e;\n this.K = Math.tan(0.5 * this.phic0 + Proj4js.common.FORTPI) / (Math.pow(Math.tan(0.5 * this.lat0 + Proj4js.common.FORTPI), this.C) * Proj4js.common.srat(this.e * sphi, this.ratexp));\n },\n\n forward: function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n p.y = 2.0 * Math.atan(this.K * Math.pow(Math.tan(0.5 * lat + Proj4js.common.FORTPI), this.C) * Proj4js.common.srat(this.e * Math.sin(lat), this.ratexp)) - Proj4js.common.HALF_PI;\n p.x = this.C * lon;\n return p;\n },\n\n inverse: function inverse(p) {\n var DEL_TOL = 1e-14;\n var lon = p.x / this.C;\n var lat = p.y;\n var num = Math.pow(Math.tan(0.5 * lat + Proj4js.common.FORTPI) / this.K, 1. / this.C);\n for (var i = Proj4js.common.MAX_ITER; i > 0; --i) {\n lat = 2.0 * Math.atan(num * Proj4js.common.srat(this.e * Math.sin(p.y), -0.5 * this.e)) - Proj4js.common.HALF_PI;\n if (Math.abs(lat - p.y) < DEL_TOL) break;\n p.y = lat;\n }\n /* convergence failed */\n if (!i) {\n Proj4js.reportError(\"gauss:inverse:convergence failed\");\n return null;\n }\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n\n/* ======================================================================\r\n projCode/omerc.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME OBLIQUE MERCATOR (HOTINE) \r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Oblique Mercator projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nT. Mittan\t\tMar, 1993\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n*******************************************************************************/\n\nProj4js.Proj.omerc = {\n\n /* Initialize the Oblique Mercator projection\r\n ------------------------------------------*/\n init: function init() {\n if (!this.mode) this.mode = 0;\n if (!this.lon1) {\n this.lon1 = 0;this.mode = 1;\n }\n if (!this.lon2) this.lon2 = 0;\n if (!this.lat2) this.lat2 = 0;\n\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\n var temp = this.b / this.a;\n var es = 1.0 - Math.pow(temp, 2);\n var e = Math.sqrt(es);\n\n this.sin_p20 = Math.sin(this.lat0);\n this.cos_p20 = Math.cos(this.lat0);\n\n this.con = 1.0 - this.es * this.sin_p20 * this.sin_p20;\n this.com = Math.sqrt(1.0 - es);\n this.bl = Math.sqrt(1.0 + this.es * Math.pow(this.cos_p20, 4.0) / (1.0 - es));\n this.al = this.a * this.bl * this.k0 * this.com / this.con;\n if (Math.abs(this.lat0) < Proj4js.common.EPSLN) {\n this.ts = 1.0;\n this.d = 1.0;\n this.el = 1.0;\n } else {\n this.ts = Proj4js.common.tsfnz(this.e, this.lat0, this.sin_p20);\n this.con = Math.sqrt(this.con);\n this.d = this.bl * this.com / (this.cos_p20 * this.con);\n if (this.d * this.d - 1.0 > 0.0) {\n if (this.lat0 >= 0.0) {\n this.f = this.d + Math.sqrt(this.d * this.d - 1.0);\n } else {\n this.f = this.d - Math.sqrt(this.d * this.d - 1.0);\n }\n } else {\n this.f = this.d;\n }\n this.el = this.f * Math.pow(this.ts, this.bl);\n }\n\n //this.longc=52.60353916666667;\n\n if (this.mode != 0) {\n this.g = .5 * (this.f - 1.0 / this.f);\n this.gama = Proj4js.common.asinz(Math.sin(this.alpha) / this.d);\n this.longc = this.longc - Proj4js.common.asinz(this.g * Math.tan(this.gama)) / this.bl;\n\n /* Report parameters common to format B\r\n -------------------------------------*/\n //genrpt(azimuth * R2D,\"Azimuth of Central Line: \");\n //cenlon(lon_origin);\n // cenlat(lat_origin);\n\n this.con = Math.abs(this.lat0);\n if (this.con > Proj4js.common.EPSLN && Math.abs(this.con - Proj4js.common.HALF_PI) > Proj4js.common.EPSLN) {\n this.singam = Math.sin(this.gama);\n this.cosgam = Math.cos(this.gama);\n\n this.sinaz = Math.sin(this.alpha);\n this.cosaz = Math.cos(this.alpha);\n\n if (this.lat0 >= 0) {\n this.u = this.al / this.bl * Math.atan(Math.sqrt(this.d * this.d - 1.0) / this.cosaz);\n } else {\n this.u = -(this.al / this.bl) * Math.atan(Math.sqrt(this.d * this.d - 1.0) / this.cosaz);\n }\n } else {\n Proj4js.reportError(\"omerc:Init:DataError\");\n }\n } else {\n this.sinphi = Math.sin(this.at1);\n this.ts1 = Proj4js.common.tsfnz(this.e, this.lat1, this.sinphi);\n this.sinphi = Math.sin(this.lat2);\n this.ts2 = Proj4js.common.tsfnz(this.e, this.lat2, this.sinphi);\n this.h = Math.pow(this.ts1, this.bl);\n this.l = Math.pow(this.ts2, this.bl);\n this.f = this.el / this.h;\n this.g = .5 * (this.f - 1.0 / this.f);\n this.j = (this.el * this.el - this.l * this.h) / (this.el * this.el + this.l * this.h);\n this.p = (this.l - this.h) / (this.l + this.h);\n this.dlon = this.lon1 - this.lon2;\n if (this.dlon < -Proj4js.common.PI) this.lon2 = this.lon2 - 2.0 * Proj4js.common.PI;\n if (this.dlon > Proj4js.common.PI) this.lon2 = this.lon2 + 2.0 * Proj4js.common.PI;\n this.dlon = this.lon1 - this.lon2;\n this.longc = .5 * (this.lon1 + this.lon2) - Math.atan(this.j * Math.tan(.5 * this.bl * this.dlon) / this.p) / this.bl;\n this.dlon = Proj4js.common.adjust_lon(this.lon1 - this.longc);\n this.gama = Math.atan(Math.sin(this.bl * this.dlon) / this.g);\n this.alpha = Proj4js.common.asinz(this.d * Math.sin(this.gama));\n\n /* Report parameters common to format A\r\n -------------------------------------*/\n\n if (Math.abs(this.lat1 - this.lat2) <= Proj4js.common.EPSLN) {\n Proj4js.reportError(\"omercInitDataError\");\n //return(202);\n } else {\n this.con = Math.abs(this.lat1);\n }\n if (this.con <= Proj4js.common.EPSLN || Math.abs(this.con - Proj4js.common.HALF_PI) <= Proj4js.common.EPSLN) {\n Proj4js.reportError(\"omercInitDataError\");\n //return(202);\n } else {\n if (Math.abs(Math.abs(this.lat0) - Proj4js.common.HALF_PI) <= Proj4js.common.EPSLN) {\n Proj4js.reportError(\"omercInitDataError\");\n //return(202);\n }\n }\n\n this.singam = Math.sin(this.gam);\n this.cosgam = Math.cos(this.gam);\n\n this.sinaz = Math.sin(this.alpha);\n this.cosaz = Math.cos(this.alpha);\n\n if (this.lat0 >= 0) {\n this.u = this.al / this.bl * Math.atan(Math.sqrt(this.d * this.d - 1.0) / this.cosaz);\n } else {\n this.u = -(this.al / this.bl) * Math.atan(Math.sqrt(this.d * this.d - 1.0) / this.cosaz);\n }\n }\n },\n\n /* Oblique Mercator forward equations--mapping lat,long to x,y\r\n ----------------------------------------------------------*/\n forward: function forward(p) {\n var theta; /* angle\t\t\t\t\t*/\n var sin_phi, cos_phi; /* sin and cos value\t\t\t\t*/\n var b; /* temporary values\t\t\t\t*/\n var c, t, tq; /* temporary values\t\t\t\t*/\n var con, n, ml; /* cone constant, small m\t\t\t*/\n var q, us, vl;\n var ul, vs;\n var s;\n var dlon;\n var ts1;\n\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\r\n -----------------*/\n sin_phi = Math.sin(lat);\n dlon = Proj4js.common.adjust_lon(lon - this.longc);\n vl = Math.sin(this.bl * dlon);\n if (Math.abs(Math.abs(lat) - Proj4js.common.HALF_PI) > Proj4js.common.EPSLN) {\n ts1 = Proj4js.common.tsfnz(this.e, lat, sin_phi);\n q = this.el / Math.pow(ts1, this.bl);\n s = .5 * (q - 1.0 / q);\n t = .5 * (q + 1.0 / q);\n ul = (s * this.singam - vl * this.cosgam) / t;\n con = Math.cos(this.bl * dlon);\n if (Math.abs(con) < .0000001) {\n us = this.al * this.bl * dlon;\n } else {\n us = this.al * Math.atan((s * this.cosgam + vl * this.singam) / con) / this.bl;\n if (con < 0) us = us + Proj4js.common.PI * this.al / this.bl;\n }\n } else {\n if (lat >= 0) {\n ul = this.singam;\n } else {\n ul = -this.singam;\n }\n us = this.al * lat / this.bl;\n }\n if (Math.abs(Math.abs(ul) - 1.0) <= Proj4js.common.EPSLN) {\n //alert(\"Point projects into infinity\",\"omer-for\");\n Proj4js.reportError(\"omercFwdInfinity\");\n //return(205);\n }\n vs = .5 * this.al * Math.log((1.0 - ul) / (1.0 + ul)) / this.bl;\n us = us - this.u;\n var x = this.x0 + vs * this.cosaz + us * this.sinaz;\n var y = this.y0 + us * this.cosaz - vs * this.sinaz;\n\n p.x = x;\n p.y = y;\n return p;\n },\n\n inverse: function inverse(p) {\n var delta_lon; /* Delta longitude (Given longitude - center \t*/\n var theta; /* angle\t\t\t\t\t*/\n var delta_theta; /* adjusted longitude\t\t\t\t*/\n var sin_phi, cos_phi; /* sin and cos value\t\t\t\t*/\n var b; /* temporary values\t\t\t\t*/\n var c, t, tq; /* temporary values\t\t\t\t*/\n var con, n, ml; /* cone constant, small m\t\t\t*/\n var vs, us, q, s, ts1;\n var vl, ul, bs;\n var lon, lat;\n var flag;\n\n /* Inverse equations\r\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n flag = 0;\n vs = p.x * this.cosaz - p.y * this.sinaz;\n us = p.y * this.cosaz + p.x * this.sinaz;\n us = us + this.u;\n q = Math.exp(-this.bl * vs / this.al);\n s = .5 * (q - 1.0 / q);\n t = .5 * (q + 1.0 / q);\n vl = Math.sin(this.bl * us / this.al);\n ul = (vl * this.cosgam + s * this.singam) / t;\n if (Math.abs(Math.abs(ul) - 1.0) <= Proj4js.common.EPSLN) {\n lon = this.longc;\n if (ul >= 0.0) {\n lat = Proj4js.common.HALF_PI;\n } else {\n lat = -Proj4js.common.HALF_PI;\n }\n } else {\n con = 1.0 / this.bl;\n ts1 = Math.pow(this.el / Math.sqrt((1.0 + ul) / (1.0 - ul)), con);\n lat = Proj4js.common.phi2z(this.e, ts1);\n //if (flag != 0)\n //return(flag);\n //~ con = Math.cos(this.bl * us /al);\n theta = this.longc - Math.atan2(s * this.cosgam - vl * this.singam, con) / this.bl;\n lon = Proj4js.common.adjust_lon(theta);\n }\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n/* ======================================================================\r\n projCode/lcc.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME LAMBERT CONFORMAL CONIC\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Lambert Conformal Conic projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n*******************************************************************************/\n\n//<2104> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x0=-17044 +x0=-23139.97 +ellps=intl +units=m +no_defs no_defs\n\n// Initialize the Lambert Conformal conic projection\n// -----------------------------------------------------------------\n\n//Proj4js.Proj.lcc = Class.create();\nProj4js.Proj.lcc = {\n init: function init() {\n\n // array of: r_maj,r_min,lat1,lat2,c_lon,c_lat,false_east,false_north\n //double c_lat; /* center latitude */\n //double c_lon; /* center longitude */\n //double lat1; /* first standard parallel */\n //double lat2; /* second standard parallel */\n //double r_maj; /* major axis */\n //double r_min; /* minor axis */\n //double false_east; /* x offset in meters */\n //double false_north; /* y offset in meters */\n\n if (!this.lat2) {\n this.lat2 = this.lat0;\n } //if lat2 is not defined\n if (!this.k0) this.k0 = 1.0;\n\n // Standard Parallels cannot be equal and on opposite sides of the equator\n if (Math.abs(this.lat1 + this.lat2) < Proj4js.common.EPSLN) {\n Proj4js.reportError(\"lcc:init: Equal Latitudes\");\n return;\n }\n\n var temp = this.b / this.a;\n this.e = Math.sqrt(1.0 - temp * temp);\n\n var sin1 = Math.sin(this.lat1);\n var cos1 = Math.cos(this.lat1);\n var ms1 = Proj4js.common.msfnz(this.e, sin1, cos1);\n var ts1 = Proj4js.common.tsfnz(this.e, this.lat1, sin1);\n\n var sin2 = Math.sin(this.lat2);\n var cos2 = Math.cos(this.lat2);\n var ms2 = Proj4js.common.msfnz(this.e, sin2, cos2);\n var ts2 = Proj4js.common.tsfnz(this.e, this.lat2, sin2);\n\n var ts0 = Proj4js.common.tsfnz(this.e, this.lat0, Math.sin(this.lat0));\n\n if (Math.abs(this.lat1 - this.lat2) > Proj4js.common.EPSLN) {\n this.ns = Math.log(ms1 / ms2) / Math.log(ts1 / ts2);\n } else {\n this.ns = sin1;\n }\n this.f0 = ms1 / (this.ns * Math.pow(ts1, this.ns));\n this.rh = this.a * this.f0 * Math.pow(ts0, this.ns);\n if (!this.title) this.title = \"Lambert Conformal Conic\";\n },\n\n // Lambert Conformal conic forward equations--mapping lat,long to x,y\n // -----------------------------------------------------------------\n forward: function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n // convert to radians\n if (lat <= 90.0 && lat >= -90.0 && lon <= 180.0 && lon >= -180.0) {\n //lon = lon * Proj4js.common.D2R;\n //lat = lat * Proj4js.common.D2R;\n } else {\n Proj4js.reportError(\"lcc:forward: llInputOutOfRange: \" + lon + \" : \" + lat);\n return null;\n }\n\n var con = Math.abs(Math.abs(lat) - Proj4js.common.HALF_PI);\n var ts, rh1;\n if (con > Proj4js.common.EPSLN) {\n ts = Proj4js.common.tsfnz(this.e, lat, Math.sin(lat));\n rh1 = this.a * this.f0 * Math.pow(ts, this.ns);\n } else {\n con = lat * this.ns;\n if (con <= 0) {\n Proj4js.reportError(\"lcc:forward: No Projection\");\n return null;\n }\n rh1 = 0;\n }\n var theta = this.ns * Proj4js.common.adjust_lon(lon - this.long0);\n p.x = this.k0 * (rh1 * Math.sin(theta)) + this.x0;\n p.y = this.k0 * (this.rh - rh1 * Math.cos(theta)) + this.y0;\n\n return p;\n },\n\n // Lambert Conformal Conic inverse equations--mapping x,y to lat/long\n // -----------------------------------------------------------------\n inverse: function inverse(p) {\n\n var rh1, con, ts;\n var lat, lon;\n var x = (p.x - this.x0) / this.k0;\n var y = this.rh - (p.y - this.y0) / this.k0;\n if (this.ns > 0) {\n rh1 = Math.sqrt(x * x + y * y);\n con = 1.0;\n } else {\n rh1 = -Math.sqrt(x * x + y * y);\n con = -1.0;\n }\n var theta = 0.0;\n if (rh1 != 0) {\n theta = Math.atan2(con * x, con * y);\n }\n if (rh1 != 0 || this.ns > 0.0) {\n con = 1.0 / this.ns;\n ts = Math.pow(rh1 / (this.a * this.f0), con);\n lat = Proj4js.common.phi2z(this.e, ts);\n if (lat == -9999) return null;\n } else {\n lat = -Proj4js.common.HALF_PI;\n }\n lon = Proj4js.common.adjust_lon(theta / this.ns + this.long0);\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n\n/* ======================================================================\r\n projCode/laea.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME LAMBERT AZIMUTHAL EQUAL-AREA\r\n \r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Lambert Azimuthal Equal-Area projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE \r\n---------- ---- \r\nD. Steinwand, EROS March, 1991 \r\n\r\nThis function was adapted from the Lambert Azimuthal Equal Area projection\r\ncode (FORTRAN) in the General Cartographic Transformation Package software\r\nwhich is available from the U.S. Geological Survey National Mapping Division.\r\n \r\nALGORITHM REFERENCES\r\n\r\n1. \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\r\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\r\n\r\n2. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n\r\n3. \"Software Documentation for GCTP General Cartographic Transformation\r\n Package\", U.S. Geological Survey National Mapping Division, May 1982.\r\n*******************************************************************************/\n\nProj4js.Proj.laea = {\n S_POLE: 1,\n N_POLE: 2,\n EQUIT: 3,\n OBLIQ: 4,\n\n /* Initialize the Lambert Azimuthal Equal Area projection\r\n ------------------------------------------------------*/\n init: function init() {\n var t = Math.abs(this.lat0);\n if (Math.abs(t - Proj4js.common.HALF_PI) < Proj4js.common.EPSLN) {\n this.mode = this.lat0 < 0. ? this.S_POLE : this.N_POLE;\n } else if (Math.abs(t) < Proj4js.common.EPSLN) {\n this.mode = this.EQUIT;\n } else {\n this.mode = this.OBLIQ;\n }\n if (this.es > 0) {\n var sinphi;\n\n this.qp = Proj4js.common.qsfnz(this.e, 1.0);\n this.mmf = .5 / (1. - this.es);\n this.apa = this.authset(this.es);\n switch (this.mode) {\n case this.N_POLE:\n case this.S_POLE:\n this.dd = 1.;\n break;\n case this.EQUIT:\n this.rq = Math.sqrt(.5 * this.qp);\n this.dd = 1. / this.rq;\n this.xmf = 1.;\n this.ymf = .5 * this.qp;\n break;\n case this.OBLIQ:\n this.rq = Math.sqrt(.5 * this.qp);\n sinphi = Math.sin(this.lat0);\n this.sinb1 = Proj4js.common.qsfnz(this.e, sinphi) / this.qp;\n this.cosb1 = Math.sqrt(1. - this.sinb1 * this.sinb1);\n this.dd = Math.cos(this.lat0) / (Math.sqrt(1. - this.es * sinphi * sinphi) * this.rq * this.cosb1);\n this.ymf = (this.xmf = this.rq) / this.dd;\n this.xmf *= this.dd;\n break;\n }\n } else {\n if (this.mode == this.OBLIQ) {\n this.sinph0 = Math.sin(this.lat0);\n this.cosph0 = Math.cos(this.lat0);\n }\n }\n },\n\n /* Lambert Azimuthal Equal Area forward equations--mapping lat,long to x,y\r\n -----------------------------------------------------------------------*/\n forward: function forward(p) {\n\n /* Forward equations\r\n -----------------*/\n var x, y;\n var lam = p.x;\n var phi = p.y;\n lam = Proj4js.common.adjust_lon(lam - this.long0);\n\n if (this.sphere) {\n var coslam, cosphi, sinphi;\n\n sinphi = Math.sin(phi);\n cosphi = Math.cos(phi);\n coslam = Math.cos(lam);\n switch (this.mode) {\n case this.OBLIQ:\n case this.EQUIT:\n y = this.mode == this.EQUIT ? 1. + cosphi * coslam : 1. + this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\n if (y <= Proj4js.common.EPSLN) {\n Proj4js.reportError(\"laea:fwd:y less than eps\");\n return null;\n }\n y = Math.sqrt(2. / y);\n x = y * cosphi * Math.sin(lam);\n y *= this.mode == this.EQUIT ? sinphi : this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\n break;\n case this.N_POLE:\n coslam = -coslam;\n case this.S_POLE:\n if (Math.abs(phi + this.phi0) < Proj4js.common.EPSLN) {\n Proj4js.reportError(\"laea:fwd:phi < eps\");\n return null;\n }\n y = Proj4js.common.FORTPI - phi * .5;\n y = 2. * (this.mode == this.S_POLE ? Math.cos(y) : Math.sin(y));\n x = y * Math.sin(lam);\n y *= coslam;\n break;\n }\n } else {\n var coslam,\n sinlam,\n sinphi,\n q,\n sinb = 0.0,\n cosb = 0.0,\n b = 0.0;\n\n coslam = Math.cos(lam);\n sinlam = Math.sin(lam);\n sinphi = Math.sin(phi);\n q = Proj4js.common.qsfnz(this.e, sinphi);\n if (this.mode == this.OBLIQ || this.mode == this.EQUIT) {\n sinb = q / this.qp;\n cosb = Math.sqrt(1. - sinb * sinb);\n }\n switch (this.mode) {\n case this.OBLIQ:\n b = 1. + this.sinb1 * sinb + this.cosb1 * cosb * coslam;\n break;\n case this.EQUIT:\n b = 1. + cosb * coslam;\n break;\n case this.N_POLE:\n b = Proj4js.common.HALF_PI + phi;\n q = this.qp - q;\n break;\n case this.S_POLE:\n b = phi - Proj4js.common.HALF_PI;\n q = this.qp + q;\n break;\n }\n if (Math.abs(b) < Proj4js.common.EPSLN) {\n Proj4js.reportError(\"laea:fwd:b < eps\");\n return null;\n }\n switch (this.mode) {\n case this.OBLIQ:\n case this.EQUIT:\n b = Math.sqrt(2. / b);\n if (this.mode == this.OBLIQ) {\n y = this.ymf * b * (this.cosb1 * sinb - this.sinb1 * cosb * coslam);\n } else {\n y = (b = Math.sqrt(2. / (1. + cosb * coslam))) * sinb * this.ymf;\n }\n x = this.xmf * b * cosb * sinlam;\n break;\n case this.N_POLE:\n case this.S_POLE:\n if (q >= 0.) {\n x = (b = Math.sqrt(q)) * sinlam;\n y = coslam * (this.mode == this.S_POLE ? b : -b);\n } else {\n x = y = 0.;\n }\n break;\n }\n }\n\n //v 1.0\n /*\r\n var sin_lat=Math.sin(lat);\r\n var cos_lat=Math.cos(lat);\r\n var sin_delta_lon=Math.sin(delta_lon);\r\n var cos_delta_lon=Math.cos(delta_lon);\r\n var g =this.sin_lat_o * sin_lat +this.cos_lat_o * cos_lat * cos_delta_lon;\r\n if (g == -1.0) {\r\n Proj4js.reportError(\"laea:fwd:Point projects to a circle of radius \"+ 2.0 * R);\r\n return null;\r\n }\r\n var ksp = this.a * Math.sqrt(2.0 / (1.0 + g));\r\n var x = ksp * cos_lat * sin_delta_lon + this.x0;\r\n var y = ksp * (this.cos_lat_o * sin_lat - this.sin_lat_o * cos_lat * cos_delta_lon) + this.y0;\r\n */\n p.x = this.a * x + this.x0;\n p.y = this.a * y + this.y0;\n return p;\n }, //lamazFwd()\n\n /* Inverse equations\r\n -----------------*/\n inverse: function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var x = p.x / this.a;\n var y = p.y / this.a;\n var lam, phi;\n\n if (this.sphere) {\n var cosz = 0.0,\n rh,\n sinz = 0.0;\n\n rh = Math.sqrt(x * x + y * y);\n phi = rh * .5;\n if (phi > 1.) {\n Proj4js.reportError(\"laea:Inv:DataError\");\n return null;\n }\n phi = 2. * Math.asin(phi);\n if (this.mode == this.OBLIQ || this.mode == this.EQUIT) {\n sinz = Math.sin(phi);\n cosz = Math.cos(phi);\n }\n switch (this.mode) {\n case this.EQUIT:\n phi = Math.abs(rh) <= Proj4js.common.EPSLN ? 0. : Math.asin(y * sinz / rh);\n x *= sinz;\n y = cosz * rh;\n break;\n case this.OBLIQ:\n phi = Math.abs(rh) <= Proj4js.common.EPSLN ? this.phi0 : Math.asin(cosz * this.sinph0 + y * sinz * this.cosph0 / rh);\n x *= sinz * this.cosph0;\n y = (cosz - Math.sin(phi) * this.sinph0) * rh;\n break;\n case this.N_POLE:\n y = -y;\n phi = Proj4js.common.HALF_PI - phi;\n break;\n case this.S_POLE:\n phi -= Proj4js.common.HALF_PI;\n break;\n }\n lam = y == 0. && (this.mode == this.EQUIT || this.mode == this.OBLIQ) ? 0. : Math.atan2(x, y);\n } else {\n var cCe,\n sCe,\n q,\n rho,\n ab = 0.0;\n\n switch (this.mode) {\n case this.EQUIT:\n case this.OBLIQ:\n x /= this.dd;\n y *= this.dd;\n rho = Math.sqrt(x * x + y * y);\n if (rho < Proj4js.common.EPSLN) {\n p.x = 0.;\n p.y = this.phi0;\n return p;\n }\n sCe = 2. * Math.asin(.5 * rho / this.rq);\n cCe = Math.cos(sCe);\n x *= sCe = Math.sin(sCe);\n if (this.mode == this.OBLIQ) {\n ab = cCe * this.sinb1 + y * sCe * this.cosb1 / rho;\n q = this.qp * ab;\n y = rho * this.cosb1 * cCe - y * this.sinb1 * sCe;\n } else {\n ab = y * sCe / rho;\n q = this.qp * ab;\n y = rho * cCe;\n }\n break;\n case this.N_POLE:\n y = -y;\n case this.S_POLE:\n q = x * x + y * y;\n if (!q) {\n p.x = 0.;\n p.y = this.phi0;\n return p;\n }\n /*\r\n q = this.qp - q;\r\n */\n ab = 1. - q / this.qp;\n if (this.mode == this.S_POLE) {\n ab = -ab;\n }\n break;\n }\n lam = Math.atan2(x, y);\n phi = this.authlat(Math.asin(ab), this.apa);\n }\n\n /*\r\n var Rh = Math.Math.sqrt(p.x *p.x +p.y * p.y);\r\n var temp = Rh / (2.0 * this.a);\r\n if (temp > 1) {\r\n Proj4js.reportError(\"laea:Inv:DataError\");\r\n return null;\r\n }\r\n var z = 2.0 * Proj4js.common.asinz(temp);\r\n var sin_z=Math.sin(z);\r\n var cos_z=Math.cos(z);\r\n var lon =this.long0;\r\n if (Math.abs(Rh) > Proj4js.common.EPSLN) {\r\n var lat = Proj4js.common.asinz(this.sin_lat_o * cos_z +this. cos_lat_o * sin_z *p.y / Rh);\r\n var temp =Math.abs(this.lat0) - Proj4js.common.HALF_PI;\r\n if (Math.abs(temp) > Proj4js.common.EPSLN) {\r\n temp = cos_z -this.sin_lat_o * Math.sin(lat);\r\n if(temp!=0.0) lon=Proj4js.common.adjust_lon(this.long0+Math.atan2(p.x*sin_z*this.cos_lat_o,temp*Rh));\r\n } else if (this.lat0 < 0.0) {\r\n lon = Proj4js.common.adjust_lon(this.long0 - Math.atan2(-p.x,p.y));\r\n } else {\r\n lon = Proj4js.common.adjust_lon(this.long0 + Math.atan2(p.x, -p.y));\r\n }\r\n } else {\r\n lat = this.lat0;\r\n }\r\n */\n //return(OK);\n p.x = Proj4js.common.adjust_lon(this.long0 + lam);\n p.y = phi;\n return p;\n }, //lamazInv()\n\n /* determine latitude from authalic latitude */\n P00: .33333333333333333333,\n P01: .17222222222222222222,\n P02: .10257936507936507936,\n P10: .06388888888888888888,\n P11: .06640211640211640211,\n P20: .01641501294219154443,\n\n authset: function authset(es) {\n var t;\n var APA = new Array();\n APA[0] = es * this.P00;\n t = es * es;\n APA[0] += t * this.P01;\n APA[1] = t * this.P10;\n t *= es;\n APA[0] += t * this.P02;\n APA[1] += t * this.P11;\n APA[2] = t * this.P20;\n return APA;\n },\n\n authlat: function authlat(beta, APA) {\n var t = beta + beta;\n return beta + APA[0] * Math.sin(t) + APA[1] * Math.sin(t + t) + APA[2] * Math.sin(t + t + t);\n }\n\n};\n\n/* ======================================================================\r\n projCode/aeqd.js\r\n ====================================================================== */\n\nProj4js.Proj.aeqd = {\n\n init: function init() {\n this.sin_p12 = Math.sin(this.lat0);\n this.cos_p12 = Math.cos(this.lat0);\n },\n\n forward: function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var ksp;\n\n var sinphi = Math.sin(p.y);\n var cosphi = Math.cos(p.y);\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\n var coslon = Math.cos(dlon);\n var g = this.sin_p12 * sinphi + this.cos_p12 * cosphi * coslon;\n if (Math.abs(Math.abs(g) - 1.0) < Proj4js.common.EPSLN) {\n ksp = 1.0;\n if (g < 0.0) {\n Proj4js.reportError(\"aeqd:Fwd:PointError\");\n return;\n }\n } else {\n var z = Math.acos(g);\n ksp = z / Math.sin(z);\n }\n p.x = this.x0 + this.a * ksp * cosphi * Math.sin(dlon);\n p.y = this.y0 + this.a * ksp * (this.cos_p12 * sinphi - this.sin_p12 * cosphi * coslon);\n return p;\n },\n\n inverse: function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n\n var rh = Math.sqrt(p.x * p.x + p.y * p.y);\n if (rh > 2.0 * Proj4js.common.HALF_PI * this.a) {\n Proj4js.reportError(\"aeqdInvDataError\");\n return;\n }\n var z = rh / this.a;\n\n var sinz = Math.sin(z);\n var cosz = Math.cos(z);\n\n var lon = this.long0;\n var lat;\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\n lat = this.lat0;\n } else {\n lat = Proj4js.common.asinz(cosz * this.sin_p12 + p.y * sinz * this.cos_p12 / rh);\n var con = Math.abs(this.lat0) - Proj4js.common.HALF_PI;\n if (Math.abs(con) <= Proj4js.common.EPSLN) {\n if (this.lat0 >= 0.0) {\n lon = Proj4js.common.adjust_lon(this.long0 + Math.atan2(p.x, -p.y));\n } else {\n lon = Proj4js.common.adjust_lon(this.long0 - Math.atan2(-p.x, p.y));\n }\n } else {\n con = cosz - this.sin_p12 * Math.sin(lat);\n if (Math.abs(con) < Proj4js.common.EPSLN && Math.abs(p.x) < Proj4js.common.EPSLN) {\n //no-op, just keep the lon value as is\n } else {\n var temp = Math.atan2(p.x * sinz * this.cos_p12, con * rh);\n lon = Proj4js.common.adjust_lon(this.long0 + Math.atan2(p.x * sinz * this.cos_p12, con * rh));\n }\n }\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n/* ======================================================================\r\n projCode/moll.js\r\n ====================================================================== */\n\n/*******************************************************************************\r\nNAME MOLLWEIDE\r\n\r\nPURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the MOllweide projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n\r\nPROGRAMMER DATE\r\n---------- ----\r\nD. Steinwand, EROS May, 1991; Updated Sept, 1992; Updated Feb, 1993\r\nS. Nelson, EDC\t\tJun, 2993;\tMade corrections in precision and\r\n number of iterations.\r\n\r\nALGORITHM REFERENCES\r\n\r\n1. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n\r\n2. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n*******************************************************************************/\n\nProj4js.Proj.moll = {\n\n /* Initialize the Mollweide projection\r\n ------------------------------------*/\n init: function init() {\n //no-op\n },\n\n /* Mollweide forward equations--mapping lat,long to x,y\r\n ----------------------------------------------------*/\n forward: function forward(p) {\n\n /* Forward equations\r\n -----------------*/\n var lon = p.x;\n var lat = p.y;\n\n var delta_lon = Proj4js.common.adjust_lon(lon - this.long0);\n var theta = lat;\n var con = Proj4js.common.PI * Math.sin(lat);\n\n /* Iterate using the Newton-Raphson method to find theta\r\n -----------------------------------------------------*/\n for (var i = 0; true; i++) {\n var delta_theta = -(theta + Math.sin(theta) - con) / (1.0 + Math.cos(theta));\n theta += delta_theta;\n if (Math.abs(delta_theta) < Proj4js.common.EPSLN) break;\n if (i >= 50) {\n Proj4js.reportError(\"moll:Fwd:IterationError\");\n //return(241);\n }\n }\n theta /= 2.0;\n\n /* If the latitude is 90 deg, force the x coordinate to be \"0 + false easting\"\r\n this is done here because of precision problems with \"cos(theta)\"\r\n --------------------------------------------------------------------------*/\n if (Proj4js.common.PI / 2 - Math.abs(lat) < Proj4js.common.EPSLN) delta_lon = 0;\n var x = 0.900316316158 * this.a * delta_lon * Math.cos(theta) + this.x0;\n var y = 1.4142135623731 * this.a * Math.sin(theta) + this.y0;\n\n p.x = x;\n p.y = y;\n return p;\n },\n\n inverse: function inverse(p) {\n var theta;\n var arg;\n\n /* Inverse equations\r\n -----------------*/\n p.x -= this.x0;\n //~ p.y -= this.y0;\n var arg = p.y / (1.4142135623731 * this.a);\n\n /* Because of division by zero problems, 'arg' can not be 1.0. Therefore\r\n a number very close to one is used instead.\r\n -------------------------------------------------------------------*/\n if (Math.abs(arg) > 0.999999999999) arg = 0.999999999999;\n var theta = Math.asin(arg);\n var lon = Proj4js.common.adjust_lon(this.long0 + p.x / (0.900316316158 * this.a * Math.cos(theta)));\n if (lon < -Proj4js.common.PI) lon = -Proj4js.common.PI;\n if (lon > Proj4js.common.PI) lon = Proj4js.common.PI;\n arg = (2.0 * theta + Math.sin(2.0 * theta)) / Proj4js.common.PI;\n if (Math.abs(arg) > 1.0) arg = 1.0;\n var lat = Math.asin(arg);\n //return(OK);\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n};\n\nwindow.Proj4js = Proj4js;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Proj4js);\n\n/***/ }),\n\n/***/ 564:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(119);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_resource__ = __webpack_require__(510);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__App__ = __webpack_require__(509);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__App___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__App__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__router__ = __webpack_require__(494);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_es6_promise__ = __webpack_require__(497);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_es6_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_es6_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_moment__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_moment__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_leaflet__ = __webpack_require__(157);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_leaflet___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_leaflet__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_leaflet_draw__ = __webpack_require__(500);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_leaflet_draw___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_leaflet_draw__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_leaflet_easybutton__ = __webpack_require__(501);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_leaflet_easybutton___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_leaflet_easybutton__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_leaflet_fullscreen__ = __webpack_require__(502);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_leaflet_fullscreen___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_leaflet_fullscreen__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_proj4_dist_proj4_src_js__ = __webpack_require__(239);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_proj4_dist_proj4_src_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_proj4_dist_proj4_src_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_babel_polyfill__ = __webpack_require__(496);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_babel_polyfill___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_babel_polyfill__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_webrtc_adapter__ = __webpack_require__(240);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_webrtc_adapter___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_webrtc_adapter__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__store_store__ = __webpack_require__(495);\n// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_5_es6_promise___default.a.polyfill();\n\ndelete __WEBPACK_IMPORTED_MODULE_7_leaflet___default.a.Icon.Default.prototype._getIconUrl;\n\n__WEBPACK_IMPORTED_MODULE_7_leaflet___default.a.Icon.Default.mergeOptions({\n iconRetinaUrl: __webpack_require__(505),\n iconUrl: __webpack_require__(506),\n shadowUrl: __webpack_require__(507)\n});\n\nwindow.proj4 = __WEBPACK_IMPORTED_MODULE_11_proj4_dist_proj4_src_js__[\"default\"];\nwindow.jQuery = __WEBPACK_IMPORTED_MODULE_0_jquery___default.a;\nwindow.$ = __WEBPACK_IMPORTED_MODULE_0_jquery___default.a;\nwindow['moment'] = __WEBPACK_IMPORTED_MODULE_6_moment___default.a;\nwindow['L'] = __WEBPACK_IMPORTED_MODULE_7_leaflet___default.a;\nwindow.MotionUI = __webpack_require__(503);\n\n// Values \nwindow['apikey'] = '';\nwindow['user'] = '';\nwindow['url'] = '';\nwindow['version'] = '';\nwindow['selectedDate'] = null;\n\n__webpack_require__(493);\n__webpack_require__(238);\n__webpack_require__(498);\n__webpack_require__(499);\n__webpack_require__(504);\nvar VueCookie = __webpack_require__(508);\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_2_vue_resource__[\"a\" /* default */]);\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].use(VueCookie);\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.interceptors.push(function (request, next) {\n request.credentials = true;\n request.headers.set('Authorization', 'Basic ' + btoa('auth:' + window['apikey']));\n next();\n});\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.options.credentials = true;\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.options.xhr = {\n withCredentials: true\n};\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.options.emulateJSON = true;\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.options.emulateHTTP = true;\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.options.crossOrigin = true;\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.headers.common['Access-Control-Allow-Origin'] = '*';\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.headers.common['Content-Type'] = 'application/json';\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.headers.common['Accept'] = 'application/json';\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].http.headers.common['Access-Control-Allow-Headers'] = 'Origin, Accept, Content-Type, Authorization, Access-Control-Allow-Origin';\n\n__WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"].config.productionTip = false;\n\n/* eslint-disable no-new */\nnew __WEBPACK_IMPORTED_MODULE_1_vue__[\"default\"]({\n el: '#app',\n store: __WEBPACK_IMPORTED_MODULE_14__store_store__[\"a\" /* store */],\n router: __WEBPACK_IMPORTED_MODULE_4__router__[\"a\" /* default */],\n template: '',\n components: { App: __WEBPACK_IMPORTED_MODULE_3__App___default.a }\n});\n\n$(document).foundation();\n\n__WEBPACK_IMPORTED_MODULE_6_moment___default.a.locale('da');\n\n/***/ }),\n\n/***/ 565:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__ = __webpack_require__(52);\n\n\n\nvar getOrientedImage = __webpack_require__(883);\n\nvar formUploadHandler = {\n data: function data() {\n return {\n base64: ''\n };\n },\n\n methods: {\n doremoveUpload: function doremoveUpload(uploadId) {\n\n console.log(\"UPLOADID removing\", uploadId, this.localImages);\n\n var _this = this;\n\n _this.localImages = _this.localImages.filter(function (ul) {\n return ul.id != uploadId;\n });\n console.log(\"UploadId\", uploadId);\n //_this.$emit('removeImagePopup', uploadId);\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].removeItem(\"MTTempImages\", uploadId).then(function (result) {\n console.log(\"Image removed as well\");\n });\n },\n process: function process(arrayB) {\n var dv = new DataView(new ArrayBuffer(arrayB.toString()));\n var offset = 0,\n recess = 0;\n var pieces = [];\n var i = 0;\n if (dv.getUint16(offset) == 0xffd8) {\n offset += 2;\n var app1 = dv.getUint16(offset);\n offset += 2;\n while (offset < dv.byteLength) {\n if (app1 == 0xffe1) {\n\n pieces[i] = { recess: recess, offset: offset - 2 };\n recess = offset + dv.getUint16(offset);\n i++;\n } else if (app1 == 0xffda) {\n break;\n }\n offset += dv.getUint16(offset);\n var app1 = dv.getUint16(offset);\n offset += 2;\n }\n if (pieces.length > 0) {\n var newPieces = [];\n pieces.forEach(function (v) {\n newPieces.push(arrayB.slice(v.recess, v.offset));\n }, this);\n newPieces.push(arrayB.slice(recess));\n return new Blob(newPieces, { type: 'image/jpeg' });\n }\n }\n },\n gotUpload: function gotUpload(event) {\n var _this = this;\n\n var file = '';\n var res = '';\n var fullres = '';\n var fullimg = '';\n\n console.log(\"gotUpload : event\", event);\n\n if (event.target.files.length == 1 && event.target.files[0].type.indexOf(\"image/\") == 0) {\n\n var reader = new FileReader();\n\n reader.onload = function (theFile) {\n\n var imageId = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])();\n var customerId;\n\n var randomNamePart = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])();\n\n var numberInIndexedDB = 1;\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].iterate('MTTempImages', function (value, key, iterationNumber) {\n console.log('value.projectId == _this.filteredResult.id', value.projectId == _this.filteredResult.id);\n if (value.projectId == _this.filteredResult.id) {\n numberInIndexedDB += 1;\n }\n });\n\n var customer = JSON.parse(_this.$cookie.get('user'));\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].getItem(\"MTUsers\", \"users\").then(function (result) {\n\n customerId = customer.id;\n file = event.target.files[0];\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n getOrientedImage(file, function (err, canvas) {\n if (!err) {\n canvas.toBlob(function (blob) {\n resolve(blob);\n }, 'image/jpeg', 1);\n }\n });\n });\n }).then(function (orientedImageBlob) {\n new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var arrayBuffer;\n var fileReader = new FileReader();\n fileReader.onload = function () {\n var arrayBf = fileReader.result;\n console.log(\"arrayBf\", arrayBf);\n\n //resolve(_this.process(this.result));\n resolve(this.result);\n };\n fileReader.readAsArrayBuffer(orientedImageBlob);\n }).then(function (orientedImageArrayBuffer) {\n //Create thumbnail\n fullres = orientedImageArrayBuffer;\n return _this.createThumbnail(orientedImageArrayBuffer, event.target.files[0].type);\n }).then(function (result) {\n res = result;\n return _this.createThumbnail(fullres, event.target.files[0].type, 800, 1);\n }).then(function (result) {\n fullimg = result;\n console.log(\"result\", result);\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var readerFull = new window.FileReader();\n\n readerFull.readAsDataURL(new Blob([new Uint8Array(result)]));\n readerFull.onloadend = function () {\n var base64data = readerFull.result;\n resolve(base64data);\n };\n });\n }).then(function (base64) {\n console.log(\"base64 after\", base64.length);\n _this.base64 = base64;\n var imageObj = {\n \"id\": imageId,\n \"thumb\": res,\n \"data\": fullimg,\n \"base64\": _this.base64,\n \"mongoObjectId\": __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])(),\n \"type\": file.type,\n \"state\": \"saved\",\n \"fileName\": _this.filteredResult.maalernummer + '_' + numberInIndexedDB + '.jpg',\n \"filePath\": \"CustomerData\\\\\" + customerId + \"\\\\Projects\\\\\" + _this.filteredResult.id,\n \"projectId\": _this.filteredResult.id\n };\n console.log('imageObj', imageObj);\n\n _this.localImages.push(imageObj);\n return __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].setItem(\"MTTempImages\", imageId, imageObj);\n }).then(function (result) {\n var uploadObj = {\n \"uploadId\": __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])(),\n \"fileName\": _this.filteredResult.maalernummer + '_' + numberInIndexedDB + '.jpg',\n \"filePath\": \"CustomerData\\\\\" + customerId + \"\\\\Projects\\\\\" + _this.filteredResult.id,\n \"createdDateTime\": new Date().toISOString(),\n \"caption\": \"\",\n \"tags\": [],\n \"imageId\": imageId\n };\n console.log('uploadObj', uploadObj);\n _this.$store.dispatch('updateNotification', 1);\n _this.$emit('uploadObj', uploadObj);\n\n console.log(\"localImages\", _this.localImages);\n\n event.target.value = \"\";\n });\n });\n };\n reader.readAsArrayBuffer(event.target.files[0]);\n }\n },\n gotScreenshot: function gotScreenshot(base64Image) {\n var _this = this;\n\n var file = this.dataURLtoFile(base64Image, 'Screenshot');\n var res = '';\n var fullres = '';\n var fullimg = '';\n\n var reader = new FileReader();\n\n reader.onload = function (theFile) {\n\n var imageId = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])();\n var customerId;\n\n var randomNamePart = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])();\n\n var numberInIndexedDB = 1;\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].iterate('MTTempImages', function (value, key, iterationNumber) {\n console.log('value.projectId == _this.filteredResult.id', value.projectId == _this.filteredResult.id);\n if (value.projectId == _this.filteredResult.id) {\n numberInIndexedDB += 1;\n }\n });\n\n var customer = JSON.parse(_this.$cookie.get('user'));\n\n __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].getItem(\"MTUsers\", \"users\").then(function (result) {\n\n customerId = customer.id;\n\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n getOrientedImage(file, function (err, canvas) {\n if (!err) {\n canvas.toBlob(function (blob) {\n resolve(blob);\n }, 'image/jpeg', 1);\n }\n });\n });\n }).then(function (orientedImageBlob) {\n new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var arrayBuffer;\n var fileReader = new FileReader();\n fileReader.onload = function () {\n var arrayBf = fileReader.result;\n console.log(\"arrayBf\", arrayBf);\n\n //resolve(_this.process(this.result));\n resolve(this.result);\n };\n fileReader.readAsArrayBuffer(orientedImageBlob);\n }).then(function (orientedImageArrayBuffer) {\n //Create thumbnail\n fullres = orientedImageArrayBuffer;\n return _this.createThumbnail(orientedImageArrayBuffer, file.type);\n }).then(function (result) {\n res = result;\n return _this.createThumbnail(fullres, file.type, 800, 1);\n }).then(function (result) {\n fullimg = result;\n console.log(\"result\", result);\n return new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n var readerFull = new window.FileReader();\n\n readerFull.readAsDataURL(new Blob([new Uint8Array(result)]));\n readerFull.onloadend = function () {\n var base64data = readerFull.result;\n resolve(base64data);\n };\n });\n }).then(function (base64) {\n console.log(\"base64 after\", base64.length);\n _this.base64 = base64;\n var imageObj = {\n \"id\": imageId,\n \"thumb\": res,\n \"data\": fullimg,\n \"base64\": _this.base64,\n \"mongoObjectId\": __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])(),\n \"type\": file.type,\n \"state\": \"saved\",\n \"fileName\": _this.filteredResult.maalernummer + '_' + numberInIndexedDB + '.jpg',\n \"filePath\": \"CustomerData\\\\\" + customerId + \"\\\\Projects\\\\\" + _this.filteredResult.id,\n \"projectId\": _this.filteredResult.id\n };\n console.log('imageObj', imageObj);\n\n _this.localImages.push(imageObj);\n return __WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"a\" /* default */].setItem(\"MTTempImages\", imageId, imageObj);\n }).then(function (result) {\n var uploadObj = {\n \"uploadId\": __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])(),\n \"fileName\": _this.filteredResult.maalernummer + '_' + numberInIndexedDB + '.jpg',\n \"filePath\": \"CustomerData\\\\\" + customerId + \"\\\\Projects\\\\\" + _this.filteredResult.id,\n \"createdDateTime\": new Date().toISOString(),\n \"caption\": \"\",\n \"tags\": [],\n \"imageId\": imageId\n };\n console.log('uploadObj', uploadObj);\n _this.$store.dispatch('updateNotification', 1);\n _this.$emit('uploadObj', uploadObj);\n\n console.log(\"localImages\", _this.localImages);\n\n // event.target.value = \"\";\n });\n });\n };\n reader.readAsArrayBuffer(file);\n },\n dataURLtoFile: function dataURLtoFile(dataurl, filename) {\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new File([u8arr], filename, { type: mime });\n },\n createThumbnail: function createThumbnail(image, type, width, quality) {\n if (width == undefined) {\n width = 254;\n }\n\n if (quality == undefined) {\n quality = 0.7;\n }\n\n var d = new __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a(function (resolve, reject) {\n\n var dataView = new DataView(image),\n fullImageBlob = new Blob([dataView], { type: type }),\n canvas = document.createElement(\"canvas\"),\n ctx = canvas.getContext('2d'),\n img = new Image();\n\n img.onload = function () {\n\n var ratio = width / img.width;\n var newHeight = ratio * img.height;\n\n canvas.height = newHeight;\n canvas.width = width;\n\n ctx.drawImage(img, 0, 0, width, newHeight);\n\n canvas.toBlob(function (blob) {\n\n var fr = new FileReader();\n\n fr.onload = function (event) {\n //fr.result\n resolve(fr.result);\n };\n fr.readAsArrayBuffer(blob);\n }, 'image/jpeg', quality);\n };\n img.src = URL.createObjectURL(fullImageBlob);\n });\n\n return d;\n }\n },\n computed: {\n mongoid: function mongoid() {\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__js_Sync_dal__[\"b\" /* mongoObjectId */])();\n }\n }\n\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (formUploadHandler);\n\n/***/ }),\n\n/***/ 887:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 888:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 889:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 89:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = clearQueue;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n\nfunction clearQueue(q) {\n var p = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a.resolve();\n\n return q.reduce(function (prev, cur) {\n return prev.then(cur);\n }, p);\n};\n\n/***/ }),\n\n/***/ 890:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 891:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 892:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 893:\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 915:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./af\": 338,\n\t\"./af.js\": 338,\n\t\"./ar\": 345,\n\t\"./ar-dz\": 339,\n\t\"./ar-dz.js\": 339,\n\t\"./ar-kw\": 340,\n\t\"./ar-kw.js\": 340,\n\t\"./ar-ly\": 341,\n\t\"./ar-ly.js\": 341,\n\t\"./ar-ma\": 342,\n\t\"./ar-ma.js\": 342,\n\t\"./ar-sa\": 343,\n\t\"./ar-sa.js\": 343,\n\t\"./ar-tn\": 344,\n\t\"./ar-tn.js\": 344,\n\t\"./ar.js\": 345,\n\t\"./az\": 346,\n\t\"./az.js\": 346,\n\t\"./be\": 347,\n\t\"./be.js\": 347,\n\t\"./bg\": 348,\n\t\"./bg.js\": 348,\n\t\"./bm\": 349,\n\t\"./bm.js\": 349,\n\t\"./bn\": 351,\n\t\"./bn-bd\": 350,\n\t\"./bn-bd.js\": 350,\n\t\"./bn.js\": 351,\n\t\"./bo\": 352,\n\t\"./bo.js\": 352,\n\t\"./br\": 353,\n\t\"./br.js\": 353,\n\t\"./bs\": 354,\n\t\"./bs.js\": 354,\n\t\"./ca\": 355,\n\t\"./ca.js\": 355,\n\t\"./cs\": 356,\n\t\"./cs.js\": 356,\n\t\"./cv\": 357,\n\t\"./cv.js\": 357,\n\t\"./cy\": 358,\n\t\"./cy.js\": 358,\n\t\"./da\": 359,\n\t\"./da.js\": 359,\n\t\"./de\": 362,\n\t\"./de-at\": 360,\n\t\"./de-at.js\": 360,\n\t\"./de-ch\": 361,\n\t\"./de-ch.js\": 361,\n\t\"./de.js\": 362,\n\t\"./dv\": 363,\n\t\"./dv.js\": 363,\n\t\"./el\": 364,\n\t\"./el.js\": 364,\n\t\"./en-au\": 365,\n\t\"./en-au.js\": 365,\n\t\"./en-ca\": 366,\n\t\"./en-ca.js\": 366,\n\t\"./en-gb\": 367,\n\t\"./en-gb.js\": 367,\n\t\"./en-ie\": 368,\n\t\"./en-ie.js\": 368,\n\t\"./en-il\": 369,\n\t\"./en-il.js\": 369,\n\t\"./en-in\": 370,\n\t\"./en-in.js\": 370,\n\t\"./en-nz\": 371,\n\t\"./en-nz.js\": 371,\n\t\"./en-sg\": 372,\n\t\"./en-sg.js\": 372,\n\t\"./eo\": 373,\n\t\"./eo.js\": 373,\n\t\"./es\": 377,\n\t\"./es-do\": 374,\n\t\"./es-do.js\": 374,\n\t\"./es-mx\": 375,\n\t\"./es-mx.js\": 375,\n\t\"./es-us\": 376,\n\t\"./es-us.js\": 376,\n\t\"./es.js\": 377,\n\t\"./et\": 378,\n\t\"./et.js\": 378,\n\t\"./eu\": 379,\n\t\"./eu.js\": 379,\n\t\"./fa\": 380,\n\t\"./fa.js\": 380,\n\t\"./fi\": 381,\n\t\"./fi.js\": 381,\n\t\"./fil\": 382,\n\t\"./fil.js\": 382,\n\t\"./fo\": 383,\n\t\"./fo.js\": 383,\n\t\"./fr\": 386,\n\t\"./fr-ca\": 384,\n\t\"./fr-ca.js\": 384,\n\t\"./fr-ch\": 385,\n\t\"./fr-ch.js\": 385,\n\t\"./fr.js\": 386,\n\t\"./fy\": 387,\n\t\"./fy.js\": 387,\n\t\"./ga\": 388,\n\t\"./ga.js\": 388,\n\t\"./gd\": 389,\n\t\"./gd.js\": 389,\n\t\"./gl\": 390,\n\t\"./gl.js\": 390,\n\t\"./gom-deva\": 391,\n\t\"./gom-deva.js\": 391,\n\t\"./gom-latn\": 392,\n\t\"./gom-latn.js\": 392,\n\t\"./gu\": 393,\n\t\"./gu.js\": 393,\n\t\"./he\": 394,\n\t\"./he.js\": 394,\n\t\"./hi\": 395,\n\t\"./hi.js\": 395,\n\t\"./hr\": 396,\n\t\"./hr.js\": 396,\n\t\"./hu\": 397,\n\t\"./hu.js\": 397,\n\t\"./hy-am\": 398,\n\t\"./hy-am.js\": 398,\n\t\"./id\": 399,\n\t\"./id.js\": 399,\n\t\"./is\": 400,\n\t\"./is.js\": 400,\n\t\"./it\": 402,\n\t\"./it-ch\": 401,\n\t\"./it-ch.js\": 401,\n\t\"./it.js\": 402,\n\t\"./ja\": 403,\n\t\"./ja.js\": 403,\n\t\"./jv\": 404,\n\t\"./jv.js\": 404,\n\t\"./ka\": 405,\n\t\"./ka.js\": 405,\n\t\"./kk\": 406,\n\t\"./kk.js\": 406,\n\t\"./km\": 407,\n\t\"./km.js\": 407,\n\t\"./kn\": 408,\n\t\"./kn.js\": 408,\n\t\"./ko\": 409,\n\t\"./ko.js\": 409,\n\t\"./ku\": 410,\n\t\"./ku.js\": 410,\n\t\"./ky\": 411,\n\t\"./ky.js\": 411,\n\t\"./lb\": 412,\n\t\"./lb.js\": 412,\n\t\"./lo\": 413,\n\t\"./lo.js\": 413,\n\t\"./lt\": 414,\n\t\"./lt.js\": 414,\n\t\"./lv\": 415,\n\t\"./lv.js\": 415,\n\t\"./me\": 416,\n\t\"./me.js\": 416,\n\t\"./mi\": 417,\n\t\"./mi.js\": 417,\n\t\"./mk\": 418,\n\t\"./mk.js\": 418,\n\t\"./ml\": 419,\n\t\"./ml.js\": 419,\n\t\"./mn\": 420,\n\t\"./mn.js\": 420,\n\t\"./mr\": 421,\n\t\"./mr.js\": 421,\n\t\"./ms\": 423,\n\t\"./ms-my\": 422,\n\t\"./ms-my.js\": 422,\n\t\"./ms.js\": 423,\n\t\"./mt\": 424,\n\t\"./mt.js\": 424,\n\t\"./my\": 425,\n\t\"./my.js\": 425,\n\t\"./nb\": 426,\n\t\"./nb.js\": 426,\n\t\"./ne\": 427,\n\t\"./ne.js\": 427,\n\t\"./nl\": 429,\n\t\"./nl-be\": 428,\n\t\"./nl-be.js\": 428,\n\t\"./nl.js\": 429,\n\t\"./nn\": 430,\n\t\"./nn.js\": 430,\n\t\"./oc-lnc\": 431,\n\t\"./oc-lnc.js\": 431,\n\t\"./pa-in\": 432,\n\t\"./pa-in.js\": 432,\n\t\"./pl\": 433,\n\t\"./pl.js\": 433,\n\t\"./pt\": 435,\n\t\"./pt-br\": 434,\n\t\"./pt-br.js\": 434,\n\t\"./pt.js\": 435,\n\t\"./ro\": 436,\n\t\"./ro.js\": 436,\n\t\"./ru\": 437,\n\t\"./ru.js\": 437,\n\t\"./sd\": 438,\n\t\"./sd.js\": 438,\n\t\"./se\": 439,\n\t\"./se.js\": 439,\n\t\"./si\": 440,\n\t\"./si.js\": 440,\n\t\"./sk\": 441,\n\t\"./sk.js\": 441,\n\t\"./sl\": 442,\n\t\"./sl.js\": 442,\n\t\"./sq\": 443,\n\t\"./sq.js\": 443,\n\t\"./sr\": 445,\n\t\"./sr-cyrl\": 444,\n\t\"./sr-cyrl.js\": 444,\n\t\"./sr.js\": 445,\n\t\"./ss\": 446,\n\t\"./ss.js\": 446,\n\t\"./sv\": 447,\n\t\"./sv.js\": 447,\n\t\"./sw\": 448,\n\t\"./sw.js\": 448,\n\t\"./ta\": 449,\n\t\"./ta.js\": 449,\n\t\"./te\": 450,\n\t\"./te.js\": 450,\n\t\"./tet\": 451,\n\t\"./tet.js\": 451,\n\t\"./tg\": 452,\n\t\"./tg.js\": 452,\n\t\"./th\": 453,\n\t\"./th.js\": 453,\n\t\"./tk\": 454,\n\t\"./tk.js\": 454,\n\t\"./tl-ph\": 455,\n\t\"./tl-ph.js\": 455,\n\t\"./tlh\": 456,\n\t\"./tlh.js\": 456,\n\t\"./tr\": 457,\n\t\"./tr.js\": 457,\n\t\"./tzl\": 458,\n\t\"./tzl.js\": 458,\n\t\"./tzm\": 460,\n\t\"./tzm-latn\": 459,\n\t\"./tzm-latn.js\": 459,\n\t\"./tzm.js\": 460,\n\t\"./ug-cn\": 461,\n\t\"./ug-cn.js\": 461,\n\t\"./uk\": 462,\n\t\"./uk.js\": 462,\n\t\"./ur\": 463,\n\t\"./ur.js\": 463,\n\t\"./uz\": 465,\n\t\"./uz-latn\": 464,\n\t\"./uz-latn.js\": 464,\n\t\"./uz.js\": 465,\n\t\"./vi\": 466,\n\t\"./vi.js\": 466,\n\t\"./x-pseudo\": 467,\n\t\"./x-pseudo.js\": 467,\n\t\"./yo\": 468,\n\t\"./yo.js\": 468,\n\t\"./zh-cn\": 469,\n\t\"./zh-cn.js\": 469,\n\t\"./zh-hk\": 470,\n\t\"./zh-hk.js\": 470,\n\t\"./zh-mo\": 471,\n\t\"./zh-mo.js\": 471,\n\t\"./zh-tw\": 472,\n\t\"./zh-tw.js\": 472\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 915;\n\n/***/ }),\n\n/***/ 979:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomError\", function() { return CustomError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"customErrorFactory\", function() { return customErrorFactory; });\nfunction fixProto(target, prototype) {\n var setPrototypeOf = Object.setPrototypeOf;\n setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;\n}\nfunction fixStack(target, fn) {\n if (fn === void 0) {\n fn = target.constructor;\n }\n\n var captureStackTrace = Error.captureStackTrace;\n captureStackTrace && captureStackTrace(target, fn);\n}\n\nvar __extends = undefined && undefined.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } }\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar CustomError = function (_super) {\n __extends(CustomError, _super);\n\n function CustomError(message) {\n var _newTarget = this.constructor;\n\n var _this = _super.call(this, message) || this;\n\n Object.defineProperty(_this, 'name', {\n value: _newTarget.name,\n enumerable: false,\n configurable: true\n });\n fixProto(_this, _newTarget.prototype);\n fixStack(_this);\n return _this;\n }\n\n return CustomError;\n}(Error);\n\nvar __spreadArrays = undefined && undefined.__spreadArrays || function () {\n var arguments$1 = arguments;\n\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) { s += arguments$1[i].length; }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) { for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) { r[k] = a[j]; } }\n\n return r;\n};\nfunction customErrorFactory(fn, parent) {\n if (parent === void 0) {\n parent = Error;\n }\n\n function CustomError() {\n var arguments$1 = arguments;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments$1[_i];\n }\n\n if (!(this instanceof CustomError)) { return new (CustomError.bind.apply(CustomError, __spreadArrays([void 0], args)))(); }\n parent.apply(this, args);\n Object.defineProperty(this, 'name', {\n value: fn.name || parent.name,\n enumerable: false,\n configurable: true\n });\n fn.apply(this, args);\n fixStack(this, CustomError);\n }\n\n return Object.defineProperties(CustomError, {\n prototype: {\n value: Object.create(parent.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n configurable: true\n }\n })\n }\n });\n}\n\n\n//# sourceMappingURL=custom-error.mjs.map\n\n\n/***/ }),\n\n/***/ 984:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQuMzk0IDI0LjM5NCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjQuMzk0IDI0LjM5NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+DQo8Zz4NCgk8ZyBpZD0iYjgwX2Zvb2QiPg0KCQk8Y2lyY2xlIGN4PSIxMi4xOTciIGN5PSIxMi4xOTciIHI9IjEyLjE5NyIgZmlsbD0iIzQyNDI0MiIvPg0KCTwvZz4NCgk8ZyBpZD0iQ2FwYV8xXzgyXyI+DQoJPC9nPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n/***/ }),\n\n/***/ 985:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQuMzk0IDI0LjM5NCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjQuMzk0IDI0LjM5NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+DQo8Zz4NCgk8ZyBpZD0iYjgwX2Zvb2QiPg0KCQk8Y2lyY2xlIGN4PSIxMi4xOTciIGN5PSIxMi4xOTciIHI9IjEyLjE5NyIgZmlsbD0iIzJlY2M3MSIvPg0KCTwvZz4NCgk8ZyBpZD0iQ2FwYV8xXzgyXyI+DQoJPC9nPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n/***/ }),\n\n/***/ 986:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAMcAQMAAACl5F6MAAAABlBMVEW8vsDn6OnyCdevAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEbUlEQVR4AezBMQEAAADCoPVP7WsIoAcAAAAAAAAAAAAAAAAAAAAAAIydO0iOk4eCAGyVXNEuukF0FB1NHE1H0RG0ZEHRf5A99WYMk1T+Kvolw+vVjBf+CkMLoRCFWQkuqCquB3QOOQKrCpwBKJ1i6Jxk/EzTubaArgAHQOeyjhu8aMEafUrYolLjLRMfLrpw5cMYadeBnTLcrwN7ZXi+DhyuCi8GG/xy8Gyw3SRe7n7cLzfnajah5z87keFJ//lYf0WAAq+vv+rDX+fir+zpr2Xqr95qrle/ywr9OxX+/nF19fGRmR/yrzCJCudRqNHiNDHhIlquTBgCF2aX3V2BwYT9nUYdNoNojnqjiKJ56q0xiRaok4EsWqQO2EW0RJ3wQbTMvDc6iFaYswEvkx5Hnf8E0Tx1xhcfj3gh1lhOLHVWnx8vLvBq/FAnYpGBhwEElVfjhyETjVjj5bFanATpLrHIcpDkIstpJRdZLmRykaW63CLLMZKLLGeVXGS5jvlFluZKq8k1lnGMXGMZuck1lnsVu8ZydybXWOYj5BrLDIxcY5lz8mrML/JupPIC02osf3tyjeVqY9dYikys8QlTAUIsFovFYrFYLJaIP8hq8D4GG2ywwQYbbLDBBhtssMEGG2ywwQYb3N9+G/ePwQYbbLDBBhtssMEGG5yhA3ugqcARmFXgDKwqcAGgAsu+J1zYy94UXDjIRxosH+crwUm2euHCWX43Fy7YciUYI9N1YIeRavDpsMdIM9jgs+BOh4PBavA3ras6aMFRC06TEpyrLsy/H5emBKOrwvxZpsOsA3ssOk8SQQ9edZ4WI6DzfJwU4Ym/FCE7ofFXfQoJlnUugRsHdl9GTKBzlxRF6vzVW9kngr5eLTB5hT6MUhPgLfdDRhwQCQ79TQXe756tAWcp10XgIuMYF8aWxoedLtz5sB/wzIeDLrzw4QiRqHBSgOvnwLWFCrc7eCLCbnwrXFh2ZMdHKhEOyx3ciHBch8OHE2TtCZ0IZ0wCz1S4jhGTDhc0ecN9IcLja/qEVwIswqwC+/H3zfgMDw7j95cbPBFg+YEKnIaGWyoNzpvmcEujws0rwGX7LnCnwWOgDLhlZsFuaJEP+zFCC7yw4DCAhFtWFhwHl/lwwpeowRMJzlpw+QpXEgwl2O3gxoH9Du4cOOzgmQNHLTjt4OXF4byDVw5csAsHhhLssM/EgD32qQw4aMER+zQtuDPgpAVn7DMz4IJ9FgYMJdgdwSsB9jgKAQ5acDyEJy24ng8nLTgfwu18uBzC/XwYSrA7hmfCeyCHWU6Hw18Gr4R3fY5zOpy04PwEngj/KfYw9WwYSrB7BjfCW4qH6a8Kh2fwTHgF9jDLyXDSgvMzeKW8UX6Uk2Eowe45PL0m7J/D9VQ4aMG/isH/JwYbbLDBBhtssMEGG2ywtz3K/2tvDmQAAAAABvlbn+NbCSQWi8VisVgsFovFYrFYLBYvAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEHVJjR5bJLd8AAAAASUVORK5CYII=\"\n\n/***/ }),\n\n/***/ 987:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,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\"\n\n/***/ }),\n\n/***/ 988:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"static/img/lyngbyTaarbæk-logo.e5dbb24.png\";\n\n/***/ }),\n\n/***/ 989:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MjAgMTc3Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2JhMTIyMzt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPm5pcmFzX2xvZ29fbmV3PC90aXRsZT48cGF0aCBpZD0ibmlyYXMiIGNsYXNzPSJjbHMtMSIgZD0iTTc5LjgyLDEyNi43NSwzNy41NCw4Mi40Nkg2djgzLjIxSDMxLjVsMi42OC01MC4zMyw0OS42Niw1MC4zM2gyNC44M1Y4Mi40Nkg4Mi41Wk0xMzMuNSw4Mi40NkgxNjF2ODMuMjFIMTMzLjVabTE0NS42MiwyNC44M2MtMS4zNC0yMS40Ny0yNC44My0yNS41LTQzLjYyLTI2LjE3LTE1LjQzLDAtNTEsMS4zNC01MSwxLjM0djgzLjIxaDI0LjgzbDQtNjYuNDNzMTAuMDctLjY3LDE2Ljc4LS42N2MxMC43NCwwLDE4LjEyLDQsMTguNzksMTAuNzRzLTIsMTQuNzYtMjYuMTcsMTQuNzZ2MTMuNDJsMjYuODQsMjguODZoMjguODZMMjU3LDEzNi4xNGMuNjctLjY3LDIzLjQ5LTYuNzEsMjIuMTQtMjguODZtOTYtMjQuODNIMzM0LjE1cy00LDYtMTcuNDUsMzIuODhjLTE4LjEyLTE0Ljc2LTIyLjgyLTM0LjIyLTI0LjE2LTQzLjYyaC0uNjd2MzUuNTdhNTguMjUsNTguMjUsMCwwLDAsMTUuNDMsMjguMThDMjk1LjIzLDE2MC4zLDI5My4yMSwxNjUsMjkzLjIxLDE2NWgyNi44NGw4LjcyLTE2LjExaDBhODguOCw4OC44LDAsMCwwLDI2LjE3LDQuN1YxMzAuNzdhNTUuNTIsNTUuNTIsMCwwLDEtMTQuNzYtMi42OGwxMy40Mi0yNC4xNiwzNC44OSw2MS43NGgyNi44NFM0MTIsMTU3LjYxLDM5NC41NCwxMjJjLTE1LjQzLTMzLjU1LTE5LjQ2LTM5LjU5LTE5LjQ2LTM5LjU5bTkzLjI4LDI4Ljg2Yy04LjcyLS42Ny0xMy40Mi0yLjY4LTEzLjQyLTYuNzEsMC01LjM3LDYuNzEtNy4zOCwyMC44LTcuMzhzMzIuODgsMi42OCwzMi44OCwyLjY4VjgwLjQ0YTMxMS41NCwzMTEuNTQsMCwwLDAtNDIuMjgtMmMtNy4zOCwwLTQyLjk1LDAtNDIuOTUsMjguMTgsMCwyNi44NCwzNC44OSwyNy41MSw0OS42NiwyOC4xOCw1LjM3LDAsMTEuNDEsMS4zNCwxMS40MSw1LjM3LjY3LDYuNzEtMTAuMDcsNy4zOC0yNi4xNyw3LjM4YTE0Mi4yOCwxNDIuMjgsMCwwLDEtMzEuNTQtNHYyMC44UzQ0OC45LDE2Nyw0NjUuNjcsMTY3YzcuMzgsMCw0OSwxLjM0LDQ4LjMyLTI4LjE4LjY3LTI5LjUzLTMyLjg4LTI2Ljg0LTQ1LjYzLTI3LjUxTTMxMCw3NC40YzMuMzYtMTguMTIsMjEuNDctMzcuNTgsNDUuNjMtMzguOTJWMTBDMzIwLjczLDE0LDMwNy4zLDQ0LjIxLDMwOCw2MS42NWMuNjcsNCwuNjcsOC43MiwyLDEyLjc1WiIvPjwvc3ZnPg==\"\n\n/***/ }),\n\n/***/ 990:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__.p + \"static/img/novafos.fce0aaa.jpg\";\n\n/***/ }),\n\n/***/ 991:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQuMzk0IDI0LjM5NCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjQuMzk0IDI0LjM5NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+DQo8Zz4NCgk8ZyBpZD0iYjgwX2Zvb2QiPg0KCQk8Y2lyY2xlIGN4PSIxMi4xOTciIGN5PSIxMi4xOTciIHI9IjEyLjE5NyIgZmlsbD0iI2U3NGMzYyIvPg0KCTwvZz4NCgk8ZyBpZD0iQ2FwYV8xXzgyXyI+DQoJPC9nPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n/***/ }),\n\n/***/ 992:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQgAAAAtCAYAAABS4PXOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpkNmE5NWMxNy02YjhlLTQ0YmItYWFhNy1lN2JiZDE2MDExY2IiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODg4MkY3RkE0M0FCMTFFM0I5ODNGNDUzNzY1QzNGNkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODg4MkY3Rjk0M0FCMTFFM0I5ODNGNDUzNzY1QzNGNkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OGViOTYyNmItOWU3Yi00NjRhLThjYzktZGM3NmM0NWNkMGM3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmQ2YTk1YzE3LTZiOGUtNDRiYi1hYWE3LWU3YmJkMTYwMTFjYiIvPiA8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\"\n\n/***/ }),\n\n/***/ 993:\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,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\"\n\n/***/ }),\n\n/***/ 994:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(552),\n /* template */\n __webpack_require__(1011),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 995:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(890)\n}\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(553),\n /* template */\n __webpack_require__(1008),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 996:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(891)\n}\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(554),\n /* template */\n __webpack_require__(1009),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 997:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(892)\n}\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(555),\n /* template */\n __webpack_require__(1012),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 998:\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction injectStyle (ssrContext) {\n __webpack_require__(893)\n}\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(556),\n /* template */\n __webpack_require__(1013),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n\n/***/ 999:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(43)(\n /* script */\n __webpack_require__(557),\n /* template */\n __webpack_require__(1007),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ })\n\n},[564]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.12222c3d26dfd06665ef.js","var Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./kort.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-01fccbdc\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./kort.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/kort.vue\n// module id = 1000\n// module chunks = 1","var Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./projekt.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e513906a\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./projekt.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/projekt.vue\n// module id = 1001\n// module chunks = 1","var Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./projekter.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6649a538\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./projekter.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/projekter.vue\n// module id = 1002\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-12471b78\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./velkommen.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./velkommen.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-12471b78\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./velkommen.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/velkommen.vue\n// module id = 1003\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"kort topspacing\",\n staticStyle: {\n \"margin-top\": \"55.4px\"\n }\n }, [_c('div', {\n staticClass: \"header\",\n staticStyle: {\n \"height\": \"55.4px\"\n }\n }, [_c('div', {\n staticClass: \"left\",\n on: {\n \"click\": function($event) {\n return _vm.goBack()\n }\n }\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 240.823 240.823\",\n \"vertical-align\": \"-3px\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"viewBox\": \"0 0 240.823 240.823\",\n \"xml:space\": \"preserve\",\n \"width\": \"18px\",\n \"height\": \"18px\"\n }\n }, [_c('g', [_c('path', {\n attrs: {\n \"id\": \"Chevron_Right\",\n \"d\": \"M57.633,129.007L165.93,237.268c4.752,4.74,12.451,4.74,17.215,0c4.752-4.74,4.752-12.439,0-17.179 l-99.707-99.671l99.695-99.671c4.752-4.74,4.752-12.439,0-17.191c-4.752-4.74-12.463-4.74-17.215,0L57.621,111.816 C52.942,116.507,52.942,124.327,57.633,129.007z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])]), _vm._v(\" \"), _c('h1', [_vm._v(\"Kort\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"right selected-date\"\n }, [(_vm.selectedDate != null || _vm.selectedDate != undefined) ? _c('span', [_vm._v(_vm._s(_vm._f(\"moment\")(_vm.selectedDate)))]) : _c('span', [_vm._v(_vm._s(_vm._f(\"moment\")(_vm.today)))])])]), _vm._v(\" \"), _c('mapcomponent')], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-01fccbdc\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/kort.vue\n// module id = 1004\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.overlay),\n expression: \"overlay\"\n }],\n staticClass: \"overlay\",\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.closeMenu\n }\n }), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.syncOverlay),\n expression: \"syncOverlay\"\n }],\n staticClass: \"loading-overlay\"\n }, [_c('div', {\n staticClass: \"counter text-center\"\n }, [_vm._m(0), _vm._v(\" \"), _c('p', [_vm._v(\"Trin \" + _vm._s(_vm.activeStep) + \" ud af \" + _vm._s(_vm.totalSteps))]), _vm._v(\" \"), (_vm.errorMessage.length > 0) ? _c('p', {\n staticClass: \"error-message\"\n }, [_vm._v(_vm._s(_vm.errorMessage))]) : _vm._e()])]), _vm._v(\" \"), _c('header', {\n attrs: {\n \"id\": \"header\"\n }\n }, [_c('div', {\n staticClass: \"left\",\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.showMenu\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"menu\")]), _vm._v(\" \"), (_vm.notification > 0) ? _c('p', {\n staticClass: \"small-icon notification\"\n }, [_vm._v(\"!\")]) : _vm._e()]), _vm._v(\" \"), _c('h1', [_vm._v(\"Opgaver\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"right\",\n on: {\n \"click\": _vm.gotoMap\n }\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 533.333 533.333\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"width\": \"20px\",\n \"height\": \"20px\",\n \"viewBox\": \"0 0 533.333 533.333\",\n \"xml:space\": \"preserve\"\n }\n }, [_c('g', [_c('path', {\n attrs: {\n \"d\": \"M455.229,78.105c50.367,50.367,78.104,117.333,78.104,188.563c0,71.229-27.739,138.194-78.104,188.561 c-50.368,50.366-117.333,78.104-188.562,78.104c-71.229,0-138.195-27.738-188.562-78.104C27.738,404.862,0,337.896,0,266.668 c0-71.229,27.736-138.196,78.104-188.563S195.438,0,266.667,0C337.896,0,404.861,27.738,455.229,78.105z M431.658,431.659 c32.843-32.843,54.681-73.754,63.686-118.262c-7.019,10.331-13.732,14.165-17.888-8.961c-4.281-37.703-38.911-13.618-60.688-27.011 c-22.919,15.447-74.43-30.032-65.676,21.263c13.507,23.137,72.921-30.964,43.307,17.99 c-18.893,34.176-69.085,109.86-62.555,149.093c0.823,57.158-58.404,11.919-78.81-7.041 c-13.727-37.979-4.678-104.362-40.572-122.962c-38.959-1.691-72.398-5.232-87.497-48.786c-9.086-31.161,9.669-77.549,43.062-84.71 c48.88-30.711,66.341,35.965,112.183,37.205c14.233-14.893,53.029-19.628,56.246-36.328c-30.078-5.308,38.16-25.291-2.879-36.657 c-22.642,2.663-37.229,23.476-25.193,41.124c-43.874,10.23-45.279-63.492-87.454-40.238c-1.072,36.765-68.865,11.919-23.456,4.464 c15.602-6.816-25.448-26.57-3.271-22.98c10.894-0.592,47.569-13.444,37.644-22.084c20.421-12.677,37.583,30.359,57.572-0.98 c14.431-24.097-6.052-28.546-24.141-16.332c-10.198-11.418,18.006-36.081,42.882-46.738c8.29-3.552,16.208-5.487,22.263-4.939 c12.531,14.475,35.703,16.982,36.916-1.741c-31.031-14.861-65.247-22.712-100.672-22.712c-50.845,0-99.203,16.158-139.223,46.036 c10.755,4.927,16.86,11.062,6.499,18.904c-8.05,23.987-40.713,56.186-69.387,51.627c-14.889,25.674-24.694,53.961-28.885,83.608 c24.016,7.946,29.554,23.672,24.394,28.932c-12.237,10.671-19.759,25.797-23.633,42.355c7.817,47.832,30.298,91.914,65.245,126.862 C145.746,475.729,204.34,500,266.667,500C328.992,500,387.587,475.729,431.658,431.659z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"sidemenu fast\",\n staticStyle: {\n \"display\": \"none\"\n },\n attrs: {\n \"id\": \"sidemenu\",\n \"data-toggler\": \"\",\n \"data-animate\": \"slide-in-left slide-out-left\"\n }\n }, [_c('div', {\n staticClass: \"close-button\",\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.closeMenu\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"×\")])]), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _c('ul', [_c('li', {\n staticClass: \"active\",\n attrs: {\n \"id\": \"projekter\"\n }\n }, [_c('a', {\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.gotoProjects\n }\n }, [_vm._m(2), _vm._v(\"\\n Opgaver\\n \")])]), _vm._v(\" \"), _c('li', {\n attrs: {\n \"id\": \"kort\"\n }\n }, [_c('a', {\n staticClass: \"map-item\",\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.gotoMap\n }\n }, [_c('div', {\n staticClass: \"icon\"\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 533.333 533.333\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"width\": \"20px\",\n \"height\": \"20px\",\n \"viewBox\": \"0 0 533.333 533.333\",\n \"xml:space\": \"preserve\"\n }\n }, [_c('g', [_c('path', {\n attrs: {\n \"d\": \"M455.229,78.105c50.367,50.367,78.104,117.333,78.104,188.563c0,71.229-27.739,138.194-78.104,188.561 c-50.368,50.366-117.333,78.104-188.562,78.104c-71.229,0-138.195-27.738-188.562-78.104C27.738,404.862,0,337.896,0,266.668 c0-71.229,27.736-138.196,78.104-188.563S195.438,0,266.667,0C337.896,0,404.861,27.738,455.229,78.105z M431.658,431.659 c32.843-32.843,54.681-73.754,63.686-118.262c-7.019,10.331-13.732,14.165-17.888-8.961c-4.281-37.703-38.911-13.618-60.688-27.011 c-22.919,15.447-74.43-30.032-65.676,21.263c13.507,23.137,72.921-30.964,43.307,17.99 c-18.893,34.176-69.085,109.86-62.555,149.093c0.823,57.158-58.404,11.919-78.81-7.041 c-13.727-37.979-4.678-104.362-40.572-122.962c-38.959-1.691-72.398-5.232-87.497-48.786c-9.086-31.161,9.669-77.549,43.062-84.71 c48.88-30.711,66.341,35.965,112.183,37.205c14.233-14.893,53.029-19.628,56.246-36.328c-30.078-5.308,38.16-25.291-2.879-36.657 c-22.642,2.663-37.229,23.476-25.193,41.124c-43.874,10.23-45.279-63.492-87.454-40.238c-1.072,36.765-68.865,11.919-23.456,4.464 c15.602-6.816-25.448-26.57-3.271-22.98c10.894-0.592,47.569-13.444,37.644-22.084c20.421-12.677,37.583,30.359,57.572-0.98 c14.431-24.097-6.052-28.546-24.141-16.332c-10.198-11.418,18.006-36.081,42.882-46.738c8.29-3.552,16.208-5.487,22.263-4.939 c12.531,14.475,35.703,16.982,36.916-1.741c-31.031-14.861-65.247-22.712-100.672-22.712c-50.845,0-99.203,16.158-139.223,46.036 c10.755,4.927,16.86,11.062,6.499,18.904c-8.05,23.987-40.713,56.186-69.387,51.627c-14.889,25.674-24.694,53.961-28.885,83.608 c24.016,7.946,29.554,23.672,24.394,28.932c-12.237,10.671-19.759,25.797-23.633,42.355c7.817,47.832,30.298,91.914,65.245,126.862 C145.746,475.729,204.34,500,266.667,500C328.992,500,387.587,475.729,431.658,431.659z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])]), _vm._v(\"\\n Kort\\n \")])]), _vm._v(\" \"), _c('li', [_c('a', {\n attrs: {\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.syncData\n }\n }, [_c('div', {\n staticClass: \"icon\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"sync\")]), _vm._v(\" \"), (_vm.notification > 0) ? _c('p', {\n staticClass: \"notification\"\n }, [_vm._v(\"!\")]) : _vm._e()]), _vm._v(\"\\n Synkronisér\\n \")])]), _vm._v(\" \"), _vm._m(3), _vm._v(\" \"), _c('li', [_c('a', {\n attrs: {\n \"data-open\": \"aboutModal\",\n \"data-toggle\": \"sidemenu\",\n \"aria-controls\": \"sidemenu\"\n },\n on: {\n \"click\": _vm.gotoAbout\n }\n }, [_vm._m(4), _vm._v(\"\\n Om MålerTjek\\n \")])])])]), _vm._v(\" \"), (_vm.showModal) ? _c('help-modal', {\n on: {\n \"close\": function($event) {\n _vm.showModal = false\n }\n }\n }) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"reveal\",\n attrs: {\n \"id\": \"aboutModal\",\n \"data-reveal\": \"\"\n }\n }, [_c('div', {\n staticClass: \"reveal-header special-text\"\n }, [_c('img', {\n staticClass: \"logo\",\n attrs: {\n \"src\": require(\"./assets/image/logo.png\"),\n \"alt\": \"logo\"\n }\n }), _vm._v(\" \"), _c('p', {\n staticClass: \"text-center\"\n }, [_vm._v(\"V. \" + _vm._s(_vm.version) + \", udgivet \" + _vm._s(_vm.date))])]), _vm._v(\" \"), _vm._m(5), _vm._v(\" \"), _c('img', {\n staticClass: \"niras-logo\",\n attrs: {\n \"src\": require(\"./assets/image/niraslogo.svg\"),\n \"alt\": \"Niras logo\"\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"reveal-footer\"\n }, [_vm._m(6), _vm._v(\" \"), _c('img', {\n staticClass: \"firm-logo\",\n attrs: {\n \"src\": _vm.image\n }\n })]), _vm._v(\" \"), _vm._m(7)]), _vm._v(\" \"), _c('main', {\n attrs: {\n \"role\": \"main\"\n }\n }, [_c('router-view')], 1)], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h3', [_vm._v(\"Synkroniserer data\"), _c('span', {\n staticClass: \"loading-overview\"\n }, [_c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"header-menu\"\n }, [_c('h2', [_c('b', [_vm._v(\"Måler\")]), _vm._v(\"tjek\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"icon\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"assignment\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('li', [_c('a', {\n attrs: {\n \"href\": \"./files/MålertjekVejledning.pdf\",\n \"target\": \"_blank\"\n }\n }, [_c('div', {\n staticClass: \"icon\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"help\")])]), _vm._v(\"\\n Hjælp\\n \")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"icon\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"info\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"reveal-body\"\n }, [_c('h5', [_vm._v(\"MålerTjek™ - programmet, der rationaliserer kontrol og udskiftning af forbrugsmålere.\")]), _vm._v(\" \"), _c('p', [_vm._v(\"NIRAS har udviklet et system, der rationaliserer arbejdsopgaver vedrørende kontrol og udskiftning af forbrugsmålere i forsyningssektoren. Programmet hedder MålerTjek, og med det fjerner du tidsrøvere og gør samtidig livet lettere for både forsyningernes montører og deres administration samt for borgerne. \")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('p', [_vm._v(\"Har du brug for support til MålerTjek, kan du ringe på support-telefonen \"), _c('b', [_vm._v(\"2857 5859\")]), _vm._v(\" eller sende en e-mail til \"), _c('a', {\n attrs: {\n \"href\": \"mailto:infosupport@niras.dk?Subject=MålerTjek\",\n \"target\": \"_top\"\n }\n }, [_vm._v(\"infosupport@niras.dk\")]), _vm._v(\".\")])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('button', {\n staticClass: \"close-button\",\n attrs: {\n \"data-close\": \"\",\n \"aria-label\": \"Close modal\",\n \"type\": \"button\"\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\"\n }\n }, [_vm._v(\"×\")])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0912b874\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = 1005\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"velkommen topspacing\"\n }, [(_vm.showLoader) ? _c('div', {\n staticClass: \"loading-overlay\"\n }, [_c('div', {\n staticClass: \"counter\"\n }, [(_vm.errorMessage.length == 0) ? _c('div', [_vm._m(0), _vm._v(\" \"), _c('p', [_vm._v(\"Trin \" + _vm._s(_vm.activeStep) + \" af \" + _vm._s(_vm.totalSteps))])]) : _vm._e(), _vm._v(\" \"), (_vm.errorMessage.length > 0) ? _c('div', [_vm._v(\"\\n \" + _vm._s(_vm.errorMessage) + \"\\n \"), _c('a', {\n staticClass: \"button error-button\",\n on: {\n \"click\": _vm.closeError\n }\n }, [_vm._v(\"Okay\")])]) : _vm._e()])]) : _vm._e(), _vm._v(\" \"), _vm._m(1), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x grid-padding-x\"\n }, [_c('div', {\n staticClass: \"large-12 cell\"\n }, [_c('section', [_vm._m(2), _vm._v(\" \"), _c('div', {\n staticClass: \"content text-center\"\n }, [_c('p', [_vm._v(\"\\n NIRAS har udviklet et system, der rationaliserer arbejdsopgaver vedrørende kontrol og udskiftning af forbrugsmålere i forsyningssektoren. Programmet hedder MålerTjek, og med det fjerner du tidsrøvere og gør samtidig livet lettere for både forsyningernes montører og deres administration samt for borgerne. \\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"text-center download-container\"\n }, [_c('a', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.getServerData\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"file_download\")]), _vm._v(\"Hent app\")])])])])])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h3', [_vm._v(\"Installerer MålerTjek app'en \"), _c('span', {\n staticClass: \"loading-overview\"\n }, [_c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"header\",\n staticStyle: {\n \"height\": \"55.4px\"\n }\n }, [_c('h1', [_vm._v(\"Hent indstillinger\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"header-welcome\"\n }, [_c('img', {\n attrs: {\n \"src\": require(\"./../assets/image/logo.png\"),\n \"alt\": \"logo\"\n }\n })])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-12471b78\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/velkommen.vue\n// module id = 1006\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"step-container\"\n }, [_vm._m(0), _vm._v(\" \"), (_vm.step1) ? _c('div', [_c('div', {\n staticClass: \"top-image step1\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"step-content\"\n }, [_c('h3', [_vm._v(\"Indtast din nøgle\")]), _vm._v(\" \"), _c('p', [_vm._v(\"For at kunne finde ud af hvilken forsyning, som du hører til, skal vi bruge en nøgle. Tryk på knappen nedenfor for at validere nøglen.\")]), _vm._v(\" \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.key),\n expression: \"key\"\n }],\n attrs: {\n \"type\": \"text\",\n \"placeholder\": \"Nøgle\"\n },\n domProps: {\n \"value\": (_vm.key)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.key = $event.target.value\n }\n }\n }), _vm._v(\" \"), _c('a', {\n staticClass: \"button\",\n staticStyle: {\n \"max-height\": \"38px\",\n \"height\": \"38px\"\n },\n on: {\n \"click\": _vm.validateKey\n }\n }, [(!_vm.downloading) ? _c('span', [_vm._v(\"Validér nøgle\")]) : _vm._e(), _vm._v(\" \"), (_vm.downloading) ? _c('span', [_c('div', {\n staticClass: \"loading-spinner\"\n }), _vm._v(\"   Validerer...\")]) : _vm._e()]), _vm._v(\" \"), _c('p', {\n staticClass: \"error\"\n }, [_vm._v(_vm._s(_vm.errorMessage))])])]) : _vm._e(), _vm._v(\" \"), (_vm.step2) ? _c('div', [_c('div', {\n staticClass: \"top-image step2\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"step-content\"\n }, [_c('h3', [_vm._v(\"Vælg montør\")]), _vm._v(\" \"), _c('p', [_vm._v(\"For at optimere din brugeroplevelse og sikre korrekt data, skal du fortælle os, hvem du er. Dette gøres i dropdown-feltet nedenfor.\")]), _vm._v(\" \"), _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.selected),\n expression: \"selected\"\n }],\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.selected = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, [_c('option', {\n attrs: {\n \"disabled\": \"\",\n \"value\": \"0\",\n \"selected\": \"selected\"\n }\n }, [_vm._v(\"Vælg en montør\")]), _vm._v(\" \"), _vm._l((_vm.options), function(option) {\n return _c('option', {\n key: option,\n domProps: {\n \"value\": option\n }\n }, [_vm._v(\"\\n \" + _vm._s(option.navn) + \"\\n \")])\n })], 2), _vm._v(\" \"), _c('a', {\n staticClass: \"button\",\n class: {\n disabled: _vm.empty\n },\n on: {\n \"click\": _vm.chooseUser\n }\n }, [_vm._v(\"Næste\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"error\"\n }, [_vm._v(_vm._s(_vm.errorMessage))])]), _vm._v(\" \"), _c('p', {\n staticClass: \"goback\",\n on: {\n \"click\": _vm.gotoStep1\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"arrow_back\")]), _vm._v(\" \\n Tilbage\\n \")])]) : _vm._e(), _vm._v(\" \"), (_vm.step3) ? _c('div', [_c('div', {\n staticClass: \"top-image step3\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"step-content\"\n }, [_c('h3', [_vm._v(\"Hent app'en og kom i gang\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Du er nu klar til at komme i gang. Tryk på knappen nedenfor for at hente nødvendige data ned på din enhed, så det fungerer uden internet og sikrer en bedre brugeroplevelse\")]), _vm._v(\" \"), _c('a', {\n staticClass: \"button\",\n on: {\n \"click\": _vm.getServerData\n }\n }, [_vm._v(\"Hent app\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"error\"\n }, [_vm._v(_vm._s(_vm.errorMessage))])]), _vm._v(\" \"), _c('p', {\n staticClass: \"goback\",\n on: {\n \"click\": _vm.gotoStep2\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"arrow_back\")]), _vm._v(\" \\n Tilbage\\n \")])]) : _vm._e(), _vm._v(\" \"), (_vm.showLoader) ? _c('div', {\n staticClass: \"loading-overlay\"\n }, [_c('div', {\n staticClass: \"counter\"\n }, [(_vm.errorMessage.length == 0) ? _c('div', [_vm._m(1), _vm._v(\" \"), _c('p', {\n staticClass: \"small-text-loading\"\n }, [_vm._v(_vm._s(_vm.message))])]) : _vm._e(), _vm._v(\" \"), (_vm.errorMessage.length > 0) ? _c('div', [_vm._v(\"\\n \" + _vm._s(_vm.errorMessage) + \"\\n \"), _c('a', {\n staticClass: \"button error-button\",\n on: {\n \"click\": _vm.closeError\n }\n }, [_vm._v(\"Okay\")])]) : _vm._e()])]) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"steps\"\n }, [_c('ul', [_c('li', {\n class: {\n active: _vm.step1\n }\n }), _vm._v(\" \"), _c('li', {\n class: {\n active: _vm.step2\n }\n }), _vm._v(\" \"), _c('li', {\n class: {\n active: _vm.step3\n }\n })])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"logo-top\"\n }, [_c('img', {\n attrs: {\n \"src\": require(\"./../assets/image/logo.png\"),\n \"alt\": \"logo\"\n }\n })])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h3', [_vm._v(\"Installerer MålerTjek-app'en \"), _c('span', {\n staticClass: \"loading-overview\"\n }, [_c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")])])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-240ecd74\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/init.vue\n// module id = 1007\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return (_vm.doneLoading) ? _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('v-map', {\n attrs: {\n \"zoom\": _vm.zoom,\n \"center\": _vm.center\n }\n }, [_c('v-tilelayer', {\n attrs: {\n \"url\": _vm.url,\n \"attribution\": _vm.attribution\n }\n }), _vm._v(\" \"), _vm._l((_vm.markers), function(item) {\n return _c('div', [_c('v-marker', {\n attrs: {\n \"lat-lng\": item.coordinates,\n \"icon\": item.icon\n }\n }, [_c('v-popup', {\n attrs: {\n \"content\": item.popup\n }\n }), _vm._v(\" \"), _c('v-tooltip', {\n attrs: {\n \"content\": item.tooltip,\n \"options\": _vm.options\n }\n })], 1)], 1)\n })], 2)], 1) : _c('div', [_vm._v(\"\\n Henter kort...\\n\")])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-3998ba3f\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/MapComponent.vue\n// module id = 1008\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.overlay),\n expression: \"overlay\"\n }],\n staticClass: \"deleting-overlay\"\n }, [_vm._m(0)]), _vm._v(\" \"), _c('transition', {\n attrs: {\n \"name\": \"modal\"\n }\n }, [_c('div', {\n staticClass: \"modal-mask\"\n }, [_c('div', {\n staticClass: \"modal-wrapper\"\n }, [_c('div', {\n staticClass: \"modal-container\"\n }, [_c('button', {\n staticClass: \"close-button\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": _vm.closeModal\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\",\n \"tabindex\": \"-1\"\n }\n }, [_vm._v(\"×\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-header\"\n }, [_vm._t(\"header\", function() {\n return [_c('h3', [_vm._v(\"Hjælp til MålerTjek\")])]\n })], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-body\"\n }, [_vm._t(\"body\", function() {\n return [_c('p', [_vm._v(\"\\n Hvis du oplever problemer med at den ikke vil synkronisere dit data, kan en\\n mulig løsning være, at fjerne dine lokale ændringer. Dette vil resultere i,\\n at alle ændringer siden sidst du synkroniserede, vil gå tabt. Hvis du ønsker\\n at slette dine lokale data, klik på knappen nedenfor.\\n \")]), _vm._v(\" \"), _c('p', [_vm._v(\"\\n Har du brug for support til MålerTjek, kan du ringe på support-telefonen \\n \"), _c('b', [_vm._v(\"2857 5859\")]), _vm._v(\" eller sende en e-mail til \"), _c('a', {\n attrs: {\n \"href\": \"mailto:infosupport@niras.dk?Subject=MålerTjek\",\n \"target\": \"_top\"\n }\n }, [_vm._v(\"infosupport@niras.dk\")]), _vm._v(\". \\n \")])]\n })], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-footer\"\n }, [_vm._t(\"footer\", function() {\n return [_c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('a', {\n staticClass: \"button\",\n on: {\n \"click\": _vm.closeModal\n }\n }, [_vm._v(\"Luk\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-left\": \"4px\"\n }\n }, [_c('a', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.clearAll\n }\n }, [_vm._v(\"Slet data\")])])])]\n })], 2)])])])])], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"counter text-center\"\n }, [_c('h3', [_vm._v(\"Sletter lokale data\"), _c('span', {\n staticClass: \"loading-overview\"\n }, [_c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")]), _c('span', [_vm._v(\".\")])])])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4474995e\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/helpmodal.vue\n// module id = 1009\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"projekter topspacing\"\n }, [_c('div', {\n staticClass: \"grid-x content\"\n }, [_c('div', {\n staticClass: \"small-8 cell\"\n }, [_vm._m(0), _vm._v(\" \"), _c('datepicker', {\n attrs: {\n \"id\": \"datepicker\",\n \"name\": \"Datepicker\",\n \"language\": \"da\",\n \"placeholder\": \"I dag\"\n },\n on: {\n \"selected\": _vm.getSelectedDate\n },\n model: {\n value: (_vm.state.date),\n callback: function($$v) {\n _vm.$set(_vm.state, \"date\", $$v)\n },\n expression: \"state.date\"\n }\n })], 1), _vm._v(\" \"), _c('div', {\n staticClass: \"small-4 cell\"\n }, [_c('div', {\n staticClass: \"user special-text text-right\",\n on: {\n \"click\": _vm.showUsers\n }\n }, [_c('p', [_vm._v(_vm._s(_vm.selectedUser.navn) + \" \"), _c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"keyboard_arrow_down\")])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.showUserList),\n expression: \"showUserList\"\n }],\n staticClass: \"user-list\"\n }, [_c('ul', _vm._l((_vm.users), function(user) {\n return _c('li', {\n key: user.id,\n on: {\n \"click\": function($event) {\n return _vm.selectUser(user)\n }\n }\n }, [_vm._v(\"\\n \" + _vm._s(user.navn) + \"\\n \")])\n }), 0)])])])]), _vm._v(\" \"), _c('ul', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.filteredResult.length > 0),\n expression: \"filteredResult.length > 0\"\n }],\n staticClass: \"list content\",\n class: {\n 'hide-list': _vm.createNew\n }\n }, _vm._l((_vm.projectView), function(project, index) {\n return _c('li', {\n key: project.id,\n on: {\n \"click\": function($event) {\n return _vm.gotoProject(project)\n }\n }\n }, [_c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-1 cell\"\n }, [_c('div', {\n staticClass: \"status dark-color\",\n class: _vm.classObject(project)\n }, [(index < 9) ? _c('span', [_vm._v(\"0\")]) : _vm._e(), _vm._v(_vm._s(index + 1))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\"\n }, [_c('span', [_vm._v(_vm._s(project.bookingTypeNavn))]), _c('br'), _vm._v(\" \"), (!project.adresse.etage && !project.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(project.adresse.vejnavn + ' ' + project.adresse.husnummer + ', ' + project.adresse.postnummer + ' ' + project.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (project.adresse.etage && !project.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(project.adresse.vejnavn + ' ' + project.adresse.husnummer + '. ' + project.adresse.etage + ', ' + project.adresse.postnummer + ' ' + project.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (!project.adresse.etage && project.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(project.adresse.vejnavn + ' ' + project.adresse.husnummer + '. ' + project.adresse.doer + ', ' + project.adresse.postnummer + ' ' + project.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (project.adresse.etage && project.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(project.adresse.vejnavn + ' ' + project.adresse.husnummer + '. ' + project.adresse.etage + ' - ' + project.adresse.doer + ', ' + project.adresse.postnummer + ' ' + project.adresse.by)))]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-4 cell padding-text\"\n }, [_vm._v(\"\\n \" + _vm._s(_vm._f(\"moment\")(project.fratid)) + \" - \" + _vm._s(_vm._f(\"moment\")(project.tiltid)) + \"\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-1 cell icon-center\"\n }, [(project.bemaerkning !== '') ? _c('i', {\n staticClass: \"material-icons note-icon\"\n }, [_vm._v(\"note\")]) : _vm._e()])])])\n }), 0), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.filteredResult.length == 0 || _vm.projectView == undefined),\n expression: \"filteredResult.length == 0 || projectView == undefined\"\n }],\n staticClass: \"placeholder\"\n }, [_vm._m(1), _vm._v(\" \"), _vm._m(2)])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('span', {\n staticClass: \"float-left\"\n }, [_c('i', {\n staticClass: \"material-icons date-icon\"\n }, [_vm._v(\"date_range\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"placeholder-image\"\n }, [_c('img', {\n attrs: {\n \"src\": require(\"./../assets/image/invoice.png\"),\n \"alt\": \"projekt-ikon\"\n }\n })])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h5', [_vm._v(\"Ingen opgaver for den\"), _c('br'), _vm._v(\" valgte dato eller montør\")])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6649a538\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/projekter.vue\n// module id = 1010\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"small-6 cell image-cells\"\n }, [_c('a', {\n attrs: {\n \"href\": _vm.dataSourceFull,\n \"data-lightbox\": \"image-1\"\n }\n }, [_c('div', {\n staticClass: \"img-container\",\n style: ({\n 'background': 'url(' + _vm.dataSource + ')'\n })\n })]), _vm._v(\" \"), _c('span', {\n staticClass: \"remove-image\",\n attrs: {\n \"aria-hidden\": \"true\",\n \"data-open\": 'removeImageModal' + _vm.upload.id\n }\n }, [_vm._v(\"×\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"reveal\",\n attrs: {\n \"id\": 'removeImageModal' + _vm.upload.id,\n \"data-reveal\": \"\"\n }\n }, [_vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-body\"\n }, [_c('p', [_vm._v(\"Du er ved at slette et billede\")]), _vm._v(\" \"), _c('div', [_c('img', {\n staticClass: \"img-center\",\n attrs: {\n \"src\": _vm.dataSource,\n \"alt\": \"\"\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"spacing\"\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('button', {\n staticClass: \"button\",\n attrs: {\n \"data-close\": 'removeImageModal' + _vm.upload.id\n }\n }, [_vm._v(\"Annuller\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-left\": \"4px\"\n }\n }, [_c('button', {\n staticClass: \"button call-to-action\",\n attrs: {\n \"data-close\": 'removeImageModal' + _vm.upload.id\n },\n on: {\n \"click\": function($event) {\n return _vm.removeUpload(_vm.upload.id)\n }\n }\n }, [_vm._v(\"Slet\")])])])])])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"modal-header\"\n }, [_c('h3', [_c('b', [_vm._v(\"Er du sikker?\")])])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-674d82ba\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/FormUpload.vue\n// module id = 1011\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('transition', {\n attrs: {\n \"name\": \"modal\"\n }\n }, [_c('div', {\n staticClass: \"modal-mask\"\n }, [_c('div', {\n staticClass: \"modal-wrapper\"\n }, [_c('div', {\n staticClass: \"modal-container\"\n }, [_c('button', {\n staticClass: \"close-button\",\n attrs: {\n \"type\": \"button\"\n },\n on: {\n \"click\": _vm.cancelCamera\n }\n }, [_c('span', {\n attrs: {\n \"aria-hidden\": \"true\",\n \"tabindex\": \"-1\"\n }\n }, [_vm._v(\"×\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-header\"\n }, [_vm._t(\"header\")], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-body\"\n }, [_vm._t(\"body\", function() {\n return [_c('p', {\n staticStyle: {\n \"margin-bottom\": \"0px\"\n }\n }, [_c('b', [_vm._v(\"Stregkode:\")]), _vm._v(\" \" + _vm._s(_vm.finalResult))]), _vm._v(\" \"), _c('p', {\n staticClass: \"green-color\",\n class: {\n 'visibility': !_vm.finalResult\n },\n staticStyle: {\n \"text-transform\": \"uppercase\"\n }\n }, [_vm._v(\"Stregkode på \" + _vm._s(_vm.finalResult.length) + \" cifre scannet!\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"viewport\",\n attrs: {\n \"id\": \"interactive\"\n }\n }, [_c('video', {\n attrs: {\n \"id\": \"video\"\n }\n }), _vm._v(\" \"), _c('div', {\n staticClass: \"red-line\"\n }, [_c('hr')])])]\n })], 2), _vm._v(\" \"), _c('div', {\n staticClass: \"modal-footer\"\n }, [_vm._t(\"footer\", function() {\n return [_c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('a', {\n staticClass: \"button\",\n attrs: {\n \"data-toggle\": \"barcodeModal\",\n \"aria-controls\": \"barcodeModal\"\n },\n on: {\n \"click\": _vm.cancelCamera\n }\n }, [_vm._v(\"Annuller\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-left\": \"4px\"\n }\n }, [_c('a', {\n staticClass: \"button call-to-action\",\n attrs: {\n \"data-toggle\": \"barcodeModal\",\n \"aria-controls\": \"barcodeModal\"\n },\n on: {\n \"click\": _vm.stopCamera\n }\n }, [_vm._v(\"Brug stregkode\")])])])]\n })], 2)])])])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-712f8702\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/modal.vue\n// module id = 1012\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"default content text-center\"\n })\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-c46dac0a\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/default.vue\n// module id = 1013\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"projekt topspacing-big\"\n }, [_c('div', {\n staticClass: \"header-big\"\n }, [_c('div', {\n staticClass: \"left\",\n on: {\n \"click\": function($event) {\n return _vm.goBack()\n }\n }\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 240.823 240.823\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"viewBox\": \"0 0 240.823 240.823\",\n \"xml:space\": \"preserve\",\n \"width\": \"18px\",\n \"height\": \"18px\"\n }\n }, [_c('g', [_c('path', {\n attrs: {\n \"id\": \"Chevron_Right\",\n \"d\": \"M57.633,129.007L165.93,237.268c4.752,4.74,12.451,4.74,17.215,0c4.752-4.74,4.752-12.439,0-17.179 l-99.707-99.671l99.695-99.671c4.752-4.74,4.752-12.439,0-17.191c-4.752-4.74-12.463-4.74-17.215,0L57.621,111.816 C52.942,116.507,52.942,124.327,57.633,129.007z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])]), _vm._v(\" \"), _c('h1', [_vm._v(_vm._s(_vm.filteredResult.bookingTypeNavn))]), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _c('div', {\n staticClass: \"info-user\"\n }, [(_vm.filteredResult && !_vm.filteredResult.adresse.etage && !_vm.filteredResult.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(_vm.filteredResult.adresse.vejnavn + ' ' + _vm.filteredResult.adresse.husnummer + ', ' + _vm.filteredResult.adresse.postnummer + ' ' + _vm.filteredResult.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult && _vm.filteredResult.adresse.etage && !_vm.filteredResult.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(_vm.filteredResult.adresse.vejnavn + ' ' + _vm.filteredResult.adresse.husnummer + '. ' + _vm.filteredResult.adresse.etage + ', ' + _vm.filteredResult.adresse.postnummer + ' ' + _vm.filteredResult.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult && !_vm.filteredResult.adresse.etage && _vm.filteredResult.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(_vm.filteredResult.adresse.vejnavn + ' ' + _vm.filteredResult.adresse.husnummer + '. ' + _vm.filteredResult.adresse.doer + ', ' + _vm.filteredResult.adresse.postnummer + ' ' + _vm.filteredResult.adresse.by)))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult && _vm.filteredResult.adresse.etage && _vm.filteredResult.adresse.doer) ? _c('p', {\n staticClass: \"small-text\"\n }, [_vm._v(_vm._s(_vm._f(\"shorten\")(_vm.filteredResult.adresse.vejnavn + ' ' + _vm.filteredResult.adresse.husnummer + '. ' + _vm.filteredResult.adresse.etage + ' - ' + _vm.filteredResult.adresse.doer + ', ' + _vm.filteredResult.adresse.postnummer + ' ' + _vm.filteredResult.adresse.by)))]) : _vm._e(), _vm._v(\" \"), _c('p', {\n staticClass: \"time\"\n }, [_vm._v(_vm._s(_vm._f(\"formattedDate\")(_vm.filteredResult.fratid)) + \" - \" + _vm._s(_vm._f(\"moment\")(_vm.filteredResult.tiltid)))])])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.show == 'booking'),\n expression: \"show == 'booking'\"\n }],\n staticClass: \"content padding-bottom-big\"\n }, [_c('h5', [_vm._v(\"Måler\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"special-text under-header\"\n }, [_c('p', [_vm._v(_vm._s(_vm.filteredResult.maalerType))]), _vm._v(\" \"), _c('span', [_vm._v(_vm._s(_vm.filteredResult.maalernummer))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\",\n staticStyle: {\n \"width\": \"100%\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"målerplacering\"\n }\n }, [_vm._v(\"Målerplacering\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.målerplacering),\n expression: \"data.målerplacering\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"målerplacering\",\n \"disabled\": \"disabled\"\n },\n domProps: {\n \"value\": (_vm.data.målerplacering)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"målerplacering\", $event.target.value)\n }\n }\n })]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"tidligerestand\"\n }\n }, [_vm._v(\"Tidligere stand\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.tidligerestand),\n expression: \"data.tidligerestand\"\n }],\n attrs: {\n \"type\": \"number\",\n \"disabled\": \"disabled\",\n \"id\": \"tidligerestand\"\n },\n domProps: {\n \"value\": (_vm.data.tidligerestand)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"tidligerestand\", $event.target.value)\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-left\": \"4px\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"aktuelstand\"\n }\n }, [_vm._v(\"Aktuel stand\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.tidligereaktuelstand),\n expression: \"data.tidligereaktuelstand\"\n }],\n attrs: {\n \"type\": \"number\",\n \"id\": \"aktuelstand\"\n },\n domProps: {\n \"value\": (_vm.data.tidligereaktuelstand)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"tidligereaktuelstand\", $event.target.value)\n }\n }\n })]), _vm._v(\" \"), (_vm.data.tidligerestand > 0) ? _c('p', {\n staticStyle: {\n \"font-size\": \"0.9rem\",\n \"margin-top\": \"-5px\",\n \"padding-left\": \"2px\",\n \"font-style\": \"italic\",\n \"margin-bottom\": \"0px\"\n }\n }, [_vm._v(\"Forventet: \" + _vm._s(Math.floor(_vm.beregnForventetForbrugForDato(_vm.filteredResult.aflaesningsdato, _vm.filteredResult.fratid, _vm.filteredResult.aarsforbrug)) + _vm.data.tidligerestand))]) : _vm._e()])]), _vm._v(\" \"), _c('h5', {\n staticStyle: {\n \"margin-top\": \"10px\"\n }\n }, [_vm._v(\"Ny måler\")]), _vm._v(\" \"), (_vm.showModal) ? _c('modal', {\n on: {\n \"close\": _vm.childClicked\n }\n }) : _vm._e(), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-6 cell\",\n staticStyle: {\n \"padding-right\": \"4px\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"number\"\n }\n }, [_vm._v(\"Nummer\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.nummer),\n expression: \"data.nummer\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"number\"\n },\n domProps: {\n \"value\": (_vm.data.nummer)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"nummer\", $event.target.value)\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-2 cell\"\n }, [_c('button', {\n staticClass: \"button barcode\",\n attrs: {\n \"data-open\": \"barcodeModal\"\n },\n on: {\n \"click\": _vm.scanClick\n }\n }, [_c('svg', {\n staticStyle: {\n \"enable-background\": \"new 0 0 28.046 28.046\"\n },\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Capa_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"width\": \"24px\",\n \"height\": \"24px\",\n \"viewBox\": \"0 0 28.046 28.046\",\n \"xml:space\": \"preserve\"\n }\n }, [_c('g', [_c('g', [_c('rect', {\n attrs: {\n \"y\": \"4.877\",\n \"width\": \"3.161\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"20.631\",\n \"y\": \"4.877\",\n \"width\": \"3.165\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"5.141\",\n \"y\": \"4.877\",\n \"width\": \"1.579\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"14.995\",\n \"y\": \"4.877\",\n \"width\": \"1.581\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"17.766\",\n \"y\": \"4.877\",\n \"width\": \"1.576\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"24.486\",\n \"y\": \"4.877\",\n \"width\": \"1.584\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"27.255\",\n \"y\": \"4.877\",\n \"width\": \"0.791\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n }), _vm._v(\" \"), _c('rect', {\n attrs: {\n \"x\": \"8.765\",\n \"y\": \"4.877\",\n \"width\": \"4.746\",\n \"height\": \"18.292\",\n \"fill\": \"#292929\"\n }\n })])])])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"small-4 cell\",\n staticStyle: {\n \"padding-left\": \"6px\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"stand\"\n }\n }, [_vm._v(\"Aktuel stand\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.aktuelstand),\n expression: \"data.aktuelstand\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"stand\"\n },\n domProps: {\n \"value\": (_vm.data.aktuelstand)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"aktuelstand\", $event.target.value)\n }\n }\n })])])]), _vm._v(\" \"), _c('label', {\n attrs: {\n \"for\": \"select\"\n }\n }, [_vm._v(\"Årsag til ny tid\\n \"), _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.nytidselect),\n expression: \"data.nytidselect\"\n }],\n attrs: {\n \"id\": \"select\"\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(_vm.data, \"nytidselect\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"value\": \"0\"\n }\n }, [_vm._v(\"Ingen valgt\")]), _vm._v(\" \"), _vm._l((_vm.timetypes), function(timetype) {\n return _c('option', {\n key: timetype.id,\n domProps: {\n \"selected\": _vm.selected,\n \"value\": timetype.id\n }\n }, [_vm._v(\"\\n \" + _vm._s(timetype.navn) + \"\\n \")])\n })], 2)]), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"small-12 cell\"\n }, [_c('button', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.saveInfo\n }\n }, [_vm._v(\"Gem\")])])])], 1), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.show == 'customer'),\n expression: \"show == 'customer'\"\n }],\n staticClass: \"content padding-bottom-big\"\n }, [_vm._m(1), _vm._v(\" \"), (_vm.filteredResult.kunde) ? _c('div', {\n staticClass: \"customer-info\"\n }, [_c('p', [_vm._v(_vm._s(_vm.filteredResult.kunde.navn))]), _vm._v(\" \"), _c('p', [_vm._v(_vm._s(_vm.filteredResult.adresse.vejnavn) + \" \" + _vm._s(_vm.filteredResult.adresse.husnummer) + \", \" + _vm._s(_vm.filteredResult.adresse.postnummer) + \" \" + _vm._s(_vm.filteredResult.adresse.by))]), _vm._v(\" \"), _c('p', [_vm._v(_vm._s(_vm.filteredResult.by))]), _vm._v(\" \"), (_vm.filteredResult.kunde.email != null || _vm.filteredResult.kunde.email != undefined) ? _c('p', [_vm._v(_vm._s(_vm.filteredResult.kunde.email))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult.kunde.email == null || _vm.filteredResult.kunde.email == undefined) ? _c('p', [_c('br'), _vm._v(\" \"), _c('label', {\n attrs: {\n \"for\": \"email\"\n }\n }, [_vm._v(\"Email\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.email),\n expression: \"data.email\"\n }],\n attrs: {\n \"type\": \"email\",\n \"id\": \"email\"\n },\n domProps: {\n \"value\": (_vm.data.email)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"email\", $event.target.value)\n }\n }\n })])]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult.kunde.mobil != null || _vm.filteredResult.kunde.mobil != undefined) ? _c('p', [_vm._v(_vm._s(_vm.filteredResult.kunde.mobil))]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult.kunde.mobil == null || _vm.filteredResult.kunde.mobil == undefined) ? _c('p', [(_vm.filteredResult.kunde.email != null || _vm.filteredResult.kunde.email != undefined) ? _c('br') : _vm._e(), _vm._v(\" \"), _c('label', {\n attrs: {\n \"for\": \"phone\"\n }\n }, [_vm._v(\"Mobil\\n \"), _c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.data.mobil),\n expression: \"data.mobil\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"phone\"\n },\n domProps: {\n \"value\": (_vm.data.mobil)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.$set(_vm.data, \"mobil\", $event.target.value)\n }\n }\n })])]) : _vm._e(), _vm._v(\" \"), (_vm.filteredResult.kunde.email == null || _vm.filteredResult.kunde.email == undefined || _vm.filteredResult.kunde.mobil == null || _vm.filteredResult.kunde.mobil == undefined) ? _c('a', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.saveInfo\n }\n }, [_vm._v(\"Gem\")]) : _vm._e()]) : _vm._e(), _vm._v(\" \"), (!_vm.filteredResult.kunde) ? _c('div', {\n staticClass: \"customer-info no-info\"\n }, [_c('p', {\n staticClass: \"text-center\"\n }, [_vm._v(\"Der findes ingen oplysninger på kunden\")])]) : _vm._e()]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.show == 'notes'),\n expression: \"show == 'notes'\"\n }],\n staticClass: \"content padding-bottom-big\"\n }, [_c('h5', [_vm._v(\"Noter\")]), _vm._v(\" \"), _c('textarea', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.note),\n expression: \"note\"\n }],\n attrs: {\n \"rows\": \"4\"\n },\n domProps: {\n \"value\": (_vm.note)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.note = $event.target.value\n }\n }\n }), _vm._v(\" \"), _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.noteselect),\n expression: \"noteselect\"\n }],\n attrs: {\n \"id\": \"select\"\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.noteselect = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, [_c('option', {\n attrs: {\n \"value\": \"-1\",\n \"disabled\": \"disabled\"\n }\n }, [_vm._v(\"Ingen valgt\")]), _vm._v(\" \"), _vm._l((_vm.notetypes), function(notetype) {\n return _c('option', {\n key: notetype.id,\n domProps: {\n \"value\": notetype.navn\n }\n }, [_vm._v(\"\\n \" + _vm._s(notetype.navn) + \"\\n \")])\n })], 2), _vm._v(\" \"), _c('button', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.saveInfo\n }\n }, [_vm._v(\"Gem\")])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.show == 'images'),\n expression: \"show == 'images'\"\n }],\n staticClass: \"content padding-bottom-big\"\n }, [_c('div', {\n staticClass: \"addFile\"\n }, [_c('input', {\n attrs: {\n \"type\": \"file\",\n \"name\": \"fileUpload\",\n \"accept\": \"image/*\",\n \"capture\": \"\"\n },\n on: {\n \"change\": _vm.gotUpload\n }\n }), _vm._v(\" \"), _c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"cloud_upload\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Tilføj billede\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"addScreenshot\"\n }, [(_vm.webcam.active) ? _c('div', [_c('web-cam', {\n ref: \"webcam\",\n attrs: {\n \"deviceId\": _vm.webcam.selectedCameraId,\n \"height\": 200\n },\n on: {\n \"cameras\": _vm.getAvailableCameras\n }\n }), _vm._v(\" \"), (_vm.webcam.availableCameras) ? _c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.webcam.selectedCameraId),\n expression: \"webcam.selectedCameraId\"\n }],\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.$set(_vm.webcam, \"selectedCameraId\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])\n }\n }\n }, [_c('option', {\n attrs: {\n \"disabled\": \"\"\n }\n }, [_vm._v(\"Vælg Kamera\")]), _vm._v(\" \"), _vm._l((_vm.webcam.availableCameras), function(camera) {\n return _c('option', {\n key: camera.deviceId,\n domProps: {\n \"value\": camera.deviceId\n }\n }, [_vm._v(\"\\n \" + _vm._s(camera.label) + \"\\n \")])\n })], 2) : _vm._e(), _vm._v(\" \"), _c('button', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": function($event) {\n return _vm.capture_screenshot()\n }\n }\n }, [_vm._v(\"Tag screenshot\")])], 1) : _vm._e(), _vm._v(\" \"), _c('button', {\n staticClass: \"button\",\n on: {\n \"click\": function($event) {\n return _vm.toggleCamera()\n }\n }\n }, [_vm._v(_vm._s(_vm.webcam.text))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"grid-x\"\n }, _vm._l((_vm.localImages), function(upload) {\n return _c('FormUpload', {\n key: upload.id || _vm.mongoid,\n attrs: {\n \"upload\": upload\n },\n on: {\n \"removeUpload\": function($event) {\n return _vm.doremoveUpload(upload.id)\n }\n }\n })\n }), 1)]), _vm._v(\" \"), _c('footer', [_c('div', {\n staticClass: \"grid-x\"\n }, [_c('div', {\n staticClass: \"auto cell\",\n class: {\n 'active-item': _vm.show == 'booking'\n },\n on: {\n \"click\": _vm.goToBooking\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"date_range\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Booking\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"auto cell\",\n class: {\n 'active-item': _vm.show == 'customer'\n },\n on: {\n \"click\": _vm.goToCustomer\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"person\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Kunde\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"auto cell\",\n class: {\n 'active-item': _vm.show == 'notes'\n },\n on: {\n \"click\": _vm.goToNotes\n }\n }, [_c('svg', {\n attrs: {\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"xmlns:xlink\": \"http://www.w3.org/1999/xlink\",\n \"version\": \"1.1\",\n \"id\": \"Layer_1\",\n \"x\": \"0px\",\n \"y\": \"0px\",\n \"width\": \"23px\",\n \"height\": \"25px\",\n \"viewBox\": \"0 0 128 128\",\n \"enable-background\": \"new 0 0 128 128\",\n \"xml:space\": \"preserve\"\n }\n }, [_c('g', [_c('g', [_c('path', {\n attrs: {\n \"d\": \"M8,112V16c0-4.414,3.594-8,8-8h80c4.414,0,8,3.586,8,8v47.031l8-8V16c0-8.836-7.164-16-16-16H16C7.164,0,0,7.164,0,16v96 c0,8.836,7.164,16,16,16h44v-8H16C11.594,120,8,116.414,8,112z M88,24H24v8h64V24z M88,40H24v8h64V40z M88,56H24v8h64V56z M24,80 h32v-8H24V80z M125.656,72L120,66.344c-1.563-1.563-3.609-2.344-5.656-2.344s-4.094,0.781-5.656,2.344l-34.344,34.344 C72.781,102.25,68,108.293,68,110.34L64,128l17.656-4c0,0,8.094-4.781,9.656-6.344l34.344-34.344 C128.781,80.188,128.781,75.121,125.656,72z M88.492,114.82c-0.453,0.43-2.02,1.488-3.934,2.707l-10.363-10.363 c1.063-1.457,2.246-2.922,2.977-3.648l25.859-25.859l11.313,11.313L88.492,114.82z\",\n \"fill\": \"#FFFFFF\"\n }\n })])])]), _vm._v(\" \"), _c('p', [_vm._v(\"Noter\")])]), _vm._v(\" \"), _c('div', {\n staticClass: \"auto cell\",\n class: {\n 'active-item': _vm.show == 'images'\n },\n on: {\n \"click\": _vm.goToImages\n }\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"camera_alt\")]), _vm._v(\" \"), _c('p', [_vm._v(\"Billeder\")])])])]), _vm._v(\" \"), _c('div', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.overlay),\n expression: \"overlay\"\n }],\n staticClass: \"overlay\",\n attrs: {\n \"data-toggle\": \"bottommenu\",\n \"aria-controls\": \"bottommenu\"\n },\n on: {\n \"click\": _vm.closeMenu\n }\n }), _vm._v(\" \"), (_vm.deviation === true) ? _c('div', {\n staticClass: \"alert-message\"\n }, [_c('div', {\n staticClass: \"align-alert-item\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"warning\")]), _vm._v(\" \"), _c('h5', [_vm._v(\"Der er en afvigelse på mere end \" + _vm._s(_vm.maxDeviation) + \"%\")]), _vm._v(\" \"), _c('button', {\n staticClass: \"button call-to-action\",\n on: {\n \"click\": _vm.closeAlert\n }\n }, [_vm._v(\"Luk\")])])]) : _vm._e(), _vm._v(\" \"), (_vm.popup == true) ? _c('div', {\n staticClass: \"popup-message\"\n }, [_vm._m(2)]) : _vm._e()])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"right\"\n }, [_c('i', {\n staticClass: \"material-icons\",\n staticStyle: {\n \"visibility\": \"hidden\"\n }\n }, [_vm._v(\"receipt\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('h5', [_vm._v(\"Kundeoplysninger   \"), _c('i', {\n staticClass: \"material-icons person-icon\"\n }, [_vm._v(\"person\")])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"align-item\"\n }, [_c('i', {\n staticClass: \"material-icons\"\n }, [_vm._v(\"check_circle\")]), _vm._v(\" \"), _c('h5', [_vm._v(\"Gemt!\")])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-e513906a\",\"hasScoped\":false}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/pages/projekt.vue\n// module id = 1014\n// module chunks = 1","module.exports = \"data:image/png;base64,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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/logo.png\n// module id = 234\n// module chunks = 1","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport Init from '@/pages/init'\r\nimport Welcome from '@/pages/velkommen'\r\nimport Projects from '@/pages/projekter'\r\nimport Project from '@/pages/projekt'\r\nimport Maps from '@/pages/kort'\r\nimport Default from '@/pages/default'\r\n\r\nVue.use(Router)\r\n\r\nexport default new Router({\r\n routes: [\r\n {\r\n path: '/',\r\n name: 'default',\r\n component: Default\r\n },\r\n {\r\n path: '/init/:key',\r\n name: 'init',\r\n component: Init,\r\n params: { key: '' }\r\n },\r\n {\r\n path: '/velkommen',\r\n name: 'velkommen',\r\n component: Welcome\r\n },\r\n {\r\n path: '/projekter',\r\n name: 'projekter',\r\n component: Projects\r\n },\r\n {\r\n path: '/projekt/:id',\r\n name: 'projekt',\r\n params: { id: '' },\r\n component: Project\r\n },\r\n {\r\n path: '/kort',\r\n name: 'kort',\r\n component: Maps\r\n }\r\n ],\r\n // mode: 'history'\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\nVue.use(Vuex)\r\n\r\nexport const store = new Vuex.Store({\r\n state: {\r\n notification: 0\r\n },\r\n getters: {\r\n notification: state => {\r\n return state.notification;\r\n }\r\n },\r\n mutations: {\r\n updateNotification: (state, payload) => {\r\n state.notification = payload;\r\n }\r\n },\r\n actions: {\r\n updateNotification: ({ commit }, payload) => {\r\n commit('updateNotification', payload);\r\n localStorage.setItem('notification', payload);\r\n }\r\n }\r\n});\n\n\n// WEBPACK FOOTER //\n// ./src/store/store.js","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAMAAAAhFXfZAAAC91BMVEVMaXEzeak2f7I4g7g3g7cua5gzeKg8hJo3grY4g7c3grU0gLI2frE0daAubJc2gbQwd6QzeKk2gLMtd5sxdKIua5g1frA2f7IydaM0e6w2fq41fK01eqo3grgubJgta5cxdKI1f7AydaQydaMxc6EubJgvbJkwcZ4ubZkwcJwubZgubJcydqUydKIxapgubJctbJcubZcubJcvbJYubJcvbZkubJctbJctbZcubJg2f7AubJcrbZcubJcubJcua5g3grY0fq8ubJcubJdEkdEwhsw6i88vhswuhcsuhMtBjMgthMsrg8srgss6is8qgcs8i9A9iMYtg8spgcoogMo7hcMngMonf8olfso4gr8kfck5iM8jfMk4iM8he8k1fro7itAgesk2hs8eecgzfLcofssdeMg0hc4cd8g2hcsxeLQbdsgZdcgxeLImfcszhM0vda4xgckzhM4xg84wf8Yxgs4udKsvfcQucqhUndROmdM1fK0wcZ8vb5w0eqpQm9MzeKhXoNVcpdYydKNWn9VZotVKltJFjsIwcJ1Rms9OlslLmtH///8+kc9epdYzd6dbo9VHkMM2f7FHmNBClM8ydqVcpNY9hro3gLM9hLczealQmcw3fa46f7A8gLMxc6I3eagyc6FIldJMl9JSnNRSntNNl9JPnNJFi75UnM9ZodVKksg8kM45jc09e6ZHltFBk883gbRBh7pDk9EwcaBzn784g7dKkcY2i81Om9M7j85Llc81is09g7Q4grY/j9A0eqxKmdFFltBEjcXf6fFImdBCiLxJl9FGlNFBi78yiMxVndEvbpo6js74+vx+psPP3+o/ks5HkcpGmNCjwdZCkNDM3ehYoNJEls+lxNkxh8xHks0+jdC1zd5Lg6r+/v/H2ufz9/o3jM3t8/edvdM/k89Th61OiLBSjbZklbaTt9BfptdjmL1AicBHj8hGk9FAgK1dkLNTjLRekrdClc/k7fM0icy0y9tgp9c4jc2NtM9Dlc8zicxeXZn3AAAAQ3RSTlMAHDdTb4yPA+LtnEQmC4L2EmHqB7XA0d0sr478x4/Yd5i1zOfyPkf1sLVq4Nh3FvjxopQ2/STNuFzUwFIwxKaejILpIBEV9wAABhVJREFUeF6s1NdyFEcY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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet/dist/images/marker-icon-2x.png\n// module id = 505\n// module chunks = 1","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet/dist/images/marker-icon.png\n// module id = 506\n// module chunks = 1","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/leaflet/dist/images/marker-shadow.png\n// module id = 507\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0912b874\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0912b874\\\",\\\"hasScoped\\\":false}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = 509\n// module chunks = 1","import SIOdefaults from './config';\r\nimport clearQueue from './clearQueue';\r\nimport localforage from 'localforage';\r\n\r\nvar mongoObjectId = function () {\r\n var timestamp = (new Date().getTime() / 1000 | 0).toString(16);\r\n return timestamp + 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function() {\r\n return (Math.random() * 16 | 0).toString(16);\r\n }).toLowerCase();\r\n};\r\n\r\nvar framework = {\r\n createStore: function (name) {\r\n return localforage.createInstance({\r\n name: name,\r\n driver: localforage.INDEXEDDB\r\n });\r\n },\r\n getItem: function (store, key) {\r\n return store.getItem(key);\r\n },\r\n setItem: function (store, key, value) {\r\n return store.setItem(key, value);\r\n },\r\n clearStore: function (store) {\r\n return store.clear();\r\n },\r\n iterate: function (store, callback) {\r\n return store.iterate(callback);\r\n },\r\n removeItem: function (store, key) {\r\n return store.removeItem(key);\r\n },\r\n length: function (store) {\r\n return store.length();\r\n },\r\n keys: function (store) {\r\n return store.keys();\r\n }\r\n};\r\n\r\nvar SIOdal = (function (storeNames) {\r\n\r\n\t\"use strict\";\r\n\r\n var stores = {};\r\n\r\n\tvar dal = {\r\n createStore: function (storeName) {\r\n\r\n stores[storeName] = framework.createStore(storeName);\r\n\r\n return stores[storeName];\r\n\r\n },\r\n getStores: function () {\r\n return stores;\r\n },\r\n deleteStore: function () {\r\n\r\n },\r\n clearStore: function (storeName) {\r\n if (typeof stores[storeName] == \"undefined\") {\r\n dal.createStore(storeName);\r\n }\r\n\r\n return framework.clearStore(stores[storeName]);\r\n },\r\n getStoreLength: function (storeName) {\r\n if (typeof stores[storeName] == \"undefined\") {\r\n dal.createStore(storeName);\r\n }\r\n\r\n return framework.length(stores[storeName]);\r\n },\r\n getStoreKeys: function (storeName) {\r\n if (typeof stores[storeName] == \"undefined\") {\r\n dal.createStore(storeName);\r\n }\r\n\r\n return framework.keys(stores[storeName]);\r\n },\r\n clearAllStores: function () {\r\n var promises = [];\r\n\r\n for (var store in stores) {\r\n promises.push(function () {\r\n return framework.clearStore(stores[store])\r\n });\r\n }\r\n\r\n return clearQueue(promises);\r\n\r\n },\r\n deleteAllStores: function () {\r\n\r\n },\r\n getItem: function (storeName, key) {\r\n\r\n if (typeof stores[storeName] == \"undefined\") {\r\n dal.createStore(storeName);\r\n }\r\n\r\n return framework.getItem(stores[storeName], key);\r\n },\r\n setItem: function (storeName, key, value) {\r\n if (typeof stores[storeName] == \"undefined\") {\r\n dal.createStore(storeName);\r\n }\r\n\r\n return framework.setItem(stores[storeName], key, value);\r\n },\r\n iterate: function (storeName, callback) {\r\n if (typeof stores[storeName] == \"undefined\") {\r\n dal.createStore(storeName);\r\n }\r\n\r\n return framework.iterate(stores[storeName], callback);\r\n },\r\n removeItem: function(storeName, key) {\r\n return framework.removeItem(stores[storeName], key);\r\n },\r\n cloneItem: function (storeNameFrom, storeNameTo, key) {\r\n \r\n return framework.getItem(stores[storeNameFrom], key).then(function (result) {\r\n return framework.setItem(stores[storeNameTo], key, result);\r\n });\r\n },\r\n moveItem: function () {\r\n\r\n },\r\n init: function (storeNames) {\r\n storeNames.forEach (function (name) {\r\n dal.createStore(name);\r\n });\r\n }\r\n \r\n };\r\n\r\n dal.init(storeNames);\r\n\r\n return dal;\r\n\r\n})(SIOdefaults.stores);\r\n\r\nwindow.dal = SIOdal;\r\n\r\n\r\nexport default SIOdal;\r\n\r\nexport {\r\n mongoObjectId\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/js/Sync/dal.js","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// App.vue?7f6576f6","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// FormUpload.vue?75079384","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// MapComponent.vue?05a72213","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// helpmodal.vue?4d5fb90a","\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// modal.vue?b339c4de","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// default.vue?1c988d59","\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// init.vue?079c3042","\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// kort.vue?68a46faa","\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// projekt.vue?def74f60","\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// projekter.vue?f5da0b82","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// velkommen.vue?187c39ed","\"use strict\";\r\n\r\nexport default {\r\n stores: [\r\n \"MTTempImage\",\r\n \"MTSettings\",\r\n \"MTTasks\",\r\n \"MTTempData\"\r\n ]\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/js/Sync/config.js","/*\r\n proj4js.js -- Javascript reprojection library. \r\n \r\n Authors: Mike Adair madairATdmsolutions.ca\r\n Richard Greenwood richATgreenwoodmap.com\r\n Didier Richard didier.richardATign.fr\r\n Stephen Irons stephen.ironsATclear.net.nz\r\n Olivier Terral oterralATgmail.com\r\n \r\n License: \r\n Copyright (c) 2012, Mike Adair, Richard Greenwood, Didier Richard, \r\n Stephen Irons and Olivier Terral\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a\r\n copy of this software and associated documentation files (the \"Software\"),\r\n to deal in the Software without restriction, including without limitation\r\n the rights to use, copy, modify, merge, publish, distribute, sublicense,\r\n and/or sell copies of the Software, and to permit persons to whom the\r\n Software is furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included\r\n in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r\n THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r\n FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r\n DEALINGS IN THE SOFTWARE.\r\n \r\n Note: This program is an almost direct port of the C library PROJ.4.\r\n*/\r\n/* ======================================================================\r\n proj4js.js\r\n ====================================================================== */\r\n\r\n/*\r\nAuthor: Mike Adair madairATdmsolutions.ca\r\n Richard Greenwood rich@greenwoodmap.com\r\nLicense: LGPL as per: http://www.gnu.org/copyleft/lesser.html\r\n\r\n$Id: Proj.js 2956 2007-07-09 12:17:52Z steven $\r\n*/\r\n\r\n/**\r\n * Namespace: Proj4js\r\n *\r\n * Proj4js is a JavaScript library to transform point coordinates from one \r\n * coordinate system to another, including datum transformations.\r\n *\r\n * This library is a port of both the Proj.4 and GCTCP C libraries to JavaScript. \r\n * Enabling these transformations in the browser allows geographic data stored \r\n * in different projections to be combined in browser-based web mapping \r\n * applications.\r\n * \r\n * Proj4js must have access to coordinate system initialization strings (which\r\n * are the same as for PROJ.4 command line). Thes can be included in your \r\n * application using a \r\n \r\n def is a CS definition in PROJ.4 WKT format, for example:\r\n +proj=\"tmerc\" //longlat, etc.\r\n +a=majorRadius\r\n +b=minorRadius\r\n +lat0=somenumber\r\n +long=somenumber\r\n */\r\n Proj4js.defs = {\r\n // These are so widely used, we'll go ahead and throw them in\r\n // without requiring a separate .js file\r\n 'WGS84': \"+title=long/lat:WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\",\r\n 'EPSG:4326': \"+title=long/lat:WGS84 +proj=longlat +a=6378137.0 +b=6356752.31424518 +ellps=WGS84 +datum=WGS84 +units=degrees\",\r\n 'EPSG:4269': \"+title=long/lat:NAD83 +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\",\r\n 'EPSG:3875': \"+title= Google Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"\r\n };\r\n Proj4js.defs['EPSG:3785'] = Proj4js.defs['EPSG:3875']; //maintain backward compat, official code is 3875\r\n Proj4js.defs['GOOGLE'] = Proj4js.defs['EPSG:3875'];\r\n Proj4js.defs['EPSG:900913'] = Proj4js.defs['EPSG:3875'];\r\n Proj4js.defs['EPSG:102113'] = Proj4js.defs['EPSG:3875'];\r\n \r\n Proj4js.common = {\r\n PI : 3.141592653589793238, //Math.PI,\r\n HALF_PI : 1.570796326794896619, //Math.PI*0.5,\r\n TWO_PI : 6.283185307179586477, //Math.PI*2,\r\n FORTPI : 0.78539816339744833,\r\n R2D : 57.29577951308232088,\r\n D2R : 0.01745329251994329577,\r\n SEC_TO_RAD : 4.84813681109535993589914102357e-6, /* SEC_TO_RAD = Pi/180/3600 */\r\n EPSLN : 1.0e-10,\r\n MAX_ITER : 20,\r\n // following constants from geocent.c\r\n COS_67P5 : 0.38268343236508977, /* cosine of 67.5 degrees */\r\n AD_C : 1.0026000, /* Toms region 1 constant */\r\n \r\n /* datum_type values */\r\n PJD_UNKNOWN : 0,\r\n PJD_3PARAM : 1,\r\n PJD_7PARAM : 2,\r\n PJD_GRIDSHIFT: 3,\r\n PJD_WGS84 : 4, // WGS84 or equivalent\r\n PJD_NODATUM : 5, // WGS84 or equivalent\r\n SRS_WGS84_SEMIMAJOR : 6378137.0, // only used in grid shift transforms\r\n \r\n // ellipoid pj_set_ell.c\r\n SIXTH : .1666666666666666667, /* 1/6 */\r\n RA4 : .04722222222222222222, /* 17/360 */\r\n RA6 : .02215608465608465608, /* 67/3024 */\r\n RV4 : .06944444444444444444, /* 5/72 */\r\n RV6 : .04243827160493827160, /* 55/1296 */\r\n \r\n // Function to compute the constant small m which is the radius of\r\n // a parallel of latitude, phi, divided by the semimajor axis.\r\n // -----------------------------------------------------------------\r\n msfnz : function(eccent, sinphi, cosphi) {\r\n var con = eccent * sinphi;\r\n return cosphi/(Math.sqrt(1.0 - con * con));\r\n },\r\n \r\n // Function to compute the constant small t for use in the forward\r\n // computations in the Lambert Conformal Conic and the Polar\r\n // Stereographic projections.\r\n // -----------------------------------------------------------------\r\n tsfnz : function(eccent, phi, sinphi) {\r\n var con = eccent * sinphi;\r\n var com = .5 * eccent;\r\n con = Math.pow(((1.0 - con) / (1.0 + con)), com);\r\n return (Math.tan(.5 * (this.HALF_PI - phi))/con);\r\n },\r\n \r\n // Function to compute the latitude angle, phi2, for the inverse of the\r\n // Lambert Conformal Conic and Polar Stereographic projections.\r\n // ----------------------------------------------------------------\r\n phi2z : function(eccent, ts) {\r\n var eccnth = .5 * eccent;\r\n var con, dphi;\r\n var phi = this.HALF_PI - 2 * Math.atan(ts);\r\n for (var i = 0; i <= 15; i++) {\r\n con = eccent * Math.sin(phi);\r\n dphi = this.HALF_PI - 2 * Math.atan(ts *(Math.pow(((1.0 - con)/(1.0 + con)),eccnth))) - phi;\r\n phi += dphi;\r\n if (Math.abs(dphi) <= .0000000001) return phi;\r\n }\r\n alert(\"phi2z has NoConvergence\");\r\n return (-9999);\r\n },\r\n \r\n /* Function to compute constant small q which is the radius of a \r\n parallel of latitude, phi, divided by the semimajor axis. \r\n ------------------------------------------------------------*/\r\n qsfnz : function(eccent,sinphi) {\r\n var con;\r\n if (eccent > 1.0e-7) {\r\n con = eccent * sinphi;\r\n return (( 1.0- eccent * eccent) * (sinphi /(1.0 - con * con) - (.5/eccent)*Math.log((1.0 - con)/(1.0 + con))));\r\n } else {\r\n return(2.0 * sinphi);\r\n }\r\n },\r\n \r\n /* Function to eliminate roundoff errors in asin\r\n ----------------------------------------------*/\r\n asinz : function(x) {\r\n if (Math.abs(x)>1.0) {\r\n x=(x>1.0)?1.0:-1.0;\r\n }\r\n return Math.asin(x);\r\n },\r\n \r\n // following functions from gctpc cproj.c for transverse mercator projections\r\n e0fn : function(x) {return(1.0-0.25*x*(1.0+x/16.0*(3.0+1.25*x)));},\r\n e1fn : function(x) {return(0.375*x*(1.0+0.25*x*(1.0+0.46875*x)));},\r\n e2fn : function(x) {return(0.05859375*x*x*(1.0+0.75*x));},\r\n e3fn : function(x) {return(x*x*x*(35.0/3072.0));},\r\n mlfn : function(e0,e1,e2,e3,phi) {return(e0*phi-e1*Math.sin(2.0*phi)+e2*Math.sin(4.0*phi)-e3*Math.sin(6.0*phi));},\r\n \r\n srat : function(esinp, exp) {\r\n return(Math.pow((1.0-esinp)/(1.0+esinp), exp));\r\n },\r\n \r\n // Function to return the sign of an argument\r\n sign : function(x) { if (x < 0.0) return(-1); else return(1);},\r\n \r\n // Function to adjust longitude to -180 to 180; input in radians\r\n adjust_lon : function(x) {\r\n x = (Math.abs(x) < this.PI) ? x: (x - (this.sign(x)*this.TWO_PI) );\r\n return x;\r\n },\r\n \r\n // IGNF - DGR : algorithms used by IGN France\r\n \r\n // Function to adjust latitude to -90 to 90; input in radians\r\n adjust_lat : function(x) {\r\n x= (Math.abs(x) < this.HALF_PI) ? x: (x - (this.sign(x)*this.PI) );\r\n return x;\r\n },\r\n \r\n // Latitude Isometrique - close to tsfnz ...\r\n latiso : function(eccent, phi, sinphi) {\r\n if (Math.abs(phi) > this.HALF_PI) return +Number.NaN;\r\n if (phi==this.HALF_PI) return Number.POSITIVE_INFINITY;\r\n if (phi==-1.0*this.HALF_PI) return -1.0*Number.POSITIVE_INFINITY;\r\n \r\n var con= eccent*sinphi;\r\n return Math.log(Math.tan((this.HALF_PI+phi)/2.0))+eccent*Math.log((1.0-con)/(1.0+con))/2.0;\r\n },\r\n \r\n fL : function(x,L) {\r\n return 2.0*Math.atan(x*Math.exp(L)) - this.HALF_PI;\r\n },\r\n \r\n // Inverse Latitude Isometrique - close to ph2z\r\n invlatiso : function(eccent, ts) {\r\n var phi= this.fL(1.0,ts);\r\n var Iphi= 0.0;\r\n var con= 0.0;\r\n do {\r\n Iphi= phi;\r\n con= eccent*Math.sin(Iphi);\r\n phi= this.fL(Math.exp(eccent*Math.log((1.0+con)/(1.0-con))/2.0),ts)\r\n } while (Math.abs(phi-Iphi)>1.0e-12);\r\n return phi;\r\n },\r\n \r\n // Needed for Gauss Schreiber\r\n // Original: Denis Makarov (info@binarythings.com)\r\n // Web Site: http://www.binarythings.com\r\n sinh : function(x)\r\n {\r\n var r= Math.exp(x);\r\n r= (r-1.0/r)/2.0;\r\n return r;\r\n },\r\n \r\n cosh : function(x)\r\n {\r\n var r= Math.exp(x);\r\n r= (r+1.0/r)/2.0;\r\n return r;\r\n },\r\n \r\n tanh : function(x)\r\n {\r\n var r= Math.exp(x);\r\n r= (r-1.0/r)/(r+1.0/r);\r\n return r;\r\n },\r\n \r\n asinh : function(x)\r\n {\r\n var s= (x>= 0? 1.0:-1.0);\r\n return s*(Math.log( Math.abs(x) + Math.sqrt(x*x+1.0) ));\r\n },\r\n \r\n acosh : function(x)\r\n {\r\n return 2.0*Math.log(Math.sqrt((x+1.0)/2.0) + Math.sqrt((x-1.0)/2.0));\r\n },\r\n \r\n atanh : function(x)\r\n {\r\n return Math.log((x-1.0)/(x+1.0))/2.0;\r\n },\r\n \r\n // Grande Normale\r\n gN : function(a,e,sinphi)\r\n {\r\n var temp= e*sinphi;\r\n return a/Math.sqrt(1.0 - temp*temp);\r\n },\r\n \r\n //code from the PROJ.4 pj_mlfn.c file; this may be useful for other projections\r\n pj_enfn: function(es) {\r\n var en = new Array();\r\n en[0] = this.C00 - es * (this.C02 + es * (this.C04 + es * (this.C06 + es * this.C08)));\r\n en[1] = es * (this.C22 - es * (this.C04 + es * (this.C06 + es * this.C08)));\r\n var t = es * es;\r\n en[2] = t * (this.C44 - es * (this.C46 + es * this.C48));\r\n t *= es;\r\n en[3] = t * (this.C66 - es * this.C68);\r\n en[4] = t * es * this.C88;\r\n return en;\r\n },\r\n \r\n pj_mlfn: function(phi, sphi, cphi, en) {\r\n cphi *= sphi;\r\n sphi *= sphi;\r\n return(en[0] * phi - cphi * (en[1] + sphi*(en[2]+ sphi*(en[3] + sphi*en[4]))));\r\n },\r\n \r\n pj_inv_mlfn: function(arg, es, en) {\r\n var k = 1./(1.-es);\r\n var phi = arg;\r\n for (var i = Proj4js.common.MAX_ITER; i ; --i) { /* rarely goes over 2 iterations */\r\n var s = Math.sin(phi);\r\n var t = 1. - es * s * s;\r\n //t = this.pj_mlfn(phi, s, Math.cos(phi), en) - arg;\r\n //phi -= t * (t * Math.sqrt(t)) * k;\r\n t = (this.pj_mlfn(phi, s, Math.cos(phi), en) - arg) * (t * Math.sqrt(t)) * k;\r\n phi -= t;\r\n if (Math.abs(t) < Proj4js.common.EPSLN)\r\n return phi;\r\n }\r\n Proj4js.reportError(\"cass:pj_inv_mlfn: Convergence error\");\r\n return phi;\r\n },\r\n \r\n /* meridinal distance for ellipsoid and inverse\r\n **\t8th degree - accurate to < 1e-5 meters when used in conjuction\r\n **\t\twith typical major axis values.\r\n **\tInverse determines phi to EPS (1e-11) radians, about 1e-6 seconds.\r\n */\r\n C00: 1.0,\r\n C02: .25,\r\n C04: .046875,\r\n C06: .01953125,\r\n C08: .01068115234375,\r\n C22: .75,\r\n C44: .46875,\r\n C46: .01302083333333333333,\r\n C48: .00712076822916666666,\r\n C66: .36458333333333333333,\r\n C68: .00569661458333333333,\r\n C88: .3076171875 \r\n \r\n };\r\n \r\n /** datum object\r\n */\r\n Proj4js.datum = Proj4js.Class({\r\n \r\n initialize : function(proj) {\r\n this.datum_type = Proj4js.common.PJD_WGS84; //default setting\r\n if (proj.datumCode && proj.datumCode == 'none') {\r\n this.datum_type = Proj4js.common.PJD_NODATUM;\r\n }\r\n if (proj && proj.datum_params) {\r\n for (var i=0; i 3) {\r\n if (proj.datum_params[3] != 0 || proj.datum_params[4] != 0 ||\r\n proj.datum_params[5] != 0 || proj.datum_params[6] != 0 ) {\r\n this.datum_type = Proj4js.common.PJD_7PARAM;\r\n proj.datum_params[3] *= Proj4js.common.SEC_TO_RAD;\r\n proj.datum_params[4] *= Proj4js.common.SEC_TO_RAD;\r\n proj.datum_params[5] *= Proj4js.common.SEC_TO_RAD;\r\n proj.datum_params[6] = (proj.datum_params[6]/1000000.0) + 1.0;\r\n }\r\n }\r\n }\r\n if (proj) {\r\n this.a = proj.a; //datum object also uses these values\r\n this.b = proj.b;\r\n this.es = proj.es;\r\n this.ep2 = proj.ep2;\r\n this.datum_params = proj.datum_params;\r\n }\r\n },\r\n \r\n /****************************************************************/\r\n // cs_compare_datums()\r\n // Returns TRUE if the two datums match, otherwise FALSE.\r\n compare_datums : function( dest ) {\r\n if( this.datum_type != dest.datum_type ) {\r\n return false; // false, datums are not equal\r\n } else if( this.a != dest.a || Math.abs(this.es-dest.es) > 0.000000000050 ) {\r\n // the tolerence for es is to ensure that GRS80 and WGS84\r\n // are considered identical\r\n return false;\r\n } else if( this.datum_type == Proj4js.common.PJD_3PARAM ) {\r\n return (this.datum_params[0] == dest.datum_params[0]\r\n && this.datum_params[1] == dest.datum_params[1]\r\n && this.datum_params[2] == dest.datum_params[2]);\r\n } else if( this.datum_type == Proj4js.common.PJD_7PARAM ) {\r\n return (this.datum_params[0] == dest.datum_params[0]\r\n && this.datum_params[1] == dest.datum_params[1]\r\n && this.datum_params[2] == dest.datum_params[2]\r\n && this.datum_params[3] == dest.datum_params[3]\r\n && this.datum_params[4] == dest.datum_params[4]\r\n && this.datum_params[5] == dest.datum_params[5]\r\n && this.datum_params[6] == dest.datum_params[6]);\r\n } else if ( this.datum_type == Proj4js.common.PJD_GRIDSHIFT ||\r\n dest.datum_type == Proj4js.common.PJD_GRIDSHIFT ) {\r\n alert(\"ERROR: Grid shift transformations are not implemented.\");\r\n return false\r\n } else {\r\n return true; // datums are equal\r\n }\r\n }, // cs_compare_datums()\r\n \r\n /*\r\n * The function Convert_Geodetic_To_Geocentric converts geodetic coordinates\r\n * (latitude, longitude, and height) to geocentric coordinates (X, Y, Z),\r\n * according to the current ellipsoid parameters.\r\n *\r\n * Latitude : Geodetic latitude in radians (input)\r\n * Longitude : Geodetic longitude in radians (input)\r\n * Height : Geodetic height, in meters (input)\r\n * X : Calculated Geocentric X coordinate, in meters (output)\r\n * Y : Calculated Geocentric Y coordinate, in meters (output)\r\n * Z : Calculated Geocentric Z coordinate, in meters (output)\r\n *\r\n */\r\n geodetic_to_geocentric : function(p) {\r\n var Longitude = p.x;\r\n var Latitude = p.y;\r\n var Height = p.z ? p.z : 0; //Z value not always supplied\r\n var X; // output\r\n var Y;\r\n var Z;\r\n \r\n var Error_Code=0; // GEOCENT_NO_ERROR;\r\n var Rn; /* Earth radius at location */\r\n var Sin_Lat; /* Math.sin(Latitude) */\r\n var Sin2_Lat; /* Square of Math.sin(Latitude) */\r\n var Cos_Lat; /* Math.cos(Latitude) */\r\n \r\n /*\r\n ** Don't blow up if Latitude is just a little out of the value\r\n ** range as it may just be a rounding issue. Also removed longitude\r\n ** test, it should be wrapped by Math.cos() and Math.sin(). NFW for PROJ.4, Sep/2001.\r\n */\r\n if( Latitude < -Proj4js.common.HALF_PI && Latitude > -1.001 * Proj4js.common.HALF_PI ) {\r\n Latitude = -Proj4js.common.HALF_PI;\r\n } else if( Latitude > Proj4js.common.HALF_PI && Latitude < 1.001 * Proj4js.common.HALF_PI ) {\r\n Latitude = Proj4js.common.HALF_PI;\r\n } else if ((Latitude < -Proj4js.common.HALF_PI) || (Latitude > Proj4js.common.HALF_PI)) {\r\n /* Latitude out of range */\r\n Proj4js.reportError('geocent:lat out of range:'+Latitude);\r\n return null;\r\n }\r\n \r\n if (Longitude > Proj4js.common.PI) Longitude -= (2*Proj4js.common.PI);\r\n Sin_Lat = Math.sin(Latitude);\r\n Cos_Lat = Math.cos(Latitude);\r\n Sin2_Lat = Sin_Lat * Sin_Lat;\r\n Rn = this.a / (Math.sqrt(1.0e0 - this.es * Sin2_Lat));\r\n X = (Rn + Height) * Cos_Lat * Math.cos(Longitude);\r\n Y = (Rn + Height) * Cos_Lat * Math.sin(Longitude);\r\n Z = ((Rn * (1 - this.es)) + Height) * Sin_Lat;\r\n \r\n p.x = X;\r\n p.y = Y;\r\n p.z = Z;\r\n return Error_Code;\r\n }, // cs_geodetic_to_geocentric()\r\n \r\n \r\n geocentric_to_geodetic : function (p) {\r\n /* local defintions and variables */\r\n /* end-criterium of loop, accuracy of sin(Latitude) */\r\n var genau = 1.E-12;\r\n var genau2 = (genau*genau);\r\n var maxiter = 30;\r\n \r\n var P; /* distance between semi-minor axis and location */\r\n var RR; /* distance between center and location */\r\n var CT; /* sin of geocentric latitude */\r\n var ST; /* cos of geocentric latitude */\r\n var RX;\r\n var RK;\r\n var RN; /* Earth radius at location */\r\n var CPHI0; /* cos of start or old geodetic latitude in iterations */\r\n var SPHI0; /* sin of start or old geodetic latitude in iterations */\r\n var CPHI; /* cos of searched geodetic latitude */\r\n var SPHI; /* sin of searched geodetic latitude */\r\n var SDPHI; /* end-criterium: addition-theorem of sin(Latitude(iter)-Latitude(iter-1)) */\r\n var At_Pole; /* indicates location is in polar region */\r\n var iter; /* # of continous iteration, max. 30 is always enough (s.a.) */\r\n \r\n var X = p.x;\r\n var Y = p.y;\r\n var Z = p.z ? p.z : 0.0; //Z value not always supplied\r\n var Longitude;\r\n var Latitude;\r\n var Height;\r\n \r\n At_Pole = false;\r\n P = Math.sqrt(X*X+Y*Y);\r\n RR = Math.sqrt(X*X+Y*Y+Z*Z);\r\n \r\n /* special cases for latitude and longitude */\r\n if (P/this.a < genau) {\r\n \r\n /* special case, if P=0. (X=0., Y=0.) */\r\n At_Pole = true;\r\n Longitude = 0.0;\r\n \r\n /* if (X,Y,Z)=(0.,0.,0.) then Height becomes semi-minor axis\r\n * of ellipsoid (=center of mass), Latitude becomes PI/2 */\r\n if (RR/this.a < genau) {\r\n Latitude = Proj4js.common.HALF_PI;\r\n Height = -this.b;\r\n return;\r\n }\r\n } else {\r\n /* ellipsoidal (geodetic) longitude\r\n * interval: -PI < Longitude <= +PI */\r\n Longitude=Math.atan2(Y,X);\r\n }\r\n \r\n /* --------------------------------------------------------------\r\n * Following iterative algorithm was developped by\r\n * \"Institut f�r Erdmessung\", University of Hannover, July 1988.\r\n * Internet: www.ife.uni-hannover.de\r\n * Iterative computation of CPHI,SPHI and Height.\r\n * Iteration of CPHI and SPHI to 10**-12 radian resp.\r\n * 2*10**-7 arcsec.\r\n * --------------------------------------------------------------\r\n */\r\n CT = Z/RR;\r\n ST = P/RR;\r\n RX = 1.0/Math.sqrt(1.0-this.es*(2.0-this.es)*ST*ST);\r\n CPHI0 = ST*(1.0-this.es)*RX;\r\n SPHI0 = CT*RX;\r\n iter = 0;\r\n \r\n /* loop to find sin(Latitude) resp. Latitude\r\n * until |sin(Latitude(iter)-Latitude(iter-1))| < genau */\r\n do\r\n {\r\n iter++;\r\n RN = this.a/Math.sqrt(1.0-this.es*SPHI0*SPHI0);\r\n \r\n /* ellipsoidal (geodetic) height */\r\n Height = P*CPHI0+Z*SPHI0-RN*(1.0-this.es*SPHI0*SPHI0);\r\n \r\n RK = this.es*RN/(RN+Height);\r\n RX = 1.0/Math.sqrt(1.0-RK*(2.0-RK)*ST*ST);\r\n CPHI = ST*(1.0-RK)*RX;\r\n SPHI = CT*RX;\r\n SDPHI = SPHI*CPHI0-CPHI*SPHI0;\r\n CPHI0 = CPHI;\r\n SPHI0 = SPHI;\r\n }\r\n while (SDPHI*SDPHI > genau2 && iter < maxiter);\r\n \r\n /* ellipsoidal (geodetic) latitude */\r\n Latitude=Math.atan(SPHI/Math.abs(CPHI));\r\n \r\n p.x = Longitude;\r\n p.y = Latitude;\r\n p.z = Height;\r\n return p;\r\n }, // cs_geocentric_to_geodetic()\r\n \r\n /** Convert_Geocentric_To_Geodetic\r\n * The method used here is derived from 'An Improved Algorithm for\r\n * Geocentric to Geodetic Coordinate Conversion', by Ralph Toms, Feb 1996\r\n */\r\n geocentric_to_geodetic_noniter : function (p) {\r\n var X = p.x;\r\n var Y = p.y;\r\n var Z = p.z ? p.z : 0; //Z value not always supplied\r\n var Longitude;\r\n var Latitude;\r\n var Height;\r\n \r\n var W; /* distance from Z axis */\r\n var W2; /* square of distance from Z axis */\r\n var T0; /* initial estimate of vertical component */\r\n var T1; /* corrected estimate of vertical component */\r\n var S0; /* initial estimate of horizontal component */\r\n var S1; /* corrected estimate of horizontal component */\r\n var Sin_B0; /* Math.sin(B0), B0 is estimate of Bowring aux variable */\r\n var Sin3_B0; /* cube of Math.sin(B0) */\r\n var Cos_B0; /* Math.cos(B0) */\r\n var Sin_p1; /* Math.sin(phi1), phi1 is estimated latitude */\r\n var Cos_p1; /* Math.cos(phi1) */\r\n var Rn; /* Earth radius at location */\r\n var Sum; /* numerator of Math.cos(phi1) */\r\n var At_Pole; /* indicates location is in polar region */\r\n \r\n X = parseFloat(X); // cast from string to float\r\n Y = parseFloat(Y);\r\n Z = parseFloat(Z);\r\n \r\n At_Pole = false;\r\n if (X != 0.0)\r\n {\r\n Longitude = Math.atan2(Y,X);\r\n }\r\n else\r\n {\r\n if (Y > 0)\r\n {\r\n Longitude = Proj4js.common.HALF_PI;\r\n }\r\n else if (Y < 0)\r\n {\r\n Longitude = -Proj4js.common.HALF_PI;\r\n }\r\n else\r\n {\r\n At_Pole = true;\r\n Longitude = 0.0;\r\n if (Z > 0.0)\r\n { /* north pole */\r\n Latitude = Proj4js.common.HALF_PI;\r\n }\r\n else if (Z < 0.0)\r\n { /* south pole */\r\n Latitude = -Proj4js.common.HALF_PI;\r\n }\r\n else\r\n { /* center of earth */\r\n Latitude = Proj4js.common.HALF_PI;\r\n Height = -this.b;\r\n return;\r\n }\r\n }\r\n }\r\n W2 = X*X + Y*Y;\r\n W = Math.sqrt(W2);\r\n T0 = Z * Proj4js.common.AD_C;\r\n S0 = Math.sqrt(T0 * T0 + W2);\r\n Sin_B0 = T0 / S0;\r\n Cos_B0 = W / S0;\r\n Sin3_B0 = Sin_B0 * Sin_B0 * Sin_B0;\r\n T1 = Z + this.b * this.ep2 * Sin3_B0;\r\n Sum = W - this.a * this.es * Cos_B0 * Cos_B0 * Cos_B0;\r\n S1 = Math.sqrt(T1*T1 + Sum * Sum);\r\n Sin_p1 = T1 / S1;\r\n Cos_p1 = Sum / S1;\r\n Rn = this.a / Math.sqrt(1.0 - this.es * Sin_p1 * Sin_p1);\r\n if (Cos_p1 >= Proj4js.common.COS_67P5)\r\n {\r\n Height = W / Cos_p1 - Rn;\r\n }\r\n else if (Cos_p1 <= -Proj4js.common.COS_67P5)\r\n {\r\n Height = W / -Cos_p1 - Rn;\r\n }\r\n else\r\n {\r\n Height = Z / Sin_p1 + Rn * (this.es - 1.0);\r\n }\r\n if (At_Pole == false)\r\n {\r\n Latitude = Math.atan(Sin_p1 / Cos_p1);\r\n }\r\n \r\n p.x = Longitude;\r\n p.y = Latitude;\r\n p.z = Height;\r\n return p;\r\n }, // geocentric_to_geodetic_noniter()\r\n \r\n /****************************************************************/\r\n // pj_geocentic_to_wgs84( p )\r\n // p = point to transform in geocentric coordinates (x,y,z)\r\n geocentric_to_wgs84 : function ( p ) {\r\n \r\n if( this.datum_type == Proj4js.common.PJD_3PARAM )\r\n {\r\n // if( x[io] == HUGE_VAL )\r\n // continue;\r\n p.x += this.datum_params[0];\r\n p.y += this.datum_params[1];\r\n p.z += this.datum_params[2];\r\n \r\n }\r\n else if (this.datum_type == Proj4js.common.PJD_7PARAM)\r\n {\r\n var Dx_BF =this.datum_params[0];\r\n var Dy_BF =this.datum_params[1];\r\n var Dz_BF =this.datum_params[2];\r\n var Rx_BF =this.datum_params[3];\r\n var Ry_BF =this.datum_params[4];\r\n var Rz_BF =this.datum_params[5];\r\n var M_BF =this.datum_params[6];\r\n // if( x[io] == HUGE_VAL )\r\n // continue;\r\n var x_out = M_BF*( p.x - Rz_BF*p.y + Ry_BF*p.z) + Dx_BF;\r\n var y_out = M_BF*( Rz_BF*p.x + p.y - Rx_BF*p.z) + Dy_BF;\r\n var z_out = M_BF*(-Ry_BF*p.x + Rx_BF*p.y + p.z) + Dz_BF;\r\n p.x = x_out;\r\n p.y = y_out;\r\n p.z = z_out;\r\n }\r\n }, // cs_geocentric_to_wgs84\r\n \r\n /****************************************************************/\r\n // pj_geocentic_from_wgs84()\r\n // coordinate system definition,\r\n // point to transform in geocentric coordinates (x,y,z)\r\n geocentric_from_wgs84 : function( p ) {\r\n \r\n if( this.datum_type == Proj4js.common.PJD_3PARAM )\r\n {\r\n //if( x[io] == HUGE_VAL )\r\n // continue;\r\n p.x -= this.datum_params[0];\r\n p.y -= this.datum_params[1];\r\n p.z -= this.datum_params[2];\r\n \r\n }\r\n else if (this.datum_type == Proj4js.common.PJD_7PARAM)\r\n {\r\n var Dx_BF =this.datum_params[0];\r\n var Dy_BF =this.datum_params[1];\r\n var Dz_BF =this.datum_params[2];\r\n var Rx_BF =this.datum_params[3];\r\n var Ry_BF =this.datum_params[4];\r\n var Rz_BF =this.datum_params[5];\r\n var M_BF =this.datum_params[6];\r\n var x_tmp = (p.x - Dx_BF) / M_BF;\r\n var y_tmp = (p.y - Dy_BF) / M_BF;\r\n var z_tmp = (p.z - Dz_BF) / M_BF;\r\n //if( x[io] == HUGE_VAL )\r\n // continue;\r\n \r\n p.x = x_tmp + Rz_BF*y_tmp - Ry_BF*z_tmp;\r\n p.y = -Rz_BF*x_tmp + y_tmp + Rx_BF*z_tmp;\r\n p.z = Ry_BF*x_tmp - Rx_BF*y_tmp + z_tmp;\r\n } //cs_geocentric_from_wgs84()\r\n }\r\n });\r\n \r\n /** point object, nothing fancy, just allows values to be\r\n passed back and forth by reference rather than by value.\r\n Other point classes may be used as long as they have\r\n x and y properties, which will get modified in the transform method.\r\n */\r\n Proj4js.Point = Proj4js.Class({\r\n \r\n /**\r\n * Constructor: Proj4js.Point\r\n *\r\n * Parameters:\r\n * - x {float} or {Array} either the first coordinates component or\r\n * the full coordinates\r\n * - y {float} the second component\r\n * - z {float} the third component, optional.\r\n */\r\n initialize : function(x,y,z) {\r\n if (typeof x == 'object') {\r\n this.x = x[0];\r\n this.y = x[1];\r\n this.z = x[2] || 0.0;\r\n } else if (typeof x == 'string' && typeof y == 'undefined') {\r\n var coords = x.split(',');\r\n this.x = parseFloat(coords[0]);\r\n this.y = parseFloat(coords[1]);\r\n this.z = parseFloat(coords[2]) || 0.0;\r\n } else {\r\n this.x = x;\r\n this.y = y;\r\n this.z = z || 0.0;\r\n }\r\n },\r\n \r\n /**\r\n * APIMethod: clone\r\n * Build a copy of a Proj4js.Point object.\r\n *\r\n * Return:\r\n * {Proj4js}.Point the cloned point.\r\n */\r\n clone : function() {\r\n return new Proj4js.Point(this.x, this.y, this.z);\r\n },\r\n \r\n /**\r\n * APIMethod: toString\r\n * Return a readable string version of the point\r\n *\r\n * Return:\r\n * {String} String representation of Proj4js.Point object. \r\n * (ex. \"x=5,y=42\")\r\n */\r\n toString : function() {\r\n return (\"x=\" + this.x + \",y=\" + this.y);\r\n },\r\n \r\n /** \r\n * APIMethod: toShortString\r\n * Return a short string version of the point.\r\n *\r\n * Return:\r\n * {String} Shortened String representation of Proj4js.Point object. \r\n * (ex. \"5, 42\")\r\n */\r\n toShortString : function() {\r\n return (this.x + \", \" + this.y);\r\n }\r\n });\r\n \r\n Proj4js.PrimeMeridian = {\r\n \"greenwich\": 0.0, //\"0dE\",\r\n \"lisbon\": -9.131906111111, //\"9d07'54.862\\\"W\",\r\n \"paris\": 2.337229166667, //\"2d20'14.025\\\"E\",\r\n \"bogota\": -74.080916666667, //\"74d04'51.3\\\"W\",\r\n \"madrid\": -3.687938888889, //\"3d41'16.58\\\"W\",\r\n \"rome\": 12.452333333333, //\"12d27'8.4\\\"E\",\r\n \"bern\": 7.439583333333, //\"7d26'22.5\\\"E\",\r\n \"jakarta\": 106.807719444444, //\"106d48'27.79\\\"E\",\r\n \"ferro\": -17.666666666667, //\"17d40'W\",\r\n \"brussels\": 4.367975, //\"4d22'4.71\\\"E\",\r\n \"stockholm\": 18.058277777778, //\"18d3'29.8\\\"E\",\r\n \"athens\": 23.7163375, //\"23d42'58.815\\\"E\",\r\n \"oslo\": 10.722916666667 //\"10d43'22.5\\\"E\"\r\n };\r\n \r\n Proj4js.Ellipsoid = {\r\n \"MERIT\": {a:6378137.0, rf:298.257, ellipseName:\"MERIT 1983\"},\r\n \"SGS85\": {a:6378136.0, rf:298.257, ellipseName:\"Soviet Geodetic System 85\"},\r\n \"GRS80\": {a:6378137.0, rf:298.257222101, ellipseName:\"GRS 1980(IUGG, 1980)\"},\r\n \"IAU76\": {a:6378140.0, rf:298.257, ellipseName:\"IAU 1976\"},\r\n \"airy\": {a:6377563.396, b:6356256.910, ellipseName:\"Airy 1830\"},\r\n \"APL4.\": {a:6378137, rf:298.25, ellipseName:\"Appl. Physics. 1965\"},\r\n \"NWL9D\": {a:6378145.0, rf:298.25, ellipseName:\"Naval Weapons Lab., 1965\"},\r\n \"mod_airy\": {a:6377340.189, b:6356034.446, ellipseName:\"Modified Airy\"},\r\n \"andrae\": {a:6377104.43, rf:300.0, ellipseName:\"Andrae 1876 (Den., Iclnd.)\"},\r\n \"aust_SA\": {a:6378160.0, rf:298.25, ellipseName:\"Australian Natl & S. Amer. 1969\"},\r\n \"GRS67\": {a:6378160.0, rf:298.2471674270, ellipseName:\"GRS 67(IUGG 1967)\"},\r\n \"bessel\": {a:6377397.155, rf:299.1528128, ellipseName:\"Bessel 1841\"},\r\n \"bess_nam\": {a:6377483.865, rf:299.1528128, ellipseName:\"Bessel 1841 (Namibia)\"},\r\n \"clrk66\": {a:6378206.4, b:6356583.8, ellipseName:\"Clarke 1866\"},\r\n \"clrk80\": {a:6378249.145, rf:293.4663, ellipseName:\"Clarke 1880 mod.\"},\r\n \"CPM\": {a:6375738.7, rf:334.29, ellipseName:\"Comm. des Poids et Mesures 1799\"},\r\n \"delmbr\": {a:6376428.0, rf:311.5, ellipseName:\"Delambre 1810 (Belgium)\"},\r\n \"engelis\": {a:6378136.05, rf:298.2566, ellipseName:\"Engelis 1985\"},\r\n \"evrst30\": {a:6377276.345, rf:300.8017, ellipseName:\"Everest 1830\"},\r\n \"evrst48\": {a:6377304.063, rf:300.8017, ellipseName:\"Everest 1948\"},\r\n \"evrst56\": {a:6377301.243, rf:300.8017, ellipseName:\"Everest 1956\"},\r\n \"evrst69\": {a:6377295.664, rf:300.8017, ellipseName:\"Everest 1969\"},\r\n \"evrstSS\": {a:6377298.556, rf:300.8017, ellipseName:\"Everest (Sabah & Sarawak)\"},\r\n \"fschr60\": {a:6378166.0, rf:298.3, ellipseName:\"Fischer (Mercury Datum) 1960\"},\r\n \"fschr60m\": {a:6378155.0, rf:298.3, ellipseName:\"Fischer 1960\"},\r\n \"fschr68\": {a:6378150.0, rf:298.3, ellipseName:\"Fischer 1968\"},\r\n \"helmert\": {a:6378200.0, rf:298.3, ellipseName:\"Helmert 1906\"},\r\n \"hough\": {a:6378270.0, rf:297.0, ellipseName:\"Hough\"},\r\n \"intl\": {a:6378388.0, rf:297.0, ellipseName:\"International 1909 (Hayford)\"},\r\n \"kaula\": {a:6378163.0, rf:298.24, ellipseName:\"Kaula 1961\"},\r\n \"lerch\": {a:6378139.0, rf:298.257, ellipseName:\"Lerch 1979\"},\r\n \"mprts\": {a:6397300.0, rf:191.0, ellipseName:\"Maupertius 1738\"},\r\n \"new_intl\": {a:6378157.5, b:6356772.2, ellipseName:\"New International 1967\"},\r\n \"plessis\": {a:6376523.0, rf:6355863.0, ellipseName:\"Plessis 1817 (France)\"},\r\n \"krass\": {a:6378245.0, rf:298.3, ellipseName:\"Krassovsky, 1942\"},\r\n \"SEasia\": {a:6378155.0, b:6356773.3205, ellipseName:\"Southeast Asia\"},\r\n \"walbeck\": {a:6376896.0, b:6355834.8467, ellipseName:\"Walbeck\"},\r\n \"WGS60\": {a:6378165.0, rf:298.3, ellipseName:\"WGS 60\"},\r\n \"WGS66\": {a:6378145.0, rf:298.25, ellipseName:\"WGS 66\"},\r\n \"WGS72\": {a:6378135.0, rf:298.26, ellipseName:\"WGS 72\"},\r\n \"WGS84\": {a:6378137.0, rf:298.257223563, ellipseName:\"WGS 84\"},\r\n \"sphere\": {a:6370997.0, b:6370997.0, ellipseName:\"Normal Sphere (r=6370997)\"}\r\n };\r\n \r\n Proj4js.Datum = {\r\n \"WGS84\": {towgs84: \"0,0,0\", ellipse: \"WGS84\", datumName: \"WGS84\"},\r\n \"GGRS87\": {towgs84: \"-199.87,74.79,246.62\", ellipse: \"GRS80\", datumName: \"Greek_Geodetic_Reference_System_1987\"},\r\n \"NAD83\": {towgs84: \"0,0,0\", ellipse: \"GRS80\", datumName: \"North_American_Datum_1983\"},\r\n \"NAD27\": {nadgrids: \"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat\", ellipse: \"clrk66\", datumName: \"North_American_Datum_1927\"},\r\n \"potsdam\": {towgs84: \"606.0,23.0,413.0\", ellipse: \"bessel\", datumName: \"Potsdam Rauenberg 1950 DHDN\"},\r\n \"carthage\": {towgs84: \"-263.0,6.0,431.0\", ellipse: \"clark80\", datumName: \"Carthage 1934 Tunisia\"},\r\n \"hermannskogel\": {towgs84: \"653.0,-212.0,449.0\", ellipse: \"bessel\", datumName: \"Hermannskogel\"},\r\n \"ire65\": {towgs84: \"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\", ellipse: \"mod_airy\", datumName: \"Ireland 1965\"},\r\n \"nzgd49\": {towgs84: \"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993\", ellipse: \"intl\", datumName: \"New Zealand Geodetic Datum 1949\"},\r\n \"OSGB36\": {towgs84: \"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894\", ellipse: \"airy\", datumName: \"Airy 1830\"}\r\n };\r\n \r\n Proj4js.WGS84 = new Proj4js.Proj('WGS84');\r\n Proj4js.Datum['OSB36'] = Proj4js.Datum['OSGB36']; //as returned from spatialreference.org\r\n \r\n //lookup table to go from the projection name in WKT to the Proj4js projection name\r\n //build this out as required\r\n Proj4js.wktProjections = {\r\n \"Lambert Tangential Conformal Conic Projection\": \"lcc\",\r\n \"Mercator\": \"merc\",\r\n \"Popular Visualisation Pseudo Mercator\": \"merc\",\r\n \"Mercator_1SP\": \"merc\",\r\n \"Transverse_Mercator\": \"tmerc\",\r\n \"Transverse Mercator\": \"tmerc\",\r\n \"Lambert Azimuthal Equal Area\": \"laea\",\r\n \"Universal Transverse Mercator System\": \"utm\"\r\n };\r\n \r\n \r\n /* ======================================================================\r\n projCode/aea.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME ALBERS CONICAL EQUAL AREA \r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and Northing\r\n for the Albers Conical Equal Area projection. The longitude\r\n and latitude must be in radians. The Easting and Northing\r\n values will be returned in meters.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n T. Mittan, \tFeb, 1992\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n \r\n \r\n Proj4js.Proj.aea = {\r\n init : function() {\r\n \r\n if (Math.abs(this.lat1 + this.lat2) < Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"aeaInitEqualLatitudes\");\r\n return;\r\n }\r\n this.temp = this.b / this.a;\r\n this.es = 1.0 - Math.pow(this.temp,2);\r\n this.e3 = Math.sqrt(this.es);\r\n \r\n this.sin_po=Math.sin(this.lat1);\r\n this.cos_po=Math.cos(this.lat1);\r\n this.t1=this.sin_po;\r\n this.con = this.sin_po;\r\n this.ms1 = Proj4js.common.msfnz(this.e3,this.sin_po,this.cos_po);\r\n this.qs1 = Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);\r\n \r\n this.sin_po=Math.sin(this.lat2);\r\n this.cos_po=Math.cos(this.lat2);\r\n this.t2=this.sin_po;\r\n this.ms2 = Proj4js.common.msfnz(this.e3,this.sin_po,this.cos_po);\r\n this.qs2 = Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);\r\n \r\n this.sin_po=Math.sin(this.lat0);\r\n this.cos_po=Math.cos(this.lat0);\r\n this.t3=this.sin_po;\r\n this.qs0 = Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);\r\n \r\n if (Math.abs(this.lat1 - this.lat2) > Proj4js.common.EPSLN) {\r\n this.ns0 = (this.ms1 * this.ms1 - this.ms2 *this.ms2)/ (this.qs2 - this.qs1);\r\n } else {\r\n this.ns0 = this.con;\r\n }\r\n this.c = this.ms1 * this.ms1 + this.ns0 * this.qs1;\r\n this.rh = this.a * Math.sqrt(this.c - this.ns0 * this.qs0)/this.ns0;\r\n },\r\n \r\n /* Albers Conical Equal Area forward equations--mapping lat,long to x,y\r\n -------------------------------------------------------------------*/\r\n forward: function(p){\r\n \r\n var lon=p.x;\r\n var lat=p.y;\r\n \r\n this.sin_phi=Math.sin(lat);\r\n this.cos_phi=Math.cos(lat);\r\n \r\n var qs = Proj4js.common.qsfnz(this.e3,this.sin_phi,this.cos_phi);\r\n var rh1 =this.a * Math.sqrt(this.c - this.ns0 * qs)/this.ns0;\r\n var theta = this.ns0 * Proj4js.common.adjust_lon(lon - this.long0); \r\n var x = rh1 * Math.sin(theta) + this.x0;\r\n var y = this.rh - rh1 * Math.cos(theta) + this.y0;\r\n \r\n p.x = x; \r\n p.y = y;\r\n return p;\r\n },\r\n \r\n \r\n inverse: function(p) {\r\n var rh1,qs,con,theta,lon,lat;\r\n \r\n p.x -= this.x0;\r\n p.y = this.rh - p.y + this.y0;\r\n if (this.ns0 >= 0) {\r\n rh1 = Math.sqrt(p.x *p.x + p.y * p.y);\r\n con = 1.0;\r\n } else {\r\n rh1 = -Math.sqrt(p.x * p.x + p.y *p.y);\r\n con = -1.0;\r\n }\r\n theta = 0.0;\r\n if (rh1 != 0.0) {\r\n theta = Math.atan2(con * p.x, con * p.y);\r\n }\r\n con = rh1 * this.ns0 / this.a;\r\n qs = (this.c - con * con) / this.ns0;\r\n if (this.e3 >= 1e-10) {\r\n con = 1 - .5 * (1.0 -this.es) * Math.log((1.0 - this.e3) / (1.0 + this.e3))/this.e3;\r\n if (Math.abs(Math.abs(con) - Math.abs(qs)) > .0000000001 ) {\r\n lat = this.phi1z(this.e3,qs);\r\n } else {\r\n if (qs >= 0) {\r\n lat = .5 * Proj4js.common.PI;\r\n } else {\r\n lat = -.5 * Proj4js.common.PI;\r\n }\r\n }\r\n } else {\r\n lat = this.phi1z(this.e3,qs);\r\n }\r\n \r\n lon = Proj4js.common.adjust_lon(theta/this.ns0 + this.long0);\r\n p.x = lon;\r\n p.y = lat;\r\n return p;\r\n },\r\n \r\n /* Function to compute phi1, the latitude for the inverse of the\r\n Albers Conical Equal-Area projection.\r\n -------------------------------------------*/\r\n phi1z: function (eccent,qs) {\r\n var sinphi, cosphi, con, com, dphi;\r\n var phi = Proj4js.common.asinz(.5 * qs);\r\n if (eccent < Proj4js.common.EPSLN) return phi;\r\n \r\n var eccnts = eccent * eccent; \r\n for (var i = 1; i <= 25; i++) {\r\n sinphi = Math.sin(phi);\r\n cosphi = Math.cos(phi);\r\n con = eccent * sinphi; \r\n com = 1.0 - con * con;\r\n dphi = .5 * com * com / cosphi * (qs / (1.0 - eccnts) - sinphi / com + .5 / eccent * Math.log((1.0 - con) / (1.0 + con)));\r\n phi = phi + dphi;\r\n if (Math.abs(dphi) <= 1e-7) return phi;\r\n }\r\n Proj4js.reportError(\"aea:phi1z:Convergence error\");\r\n return null;\r\n }\r\n \r\n };\r\n \r\n \r\n \r\n /* ======================================================================\r\n projCode/sterea.js\r\n ====================================================================== */\r\n \r\n \r\n Proj4js.Proj.sterea = {\r\n dependsOn : 'gauss',\r\n \r\n init : function() {\r\n Proj4js.Proj['gauss'].init.apply(this);\r\n if (!this.rc) {\r\n Proj4js.reportError(\"sterea:init:E_ERROR_0\");\r\n return;\r\n }\r\n this.sinc0 = Math.sin(this.phic0);\r\n this.cosc0 = Math.cos(this.phic0);\r\n this.R2 = 2.0 * this.rc;\r\n if (!this.title) this.title = \"Oblique Stereographic Alternative\";\r\n },\r\n \r\n forward : function(p) {\r\n var sinc, cosc, cosl, k;\r\n p.x = Proj4js.common.adjust_lon(p.x-this.long0); /* adjust del longitude */\r\n Proj4js.Proj['gauss'].forward.apply(this, [p]);\r\n sinc = Math.sin(p.y);\r\n cosc = Math.cos(p.y);\r\n cosl = Math.cos(p.x);\r\n k = this.k0 * this.R2 / (1.0 + this.sinc0 * sinc + this.cosc0 * cosc * cosl);\r\n p.x = k * cosc * Math.sin(p.x);\r\n p.y = k * (this.cosc0 * sinc - this.sinc0 * cosc * cosl);\r\n p.x = this.a * p.x + this.x0;\r\n p.y = this.a * p.y + this.y0;\r\n return p;\r\n },\r\n \r\n inverse : function(p) {\r\n var sinc, cosc, lon, lat, rho;\r\n p.x = (p.x - this.x0) / this.a; /* descale and de-offset */\r\n p.y = (p.y - this.y0) / this.a;\r\n \r\n p.x /= this.k0;\r\n p.y /= this.k0;\r\n if ( (rho = Math.sqrt(p.x*p.x + p.y*p.y)) ) {\r\n var c = 2.0 * Math.atan2(rho, this.R2);\r\n sinc = Math.sin(c);\r\n cosc = Math.cos(c);\r\n lat = Math.asin(cosc * this.sinc0 + p.y * sinc * this.cosc0 / rho);\r\n lon = Math.atan2(p.x * sinc, rho * this.cosc0 * cosc - p.y * this.sinc0 * sinc);\r\n } else {\r\n lat = this.phic0;\r\n lon = 0.;\r\n }\r\n \r\n p.x = lon;\r\n p.y = lat;\r\n Proj4js.Proj['gauss'].inverse.apply(this,[p]);\r\n p.x = Proj4js.common.adjust_lon(p.x + this.long0); /* adjust longitude to CM */\r\n return p;\r\n }\r\n };\r\n \r\n /* ======================================================================\r\n projCode/poly.js\r\n ====================================================================== */\r\n \r\n /* Function to compute, phi4, the latitude for the inverse of the\r\n Polyconic projection.\r\n ------------------------------------------------------------*/\r\n function phi4z (eccent,e0,e1,e2,e3,a,b,c,phi) {\r\n var sinphi, sin2ph, tanphi, ml, mlp, con1, con2, con3, dphi, i;\r\n \r\n phi = a;\r\n for (i = 1; i <= 15; i++) {\r\n sinphi = Math.sin(phi);\r\n tanphi = Math.tan(phi);\r\n c = tanphi * Math.sqrt (1.0 - eccent * sinphi * sinphi);\r\n sin2ph = Math.sin (2.0 * phi);\r\n /*\r\n ml = e0 * *phi - e1 * sin2ph + e2 * sin (4.0 * *phi);\r\n mlp = e0 - 2.0 * e1 * cos (2.0 * *phi) + 4.0 * e2 * cos (4.0 * *phi);\r\n */\r\n ml = e0 * phi - e1 * sin2ph + e2 * Math.sin (4.0 * phi) - e3 * Math.sin (6.0 * phi);\r\n mlp = e0 - 2.0 * e1 * Math.cos (2.0 * phi) + 4.0 * e2 * Math.cos (4.0 * phi) - 6.0 * e3 * Math.cos (6.0 * phi);\r\n con1 = 2.0 * ml + c * (ml * ml + b) - 2.0 * a * (c * ml + 1.0);\r\n con2 = eccent * sin2ph * (ml * ml + b - 2.0 * a * ml) / (2.0 *c);\r\n con3 = 2.0 * (a - ml) * (c * mlp - 2.0 / sin2ph) - 2.0 * mlp;\r\n dphi = con1 / (con2 + con3);\r\n phi += dphi;\r\n if (Math.abs(dphi) <= .0000000001 ) return(phi); \r\n }\r\n Proj4js.reportError(\"phi4z: No convergence\");\r\n return null;\r\n }\r\n \r\n \r\n /* Function to compute the constant e4 from the input of the eccentricity\r\n of the spheroid, x. This constant is used in the Polar Stereographic\r\n projection.\r\n --------------------------------------------------------------------*/\r\n function e4fn(x) {\r\n var con, com;\r\n con = 1.0 + x;\r\n com = 1.0 - x;\r\n return (Math.sqrt((Math.pow(con,con))*(Math.pow(com,com))));\r\n }\r\n \r\n \r\n \r\n \r\n \r\n /*******************************************************************************\r\n NAME POLYCONIC \r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Polyconic projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n T. Mittan\t\tMar, 1993\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.poly = {\r\n \r\n /* Initialize the POLYCONIC projection\r\n ----------------------------------*/\r\n init: function() {\r\n var temp;\t\t\t/* temporary variable\t\t*/\r\n if (this.lat0 == 0) this.lat0 = 90;//this.lat0 ca\r\n \r\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\r\n this.temp = this.b / this.a;\r\n this.es = 1.0 - Math.pow(this.temp,2);// devait etre dans tmerc.js mais n y est pas donc je commente sinon retour de valeurs nulles \r\n this.e = Math.sqrt(this.es);\r\n this.e0 = Proj4js.common.e0fn(this.es);\r\n this.e1 = Proj4js.common.e1fn(this.es);\r\n this.e2 = Proj4js.common.e2fn(this.es);\r\n this.e3 = Proj4js.common.e3fn(this.es);\r\n this.ml0 = Proj4js.common.mlfn(this.e0, this.e1,this.e2, this.e3, this.lat0);//si que des zeros le calcul ne se fait pas\r\n //if (!this.ml0) {this.ml0=0;}\r\n },\r\n \r\n \r\n /* Polyconic forward equations--mapping lat,long to x,y\r\n ---------------------------------------------------*/\r\n forward: function(p) {\r\n var sinphi, cosphi;\t/* sin and cos value\t\t\t\t*/\r\n var al;\t\t\t\t/* temporary values\t\t\t\t*/\r\n var c;\t\t\t\t/* temporary values\t\t\t\t*/\r\n var con, ml;\t\t/* cone constant, small m\t\t\t*/\r\n var ms;\t\t\t\t/* small m\t\t\t\t\t*/\r\n var x,y;\r\n \r\n var lon=p.x;\r\n var lat=p.y;\t\r\n \r\n con = Proj4js.common.adjust_lon(lon - this.long0);\r\n if (Math.abs(lat) <= .0000001) {\r\n x = this.x0 + this.a * con;\r\n y = this.y0 - this.a * this.ml0;\r\n } else {\r\n sinphi = Math.sin(lat);\r\n cosphi = Math.cos(lat);\t \r\n \r\n ml = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, lat);\r\n ms = Proj4js.common.msfnz(this.e,sinphi,cosphi);\r\n con = sinphi;\r\n x = this.x0 + this.a * ms * Math.sin(con)/sinphi;\r\n y = this.y0 + this.a * (ml - this.ml0 + ms * (1.0 - Math.cos(con))/sinphi);\r\n }\r\n \r\n p.x=x;\r\n p.y=y; \r\n return p;\r\n },\r\n \r\n \r\n /* Inverse equations\r\n -----------------*/\r\n inverse: function(p) {\r\n var sin_phi, cos_phi;\t/* sin and cos value\t\t\t\t*/\r\n var al;\t\t\t\t\t/* temporary values\t\t\t\t*/\r\n var b;\t\t\t\t\t/* temporary values\t\t\t\t*/\r\n var c;\t\t\t\t\t/* temporary values\t\t\t\t*/\r\n var con, ml;\t\t\t/* cone constant, small m\t\t\t*/\r\n var iflg;\t\t\t\t/* error flag\t\t\t\t\t*/\r\n var lon,lat;\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n al = this.ml0 + p.y/this.a;\r\n iflg = 0;\r\n \r\n if (Math.abs(al) <= .0000001) {\r\n lon = p.x/this.a + this.long0;\r\n lat = 0.0;\r\n } else {\r\n b = al * al + (p.x/this.a) * (p.x/this.a);\r\n iflg = phi4z(this.es,this.e0,this.e1,this.e2,this.e3,this.al,b,c,lat);\r\n if (iflg != 1) return(iflg);\r\n lon = Proj4js.common.adjust_lon((Proj4js.common.asinz(p.x * c / this.a) / Math.sin(lat)) + this.long0);\r\n }\r\n \r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }\r\n };\r\n \r\n \r\n \r\n /* ======================================================================\r\n projCode/equi.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME EQUIRECTANGULAR \r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Equirectangular projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n T. Mittan\t\tMar, 1993\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n Proj4js.Proj.equi = {\r\n \r\n init: function() {\r\n if(!this.x0) this.x0=0;\r\n if(!this.y0) this.y0=0;\r\n if(!this.lat0) this.lat0=0;\r\n if(!this.long0) this.long0=0;\r\n ///this.t2;\r\n },\r\n \r\n \r\n \r\n /* Equirectangular forward equations--mapping lat,long to x,y\r\n ---------------------------------------------------------*/\r\n forward: function(p) {\r\n \r\n var lon=p.x;\t\t\t\t\r\n var lat=p.y;\t\t\t\r\n \r\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\r\n var x = this.x0 +this. a * dlon *Math.cos(this.lat0);\r\n var y = this.y0 + this.a * lat;\r\n \r\n this.t1=x;\r\n this.t2=Math.cos(this.lat0);\r\n p.x=x;\r\n p.y=y;\r\n return p;\r\n }, //equiFwd()\r\n \r\n \r\n \r\n /* Equirectangular inverse equations--mapping x,y to lat/long\r\n ---------------------------------------------------------*/\r\n inverse: function(p) {\r\n \r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n var lat = p.y /this. a;\r\n \r\n if ( Math.abs(lat) > Proj4js.common.HALF_PI) {\r\n Proj4js.reportError(\"equi:Inv:DataError\");\r\n }\r\n var lon = Proj4js.common.adjust_lon(this.long0 + p.x / (this.a * Math.cos(this.lat0)));\r\n p.x=lon;\r\n p.y=lat;\r\n }//equiInv()\r\n };\r\n \r\n \r\n /* ======================================================================\r\n projCode/merc.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME MERCATOR\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Mercator projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n D. Steinwand, EROS Nov, 1991\r\n T. Mittan\t\tMar, 1993\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n \r\n //static double r_major = a;\t\t /* major axis \t\t\t\t*/\r\n //static double r_minor = b;\t\t /* minor axis \t\t\t\t*/\r\n //static double lon_center = long0;\t /* Center longitude (projection center) */\r\n //static double lat_origin = lat0;\t /* center latitude\t\t\t*/\r\n //static double e,es;\t\t /* eccentricity constants\t\t*/\r\n //static double m1;\t\t /* small value m\t\t\t*/\r\n //static double false_northing = y0; /* y offset in meters\t\t\t*/\r\n //static double false_easting = x0;\t /* x offset in meters\t\t\t*/\r\n //scale_fact = k0 \r\n \r\n Proj4js.Proj.merc = {\r\n init : function() {\r\n //?this.temp = this.r_minor / this.r_major;\r\n //this.temp = this.b / this.a;\r\n //this.es = 1.0 - Math.sqrt(this.temp);\r\n //this.e = Math.sqrt( this.es );\r\n //?this.m1 = Math.cos(this.lat_origin) / (Math.sqrt( 1.0 - this.es * Math.sin(this.lat_origin) * Math.sin(this.lat_origin)));\r\n //this.m1 = Math.cos(0.0) / (Math.sqrt( 1.0 - this.es * Math.sin(0.0) * Math.sin(0.0)));\r\n if (this.lat_ts) {\r\n if (this.sphere) {\r\n this.k0 = Math.cos(this.lat_ts);\r\n } else {\r\n this.k0 = Proj4js.common.msfnz(this.es, Math.sin(this.lat_ts), Math.cos(this.lat_ts));\r\n }\r\n }\r\n },\r\n \r\n /* Mercator forward equations--mapping lat,long to x,y\r\n --------------------------------------------------*/\r\n \r\n forward : function(p) {\t\r\n //alert(\"ll2m coords : \"+coords);\r\n var lon = p.x;\r\n var lat = p.y;\r\n // convert to radians\r\n if ( lat*Proj4js.common.R2D > 90.0 && \r\n lat*Proj4js.common.R2D < -90.0 && \r\n lon*Proj4js.common.R2D > 180.0 && \r\n lon*Proj4js.common.R2D < -180.0) {\r\n Proj4js.reportError(\"merc:forward: llInputOutOfRange: \"+ lon +\" : \" + lat);\r\n return null;\r\n }\r\n \r\n var x,y;\r\n if(Math.abs( Math.abs(lat) - Proj4js.common.HALF_PI) <= Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"merc:forward: ll2mAtPoles\");\r\n return null;\r\n } else {\r\n if (this.sphere) {\r\n x = this.x0 + this.a * this.k0 * Proj4js.common.adjust_lon(lon - this.long0);\r\n y = this.y0 + this.a * this.k0 * Math.log(Math.tan(Proj4js.common.FORTPI + 0.5*lat));\r\n } else {\r\n var sinphi = Math.sin(lat);\r\n var ts = Proj4js.common.tsfnz(this.e,lat,sinphi);\r\n x = this.x0 + this.a * this.k0 * Proj4js.common.adjust_lon(lon - this.long0);\r\n y = this.y0 - this.a * this.k0 * Math.log(ts);\r\n }\r\n p.x = x; \r\n p.y = y;\r\n return p;\r\n }\r\n },\r\n \r\n \r\n /* Mercator inverse equations--mapping x,y to lat/long\r\n --------------------------------------------------*/\r\n inverse : function(p) {\t\r\n \r\n var x = p.x - this.x0;\r\n var y = p.y - this.y0;\r\n var lon,lat;\r\n \r\n if (this.sphere) {\r\n lat = Proj4js.common.HALF_PI - 2.0 * Math.atan(Math.exp(-y / this.a * this.k0));\r\n } else {\r\n var ts = Math.exp(-y / (this.a * this.k0));\r\n lat = Proj4js.common.phi2z(this.e,ts);\r\n if(lat == -9999) {\r\n Proj4js.reportError(\"merc:inverse: lat = -9999\");\r\n return null;\r\n }\r\n }\r\n lon = Proj4js.common.adjust_lon(this.long0+ x / (this.a * this.k0));\r\n \r\n p.x = lon;\r\n p.y = lat;\r\n return p;\r\n }\r\n };\r\n \r\n \r\n /* ======================================================================\r\n projCode/utm.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME TRANSVERSE MERCATOR\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Transverse Mercator projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n \r\n \r\n /**\r\n Initialize Transverse Mercator projection\r\n */\r\n \r\n Proj4js.Proj.utm = {\r\n dependsOn : 'tmerc',\r\n \r\n init : function() {\r\n if (!this.zone) {\r\n Proj4js.reportError(\"utm:init: zone must be specified for UTM\");\r\n return;\r\n }\r\n this.lat0 = 0.0;\r\n this.long0 = ((6 * Math.abs(this.zone)) - 183) * Proj4js.common.D2R;\r\n this.x0 = 500000.0;\r\n this.y0 = this.utmSouth ? 10000000.0 : 0.0;\r\n this.k0 = 0.9996;\r\n \r\n Proj4js.Proj['tmerc'].init.apply(this);\r\n this.forward = Proj4js.Proj['tmerc'].forward;\r\n this.inverse = Proj4js.Proj['tmerc'].inverse;\r\n }\r\n };\r\n /* ======================================================================\r\n projCode/eqdc.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME EQUIDISTANT CONIC \r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and Northing\r\n for the Equidistant Conic projection. The longitude and\r\n latitude must be in radians. The Easting and Northing values\r\n will be returned in meters.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n T. Mittan\t\tMar, 1993\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n \r\n /* Variables common to all subroutines in this code file\r\n -----------------------------------------------------*/\r\n \r\n Proj4js.Proj.eqdc = {\r\n \r\n /* Initialize the Equidistant Conic projection\r\n ------------------------------------------*/\r\n init: function() {\r\n \r\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\r\n \r\n if(!this.mode) this.mode=0;//chosen default mode\r\n this.temp = this.b / this.a;\r\n this.es = 1.0 - Math.pow(this.temp,2);\r\n this.e = Math.sqrt(this.es);\r\n this.e0 = Proj4js.common.e0fn(this.es);\r\n this.e1 = Proj4js.common.e1fn(this.es);\r\n this.e2 = Proj4js.common.e2fn(this.es);\r\n this.e3 = Proj4js.common.e3fn(this.es);\r\n \r\n this.sinphi=Math.sin(this.lat1);\r\n this.cosphi=Math.cos(this.lat1);\r\n \r\n this.ms1 = Proj4js.common.msfnz(this.e,this.sinphi,this.cosphi);\r\n this.ml1 = Proj4js.common.mlfn(this.e0, this.e1, this.e2,this.e3, this.lat1);\r\n \r\n /* format B\r\n ---------*/\r\n if (this.mode != 0) {\r\n if (Math.abs(this.lat1 + this.lat2) < Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"eqdc:Init:EqualLatitudes\");\r\n //return(81);\r\n }\r\n this.sinphi=Math.sin(this.lat2);\r\n this.cosphi=Math.cos(this.lat2); \r\n \r\n this.ms2 = Proj4js.common.msfnz(this.e,this.sinphi,this.cosphi);\r\n this.ml2 = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, this.lat2);\r\n if (Math.abs(this.lat1 - this.lat2) >= Proj4js.common.EPSLN) {\r\n this.ns = (this.ms1 - this.ms2) / (this.ml2 - this.ml1);\r\n } else {\r\n this.ns = this.sinphi;\r\n }\r\n } else {\r\n this.ns = this.sinphi;\r\n }\r\n this.g = this.ml1 + this.ms1/this.ns;\r\n this.ml0 = Proj4js.common.mlfn(this.e0, this.e1,this. e2, this.e3, this.lat0);\r\n this.rh = this.a * (this.g - this.ml0);\r\n },\r\n \r\n \r\n /* Equidistant Conic forward equations--mapping lat,long to x,y\r\n -----------------------------------------------------------*/\r\n forward: function(p) {\r\n var lon=p.x;\r\n var lat=p.y;\r\n \r\n /* Forward equations\r\n -----------------*/\r\n var ml = Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, lat);\r\n var rh1 = this.a * (this.g - ml);\r\n var theta = this.ns * Proj4js.common.adjust_lon(lon - this.long0);\r\n \r\n var x = this.x0 + rh1 * Math.sin(theta);\r\n var y = this.y0 + this.rh - rh1 * Math.cos(theta);\r\n p.x=x;\r\n p.y=y;\r\n return p;\r\n },\r\n \r\n /* Inverse equations\r\n -----------------*/\r\n inverse: function(p) {\r\n p.x -= this.x0;\r\n p.y = this.rh - p.y + this.y0;\r\n var con, rh1;\r\n if (this.ns >= 0) {\r\n rh1 = Math.sqrt(p.x *p.x + p.y * p.y); \r\n con = 1.0;\r\n } else {\r\n rh1 = -Math.sqrt(p.x *p. x +p. y * p.y); \r\n con = -1.0;\r\n }\r\n var theta = 0.0;\r\n if (rh1 != 0.0) theta = Math.atan2(con *p.x, con *p.y);\r\n var ml = this.g - rh1 /this.a;\r\n var lat = this.phi3z(ml,this.e0,this.e1,this.e2,this.e3);\r\n var lon = Proj4js.common.adjust_lon(this.long0 + theta / this.ns);\r\n \r\n p.x=lon;\r\n p.y=lat; \r\n return p;\r\n },\r\n \r\n /* Function to compute latitude, phi3, for the inverse of the Equidistant\r\n Conic projection.\r\n -----------------------------------------------------------------*/\r\n phi3z: function(ml,e0,e1,e2,e3) {\r\n var phi;\r\n var dphi;\r\n \r\n phi = ml;\r\n for (var i = 0; i < 15; i++) {\r\n dphi = (ml + e1 * Math.sin(2.0 * phi) - e2 * Math.sin(4.0 * phi) + e3 * Math.sin(6.0 * phi))/ e0 - phi;\r\n phi += dphi;\r\n if (Math.abs(dphi) <= .0000000001) {\r\n return phi;\r\n }\r\n }\r\n Proj4js.reportError(\"PHI3Z-CONV:Latitude failed to converge after 15 iterations\");\r\n return null;\r\n }\r\n \r\n \r\n };\r\n /* ======================================================================\r\n projCode/tmerc.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME TRANSVERSE MERCATOR\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Transverse Mercator projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n \r\n \r\n /**\r\n Initialize Transverse Mercator projection\r\n */\r\n \r\n Proj4js.Proj.tmerc = {\r\n init : function() {\r\n this.e0 = Proj4js.common.e0fn(this.es);\r\n this.e1 = Proj4js.common.e1fn(this.es);\r\n this.e2 = Proj4js.common.e2fn(this.es);\r\n this.e3 = Proj4js.common.e3fn(this.es);\r\n this.ml0 = this.a * Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\r\n },\r\n \r\n /**\r\n Transverse Mercator Forward - long/lat to x/y\r\n long/lat in radians\r\n */\r\n forward : function(p) {\r\n var lon = p.x;\r\n var lat = p.y;\r\n \r\n var delta_lon = Proj4js.common.adjust_lon(lon - this.long0); // Delta longitude\r\n var con; // cone constant\r\n var x, y;\r\n var sin_phi=Math.sin(lat);\r\n var cos_phi=Math.cos(lat);\r\n \r\n if (this.sphere) { /* spherical form */\r\n var b = cos_phi * Math.sin(delta_lon);\r\n if ((Math.abs(Math.abs(b) - 1.0)) < .0000000001) {\r\n Proj4js.reportError(\"tmerc:forward: Point projects into infinity\");\r\n return(93);\r\n } else {\r\n x = .5 * this.a * this.k0 * Math.log((1.0 + b)/(1.0 - b));\r\n con = Math.acos(cos_phi * Math.cos(delta_lon)/Math.sqrt(1.0 - b*b));\r\n if (lat < 0) con = - con;\r\n y = this.a * this.k0 * (con - this.lat0);\r\n }\r\n } else {\r\n var al = cos_phi * delta_lon;\r\n var als = Math.pow(al,2);\r\n var c = this.ep2 * Math.pow(cos_phi,2);\r\n var tq = Math.tan(lat);\r\n var t = Math.pow(tq,2);\r\n con = 1.0 - this.es * Math.pow(sin_phi,2);\r\n var n = this.a / Math.sqrt(con);\r\n var ml = this.a * Proj4js.common.mlfn(this.e0, this.e1, this.e2, this.e3, lat);\r\n \r\n x = this.k0 * n * al * (1.0 + als / 6.0 * (1.0 - t + c + als / 20.0 * (5.0 - 18.0 * t + Math.pow(t,2) + 72.0 * c - 58.0 * this.ep2))) + this.x0;\r\n y = this.k0 * (ml - this.ml0 + n * tq * (als * (0.5 + als / 24.0 * (5.0 - t + 9.0 * c + 4.0 * Math.pow(c,2) + als / 30.0 * (61.0 - 58.0 * t + Math.pow(t,2) + 600.0 * c - 330.0 * this.ep2))))) + this.y0;\r\n \r\n }\r\n p.x = x; p.y = y;\r\n return p;\r\n }, // tmercFwd()\r\n \r\n /**\r\n Transverse Mercator Inverse - x/y to long/lat\r\n */\r\n inverse : function(p) {\r\n var con, phi; /* temporary angles */\r\n var delta_phi; /* difference between longitudes */\r\n var i;\r\n var max_iter = 6; /* maximun number of iterations */\r\n var lat, lon;\r\n \r\n if (this.sphere) { /* spherical form */\r\n var f = Math.exp(p.x/(this.a * this.k0));\r\n var g = .5 * (f - 1/f);\r\n var temp = this.lat0 + p.y/(this.a * this.k0);\r\n var h = Math.cos(temp);\r\n con = Math.sqrt((1.0 - h * h)/(1.0 + g * g));\r\n lat = Proj4js.common.asinz(con);\r\n if (temp < 0)\r\n lat = -lat;\r\n if ((g == 0) && (h == 0)) {\r\n lon = this.long0;\r\n } else {\r\n lon = Proj4js.common.adjust_lon(Math.atan2(g,h) + this.long0);\r\n }\r\n } else { // ellipsoidal form\r\n var x = p.x - this.x0;\r\n var y = p.y - this.y0;\r\n \r\n con = (this.ml0 + y / this.k0) / this.a;\r\n phi = con;\r\n for (i=0;true;i++) {\r\n delta_phi=((con + this.e1 * Math.sin(2.0*phi) - this.e2 * Math.sin(4.0*phi) + this.e3 * Math.sin(6.0*phi)) / this.e0) - phi;\r\n phi += delta_phi;\r\n if (Math.abs(delta_phi) <= Proj4js.common.EPSLN) break;\r\n if (i >= max_iter) {\r\n Proj4js.reportError(\"tmerc:inverse: Latitude failed to converge\");\r\n return(95);\r\n }\r\n } // for()\r\n if (Math.abs(phi) < Proj4js.common.HALF_PI) {\r\n // sincos(phi, &sin_phi, &cos_phi);\r\n var sin_phi=Math.sin(phi);\r\n var cos_phi=Math.cos(phi);\r\n var tan_phi = Math.tan(phi);\r\n var c = this.ep2 * Math.pow(cos_phi,2);\r\n var cs = Math.pow(c,2);\r\n var t = Math.pow(tan_phi,2);\r\n var ts = Math.pow(t,2);\r\n con = 1.0 - this.es * Math.pow(sin_phi,2);\r\n var n = this.a / Math.sqrt(con);\r\n var r = n * (1.0 - this.es) / con;\r\n var d = x / (n * this.k0);\r\n var ds = Math.pow(d,2);\r\n lat = phi - (n * tan_phi * ds / r) * (0.5 - ds / 24.0 * (5.0 + 3.0 * t + 10.0 * c - 4.0 * cs - 9.0 * this.ep2 - ds / 30.0 * (61.0 + 90.0 * t + 298.0 * c + 45.0 * ts - 252.0 * this.ep2 - 3.0 * cs)));\r\n lon = Proj4js.common.adjust_lon(this.long0 + (d * (1.0 - ds / 6.0 * (1.0 + 2.0 * t + c - ds / 20.0 * (5.0 - 2.0 * c + 28.0 * t - 3.0 * cs + 8.0 * this.ep2 + 24.0 * ts))) / cos_phi));\r\n } else {\r\n lat = Proj4js.common.HALF_PI * Proj4js.common.sign(y);\r\n lon = this.long0;\r\n }\r\n }\r\n p.x = lon;\r\n p.y = lat;\r\n return p;\r\n } // tmercInv()\r\n };\r\n /* ======================================================================\r\n defs/GOOGLE.js\r\n ====================================================================== */\r\n \r\n Proj4js.defs[\"GOOGLE\"]=\"+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\";\r\n Proj4js.defs[\"EPSG:900913\"]=Proj4js.defs[\"GOOGLE\"];\r\n /* ======================================================================\r\n projCode/gstmerc.js\r\n ====================================================================== */\r\n \r\n Proj4js.Proj.gstmerc = {\r\n init : function() {\r\n \r\n // array of: a, b, lon0, lat0, k0, x0, y0\r\n var temp= this.b / this.a;\r\n this.e= Math.sqrt(1.0 - temp*temp);\r\n this.lc= this.long0;\r\n this.rs= Math.sqrt(1.0+this.e*this.e*Math.pow(Math.cos(this.lat0),4.0)/(1.0-this.e*this.e));\r\n var sinz= Math.sin(this.lat0);\r\n var pc= Math.asin(sinz/this.rs);\r\n var sinzpc= Math.sin(pc);\r\n this.cp= Proj4js.common.latiso(0.0,pc,sinzpc)-this.rs*Proj4js.common.latiso(this.e,this.lat0,sinz);\r\n this.n2= this.k0*this.a*Math.sqrt(1.0-this.e*this.e)/(1.0-this.e*this.e*sinz*sinz);\r\n this.xs= this.x0;\r\n this.ys= this.y0-this.n2*pc;\r\n \r\n if (!this.title) this.title = \"Gauss Schreiber transverse mercator\";\r\n },\r\n \r\n \r\n // forward equations--mapping lat,long to x,y\r\n // -----------------------------------------------------------------\r\n forward : function(p) {\r\n \r\n var lon= p.x;\r\n var lat= p.y;\r\n \r\n var L= this.rs*(lon-this.lc);\r\n var Ls= this.cp+(this.rs*Proj4js.common.latiso(this.e,lat,Math.sin(lat)));\r\n var lat1= Math.asin(Math.sin(L)/Proj4js.common.cosh(Ls));\r\n var Ls1= Proj4js.common.latiso(0.0,lat1,Math.sin(lat1));\r\n p.x= this.xs+(this.n2*Ls1);\r\n p.y= this.ys+(this.n2*Math.atan(Proj4js.common.sinh(Ls)/Math.cos(L)));\r\n return p;\r\n },\r\n \r\n // inverse equations--mapping x,y to lat/long\r\n // -----------------------------------------------------------------\r\n inverse : function(p) {\r\n \r\n var x= p.x;\r\n var y= p.y;\r\n \r\n var L= Math.atan(Proj4js.common.sinh((x-this.xs)/this.n2)/Math.cos((y-this.ys)/this.n2));\r\n var lat1= Math.asin(Math.sin((y-this.ys)/this.n2)/Proj4js.common.cosh((x-this.xs)/this.n2));\r\n var LC= Proj4js.common.latiso(0.0,lat1,Math.sin(lat1));\r\n p.x= this.lc+L/this.rs;\r\n p.y= Proj4js.common.invlatiso(this.e,(LC-this.cp)/this.rs);\r\n return p;\r\n }\r\n \r\n };\r\n /* ======================================================================\r\n projCode/ortho.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME ORTHOGRAPHIC \r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Orthographic projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n T. Mittan\t\tMar, 1993\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.ortho = {\r\n \r\n /* Initialize the Orthographic projection\r\n -------------------------------------*/\r\n init: function(def) {\r\n //double temp;\t\t\t/* temporary variable\t\t*/\r\n \r\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/;\r\n this.sin_p14=Math.sin(this.lat0);\r\n this.cos_p14=Math.cos(this.lat0);\t\r\n },\r\n \r\n \r\n /* Orthographic forward equations--mapping lat,long to x,y\r\n ---------------------------------------------------*/\r\n forward: function(p) {\r\n var sinphi, cosphi;\t/* sin and cos value\t\t\t\t*/\r\n var dlon;\t\t/* delta longitude value\t\t\t*/\r\n var coslon;\t\t/* cos of longitude\t\t\t\t*/\r\n var ksp;\t\t/* scale factor\t\t\t\t\t*/\r\n var g;\t\t\r\n var lon=p.x;\r\n var lat=p.y;\t\r\n /* Forward equations\r\n -----------------*/\r\n dlon = Proj4js.common.adjust_lon(lon - this.long0);\r\n \r\n sinphi=Math.sin(lat);\r\n cosphi=Math.cos(lat);\t\r\n \r\n coslon = Math.cos(dlon);\r\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\r\n ksp = 1.0;\r\n if ((g > 0) || (Math.abs(g) <= Proj4js.common.EPSLN)) {\r\n var x = this.a * ksp * cosphi * Math.sin(dlon);\r\n var y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\r\n } else {\r\n Proj4js.reportError(\"orthoFwdPointError\");\r\n }\r\n p.x=x;\r\n p.y=y;\r\n return p;\r\n },\r\n \r\n \r\n inverse: function(p) {\r\n var rh;\t\t/* height above ellipsoid\t\t\t*/\r\n var z;\t\t/* angle\t\t\t\t\t*/\r\n var sinz,cosz;\t/* sin of z and cos of z\t\t\t*/\r\n var temp;\r\n var con;\r\n var lon , lat;\r\n /* Inverse equations\r\n -----------------*/\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\r\n if (rh > this.a + .0000001) {\r\n Proj4js.reportError(\"orthoInvDataError\");\r\n }\r\n z = Proj4js.common.asinz(rh / this.a);\r\n \r\n sinz=Math.sin(z);\r\n cosz=Math.cos(z);\r\n \r\n lon = this.long0;\r\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\r\n lat = this.lat0; \r\n }\r\n lat = Proj4js.common.asinz(cosz * this.sin_p14 + (p.y * sinz * this.cos_p14)/rh);\r\n con = Math.abs(this.lat0) - Proj4js.common.HALF_PI;\r\n if (Math.abs(con) <= Proj4js.common.EPSLN) {\r\n if (this.lat0 >= 0) {\r\n lon = Proj4js.common.adjust_lon(this.long0 + Math.atan2(p.x, -p.y));\r\n } else {\r\n lon = Proj4js.common.adjust_lon(this.long0 -Math.atan2(-p.x, p.y));\r\n }\r\n }\r\n con = cosz - this.sin_p14 * Math.sin(lat);\r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }\r\n };\r\n \r\n \r\n /* ======================================================================\r\n projCode/krovak.js\r\n ====================================================================== */\r\n \r\n /**\r\n NOTES: According to EPSG the full Krovak projection method should have\r\n the following parameters. Within PROJ.4 the azimuth, and pseudo\r\n standard parallel are hardcoded in the algorithm and can't be \r\n altered from outside. The others all have defaults to match the\r\n common usage with Krovak projection.\r\n \r\n lat_0 = latitude of centre of the projection\r\n \r\n lon_0 = longitude of centre of the projection\r\n \r\n ** = azimuth (true) of the centre line passing through the centre of the projection\r\n \r\n ** = latitude of pseudo standard parallel\r\n \r\n k = scale factor on the pseudo standard parallel\r\n \r\n x_0 = False Easting of the centre of the projection at the apex of the cone\r\n \r\n y_0 = False Northing of the centre of the projection at the apex of the cone\r\n \r\n **/\r\n \r\n Proj4js.Proj.krovak = {\r\n \r\n init: function() {\r\n /* we want Bessel as fixed ellipsoid */\r\n this.a = 6377397.155;\r\n this.es = 0.006674372230614;\r\n this.e = Math.sqrt(this.es);\r\n /* if latitude of projection center is not set, use 49d30'N */\r\n if (!this.lat0) {\r\n this.lat0 = 0.863937979737193;\r\n }\r\n if (!this.long0) {\r\n this.long0 = 0.7417649320975901 - 0.308341501185665;\r\n }\r\n /* if scale not set default to 0.9999 */\r\n if (!this.k0) {\r\n this.k0 = 0.9999;\r\n }\r\n this.s45 = 0.785398163397448; /* 45° */\r\n this.s90 = 2 * this.s45;\r\n this.fi0 = this.lat0; /* Latitude of projection centre 49° 30' */\r\n /* Ellipsoid Bessel 1841 a = 6377397.155m 1/f = 299.1528128,\r\n e2=0.006674372230614;\r\n */\r\n this.e2 = this.es; /* 0.006674372230614; */\r\n this.e = Math.sqrt(this.e2);\r\n this.alfa = Math.sqrt(1. + (this.e2 * Math.pow(Math.cos(this.fi0), 4)) / (1. - this.e2));\r\n this.uq = 1.04216856380474; /* DU(2, 59, 42, 42.69689) */\r\n this.u0 = Math.asin(Math.sin(this.fi0) / this.alfa);\r\n this.g = Math.pow( (1. + this.e * Math.sin(this.fi0)) / (1. - this.e * Math.sin(this.fi0)) , this.alfa * this.e / 2. );\r\n this.k = Math.tan( this.u0 / 2. + this.s45) / Math.pow (Math.tan(this.fi0 / 2. + this.s45) , this.alfa) * this.g;\r\n this.k1 = this.k0;\r\n this.n0 = this.a * Math.sqrt(1. - this.e2) / (1. - this.e2 * Math.pow(Math.sin(this.fi0), 2));\r\n this.s0 = 1.37008346281555; /* Latitude of pseudo standard parallel 78° 30'00\" N */\r\n this.n = Math.sin(this.s0);\r\n this.ro0 = this.k1 * this.n0 / Math.tan(this.s0);\r\n this.ad = this.s90 - this.uq;\r\n },\r\n \r\n /* ellipsoid */\r\n /* calculate xy from lat/lon */\r\n /* Constants, identical to inverse transform function */\r\n forward: function(p) {\r\n var gfi, u, deltav, s, d, eps, ro;\r\n var lon = p.x;\r\n var lat = p.y;\r\n var delta_lon = Proj4js.common.adjust_lon(lon - this.long0); // Delta longitude\r\n /* Transformation */\r\n gfi = Math.pow ( ((1. + this.e * Math.sin(lat)) / (1. - this.e * Math.sin(lat))) , (this.alfa * this.e / 2.));\r\n u= 2. * (Math.atan(this.k * Math.pow( Math.tan(lat / 2. + this.s45), this.alfa) / gfi)-this.s45);\r\n deltav = - delta_lon * this.alfa;\r\n s = Math.asin(Math.cos(this.ad) * Math.sin(u) + Math.sin(this.ad) * Math.cos(u) * Math.cos(deltav));\r\n d = Math.asin(Math.cos(u) * Math.sin(deltav) / Math.cos(s));\r\n eps = this.n * d;\r\n ro = this.ro0 * Math.pow(Math.tan(this.s0 / 2. + this.s45) , this.n) / Math.pow(Math.tan(s / 2. + this.s45) , this.n);\r\n /* x and y are reverted! */\r\n //p.y = ro * Math.cos(eps) / a;\r\n //p.x = ro * Math.sin(eps) / a;\r\n p.y = ro * Math.cos(eps) / 1.0;\r\n p.x = ro * Math.sin(eps) / 1.0;\r\n \r\n if(this.czech) {\r\n p.y *= -1.0;\r\n p.x *= -1.0;\r\n }\r\n return (p);\r\n },\r\n \r\n /* calculate lat/lon from xy */\r\n inverse: function(p) {\r\n /* Constants, identisch wie in der Umkehrfunktion */\r\n var u, deltav, s, d, eps, ro, fi1;\r\n var ok;\r\n \r\n /* Transformation */\r\n /* revert y, x*/\r\n var tmp = p.x;\r\n p.x=p.y;\r\n p.y=tmp;\r\n if(this.czech) {\r\n p.y *= -1.0;\r\n p.x *= -1.0;\r\n }\r\n ro = Math.sqrt(p.x * p.x + p.y * p.y);\r\n eps = Math.atan2(p.y, p.x);\r\n d = eps / Math.sin(this.s0);\r\n s = 2. * (Math.atan( Math.pow(this.ro0 / ro, 1. / this.n) * Math.tan(this.s0 / 2. + this.s45)) - this.s45);\r\n u = Math.asin(Math.cos(this.ad) * Math.sin(s) - Math.sin(this.ad) * Math.cos(s) * Math.cos(d));\r\n deltav = Math.asin(Math.cos(s) * Math.sin(d) / Math.cos(u));\r\n p.x = this.long0 - deltav / this.alfa;\r\n /* ITERATION FOR lat */\r\n fi1 = u;\r\n ok = 0;\r\n var iter = 0;\r\n do {\r\n p.y = 2. * ( Math.atan( Math.pow( this.k, -1. / this.alfa) *\r\n Math.pow( Math.tan(u / 2. + this.s45) , 1. / this.alfa) *\r\n Math.pow( (1. + this.e * Math.sin(fi1)) / (1. - this.e * Math.sin(fi1)) , this.e / 2.)\r\n ) - this.s45);\r\n if (Math.abs(fi1 - p.y) < 0.0000000001) ok=1;\r\n fi1 = p.y;\r\n iter += 1;\r\n } while (ok==0 && iter < 15);\r\n if (iter >= 15) {\r\n Proj4js.reportError(\"PHI3Z-CONV:Latitude failed to converge after 15 iterations\");\r\n //console.log('iter:', iter);\r\n return null;\r\n }\r\n \r\n return (p);\r\n }\r\n };\r\n /* ======================================================================\r\n projCode/somerc.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME SWISS OBLIQUE MERCATOR\r\n \r\n PURPOSE:\tSwiss projection.\r\n WARNING: X and Y are inverted (weird) in the swiss coordinate system. Not\r\n here, since we want X to be horizontal and Y vertical.\r\n \r\n ALGORITHM REFERENCES\r\n 1. \"Formules et constantes pour le Calcul pour la\r\n projection cylindrique conforme à axe oblique et pour la transformation entre\r\n des systèmes de référence\".\r\n http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf\r\n \r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.somerc = {\r\n \r\n init: function() {\r\n var phy0 = this.lat0;\r\n this.lambda0 = this.long0;\r\n var sinPhy0 = Math.sin(phy0);\r\n var semiMajorAxis = this.a;\r\n var invF = this.rf;\r\n var flattening = 1 / invF;\r\n var e2 = 2 * flattening - Math.pow(flattening, 2);\r\n var e = this.e = Math.sqrt(e2);\r\n this.R = this.k0 * semiMajorAxis * Math.sqrt(1 - e2) / (1 - e2 * Math.pow(sinPhy0, 2.0));\r\n this.alpha = Math.sqrt(1 + e2 / (1 - e2) * Math.pow(Math.cos(phy0), 4.0));\r\n this.b0 = Math.asin(sinPhy0 / this.alpha);\r\n this.K = Math.log(Math.tan(Math.PI / 4.0 + this.b0 / 2.0))\r\n - this.alpha\r\n * Math.log(Math.tan(Math.PI / 4.0 + phy0 / 2.0))\r\n + this.alpha\r\n * e / 2\r\n * Math.log((1 + e * sinPhy0)\r\n / (1 - e * sinPhy0));\r\n },\r\n \r\n \r\n forward: function(p) {\r\n var Sa1 = Math.log(Math.tan(Math.PI / 4.0 - p.y / 2.0));\r\n var Sa2 = this.e / 2.0\r\n * Math.log((1 + this.e * Math.sin(p.y))\r\n / (1 - this.e * Math.sin(p.y)));\r\n var S = -this.alpha * (Sa1 + Sa2) + this.K;\r\n \r\n // spheric latitude\r\n var b = 2.0 * (Math.atan(Math.exp(S)) - Math.PI / 4.0);\r\n \r\n // spheric longitude\r\n var I = this.alpha * (p.x - this.lambda0);\r\n \r\n // psoeudo equatorial rotation\r\n var rotI = Math.atan(Math.sin(I)\r\n / (Math.sin(this.b0) * Math.tan(b) +\r\n Math.cos(this.b0) * Math.cos(I)));\r\n \r\n var rotB = Math.asin(Math.cos(this.b0) * Math.sin(b) -\r\n Math.sin(this.b0) * Math.cos(b) * Math.cos(I));\r\n \r\n p.y = this.R / 2.0\r\n * Math.log((1 + Math.sin(rotB)) / (1 - Math.sin(rotB)))\r\n + this.y0;\r\n p.x = this.R * rotI + this.x0;\r\n return p;\r\n },\r\n \r\n inverse: function(p) {\r\n var Y = p.x - this.x0;\r\n var X = p.y - this.y0;\r\n \r\n var rotI = Y / this.R;\r\n var rotB = 2 * (Math.atan(Math.exp(X / this.R)) - Math.PI / 4.0);\r\n \r\n var b = Math.asin(Math.cos(this.b0) * Math.sin(rotB)\r\n + Math.sin(this.b0) * Math.cos(rotB) * Math.cos(rotI));\r\n var I = Math.atan(Math.sin(rotI)\r\n / (Math.cos(this.b0) * Math.cos(rotI) - Math.sin(this.b0)\r\n * Math.tan(rotB)));\r\n \r\n var lambda = this.lambda0 + I / this.alpha;\r\n \r\n var S = 0.0;\r\n var phy = b;\r\n var prevPhy = -1000.0;\r\n var iteration = 0;\r\n while (Math.abs(phy - prevPhy) > 0.0000001)\r\n {\r\n if (++iteration > 20)\r\n {\r\n Proj4js.reportError(\"omercFwdInfinity\");\r\n return;\r\n }\r\n //S = Math.log(Math.tan(Math.PI / 4.0 + phy / 2.0));\r\n S = 1.0\r\n / this.alpha\r\n * (Math.log(Math.tan(Math.PI / 4.0 + b / 2.0)) - this.K)\r\n + this.e\r\n * Math.log(Math.tan(Math.PI / 4.0\r\n + Math.asin(this.e * Math.sin(phy))\r\n / 2.0));\r\n prevPhy = phy;\r\n phy = 2.0 * Math.atan(Math.exp(S)) - Math.PI / 2.0;\r\n }\r\n \r\n p.x = lambda;\r\n p.y = phy;\r\n return p;\r\n }\r\n };\r\n /* ======================================================================\r\n projCode/stere.js\r\n ====================================================================== */\r\n \r\n \r\n // Initialize the Stereographic projection\r\n \r\n Proj4js.Proj.stere = {\r\n ssfn_: function(phit, sinphi, eccen) {\r\n sinphi *= eccen;\r\n return (Math.tan (.5 * (Proj4js.common.HALF_PI + phit)) * Math.pow((1. - sinphi) / (1. + sinphi), .5 * eccen));\r\n },\r\n TOL:\t1.e-8,\r\n NITER:\t8,\r\n CONV:\t1.e-10,\r\n S_POLE:\t0,\r\n N_POLE:\t1,\r\n OBLIQ:\t2,\r\n EQUIT:\t3,\r\n \r\n init: function() {\r\n this.phits = this.lat_ts ? this.lat_ts : Proj4js.common.HALF_PI;\r\n var t = Math.abs(this.lat0);\r\n if ((Math.abs(t) - Proj4js.common.HALF_PI) < Proj4js.common.EPSLN) {\r\n this.mode = this.lat0 < 0. ? this.S_POLE : this.N_POLE;\r\n } else {\r\n this.mode = t > Proj4js.common.EPSLN ? this.OBLIQ : this.EQUIT;\r\n }\r\n this.phits = Math.abs(this.phits);\r\n if (this.es) {\r\n var X;\r\n \r\n switch (this.mode) {\r\n case this.N_POLE:\r\n case this.S_POLE:\r\n if (Math.abs(this.phits - Proj4js.common.HALF_PI) < Proj4js.common.EPSLN) {\r\n this.akm1 = 2. * this.k0 / Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e));\r\n } else {\r\n t = Math.sin(this.phits);\r\n this.akm1 = Math.cos(this.phits) / Proj4js.common.tsfnz(this.e, this.phits, t);\r\n t *= this.e;\r\n this.akm1 /= Math.sqrt(1. - t * t);\r\n }\r\n break;\r\n case this.EQUIT:\r\n this.akm1 = 2. * this.k0;\r\n break;\r\n case this.OBLIQ:\r\n t = Math.sin(this.lat0);\r\n X = 2. * Math.atan(this.ssfn_(this.lat0, t, this.e)) - Proj4js.common.HALF_PI;\r\n t *= this.e;\r\n this.akm1 = 2. * this.k0 * Math.cos(this.lat0) / Math.sqrt(1. - t * t);\r\n this.sinX1 = Math.sin(X);\r\n this.cosX1 = Math.cos(X);\r\n break;\r\n }\r\n } else {\r\n switch (this.mode) {\r\n case this.OBLIQ:\r\n this.sinph0 = Math.sin(this.lat0);\r\n this.cosph0 = Math.cos(this.lat0);\r\n case this.EQUIT:\r\n this.akm1 = 2. * this.k0;\r\n break;\r\n case this.S_POLE:\r\n case this.N_POLE:\r\n this.akm1 = Math.abs(this.phits - Proj4js.common.HALF_PI) >= Proj4js.common.EPSLN ?\r\n Math.cos(this.phits) / Math.tan(Proj4js.common.FORTPI - .5 * this.phits) :\r\n 2. * this.k0 ;\r\n break;\r\n }\r\n }\r\n }, \r\n \r\n // Stereographic forward equations--mapping lat,long to x,y\r\n forward: function(p) {\r\n var lon = p.x;\r\n lon = Proj4js.common.adjust_lon(lon - this.long0);\r\n var lat = p.y;\r\n var x, y;\r\n \r\n if (this.sphere) {\r\n var sinphi, cosphi, coslam, sinlam;\r\n \r\n sinphi = Math.sin(lat);\r\n cosphi = Math.cos(lat);\r\n coslam = Math.cos(lon);\r\n sinlam = Math.sin(lon);\r\n switch (this.mode) {\r\n case this.EQUIT:\r\n y = 1. + cosphi * coslam;\r\n if (y <= Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"stere:forward:Equit\");\r\n }\r\n y = this.akm1 / y;\r\n x = y * cosphi * sinlam;\r\n y *= sinphi;\r\n break;\r\n case this.OBLIQ:\r\n y = 1. + this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\r\n if (y <= Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"stere:forward:Obliq\");\r\n }\r\n y = this.akm1 / y;\r\n x = y * cosphi * sinlam;\r\n y *= this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\r\n break;\r\n case this.N_POLE:\r\n coslam = -coslam;\r\n lat = -lat;\r\n //Note no break here so it conitnues through S_POLE\r\n case this.S_POLE:\r\n if (Math.abs(lat - Proj4js.common.HALF_PI) < this.TOL) {\r\n Proj4js.reportError(\"stere:forward:S_POLE\");\r\n }\r\n y = this.akm1 * Math.tan(Proj4js.common.FORTPI + .5 * lat);\r\n x = sinlam * y;\r\n y *= coslam;\r\n break;\r\n }\r\n } else {\r\n coslam = Math.cos(lon);\r\n sinlam = Math.sin(lon);\r\n sinphi = Math.sin(lat);\r\n var sinX, cosX;\r\n if (this.mode == this.OBLIQ || this.mode == this.EQUIT) {\r\n var Xt = 2. * Math.atan(this.ssfn_(lat, sinphi, this.e));\r\n sinX = Math.sin(Xt - Proj4js.common.HALF_PI);\r\n cosX = Math.cos(Xt);\r\n }\r\n switch (this.mode) {\r\n case this.OBLIQ:\r\n var A = this.akm1 / (this.cosX1 * (1. + this.sinX1 * sinX + this.cosX1 * cosX * coslam));\r\n y = A * (this.cosX1 * sinX - this.sinX1 * cosX * coslam);\r\n x = A * cosX;\r\n break;\r\n case this.EQUIT:\r\n var A = 2. * this.akm1 / (1. + cosX * coslam);\r\n y = A * sinX;\r\n x = A * cosX;\r\n break;\r\n case this.S_POLE:\r\n lat = -lat;\r\n coslam = - coslam;\r\n sinphi = -sinphi;\r\n case this.N_POLE:\r\n x = this.akm1 * Proj4js.common.tsfnz(this.e, lat, sinphi);\r\n y = - x * coslam;\r\n break;\r\n }\r\n x = x * sinlam;\r\n }\r\n p.x = x*this.a + this.x0;\r\n p.y = y*this.a + this.y0;\r\n return p;\r\n },\r\n \r\n \r\n //* Stereographic inverse equations--mapping x,y to lat/long\r\n inverse: function(p) {\r\n var x = (p.x - this.x0)/this.a; /* descale and de-offset */\r\n var y = (p.y - this.y0)/this.a;\r\n var lon, lat;\r\n \r\n var cosphi, sinphi, tp=0.0, phi_l=0.0, rho, halfe=0.0, pi2=0.0;\r\n var i;\r\n \r\n if (this.sphere) {\r\n var c, rh, sinc, cosc;\r\n \r\n rh = Math.sqrt(x*x + y*y);\r\n c = 2. * Math.atan(rh / this.akm1);\r\n sinc = Math.sin(c);\r\n cosc = Math.cos(c);\r\n lon = 0.;\r\n switch (this.mode) {\r\n case this.EQUIT:\r\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\r\n lat = 0.;\r\n } else {\r\n lat = Math.asin(y * sinc / rh);\r\n }\r\n if (cosc != 0. || x != 0.) lon = Math.atan2(x * sinc, cosc * rh);\r\n break;\r\n case this.OBLIQ:\r\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\r\n lat = this.phi0;\r\n } else {\r\n lat = Math.asin(cosc * this.sinph0 + y * sinc * this.cosph0 / rh);\r\n }\r\n c = cosc - this.sinph0 * Math.sin(lat);\r\n if (c != 0. || x != 0.) {\r\n lon = Math.atan2(x * sinc * this.cosph0, c * rh);\r\n }\r\n break;\r\n case this.N_POLE:\r\n y = -y;\r\n case this.S_POLE:\r\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\r\n lat = this.phi0;\r\n } else {\r\n lat = Math.asin(this.mode == this.S_POLE ? -cosc : cosc);\r\n }\r\n lon = (x == 0. && y == 0.) ? 0. : Math.atan2(x, y);\r\n break;\r\n }\r\n p.x = Proj4js.common.adjust_lon(lon + this.long0);\r\n p.y = lat;\r\n } else {\r\n rho = Math.sqrt(x*x + y*y);\r\n switch (this.mode) {\r\n case this.OBLIQ:\r\n case this.EQUIT:\r\n tp = 2. * Math.atan2(rho * this.cosX1 , this.akm1);\r\n cosphi = Math.cos(tp);\r\n sinphi = Math.sin(tp);\r\n if( rho == 0.0 ) {\r\n phi_l = Math.asin(cosphi * this.sinX1);\r\n } else {\r\n phi_l = Math.asin(cosphi * this.sinX1 + (y * sinphi * this.cosX1 / rho));\r\n }\r\n \r\n tp = Math.tan(.5 * (Proj4js.common.HALF_PI + phi_l));\r\n x *= sinphi;\r\n y = rho * this.cosX1 * cosphi - y * this.sinX1* sinphi;\r\n pi2 = Proj4js.common.HALF_PI;\r\n halfe = .5 * this.e;\r\n break;\r\n case this.N_POLE:\r\n y = -y;\r\n case this.S_POLE:\r\n tp = - rho / this.akm1;\r\n phi_l = Proj4js.common.HALF_PI - 2. * Math.atan(tp);\r\n pi2 = -Proj4js.common.HALF_PI;\r\n halfe = -.5 * this.e;\r\n break;\r\n }\r\n for (i = this.NITER; i--; phi_l = lat) { //check this\r\n sinphi = this.e * Math.sin(phi_l);\r\n lat = 2. * Math.atan(tp * Math.pow((1.+sinphi)/(1.-sinphi), halfe)) - pi2;\r\n if (Math.abs(phi_l - lat) < this.CONV) {\r\n if (this.mode == this.S_POLE) lat = -lat;\r\n lon = (x == 0. && y == 0.) ? 0. : Math.atan2(x, y);\r\n p.x = Proj4js.common.adjust_lon(lon + this.long0);\r\n p.y = lat;\r\n return p;\r\n }\r\n }\r\n }\r\n }\r\n }; \r\n /* ======================================================================\r\n projCode/nzmg.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME NEW ZEALAND MAP GRID\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the New Zealand Map Grid projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Department of Land and Survey Technical Circular 1973/32\r\n http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf\r\n \r\n 2. OSG Technical Report 4.1\r\n http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf\r\n \r\n \r\n IMPLEMENTATION NOTES\r\n \r\n The two references use different symbols for the calculated values. This\r\n implementation uses the variable names similar to the symbols in reference [1].\r\n \r\n The alogrithm uses different units for delta latitude and delta longitude.\r\n The delta latitude is assumed to be in units of seconds of arc x 10^-5.\r\n The delta longitude is the usual radians. Look out for these conversions.\r\n \r\n The algorithm is described using complex arithmetic. There were three\r\n options:\r\n * find and use a Javascript library for complex arithmetic\r\n * write my own complex library\r\n * expand the complex arithmetic by hand to simple arithmetic\r\n \r\n This implementation has expanded the complex multiplication operations\r\n into parallel simple arithmetic operations for the real and imaginary parts.\r\n The imaginary part is way over to the right of the display; this probably\r\n violates every coding standard in the world, but, to me, it makes it much\r\n more obvious what is going on.\r\n \r\n The following complex operations are used:\r\n - addition\r\n - multiplication\r\n - division\r\n - complex number raised to integer power\r\n - summation\r\n \r\n A summary of complex arithmetic operations:\r\n (from http://en.wikipedia.org/wiki/Complex_arithmetic)\r\n addition: (a + bi) + (c + di) = (a + c) + (b + d)i\r\n subtraction: (a + bi) - (c + di) = (a - c) + (b - d)i\r\n multiplication: (a + bi) x (c + di) = (ac - bd) + (bc + ad)i\r\n division: (a + bi) / (c + di) = [(ac + bd)/(cc + dd)] + [(bc - ad)/(cc + dd)]i\r\n \r\n The algorithm needs to calculate summations of simple and complex numbers. This is\r\n implemented using a for-loop, pre-loading the summed value to zero.\r\n \r\n The algorithm needs to calculate theta^2, theta^3, etc while doing a summation.\r\n There are three possible implementations:\r\n - use Math.pow in the summation loop - except for complex numbers\r\n - precalculate the values before running the loop\r\n - calculate theta^n = theta^(n-1) * theta during the loop\r\n This implementation uses the third option for both real and complex arithmetic.\r\n \r\n For example\r\n psi_n = 1;\r\n sum = 0;\r\n for (n = 1; n <=6; n++) {\r\n psi_n1 = psi_n * psi; // calculate psi^(n+1)\r\n psi_n = psi_n1;\r\n sum = sum + A[n] * psi_n;\r\n }\r\n \r\n \r\n TEST VECTORS\r\n \r\n NZMG E, N: 2487100.638 6751049.719 metres\r\n NZGD49 long, lat: 172.739194 -34.444066 degrees\r\n \r\n NZMG E, N: 2486533.395 6077263.661 metres\r\n NZGD49 long, lat: 172.723106 -40.512409 degrees\r\n \r\n NZMG E, N: 2216746.425 5388508.765 metres\r\n NZGD49 long, lat: 169.172062 -46.651295 degrees\r\n \r\n Note that these test vectors convert from NZMG metres to lat/long referenced\r\n to NZGD49, not the more usual WGS84. The difference is about 70m N/S and about\r\n 10m E/W.\r\n \r\n These test vectors are provided in reference [1]. Many more test\r\n vectors are available in\r\n http://www.linz.govt.nz/docs/topography/topographicdata/placenamesdatabase/nznamesmar08.zip\r\n which is a catalog of names on the 260-series maps.\r\n \r\n \r\n EPSG CODES\r\n \r\n NZMG EPSG:27200\r\n NZGD49 EPSG:4272\r\n \r\n http://spatialreference.org/ defines these as\r\n Proj4js.defs[\"EPSG:4272\"] = \"+proj=longlat +ellps=intl +datum=nzgd49 +no_defs \";\r\n Proj4js.defs[\"EPSG:27200\"] = \"+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150 +ellps=intl +datum=nzgd49 +units=m +no_defs \";\r\n \r\n \r\n LICENSE\r\n Copyright: Stephen Irons 2008\r\n Released under terms of the LGPL as per: http://www.gnu.org/copyleft/lesser.html\r\n \r\n *******************************************************************************/\r\n \r\n \r\n /**\r\n Initialize New Zealand Map Grip projection\r\n */\r\n \r\n Proj4js.Proj.nzmg = {\r\n \r\n /**\r\n * iterations: Number of iterations to refine inverse transform.\r\n * 0 -> km accuracy\r\n * 1 -> m accuracy -- suitable for most mapping applications\r\n * 2 -> mm accuracy\r\n */\r\n iterations: 1,\r\n \r\n init : function() {\r\n this.A = new Array();\r\n this.A[1] = +0.6399175073;\r\n this.A[2] = -0.1358797613;\r\n this.A[3] = +0.063294409;\r\n this.A[4] = -0.02526853;\r\n this.A[5] = +0.0117879;\r\n this.A[6] = -0.0055161;\r\n this.A[7] = +0.0026906;\r\n this.A[8] = -0.001333;\r\n this.A[9] = +0.00067;\r\n this.A[10] = -0.00034;\r\n \r\n this.B_re = new Array(); this.B_im = new Array();\r\n this.B_re[1] = +0.7557853228; this.B_im[1] = 0.0;\r\n this.B_re[2] = +0.249204646; this.B_im[2] = +0.003371507;\r\n this.B_re[3] = -0.001541739; this.B_im[3] = +0.041058560;\r\n this.B_re[4] = -0.10162907; this.B_im[4] = +0.01727609;\r\n this.B_re[5] = -0.26623489; this.B_im[5] = -0.36249218;\r\n this.B_re[6] = -0.6870983; this.B_im[6] = -1.1651967;\r\n \r\n this.C_re = new Array(); this.C_im = new Array();\r\n this.C_re[1] = +1.3231270439; this.C_im[1] = 0.0;\r\n this.C_re[2] = -0.577245789; this.C_im[2] = -0.007809598;\r\n this.C_re[3] = +0.508307513; this.C_im[3] = -0.112208952;\r\n this.C_re[4] = -0.15094762; this.C_im[4] = +0.18200602;\r\n this.C_re[5] = +1.01418179; this.C_im[5] = +1.64497696;\r\n this.C_re[6] = +1.9660549; this.C_im[6] = +2.5127645;\r\n \r\n this.D = new Array();\r\n this.D[1] = +1.5627014243;\r\n this.D[2] = +0.5185406398;\r\n this.D[3] = -0.03333098;\r\n this.D[4] = -0.1052906;\r\n this.D[5] = -0.0368594;\r\n this.D[6] = +0.007317;\r\n this.D[7] = +0.01220;\r\n this.D[8] = +0.00394;\r\n this.D[9] = -0.0013;\r\n },\r\n \r\n /**\r\n New Zealand Map Grid Forward - long/lat to x/y\r\n long/lat in radians\r\n */\r\n forward : function(p) {\r\n var lon = p.x;\r\n var lat = p.y;\r\n \r\n var delta_lat = lat - this.lat0;\r\n var delta_lon = lon - this.long0;\r\n \r\n // 1. Calculate d_phi and d_psi ... // and d_lambda\r\n // For this algorithm, delta_latitude is in seconds of arc x 10-5, so we need to scale to those units. Longitude is radians.\r\n var d_phi = delta_lat / Proj4js.common.SEC_TO_RAD * 1E-5; var d_lambda = delta_lon;\r\n var d_phi_n = 1; // d_phi^0\r\n \r\n var d_psi = 0;\r\n for (var n = 1; n <= 10; n++) {\r\n d_phi_n = d_phi_n * d_phi;\r\n d_psi = d_psi + this.A[n] * d_phi_n;\r\n }\r\n \r\n // 2. Calculate theta\r\n var th_re = d_psi; var th_im = d_lambda;\r\n \r\n // 3. Calculate z\r\n var th_n_re = 1; var th_n_im = 0; // theta^0\r\n var th_n_re1; var th_n_im1;\r\n \r\n var z_re = 0; var z_im = 0;\r\n for (var n = 1; n <= 6; n++) {\r\n th_n_re1 = th_n_re*th_re - th_n_im*th_im; th_n_im1 = th_n_im*th_re + th_n_re*th_im;\r\n th_n_re = th_n_re1; th_n_im = th_n_im1;\r\n z_re = z_re + this.B_re[n]*th_n_re - this.B_im[n]*th_n_im; z_im = z_im + this.B_im[n]*th_n_re + this.B_re[n]*th_n_im;\r\n }\r\n \r\n // 4. Calculate easting and northing\r\n p.x = (z_im * this.a) + this.x0; \r\n p.y = (z_re * this.a) + this.y0;\r\n \r\n return p;\r\n },\r\n \r\n \r\n /**\r\n New Zealand Map Grid Inverse - x/y to long/lat\r\n */\r\n inverse : function(p) {\r\n \r\n var x = p.x;\r\n var y = p.y;\r\n \r\n var delta_x = x - this.x0;\r\n var delta_y = y - this.y0;\r\n \r\n // 1. Calculate z\r\n var z_re = delta_y / this.a; var z_im = delta_x / this.a;\r\n \r\n // 2a. Calculate theta - first approximation gives km accuracy\r\n var z_n_re = 1; var z_n_im = 0; // z^0\r\n var z_n_re1; var z_n_im1;\r\n \r\n var th_re = 0; var th_im = 0;\r\n for (var n = 1; n <= 6; n++) {\r\n z_n_re1 = z_n_re*z_re - z_n_im*z_im; z_n_im1 = z_n_im*z_re + z_n_re*z_im;\r\n z_n_re = z_n_re1; z_n_im = z_n_im1;\r\n th_re = th_re + this.C_re[n]*z_n_re - this.C_im[n]*z_n_im; th_im = th_im + this.C_im[n]*z_n_re + this.C_re[n]*z_n_im;\r\n }\r\n \r\n // 2b. Iterate to refine the accuracy of the calculation\r\n // 0 iterations gives km accuracy\r\n // 1 iteration gives m accuracy -- good enough for most mapping applications\r\n // 2 iterations bives mm accuracy\r\n for (var i = 0; i < this.iterations; i++) {\r\n var th_n_re = th_re; var th_n_im = th_im;\r\n var th_n_re1; var th_n_im1;\r\n \r\n var num_re = z_re; var num_im = z_im;\r\n for (var n = 2; n <= 6; n++) {\r\n th_n_re1 = th_n_re*th_re - th_n_im*th_im; th_n_im1 = th_n_im*th_re + th_n_re*th_im;\r\n th_n_re = th_n_re1; th_n_im = th_n_im1;\r\n num_re = num_re + (n-1)*(this.B_re[n]*th_n_re - this.B_im[n]*th_n_im); num_im = num_im + (n-1)*(this.B_im[n]*th_n_re + this.B_re[n]*th_n_im);\r\n }\r\n \r\n th_n_re = 1; th_n_im = 0;\r\n var den_re = this.B_re[1]; var den_im = this.B_im[1];\r\n for (var n = 2; n <= 6; n++) {\r\n th_n_re1 = th_n_re*th_re - th_n_im*th_im; th_n_im1 = th_n_im*th_re + th_n_re*th_im;\r\n th_n_re = th_n_re1; th_n_im = th_n_im1;\r\n den_re = den_re + n * (this.B_re[n]*th_n_re - this.B_im[n]*th_n_im); den_im = den_im + n * (this.B_im[n]*th_n_re + this.B_re[n]*th_n_im);\r\n }\r\n \r\n // Complex division\r\n var den2 = den_re*den_re + den_im*den_im;\r\n th_re = (num_re*den_re + num_im*den_im) / den2; th_im = (num_im*den_re - num_re*den_im) / den2;\r\n }\r\n \r\n // 3. Calculate d_phi ... // and d_lambda\r\n var d_psi = th_re; var d_lambda = th_im;\r\n var d_psi_n = 1; // d_psi^0\r\n \r\n var d_phi = 0;\r\n for (var n = 1; n <= 9; n++) {\r\n d_psi_n = d_psi_n * d_psi;\r\n d_phi = d_phi + this.D[n] * d_psi_n;\r\n }\r\n \r\n // 4. Calculate latitude and longitude\r\n // d_phi is calcuated in second of arc * 10^-5, so we need to scale back to radians. d_lambda is in radians.\r\n var lat = this.lat0 + (d_phi * Proj4js.common.SEC_TO_RAD * 1E5);\r\n var lon = this.long0 + d_lambda;\r\n \r\n p.x = lon;\r\n p.y = lat;\r\n \r\n return p;\r\n }\r\n };\r\n /* ======================================================================\r\n projCode/mill.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME MILLER CYLINDRICAL \r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Miller Cylindrical projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE \r\n ---------- ---- \r\n T. Mittan\t\tMarch, 1993\r\n \r\n This function was adapted from the Lambert Azimuthal Equal Area projection\r\n code (FORTRAN) in the General Cartographic Transformation Package software\r\n which is available from the U.S. Geological Survey National Mapping Division.\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\r\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\r\n \r\n 2. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 3. \"Software Documentation for GCTP General Cartographic Transformation\r\n Package\", U.S. Geological Survey National Mapping Division, May 1982.\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.mill = {\r\n \r\n /* Initialize the Miller Cylindrical projection\r\n -------------------------------------------*/\r\n init: function() {\r\n //no-op\r\n },\r\n \r\n \r\n /* Miller Cylindrical forward equations--mapping lat,long to x,y\r\n ------------------------------------------------------------*/\r\n forward: function(p) {\r\n var lon=p.x;\r\n var lat=p.y;\r\n /* Forward equations\r\n -----------------*/\r\n var dlon = Proj4js.common.adjust_lon(lon -this.long0);\r\n var x = this.x0 + this.a * dlon;\r\n var y = this.y0 + this.a * Math.log(Math.tan((Proj4js.common.PI / 4.0) + (lat / 2.5))) * 1.25;\r\n \r\n p.x=x;\r\n p.y=y;\r\n return p;\r\n },//millFwd()\r\n \r\n /* Miller Cylindrical inverse equations--mapping x,y to lat/long\r\n ------------------------------------------------------------*/\r\n inverse: function(p) {\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n \r\n var lon = Proj4js.common.adjust_lon(this.long0 + p.x /this.a);\r\n var lat = 2.5 * (Math.atan(Math.exp(0.8*p.y/this.a)) - Proj4js.common.PI / 4.0);\r\n \r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }//millInv()\r\n };\r\n /* ======================================================================\r\n projCode/gnom.js\r\n ====================================================================== */\r\n \r\n /*****************************************************************************\r\n NAME GNOMONIC\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Gnomonic Projection.\r\n Implementation based on the existing sterea and ortho\r\n implementations.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n Richard Marsden November 2009\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Flattening the Earth - Two Thousand Years of Map \r\n Projections\", University of Chicago Press 1993\r\n \r\n 2. Wolfram Mathworld \"Gnomonic Projection\"\r\n http://mathworld.wolfram.com/GnomonicProjection.html\r\n Accessed: 12th November 2009\r\n ******************************************************************************/\r\n \r\n Proj4js.Proj.gnom = {\r\n \r\n /* Initialize the Gnomonic projection\r\n -------------------------------------*/\r\n init: function(def) {\r\n \r\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\r\n this.sin_p14=Math.sin(this.lat0);\r\n this.cos_p14=Math.cos(this.lat0);\r\n // Approximation for projecting points to the horizon (infinity)\r\n this.infinity_dist = 1000 * this.a;\r\n this.rc = 1;\r\n },\r\n \r\n \r\n /* Gnomonic forward equations--mapping lat,long to x,y\r\n ---------------------------------------------------*/\r\n forward: function(p) {\r\n var sinphi, cosphi;\t/* sin and cos value\t\t\t\t*/\r\n var dlon;\t\t/* delta longitude value\t\t\t*/\r\n var coslon;\t\t/* cos of longitude\t\t\t\t*/\r\n var ksp;\t\t/* scale factor\t\t\t\t\t*/\r\n var g;\t\t\r\n var x, y;\r\n var lon=p.x;\r\n var lat=p.y;\t\r\n /* Forward equations\r\n -----------------*/\r\n dlon = Proj4js.common.adjust_lon(lon - this.long0);\r\n \r\n sinphi=Math.sin(lat);\r\n cosphi=Math.cos(lat);\t\r\n \r\n coslon = Math.cos(dlon);\r\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\r\n ksp = 1.0;\r\n if ((g > 0) || (Math.abs(g) <= Proj4js.common.EPSLN)) {\r\n x = this.x0 + this.a * ksp * cosphi * Math.sin(dlon) / g;\r\n y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon) / g;\r\n } else {\r\n Proj4js.reportError(\"orthoFwdPointError\");\r\n \r\n // Point is in the opposing hemisphere and is unprojectable\r\n // We still need to return a reasonable point, so we project \r\n // to infinity, on a bearing \r\n // equivalent to the northern hemisphere equivalent\r\n // This is a reasonable approximation for short shapes and lines that \r\n // straddle the horizon.\r\n \r\n x = this.x0 + this.infinity_dist * cosphi * Math.sin(dlon);\r\n y = this.y0 + this.infinity_dist * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\r\n \r\n }\r\n p.x=x;\r\n p.y=y;\r\n return p;\r\n },\r\n \r\n \r\n inverse: function(p) {\r\n var rh;\t\t/* Rho */\r\n var z;\t\t/* angle */\r\n var sinc, cosc;\r\n var c;\r\n var lon , lat;\r\n \r\n /* Inverse equations\r\n -----------------*/\r\n p.x = (p.x - this.x0) / this.a;\r\n p.y = (p.y - this.y0) / this.a;\r\n \r\n p.x /= this.k0;\r\n p.y /= this.k0;\r\n \r\n if ( (rh = Math.sqrt(p.x * p.x + p.y * p.y)) ) {\r\n c = Math.atan2(rh, this.rc);\r\n sinc = Math.sin(c);\r\n cosc = Math.cos(c);\r\n \r\n lat = Proj4js.common.asinz(cosc*this.sin_p14 + (p.y*sinc*this.cos_p14) / rh);\r\n lon = Math.atan2(p.x*sinc, rh*this.cos_p14*cosc - p.y*this.sin_p14*sinc);\r\n lon = Proj4js.common.adjust_lon(this.long0+lon);\r\n } else {\r\n lat = this.phic0;\r\n lon = 0.0;\r\n }\r\n \r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }\r\n };\r\n \r\n \r\n /* ======================================================================\r\n projCode/sinu.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME \t\tSINUSOIDAL\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Sinusoidal projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE \r\n ---------- ---- \r\n D. Steinwand, EROS May, 1991 \r\n \r\n This function was adapted from the Sinusoidal projection code (FORTRAN) in the \r\n General Cartographic Transformation Package software which is available from \r\n the U.S. Geological Survey National Mapping Division.\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. \"Software Documentation for GCTP General Cartographic Transformation\r\n Package\", U.S. Geological Survey National Mapping Division, May 1982.\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.sinu = {\r\n \r\n /* Initialize the Sinusoidal projection\r\n ------------------------------------*/\r\n init: function() {\r\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\r\n \r\n \r\n if (!this.sphere) {\r\n this.en = Proj4js.common.pj_enfn(this.es);\r\n } else {\r\n this.n = 1.;\r\n this.m = 0.;\r\n this.es = 0;\r\n this.C_y = Math.sqrt((this.m + 1.) / this.n);\r\n this.C_x = this.C_y/(this.m + 1.);\r\n }\r\n \r\n },\r\n \r\n /* Sinusoidal forward equations--mapping lat,long to x,y\r\n -----------------------------------------------------*/\r\n forward: function(p) {\r\n var x,y,delta_lon;\t\r\n var lon=p.x;\r\n var lat=p.y;\t\r\n /* Forward equations\r\n -----------------*/\r\n lon = Proj4js.common.adjust_lon(lon - this.long0);\r\n \r\n if (this.sphere) {\r\n if (!this.m) {\r\n lat = this.n != 1. ? Math.asin(this.n * Math.sin(lat)): lat;\r\n } else {\r\n var k = this.n * Math.sin(lat);\r\n for (var i = Proj4js.common.MAX_ITER; i ; --i) {\r\n var V = (this.m * lat + Math.sin(lat) - k) / (this.m + Math.cos(lat));\r\n lat -= V;\r\n if (Math.abs(V) < Proj4js.common.EPSLN) break;\r\n }\r\n }\r\n x = this.a * this.C_x * lon * (this.m + Math.cos(lat));\r\n y = this.a * this.C_y * lat;\r\n \r\n } else {\r\n \r\n var s = Math.sin(lat);\r\n var c = Math.cos(lat);\r\n y = this.a * Proj4js.common.pj_mlfn(lat, s, c, this.en);\r\n x = this.a * lon * c / Math.sqrt(1. - this.es * s * s);\r\n }\r\n \r\n p.x=x;\r\n p.y=y;\t\r\n return p;\r\n },\r\n \r\n inverse: function(p) {\r\n var lat,temp,lon;\t\r\n \r\n /* Inverse equations\r\n -----------------*/\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n lat = p.y / this.a;\r\n \r\n if (this.sphere) {\r\n \r\n p.y /= this.C_y;\r\n lat = this.m ? Math.asin((this.m * p.y + Math.sin(p.y)) / this.n) :\r\n ( this.n != 1. ? Math.asin(Math.sin(p.y) / this.n) : p.y );\r\n lon = p.x / (this.C_x * (this.m + Math.cos(p.y)));\r\n \r\n } else {\r\n lat = Proj4js.common.pj_inv_mlfn(p.y/this.a, this.es, this.en)\r\n var s = Math.abs(lat);\r\n if (s < Proj4js.common.HALF_PI) {\r\n s = Math.sin(lat);\r\n temp = this.long0 + p.x * Math.sqrt(1. - this.es * s * s) /(this.a * Math.cos(lat));\r\n //temp = this.long0 + p.x / (this.a * Math.cos(lat));\r\n lon = Proj4js.common.adjust_lon(temp);\r\n } else if ((s - Proj4js.common.EPSLN) < Proj4js.common.HALF_PI) {\r\n lon = this.long0;\r\n }\r\n \r\n }\r\n \r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }\r\n };\r\n \r\n \r\n /* ======================================================================\r\n projCode/vandg.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME VAN DER GRINTEN \r\n \r\n PURPOSE:\tTransforms input Easting and Northing to longitude and\r\n latitude for the Van der Grinten projection. The\r\n Easting and Northing must be in meters. The longitude\r\n and latitude values will be returned in radians.\r\n \r\n PROGRAMMER DATE \r\n ---------- ---- \r\n T. Mittan\t\tMarch, 1993\r\n \r\n This function was adapted from the Van Der Grinten projection code\r\n (FORTRAN) in the General Cartographic Transformation Package software\r\n which is available from the U.S. Geological Survey National Mapping Division.\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\r\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\r\n \r\n 2. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 3. \"Software Documentation for GCTP General Cartographic Transformation\r\n Package\", U.S. Geological Survey National Mapping Division, May 1982.\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.vandg = {\r\n \r\n /* Initialize the Van Der Grinten projection\r\n ----------------------------------------*/\r\n init: function() {\r\n this.R = 6370997.0; //Radius of earth\r\n },\r\n \r\n forward: function(p) {\r\n \r\n var lon=p.x;\r\n var lat=p.y;\t\r\n \r\n /* Forward equations\r\n -----------------*/\r\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\r\n var x,y;\r\n \r\n if (Math.abs(lat) <= Proj4js.common.EPSLN) {\r\n x = this.x0 + this.R * dlon;\r\n y = this.y0;\r\n }\r\n var theta = Proj4js.common.asinz(2.0 * Math.abs(lat / Proj4js.common.PI));\r\n if ((Math.abs(dlon) <= Proj4js.common.EPSLN) || (Math.abs(Math.abs(lat) - Proj4js.common.HALF_PI) <= Proj4js.common.EPSLN)) {\r\n x = this.x0;\r\n if (lat >= 0) {\r\n y = this.y0 + Proj4js.common.PI * this.R * Math.tan(.5 * theta);\r\n } else {\r\n y = this.y0 + Proj4js.common.PI * this.R * - Math.tan(.5 * theta);\r\n }\r\n // return(OK);\r\n }\r\n var al = .5 * Math.abs((Proj4js.common.PI / dlon) - (dlon / Proj4js.common.PI));\r\n var asq = al * al;\r\n var sinth = Math.sin(theta);\r\n var costh = Math.cos(theta);\r\n \r\n var g = costh / (sinth + costh - 1.0);\r\n var gsq = g * g;\r\n var m = g * (2.0 / sinth - 1.0);\r\n var msq = m * m;\r\n var con = Proj4js.common.PI * this.R * (al * (g - msq) + Math.sqrt(asq * (g - msq) * (g - msq) - (msq + asq) * (gsq - msq))) / (msq + asq);\r\n if (dlon < 0) {\r\n con = -con;\r\n }\r\n x = this.x0 + con;\r\n con = Math.abs(con / (Proj4js.common.PI * this.R));\r\n if (lat >= 0) {\r\n y = this.y0 + Proj4js.common.PI * this.R * Math.sqrt(1.0 - con * con - 2.0 * al * con);\r\n } else {\r\n y = this.y0 - Proj4js.common.PI * this.R * Math.sqrt(1.0 - con * con - 2.0 * al * con);\r\n }\r\n p.x = x;\r\n p.y = y;\r\n return p;\r\n },\r\n \r\n /* Van Der Grinten inverse equations--mapping x,y to lat/long\r\n ---------------------------------------------------------*/\r\n inverse: function(p) {\r\n var lon, lat;\r\n var xx,yy,xys,c1,c2,c3;\r\n var al,asq;\r\n var a1;\r\n var m1;\r\n var con;\r\n var th1;\r\n var d;\r\n \r\n /* inverse equations\r\n -----------------*/\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n con = Proj4js.common.PI * this.R;\r\n xx = p.x / con;\r\n yy =p.y / con;\r\n xys = xx * xx + yy * yy;\r\n c1 = -Math.abs(yy) * (1.0 + xys);\r\n c2 = c1 - 2.0 * yy * yy + xx * xx;\r\n c3 = -2.0 * c1 + 1.0 + 2.0 * yy * yy + xys * xys;\r\n d = yy * yy / c3 + (2.0 * c2 * c2 * c2 / c3 / c3 / c3 - 9.0 * c1 * c2 / c3 /c3) / 27.0;\r\n a1 = (c1 - c2 * c2 / 3.0 / c3) / c3;\r\n m1 = 2.0 * Math.sqrt( -a1 / 3.0);\r\n con = ((3.0 * d) / a1) / m1;\r\n if (Math.abs(con) > 1.0) {\r\n if (con >= 0.0) {\r\n con = 1.0;\r\n } else {\r\n con = -1.0;\r\n }\r\n }\r\n th1 = Math.acos(con) / 3.0;\r\n if (p.y >= 0) {\r\n lat = (-m1 *Math.cos(th1 + Proj4js.common.PI / 3.0) - c2 / 3.0 / c3) * Proj4js.common.PI;\r\n } else {\r\n lat = -(-m1 * Math.cos(th1 + Proj4js.common.PI / 3.0) - c2 / 3.0 / c3) * Proj4js.common.PI;\r\n }\r\n \r\n if (Math.abs(xx) < Proj4js.common.EPSLN) {\r\n lon = this.long0;\r\n }\r\n lon = Proj4js.common.adjust_lon(this.long0 + Proj4js.common.PI * (xys - 1.0 + Math.sqrt(1.0 + 2.0 * (xx * xx - yy * yy) + xys * xys)) / 2.0 / xx);\r\n \r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }\r\n };\r\n /* ======================================================================\r\n projCode/cea.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME LAMBERT CYLINDRICAL EQUAL AREA\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Lambert Cylindrical Equal Area projection.\r\n This class of projection includes the Behrmann and \r\n Gall-Peters Projections. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE \r\n ---------- ----\r\n R. Marsden August 2009\r\n Winwaed Software Tech LLC, http://www.winwaed.com\r\n \r\n This function was adapted from the Miller Cylindrical Projection in the Proj4JS\r\n library.\r\n \r\n Note: This implementation assumes a Spherical Earth. The (commented) code \r\n has been included for the ellipsoidal forward transform, but derivation of \r\n the ellispoidal inverse transform is beyond me. Note that most of the \r\n Proj4JS implementations do NOT currently support ellipsoidal figures. \r\n Therefore this is not seen as a problem - especially this lack of support \r\n is explicitly stated here.\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. \"Cartographic Projection Procedures for the UNIX Environment - \r\n A User's Manual\" by Gerald I. Evenden, USGS Open File Report 90-284\r\n and Release 4 Interim Reports (2003)\r\n \r\n 2. Snyder, John P., \"Flattening the Earth - Two Thousand Years of Map \r\n Projections\", Univ. Chicago Press, 1993\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.cea = {\r\n \r\n /* Initialize the Cylindrical Equal Area projection\r\n -------------------------------------------*/\r\n init: function() {\r\n //no-op\r\n },\r\n \r\n \r\n /* Cylindrical Equal Area forward equations--mapping lat,long to x,y\r\n ------------------------------------------------------------*/\r\n forward: function(p) {\r\n var lon=p.x;\r\n var lat=p.y;\r\n /* Forward equations\r\n -----------------*/\r\n var dlon = Proj4js.common.adjust_lon(lon -this.long0);\r\n var x = this.x0 + this.a * dlon * Math.cos(this.lat_ts);\r\n var y = this.y0 + this.a * Math.sin(lat) / Math.cos(this.lat_ts);\r\n /* Elliptical Forward Transform\r\n Not implemented due to a lack of a matchign inverse function\r\n {\r\n var Sin_Lat = Math.sin(lat);\r\n var Rn = this.a * (Math.sqrt(1.0e0 - this.es * Sin_Lat * Sin_Lat ));\r\n x = this.x0 + this.a * dlon * Math.cos(this.lat_ts);\r\n y = this.y0 + Rn * Math.sin(lat) / Math.cos(this.lat_ts);\r\n }\r\n */\r\n \r\n \r\n p.x=x;\r\n p.y=y;\r\n return p;\r\n },//ceaFwd()\r\n \r\n /* Cylindrical Equal Area inverse equations--mapping x,y to lat/long\r\n ------------------------------------------------------------*/\r\n inverse: function(p) {\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n \r\n var lon = Proj4js.common.adjust_lon( this.long0 + (p.x / this.a) / Math.cos(this.lat_ts) );\r\n \r\n var lat = Math.asin( (p.y/this.a) * Math.cos(this.lat_ts) );\r\n \r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }//ceaInv()\r\n };\r\n /* ======================================================================\r\n projCode/eqc.js\r\n ====================================================================== */\r\n \r\n /* similar to equi.js FIXME proj4 uses eqc */\r\n Proj4js.Proj.eqc = {\r\n init : function() {\r\n \r\n if(!this.x0) this.x0=0;\r\n if(!this.y0) this.y0=0;\r\n if(!this.lat0) this.lat0=0;\r\n if(!this.long0) this.long0=0;\r\n if(!this.lat_ts) this.lat_ts=0;\r\n if (!this.title) this.title = \"Equidistant Cylindrical (Plate Carre)\";\r\n \r\n this.rc= Math.cos(this.lat_ts);\r\n },\r\n \r\n \r\n // forward equations--mapping lat,long to x,y\r\n // -----------------------------------------------------------------\r\n forward : function(p) {\r\n \r\n var lon= p.x;\r\n var lat= p.y;\r\n \r\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\r\n var dlat = Proj4js.common.adjust_lat(lat - this.lat0 );\r\n p.x= this.x0 + (this.a*dlon*this.rc);\r\n p.y= this.y0 + (this.a*dlat );\r\n return p;\r\n },\r\n \r\n // inverse equations--mapping x,y to lat/long\r\n // -----------------------------------------------------------------\r\n inverse : function(p) {\r\n \r\n var x= p.x;\r\n var y= p.y;\r\n \r\n p.x= Proj4js.common.adjust_lon(this.long0 + ((x - this.x0)/(this.a*this.rc)));\r\n p.y= Proj4js.common.adjust_lat(this.lat0 + ((y - this.y0)/(this.a )));\r\n return p;\r\n }\r\n \r\n };\r\n /* ======================================================================\r\n projCode/cass.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME CASSINI\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Cassini projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n Ported from PROJ.4.\r\n \r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n *******************************************************************************/\r\n \r\n \r\n //Proj4js.defs[\"EPSG:28191\"] = \"+proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs\";\r\n \r\n // Initialize the Cassini projection\r\n // -----------------------------------------------------------------\r\n \r\n Proj4js.Proj.cass = {\r\n init : function() {\r\n if (!this.sphere) {\r\n this.en = Proj4js.common.pj_enfn(this.es)\r\n this.m0 = Proj4js.common.pj_mlfn(this.lat0, Math.sin(this.lat0), Math.cos(this.lat0), this.en);\r\n }\r\n },\r\n \r\n C1:\t.16666666666666666666,\r\n C2:\t.00833333333333333333,\r\n C3:\t.04166666666666666666,\r\n C4:\t.33333333333333333333,\r\n C5:\t.06666666666666666666,\r\n \r\n \r\n /* Cassini forward equations--mapping lat,long to x,y\r\n -----------------------------------------------------------------------*/\r\n forward: function(p) {\r\n \r\n /* Forward equations\r\n -----------------*/\r\n var x,y;\r\n var lam=p.x;\r\n var phi=p.y;\r\n lam = Proj4js.common.adjust_lon(lam - this.long0);\r\n \r\n if (this.sphere) {\r\n x = Math.asin(Math.cos(phi) * Math.sin(lam));\r\n y = Math.atan2(Math.tan(phi) , Math.cos(lam)) - this.phi0;\r\n } else {\r\n //ellipsoid\r\n this.n = Math.sin(phi);\r\n this.c = Math.cos(phi);\r\n y = Proj4js.common.pj_mlfn(phi, this.n, this.c, this.en);\r\n this.n = 1./Math.sqrt(1. - this.es * this.n * this.n);\r\n this.tn = Math.tan(phi); \r\n this.t = this.tn * this.tn;\r\n this.a1 = lam * this.c;\r\n this.c *= this.es * this.c / (1 - this.es);\r\n this.a2 = this.a1 * this.a1;\r\n x = this.n * this.a1 * (1. - this.a2 * this.t * (this.C1 - (8. - this.t + 8. * this.c) * this.a2 * this.C2));\r\n y -= this.m0 - this.n * this.tn * this.a2 * (.5 + (5. - this.t + 6. * this.c) * this.a2 * this.C3);\r\n }\r\n \r\n p.x = this.a*x + this.x0;\r\n p.y = this.a*y + this.y0;\r\n return p;\r\n },//cassFwd()\r\n \r\n /* Inverse equations\r\n -----------------*/\r\n inverse: function(p) {\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n var x = p.x/this.a;\r\n var y = p.y/this.a;\r\n var phi, lam;\r\n \r\n if (this.sphere) {\r\n this.dd = y + this.lat0;\r\n phi = Math.asin(Math.sin(this.dd) * Math.cos(x));\r\n lam = Math.atan2(Math.tan(x), Math.cos(this.dd));\r\n } else {\r\n /* ellipsoid */\r\n var ph1 = Proj4js.common.pj_inv_mlfn(this.m0 + y, this.es, this.en);\r\n this.tn = Math.tan(ph1); \r\n this.t = this.tn * this.tn;\r\n this.n = Math.sin(ph1);\r\n this.r = 1. / (1. - this.es * this.n * this.n);\r\n this.n = Math.sqrt(this.r);\r\n this.r *= (1. - this.es) * this.n;\r\n this.dd = x / this.n;\r\n this.d2 = this.dd * this.dd;\r\n phi = ph1 - (this.n * this.tn / this.r) * this.d2 * (.5 - (1. + 3. * this.t) * this.d2 * this.C3);\r\n lam = this.dd * (1. + this.t * this.d2 * (-this.C4 + (1. + 3. * this.t) * this.d2 * this.C5)) / Math.cos(ph1);\r\n }\r\n p.x = Proj4js.common.adjust_lon(this.long0+lam);\r\n p.y = phi;\r\n return p;\r\n }//cassInv()\r\n \r\n }\r\n /* ======================================================================\r\n projCode/gauss.js\r\n ====================================================================== */\r\n \r\n \r\n Proj4js.Proj.gauss = {\r\n \r\n init : function() {\r\n var sphi = Math.sin(this.lat0);\r\n var cphi = Math.cos(this.lat0); \r\n cphi *= cphi;\r\n this.rc = Math.sqrt(1.0 - this.es) / (1.0 - this.es * sphi * sphi);\r\n this.C = Math.sqrt(1.0 + this.es * cphi * cphi / (1.0 - this.es));\r\n this.phic0 = Math.asin(sphi / this.C);\r\n this.ratexp = 0.5 * this.C * this.e;\r\n this.K = Math.tan(0.5 * this.phic0 + Proj4js.common.FORTPI) / (Math.pow(Math.tan(0.5*this.lat0 + Proj4js.common.FORTPI), this.C) * Proj4js.common.srat(this.e*sphi, this.ratexp));\r\n },\r\n \r\n forward : function(p) {\r\n var lon = p.x;\r\n var lat = p.y;\r\n \r\n p.y = 2.0 * Math.atan( this.K * Math.pow(Math.tan(0.5 * lat + Proj4js.common.FORTPI), this.C) * Proj4js.common.srat(this.e * Math.sin(lat), this.ratexp) ) - Proj4js.common.HALF_PI;\r\n p.x = this.C * lon;\r\n return p;\r\n },\r\n \r\n inverse : function(p) {\r\n var DEL_TOL = 1e-14;\r\n var lon = p.x / this.C;\r\n var lat = p.y;\r\n var num = Math.pow(Math.tan(0.5 * lat + Proj4js.common.FORTPI)/this.K, 1./this.C);\r\n for (var i = Proj4js.common.MAX_ITER; i>0; --i) {\r\n lat = 2.0 * Math.atan(num * Proj4js.common.srat(this.e * Math.sin(p.y), -0.5 * this.e)) - Proj4js.common.HALF_PI;\r\n if (Math.abs(lat - p.y) < DEL_TOL) break;\r\n p.y = lat;\r\n }\t\r\n /* convergence failed */\r\n if (!i) {\r\n Proj4js.reportError(\"gauss:inverse:convergence failed\");\r\n return null;\r\n }\r\n p.x = lon;\r\n p.y = lat;\r\n return p;\r\n }\r\n };\r\n \r\n /* ======================================================================\r\n projCode/omerc.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME OBLIQUE MERCATOR (HOTINE) \r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Oblique Mercator projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n T. Mittan\t\tMar, 1993\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.omerc = {\r\n \r\n /* Initialize the Oblique Mercator projection\r\n ------------------------------------------*/\r\n init: function() {\r\n if (!this.mode) this.mode=0;\r\n if (!this.lon1) {this.lon1=0;this.mode=1;}\r\n if (!this.lon2) this.lon2=0;\r\n if (!this.lat2) this.lat2=0;\r\n \r\n /* Place parameters in static storage for common use\r\n -------------------------------------------------*/\r\n var temp = this.b/ this.a;\r\n var es = 1.0 - Math.pow(temp,2);\r\n var e = Math.sqrt(es);\r\n \r\n this.sin_p20=Math.sin(this.lat0);\r\n this.cos_p20=Math.cos(this.lat0);\r\n \r\n this.con = 1.0 - this.es * this.sin_p20 * this.sin_p20;\r\n this.com = Math.sqrt(1.0 - es);\r\n this.bl = Math.sqrt(1.0 + this.es * Math.pow(this.cos_p20,4.0)/(1.0 - es));\r\n this.al = this.a * this.bl * this.k0 * this.com / this.con;\r\n if (Math.abs(this.lat0) < Proj4js.common.EPSLN) {\r\n this.ts = 1.0;\r\n this.d = 1.0;\r\n this.el = 1.0;\r\n } else {\r\n this.ts = Proj4js.common.tsfnz(this.e,this.lat0,this.sin_p20);\r\n this.con = Math.sqrt(this.con);\r\n this.d = this.bl * this.com / (this.cos_p20 * this.con);\r\n if ((this.d * this.d - 1.0) > 0.0) {\r\n if (this.lat0 >= 0.0) {\r\n this.f = this.d + Math.sqrt(this.d * this.d - 1.0);\r\n } else {\r\n this.f = this.d - Math.sqrt(this.d * this.d - 1.0);\r\n }\r\n } else {\r\n this.f = this.d;\r\n }\r\n this.el = this.f * Math.pow(this.ts,this.bl);\r\n }\r\n \r\n //this.longc=52.60353916666667;\r\n \r\n if (this.mode != 0) {\r\n this.g = .5 * (this.f - 1.0/this.f);\r\n this.gama = Proj4js.common.asinz(Math.sin(this.alpha) / this.d);\r\n this.longc= this.longc - Proj4js.common.asinz(this.g * Math.tan(this.gama))/this.bl;\r\n \r\n /* Report parameters common to format B\r\n -------------------------------------*/\r\n //genrpt(azimuth * R2D,\"Azimuth of Central Line: \");\r\n //cenlon(lon_origin);\r\n // cenlat(lat_origin);\r\n \r\n this.con = Math.abs(this.lat0);\r\n if ((this.con > Proj4js.common.EPSLN) && (Math.abs(this.con - Proj4js.common.HALF_PI) > Proj4js.common.EPSLN)) {\r\n this.singam=Math.sin(this.gama);\r\n this.cosgam=Math.cos(this.gama);\r\n \r\n this.sinaz=Math.sin(this.alpha);\r\n this.cosaz=Math.cos(this.alpha);\r\n \r\n if (this.lat0>= 0) {\r\n this.u = (this.al / this.bl) * Math.atan(Math.sqrt(this.d*this.d - 1.0)/this.cosaz);\r\n } else {\r\n this.u = -(this.al / this.bl) *Math.atan(Math.sqrt(this.d*this.d - 1.0)/this.cosaz);\r\n }\r\n } else {\r\n Proj4js.reportError(\"omerc:Init:DataError\");\r\n }\r\n } else {\r\n this.sinphi =Math. sin(this.at1);\r\n this.ts1 = Proj4js.common.tsfnz(this.e,this.lat1,this.sinphi);\r\n this.sinphi = Math.sin(this.lat2);\r\n this.ts2 = Proj4js.common.tsfnz(this.e,this.lat2,this.sinphi);\r\n this.h = Math.pow(this.ts1,this.bl);\r\n this.l = Math.pow(this.ts2,this.bl);\r\n this.f = this.el/this.h;\r\n this.g = .5 * (this.f - 1.0/this.f);\r\n this.j = (this.el * this.el - this.l * this.h)/(this.el * this.el + this.l * this.h);\r\n this.p = (this.l - this.h) / (this.l + this.h);\r\n this.dlon = this.lon1 - this.lon2;\r\n if (this.dlon < -Proj4js.common.PI) this.lon2 = this.lon2 - 2.0 * Proj4js.common.PI;\r\n if (this.dlon > Proj4js.common.PI) this.lon2 = this.lon2 + 2.0 * Proj4js.common.PI;\r\n this.dlon = this.lon1 - this.lon2;\r\n this.longc = .5 * (this.lon1 + this.lon2) -Math.atan(this.j * Math.tan(.5 * this.bl * this.dlon)/this.p)/this.bl;\r\n this.dlon = Proj4js.common.adjust_lon(this.lon1 - this.longc);\r\n this.gama = Math.atan(Math.sin(this.bl * this.dlon)/this.g);\r\n this.alpha = Proj4js.common.asinz(this.d * Math.sin(this.gama));\r\n \r\n /* Report parameters common to format A\r\n -------------------------------------*/\r\n \r\n if (Math.abs(this.lat1 - this.lat2) <= Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"omercInitDataError\");\r\n //return(202);\r\n } else {\r\n this.con = Math.abs(this.lat1);\r\n }\r\n if ((this.con <= Proj4js.common.EPSLN) || (Math.abs(this.con - Proj4js.common.HALF_PI) <= Proj4js.common.EPSLN)) {\r\n Proj4js.reportError(\"omercInitDataError\");\r\n //return(202);\r\n } else {\r\n if (Math.abs(Math.abs(this.lat0) - Proj4js.common.HALF_PI) <= Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"omercInitDataError\");\r\n //return(202);\r\n }\r\n }\r\n \r\n this.singam=Math.sin(this.gam);\r\n this.cosgam=Math.cos(this.gam);\r\n \r\n this.sinaz=Math.sin(this.alpha);\r\n this.cosaz=Math.cos(this.alpha); \r\n \r\n \r\n if (this.lat0 >= 0) {\r\n this.u = (this.al/this.bl) * Math.atan(Math.sqrt(this.d * this.d - 1.0)/this.cosaz);\r\n } else {\r\n this.u = -(this.al/this.bl) * Math.atan(Math.sqrt(this.d * this.d - 1.0)/this.cosaz);\r\n }\r\n }\r\n },\r\n \r\n \r\n /* Oblique Mercator forward equations--mapping lat,long to x,y\r\n ----------------------------------------------------------*/\r\n forward: function(p) {\r\n var theta;\t\t/* angle\t\t\t\t\t*/\r\n var sin_phi, cos_phi;/* sin and cos value\t\t\t\t*/\r\n var b;\t\t/* temporary values\t\t\t\t*/\r\n var c, t, tq;\t/* temporary values\t\t\t\t*/\r\n var con, n, ml;\t/* cone constant, small m\t\t\t*/\r\n var q,us,vl;\r\n var ul,vs;\r\n var s;\r\n var dlon;\r\n var ts1;\r\n \r\n var lon=p.x;\r\n var lat=p.y;\r\n /* Forward equations\r\n -----------------*/\r\n sin_phi = Math.sin(lat);\r\n dlon = Proj4js.common.adjust_lon(lon - this.longc);\r\n vl = Math.sin(this.bl * dlon);\r\n if (Math.abs(Math.abs(lat) - Proj4js.common.HALF_PI) > Proj4js.common.EPSLN) {\r\n ts1 = Proj4js.common.tsfnz(this.e,lat,sin_phi);\r\n q = this.el / (Math.pow(ts1,this.bl));\r\n s = .5 * (q - 1.0 / q);\r\n t = .5 * (q + 1.0/ q);\r\n ul = (s * this.singam - vl * this.cosgam) / t;\r\n con = Math.cos(this.bl * dlon);\r\n if (Math.abs(con) < .0000001) {\r\n us = this.al * this.bl * dlon;\r\n } else {\r\n us = this.al * Math.atan((s * this.cosgam + vl * this.singam) / con)/this.bl;\r\n if (con < 0) us = us + Proj4js.common.PI * this.al / this.bl;\r\n }\r\n } else {\r\n if (lat >= 0) {\r\n ul = this.singam;\r\n } else {\r\n ul = -this.singam;\r\n }\r\n us = this.al * lat / this.bl;\r\n }\r\n if (Math.abs(Math.abs(ul) - 1.0) <= Proj4js.common.EPSLN) {\r\n //alert(\"Point projects into infinity\",\"omer-for\");\r\n Proj4js.reportError(\"omercFwdInfinity\");\r\n //return(205);\r\n }\r\n vs = .5 * this.al * Math.log((1.0 - ul)/(1.0 + ul)) / this.bl;\r\n us = us - this.u;\r\n var x = this.x0 + vs * this.cosaz + us * this.sinaz;\r\n var y = this.y0 + us * this.cosaz - vs * this.sinaz;\r\n \r\n p.x=x;\r\n p.y=y;\r\n return p;\r\n },\r\n \r\n inverse: function(p) {\r\n var delta_lon;\t/* Delta longitude (Given longitude - center \t*/\r\n var theta;\t\t/* angle\t\t\t\t\t*/\r\n var delta_theta;\t/* adjusted longitude\t\t\t\t*/\r\n var sin_phi, cos_phi;/* sin and cos value\t\t\t\t*/\r\n var b;\t\t/* temporary values\t\t\t\t*/\r\n var c, t, tq;\t/* temporary values\t\t\t\t*/\r\n var con, n, ml;\t/* cone constant, small m\t\t\t*/\r\n var vs,us,q,s,ts1;\r\n var vl,ul,bs;\r\n var lon, lat;\r\n var flag;\r\n \r\n /* Inverse equations\r\n -----------------*/\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n flag = 0;\r\n vs = p.x * this.cosaz - p.y * this.sinaz;\r\n us = p.y * this.cosaz + p.x * this.sinaz;\r\n us = us + this.u;\r\n q = Math.exp(-this.bl * vs / this.al);\r\n s = .5 * (q - 1.0/q);\r\n t = .5 * (q + 1.0/q);\r\n vl = Math.sin(this.bl * us / this.al);\r\n ul = (vl * this.cosgam + s * this.singam)/t;\r\n if (Math.abs(Math.abs(ul) - 1.0) <= Proj4js.common.EPSLN)\r\n {\r\n lon = this.longc;\r\n if (ul >= 0.0) {\r\n lat = Proj4js.common.HALF_PI;\r\n } else {\r\n lat = -Proj4js.common.HALF_PI;\r\n }\r\n } else {\r\n con = 1.0 / this.bl;\r\n ts1 =Math.pow((this.el / Math.sqrt((1.0 + ul) / (1.0 - ul))),con);\r\n lat = Proj4js.common.phi2z(this.e,ts1);\r\n //if (flag != 0)\r\n //return(flag);\r\n //~ con = Math.cos(this.bl * us /al);\r\n theta = this.longc - Math.atan2((s * this.cosgam - vl * this.singam) , con)/this.bl;\r\n lon = Proj4js.common.adjust_lon(theta);\r\n }\r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }\r\n };\r\n /* ======================================================================\r\n projCode/lcc.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME LAMBERT CONFORMAL CONIC\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Lambert Conformal Conic projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 2. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n *******************************************************************************/\r\n \r\n \r\n //<2104> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x0=-17044 +x0=-23139.97 +ellps=intl +units=m +no_defs no_defs\r\n \r\n // Initialize the Lambert Conformal conic projection\r\n // -----------------------------------------------------------------\r\n \r\n //Proj4js.Proj.lcc = Class.create();\r\n Proj4js.Proj.lcc = {\r\n init : function() {\r\n \r\n // array of: r_maj,r_min,lat1,lat2,c_lon,c_lat,false_east,false_north\r\n //double c_lat; /* center latitude */\r\n //double c_lon; /* center longitude */\r\n //double lat1; /* first standard parallel */\r\n //double lat2; /* second standard parallel */\r\n //double r_maj; /* major axis */\r\n //double r_min; /* minor axis */\r\n //double false_east; /* x offset in meters */\r\n //double false_north; /* y offset in meters */\r\n \r\n if (!this.lat2){this.lat2=this.lat0;}//if lat2 is not defined\r\n if (!this.k0) this.k0 = 1.0;\r\n \r\n // Standard Parallels cannot be equal and on opposite sides of the equator\r\n if (Math.abs(this.lat1+this.lat2) < Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"lcc:init: Equal Latitudes\");\r\n return;\r\n }\r\n \r\n var temp = this.b / this.a;\r\n this.e = Math.sqrt(1.0 - temp*temp);\r\n \r\n var sin1 = Math.sin(this.lat1);\r\n var cos1 = Math.cos(this.lat1);\r\n var ms1 = Proj4js.common.msfnz(this.e, sin1, cos1);\r\n var ts1 = Proj4js.common.tsfnz(this.e, this.lat1, sin1);\r\n \r\n var sin2 = Math.sin(this.lat2);\r\n var cos2 = Math.cos(this.lat2);\r\n var ms2 = Proj4js.common.msfnz(this.e, sin2, cos2);\r\n var ts2 = Proj4js.common.tsfnz(this.e, this.lat2, sin2);\r\n \r\n var ts0 = Proj4js.common.tsfnz(this.e, this.lat0, Math.sin(this.lat0));\r\n \r\n if (Math.abs(this.lat1 - this.lat2) > Proj4js.common.EPSLN) {\r\n this.ns = Math.log(ms1/ms2)/Math.log(ts1/ts2);\r\n } else {\r\n this.ns = sin1;\r\n }\r\n this.f0 = ms1 / (this.ns * Math.pow(ts1, this.ns));\r\n this.rh = this.a * this.f0 * Math.pow(ts0, this.ns);\r\n if (!this.title) this.title = \"Lambert Conformal Conic\";\r\n },\r\n \r\n \r\n // Lambert Conformal conic forward equations--mapping lat,long to x,y\r\n // -----------------------------------------------------------------\r\n forward : function(p) {\r\n \r\n var lon = p.x;\r\n var lat = p.y;\r\n \r\n // convert to radians\r\n if ( lat <= 90.0 && lat >= -90.0 && lon <= 180.0 && lon >= -180.0) {\r\n //lon = lon * Proj4js.common.D2R;\r\n //lat = lat * Proj4js.common.D2R;\r\n } else {\r\n Proj4js.reportError(\"lcc:forward: llInputOutOfRange: \"+ lon +\" : \" + lat);\r\n return null;\r\n }\r\n \r\n var con = Math.abs( Math.abs(lat) - Proj4js.common.HALF_PI);\r\n var ts, rh1;\r\n if (con > Proj4js.common.EPSLN) {\r\n ts = Proj4js.common.tsfnz(this.e, lat, Math.sin(lat) );\r\n rh1 = this.a * this.f0 * Math.pow(ts, this.ns);\r\n } else {\r\n con = lat * this.ns;\r\n if (con <= 0) {\r\n Proj4js.reportError(\"lcc:forward: No Projection\");\r\n return null;\r\n }\r\n rh1 = 0;\r\n }\r\n var theta = this.ns * Proj4js.common.adjust_lon(lon - this.long0);\r\n p.x = this.k0 * (rh1 * Math.sin(theta)) + this.x0;\r\n p.y = this.k0 * (this.rh - rh1 * Math.cos(theta)) + this.y0;\r\n \r\n return p;\r\n },\r\n \r\n // Lambert Conformal Conic inverse equations--mapping x,y to lat/long\r\n // -----------------------------------------------------------------\r\n inverse : function(p) {\r\n \r\n var rh1, con, ts;\r\n var lat, lon;\r\n var x = (p.x - this.x0)/this.k0;\r\n var y = (this.rh - (p.y - this.y0)/this.k0);\r\n if (this.ns > 0) {\r\n rh1 = Math.sqrt (x * x + y * y);\r\n con = 1.0;\r\n } else {\r\n rh1 = -Math.sqrt (x * x + y * y);\r\n con = -1.0;\r\n }\r\n var theta = 0.0;\r\n if (rh1 != 0) {\r\n theta = Math.atan2((con * x),(con * y));\r\n }\r\n if ((rh1 != 0) || (this.ns > 0.0)) {\r\n con = 1.0/this.ns;\r\n ts = Math.pow((rh1/(this.a * this.f0)), con);\r\n lat = Proj4js.common.phi2z(this.e, ts);\r\n if (lat == -9999) return null;\r\n } else {\r\n lat = -Proj4js.common.HALF_PI;\r\n }\r\n lon = Proj4js.common.adjust_lon(theta/this.ns + this.long0);\r\n \r\n p.x = lon;\r\n p.y = lat;\r\n return p;\r\n }\r\n };\r\n \r\n \r\n \r\n \r\n /* ======================================================================\r\n projCode/laea.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME LAMBERT AZIMUTHAL EQUAL-AREA\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the Lambert Azimuthal Equal-Area projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE \r\n ---------- ---- \r\n D. Steinwand, EROS March, 1991 \r\n \r\n This function was adapted from the Lambert Azimuthal Equal Area projection\r\n code (FORTRAN) in the General Cartographic Transformation Package software\r\n which is available from the U.S. Geological Survey National Mapping Division.\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\r\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\r\n \r\n 2. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n \r\n 3. \"Software Documentation for GCTP General Cartographic Transformation\r\n Package\", U.S. Geological Survey National Mapping Division, May 1982.\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.laea = {\r\n S_POLE: 1,\r\n N_POLE: 2,\r\n EQUIT: 3,\r\n OBLIQ: 4,\r\n \r\n \r\n /* Initialize the Lambert Azimuthal Equal Area projection\r\n ------------------------------------------------------*/\r\n init: function() {\r\n var t = Math.abs(this.lat0);\r\n if (Math.abs(t - Proj4js.common.HALF_PI) < Proj4js.common.EPSLN) {\r\n this.mode = this.lat0 < 0. ? this.S_POLE : this.N_POLE;\r\n } else if (Math.abs(t) < Proj4js.common.EPSLN) {\r\n this.mode = this.EQUIT;\r\n } else {\r\n this.mode = this.OBLIQ;\r\n }\r\n if (this.es > 0) {\r\n var sinphi;\r\n \r\n this.qp = Proj4js.common.qsfnz(this.e, 1.0);\r\n this.mmf = .5 / (1. - this.es);\r\n this.apa = this.authset(this.es);\r\n switch (this.mode) {\r\n case this.N_POLE:\r\n case this.S_POLE:\r\n this.dd = 1.;\r\n break;\r\n case this.EQUIT:\r\n this.rq = Math.sqrt(.5 * this.qp);\r\n this.dd = 1. / this.rq;\r\n this.xmf = 1.;\r\n this.ymf = .5 * this.qp;\r\n break;\r\n case this.OBLIQ:\r\n this.rq = Math.sqrt(.5 * this.qp);\r\n sinphi = Math.sin(this.lat0);\r\n this.sinb1 = Proj4js.common.qsfnz(this.e, sinphi) / this.qp;\r\n this.cosb1 = Math.sqrt(1. - this.sinb1 * this.sinb1);\r\n this.dd = Math.cos(this.lat0) / (Math.sqrt(1. - this.es * sinphi * sinphi) * this.rq * this.cosb1);\r\n this.ymf = (this.xmf = this.rq) / this.dd;\r\n this.xmf *= this.dd;\r\n break;\r\n }\r\n } else {\r\n if (this.mode == this.OBLIQ) {\r\n this.sinph0 = Math.sin(this.lat0);\r\n this.cosph0 = Math.cos(this.lat0);\r\n }\r\n }\r\n },\r\n \r\n /* Lambert Azimuthal Equal Area forward equations--mapping lat,long to x,y\r\n -----------------------------------------------------------------------*/\r\n forward: function(p) {\r\n \r\n /* Forward equations\r\n -----------------*/\r\n var x,y;\r\n var lam=p.x;\r\n var phi=p.y;\r\n lam = Proj4js.common.adjust_lon(lam - this.long0);\r\n \r\n if (this.sphere) {\r\n var coslam, cosphi, sinphi;\r\n \r\n sinphi = Math.sin(phi);\r\n cosphi = Math.cos(phi);\r\n coslam = Math.cos(lam);\r\n switch (this.mode) {\r\n case this.OBLIQ:\r\n case this.EQUIT:\r\n y = (this.mode == this.EQUIT) ? 1. + cosphi * coslam : 1. + this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\r\n if (y <= Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"laea:fwd:y less than eps\");\r\n return null;\r\n }\r\n y = Math.sqrt(2. / y);\r\n x = y * cosphi * Math.sin(lam);\r\n y *= (this.mode == this.EQUIT) ? sinphi : this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\r\n break;\r\n case this.N_POLE:\r\n coslam = -coslam;\r\n case this.S_POLE:\r\n if (Math.abs(phi + this.phi0) < Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"laea:fwd:phi < eps\");\r\n return null;\r\n }\r\n y = Proj4js.common.FORTPI - phi * .5;\r\n y = 2. * ((this.mode == this.S_POLE) ? Math.cos(y) : Math.sin(y));\r\n x = y * Math.sin(lam);\r\n y *= coslam;\r\n break;\r\n }\r\n } else {\r\n var coslam, sinlam, sinphi, q, sinb=0.0, cosb=0.0, b=0.0;\r\n \r\n coslam = Math.cos(lam);\r\n sinlam = Math.sin(lam);\r\n sinphi = Math.sin(phi);\r\n q = Proj4js.common.qsfnz(this.e, sinphi);\r\n if (this.mode == this.OBLIQ || this.mode == this.EQUIT) {\r\n sinb = q / this.qp;\r\n cosb = Math.sqrt(1. - sinb * sinb);\r\n }\r\n switch (this.mode) {\r\n case this.OBLIQ:\r\n b = 1. + this.sinb1 * sinb + this.cosb1 * cosb * coslam;\r\n break;\r\n case this.EQUIT:\r\n b = 1. + cosb * coslam;\r\n break;\r\n case this.N_POLE:\r\n b = Proj4js.common.HALF_PI + phi;\r\n q = this.qp - q;\r\n break;\r\n case this.S_POLE:\r\n b = phi - Proj4js.common.HALF_PI;\r\n q = this.qp + q;\r\n break;\r\n }\r\n if (Math.abs(b) < Proj4js.common.EPSLN) {\r\n Proj4js.reportError(\"laea:fwd:b < eps\");\r\n return null;\r\n }\r\n switch (this.mode) {\r\n case this.OBLIQ:\r\n case this.EQUIT:\r\n b = Math.sqrt(2. / b);\r\n if (this.mode == this.OBLIQ) {\r\n y = this.ymf * b * (this.cosb1 * sinb - this.sinb1 * cosb * coslam);\r\n } else {\r\n y = (b = Math.sqrt(2. / (1. + cosb * coslam))) * sinb * this.ymf;\r\n }\r\n x = this.xmf * b * cosb * sinlam;\r\n break;\r\n case this.N_POLE:\r\n case this.S_POLE:\r\n if (q >= 0.) {\r\n x = (b = Math.sqrt(q)) * sinlam;\r\n y = coslam * ((this.mode == this.S_POLE) ? b : -b);\r\n } else {\r\n x = y = 0.;\r\n }\r\n break;\r\n }\r\n }\r\n \r\n //v 1.0\r\n /*\r\n var sin_lat=Math.sin(lat);\r\n var cos_lat=Math.cos(lat);\r\n \r\n var sin_delta_lon=Math.sin(delta_lon);\r\n var cos_delta_lon=Math.cos(delta_lon);\r\n \r\n var g =this.sin_lat_o * sin_lat +this.cos_lat_o * cos_lat * cos_delta_lon;\r\n if (g == -1.0) {\r\n Proj4js.reportError(\"laea:fwd:Point projects to a circle of radius \"+ 2.0 * R);\r\n return null;\r\n }\r\n var ksp = this.a * Math.sqrt(2.0 / (1.0 + g));\r\n var x = ksp * cos_lat * sin_delta_lon + this.x0;\r\n var y = ksp * (this.cos_lat_o * sin_lat - this.sin_lat_o * cos_lat * cos_delta_lon) + this.y0;\r\n */\r\n p.x = this.a*x + this.x0;\r\n p.y = this.a*y + this.y0;\r\n return p;\r\n },//lamazFwd()\r\n \r\n /* Inverse equations\r\n -----------------*/\r\n inverse: function(p) {\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n var x = p.x/this.a;\r\n var y = p.y/this.a;\r\n var lam, phi;\r\n \r\n if (this.sphere) {\r\n var cosz=0.0, rh, sinz=0.0;\r\n \r\n rh = Math.sqrt(x*x + y*y);\r\n phi = rh * .5;\r\n if (phi > 1.) {\r\n Proj4js.reportError(\"laea:Inv:DataError\");\r\n return null;\r\n }\r\n phi = 2. * Math.asin(phi);\r\n if (this.mode == this.OBLIQ || this.mode == this.EQUIT) {\r\n sinz = Math.sin(phi);\r\n cosz = Math.cos(phi);\r\n }\r\n switch (this.mode) {\r\n case this.EQUIT:\r\n phi = (Math.abs(rh) <= Proj4js.common.EPSLN) ? 0. : Math.asin(y * sinz / rh);\r\n x *= sinz;\r\n y = cosz * rh;\r\n break;\r\n case this.OBLIQ:\r\n phi = (Math.abs(rh) <= Proj4js.common.EPSLN) ? this.phi0 : Math.asin(cosz * this.sinph0 + y * sinz * this.cosph0 / rh);\r\n x *= sinz * this.cosph0;\r\n y = (cosz - Math.sin(phi) * this.sinph0) * rh;\r\n break;\r\n case this.N_POLE:\r\n y = -y;\r\n phi = Proj4js.common.HALF_PI - phi;\r\n break;\r\n case this.S_POLE:\r\n phi -= Proj4js.common.HALF_PI;\r\n break;\r\n }\r\n lam = (y == 0. && (this.mode == this.EQUIT || this.mode == this.OBLIQ)) ? 0. : Math.atan2(x, y);\r\n } else {\r\n var cCe, sCe, q, rho, ab=0.0;\r\n \r\n switch (this.mode) {\r\n case this.EQUIT:\r\n case this.OBLIQ:\r\n x /= this.dd;\r\n y *= this.dd;\r\n rho = Math.sqrt(x*x + y*y);\r\n if (rho < Proj4js.common.EPSLN) {\r\n p.x = 0.;\r\n p.y = this.phi0;\r\n return p;\r\n }\r\n sCe = 2. * Math.asin(.5 * rho / this.rq);\r\n cCe = Math.cos(sCe);\r\n x *= (sCe = Math.sin(sCe));\r\n if (this.mode == this.OBLIQ) {\r\n ab = cCe * this.sinb1 + y * sCe * this.cosb1 / rho\r\n q = this.qp * ab;\r\n y = rho * this.cosb1 * cCe - y * this.sinb1 * sCe;\r\n } else {\r\n ab = y * sCe / rho;\r\n q = this.qp * ab;\r\n y = rho * cCe;\r\n }\r\n break;\r\n case this.N_POLE:\r\n y = -y;\r\n case this.S_POLE:\r\n q = (x * x + y * y);\r\n if (!q ) {\r\n p.x = 0.;\r\n p.y = this.phi0;\r\n return p;\r\n }\r\n /*\r\n q = this.qp - q;\r\n */\r\n ab = 1. - q / this.qp;\r\n if (this.mode == this.S_POLE) {\r\n ab = - ab;\r\n }\r\n break;\r\n }\r\n lam = Math.atan2(x, y);\r\n phi = this.authlat(Math.asin(ab), this.apa);\r\n }\r\n \r\n /*\r\n var Rh = Math.Math.sqrt(p.x *p.x +p.y * p.y);\r\n var temp = Rh / (2.0 * this.a);\r\n \r\n if (temp > 1) {\r\n Proj4js.reportError(\"laea:Inv:DataError\");\r\n return null;\r\n }\r\n \r\n var z = 2.0 * Proj4js.common.asinz(temp);\r\n var sin_z=Math.sin(z);\r\n var cos_z=Math.cos(z);\r\n \r\n var lon =this.long0;\r\n if (Math.abs(Rh) > Proj4js.common.EPSLN) {\r\n var lat = Proj4js.common.asinz(this.sin_lat_o * cos_z +this. cos_lat_o * sin_z *p.y / Rh);\r\n var temp =Math.abs(this.lat0) - Proj4js.common.HALF_PI;\r\n if (Math.abs(temp) > Proj4js.common.EPSLN) {\r\n temp = cos_z -this.sin_lat_o * Math.sin(lat);\r\n if(temp!=0.0) lon=Proj4js.common.adjust_lon(this.long0+Math.atan2(p.x*sin_z*this.cos_lat_o,temp*Rh));\r\n } else if (this.lat0 < 0.0) {\r\n lon = Proj4js.common.adjust_lon(this.long0 - Math.atan2(-p.x,p.y));\r\n } else {\r\n lon = Proj4js.common.adjust_lon(this.long0 + Math.atan2(p.x, -p.y));\r\n }\r\n } else {\r\n lat = this.lat0;\r\n }\r\n */\r\n //return(OK);\r\n p.x = Proj4js.common.adjust_lon(this.long0+lam);\r\n p.y = phi;\r\n return p;\r\n },//lamazInv()\r\n \r\n /* determine latitude from authalic latitude */\r\n P00: .33333333333333333333,\r\n P01: .17222222222222222222,\r\n P02: .10257936507936507936,\r\n P10: .06388888888888888888,\r\n P11: .06640211640211640211,\r\n P20: .01641501294219154443,\r\n \r\n authset: function(es) {\r\n var t;\r\n var APA = new Array();\r\n APA[0] = es * this.P00;\r\n t = es * es;\r\n APA[0] += t * this.P01;\r\n APA[1] = t * this.P10;\r\n t *= es;\r\n APA[0] += t * this.P02;\r\n APA[1] += t * this.P11;\r\n APA[2] = t * this.P20;\r\n return APA;\r\n },\r\n \r\n authlat: function(beta, APA) {\r\n var t = beta+beta;\r\n return(beta + APA[0] * Math.sin(t) + APA[1] * Math.sin(t+t) + APA[2] * Math.sin(t+t+t));\r\n }\r\n \r\n };\r\n \r\n \r\n \r\n /* ======================================================================\r\n projCode/aeqd.js\r\n ====================================================================== */\r\n \r\n Proj4js.Proj.aeqd = {\r\n \r\n init : function() {\r\n this.sin_p12=Math.sin(this.lat0);\r\n this.cos_p12=Math.cos(this.lat0);\r\n },\r\n \r\n forward: function(p) {\r\n var lon=p.x;\r\n var lat=p.y;\r\n var ksp;\r\n \r\n var sinphi=Math.sin(p.y);\r\n var cosphi=Math.cos(p.y); \r\n var dlon = Proj4js.common.adjust_lon(lon - this.long0);\r\n var coslon = Math.cos(dlon);\r\n var g = this.sin_p12 * sinphi + this.cos_p12 * cosphi * coslon;\r\n if (Math.abs(Math.abs(g) - 1.0) < Proj4js.common.EPSLN) {\r\n ksp = 1.0;\r\n if (g < 0.0) {\r\n Proj4js.reportError(\"aeqd:Fwd:PointError\");\r\n return;\r\n }\r\n } else {\r\n var z = Math.acos(g);\r\n ksp = z/Math.sin(z);\r\n }\r\n p.x = this.x0 + this.a * ksp * cosphi * Math.sin(dlon);\r\n p.y = this.y0 + this.a * ksp * (this.cos_p12 * sinphi - this.sin_p12 * cosphi * coslon);\r\n return p;\r\n },\r\n \r\n inverse: function(p){\r\n p.x -= this.x0;\r\n p.y -= this.y0;\r\n \r\n var rh = Math.sqrt(p.x * p.x + p.y *p.y);\r\n if (rh > (2.0 * Proj4js.common.HALF_PI * this.a)) {\r\n Proj4js.reportError(\"aeqdInvDataError\");\r\n return;\r\n }\r\n var z = rh / this.a;\r\n \r\n var sinz=Math.sin(z);\r\n var cosz=Math.cos(z);\r\n \r\n var lon = this.long0;\r\n var lat;\r\n if (Math.abs(rh) <= Proj4js.common.EPSLN) {\r\n lat = this.lat0;\r\n } else {\r\n lat = Proj4js.common.asinz(cosz * this.sin_p12 + (p.y * sinz * this.cos_p12) / rh);\r\n var con = Math.abs(this.lat0) - Proj4js.common.HALF_PI;\r\n if (Math.abs(con) <= Proj4js.common.EPSLN) {\r\n if (this.lat0 >= 0.0) {\r\n lon = Proj4js.common.adjust_lon(this.long0 + Math.atan2(p.x , -p.y));\r\n } else {\r\n lon = Proj4js.common.adjust_lon(this.long0 - Math.atan2(-p.x , p.y));\r\n }\r\n } else {\r\n con = cosz - this.sin_p12 * Math.sin(lat);\r\n if ((Math.abs(con) < Proj4js.common.EPSLN) && (Math.abs(p.x) < Proj4js.common.EPSLN)) {\r\n //no-op, just keep the lon value as is\r\n } else {\r\n var temp = Math.atan2((p.x * sinz * this.cos_p12), (con * rh));\r\n lon = Proj4js.common.adjust_lon(this.long0 + Math.atan2((p.x * sinz * this.cos_p12), (con * rh)));\r\n }\r\n }\r\n }\r\n \r\n p.x = lon;\r\n p.y = lat;\r\n return p;\r\n } \r\n };\r\n /* ======================================================================\r\n projCode/moll.js\r\n ====================================================================== */\r\n \r\n /*******************************************************************************\r\n NAME MOLLWEIDE\r\n \r\n PURPOSE:\tTransforms input longitude and latitude to Easting and\r\n Northing for the MOllweide projection. The\r\n longitude and latitude must be in radians. The Easting\r\n and Northing values will be returned in meters.\r\n \r\n PROGRAMMER DATE\r\n ---------- ----\r\n D. Steinwand, EROS May, 1991; Updated Sept, 1992; Updated Feb, 1993\r\n S. Nelson, EDC\t\tJun, 2993;\tMade corrections in precision and\r\n number of iterations.\r\n \r\n ALGORITHM REFERENCES\r\n \r\n 1. Snyder, John P. and Voxland, Philip M., \"An Album of Map Projections\",\r\n U.S. Geological Survey Professional Paper 1453 , United State Government\r\n Printing Office, Washington D.C., 1989.\r\n \r\n 2. Snyder, John P., \"Map Projections--A Working Manual\", U.S. Geological\r\n Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United\r\n State Government Printing Office, Washington D.C., 1987.\r\n *******************************************************************************/\r\n \r\n Proj4js.Proj.moll = {\r\n \r\n /* Initialize the Mollweide projection\r\n ------------------------------------*/\r\n init: function(){\r\n //no-op\r\n },\r\n \r\n /* Mollweide forward equations--mapping lat,long to x,y\r\n ----------------------------------------------------*/\r\n forward: function(p) {\r\n \r\n /* Forward equations\r\n -----------------*/\r\n var lon=p.x;\r\n var lat=p.y;\r\n \r\n var delta_lon = Proj4js.common.adjust_lon(lon - this.long0);\r\n var theta = lat;\r\n var con = Proj4js.common.PI * Math.sin(lat);\r\n \r\n /* Iterate using the Newton-Raphson method to find theta\r\n -----------------------------------------------------*/\r\n for (var i=0;true;i++) {\r\n var delta_theta = -(theta + Math.sin(theta) - con)/ (1.0 + Math.cos(theta));\r\n theta += delta_theta;\r\n if (Math.abs(delta_theta) < Proj4js.common.EPSLN) break;\r\n if (i >= 50) {\r\n Proj4js.reportError(\"moll:Fwd:IterationError\");\r\n //return(241);\r\n }\r\n }\r\n theta /= 2.0;\r\n \r\n /* If the latitude is 90 deg, force the x coordinate to be \"0 + false easting\"\r\n this is done here because of precision problems with \"cos(theta)\"\r\n --------------------------------------------------------------------------*/\r\n if (Proj4js.common.PI/2 - Math.abs(lat) < Proj4js.common.EPSLN) delta_lon =0;\r\n var x = 0.900316316158 * this.a * delta_lon * Math.cos(theta) + this.x0;\r\n var y = 1.4142135623731 * this.a * Math.sin(theta) + this.y0;\r\n \r\n p.x=x;\r\n p.y=y;\r\n return p;\r\n },\r\n \r\n inverse: function(p){\r\n var theta;\r\n var arg;\r\n \r\n /* Inverse equations\r\n -----------------*/\r\n p.x-= this.x0;\r\n //~ p.y -= this.y0;\r\n var arg = p.y / (1.4142135623731 * this.a);\r\n \r\n /* Because of division by zero problems, 'arg' can not be 1.0. Therefore\r\n a number very close to one is used instead.\r\n -------------------------------------------------------------------*/\r\n if(Math.abs(arg) > 0.999999999999) arg=0.999999999999;\r\n var theta =Math.asin(arg);\r\n var lon = Proj4js.common.adjust_lon(this.long0 + (p.x / (0.900316316158 * this.a * Math.cos(theta))));\r\n if(lon < (-Proj4js.common.PI)) lon= -Proj4js.common.PI;\r\n if(lon > Proj4js.common.PI) lon= Proj4js.common.PI;\r\n arg = (2.0 * theta + Math.sin(2.0 * theta)) / Proj4js.common.PI;\r\n if(Math.abs(arg) > 1.0)arg=1.0;\r\n var lat = Math.asin(arg);\r\n //return(OK);\r\n \r\n p.x=lon;\r\n p.y=lat;\r\n return p;\r\n }\r\n };\r\n \r\n window.Proj4js = Proj4js;\r\n \r\n export default Proj4js;\n\n\n// WEBPACK FOOTER //\n// ./src/js/proj4js.js","// The Vue build version to load with the `import` command\r\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\r\nimport jQuery from 'jquery';\r\nimport Vue from 'vue'\r\nimport vueResource from 'vue-resource';\r\nimport App from './App'\r\nimport router from './router'\r\nimport Es6Promise from 'es6-promise';\r\nimport moment from 'moment';\r\nimport L from 'leaflet';\r\nimport LeafletDraw from 'leaflet-draw';\r\nimport LeafletEasybutton from 'leaflet-easybutton';\r\nimport LeafletFullscreen from 'leaflet-fullscreen';\r\nimport * as proj4x from 'proj4/dist/proj4-src.js';\r\nimport 'babel-polyfill';\r\nimport 'webrtc-adapter';\r\nimport { store } from './store/store'\r\nEs6Promise.polyfill();\r\n\r\ndelete L.Icon.Default.prototype._getIconUrl;\r\n\r\nL.Icon.Default.mergeOptions({\r\n iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),\r\n iconUrl: require('leaflet/dist/images/marker-icon.png'),\r\n shadowUrl: require('leaflet/dist/images/marker-shadow.png'),\r\n});\r\n\r\nwindow.proj4 = proj4x.default;\r\nwindow.jQuery = jQuery;\r\nwindow.$ = jQuery;\r\nwindow['moment'] = moment;\r\nwindow['L'] = L;\r\nwindow.MotionUI = require('motion-ui');\r\n\r\n// Values \r\nwindow['apikey'] = '';\r\nwindow['user'] = '';\r\nwindow['url'] = '';\r\nwindow['version'] = '';\r\nwindow['selectedDate'] = null;\r\n\r\nrequire('foundation-sites');\r\nrequire('leaflet/dist/leaflet.css');\r\nrequire('leaflet-draw/dist/leaflet.draw.css');\r\nrequire('leaflet-easybutton/src/easy-button.css');\r\nrequire('proj4leaflet');\r\nvar VueCookie = require('vue-cookie');\r\n\r\nVue.use(vueResource);\r\nVue.use(VueCookie);\r\n\r\nVue.http.interceptors.push((request, next) => {\r\n request.credentials = true;\r\n request.headers.set('Authorization', 'Basic ' + btoa('auth:'+ window['apikey']));\r\n next();\r\n});\r\n\r\nVue.http.options.credentials = true;\r\n\r\nVue.http.options.xhr = {\r\n withCredentials: true\r\n}\r\nVue.http.options.emulateJSON = true\r\nVue.http.options.emulateHTTP = true\r\nVue.http.options.crossOrigin = true\r\n\r\nVue.http.headers.common['Access-Control-Allow-Origin'] = '*'\r\nVue.http.headers.common['Content-Type'] = 'application/json'\r\nVue.http.headers.common['Accept'] = 'application/json'\r\nVue.http.headers.common['Access-Control-Allow-Headers'] = 'Origin, Accept, Content-Type, Authorization, Access-Control-Allow-Origin'\r\n\r\nVue.config.productionTip = false\r\n\r\n/* eslint-disable no-new */\r\nnew Vue({\r\n el: '#app',\r\n store,\r\n router,\r\n template: '',\r\n components: { App }\r\n})\r\n\r\n$(document).foundation();\r\n\r\nmoment.locale('da');\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","\r\nimport DAL, {mongoObjectId} from './../js/Sync/dal';\r\nvar getOrientedImage = require('exif-orientation-image');\r\n\r\nvar formUploadHandler = {\r\n data() {\r\n return {\r\n base64: ''\r\n }\r\n },\r\n methods: {\r\n doremoveUpload(uploadId) {\r\n\r\n console.log(\"UPLOADID removing\", uploadId, this.localImages);\r\n \r\n var _this = this;\r\n\r\n _this.localImages = _this.localImages.filter(function (ul) {\r\n return ul.id != uploadId;\r\n });\r\n console.log(\"UploadId\", uploadId);\r\n //_this.$emit('removeImagePopup', uploadId);\r\n \r\n DAL.removeItem(\"MTTempImages\", uploadId).then(function (result) {\r\n console.log(\"Image removed as well\");\r\n });\r\n\r\n },\r\n\r\n process(arrayB){\r\n var dv = new DataView(new ArrayBuffer(arrayB.toString()));\r\n var offset = 0, recess = 0;\r\n var pieces = [];\r\n var i = 0;\r\n if (dv.getUint16(offset) == 0xffd8){\r\n offset += 2;\r\n var app1 = dv.getUint16(offset);\r\n offset += 2;\r\n while (offset < dv.byteLength){\r\n if (app1 == 0xffe1){\r\n \r\n pieces[i] = {recess:recess,offset:offset-2};\r\n recess = offset + dv.getUint16(offset);\r\n i++;\r\n }\r\n else if (app1 == 0xffda){\r\n break;\r\n }\r\n offset += dv.getUint16(offset);\r\n var app1 = dv.getUint16(offset);\r\n offset += 2;\r\n }\r\n if (pieces.length > 0){\r\n var newPieces = [];\r\n pieces.forEach(function(v){\r\n newPieces.push(arrayB.slice(v.recess, v.offset));\r\n }, this);\r\n newPieces.push(arrayB.slice(recess));\r\n return new Blob(newPieces, {type: 'image/jpeg'});\r\n }\r\n }\r\n },\r\n\r\n gotUpload (event) {\r\n var _this = this;\r\n\r\n var file = '';\r\n var res = '';\r\n var fullres = '';\r\n var fullimg = '';\r\n\r\n console.log(\"gotUpload : event\", event);\r\n\r\n if(event.target.files.length == 1 && event.target.files[0].type.indexOf(\"image/\") == 0) {\r\n\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (theFile) {\r\n\r\n var imageId = mongoObjectId();\r\n var customerId;\r\n\r\n var randomNamePart = mongoObjectId();\r\n \r\n var numberInIndexedDB = 1;\r\n DAL.iterate('MTTempImages', function(value, key, iterationNumber) {\r\n console.log('value.projectId == _this.filteredResult.id', value.projectId == _this.filteredResult.id)\r\n if (value.projectId == _this.filteredResult.id) {\r\n numberInIndexedDB += 1;\r\n }\r\n })\r\n\r\n var customer = JSON.parse(_this.$cookie.get('user'));\r\n\r\n DAL.getItem(\"MTUsers\", \"users\").then(function (result) {\r\n \r\n customerId = customer.id;\r\n file = event.target.files[0];\r\n \r\n return new Promise(function (resolve, reject) {\r\n getOrientedImage(file,function(err,canvas) {\r\n if (!err) {\r\n canvas.toBlob(function (blob) {\r\n resolve(blob);\r\n \r\n }, 'image/jpeg', 1);\r\n }\r\n });\r\n })\r\n \r\n })\r\n .then(function(orientedImageBlob) {\r\n new Promise(function(resolve, reject) {\r\n var arrayBuffer;\r\n var fileReader = new FileReader();\r\n fileReader.onload = function() {\r\n var arrayBf = fileReader.result;\r\n console.log(\"arrayBf\", arrayBf);\r\n \r\n\r\n //resolve(_this.process(this.result));\r\n resolve(this.result);\r\n };\r\n fileReader.readAsArrayBuffer(orientedImageBlob);\r\n }).then(function(orientedImageArrayBuffer) {\r\n //Create thumbnail\r\n fullres = orientedImageArrayBuffer;\r\n return _this.createThumbnail(orientedImageArrayBuffer, event.target.files[0].type)\r\n }).then(function(result) {\r\n res = result;\r\n return _this.createThumbnail(fullres, event.target.files[0].type, 800, 1)\r\n }).then(function(result) {\r\n fullimg = result;\r\n console.log(\"result\", result);\r\n return new Promise(function(resolve, reject) {\r\n  var readerFull = new window.FileReader();\r\n\r\n  readerFull.readAsDataURL(new Blob([new Uint8Array(result)])); \r\n  readerFull.onloadend = function() {\r\n                 var base64data = readerFull.result;                \r\n                 resolve(base64data);\r\n    } \r\n })\r\n })\r\n\r\n .then( function (base64) {\r\n console.log(\"base64 after\", base64.length)\r\n _this.base64 = base64;\r\n var imageObj = {\r\n \"id\": imageId,\r\n \"thumb\": res,\r\n \"data\" : fullimg,\r\n \"base64\" : _this.base64,\r\n \"mongoObjectId\" : mongoObjectId(),\r\n \"type\" : file.type,\r\n \"state\" : \"saved\",\r\n \"fileName\" : _this.filteredResult.maalernummer + '_' + numberInIndexedDB + '.jpg',\r\n \"filePath\" : \"CustomerData\\\\\" + customerId + \"\\\\Projects\\\\\" + _this.filteredResult.id,\r\n \"projectId\" : _this.filteredResult.id\r\n }\r\n console.log('imageObj', imageObj)\r\n\r\n _this.localImages.push(imageObj);\r\n return DAL.setItem(\"MTTempImages\", imageId, imageObj);\r\n }).then(function (result) {\r\n var uploadObj = {\r\n \"uploadId\" : mongoObjectId(),\r\n \"fileName\" : _this.filteredResult.maalernummer + '_' + numberInIndexedDB + '.jpg',\r\n \"filePath\" : \"CustomerData\\\\\" + customerId + \"\\\\Projects\\\\\" + _this.filteredResult.id,\r\n \"createdDateTime\" : new Date().toISOString(),\r\n \"caption\" : \"\",\r\n \"tags\" : [],\r\n \"imageId\" : imageId\r\n };\r\n console.log('uploadObj', uploadObj)\r\n _this.$store.dispatch('updateNotification', 1);\r\n _this.$emit('uploadObj', uploadObj);\r\n\r\n console.log(\"localImages\", _this.localImages);\r\n\r\n event.target.value = \"\";\r\n });\r\n })\r\n };\r\n reader.readAsArrayBuffer(event.target.files[0]);\r\n }\r\n },\r\n gotScreenshot (base64Image) { \r\n var _this = this;\r\n \r\n var file = this.dataURLtoFile(base64Image, 'Screenshot');\r\n var res = '';\r\n var fullres = '';\r\n var fullimg = '';\r\n\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (theFile) {\r\n\r\n var imageId = mongoObjectId();\r\n var customerId;\r\n\r\n var randomNamePart = mongoObjectId();\r\n \r\n var numberInIndexedDB = 1;\r\n DAL.iterate('MTTempImages', function(value, key, iterationNumber) {\r\n console.log('value.projectId == _this.filteredResult.id', value.projectId == _this.filteredResult.id)\r\n if (value.projectId == _this.filteredResult.id) {\r\n numberInIndexedDB += 1;\r\n }\r\n })\r\n\r\n var customer = JSON.parse(_this.$cookie.get('user'));\r\n\r\n DAL.getItem(\"MTUsers\", \"users\").then(function (result) {\r\n \r\n customerId = customer.id;\r\n \r\n return new Promise(function (resolve, reject) {\r\n getOrientedImage(file,function(err,canvas) {\r\n if (!err) {\r\n canvas.toBlob(function (blob) {\r\n resolve(blob);\r\n \r\n }, 'image/jpeg', 1);\r\n }\r\n });\r\n })\r\n \r\n })\r\n .then(function(orientedImageBlob) {\r\n new Promise(function(resolve, reject) {\r\n var arrayBuffer;\r\n var fileReader = new FileReader();\r\n fileReader.onload = function() {\r\n var arrayBf = fileReader.result;\r\n console.log(\"arrayBf\", arrayBf);\r\n \r\n\r\n //resolve(_this.process(this.result));\r\n resolve(this.result);\r\n };\r\n fileReader.readAsArrayBuffer(orientedImageBlob);\r\n }).then(function(orientedImageArrayBuffer) {\r\n //Create thumbnail\r\n fullres = orientedImageArrayBuffer;\r\n return _this.createThumbnail(orientedImageArrayBuffer, file.type)\r\n }).then(function(result) {\r\n res = result;\r\n return _this.createThumbnail(fullres, file.type, 800, 1)\r\n }).then(function(result) {\r\n fullimg = result;\r\n console.log(\"result\", result);\r\n return new Promise(function(resolve, reject) {\r\n  var readerFull = new window.FileReader();\r\n\r\n  readerFull.readAsDataURL(new Blob([new Uint8Array(result)])); \r\n  readerFull.onloadend = function() {\r\n                 var base64data = readerFull.result;                \r\n                 resolve(base64data);\r\n    } \r\n })\r\n })\r\n\r\n .then( function (base64) {\r\n console.log(\"base64 after\", base64.length)\r\n _this.base64 = base64;\r\n var imageObj = {\r\n \"id\": imageId,\r\n \"thumb\": res,\r\n \"data\" : fullimg,\r\n \"base64\" : _this.base64,\r\n \"mongoObjectId\" : mongoObjectId(),\r\n \"type\" : file.type,\r\n \"state\" : \"saved\",\r\n \"fileName\" : _this.filteredResult.maalernummer + '_' + numberInIndexedDB + '.jpg',\r\n \"filePath\" : \"CustomerData\\\\\" + customerId + \"\\\\Projects\\\\\" + _this.filteredResult.id,\r\n \"projectId\" : _this.filteredResult.id\r\n }\r\n console.log('imageObj', imageObj)\r\n\r\n _this.localImages.push(imageObj);\r\n return DAL.setItem(\"MTTempImages\", imageId, imageObj);\r\n }).then(function (result) {\r\n var uploadObj = {\r\n \"uploadId\" : mongoObjectId(),\r\n \"fileName\" : _this.filteredResult.maalernummer + '_' + numberInIndexedDB + '.jpg',\r\n \"filePath\" : \"CustomerData\\\\\" + customerId + \"\\\\Projects\\\\\" + _this.filteredResult.id,\r\n \"createdDateTime\" : new Date().toISOString(),\r\n \"caption\" : \"\",\r\n \"tags\" : [],\r\n \"imageId\" : imageId\r\n };\r\n console.log('uploadObj', uploadObj)\r\n _this.$store.dispatch('updateNotification', 1);\r\n _this.$emit('uploadObj', uploadObj);\r\n\r\n console.log(\"localImages\", _this.localImages);\r\n\r\n // event.target.value = \"\";\r\n });\r\n })\r\n };\r\n reader.readAsArrayBuffer(file);\r\n },\r\n dataURLtoFile(dataurl, filename) {\r\n var arr = dataurl.split(','),\r\n mime = arr[0].match(/:(.*?);/)[1],\r\n bstr = atob(arr[1]), \r\n n = bstr.length, \r\n u8arr = new Uint8Array(n);\r\n \r\n while(n--){\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n \r\n return new File([u8arr], filename, {type:mime});\r\n },\r\n createThumbnail (image, type, width, quality) {\r\n if (width == undefined) {\r\n width = 254;\r\n }\r\n\r\n if (quality == undefined) {\r\n quality = 0.7;\r\n }\r\n \r\n var d = new Promise((resolve, reject) => {\r\n\r\n var dataView = new DataView(image),\r\n fullImageBlob = new Blob([dataView], { type: type }),\r\n canvas = document.createElement(\"canvas\"),\r\n ctx = canvas.getContext('2d'),\r\n img = new Image();\r\n\r\n img.onload = function() {\r\n\r\n var ratio = width / img.width;\r\n var newHeight = ratio * img.height;\r\n\r\n canvas.height = newHeight;\r\n canvas.width = width;\r\n\r\n ctx.drawImage (img, 0, 0, width, newHeight);\r\n\r\n canvas.toBlob(function (blob) {\r\n\r\n var fr = new FileReader();\r\n\r\n fr.onload = function (event) {\r\n //fr.result\r\n resolve(fr.result);\r\n };\r\n fr.readAsArrayBuffer(blob);\r\n\r\n\r\n }, 'image/jpeg', quality);\r\n\r\n }\r\n img.src = URL.createObjectURL(fullImageBlob);\r\n });\r\n\r\n return d;\r\n }\r\n },\r\n computed: {\r\n mongoid: function () {\r\n return mongoObjectId();\r\n }\r\n },\r\n \r\n}\r\n\r\nexport default formUploadHandler\n\n\n// WEBPACK FOOTER //\n// ./src/mixins/FormUploadHandler.js","export default function clearQueue (q) {\r\n var p = Promise.resolve();\r\n\r\n return q.reduce(function(prev,cur){ \r\n return prev.then(cur);\r\n }, p);\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/js/Sync/clearQueue.js","var map = {\n\t\"./af\": 338,\n\t\"./af.js\": 338,\n\t\"./ar\": 345,\n\t\"./ar-dz\": 339,\n\t\"./ar-dz.js\": 339,\n\t\"./ar-kw\": 340,\n\t\"./ar-kw.js\": 340,\n\t\"./ar-ly\": 341,\n\t\"./ar-ly.js\": 341,\n\t\"./ar-ma\": 342,\n\t\"./ar-ma.js\": 342,\n\t\"./ar-sa\": 343,\n\t\"./ar-sa.js\": 343,\n\t\"./ar-tn\": 344,\n\t\"./ar-tn.js\": 344,\n\t\"./ar.js\": 345,\n\t\"./az\": 346,\n\t\"./az.js\": 346,\n\t\"./be\": 347,\n\t\"./be.js\": 347,\n\t\"./bg\": 348,\n\t\"./bg.js\": 348,\n\t\"./bm\": 349,\n\t\"./bm.js\": 349,\n\t\"./bn\": 351,\n\t\"./bn-bd\": 350,\n\t\"./bn-bd.js\": 350,\n\t\"./bn.js\": 351,\n\t\"./bo\": 352,\n\t\"./bo.js\": 352,\n\t\"./br\": 353,\n\t\"./br.js\": 353,\n\t\"./bs\": 354,\n\t\"./bs.js\": 354,\n\t\"./ca\": 355,\n\t\"./ca.js\": 355,\n\t\"./cs\": 356,\n\t\"./cs.js\": 356,\n\t\"./cv\": 357,\n\t\"./cv.js\": 357,\n\t\"./cy\": 358,\n\t\"./cy.js\": 358,\n\t\"./da\": 359,\n\t\"./da.js\": 359,\n\t\"./de\": 362,\n\t\"./de-at\": 360,\n\t\"./de-at.js\": 360,\n\t\"./de-ch\": 361,\n\t\"./de-ch.js\": 361,\n\t\"./de.js\": 362,\n\t\"./dv\": 363,\n\t\"./dv.js\": 363,\n\t\"./el\": 364,\n\t\"./el.js\": 364,\n\t\"./en-au\": 365,\n\t\"./en-au.js\": 365,\n\t\"./en-ca\": 366,\n\t\"./en-ca.js\": 366,\n\t\"./en-gb\": 367,\n\t\"./en-gb.js\": 367,\n\t\"./en-ie\": 368,\n\t\"./en-ie.js\": 368,\n\t\"./en-il\": 369,\n\t\"./en-il.js\": 369,\n\t\"./en-in\": 370,\n\t\"./en-in.js\": 370,\n\t\"./en-nz\": 371,\n\t\"./en-nz.js\": 371,\n\t\"./en-sg\": 372,\n\t\"./en-sg.js\": 372,\n\t\"./eo\": 373,\n\t\"./eo.js\": 373,\n\t\"./es\": 377,\n\t\"./es-do\": 374,\n\t\"./es-do.js\": 374,\n\t\"./es-mx\": 375,\n\t\"./es-mx.js\": 375,\n\t\"./es-us\": 376,\n\t\"./es-us.js\": 376,\n\t\"./es.js\": 377,\n\t\"./et\": 378,\n\t\"./et.js\": 378,\n\t\"./eu\": 379,\n\t\"./eu.js\": 379,\n\t\"./fa\": 380,\n\t\"./fa.js\": 380,\n\t\"./fi\": 381,\n\t\"./fi.js\": 381,\n\t\"./fil\": 382,\n\t\"./fil.js\": 382,\n\t\"./fo\": 383,\n\t\"./fo.js\": 383,\n\t\"./fr\": 386,\n\t\"./fr-ca\": 384,\n\t\"./fr-ca.js\": 384,\n\t\"./fr-ch\": 385,\n\t\"./fr-ch.js\": 385,\n\t\"./fr.js\": 386,\n\t\"./fy\": 387,\n\t\"./fy.js\": 387,\n\t\"./ga\": 388,\n\t\"./ga.js\": 388,\n\t\"./gd\": 389,\n\t\"./gd.js\": 389,\n\t\"./gl\": 390,\n\t\"./gl.js\": 390,\n\t\"./gom-deva\": 391,\n\t\"./gom-deva.js\": 391,\n\t\"./gom-latn\": 392,\n\t\"./gom-latn.js\": 392,\n\t\"./gu\": 393,\n\t\"./gu.js\": 393,\n\t\"./he\": 394,\n\t\"./he.js\": 394,\n\t\"./hi\": 395,\n\t\"./hi.js\": 395,\n\t\"./hr\": 396,\n\t\"./hr.js\": 396,\n\t\"./hu\": 397,\n\t\"./hu.js\": 397,\n\t\"./hy-am\": 398,\n\t\"./hy-am.js\": 398,\n\t\"./id\": 399,\n\t\"./id.js\": 399,\n\t\"./is\": 400,\n\t\"./is.js\": 400,\n\t\"./it\": 402,\n\t\"./it-ch\": 401,\n\t\"./it-ch.js\": 401,\n\t\"./it.js\": 402,\n\t\"./ja\": 403,\n\t\"./ja.js\": 403,\n\t\"./jv\": 404,\n\t\"./jv.js\": 404,\n\t\"./ka\": 405,\n\t\"./ka.js\": 405,\n\t\"./kk\": 406,\n\t\"./kk.js\": 406,\n\t\"./km\": 407,\n\t\"./km.js\": 407,\n\t\"./kn\": 408,\n\t\"./kn.js\": 408,\n\t\"./ko\": 409,\n\t\"./ko.js\": 409,\n\t\"./ku\": 410,\n\t\"./ku.js\": 410,\n\t\"./ky\": 411,\n\t\"./ky.js\": 411,\n\t\"./lb\": 412,\n\t\"./lb.js\": 412,\n\t\"./lo\": 413,\n\t\"./lo.js\": 413,\n\t\"./lt\": 414,\n\t\"./lt.js\": 414,\n\t\"./lv\": 415,\n\t\"./lv.js\": 415,\n\t\"./me\": 416,\n\t\"./me.js\": 416,\n\t\"./mi\": 417,\n\t\"./mi.js\": 417,\n\t\"./mk\": 418,\n\t\"./mk.js\": 418,\n\t\"./ml\": 419,\n\t\"./ml.js\": 419,\n\t\"./mn\": 420,\n\t\"./mn.js\": 420,\n\t\"./mr\": 421,\n\t\"./mr.js\": 421,\n\t\"./ms\": 423,\n\t\"./ms-my\": 422,\n\t\"./ms-my.js\": 422,\n\t\"./ms.js\": 423,\n\t\"./mt\": 424,\n\t\"./mt.js\": 424,\n\t\"./my\": 425,\n\t\"./my.js\": 425,\n\t\"./nb\": 426,\n\t\"./nb.js\": 426,\n\t\"./ne\": 427,\n\t\"./ne.js\": 427,\n\t\"./nl\": 429,\n\t\"./nl-be\": 428,\n\t\"./nl-be.js\": 428,\n\t\"./nl.js\": 429,\n\t\"./nn\": 430,\n\t\"./nn.js\": 430,\n\t\"./oc-lnc\": 431,\n\t\"./oc-lnc.js\": 431,\n\t\"./pa-in\": 432,\n\t\"./pa-in.js\": 432,\n\t\"./pl\": 433,\n\t\"./pl.js\": 433,\n\t\"./pt\": 435,\n\t\"./pt-br\": 434,\n\t\"./pt-br.js\": 434,\n\t\"./pt.js\": 435,\n\t\"./ro\": 436,\n\t\"./ro.js\": 436,\n\t\"./ru\": 437,\n\t\"./ru.js\": 437,\n\t\"./sd\": 438,\n\t\"./sd.js\": 438,\n\t\"./se\": 439,\n\t\"./se.js\": 439,\n\t\"./si\": 440,\n\t\"./si.js\": 440,\n\t\"./sk\": 441,\n\t\"./sk.js\": 441,\n\t\"./sl\": 442,\n\t\"./sl.js\": 442,\n\t\"./sq\": 443,\n\t\"./sq.js\": 443,\n\t\"./sr\": 445,\n\t\"./sr-cyrl\": 444,\n\t\"./sr-cyrl.js\": 444,\n\t\"./sr.js\": 445,\n\t\"./ss\": 446,\n\t\"./ss.js\": 446,\n\t\"./sv\": 447,\n\t\"./sv.js\": 447,\n\t\"./sw\": 448,\n\t\"./sw.js\": 448,\n\t\"./ta\": 449,\n\t\"./ta.js\": 449,\n\t\"./te\": 450,\n\t\"./te.js\": 450,\n\t\"./tet\": 451,\n\t\"./tet.js\": 451,\n\t\"./tg\": 452,\n\t\"./tg.js\": 452,\n\t\"./th\": 453,\n\t\"./th.js\": 453,\n\t\"./tk\": 454,\n\t\"./tk.js\": 454,\n\t\"./tl-ph\": 455,\n\t\"./tl-ph.js\": 455,\n\t\"./tlh\": 456,\n\t\"./tlh.js\": 456,\n\t\"./tr\": 457,\n\t\"./tr.js\": 457,\n\t\"./tzl\": 458,\n\t\"./tzl.js\": 458,\n\t\"./tzm\": 460,\n\t\"./tzm-latn\": 459,\n\t\"./tzm-latn.js\": 459,\n\t\"./tzm.js\": 460,\n\t\"./ug-cn\": 461,\n\t\"./ug-cn.js\": 461,\n\t\"./uk\": 462,\n\t\"./uk.js\": 462,\n\t\"./ur\": 463,\n\t\"./ur.js\": 463,\n\t\"./uz\": 465,\n\t\"./uz-latn\": 464,\n\t\"./uz-latn.js\": 464,\n\t\"./uz.js\": 465,\n\t\"./vi\": 466,\n\t\"./vi.js\": 466,\n\t\"./x-pseudo\": 467,\n\t\"./x-pseudo.js\": 467,\n\t\"./yo\": 468,\n\t\"./yo.js\": 468,\n\t\"./zh-cn\": 469,\n\t\"./zh-cn.js\": 469,\n\t\"./zh-hk\": 470,\n\t\"./zh-hk.js\": 470,\n\t\"./zh-mo\": 471,\n\t\"./zh-mo.js\": 471,\n\t\"./zh-tw\": 472,\n\t\"./zh-tw.js\": 472\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 915;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/moment/locale ^\\.\\/.*$\n// module id = 915\n// module chunks = 1","function fixProto(target, prototype) {\n var setPrototypeOf = Object.setPrototypeOf;\n setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;\n}\nfunction fixStack(target, fn) {\n if (fn === void 0) {\n fn = target.constructor;\n }\n\n var captureStackTrace = Error.captureStackTrace;\n captureStackTrace && captureStackTrace(target, fn);\n}\n\nvar __extends = undefined && undefined.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) { if (b.hasOwnProperty(p)) { d[p] = b[p]; } }\n };\n\n return extendStatics(d, b);\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar CustomError = function (_super) {\n __extends(CustomError, _super);\n\n function CustomError(message) {\n var _newTarget = this.constructor;\n\n var _this = _super.call(this, message) || this;\n\n Object.defineProperty(_this, 'name', {\n value: _newTarget.name,\n enumerable: false,\n configurable: true\n });\n fixProto(_this, _newTarget.prototype);\n fixStack(_this);\n return _this;\n }\n\n return CustomError;\n}(Error);\n\nvar __spreadArrays = undefined && undefined.__spreadArrays || function () {\n var arguments$1 = arguments;\n\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) { s += arguments$1[i].length; }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) { for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) { r[k] = a[j]; } }\n\n return r;\n};\nfunction customErrorFactory(fn, parent) {\n if (parent === void 0) {\n parent = Error;\n }\n\n function CustomError() {\n var arguments$1 = arguments;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments$1[_i];\n }\n\n if (!(this instanceof CustomError)) { return new (CustomError.bind.apply(CustomError, __spreadArrays([void 0], args)))(); }\n parent.apply(this, args);\n Object.defineProperty(this, 'name', {\n value: fn.name || parent.name,\n enumerable: false,\n configurable: true\n });\n fn.apply(this, args);\n fixStack(this, CustomError);\n }\n\n return Object.defineProperties(CustomError, {\n prototype: {\n value: Object.create(parent.prototype, {\n constructor: {\n value: CustomError,\n writable: true,\n configurable: true\n }\n })\n }\n });\n}\n\nexport { CustomError, customErrorFactory };\n//# sourceMappingURL=custom-error.mjs.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/ts-custom-error/dist/custom-error.mjs\n// module id = 979\n// module chunks = 1","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQuMzk0IDI0LjM5NCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjQuMzk0IDI0LjM5NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+DQo8Zz4NCgk8ZyBpZD0iYjgwX2Zvb2QiPg0KCQk8Y2lyY2xlIGN4PSIxMi4xOTciIGN5PSIxMi4xOTciIHI9IjEyLjE5NyIgZmlsbD0iIzQyNDI0MiIvPg0KCTwvZz4NCgk8ZyBpZD0iQ2FwYV8xXzgyXyI+DQoJPC9nPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/black-circle.svg\n// module id = 984\n// module chunks = 1","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQuMzk0IDI0LjM5NCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjQuMzk0IDI0LjM5NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+DQo8Zz4NCgk8ZyBpZD0iYjgwX2Zvb2QiPg0KCQk8Y2lyY2xlIGN4PSIxMi4xOTciIGN5PSIxMi4xOTciIHI9IjEyLjE5NyIgZmlsbD0iIzJlY2M3MSIvPg0KCTwvZz4NCgk8ZyBpZD0iQ2FwYV8xXzgyXyI+DQoJPC9nPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/green-circle.svg\n// module id = 985\n// module chunks = 1","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8AAAAMcAQMAAACl5F6MAAAABlBMVEW8vsDn6OnyCdevAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEbUlEQVR4AezBMQEAAADCoPVP7WsIoAcAAAAAAAAAAAAAAAAAAAAAAIydO0iOk4eCAGyVXNEuukF0FB1NHE1H0RG0ZEHRf5A99WYMk1T+Kvolw+vVjBf+CkMLoRCFWQkuqCquB3QOOQKrCpwBKJ1i6Jxk/EzTubaArgAHQOeyjhu8aMEafUrYolLjLRMfLrpw5cMYadeBnTLcrwN7ZXi+DhyuCi8GG/xy8Gyw3SRe7n7cLzfnajah5z87keFJ//lYf0WAAq+vv+rDX+fir+zpr2Xqr95qrle/ywr9OxX+/nF19fGRmR/yrzCJCudRqNHiNDHhIlquTBgCF2aX3V2BwYT9nUYdNoNojnqjiKJ56q0xiRaok4EsWqQO2EW0RJ3wQbTMvDc6iFaYswEvkx5Hnf8E0Tx1xhcfj3gh1lhOLHVWnx8vLvBq/FAnYpGBhwEElVfjhyETjVjj5bFanATpLrHIcpDkIstpJRdZLmRykaW63CLLMZKLLGeVXGS5jvlFluZKq8k1lnGMXGMZuck1lnsVu8ZydybXWOYj5BrLDIxcY5lz8mrML/JupPIC02osf3tyjeVqY9dYikys8QlTAUIsFovFYrFYLJaIP8hq8D4GG2ywwQYbbLDBBhtssMEGG2ywwQYb3N9+G/ePwQYbbLDBBhtssMEGG5yhA3ugqcARmFXgDKwqcAGgAsu+J1zYy94UXDjIRxosH+crwUm2euHCWX43Fy7YciUYI9N1YIeRavDpsMdIM9jgs+BOh4PBavA3ras6aMFRC06TEpyrLsy/H5emBKOrwvxZpsOsA3ssOk8SQQ9edZ4WI6DzfJwU4Ym/FCE7ofFXfQoJlnUugRsHdl9GTKBzlxRF6vzVW9kngr5eLTB5hT6MUhPgLfdDRhwQCQ79TQXe756tAWcp10XgIuMYF8aWxoedLtz5sB/wzIeDLrzw4QiRqHBSgOvnwLWFCrc7eCLCbnwrXFh2ZMdHKhEOyx3ciHBch8OHE2TtCZ0IZ0wCz1S4jhGTDhc0ecN9IcLja/qEVwIswqwC+/H3zfgMDw7j95cbPBFg+YEKnIaGWyoNzpvmcEujws0rwGX7LnCnwWOgDLhlZsFuaJEP+zFCC7yw4DCAhFtWFhwHl/lwwpeowRMJzlpw+QpXEgwl2O3gxoH9Du4cOOzgmQNHLTjt4OXF4byDVw5csAsHhhLssM/EgD32qQw4aMER+zQtuDPgpAVn7DMz4IJ9FgYMJdgdwSsB9jgKAQ5acDyEJy24ng8nLTgfwu18uBzC/XwYSrA7hmfCeyCHWU6Hw18Gr4R3fY5zOpy04PwEngj/KfYw9WwYSrB7BjfCW4qH6a8Kh2fwTHgF9jDLyXDSgvMzeKW8UX6Uk2Eowe45PL0m7J/D9VQ4aMG/isH/JwYbbLDBBhtssMEGG2ywtz3K/2tvDmQAAAAABvlbn+NbCSQWi8VisVgsFovFYrFYLBYvAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEHVJjR5bJLd8AAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/image.png\n// module id = 986\n// module chunks = 1","module.exports = \"data:image/png;base64,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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/invoice.png\n// module id = 987\n// module chunks = 1","module.exports = __webpack_public_path__ + \"static/img/lyngbyTaarbæk-logo.e5dbb24.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/lyngbyTaarbæk-logo.png\n// module id = 988\n// module chunks = 1","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MjAgMTc3Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2JhMTIyMzt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPm5pcmFzX2xvZ29fbmV3PC90aXRsZT48cGF0aCBpZD0ibmlyYXMiIGNsYXNzPSJjbHMtMSIgZD0iTTc5LjgyLDEyNi43NSwzNy41NCw4Mi40Nkg2djgzLjIxSDMxLjVsMi42OC01MC4zMyw0OS42Niw1MC4zM2gyNC44M1Y4Mi40Nkg4Mi41Wk0xMzMuNSw4Mi40NkgxNjF2ODMuMjFIMTMzLjVabTE0NS42MiwyNC44M2MtMS4zNC0yMS40Ny0yNC44My0yNS41LTQzLjYyLTI2LjE3LTE1LjQzLDAtNTEsMS4zNC01MSwxLjM0djgzLjIxaDI0LjgzbDQtNjYuNDNzMTAuMDctLjY3LDE2Ljc4LS42N2MxMC43NCwwLDE4LjEyLDQsMTguNzksMTAuNzRzLTIsMTQuNzYtMjYuMTcsMTQuNzZ2MTMuNDJsMjYuODQsMjguODZoMjguODZMMjU3LDEzNi4xNGMuNjctLjY3LDIzLjQ5LTYuNzEsMjIuMTQtMjguODZtOTYtMjQuODNIMzM0LjE1cy00LDYtMTcuNDUsMzIuODhjLTE4LjEyLTE0Ljc2LTIyLjgyLTM0LjIyLTI0LjE2LTQzLjYyaC0uNjd2MzUuNTdhNTguMjUsNTguMjUsMCwwLDAsMTUuNDMsMjguMThDMjk1LjIzLDE2MC4zLDI5My4yMSwxNjUsMjkzLjIxLDE2NWgyNi44NGw4LjcyLTE2LjExaDBhODguOCw4OC44LDAsMCwwLDI2LjE3LDQuN1YxMzAuNzdhNTUuNTIsNTUuNTIsMCwwLDEtMTQuNzYtMi42OGwxMy40Mi0yNC4xNiwzNC44OSw2MS43NGgyNi44NFM0MTIsMTU3LjYxLDM5NC41NCwxMjJjLTE1LjQzLTMzLjU1LTE5LjQ2LTM5LjU5LTE5LjQ2LTM5LjU5bTkzLjI4LDI4Ljg2Yy04LjcyLS42Ny0xMy40Mi0yLjY4LTEzLjQyLTYuNzEsMC01LjM3LDYuNzEtNy4zOCwyMC44LTcuMzhzMzIuODgsMi42OCwzMi44OCwyLjY4VjgwLjQ0YTMxMS41NCwzMTEuNTQsMCwwLDAtNDIuMjgtMmMtNy4zOCwwLTQyLjk1LDAtNDIuOTUsMjguMTgsMCwyNi44NCwzNC44OSwyNy41MSw0OS42NiwyOC4xOCw1LjM3LDAsMTEuNDEsMS4zNCwxMS40MSw1LjM3LjY3LDYuNzEtMTAuMDcsNy4zOC0yNi4xNyw3LjM4YTE0Mi4yOCwxNDIuMjgsMCwwLDEtMzEuNTQtNHYyMC44UzQ0OC45LDE2Nyw0NjUuNjcsMTY3YzcuMzgsMCw0OSwxLjM0LDQ4LjMyLTI4LjE4LjY3LTI5LjUzLTMyLjg4LTI2Ljg0LTQ1LjYzLTI3LjUxTTMxMCw3NC40YzMuMzYtMTguMTIsMjEuNDctMzcuNTgsNDUuNjMtMzguOTJWMTBDMzIwLjczLDE0LDMwNy4zLDQ0LjIxLDMwOCw2MS42NWMuNjcsNCwuNjcsOC43MiwyLDEyLjc1WiIvPjwvc3ZnPg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/niraslogo.svg\n// module id = 989\n// module chunks = 1","module.exports = __webpack_public_path__ + \"static/img/novafos.fce0aaa.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/novafos.jpg\n// module id = 990\n// module chunks = 1","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQuMzk0IDI0LjM5NCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjQuMzk0IDI0LjM5NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSI1MTJweCIgaGVpZ2h0PSI1MTJweCI+DQo8Zz4NCgk8ZyBpZD0iYjgwX2Zvb2QiPg0KCQk8Y2lyY2xlIGN4PSIxMi4xOTciIGN5PSIxMi4xOTciIHI9IjEyLjE5NyIgZmlsbD0iI2U3NGMzYyIvPg0KCTwvZz4NCgk8ZyBpZD0iQ2FwYV8xXzgyXyI+DQoJPC9nPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/red-circle.svg\n// module id = 991\n// module chunks = 1","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQgAAAAtCAYAAABS4PXOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpkNmE5NWMxNy02YjhlLTQ0YmItYWFhNy1lN2JiZDE2MDExY2IiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODg4MkY3RkE0M0FCMTFFM0I5ODNGNDUzNzY1QzNGNkUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODg4MkY3Rjk0M0FCMTFFM0I5ODNGNDUzNzY1QzNGNkUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OGViOTYyNmItOWU3Yi00NjRhLThjYzktZGM3NmM0NWNkMGM3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmQ2YTk1YzE3LTZiOGUtNDRiYi1hYWE3LWU3YmJkMTYwMTFjYiIvPiA8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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/tårnbyForsyning-logo.png\n// module id = 992\n// module chunks = 1","module.exports = \"data:image/png;base64,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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/image/vandOgAffald-logo.png\n// module id = 993\n// module chunks = 1","var Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./FormUpload.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-674d82ba\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./FormUpload.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/FormUpload.vue\n// module id = 994\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3998ba3f\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MapComponent.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MapComponent.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3998ba3f\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./MapComponent.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/MapComponent.vue\n// module id = 995\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4474995e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./helpmodal.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./helpmodal.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4474995e\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./helpmodal.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/helpmodal.vue\n// module id = 996\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-712f8702\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./modal.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./modal.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-712f8702\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./modal.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/modal.vue\n// module id = 997\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-c46dac0a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./default.vue\")\n}\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./default.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c46dac0a\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./default.vue\"),\n /* styles */\n injectStyle,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/default.vue\n// module id = 998\n// module chunks = 1","var Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./init.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-240ecd74\\\",\\\"hasScoped\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./init.vue\"),\n /* styles */\n null,\n /* scopeId */\n null,\n /* moduleIdentifier (server only) */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/init.vue\n// module id = 999\n// module chunks = 1"],"sourceRoot":""}