diff --git a/.next/cache/webpack/client-development-fallback/index.pack.gz.old b/.next/cache/webpack/client-development-fallback/index.pack.gz.old
index 217c7e3d9..fc389ceca 100644
Binary files a/.next/cache/webpack/client-development-fallback/index.pack.gz.old and b/.next/cache/webpack/client-development-fallback/index.pack.gz.old differ
diff --git a/.next/cache/webpack/client-development/index.pack.gz.old b/.next/cache/webpack/client-development/index.pack.gz.old
index 6560a018c..203853133 100644
Binary files a/.next/cache/webpack/client-development/index.pack.gz.old and b/.next/cache/webpack/client-development/index.pack.gz.old differ
diff --git a/.next/cache/webpack/server-development/index.pack.gz.old b/.next/cache/webpack/server-development/index.pack.gz.old
index 69080d1bb..074d34a4c 100644
Binary files a/.next/cache/webpack/server-development/index.pack.gz.old and b/.next/cache/webpack/server-development/index.pack.gz.old differ
diff --git a/.next/server/components_MapComponent_js.js b/.next/server/components_MapComponent_js.js
index 2bd62af5b..f41092e5b 100644
--- a/.next/server/components_MapComponent_js.js
+++ b/.next/server/components_MapComponent_js.js
@@ -17,7 +17,17 @@ exports.modules = {
\************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! leaflet */ \"leaflet\");\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(leaflet__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! leaflet/dist/leaflet.css */ \"./node_modules/leaflet/dist/leaflet.css\");\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! leaflet-contextmenu/dist/leaflet.contextmenu.css */ \"./node_modules/leaflet-contextmenu/dist/leaflet.contextmenu.css\");\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! leaflet-contextmenu */ \"leaflet-contextmenu\");\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\nconst MapComponent = ({ locations, onLocationUpdate })=>{\n const mapRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [map, setMap] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [online, setOnline] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(navigator.onLine);\n const offlineTileLayer = \"../TileMap/mapTiles/{z}/{x}/{y}.png\";\n const onlineTileLayer = \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";\n let initialMap = [];\n // Funktionen zur Überwachung der Internetverbindung\n const checkInternet = ()=>{\n console.log(\"Checking internet connectivity...\");\n fetch(\"https://tile.openstreetmap.org/1/1/1.png\", {\n method: \"HEAD\"\n }).then((response)=>setOnline(response.ok)).catch(()=>setOnline(false));\n };\n // Initialisiere die Karte\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (mapRef.current && !map) {\n initialMap = leaflet__WEBPACK_IMPORTED_MODULE_2___default().map(mapRef.current, {\n center: [\n 53.111111,\n 8.4625\n ],\n zoom: 10,\n zoomControl: false,\n contextmenu: true,\n contextmenuItems: [\n {\n text: \"Station hinzuf\\xfcgen\",\n callback: showAddStationPopup\n },\n {\n text: \"Station \\xf6ffnen (Tab)\",\n icon: \"img/screen_new.png\",\n callback: newLink\n },\n {\n text: \"Station \\xf6ffnen\",\n icon: \"img/screen_same.png\",\n callback: sameLink\n },\n {\n text: \"Koordinaten\",\n icon: \"img/screen_same.png\",\n callback: lata\n },\n \"-\",\n {\n text: \"Reinzoomen\",\n callback: zoomIn\n },\n {\n text: \"Rauszoomen\",\n callback: zoomOut\n },\n {\n text: \"Hier zentrieren\",\n callback: centerHere\n }\n ]\n });\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n attribution: '© OpenStreetMap contributors'\n }).addTo(initialMap);\n setMap(initialMap);\n }\n }, [\n mapRef,\n map\n ]);\n // Handle online/offline status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n window.addEventListener(\"online\", checkInternet);\n window.addEventListener(\"offline\", checkInternet);\n return ()=>{\n window.removeEventListener(\"online\", checkInternet);\n window.removeEventListener(\"offline\", checkInternet);\n };\n }, []);\n // Update map layers based on online status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (map) {\n const newLayer = leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n minZoom: 7,\n maxZoom: online ? 19 : 14,\n attribution: 'Map data \\xa9 OpenStreetMap contributors'\n });\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().TileLayer)) {\n map.removeLayer(layer);\n }\n });\n newLayer.addTo(map);\n }\n }, [\n online,\n map\n ]);\n // Marker handling\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Remove old markers\n if (map) {\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().Marker)) {\n map.removeLayer(layer);\n }\n });\n // Add new markers\n locations.forEach((location)=>{\n const { latitude, longitude } = parsePoint(location.position);\n const marker = leaflet__WEBPACK_IMPORTED_MODULE_2___default().marker([\n latitude,\n longitude\n ], {\n icon: leaflet__WEBPACK_IMPORTED_MODULE_2___default().icon({\n iconUrl: \"/location.svg\",\n iconSize: [\n 34,\n 34\n ],\n iconAnchor: [\n 17,\n 34\n ],\n popupAnchor: [\n 0,\n -34\n ]\n }),\n draggable: true,\n id: location.idPoi\n });\n marker.bindPopup(`${location.description || \"Unbekannt\"}
Type: ${location.idPoiTyp || \"N/A\"}
Lat: ${latitude.toFixed(5)}, Lng: ${longitude.toFixed(5)}`);\n marker.on(\"dragend\", function(e) {\n const newLat = e.target.getLatLng().lat;\n const newLng = e.target.getLatLng().lng;\n const markerId = e.target.options.id;\n updateLocationInDatabase(markerId, newLat, newLng).then(()=>{\n onLocationUpdate(markerId, newLat, newLng);\n });\n });\n marker.addTo(map);\n });\n }\n }, [\n map,\n locations,\n onLocationUpdate\n ]);\n //------------------------------------------\n function parsePoint(pointString) {\n const match = pointString.match(/POINT\\s*\\((\\d+(\\.\\d+)?)\\s+(\\d+(\\.\\d+)?)\\)/);\n if (match) {\n return {\n longitude: parseFloat(match[1]),\n latitude: parseFloat(match[3])\n };\n } else {\n // Handle the error or return a default/fallback value\n console.error(\"Invalid POINT format:\", pointString);\n return null; // Oder eine sinnvolle Standardantwort\n }\n }\n //----------------------------------\n //-----Kontextmenu----------------\n const newLink = (e)=>{\n try {\n if (!e.relatedTarget || !e.relatedTarget.options) {\n throw new Error(\"relatedTarget or options not defined\");\n }\n alert(\"Neues Fenster: \" + e.relatedTarget.options.test);\n window.open(`../devices/${e.relatedTarget.options.test}`, \"_blank\").focus();\n } catch (error) {\n console.error(\"Failed in newLink function:\", error);\n }\n };\n const sameLink = (e)=>{\n alert(e.relatedTarget.options.test);\n window.open(\"../devices/\" + e.relatedTarget.options.test, \"_parent\").focus();\n };\n const lata = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat);\n };\n const zoomIn = (e)=>{\n initialMap.flyTo(e.latlng, 12);\n };\n const zoomOut = (e)=>{\n fly();\n };\n const centerHere = (e)=>{\n initialMap.panTo(e.latlng);\n };\n const showCoordinates = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat + \"\\nL\\xe4ngengrad: \" + e.latlng.lng);\n };\n const showData = (e)=>{\n console.log(e);\n };\n const showTalas = (e)=>{\n map.addLayer(TALAS);\n loadData();\n };\n const hideTalas = (e)=>{\n map.removeLayer(TALAS);\n loadData();\n };\n const showGSM = (e)=>{\n map.addLayer(GMA);\n loadData();\n };\n const hideGSM = (e)=>{\n map.removeLayer(GMA);\n loadData();\n };\n //-----Kontextmenu----ende------------\n // Ensure this function is only called when map is initialized and available\n const showAddStationPopup = (e)=>{\n if (!initialMap) {\n console.log(\"Map is not initialized.\");\n return;\n }\n const popupContent = leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomUtil.create(\"div\");\n popupContent.innerHTML = `\r\n
\r\n `;\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().popup().setLatLng(e.latlng).setContent(popupContent).openOn(initialMap);\n // Attach event listener here\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomEvent.on(popupContent, \"submit\", handleSubmit);\n };\n /*\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n const form = event.target;\r\n const data = {\r\n name: form.name.value,\r\n type: form.type.value,\r\n latitude: form.lat.value,\r\n longitude: form.lng.value,\r\n };\r\n\r\n onAddLocation(name, type, lat, lng);\r\n console.log(\"Name: \", name, \"Type: \", type, \"Lat: \", lat, \"Lng: \", lng);\r\n map.closePopup();\r\n };\r\n*/ // Funktion zum Hinzufügen eines neuen Standorts\n async function handleSubmit(event) {\n event.preventDefault();\n const form = event.target;\n const data = {\n name: form.name.value,\n type: form.type.value,\n latitude: form.lat.value,\n longitude: form.lng.value\n };\n try {\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(data)\n });\n const result = await response.json();\n if (response.ok) {\n console.log(\"Standort hinzugef\\xfcgt:\", result);\n alert(\"Standort erfolgreich hinzugef\\xfcgt!\");\n form.reset(); // Formular zurücksetzen\n // Hier könntest du weitere Aktionen durchführen, wie das Schließen des Popups oder das Aktualisieren der Marker auf der Karte\n } else {\n throw new Error(result.error || \"Ein unbekannter Fehler ist aufgetreten.\");\n }\n } catch (error) {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts:\", error);\n alert(error.message);\n }\n }\n function fly(stationValue) {\n var x = 51.41321407879154;\n var y = 7.739617925303934;\n var zoom = 7;\n /* for (var i = 0; i < dataStaticlength; i++) {\r\n var gisStatics = dataStatic[i];\r\n if (stationValue === gisStatics.Area_Name) {\r\n //console.log(gisStatics.X+\",\"+gisStatics.Y);\r\n x = gisStatics.X;\r\n y = gisStatics.Y;\r\n }\r\n }\r\n if (y === 7.739617925303934) {\r\n zoom = 8;\r\n } */ initialMap.flyTo([\n x,\n y\n ], zoom);\n /* var popup = new L.Popup();\r\n oms.addListener(\"click\", function (marker) {\r\n popup.setContent(marker.desc);\r\n popup.setLatLng(marker.getLatLng());\r\n map.openPopup(popup);\r\n });\r\n\r\n for (var i = 0; i < window.mapData.length; i++) {\r\n var datum = window.mapData[i];\r\n var loc = new L.LatLng(datum.lat, datum.lon);\r\n var marker = new L.Marker(loc);\r\n marker.desc = datum.d;\r\n map.addLayer(marker);\r\n //oms.addMarker(marker); // <-- here\r\n } */ }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"map\",\n ref: mapRef,\n style: {\n height: \"100vh\",\n width: \"100vw\",\n overflow: \"hidden\"\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\components\\\\MapComponent.js\",\n lineNumber: 375,\n columnNumber: 5\n }, undefined);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MapComponent);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUk7UUFDUixJQUFJQyxJQUFJO1FBQ1IsSUFBSTVHLE9BQU87UUFFWDs7Ozs7Ozs7OztNQVVFLEdBQ0ZaLFdBQVdnRixLQUFLLENBQUM7WUFBQ3VDO1lBQUdDO1NBQUUsRUFBRTVHO0lBRXpCOzs7Ozs7Ozs7Ozs7OztNQWNFLEdBQ0o7SUFFQSxxQkFDRSw4REFBQzZHO1FBQ0NyRSxJQUFHO1FBQ0hzRSxLQUFLbkk7UUFDTG9JLE9BQU87WUFBRUMsUUFBUTtZQUFTQyxPQUFPO1lBQVNDLFVBQVU7UUFBUzs7Ozs7O0FBR25FO0FBRUEsaUVBQWUxSSxZQUFZQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vY29tcG9uZW50cy9NYXBDb21wb25lbnQuanM/ZDA3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMIGZyb20gXCJsZWFmbGV0XCI7XHJcbmltcG9ydCBcImxlYWZsZXQvZGlzdC9sZWFmbGV0LmNzc1wiO1xyXG5pbXBvcnQgXCJsZWFmbGV0LWNvbnRleHRtZW51L2Rpc3QvbGVhZmxldC5jb250ZXh0bWVudS5jc3NcIjtcclxuaW1wb3J0IFwibGVhZmxldC1jb250ZXh0bWVudVwiO1xyXG5jb25zdCBNYXBDb21wb25lbnQgPSAoeyBsb2NhdGlvbnMsIG9uTG9jYXRpb25VcGRhdGUgfSkgPT4ge1xyXG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZihudWxsKTtcclxuICBjb25zdCBbbWFwLCBzZXRNYXBdID0gdXNlU3RhdGUobnVsbCk7XHJcbiAgY29uc3QgW29ubGluZSwgc2V0T25saW5lXSA9IHVzZVN0YXRlKG5hdmlnYXRvci5vbkxpbmUpO1xyXG4gIGNvbnN0IG9mZmxpbmVUaWxlTGF5ZXIgPSBcIi4uL1RpbGVNYXAvbWFwVGlsZXMve3p9L3t4fS97eX0ucG5nXCI7XHJcbiAgY29uc3Qgb25saW5lVGlsZUxheWVyID0gXCJodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZ1wiO1xyXG5cclxuICBsZXQgaW5pdGlhbE1hcCA9IFtdO1xyXG5cclxuICAvLyBGdW5rdGlvbmVuIHp1ciDDnGJlcndhY2h1bmcgZGVyIEludGVybmV0dmVyYmluZHVuZ1xyXG4gIGNvbnN0IGNoZWNrSW50ZXJuZXQgPSAoKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkNoZWNraW5nIGludGVybmV0IGNvbm5lY3Rpdml0eS4uLlwiKTtcclxuICAgIGZldGNoKFwiaHR0cHM6Ly90aWxlLm9wZW5zdHJlZXRtYXAub3JnLzEvMS8xLnBuZ1wiLCB7IG1ldGhvZDogXCJIRUFEXCIgfSlcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiBzZXRPbmxpbmUocmVzcG9uc2Uub2spKVxyXG4gICAgICAuY2F0Y2goKCkgPT4gc2V0T25saW5lKGZhbHNlKSk7XHJcbiAgfTtcclxuICAvLyBJbml0aWFsaXNpZXJlIGRpZSBLYXJ0ZVxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQgJiYgIW1hcCkge1xyXG4gICAgICBpbml0aWFsTWFwID0gTC5tYXAobWFwUmVmLmN1cnJlbnQsIHtcclxuICAgICAgICBjZW50ZXI6IFs1My4xMTExMTEsIDguNDYyNV0sXHJcbiAgICAgICAgem9vbTogMTAsXHJcbiAgICAgICAgem9vbUNvbnRyb2w6IGZhbHNlLCAvLyBEZWFrdGl2aWVyZSBkaWUgU3RhbmRhcmQtWm9vbXN0ZXVlcnVuZ1xyXG4gICAgICAgIGNvbnRleHRtZW51OiB0cnVlLFxyXG4gICAgICAgIGNvbnRleHRtZW51SXRlbXM6IFtcclxuICAgICAgICAgIHsgdGV4dDogXCJTdGF0aW9uIGhpbnp1ZsO8Z2VuXCIsIGNhbGxiYWNrOiBzaG93QWRkU3RhdGlvblBvcHVwIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiU3RhdGlvbiDDtmZmbmVuIChUYWIpXCIsXHJcbiAgICAgICAgICAgIGljb246IFwiaW1nL3NjcmVlbl9uZXcucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBuZXdMaW5rLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogXCJTdGF0aW9uIMO2ZmZuZW5cIixcclxuICAgICAgICAgICAgaWNvbjogXCJpbWcvc2NyZWVuX3NhbWUucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBzYW1lTGluayxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiS29vcmRpbmF0ZW5cIixcclxuICAgICAgICAgICAgaWNvbjogXCJpbWcvc2NyZWVuX3NhbWUucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBsYXRhLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFwiLVwiLCAvLyBEaXZpZGVyXHJcbiAgICAgICAgICB7IHRleHQ6IFwiUmVpbnpvb21lblwiLCBjYWxsYmFjazogem9vbUluIH0sXHJcbiAgICAgICAgICB7IHRleHQ6IFwiUmF1c3pvb21lblwiLCBjYWxsYmFjazogem9vbU91dCB9LFxyXG4gICAgICAgICAgeyB0ZXh0OiBcIkhpZXIgemVudHJpZXJlblwiLCBjYWxsYmFjazogY2VudGVySGVyZSB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICBMLnRpbGVMYXllcihvbmxpbmUgPyBvbmxpbmVUaWxlTGF5ZXIgOiBvZmZsaW5lVGlsZUxheWVyLCB7XHJcbiAgICAgICAgYXR0cmlidXRpb246XHJcbiAgICAgICAgICAnJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnLFxyXG4gICAgICB9KS5hZGRUbyhpbml0aWFsTWFwKTtcclxuXHJcbiAgICAgIHNldE1hcChpbml0aWFsTWFwKTtcclxuICAgIH1cclxuICB9LCBbbWFwUmVmLCBtYXBdKTtcclxuXHJcbiAgLy8gSGFuZGxlIG9ubGluZS9vZmZsaW5lIHN0YXR1c1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwib2ZmbGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwib25saW5lXCIsIGNoZWNrSW50ZXJuZXQpO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9mZmxpbmVcIiwgY2hlY2tJbnRlcm5ldCk7XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgLy8gVXBkYXRlIG1hcCBsYXllcnMgYmFzZWQgb24gb25saW5lIHN0YXR1c1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAobWFwKSB7XHJcbiAgICAgIGNvbnN0IG5ld0xheWVyID0gTC50aWxlTGF5ZXIoXHJcbiAgICAgICAgb25saW5lID8gb25saW5lVGlsZUxheWVyIDogb2ZmbGluZVRpbGVMYXllcixcclxuICAgICAgICB7XHJcbiAgICAgICAgICBtaW5ab29tOiA3LFxyXG4gICAgICAgICAgbWF4Wm9vbTogb25saW5lID8gMTkgOiAxNCxcclxuICAgICAgICAgIGF0dHJpYnV0aW9uOlxyXG4gICAgICAgICAgICAnTWFwIGRhdGEgwqkgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycycsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgICAgbWFwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcclxuICAgICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLlRpbGVMYXllcikge1xyXG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbmV3TGF5ZXIuYWRkVG8obWFwKTtcclxuICAgIH1cclxuICB9LCBbb25saW5lLCBtYXBdKTtcclxuXHJcbiAgLy8gTWFya2VyIGhhbmRsaW5nXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIFJlbW92ZSBvbGQgbWFya2Vyc1xyXG4gICAgaWYgKG1hcCkge1xyXG4gICAgICBtYXAuZWFjaExheWVyKChsYXllcikgPT4ge1xyXG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XHJcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBBZGQgbmV3IG1hcmtlcnNcclxuICAgICAgbG9jYXRpb25zLmZvckVhY2goKGxvY2F0aW9uKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBsYXRpdHVkZSwgbG9uZ2l0dWRlIH0gPSBwYXJzZVBvaW50KGxvY2F0aW9uLnBvc2l0aW9uKTtcclxuICAgICAgICBjb25zdCBtYXJrZXIgPSBMLm1hcmtlcihbbGF0aXR1ZGUsIGxvbmdpdHVkZV0sIHtcclxuICAgICAgICAgIGljb246IEwuaWNvbih7XHJcbiAgICAgICAgICAgIGljb25Vcmw6IFwiL2xvY2F0aW9uLnN2Z1wiLFxyXG4gICAgICAgICAgICBpY29uU2l6ZTogWzM0LCAzNF0sXHJcbiAgICAgICAgICAgIGljb25BbmNob3I6IFsxNywgMzRdLFxyXG4gICAgICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zNF0sXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGlkOiBsb2NhdGlvbi5pZFBvaSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgbWFya2VyLmJpbmRQb3B1cChcclxuICAgICAgICAgIGA8Yj4ke2xvY2F0aW9uLmRlc2NyaXB0aW9uIHx8IFwiVW5iZWthbm50XCJ9PC9iPjxicj5UeXBlOiAke2xvY2F0aW9uLmlkUG9pVHlwIHx8IFwiTi9BXCJ9PGJyPkxhdDogJHtsYXRpdHVkZS50b0ZpeGVkKDUpfSwgTG5nOiAke2xvbmdpdHVkZS50b0ZpeGVkKDUpfWBcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBtYXJrZXIub24oXCJkcmFnZW5kXCIsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdMYXQgPSBlLnRhcmdldC5nZXRMYXRMbmcoKS5sYXQ7XHJcbiAgICAgICAgICBjb25zdCBuZXdMbmcgPSBlLnRhcmdldC5nZXRMYXRMbmcoKS5sbmc7XHJcbiAgICAgICAgICBjb25zdCBtYXJrZXJJZCA9IGUudGFyZ2V0Lm9wdGlvbnMuaWQ7XHJcbiAgICAgICAgICB1cGRhdGVMb2NhdGlvbkluRGF0YWJhc2UobWFya2VySWQsIG5ld0xhdCwgbmV3TG5nKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgb25Mb2NhdGlvblVwZGF0ZShtYXJrZXJJZCwgbmV3TGF0LCBuZXdMbmcpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1hcmtlci5hZGRUbyhtYXApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9LCBbbWFwLCBsb2NhdGlvbnMsIG9uTG9jYXRpb25VcGRhdGVdKTtcclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBmdW5jdGlvbiBwYXJzZVBvaW50KHBvaW50U3RyaW5nKSB7XHJcbiAgICBjb25zdCBtYXRjaCA9IHBvaW50U3RyaW5nLm1hdGNoKFxyXG4gICAgICAvUE9JTlRcXHMqXFwoKFxcZCsoXFwuXFxkKyk/KVxccysoXFxkKyhcXC5cXGQrKT8pXFwpL1xyXG4gICAgKTtcclxuICAgIGlmIChtYXRjaCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxvbmdpdHVkZTogcGFyc2VGbG9hdChtYXRjaFsxXSksXHJcbiAgICAgICAgbGF0aXR1ZGU6IHBhcnNlRmxvYXQobWF0Y2hbM10pLCAvLyBBY2h0dW5nOiBJbmRleCAzIGbDvHIgZGllIHp3ZWl0ZSBLb29yZGluYXRlLCB3ZWdlbiBkZXIgR3J1cHBlIChcXC5cXGQrKT9cclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEhhbmRsZSB0aGUgZXJyb3Igb3IgcmV0dXJuIGEgZGVmYXVsdC9mYWxsYmFjayB2YWx1ZVxyXG4gICAgICBjb25zb2xlLmVycm9yKFwiSW52YWxpZCBQT0lOVCBmb3JtYXQ6XCIsIHBvaW50U3RyaW5nKTtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIE9kZXIgZWluZSBzaW5udm9sbGUgU3RhbmRhcmRhbnR3b3J0XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vLS0tLS1Lb250ZXh0bWVudS0tLS0tLS0tLS0tLS0tLS1cclxuICBjb25zdCBuZXdMaW5rID0gKGUpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICghZS5yZWxhdGVkVGFyZ2V0IHx8ICFlLnJlbGF0ZWRUYXJnZXQub3B0aW9ucykge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlbGF0ZWRUYXJnZXQgb3Igb3B0aW9ucyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgfVxyXG4gICAgICBhbGVydChcIk5ldWVzIEZlbnN0ZXI6IFwiICsgZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCk7XHJcbiAgICAgIHdpbmRvd1xyXG4gICAgICAgIC5vcGVuKGAuLi9kZXZpY2VzLyR7ZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdH1gLCBcIl9ibGFua1wiKVxyXG4gICAgICAgIC5mb2N1cygpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCBpbiBuZXdMaW5rIGZ1bmN0aW9uOlwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc2FtZUxpbmsgPSAoZSkgPT4ge1xyXG4gICAgYWxlcnQoZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCk7XHJcbiAgICB3aW5kb3dcclxuICAgICAgLm9wZW4oXCIuLi9kZXZpY2VzL1wiICsgZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCwgXCJfcGFyZW50XCIpXHJcbiAgICAgIC5mb2N1cygpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGxhdGEgPSAoZSkgPT4ge1xyXG4gICAgYWxlcnQoXCJCcmVpdGVuZ3JhZDogXCIgKyBlLmxhdGxuZy5sYXQpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHpvb21JbiA9IChlKSA9PiB7XHJcbiAgICBpbml0aWFsTWFwLmZseVRvKGUubGF0bG5nLCAxMik7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgem9vbU91dCA9IChlKSA9PiB7XHJcbiAgICBmbHkoKTtcclxuICB9O1xyXG4gIGNvbnN0IGNlbnRlckhlcmUgPSAoZSkgPT4ge1xyXG4gICAgaW5pdGlhbE1hcC5wYW5UbyhlLmxhdGxuZyk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc2hvd0Nvb3JkaW5hdGVzID0gKGUpID0+IHtcclxuICAgIGFsZXJ0KFwiQnJlaXRlbmdyYWQ6IFwiICsgZS5sYXRsbmcubGF0ICsgXCJcXG5Mw6RuZ2VuZ3JhZDogXCIgKyBlLmxhdGxuZy5sbmcpO1xyXG4gIH07XHJcbiAgY29uc3Qgc2hvd0RhdGEgPSAoZSkgPT4ge1xyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgfTtcclxuICBjb25zdCBzaG93VGFsYXMgPSAoZSkgPT4ge1xyXG4gICAgbWFwLmFkZExheWVyKFRBTEFTKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBoaWRlVGFsYXMgPSAoZSkgPT4ge1xyXG4gICAgbWFwLnJlbW92ZUxheWVyKFRBTEFTKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBzaG93R1NNID0gKGUpID0+IHtcclxuICAgIG1hcC5hZGRMYXllcihHTUEpO1xyXG4gICAgbG9hZERhdGEoKTtcclxuICB9O1xyXG4gIGNvbnN0IGhpZGVHU00gPSAoZSkgPT4ge1xyXG4gICAgbWFwLnJlbW92ZUxheWVyKEdNQSk7XHJcbiAgICBsb2FkRGF0YSgpO1xyXG4gIH07XHJcbiAgLy8tLS0tLUtvbnRleHRtZW51LS0tLWVuZGUtLS0tLS0tLS0tLS1cclxuICAvLyBFbnN1cmUgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCB3aGVuIG1hcCBpcyBpbml0aWFsaXplZCBhbmQgYXZhaWxhYmxlXHJcbiAgY29uc3Qgc2hvd0FkZFN0YXRpb25Qb3B1cCA9IChlKSA9PiB7XHJcbiAgICBpZiAoIWluaXRpYWxNYXApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJNYXAgaXMgbm90IGluaXRpYWxpemVkLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBvcHVwQ29udGVudCA9IEwuRG9tVXRpbC5jcmVhdGUoXCJkaXZcIik7XHJcbiAgICBwb3B1cENvbnRlbnQuaW5uZXJIVE1MID0gYFxyXG4gIDxmb3JtIGlkPVwiYWRkU3RhdGlvbkZvcm1cIiBjbGFzcz1cIm0tMCBwLTIgdy1mdWxsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj4gICAgICBcclxuICAgIDxsYWJlbCBmb3I9XCJuYW1lXCIgY2xhc3M9XCJibG9jayBtci0yIGZsZXgtbm9uZVwiPk5hbWU6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibmFtZVwiXHJcbiAgICAgIG5hbWU9XCJuYW1lXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIGRlciBTdGF0aW9uXCJcclxuICAgICAgY2xhc3M9XCJibG9jayBwLTIgZmxleC1ncm93IGJvcmRlci0yIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLW1kIHRleHQtc21cIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICBcclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPiAgIFxyXG4gICAgPGxhYmVsIGZvcj1cInR5cGVcIiBjbGFzcz1cImJsb2NrIG1yLTMgZmxleC1ub25lXCI+VHlwZTo8L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJ0eXBlXCJcclxuICAgICAgbmFtZT1cInR5cGVcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIlR5cCBkZXIgU3RhdGlvblwiXHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJsYXRcIiBjbGFzcz1cImJsb2NrIG1yLTIgZmxleC1ub25lXCI+QnJlaXRlbmdyYWQ6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibGF0XCJcclxuICAgICAgbmFtZT1cImxhdFwiXHJcbiAgICAgIHZhbHVlPVwiJHtlLmxhdGxuZy5sYXQudG9GaXhlZCg1KX1cIlxyXG4gICAgICByZWFkb25seVxyXG4gICAgICBjbGFzcz1cImJsb2NrIHAtMiBmbGV4LWdyb3cgYm9yZGVyLTIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbWQgdGV4dC1zbVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gICBcclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPiAgIFxyXG4gICAgPGxhYmVsIGZvcj1cImxuZ1wiIGNsYXNzPVwiYmxvY2sgbXItMiBmbGV4LW5vbmVcIj5Mw6RuZ2VuZ3JhZDo8L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJsbmdcIlxyXG4gICAgICBuYW1lPVwibG5nXCJcclxuICAgICAgdmFsdWU9XCIke2UubGF0bG5nLmxuZy50b0ZpeGVkKDUpfVwiXHJcbiAgICAgIHJlYWRvbmx5XHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGJ1dHRvblxyXG4gICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICBjbGFzcz1cImJnLWJsdWUtNTAwIGhvdmVyOmJnLWJsdWUtNzAwIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTIgcHgtNCByb3VuZGVkIHctZnVsbFwiXHJcbiAgPlxyXG4gICAgU3RhdGlvbiBoaW56dWbDvGdlblxyXG4gIDwvYnV0dG9uPlxyXG48L2Zvcm0+XHJcbiAgYDtcclxuXHJcbiAgICBMLnBvcHVwKCkuc2V0TGF0TG5nKGUubGF0bG5nKS5zZXRDb250ZW50KHBvcHVwQ29udGVudCkub3Blbk9uKGluaXRpYWxNYXApO1xyXG5cclxuICAgIC8vIEF0dGFjaCBldmVudCBsaXN0ZW5lciBoZXJlXHJcbiAgICBMLkRvbUV2ZW50Lm9uKHBvcHVwQ29udGVudCwgXCJzdWJtaXRcIiwgaGFuZGxlU3VibWl0KTtcclxuICB9O1xyXG5cclxuICAvKlxyXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChldmVudCkgPT4ge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBuYW1lOiBmb3JtLm5hbWUudmFsdWUsXHJcbiAgICAgIHR5cGU6IGZvcm0udHlwZS52YWx1ZSxcclxuICAgICAgbGF0aXR1ZGU6IGZvcm0ubGF0LnZhbHVlLFxyXG4gICAgICBsb25naXR1ZGU6IGZvcm0ubG5nLnZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICBvbkFkZExvY2F0aW9uKG5hbWUsIHR5cGUsIGxhdCwgbG5nKTtcclxuICAgIGNvbnNvbGUubG9nKFwiTmFtZTogXCIsIG5hbWUsIFwiVHlwZTogXCIsIHR5cGUsIFwiTGF0OiBcIiwgbGF0LCBcIkxuZzogXCIsIGxuZyk7XHJcbiAgICBtYXAuY2xvc2VQb3B1cCgpO1xyXG4gIH07XHJcbiovXHJcbiAgLy8gRnVua3Rpb24genVtIEhpbnp1ZsO8Z2VuIGVpbmVzIG5ldWVuIFN0YW5kb3J0c1xyXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdChldmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBuYW1lOiBmb3JtLm5hbWUudmFsdWUsXHJcbiAgICAgIHR5cGU6IGZvcm0udHlwZS52YWx1ZSxcclxuICAgICAgbGF0aXR1ZGU6IGZvcm0ubGF0LnZhbHVlLFxyXG4gICAgICBsb25naXR1ZGU6IGZvcm0ubG5nLnZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3RhbmRvcnQgaGluenVnZWbDvGd0OlwiLCByZXN1bHQpO1xyXG4gICAgICAgIGFsZXJ0KFwiU3RhbmRvcnQgZXJmb2xncmVpY2ggaGluenVnZWbDvGd0IVwiKTtcclxuICAgICAgICBmb3JtLnJlc2V0KCk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgICAvLyBIaWVyIGvDtm5udGVzdCBkdSB3ZWl0ZXJlIEFrdGlvbmVuIGR1cmNoZsO8aHJlbiwgd2llIGRhcyBTY2hsaWXDn2VuIGRlcyBQb3B1cHMgb2RlciBkYXMgQWt0dWFsaXNpZXJlbiBkZXIgTWFya2VyIGF1ZiBkZXIgS2FydGVcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICByZXN1bHQuZXJyb3IgfHwgXCJFaW4gdW5iZWthbm50ZXIgRmVobGVyIGlzdCBhdWZnZXRyZXRlbi5cIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJGZWhsZXIgYmVpbSBIaW56dWbDvGdlbiBkZXMgU3RhbmRvcnRzOlwiLCBlcnJvcik7XHJcbiAgICAgIGFsZXJ0KGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZmx5KHN0YXRpb25WYWx1ZSkge1xyXG4gICAgdmFyIHggPSA1MS40MTMyMTQwNzg3OTE1NDtcclxuICAgIHZhciB5ID0gNy43Mzk2MTc5MjUzMDM5MzQ7XHJcbiAgICB2YXIgem9vbSA9IDc7XHJcblxyXG4gICAgLyogIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YVN0YXRpY2xlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBnaXNTdGF0aWNzID0gZGF0YVN0YXRpY1tpXTtcclxuICAgICAgaWYgKHN0YXRpb25WYWx1ZSA9PT0gZ2lzU3RhdGljcy5BcmVhX05hbWUpIHtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKGdpc1N0YXRpY3MuWCtcIixcIitnaXNTdGF0aWNzLlkpO1xyXG4gICAgICAgIHggPSBnaXNTdGF0aWNzLlg7XHJcbiAgICAgICAgeSA9IGdpc1N0YXRpY3MuWTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHkgPT09IDcuNzM5NjE3OTI1MzAzOTM0KSB7XHJcbiAgICAgIHpvb20gPSA4O1xyXG4gICAgfSAqL1xyXG4gICAgaW5pdGlhbE1hcC5mbHlUbyhbeCwgeV0sIHpvb20pO1xyXG5cclxuICAgIC8qIHZhciBwb3B1cCA9IG5ldyBMLlBvcHVwKCk7XHJcbiAgICBvbXMuYWRkTGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAobWFya2VyKSB7XHJcbiAgICAgIHBvcHVwLnNldENvbnRlbnQobWFya2VyLmRlc2MpO1xyXG4gICAgICBwb3B1cC5zZXRMYXRMbmcobWFya2VyLmdldExhdExuZygpKTtcclxuICAgICAgbWFwLm9wZW5Qb3B1cChwb3B1cCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdpbmRvdy5tYXBEYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBkYXR1bSA9IHdpbmRvdy5tYXBEYXRhW2ldO1xyXG4gICAgICB2YXIgbG9jID0gbmV3IEwuTGF0TG5nKGRhdHVtLmxhdCwgZGF0dW0ubG9uKTtcclxuICAgICAgdmFyIG1hcmtlciA9IG5ldyBMLk1hcmtlcihsb2MpO1xyXG4gICAgICBtYXJrZXIuZGVzYyA9IGRhdHVtLmQ7XHJcbiAgICAgIG1hcC5hZGRMYXllcihtYXJrZXIpO1xyXG4gICAgICAvL29tcy5hZGRNYXJrZXIobWFya2VyKTsgIC8vIDwtLSBoZXJlXHJcbiAgICB9ICovXHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICBpZD1cIm1hcFwiXHJcbiAgICAgIHJlZj17bWFwUmVmfVxyXG4gICAgICBzdHlsZT17eyBoZWlnaHQ6IFwiMTAwdmhcIiwgd2lkdGg6IFwiMTAwdndcIiwgb3ZlcmZsb3c6IFwiaGlkZGVuXCIgfX1cclxuICAgID48L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWFwQ29tcG9uZW50O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkwiLCJNYXBDb21wb25lbnQiLCJsb2NhdGlvbnMiLCJvbkxvY2F0aW9uVXBkYXRlIiwibWFwUmVmIiwibWFwIiwic2V0TWFwIiwib25saW5lIiwic2V0T25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwib2ZmbGluZVRpbGVMYXllciIsIm9ubGluZVRpbGVMYXllciIsImluaXRpYWxNYXAiLCJjaGVja0ludGVybmV0IiwiY29uc29sZSIsImxvZyIsImZldGNoIiwibWV0aG9kIiwidGhlbiIsInJlc3BvbnNlIiwib2siLCJjYXRjaCIsImN1cnJlbnQiLCJjZW50ZXIiLCJ6b29tIiwiem9vbUNvbnRyb2wiLCJjb250ZXh0bWVudSIsImNvbnRleHRtZW51SXRlbXMiLCJ0ZXh0IiwiY2FsbGJhY2siLCJzaG93QWRkU3RhdGlvblBvcHVwIiwiaWNvbiIsIm5ld0xpbmsiLCJzYW1lTGluayIsImxhdGEiLCJ6b29tSW4iLCJ6b29tT3V0IiwiY2VudGVySGVyZSIsInRpbGVMYXllciIsImF0dHJpYnV0aW9uIiwiYWRkVG8iLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm5ld0xheWVyIiwibWluWm9vbSIsIm1heFpvb20iLCJlYWNoTGF5ZXIiLCJsYXllciIsIlRpbGVMYXllciIsInJlbW92ZUxheWVyIiwiTWFya2VyIiwiZm9yRWFjaCIsImxvY2F0aW9uIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJwYXJzZVBvaW50IiwicG9zaXRpb24iLCJtYXJrZXIiLCJpY29uVXJsIiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwicG9wdXBBbmNob3IiLCJkcmFnZ2FibGUiLCJpZCIsImlkUG9pIiwiYmluZFBvcHVwIiwiZGVzY3JpcHRpb24iLCJpZFBvaVR5cCIsInRvRml4ZWQiLCJvbiIsImUiLCJuZXdMYXQiLCJ0YXJnZXQiLCJnZXRMYXRMbmciLCJsYXQiLCJuZXdMbmciLCJsbmciLCJtYXJrZXJJZCIsIm9wdGlvbnMiLCJ1cGRhdGVMb2NhdGlvbkluRGF0YWJhc2UiLCJwb2ludFN0cmluZyIsIm1hdGNoIiwicGFyc2VGbG9hdCIsImVycm9yIiwicmVsYXRlZFRhcmdldCIsIkVycm9yIiwiYWxlcnQiLCJ0ZXN0Iiwib3BlbiIsImZvY3VzIiwibGF0bG5nIiwiZmx5VG8iLCJmbHkiLCJwYW5UbyIsInNob3dDb29yZGluYXRlcyIsInNob3dEYXRhIiwic2hvd1RhbGFzIiwiYWRkTGF5ZXIiLCJUQUxBUyIsImxvYWREYXRhIiwiaGlkZVRhbGFzIiwic2hvd0dTTSIsIkdNQSIsImhpZGVHU00iLCJwb3B1cENvbnRlbnQiLCJEb21VdGlsIiwiY3JlYXRlIiwiaW5uZXJIVE1MIiwicG9wdXAiLCJzZXRMYXRMbmciLCJzZXRDb250ZW50Iiwib3Blbk9uIiwiRG9tRXZlbnQiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZm9ybSIsImRhdGEiLCJuYW1lIiwidmFsdWUiLCJ0eXBlIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwianNvbiIsInJlc2V0IiwibWVzc2FnZSIsInN0YXRpb25WYWx1ZSIsIngiLCJ5IiwiZGl2IiwicmVmIiwic3R5bGUiLCJoZWlnaHQiLCJ3aWR0aCIsIm92ZXJmbG93Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./components/MapComponent.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! leaflet */ \"leaflet\");\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(leaflet__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! leaflet/dist/leaflet.css */ \"./node_modules/leaflet/dist/leaflet.css\");\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! leaflet-contextmenu/dist/leaflet.contextmenu.css */ \"./node_modules/leaflet-contextmenu/dist/leaflet.contextmenu.css\");\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! leaflet-contextmenu */ \"leaflet-contextmenu\");\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _config_config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../config/config.js */ \"./config/config.js\");\n// components/MapComponent.js\n\n\n\n\n\n\n\nconst MapComponent = ({ locations, onLocationUpdate })=>{\n const mapRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); // Referenz auf das DIV-Element der Karte\n const [map, setMap] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null); // Zustand der Karteninstanz\n const [online, setOnline] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(navigator.onLine); // Zustand der Internetverbindung\n const [dataStatic, setDataStatic] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für statische Daten\n const [dataStatus, setDataStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Statusdaten\n const [dataIcons, setDataIcons] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Icons\n const [dataSystem, setDataSystem] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Systemdaten\n // Konstanten für die URLs\n const mapDataStaticUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStaticUrl;\n const mapDataStatusUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStatusUrl;\n const mapDataIconUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataIconUrl;\n const mapDataSystemUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataSystemUrl;\n console.log(\"dataStatic hier :\", dataStatic);\n console.log(\"map:\", map);\n //------------------------------------------\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const fetchData = async ()=>{\n try {\n console.log(\"Datenabruf gestartet...\");\n const response = await fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStaticUrl);\n const jsonResponse = await response.json();\n // Prüfen, ob die Antwort das erwartete Format hat und Daten enthält\n if (jsonResponse && jsonResponse.length > 0 && jsonResponse[0].points) {\n console.log(\"dataStatic hier :\", dataStatic);\n console.log(\"map:\", map);\n setDataStatic(jsonResponse[0].points); // Zugriff auf das erste Objekt und dessen points-Array\n } else {\n console.error('Erwartete Daten im \"points\"-Array nicht gefunden', jsonResponse);\n setDataStatic([]);\n }\n } catch (error) {\n console.error(\"Fehler beim Laden der Daten: \", error);\n setDataStatic([]);\n }\n };\n fetchData();\n }, []); // Dependency-Array ist leer, um den Effekt nur beim Mount auszuführen\n //------------------------------------------\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Prüfen der Internetverbindung beim Start\n console.log(\"Pr\\xfcfen der Internetverbindung...\");\n checkInternet();\n // Asynchrones Laden der Kartendaten beim Initialisieren der Komponente\n const fetchData = async ()=>{\n try {\n console.log(\"Datenabruf gestartet...\");\n const responses = await Promise.all([\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStaticUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStatusUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataIconUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataSystemUrl).then((res)=>res.json())\n ]);\n console.log(\"Daten erfolgreich geladen.\");\n setDataStatic(responses[0].Points);\n setDataStatus(responses[1].Statis);\n setDataIcons(responses[2].List);\n setDataSystem(responses[3].Systems.filter((system)=>system.Allow === 1));\n } catch (error) {\n console.error(\"Fehler beim Laden der Daten: \", error);\n }\n };\n fetchData();\n }, []); // Leeres Abhängigkeitsarray, um nur beim ersten Mount zu laden\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (map && Array.isArray(dataStatic)) {\n dataStatic.forEach((item)=>{\n const marker = leaflet__WEBPACK_IMPORTED_MODULE_2___default().marker([\n item.y,\n item.x\n ], {\n icon: leaflet__WEBPACK_IMPORTED_MODULE_2___default().icon({\n iconUrl: \"/path/to/icon.png\",\n iconSize: [\n 25,\n 41\n ],\n iconAnchor: [\n 12,\n 41\n ],\n popupAnchor: [\n 1,\n -34\n ],\n shadowSize: [\n 41,\n 41\n ] // Größe des Schattens\n })\n }).addTo(map);\n // Anpassen des Popups um relevante Daten anzuzeigen\n marker.bindPopup(`${item.lD_Name}
${item.device}`).openPopup();\n });\n }\n }, [\n map,\n dataStatic\n ]); // Abhängigkeiten des Effekts\n const offlineTileLayer = \"../TileMap/mapTiles/{z}/{x}/{y}.png\";\n const onlineTileLayer = \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";\n // Create map layers\n const TALAS = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const ECI = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const ULAF = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const GSMModem = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const CiscoRouter = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const WAGO = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const Siemens = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const OTDR = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const WDM = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const GMA = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const Sonstige = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const TALASICL = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n let initialMap = [];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n console.log(\"Server URL from config:\", _config_config_js__WEBPACK_IMPORTED_MODULE_6__.serverURL);\n if (false) {}\n }, []);\n // Funktionen zur Überwachung der Internetverbindung\n const checkInternet = ()=>{\n console.log(\"Checking internet connectivity...\");\n fetch(\"https://tile.openstreetmap.org/1/1/1.png\", {\n method: \"HEAD\"\n }).then((response)=>setOnline(response.ok)).catch(()=>setOnline(false));\n };\n // Initialisiere die Karte\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (mapRef.current && !map) {\n initialMap = leaflet__WEBPACK_IMPORTED_MODULE_2___default().map(mapRef.current, {\n center: [\n 53.111111,\n 8.4625\n ],\n zoom: 10,\n layers: [\n TALAS,\n ECI,\n ULAF,\n GSMModem,\n CiscoRouter,\n WAGO,\n Siemens,\n OTDR,\n WDM,\n GMA,\n Sonstige,\n TALASICL\n ],\n zoomControl: false,\n contextmenu: true,\n contextmenuItems: [\n {\n text: \"Station hinzuf\\xfcgen\",\n callback: showAddStationPopup\n },\n {\n text: \"Station \\xf6ffnen (Tab)\",\n icon: \"img/screen_new.png\",\n callback: newLink\n },\n {\n text: \"Station \\xf6ffnen\",\n icon: \"img/screen_same.png\",\n callback: sameLink\n },\n {\n text: \"Koordinaten\",\n icon: \"img/screen_same.png\",\n callback: lata\n },\n \"-\",\n {\n text: \"Reinzoomen\",\n callback: zoomIn\n },\n {\n text: \"Rauszoomen\",\n callback: zoomOut\n },\n {\n text: \"Hier zentrieren\",\n callback: centerHere\n }\n ]\n });\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n attribution: '© OpenStreetMap contributors'\n }).addTo(initialMap);\n setMap(initialMap);\n }\n }, [\n mapRef,\n map\n ]);\n // Handle online/offline status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n window.addEventListener(\"online\", checkInternet);\n window.addEventListener(\"offline\", checkInternet);\n return ()=>{\n window.removeEventListener(\"online\", checkInternet);\n window.removeEventListener(\"offline\", checkInternet);\n };\n }, []);\n // Update map layers based on online status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (map) {\n const newLayer = leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n minZoom: 7,\n maxZoom: online ? 19 : 14,\n attribution: 'Map data \\xa9 OpenStreetMap contributors'\n });\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().TileLayer)) {\n map.removeLayer(layer);\n }\n });\n newLayer.addTo(map);\n }\n }, [\n online,\n map\n ]);\n // Marker handling\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Remove old markers\n if (map) {\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().Marker)) {\n map.removeLayer(layer);\n }\n });\n // Add new markers\n locations.forEach((location)=>{\n const { latitude, longitude } = parsePoint(location.position);\n const marker = leaflet__WEBPACK_IMPORTED_MODULE_2___default().marker([\n latitude,\n longitude\n ], {\n icon: leaflet__WEBPACK_IMPORTED_MODULE_2___default().icon({\n iconUrl: \"/location.svg\",\n iconSize: [\n 34,\n 34\n ],\n iconAnchor: [\n 17,\n 34\n ],\n popupAnchor: [\n 0,\n -34\n ]\n }),\n draggable: true,\n id: location.idPoi\n });\n marker.bindPopup(`${location.description || \"Unbekannt\"}
Type: ${location.idPoiTyp || \"N/A\"}
Lat: ${latitude.toFixed(5)}, Lng: ${longitude.toFixed(5)}`);\n marker.on(\"dragend\", function(e) {\n const newLat = e.target.getLatLng().lat;\n const newLng = e.target.getLatLng().lng;\n const markerId = e.target.options.id;\n updateLocationInDatabase(markerId, newLat, newLng).then(()=>{\n onLocationUpdate(markerId, newLat, newLng);\n });\n });\n marker.addTo(map);\n });\n }\n }, [\n map,\n locations,\n onLocationUpdate\n ]);\n //------------------------------------------\n function parsePoint(pointString) {\n const match = pointString.match(/POINT\\s*\\((\\d+(\\.\\d+)?)\\s+(\\d+(\\.\\d+)?)\\)/);\n if (match) {\n return {\n longitude: parseFloat(match[1]),\n latitude: parseFloat(match[3])\n };\n } else {\n // Handle the error or return a default/fallback value\n console.error(\"Invalid POINT format:\", pointString);\n return null; // Oder eine sinnvolle Standardantwort\n }\n }\n //----------------------------------\n //-----Kontextmenu----------------\n const newLink = (e)=>{\n try {\n if (!e.relatedTarget || !e.relatedTarget.options) {\n throw new Error(\"relatedTarget or options not defined\");\n }\n alert(\"Neues Fenster: \" + e.relatedTarget.options.test);\n window.open(`../devices/${e.relatedTarget.options.test}`, \"_blank\").focus();\n } catch (error) {\n console.error(\"Failed in newLink function:\", error);\n }\n };\n const sameLink = (e)=>{\n alert(e.relatedTarget.options.test);\n window.open(\"../devices/\" + e.relatedTarget.options.test, \"_parent\").focus();\n };\n const lata = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat);\n };\n const zoomIn = (e)=>{\n initialMap.flyTo(e.latlng, 12);\n };\n const zoomOut = (e)=>{\n fly();\n };\n const centerHere = (e)=>{\n initialMap.panTo(e.latlng);\n };\n const showCoordinates = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat + \"\\nL\\xe4ngengrad: \" + e.latlng.lng);\n };\n const showData = (e)=>{\n console.log(e);\n };\n const showTalas = (e)=>{\n map.addLayer(TALAS);\n loadData();\n };\n const hideTalas = (e)=>{\n map.removeLayer(TALAS);\n loadData();\n };\n const showGSM = (e)=>{\n map.addLayer(GMA);\n loadData();\n };\n const hideGSM = (e)=>{\n map.removeLayer(GMA);\n loadData();\n };\n //-----Kontextmenu----ende------------\n // Ensure this function is only called when map is initialized and available\n const showAddStationPopup = (e)=>{\n if (!initialMap) {\n console.log(\"Map is not initialized.\");\n return;\n }\n const popupContent = leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomUtil.create(\"div\");\n popupContent.innerHTML = `\r\n \r\n `;\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().popup().setLatLng(e.latlng).setContent(popupContent).openOn(initialMap);\n // Attach event listener here\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomEvent.on(popupContent, \"submit\", handleSubmit);\n };\n /*\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n const form = event.target;\r\n const data = {\r\n name: form.name.value,\r\n type: form.type.value,\r\n latitude: form.lat.value,\r\n longitude: form.lng.value,\r\n };\r\n\r\n onAddLocation(name, type, lat, lng);\r\n console.log(\"Name: \", name, \"Type: \", type, \"Lat: \", lat, \"Lng: \", lng);\r\n map.closePopup();\r\n };\r\n*/ // Funktion zum Hinzufügen eines neuen Standorts\n async function handleSubmit(event) {\n event.preventDefault();\n const form = event.target;\n const data = {\n name: form.name.value,\n type: form.type.value,\n latitude: form.lat.value,\n longitude: form.lng.value\n };\n try {\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(data)\n });\n const result = await response.json();\n if (response.ok) {\n console.log(\"Standort hinzugef\\xfcgt:\", result);\n alert(\"Standort erfolgreich hinzugef\\xfcgt!\");\n form.reset(); // Formular zurücksetzen\n // Hier könntest du weitere Aktionen durchführen, wie das Schließen des Popups oder das Aktualisieren der Marker auf der Karte\n } else {\n throw new Error(result.error || \"Ein unbekannter Fehler ist aufgetreten.\");\n }\n } catch (error) {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts:\", error);\n alert(error.message);\n }\n }\n function fly(stationValue) {\n var x = 51.41321407879154;\n var y = 7.739617925303934;\n var zoom = 7;\n /* for (var i = 0; i < dataStaticlength; i++) {\r\n var gisStatics = dataStatic[i];\r\n if (stationValue === gisStatics.Area_Name) {\r\n //console.log(gisStatics.X+\",\"+gisStatics.Y);\r\n x = gisStatics.X;\r\n y = gisStatics.Y;\r\n }\r\n }\r\n if (y === 7.739617925303934) {\r\n zoom = 8;\r\n } */ initialMap.flyTo([\n x,\n y\n ], zoom);\n /* var popup = new L.Popup();\r\n oms.addListener(\"click\", function (marker) {\r\n popup.setContent(marker.desc);\r\n popup.setLatLng(marker.getLatLng());\r\n map.openPopup(popup);\r\n });\r\n\r\n for (var i = 0; i < window.mapData.length; i++) {\r\n var datum = window.mapData[i];\r\n var loc = new L.LatLng(datum.lat, datum.lon);\r\n var marker = new L.Marker(loc);\r\n marker.desc = datum.d;\r\n map.addLayer(marker);\r\n //oms.addMarker(marker); // <-- here\r\n } */ }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"map\",\n ref: mapRef,\n style: {\n height: \"100vh\",\n width: \"100vw\",\n overflow: \"hidden\"\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\components\\\\MapComponent.js\",\n lineNumber: 487,\n columnNumber: 5\n }, undefined);\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MapComponent);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QkFDZjVELFFBQVFDLEdBQUcsQ0FBQyw0QkFBeUIwSjtnQkFDckNyQyxNQUFNO2dCQUNONEIsS0FBS1UsS0FBSyxJQUFJLHdCQUF3QjtZQUN0Qyw4SEFBOEg7WUFDaEksT0FBTztnQkFDTCxNQUFNLElBQUl2QyxNQUNSc0MsT0FBT2xKLEtBQUssSUFBSTtZQUVwQjtRQUNGLEVBQUUsT0FBT0EsT0FBTztZQUNkVCxRQUFRUyxLQUFLLENBQUMsNENBQXlDQTtZQUN2RDZHLE1BQU03RyxNQUFNb0osT0FBTztRQUNyQjtJQUNGO0lBRUEsU0FBU2pDLElBQUlrQyxZQUFZO1FBQ3ZCLElBQUlqSSxJQUFJO1FBQ1IsSUFBSUQsSUFBSTtRQUNSLElBQUlvQyxPQUFPO1FBRVg7Ozs7Ozs7Ozs7TUFVRSxHQUNGUixXQUFXbUUsS0FBSyxDQUFDO1lBQUM5RjtZQUFHRDtTQUFFLEVBQUVvQztJQUV6Qjs7Ozs7Ozs7Ozs7Ozs7TUFjRSxHQUNKO0lBRUEscUJBQ0UsOERBQUMrRjtRQUNDOUQsSUFBRztRQUNIK0QsS0FBS25MO1FBQ0xvTCxPQUFPO1lBQUVDLFFBQVE7WUFBU0MsT0FBTztZQUFTQyxVQUFVO1FBQVM7Ozs7OztBQUduRTtBQUVBLGlFQUFlMUwsWUFBWUEsRUFBQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NvbXBvbmVudHMvTWFwQ29tcG9uZW50LmpzP2QwN2QiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gY29tcG9uZW50cy9NYXBDb21wb25lbnQuanNcclxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgTCBmcm9tIFwibGVhZmxldFwiO1xyXG5pbXBvcnQgXCJsZWFmbGV0L2Rpc3QvbGVhZmxldC5jc3NcIjtcclxuaW1wb3J0IFwibGVhZmxldC1jb250ZXh0bWVudS9kaXN0L2xlYWZsZXQuY29udGV4dG1lbnUuY3NzXCI7XHJcbmltcG9ydCBcImxlYWZsZXQtY29udGV4dG1lbnVcIjtcclxuaW1wb3J0ICogYXMgY29uZmlnIGZyb20gJy4uL2NvbmZpZy9jb25maWcuanMnO1xyXG5jb25zdCBNYXBDb21wb25lbnQgPSAoeyBsb2NhdGlvbnMsIG9uTG9jYXRpb25VcGRhdGUgfSkgPT4ge1xyXG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZihudWxsKTsgLy8gUmVmZXJlbnogYXVmIGRhcyBESVYtRWxlbWVudCBkZXIgS2FydGVcclxuICBjb25zdCBbbWFwLCBzZXRNYXBdID0gdXNlU3RhdGUobnVsbCk7IC8vIFp1c3RhbmQgZGVyIEthcnRlbmluc3RhbnpcclxuICBjb25zdCBbb25saW5lLCBzZXRPbmxpbmVdID0gdXNlU3RhdGUobmF2aWdhdG9yLm9uTGluZSk7IC8vIFp1c3RhbmQgZGVyIEludGVybmV0dmVyYmluZHVuZ1xyXG4gIGNvbnN0IFtkYXRhU3RhdGljLCBzZXREYXRhU3RhdGljXSA9IHVzZVN0YXRlKFtdKTsgLy8gWnVzdGFuZCBmw7xyIHN0YXRpc2NoZSBEYXRlblxyXG4gIGNvbnN0IFtkYXRhU3RhdHVzLCBzZXREYXRhU3RhdHVzXSA9IHVzZVN0YXRlKFtdKTsgLy8gWnVzdGFuZCBmw7xyIFN0YXR1c2RhdGVuXHJcbiAgY29uc3QgW2RhdGFJY29ucywgc2V0RGF0YUljb25zXSA9IHVzZVN0YXRlKFtdKTsgLy8gWnVzdGFuZCBmw7xyIEljb25zXHJcbiAgY29uc3QgW2RhdGFTeXN0ZW0sIHNldERhdGFTeXN0ZW1dID0gdXNlU3RhdGUoW10pOyAvLyBadXN0YW5kIGbDvHIgU3lzdGVtZGF0ZW5cclxuXHJcbiAgICAvLyBLb25zdGFudGVuIGbDvHIgZGllIFVSTHNcclxuICAgIGNvbnN0IG1hcERhdGFTdGF0aWNVcmwgPSBjb25maWcubWFwRGF0YVN0YXRpY1VybDtcclxuICAgIGNvbnN0IG1hcERhdGFTdGF0dXNVcmwgPSBjb25maWcubWFwRGF0YVN0YXR1c1VybDtcclxuICAgIGNvbnN0IG1hcERhdGFJY29uVXJsID0gY29uZmlnLm1hcERhdGFJY29uVXJsO1xyXG4gICAgY29uc3QgbWFwRGF0YVN5c3RlbVVybCA9IGNvbmZpZy5tYXBEYXRhU3lzdGVtVXJsO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKCdkYXRhU3RhdGljIGhpZXIgOicsIGRhdGFTdGF0aWMpO1xyXG4gICAgY29uc29sZS5sb2coJ21hcDonLCBtYXApO1xyXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZldGNoRGF0YSA9IGFzeW5jICgpID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJEYXRlbmFicnVmIGdlc3RhcnRldC4uLlwiKTtcclxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goY29uZmlnLm1hcERhdGFTdGF0aWNVcmwpO1xyXG4gICAgICAgICAgY29uc3QganNvblJlc3BvbnNlID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG4gICAgXHJcbiAgICAgICAgICAvLyBQcsO8ZmVuLCBvYiBkaWUgQW50d29ydCBkYXMgZXJ3YXJ0ZXRlIEZvcm1hdCBoYXQgdW5kIERhdGVuIGVudGjDpGx0XHJcbiAgICAgICAgICBpZiAoanNvblJlc3BvbnNlICYmIGpzb25SZXNwb25zZS5sZW5ndGggPiAwICYmIGpzb25SZXNwb25zZVswXS5wb2ludHMpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2RhdGFTdGF0aWMgaGllciA6JywgZGF0YVN0YXRpYyk7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdtYXA6JywgbWFwKTtcclxuICAgICAgICAgICAgc2V0RGF0YVN0YXRpYyhqc29uUmVzcG9uc2VbMF0ucG9pbnRzKTsgLy8gWnVncmlmZiBhdWYgZGFzIGVyc3RlIE9iamVrdCB1bmQgZGVzc2VuIHBvaW50cy1BcnJheVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJ3YXJ0ZXRlIERhdGVuIGltIFwicG9pbnRzXCItQXJyYXkgbmljaHQgZ2VmdW5kZW4nLCBqc29uUmVzcG9uc2UpO1xyXG4gICAgICAgICAgICBzZXREYXRhU3RhdGljKFtdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIkZlaGxlciBiZWltIExhZGVuIGRlciBEYXRlbjogXCIsIGVycm9yKTtcclxuICAgICAgICAgIHNldERhdGFTdGF0aWMoW10pO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIFxyXG4gICAgICBmZXRjaERhdGEoKTtcclxuICAgIH0sIFtdKTsgLy8gRGVwZW5kZW5jeS1BcnJheSBpc3QgbGVlciwgdW0gZGVuIEVmZmVrdCBudXIgYmVpbSBNb3VudCBhdXN6dWbDvGhyZW5cclxuICAgIFxyXG4gICAgICAgIFxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgLy8gUHLDvGZlbiBkZXIgSW50ZXJuZXR2ZXJiaW5kdW5nIGJlaW0gU3RhcnRcclxuICAgICAgY29uc29sZS5sb2coXCJQcsO8ZmVuIGRlciBJbnRlcm5ldHZlcmJpbmR1bmcuLi5cIik7XHJcbiAgICAgIGNoZWNrSW50ZXJuZXQoKTtcclxuICBcclxuICAgICAgLy8gQXN5bmNocm9uZXMgTGFkZW4gZGVyIEthcnRlbmRhdGVuIGJlaW0gSW5pdGlhbGlzaWVyZW4gZGVyIEtvbXBvbmVudGVcclxuICAgICAgY29uc3QgZmV0Y2hEYXRhID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGVuYWJydWYgZ2VzdGFydGV0Li4uXCIpO1xyXG4gICAgICAgICAgY29uc3QgcmVzcG9uc2VzID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xyXG4gICAgICAgICAgICBmZXRjaChjb25maWcubWFwRGF0YVN0YXRpY1VybCkudGhlbihyZXMgPT4gcmVzLmpzb24oKSksXHJcbiAgICAgICAgICAgIGZldGNoKGNvbmZpZy5tYXBEYXRhU3RhdHVzVXJsKS50aGVuKHJlcyA9PiByZXMuanNvbigpKSxcclxuICAgICAgICAgICAgZmV0Y2goY29uZmlnLm1hcERhdGFJY29uVXJsKS50aGVuKHJlcyA9PiByZXMuanNvbigpKSxcclxuICAgICAgICAgICAgZmV0Y2goY29uZmlnLm1hcERhdGFTeXN0ZW1VcmwpLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpXHJcbiAgICAgICAgICBdKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGF0ZW4gZXJmb2xncmVpY2ggZ2VsYWRlbi5cIik7XHJcbiAgICAgICAgICBzZXREYXRhU3RhdGljKHJlc3BvbnNlc1swXS5Qb2ludHMpO1xyXG4gICAgICAgICAgc2V0RGF0YVN0YXR1cyhyZXNwb25zZXNbMV0uU3RhdGlzKTtcclxuICAgICAgICAgIHNldERhdGFJY29ucyhyZXNwb25zZXNbMl0uTGlzdCk7XHJcbiAgICAgICAgICBzZXREYXRhU3lzdGVtKHJlc3BvbnNlc1szXS5TeXN0ZW1zLmZpbHRlcihzeXN0ZW0gPT4gc3lzdGVtLkFsbG93ID09PSAxKSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGZWhsZXIgYmVpbSBMYWRlbiBkZXIgRGF0ZW46IFwiLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gIFxyXG4gICAgICBmZXRjaERhdGEoKTtcclxuICAgIH0sIFtdKTsvLyBMZWVyZXMgQWJow6RuZ2lna2VpdHNhcnJheSwgdW0gbnVyIGJlaW0gZXJzdGVuIE1vdW50IHp1IGxhZGVuXHJcblxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgaWYgKG1hcCAmJiBBcnJheS5pc0FycmF5KGRhdGFTdGF0aWMpKSB7XHJcbiAgICAgICAgZGF0YVN0YXRpYy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgY29uc3QgbWFya2VyID0gTC5tYXJrZXIoW2l0ZW0ueSwgaXRlbS54XSwgeyAgLy8gVmVyd2VuZHVuZyB2b24gaXRlbS55IHVuZCBpdGVtLnggc3RhdHQgaXRlbS5sYXRpdHVkZSB1bmQgaXRlbS5sb25naXR1ZGVcclxuICAgICAgICAgICAgaWNvbjogTC5pY29uKHtcclxuICAgICAgICAgICAgICBpY29uVXJsOiAnL3BhdGgvdG8vaWNvbi5wbmcnLCAgLy8gUGZhZCB6dW0gSWNvblxyXG4gICAgICAgICAgICAgIGljb25TaXplOiBbMjUsIDQxXSwgICAgICAgICAgICAvLyBHcsO2w59lIGRlcyBJY29uc1xyXG4gICAgICAgICAgICAgIGljb25BbmNob3I6IFsxMiwgNDFdLCAgICAgICAgICAvLyBBbmtlcnB1bmt0IGRlcyBJY29uc1xyXG4gICAgICAgICAgICAgIHBvcHVwQW5jaG9yOiBbMSwgLTM0XSwgICAgICAgICAvLyBQb3NpdGlvbiBkZXMgUG9wdXBzIHJlbGF0aXYgenVtIEljb25cclxuICAgICAgICAgICAgICBzaGFkb3dTaXplOiBbNDEsIDQxXSAgICAgICAgICAgLy8gR3LDtsOfZSBkZXMgU2NoYXR0ZW5zXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xyXG4gICAgXHJcbiAgICAgICAgICAvLyBBbnBhc3NlbiBkZXMgUG9wdXBzIHVtIHJlbGV2YW50ZSBEYXRlbiBhbnp1emVpZ2VuXHJcbiAgICAgICAgICBtYXJrZXIuYmluZFBvcHVwKGA8Yj4ke2l0ZW0ubERfTmFtZX08L2I+PGJyPiR7aXRlbS5kZXZpY2V9YCkub3BlblBvcHVwKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIFttYXAsIGRhdGFTdGF0aWNdKTsgLy8gQWJow6RuZ2lna2VpdGVuIGRlcyBFZmZla3RzXHJcbiAgICBcclxuXHJcbiAgY29uc3Qgb2ZmbGluZVRpbGVMYXllciA9IFwiLi4vVGlsZU1hcC9tYXBUaWxlcy97en0ve3h9L3t5fS5wbmdcIjtcclxuICBjb25zdCBvbmxpbmVUaWxlTGF5ZXIgPSBcImh0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nXCI7XHJcbiAgICAvLyBDcmVhdGUgbWFwIGxheWVyc1xyXG4gICAgY29uc3QgVEFMQVMgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgICBjb25zdCBFQ0kgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgICBjb25zdCBVTEFGID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gICAgY29uc3QgR1NNTW9kZW0gPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgICBjb25zdCBDaXNjb1JvdXRlciA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICAgIGNvbnN0IFdBR08gPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgICBjb25zdCBTaWVtZW5zID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gICAgY29uc3QgT1REUiA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICAgIGNvbnN0IFdETSA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICAgIGNvbnN0IEdNQSA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICAgIGNvbnN0IFNvbnN0aWdlID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gICAgY29uc3QgVEFMQVNJQ0wgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcblxyXG4gIGxldCBpbml0aWFsTWFwID0gW107XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhcIlNlcnZlciBVUkwgZnJvbSBjb25maWc6XCIsIGNvbmZpZy5zZXJ2ZXJVUkwpO1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIldpbmRvdyBoZWlnaHQgZnJvbSBjb25maWc6XCIsIGNvbmZpZy53aW5kb3dIZWlnaHQpO1xyXG4gICAgfVxyXG59LCBbXSk7XHJcblxyXG4gIC8vIEZ1bmt0aW9uZW4genVyIMOcYmVyd2FjaHVuZyBkZXIgSW50ZXJuZXR2ZXJiaW5kdW5nXHJcbiAgY29uc3QgY2hlY2tJbnRlcm5ldCA9ICgpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKFwiQ2hlY2tpbmcgaW50ZXJuZXQgY29ubmVjdGl2aXR5Li4uXCIpO1xyXG4gICAgZmV0Y2goXCJodHRwczovL3RpbGUub3BlbnN0cmVldG1hcC5vcmcvMS8xLzEucG5nXCIsIHsgbWV0aG9kOiBcIkhFQURcIiB9KVxyXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHNldE9ubGluZShyZXNwb25zZS5vaykpXHJcbiAgICAgIC5jYXRjaCgoKSA9PiBzZXRPbmxpbmUoZmFsc2UpKTtcclxuICB9O1xyXG4gIC8vIEluaXRpYWxpc2llcmUgZGllIEthcnRlXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGlmIChtYXBSZWYuY3VycmVudCAmJiAhbWFwKSB7XHJcbiAgICAgIGluaXRpYWxNYXAgPSBMLm1hcChtYXBSZWYuY3VycmVudCwge1xyXG4gICAgICAgIGNlbnRlcjogWzUzLjExMTExMSwgOC40NjI1XSxcclxuICAgICAgICB6b29tOiAxMCxcclxuICAgICAgICBsYXllcnM6IFtUQUxBUywgRUNJLCBVTEFGLCBHU01Nb2RlbSwgQ2lzY29Sb3V0ZXIsIFdBR08sIFNpZW1lbnMsIE9URFIsIFdETSwgR01BLCBTb25zdGlnZSwgVEFMQVNJQ0xdLFxyXG4gICAgICAgIHpvb21Db250cm9sOiBmYWxzZSwgLy8gRGVha3RpdmllcmUgZGllIFN0YW5kYXJkLVpvb21zdGV1ZXJ1bmdcclxuICAgICAgICBjb250ZXh0bWVudTogdHJ1ZSxcclxuICAgICAgICBjb250ZXh0bWVudUl0ZW1zOiBbXHJcbiAgICAgICAgICB7IHRleHQ6IFwiU3RhdGlvbiBoaW56dWbDvGdlblwiLCBjYWxsYmFjazogc2hvd0FkZFN0YXRpb25Qb3B1cCB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0ZXh0OiBcIlN0YXRpb24gw7ZmZm5lbiAoVGFiKVwiLFxyXG4gICAgICAgICAgICBpY29uOiBcImltZy9zY3JlZW5fbmV3LnBuZ1wiLFxyXG4gICAgICAgICAgICBjYWxsYmFjazogbmV3TGluayxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiU3RhdGlvbiDDtmZmbmVuXCIsXHJcbiAgICAgICAgICAgIGljb246IFwiaW1nL3NjcmVlbl9zYW1lLnBuZ1wiLFxyXG4gICAgICAgICAgICBjYWxsYmFjazogc2FtZUxpbmssXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0ZXh0OiBcIktvb3JkaW5hdGVuXCIsXHJcbiAgICAgICAgICAgIGljb246IFwiaW1nL3NjcmVlbl9zYW1lLnBuZ1wiLFxyXG4gICAgICAgICAgICBjYWxsYmFjazogbGF0YSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBcIi1cIiwgLy8gRGl2aWRlclxyXG4gICAgICAgICAgeyB0ZXh0OiBcIlJlaW56b29tZW5cIiwgY2FsbGJhY2s6IHpvb21JbiB9LFxyXG4gICAgICAgICAgeyB0ZXh0OiBcIlJhdXN6b29tZW5cIiwgY2FsbGJhY2s6IHpvb21PdXQgfSxcclxuICAgICAgICAgIHsgdGV4dDogXCJIaWVyIHplbnRyaWVyZW5cIiwgY2FsbGJhY2s6IGNlbnRlckhlcmUgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9KTtcclxuICAgICAgTC50aWxlTGF5ZXIob25saW5lID8gb25saW5lVGlsZUxheWVyIDogb2ZmbGluZVRpbGVMYXllciwge1xyXG4gICAgICAgIGF0dHJpYnV0aW9uOlxyXG4gICAgICAgICAgJyZjb3B5OyA8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzJyxcclxuICAgICAgfSkuYWRkVG8oaW5pdGlhbE1hcCk7XHJcblxyXG4gICAgICBzZXRNYXAoaW5pdGlhbE1hcCk7XHJcbiAgICB9XHJcbiAgfSwgW21hcFJlZiwgbWFwXSk7XHJcblxyXG4gIC8vIEhhbmRsZSBvbmxpbmUvb2ZmbGluZSBzdGF0dXNcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJvbmxpbmVcIiwgY2hlY2tJbnRlcm5ldCk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm9mZmxpbmVcIiwgY2hlY2tJbnRlcm5ldCk7XHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIGNoZWNrSW50ZXJuZXQpO1xyXG4gICAgfTtcclxuICB9LCBbXSk7XHJcblxyXG4gIC8vIFVwZGF0ZSBtYXAgbGF5ZXJzIGJhc2VkIG9uIG9ubGluZSBzdGF0dXNcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKG1hcCkge1xyXG4gICAgICBjb25zdCBuZXdMYXllciA9IEwudGlsZUxheWVyKFxyXG4gICAgICAgIG9ubGluZSA/IG9ubGluZVRpbGVMYXllciA6IG9mZmxpbmVUaWxlTGF5ZXIsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbWluWm9vbTogNyxcclxuICAgICAgICAgIG1heFpvb206IG9ubGluZSA/IDE5IDogMTQsXHJcbiAgICAgICAgICBhdHRyaWJ1dGlvbjpcclxuICAgICAgICAgICAgJ01hcCBkYXRhIMKpIDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuXHJcbiAgICAgIG1hcC5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGxheWVyIGluc3RhbmNlb2YgTC5UaWxlTGF5ZXIpIHtcclxuICAgICAgICAgIG1hcC5yZW1vdmVMYXllcihsYXllcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIG5ld0xheWVyLmFkZFRvKG1hcCk7XHJcbiAgICB9XHJcbiAgfSwgW29ubGluZSwgbWFwXSk7XHJcblxyXG4gIC8vIE1hcmtlciBoYW5kbGluZ1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAvLyBSZW1vdmUgb2xkIG1hcmtlcnNcclxuICAgIGlmIChtYXApIHtcclxuICAgICAgbWFwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcclxuICAgICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xyXG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gQWRkIG5ldyBtYXJrZXJzXHJcbiAgICAgIGxvY2F0aW9ucy5mb3JFYWNoKChsb2NhdGlvbikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgbGF0aXR1ZGUsIGxvbmdpdHVkZSB9ID0gcGFyc2VQb2ludChsb2NhdGlvbi5wb3NpdGlvbik7XHJcbiAgICAgICAgY29uc3QgbWFya2VyID0gTC5tYXJrZXIoW2xhdGl0dWRlLCBsb25naXR1ZGVdLCB7XHJcbiAgICAgICAgICBpY29uOiBMLmljb24oe1xyXG4gICAgICAgICAgICBpY29uVXJsOiBcIi9sb2NhdGlvbi5zdmdcIixcclxuICAgICAgICAgICAgaWNvblNpemU6IFszNCwgMzRdLFxyXG4gICAgICAgICAgICBpY29uQW5jaG9yOiBbMTcsIDM0XSxcclxuICAgICAgICAgICAgcG9wdXBBbmNob3I6IFswLCAtMzRdLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXHJcbiAgICAgICAgICBpZDogbG9jYXRpb24uaWRQb2ksXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1hcmtlci5iaW5kUG9wdXAoXHJcbiAgICAgICAgICBgPGI+JHtsb2NhdGlvbi5kZXNjcmlwdGlvbiB8fCBcIlVuYmVrYW5udFwifTwvYj48YnI+VHlwZTogJHtsb2NhdGlvbi5pZFBvaVR5cCB8fCBcIk4vQVwifTxicj5MYXQ6ICR7bGF0aXR1ZGUudG9GaXhlZCg1KX0sIExuZzogJHtsb25naXR1ZGUudG9GaXhlZCg1KX1gXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgbWFya2VyLm9uKFwiZHJhZ2VuZFwiLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgY29uc3QgbmV3TGF0ID0gZS50YXJnZXQuZ2V0TGF0TG5nKCkubGF0O1xyXG4gICAgICAgICAgY29uc3QgbmV3TG5nID0gZS50YXJnZXQuZ2V0TGF0TG5nKCkubG5nO1xyXG4gICAgICAgICAgY29uc3QgbWFya2VySWQgPSBlLnRhcmdldC5vcHRpb25zLmlkO1xyXG4gICAgICAgICAgdXBkYXRlTG9jYXRpb25JbkRhdGFiYXNlKG1hcmtlcklkLCBuZXdMYXQsIG5ld0xuZykudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIG9uTG9jYXRpb25VcGRhdGUobWFya2VySWQsIG5ld0xhdCwgbmV3TG5nKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBtYXJrZXIuYWRkVG8obWFwKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSwgW21hcCwgbG9jYXRpb25zLCBvbkxvY2F0aW9uVXBkYXRlXSk7XHJcblxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgZnVuY3Rpb24gcGFyc2VQb2ludChwb2ludFN0cmluZykge1xyXG4gICAgY29uc3QgbWF0Y2ggPSBwb2ludFN0cmluZy5tYXRjaChcclxuICAgICAgL1BPSU5UXFxzKlxcKChcXGQrKFxcLlxcZCspPylcXHMrKFxcZCsoXFwuXFxkKyk/KVxcKS9cclxuICAgICk7XHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBsb25naXR1ZGU6IHBhcnNlRmxvYXQobWF0Y2hbMV0pLFxyXG4gICAgICAgIGxhdGl0dWRlOiBwYXJzZUZsb2F0KG1hdGNoWzNdKSwgLy8gQWNodHVuZzogSW5kZXggMyBmw7xyIGRpZSB6d2VpdGUgS29vcmRpbmF0ZSwgd2VnZW4gZGVyIEdydXBwZSAoXFwuXFxkKyk/XHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBIYW5kbGUgdGhlIGVycm9yIG9yIHJldHVybiBhIGRlZmF1bHQvZmFsbGJhY2sgdmFsdWVcclxuICAgICAgY29uc29sZS5lcnJvcihcIkludmFsaWQgUE9JTlQgZm9ybWF0OlwiLCBwb2ludFN0cmluZyk7XHJcbiAgICAgIHJldHVybiBudWxsOyAvLyBPZGVyIGVpbmUgc2lubnZvbGxlIFN0YW5kYXJkYW50d29ydFxyXG4gICAgfVxyXG4gIH1cclxuICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAvLy0tLS0tS29udGV4dG1lbnUtLS0tLS0tLS0tLS0tLS0tXHJcbiAgY29uc3QgbmV3TGluayA9IChlKSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoIWUucmVsYXRlZFRhcmdldCB8fCAhZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZWxhdGVkVGFyZ2V0IG9yIG9wdGlvbnMgbm90IGRlZmluZWRcIik7XHJcbiAgICAgIH1cclxuICAgICAgYWxlcnQoXCJOZXVlcyBGZW5zdGVyOiBcIiArIGUucmVsYXRlZFRhcmdldC5vcHRpb25zLnRlc3QpO1xyXG4gICAgICB3aW5kb3dcclxuICAgICAgICAub3BlbihgLi4vZGV2aWNlcy8ke2UucmVsYXRlZFRhcmdldC5vcHRpb25zLnRlc3R9YCwgXCJfYmxhbmtcIilcclxuICAgICAgICAuZm9jdXMoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgaW4gbmV3TGluayBmdW5jdGlvbjpcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGNvbnN0IHNhbWVMaW5rID0gKGUpID0+IHtcclxuICAgIGFsZXJ0KGUucmVsYXRlZFRhcmdldC5vcHRpb25zLnRlc3QpO1xyXG4gICAgd2luZG93XHJcbiAgICAgIC5vcGVuKFwiLi4vZGV2aWNlcy9cIiArIGUucmVsYXRlZFRhcmdldC5vcHRpb25zLnRlc3QsIFwiX3BhcmVudFwiKVxyXG4gICAgICAuZm9jdXMoKTtcclxuICB9O1xyXG5cclxuICBjb25zdCBsYXRhID0gKGUpID0+IHtcclxuICAgIGFsZXJ0KFwiQnJlaXRlbmdyYWQ6IFwiICsgZS5sYXRsbmcubGF0KTtcclxuICB9O1xyXG5cclxuICBjb25zdCB6b29tSW4gPSAoZSkgPT4ge1xyXG4gICAgaW5pdGlhbE1hcC5mbHlUbyhlLmxhdGxuZywgMTIpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHpvb21PdXQgPSAoZSkgPT4ge1xyXG4gICAgZmx5KCk7XHJcbiAgfTtcclxuICBjb25zdCBjZW50ZXJIZXJlID0gKGUpID0+IHtcclxuICAgIGluaXRpYWxNYXAucGFuVG8oZS5sYXRsbmcpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHNob3dDb29yZGluYXRlcyA9IChlKSA9PiB7XHJcbiAgICBhbGVydChcIkJyZWl0ZW5ncmFkOiBcIiArIGUubGF0bG5nLmxhdCArIFwiXFxuTMOkbmdlbmdyYWQ6IFwiICsgZS5sYXRsbmcubG5nKTtcclxuICB9O1xyXG4gIGNvbnN0IHNob3dEYXRhID0gKGUpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gIH07XHJcbiAgY29uc3Qgc2hvd1RhbGFzID0gKGUpID0+IHtcclxuICAgIG1hcC5hZGRMYXllcihUQUxBUyk7XHJcbiAgICBsb2FkRGF0YSgpO1xyXG4gIH07XHJcbiAgY29uc3QgaGlkZVRhbGFzID0gKGUpID0+IHtcclxuICAgIG1hcC5yZW1vdmVMYXllcihUQUxBUyk7XHJcbiAgICBsb2FkRGF0YSgpO1xyXG4gIH07XHJcbiAgY29uc3Qgc2hvd0dTTSA9IChlKSA9PiB7XHJcbiAgICBtYXAuYWRkTGF5ZXIoR01BKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBoaWRlR1NNID0gKGUpID0+IHtcclxuICAgIG1hcC5yZW1vdmVMYXllcihHTUEpO1xyXG4gICAgbG9hZERhdGEoKTtcclxuICB9O1xyXG4gIC8vLS0tLS1Lb250ZXh0bWVudS0tLS1lbmRlLS0tLS0tLS0tLS0tXHJcbiAgLy8gRW5zdXJlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgd2hlbiBtYXAgaXMgaW5pdGlhbGl6ZWQgYW5kIGF2YWlsYWJsZVxyXG4gIGNvbnN0IHNob3dBZGRTdGF0aW9uUG9wdXAgPSAoZSkgPT4ge1xyXG4gICAgaWYgKCFpbml0aWFsTWFwKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiTWFwIGlzIG5vdCBpbml0aWFsaXplZC5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwb3B1cENvbnRlbnQgPSBMLkRvbVV0aWwuY3JlYXRlKFwiZGl2XCIpO1xyXG4gICAgcG9wdXBDb250ZW50LmlubmVySFRNTCA9IGBcclxuICA8Zm9ybSBpZD1cImFkZFN0YXRpb25Gb3JtXCIgY2xhc3M9XCJtLTAgcC0yIHctZnVsbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi00XCI+ICAgICAgXHJcbiAgICA8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwiYmxvY2sgbXItMiBmbGV4LW5vbmVcIj5OYW1lOjwvbGFiZWw+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBpZD1cIm5hbWVcIlxyXG4gICAgICBuYW1lPVwibmFtZVwiXHJcbiAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZSBkZXIgU3RhdGlvblwiXHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj4gICBcclxuICAgIDxsYWJlbCBmb3I9XCJ0eXBlXCIgY2xhc3M9XCJibG9jayBtci0zIGZsZXgtbm9uZVwiPlR5cGU6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwidHlwZVwiXHJcbiAgICAgIG5hbWU9XCJ0eXBlXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJUeXAgZGVyIFN0YXRpb25cIlxyXG4gICAgICBjbGFzcz1cImJsb2NrIHAtMiBmbGV4LWdyb3cgYm9yZGVyLTIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbWQgdGV4dC1zbVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBtYi00XCI+XHJcbiAgICA8bGFiZWwgZm9yPVwibGF0XCIgY2xhc3M9XCJibG9jayBtci0yIGZsZXgtbm9uZVwiPkJyZWl0ZW5ncmFkOjwvbGFiZWw+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBpZD1cImxhdFwiXHJcbiAgICAgIG5hbWU9XCJsYXRcIlxyXG4gICAgICB2YWx1ZT1cIiR7ZS5sYXRsbmcubGF0LnRvRml4ZWQoNSl9XCJcclxuICAgICAgcmVhZG9ubHlcclxuICAgICAgY2xhc3M9XCJibG9jayBwLTIgZmxleC1ncm93IGJvcmRlci0yIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLW1kIHRleHQtc21cIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICAgXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj4gICBcclxuICAgIDxsYWJlbCBmb3I9XCJsbmdcIiBjbGFzcz1cImJsb2NrIG1yLTIgZmxleC1ub25lXCI+TMOkbmdlbmdyYWQ6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibG5nXCJcclxuICAgICAgbmFtZT1cImxuZ1wiXHJcbiAgICAgIHZhbHVlPVwiJHtlLmxhdGxuZy5sbmcudG9GaXhlZCg1KX1cIlxyXG4gICAgICByZWFkb25seVxyXG4gICAgICBjbGFzcz1cImJsb2NrIHAtMiBmbGV4LWdyb3cgYm9yZGVyLTIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbWQgdGV4dC1zbVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxidXR0b25cclxuICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgY2xhc3M9XCJiZy1ibHVlLTUwMCBob3ZlcjpiZy1ibHVlLTcwMCB0ZXh0LXdoaXRlIGZvbnQtYm9sZCBweS0yIHB4LTQgcm91bmRlZCB3LWZ1bGxcIlxyXG4gID5cclxuICAgIFN0YXRpb24gaGluenVmw7xnZW5cclxuICA8L2J1dHRvbj5cclxuPC9mb3JtPlxyXG4gIGA7XHJcblxyXG4gICAgTC5wb3B1cCgpLnNldExhdExuZyhlLmxhdGxuZykuc2V0Q29udGVudChwb3B1cENvbnRlbnQpLm9wZW5Pbihpbml0aWFsTWFwKTtcclxuXHJcbiAgICAvLyBBdHRhY2ggZXZlbnQgbGlzdGVuZXIgaGVyZVxyXG4gICAgTC5Eb21FdmVudC5vbihwb3B1cENvbnRlbnQsIFwic3VibWl0XCIsIGhhbmRsZVN1Ym1pdCk7XHJcbiAgfTtcclxuXHJcbiAgLypcclxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSAoZXZlbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBmb3JtID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgbmFtZTogZm9ybS5uYW1lLnZhbHVlLFxyXG4gICAgICB0eXBlOiBmb3JtLnR5cGUudmFsdWUsXHJcbiAgICAgIGxhdGl0dWRlOiBmb3JtLmxhdC52YWx1ZSxcclxuICAgICAgbG9uZ2l0dWRlOiBmb3JtLmxuZy52YWx1ZSxcclxuICAgIH07XHJcblxyXG4gICAgb25BZGRMb2NhdGlvbihuYW1lLCB0eXBlLCBsYXQsIGxuZyk7XHJcbiAgICBjb25zb2xlLmxvZyhcIk5hbWU6IFwiLCBuYW1lLCBcIlR5cGU6IFwiLCB0eXBlLCBcIkxhdDogXCIsIGxhdCwgXCJMbmc6IFwiLCBsbmcpO1xyXG4gICAgbWFwLmNsb3NlUG9wdXAoKTtcclxuICB9O1xyXG4qL1xyXG4gIC8vIEZ1bmt0aW9uIHp1bSBIaW56dWbDvGdlbiBlaW5lcyBuZXVlbiBTdGFuZG9ydHNcclxuICBhc3luYyBmdW5jdGlvbiBoYW5kbGVTdWJtaXQoZXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCBmb3JtID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgbmFtZTogZm9ybS5uYW1lLnZhbHVlLFxyXG4gICAgICB0eXBlOiBmb3JtLnR5cGUudmFsdWUsXHJcbiAgICAgIGxhdGl0dWRlOiBmb3JtLmxhdC52YWx1ZSxcclxuICAgICAgbG9uZ2l0dWRlOiBmb3JtLmxuZy52YWx1ZSxcclxuICAgIH07XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChcIi9hcGkvYWRkTG9jYXRpb25cIiwge1xyXG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcblxyXG4gICAgICBpZiAocmVzcG9uc2Uub2spIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIlN0YW5kb3J0IGhpbnp1Z2Vmw7xndDpcIiwgcmVzdWx0KTtcclxuICAgICAgICBhbGVydChcIlN0YW5kb3J0IGVyZm9sZ3JlaWNoIGhpbnp1Z2Vmw7xndCFcIik7XHJcbiAgICAgICAgZm9ybS5yZXNldCgpOyAvLyBGb3JtdWxhciB6dXLDvGNrc2V0emVuXHJcbiAgICAgICAgLy8gSGllciBrw7ZubnRlc3QgZHUgd2VpdGVyZSBBa3Rpb25lbiBkdXJjaGbDvGhyZW4sIHdpZSBkYXMgU2NobGllw59lbiBkZXMgUG9wdXBzIG9kZXIgZGFzIEFrdHVhbGlzaWVyZW4gZGVyIE1hcmtlciBhdWYgZGVyIEthcnRlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgcmVzdWx0LmVycm9yIHx8IFwiRWluIHVuYmVrYW5udGVyIEZlaGxlciBpc3QgYXVmZ2V0cmV0ZW4uXCJcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRmVobGVyIGJlaW0gSGluenVmw7xnZW4gZGVzIFN0YW5kb3J0czpcIiwgZXJyb3IpO1xyXG4gICAgICBhbGVydChlcnJvci5tZXNzYWdlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGZseShzdGF0aW9uVmFsdWUpIHtcclxuICAgIHZhciB4ID0gNTEuNDEzMjE0MDc4NzkxNTQ7XHJcbiAgICB2YXIgeSA9IDcuNzM5NjE3OTI1MzAzOTM0O1xyXG4gICAgdmFyIHpvb20gPSA3O1xyXG5cclxuICAgIC8qICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFTdGF0aWNsZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgZ2lzU3RhdGljcyA9IGRhdGFTdGF0aWNbaV07XHJcbiAgICAgIGlmIChzdGF0aW9uVmFsdWUgPT09IGdpc1N0YXRpY3MuQXJlYV9OYW1lKSB7XHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyhnaXNTdGF0aWNzLlgrXCIsXCIrZ2lzU3RhdGljcy5ZKTtcclxuICAgICAgICB4ID0gZ2lzU3RhdGljcy5YO1xyXG4gICAgICAgIHkgPSBnaXNTdGF0aWNzLlk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh5ID09PSA3LjczOTYxNzkyNTMwMzkzNCkge1xyXG4gICAgICB6b29tID0gODtcclxuICAgIH0gKi9cclxuICAgIGluaXRpYWxNYXAuZmx5VG8oW3gsIHldLCB6b29tKTtcclxuXHJcbiAgICAvKiB2YXIgcG9wdXAgPSBuZXcgTC5Qb3B1cCgpO1xyXG4gICAgb21zLmFkZExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKG1hcmtlcikge1xyXG4gICAgICBwb3B1cC5zZXRDb250ZW50KG1hcmtlci5kZXNjKTtcclxuICAgICAgcG9wdXAuc2V0TGF0TG5nKG1hcmtlci5nZXRMYXRMbmcoKSk7XHJcbiAgICAgIG1hcC5vcGVuUG9wdXAocG9wdXApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB3aW5kb3cubWFwRGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgZGF0dW0gPSB3aW5kb3cubWFwRGF0YVtpXTtcclxuICAgICAgdmFyIGxvYyA9IG5ldyBMLkxhdExuZyhkYXR1bS5sYXQsIGRhdHVtLmxvbik7XHJcbiAgICAgIHZhciBtYXJrZXIgPSBuZXcgTC5NYXJrZXIobG9jKTtcclxuICAgICAgbWFya2VyLmRlc2MgPSBkYXR1bS5kO1xyXG4gICAgICBtYXAuYWRkTGF5ZXIobWFya2VyKTtcclxuICAgICAgLy9vbXMuYWRkTWFya2VyKG1hcmtlcik7ICAvLyA8LS0gaGVyZVxyXG4gICAgfSAqL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgaWQ9XCJtYXBcIlxyXG4gICAgICByZWY9e21hcFJlZn1cclxuICAgICAgc3R5bGU9e3sgaGVpZ2h0OiBcIjEwMHZoXCIsIHdpZHRoOiBcIjEwMHZ3XCIsIG92ZXJmbG93OiBcImhpZGRlblwiIH19XHJcbiAgICA+PC9kaXY+XHJcbiAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1hcENvbXBvbmVudDtcclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlUmVmIiwidXNlU3RhdGUiLCJMIiwiY29uZmlnIiwiTWFwQ29tcG9uZW50IiwibG9jYXRpb25zIiwib25Mb2NhdGlvblVwZGF0ZSIsIm1hcFJlZiIsIm1hcCIsInNldE1hcCIsIm9ubGluZSIsInNldE9ubGluZSIsIm5hdmlnYXRvciIsIm9uTGluZSIsImRhdGFTdGF0aWMiLCJzZXREYXRhU3RhdGljIiwiZGF0YVN0YXR1cyIsInNldERhdGFTdGF0dXMiLCJkYXRhSWNvbnMiLCJzZXREYXRhSWNvbnMiLCJkYXRhU3lzdGVtIiwic2V0RGF0YVN5c3RlbSIsIm1hcERhdGFTdGF0aWNVcmwiLCJtYXBEYXRhU3RhdHVzVXJsIiwibWFwRGF0YUljb25VcmwiLCJtYXBEYXRhU3lzdGVtVXJsIiwiY29uc29sZSIsImxvZyIsImZldGNoRGF0YSIsInJlc3BvbnNlIiwiZmV0Y2giLCJqc29uUmVzcG9uc2UiLCJqc29uIiwibGVuZ3RoIiwicG9pbnRzIiwiZXJyb3IiLCJjaGVja0ludGVybmV0IiwicmVzcG9uc2VzIiwiUHJvbWlzZSIsImFsbCIsInRoZW4iLCJyZXMiLCJQb2ludHMiLCJTdGF0aXMiLCJMaXN0IiwiU3lzdGVtcyIsImZpbHRlciIsInN5c3RlbSIsIkFsbG93IiwiQXJyYXkiLCJpc0FycmF5IiwiZm9yRWFjaCIsIml0ZW0iLCJtYXJrZXIiLCJ5IiwieCIsImljb24iLCJpY29uVXJsIiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwicG9wdXBBbmNob3IiLCJzaGFkb3dTaXplIiwiYWRkVG8iLCJiaW5kUG9wdXAiLCJsRF9OYW1lIiwiZGV2aWNlIiwib3BlblBvcHVwIiwib2ZmbGluZVRpbGVMYXllciIsIm9ubGluZVRpbGVMYXllciIsIlRBTEFTIiwibGF5ZXJHcm91cCIsIkVDSSIsIlVMQUYiLCJHU01Nb2RlbSIsIkNpc2NvUm91dGVyIiwiV0FHTyIsIlNpZW1lbnMiLCJPVERSIiwiV0RNIiwiR01BIiwiU29uc3RpZ2UiLCJUQUxBU0lDTCIsImluaXRpYWxNYXAiLCJzZXJ2ZXJVUkwiLCJ3aW5kb3dIZWlnaHQiLCJtZXRob2QiLCJvayIsImNhdGNoIiwiY3VycmVudCIsImNlbnRlciIsInpvb20iLCJsYXllcnMiLCJ6b29tQ29udHJvbCIsImNvbnRleHRtZW51IiwiY29udGV4dG1lbnVJdGVtcyIsInRleHQiLCJjYWxsYmFjayIsInNob3dBZGRTdGF0aW9uUG9wdXAiLCJuZXdMaW5rIiwic2FtZUxpbmsiLCJsYXRhIiwiem9vbUluIiwiem9vbU91dCIsImNlbnRlckhlcmUiLCJ0aWxlTGF5ZXIiLCJhdHRyaWJ1dGlvbiIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibmV3TGF5ZXIiLCJtaW5ab29tIiwibWF4Wm9vbSIsImVhY2hMYXllciIsImxheWVyIiwiVGlsZUxheWVyIiwicmVtb3ZlTGF5ZXIiLCJNYXJrZXIiLCJsb2NhdGlvbiIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwicGFyc2VQb2ludCIsInBvc2l0aW9uIiwiZHJhZ2dhYmxlIiwiaWQiLCJpZFBvaSIsImRlc2NyaXB0aW9uIiwiaWRQb2lUeXAiLCJ0b0ZpeGVkIiwib24iLCJlIiwibmV3TGF0IiwidGFyZ2V0IiwiZ2V0TGF0TG5nIiwibGF0IiwibmV3TG5nIiwibG5nIiwibWFya2VySWQiLCJvcHRpb25zIiwidXBkYXRlTG9jYXRpb25JbkRhdGFiYXNlIiwicG9pbnRTdHJpbmciLCJtYXRjaCIsInBhcnNlRmxvYXQiLCJyZWxhdGVkVGFyZ2V0IiwiRXJyb3IiLCJhbGVydCIsInRlc3QiLCJvcGVuIiwiZm9jdXMiLCJsYXRsbmciLCJmbHlUbyIsImZseSIsInBhblRvIiwic2hvd0Nvb3JkaW5hdGVzIiwic2hvd0RhdGEiLCJzaG93VGFsYXMiLCJhZGRMYXllciIsImxvYWREYXRhIiwiaGlkZVRhbGFzIiwic2hvd0dTTSIsImhpZGVHU00iLCJwb3B1cENvbnRlbnQiLCJEb21VdGlsIiwiY3JlYXRlIiwiaW5uZXJIVE1MIiwicG9wdXAiLCJzZXRMYXRMbmciLCJzZXRDb250ZW50Iiwib3Blbk9uIiwiRG9tRXZlbnQiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZm9ybSIsImRhdGEiLCJuYW1lIiwidmFsdWUiLCJ0eXBlIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwicmVzZXQiLCJtZXNzYWdlIiwic3RhdGlvblZhbHVlIiwiZGl2IiwicmVmIiwic3R5bGUiLCJoZWlnaHQiLCJ3aWR0aCIsIm92ZXJmbG93Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./components/MapComponent.js\n");
+
+/***/ }),
+
+/***/ "./config/config.js":
+/*!**************************!*\
+ !*** ./config/config.js ***!
+ \**************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ c: () => (/* binding */ c),\n/* harmony export */ fullSideMenu: () => (/* binding */ fullSideMenu),\n/* harmony export */ mapDataIconUrl: () => (/* binding */ mapDataIconUrl),\n/* harmony export */ mapDataMeasures: () => (/* binding */ mapDataMeasures),\n/* harmony export */ mapDataStaticUrl: () => (/* binding */ mapDataStaticUrl),\n/* harmony export */ mapDataStatusUrl: () => (/* binding */ mapDataStatusUrl),\n/* harmony export */ mapDataSystemUrl: () => (/* binding */ mapDataSystemUrl),\n/* harmony export */ mapIconsOfflineURL: () => (/* binding */ mapIconsOfflineURL),\n/* harmony export */ mapMeasuresOfflineURL: () => (/* binding */ mapMeasuresOfflineURL),\n/* harmony export */ mapStaticOfflineURL: () => (/* binding */ mapStaticOfflineURL),\n/* harmony export */ mapStatusOfflineURL: () => (/* binding */ mapStatusOfflineURL),\n/* harmony export */ mapSystemOfflineURL: () => (/* binding */ mapSystemOfflineURL),\n/* harmony export */ mapVersion: () => (/* binding */ mapVersion),\n/* harmony export */ offlineData: () => (/* binding */ offlineData),\n/* harmony export */ serverURL: () => (/* binding */ serverURL),\n/* harmony export */ standardSideMenu: () => (/* binding */ standardSideMenu),\n/* harmony export */ url: () => (/* binding */ url),\n/* harmony export */ url_string: () => (/* binding */ url_string),\n/* harmony export */ user: () => (/* binding */ user),\n/* harmony export */ windowHeight: () => (/* binding */ windowHeight)\n/* harmony export */ });\n// Definieren der grundlegenden Umgebungseinstellungen und Konfigurationen der Karte\nconst mapVersion = \"0.5.3\"; // Die Version der verwendeten Karte\nconst standardSideMenu = true; // Einstellung, ob ein standardmäßiges Seitenmenü verwendet wird\nconst fullSideMenu = false; // Einstellung, ob ein vollständiges Seitenmenü verwendet wird\nconst offlineData = false; // Schalter, um anzugeben, ob Daten offline verfügbar gemacht werden sollen\nconst serverURL = \"/api\"; // Die Basis-URL des Servers, von dem Daten bezogen werden\n// Initialisieren von Variablen, die später im Browserkontext gesetzt werden\nlet windowHeight, url_string, url, c, user;\nlet mapDataStaticUrl, mapDataStatusUrl, mapDataMeasures, mapDataIconUrl, mapDataSystemUrl;\nlet mapStaticOfflineURL, mapStatusOfflineURL, mapSystemOfflineURL, mapIconsOfflineURL, mapMeasuresOfflineURL;\n// Prüfen, ob das Code im Browser ausgeführt wird\nif (false) {}\n// Export der definierten Variablen und URLs, damit sie in anderen Teilen der Anwendung verwendet werden können\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvY29uZmlnLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0ZBQW9GO0FBQ3BGLE1BQU1BLGFBQWEsU0FBUyxvQ0FBb0M7QUFDaEUsTUFBTUMsbUJBQW1CLE1BQU0sZ0VBQWdFO0FBQy9GLE1BQU1DLGVBQWUsT0FBTyw4REFBOEQ7QUFDMUYsTUFBTUMsY0FBYyxPQUFPLDJFQUEyRTtBQUN0RyxNQUFNQyxZQUFZLFFBQVEsMERBQTBEO0FBRXBGLDRFQUE0RTtBQUM1RSxJQUFJQyxjQUFjQyxZQUFZQyxLQUFLQyxHQUFHQztBQUN0QyxJQUFJQyxrQkFDRkMsa0JBQ0FDLGlCQUNBQyxnQkFDQUM7QUFDRixJQUFJQyxxQkFDRkMscUJBQ0FDLHFCQUNBQyxvQkFDQUM7QUFFRixpREFBaUQ7QUFDakQsSUFBSSxLQUE2QixFQUFFLEVBMEJsQztBQUVELCtHQUErRztBQXNCN0ciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb25maWcvY29uZmlnLmpzP2FhMDQiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRGVmaW5pZXJlbiBkZXIgZ3J1bmRsZWdlbmRlbiBVbWdlYnVuZ3NlaW5zdGVsbHVuZ2VuIHVuZCBLb25maWd1cmF0aW9uZW4gZGVyIEthcnRlXHJcbmNvbnN0IG1hcFZlcnNpb24gPSBcIjAuNS4zXCI7IC8vIERpZSBWZXJzaW9uIGRlciB2ZXJ3ZW5kZXRlbiBLYXJ0ZVxyXG5jb25zdCBzdGFuZGFyZFNpZGVNZW51ID0gdHJ1ZTsgLy8gRWluc3RlbGx1bmcsIG9iIGVpbiBzdGFuZGFyZG3DpMOfaWdlcyBTZWl0ZW5tZW7DvCB2ZXJ3ZW5kZXQgd2lyZFxyXG5jb25zdCBmdWxsU2lkZU1lbnUgPSBmYWxzZTsgLy8gRWluc3RlbGx1bmcsIG9iIGVpbiB2b2xsc3TDpG5kaWdlcyBTZWl0ZW5tZW7DvCB2ZXJ3ZW5kZXQgd2lyZFxyXG5jb25zdCBvZmZsaW5lRGF0YSA9IGZhbHNlOyAvLyBTY2hhbHRlciwgdW0gYW56dWdlYmVuLCBvYiBEYXRlbiBvZmZsaW5lIHZlcmbDvGdiYXIgZ2VtYWNodCB3ZXJkZW4gc29sbGVuXHJcbmNvbnN0IHNlcnZlclVSTCA9IFwiL2FwaVwiOyAvLyBEaWUgQmFzaXMtVVJMIGRlcyBTZXJ2ZXJzLCB2b24gZGVtIERhdGVuIGJlem9nZW4gd2VyZGVuXHJcblxyXG4vLyBJbml0aWFsaXNpZXJlbiB2b24gVmFyaWFibGVuLCBkaWUgc3DDpHRlciBpbSBCcm93c2Vya29udGV4dCBnZXNldHp0IHdlcmRlblxyXG5sZXQgd2luZG93SGVpZ2h0LCB1cmxfc3RyaW5nLCB1cmwsIGMsIHVzZXI7XHJcbmxldCBtYXBEYXRhU3RhdGljVXJsLFxyXG4gIG1hcERhdGFTdGF0dXNVcmwsXHJcbiAgbWFwRGF0YU1lYXN1cmVzLFxyXG4gIG1hcERhdGFJY29uVXJsLFxyXG4gIG1hcERhdGFTeXN0ZW1Vcmw7XHJcbmxldCBtYXBTdGF0aWNPZmZsaW5lVVJMLFxyXG4gIG1hcFN0YXR1c09mZmxpbmVVUkwsXHJcbiAgbWFwU3lzdGVtT2ZmbGluZVVSTCxcclxuICBtYXBJY29uc09mZmxpbmVVUkwsXHJcbiAgbWFwTWVhc3VyZXNPZmZsaW5lVVJMO1xyXG5cclxuLy8gUHLDvGZlbiwgb2IgZGFzIENvZGUgaW0gQnJvd3NlciBhdXNnZWbDvGhydCB3aXJkXHJcbmlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgLy8gRGllc2UgVmFyaWFibGVuIHdlcmRlbiBudXIgaW0gQnJvd3Nlci1Lb250ZXh0IGluaXRpYWxpc2llcnRcclxuICB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7IC8vIERpZSBIw7ZoZSBkZXMgQnJvd3NlcmZlbnN0ZXJzXHJcbiAgdXJsX3N0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOyAvLyBEaWUgdm9sbHN0w6RuZGlnZSBVUkwgYWxzIFN0cmluZ1xyXG4gIHVybCA9IG5ldyBVUkwodXJsX3N0cmluZyk7IC8vIERpZSBVUkwgYWxzIFVSTC1PYmpla3QsIHVtIFRlaWxlIGRlciBVUkwgZWluZmFjaGVyIHp1IGhhbmRoYWJlblxyXG4gIGMgPSB1cmwuc2VhcmNoUGFyYW1zLmdldChcIm1cIikgfHwgXCIxMFwiOyAvLyBFaW4gUGFyYW1ldGVyIGF1cyBkZXIgVVJMLCBTdGFuZGFyZHdlcnQgaXN0ICcxMCdcclxuICB1c2VyID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoXCJ1XCIpIHx8IFwiNDg0XCI7IC8vIEVpbiB3ZWl0ZXJlciBQYXJhbWV0ZXIgYXVzIGRlciBVUkwsIFN0YW5kYXJkd2VydCBpc3QgJzQ4NyBvZGVyIDQ4NCdcclxuXHJcbiAgLy8gS29uc3RydWt0aW9uIHZvbiBVUkxzLCBkaWUgYXVmIHNwZXppZmlzY2hlIFJlc3NvdXJjZW4gYXVmIGRlbSBTZXJ2ZXIgemVpZ2VuXHJcbiAgbWFwRGF0YVN0YXRpY1VybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdGljRGlzdHJpY3Q/aWRNYXA9JHtjfSZpZFVzZXI9JHt1c2VyfWA7XHJcbiAgbWFwRGF0YVN0YXR1c1VybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdHVzRGlzdHJpY3Q/aWRNYXA9JHtjfSZpZFVzZXI9JHt1c2VyfWA7XHJcbiAgbWFwRGF0YU1lYXN1cmVzID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3RhdGlvbnNNZWFzdXJlbWVudHM/aWRNYXA9JHtjfWA7XHJcbiAgbWFwRGF0YUljb25VcmwgPSBgJHtzZXJ2ZXJVUkx9L3RhbGFzNS9DbGllbnREYXRhL1dlYnNlcnZpY2VNYXAuYXNteC9HZXRJY29uc1N0YXRpY2A7XHJcbiAgbWFwRGF0YVN5c3RlbVVybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N5c3RlbVN0YXRpYz9pZE1hcD0ke2N9JmlkVXNlcj0ke3VzZXJ9YDtcclxuXHJcbiAgLyogICBtYXBEYXRhU3RhdGljVXJsID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdGA7XHJcbiAgbWFwRGF0YVN0YXR1c1VybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdHVzRGlzdHJpY3RgO1xyXG4gIG1hcERhdGFNZWFzdXJlcyA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zTWVhc3VyZW1lbnRzYDtcclxuICBtYXBEYXRhSWNvblVybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dldEljb25zU3RhdGljYDtcclxuICBtYXBEYXRhU3lzdGVtVXJsID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3lzdGVtU3RhdGljYDsgKi9cclxuICAvLyBVUkxzIHp1IE9mZmxpbmUtRGF0ZW4sIGZhbGxzIGJlbsO2dGlndFxyXG4gIG1hcFN0YXRpY09mZmxpbmVVUkwgPSBgb2ZmbGluZVRlc3REYXRhL2lkTWFwJHtjfUdpc1N0YXRpb25lblN0YXRpYy5qc29uYDtcclxuICBtYXBTdGF0dXNPZmZsaW5lVVJMID0gYG9mZmxpbmVUZXN0RGF0YS9pZE1hcCR7Y31HaXNTdGF0aW9uZW5TdGF0dXMuanNvbmA7XHJcbiAgbWFwU3lzdGVtT2ZmbGluZVVSTCA9IGBvZmZsaW5lVGVzdERhdGEvaWRNYXAke2N9R2lzU3lzdGVtU3RhdGljLmpzb25gO1xyXG4gIG1hcEljb25zT2ZmbGluZVVSTCA9IFwib2ZmbGluZVRlc3REYXRhL2ljb25zLmpzb25cIjtcclxuICBtYXBNZWFzdXJlc09mZmxpbmVVUkwgPSBgb2ZmbGluZVRlc3REYXRhL2lkTWFwJHtjfUdpc1N5c3RlbU1lYXN1cmVzLmpzb25gO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgZGVyIGRlZmluaWVydGVuIFZhcmlhYmxlbiB1bmQgVVJMcywgZGFtaXQgc2llIGluIGFuZGVyZW4gVGVpbGVuIGRlciBBbndlbmR1bmcgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbmV4cG9ydCB7XHJcbiAgbWFwVmVyc2lvbixcclxuICBzdGFuZGFyZFNpZGVNZW51LFxyXG4gIGZ1bGxTaWRlTWVudSxcclxuICBvZmZsaW5lRGF0YSxcclxuICBzZXJ2ZXJVUkwsXHJcbiAgd2luZG93SGVpZ2h0LFxyXG4gIHVybF9zdHJpbmcsXHJcbiAgdXJsLFxyXG4gIGMsXHJcbiAgdXNlcixcclxuICBtYXBEYXRhU3RhdGljVXJsLFxyXG4gIG1hcERhdGFTdGF0dXNVcmwsXHJcbiAgbWFwRGF0YU1lYXN1cmVzLFxyXG4gIG1hcERhdGFJY29uVXJsLFxyXG4gIG1hcERhdGFTeXN0ZW1VcmwsXHJcbiAgbWFwU3RhdGljT2ZmbGluZVVSTCxcclxuICBtYXBTdGF0dXNPZmZsaW5lVVJMLFxyXG4gIG1hcFN5c3RlbU9mZmxpbmVVUkwsXHJcbiAgbWFwSWNvbnNPZmZsaW5lVVJMLFxyXG4gIG1hcE1lYXN1cmVzT2ZmbGluZVVSTCxcclxufTtcclxuIl0sIm5hbWVzIjpbIm1hcFZlcnNpb24iLCJzdGFuZGFyZFNpZGVNZW51IiwiZnVsbFNpZGVNZW51Iiwib2ZmbGluZURhdGEiLCJzZXJ2ZXJVUkwiLCJ3aW5kb3dIZWlnaHQiLCJ1cmxfc3RyaW5nIiwidXJsIiwiYyIsInVzZXIiLCJtYXBEYXRhU3RhdGljVXJsIiwibWFwRGF0YVN0YXR1c1VybCIsIm1hcERhdGFNZWFzdXJlcyIsIm1hcERhdGFJY29uVXJsIiwibWFwRGF0YVN5c3RlbVVybCIsIm1hcFN0YXRpY09mZmxpbmVVUkwiLCJtYXBTdGF0dXNPZmZsaW5lVVJMIiwibWFwU3lzdGVtT2ZmbGluZVVSTCIsIm1hcEljb25zT2ZmbGluZVVSTCIsIm1hcE1lYXN1cmVzT2ZmbGluZVVSTCIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwibG9jYXRpb24iLCJocmVmIiwiVVJMIiwic2VhcmNoUGFyYW1zIiwiZ2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./config/config.js\n");
/***/ })
diff --git a/.next/server/pages-manifest.json b/.next/server/pages-manifest.json
index ba3b648b3..f79847db4 100644
--- a/.next/server/pages-manifest.json
+++ b/.next/server/pages-manifest.json
@@ -3,5 +3,6 @@
"/_error": "pages/_error.js",
"/_document": "pages/_document.js",
"/": "pages/index.js",
- "/api/locations": "pages/api/locations.js"
+ "/api/locations": "pages/api/locations.js",
+ "/api/[...path]": "pages/api/[...path].js"
}
\ No newline at end of file
diff --git a/.next/server/pages/_app.js b/.next/server/pages/_app.js
index 3d2cab26e..e71a4b57e 100644
--- a/.next/server/pages/_app.js
+++ b/.next/server/pages/_app.js
@@ -19,7 +19,7 @@ exports.modules = {
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
/***/ }),
diff --git a/.next/server/pages/_document.js b/.next/server/pages/_document.js
index 4c8974ee0..a0748c06c 100644
--- a/.next/server/pages/_document.js
+++ b/.next/server/pages/_document.js
@@ -13,16 +13,6 @@ exports.id = "pages/_document";
exports.ids = ["pages/_document"];
exports.modules = {
-/***/ "./pages/_document.js":
-/*!****************************!*\
- !*** ./pages/_document.js ***!
- \****************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/document */ \"./node_modules/next/document.js\");\n/* harmony import */ var next_document__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_document__WEBPACK_IMPORTED_MODULE_1__);\n// pages/_document.js\n\n\nclass MyDocument extends (next_document__WEBPACK_IMPORTED_MODULE_1___default()) {\n render() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Html, {\n lang: \"de\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Head, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"script\", {\n src: \"/config.js\",\n defer: true\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 8,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Main, {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 14,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.NextScript, {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 15,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 13,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 7,\n columnNumber: 7\n }, this);\n }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyDocument);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fZG9jdW1lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxxQkFBcUI7O0FBQ2tEO0FBRXZFLE1BQU1LLG1CQUFtQkwsc0RBQVFBO0lBQy9CTSxTQUFTO1FBQ1AscUJBQ0UsOERBQUNMLCtDQUFJQTtZQUFDTSxNQUFLOzs4QkFDVCw4REFBQ0wsK0NBQUlBOzhCQUdILDRFQUFDTTt3QkFBT0MsS0FBSTt3QkFBYUMsS0FBSzs7Ozs7Ozs7Ozs7OEJBRWhDLDhEQUFDQzs7c0NBQ0MsOERBQUNSLCtDQUFJQTs7Ozs7c0NBQ0wsOERBQUNDLHFEQUFVQTs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFJbkI7QUFDRjtBQUVBLGlFQUFlQyxVQUFVQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcGFnZXMvX2RvY3VtZW50LmpzPzUzOGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFnZXMvX2RvY3VtZW50LmpzXHJcbmltcG9ydCBEb2N1bWVudCwgeyBIdG1sLCBIZWFkLCBNYWluLCBOZXh0U2NyaXB0IH0gZnJvbSBcIm5leHQvZG9jdW1lbnRcIjtcclxuXHJcbmNsYXNzIE15RG9jdW1lbnQgZXh0ZW5kcyBEb2N1bWVudCB7XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEh0bWwgbGFuZz1cImRlXCI+XHJcbiAgICAgICAgPEhlYWQ+XHJcbiAgICAgICAgICB7LyogSGllciBNZXRhLVRhZ3Mgb2RlciBTY2hyaWZ0YXJ0ZW4gZWluYmluZGVuICovfVxyXG4gICAgICAgICAgey8qIERhcyBTY3JpcHQgd2lyZCBoaWVyIGVpbmdlYnVuZGVuLCB1bSBlcyBhdWYgYWxsZW4gU2VpdGVuIHZlcmbDvGdiYXIgenUgbWFjaGVuICovfVxyXG4gICAgICAgICAgPHNjcmlwdCBzcmM9XCIvY29uZmlnLmpzXCIgZGVmZXI+PC9zY3JpcHQ+XHJcbiAgICAgICAgPC9IZWFkPlxyXG4gICAgICAgIDxib2R5PlxyXG4gICAgICAgICAgPE1haW4gLz5cclxuICAgICAgICAgIDxOZXh0U2NyaXB0IC8+XHJcbiAgICAgICAgPC9ib2R5PlxyXG4gICAgICA8L0h0bWw+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTXlEb2N1bWVudDtcclxuIl0sIm5hbWVzIjpbIkRvY3VtZW50IiwiSHRtbCIsIkhlYWQiLCJNYWluIiwiTmV4dFNjcmlwdCIsIk15RG9jdW1lbnQiLCJyZW5kZXIiLCJsYW5nIiwic2NyaXB0Iiwic3JjIiwiZGVmZXIiLCJib2R5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_document.js\n");
-
-/***/ }),
-
/***/ "next/dist/compiled/next-server/pages.runtime.dev.js":
/*!**********************************************************************!*\
!*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***!
@@ -43,16 +33,6 @@ module.exports = require("react");
/***/ }),
-/***/ "react/jsx-dev-runtime":
-/*!****************************************!*\
- !*** external "react/jsx-dev-runtime" ***!
- \****************************************/
-/***/ ((module) => {
-
-module.exports = require("react/jsx-dev-runtime");
-
-/***/ }),
-
/***/ "react/jsx-runtime":
/*!************************************!*\
!*** external "react/jsx-runtime" ***!
@@ -80,7 +60,7 @@ module.exports = require("path");
var __webpack_require__ = require("../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./pages/_document.js")));
+var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./node_modules/next/dist/pages/_document.js")));
module.exports = __webpack_exports__;
})();
\ No newline at end of file
diff --git a/.next/server/pages/_error.js b/.next/server/pages/_error.js
index 7b062dad1..a3e359415 100644
--- a/.next/server/pages/_error.js
+++ b/.next/server/pages/_error.js
@@ -19,7 +19,7 @@ exports.modules = {
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages/module.compiled */ \"./node_modules/next/dist/server/future/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! private-next-pages/_document */ \"./pages/_document.js\");\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! private-next-pages/_app */ \"./pages/_app.js\");\n/* harmony import */ var private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! private-next-pages/_error */ \"./node_modules/next/dist/pages/_error.js\");\n/* harmony import */ var private_next_pages_error__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"default\"));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getStaticProps\");\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getStaticPaths\");\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getServerSideProps\");\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"config\");\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"reportWebVitals\");\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticProps\");\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticPaths\");\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticParams\");\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerProps\");\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerSideProps\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/_error\",\n pathname: \"/_error\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n components: {\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Document: private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n userland: private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__\n});\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTJnBhZ2U9JTJGX2Vycm9yJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZXJyb3ImYWJzb2x1dGVBcHBQYXRoPXByaXZhdGUtbmV4dC1wYWdlcyUyRl9hcHAmYWJzb2x1dGVEb2N1bWVudFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2RvY3VtZW50Jm1pZGRsZXdhcmVDb25maWdCYXNlNjQ9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUErRjtBQUNoQztBQUNMO0FBQzFEO0FBQ29EO0FBQ1Y7QUFDMUM7QUFDc0Q7QUFDdEQ7QUFDQSxpRUFBZSx3RUFBSyxDQUFDLHFEQUFRLFlBQVksRUFBQztBQUMxQztBQUNPLHVCQUF1Qix3RUFBSyxDQUFDLHFEQUFRO0FBQ3JDLHVCQUF1Qix3RUFBSyxDQUFDLHFEQUFRO0FBQ3JDLDJCQUEyQix3RUFBSyxDQUFDLHFEQUFRO0FBQ3pDLGVBQWUsd0VBQUssQ0FBQyxxREFBUTtBQUM3Qix3QkFBd0Isd0VBQUssQ0FBQyxxREFBUTtBQUM3QztBQUNPLGdDQUFnQyx3RUFBSyxDQUFDLHFEQUFRO0FBQzlDLGdDQUFnQyx3RUFBSyxDQUFDLHFEQUFRO0FBQzlDLGlDQUFpQyx3RUFBSyxDQUFDLHFEQUFRO0FBQy9DLGdDQUFnQyx3RUFBSyxDQUFDLHFEQUFRO0FBQzlDLG9DQUFvQyx3RUFBSyxDQUFDLHFEQUFRO0FBQ3pEO0FBQ08sd0JBQXdCLHlHQUFnQjtBQUMvQztBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFdBQVc7QUFDWCxnQkFBZ0I7QUFDaEIsS0FBSztBQUNMLFlBQVk7QUFDWixDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLz80MDBiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VzUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9wYWdlcy9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBob2lzdCB9IGZyb20gXCJuZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnNcIjtcbi8vIEltcG9ydCB0aGUgYXBwIGFuZCBkb2N1bWVudCBtb2R1bGVzLlxuaW1wb3J0IERvY3VtZW50IGZyb20gXCJwcml2YXRlLW5leHQtcGFnZXMvX2RvY3VtZW50XCI7XG5pbXBvcnQgQXBwIGZyb20gXCJwcml2YXRlLW5leHQtcGFnZXMvX2FwcFwiO1xuLy8gSW1wb3J0IHRoZSB1c2VybGFuZCBjb2RlLlxuaW1wb3J0ICogYXMgdXNlcmxhbmQgZnJvbSBcInByaXZhdGUtbmV4dC1wYWdlcy9fZXJyb3JcIjtcbi8vIFJlLWV4cG9ydCB0aGUgY29tcG9uZW50IChzaG91bGQgYmUgdGhlIGRlZmF1bHQgZXhwb3J0KS5cbmV4cG9ydCBkZWZhdWx0IGhvaXN0KHVzZXJsYW5kLCBcImRlZmF1bHRcIik7XG4vLyBSZS1leHBvcnQgbWV0aG9kcy5cbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCBcImdldFN0YXRpY1Byb3BzXCIpO1xuZXhwb3J0IGNvbnN0IGdldFN0YXRpY1BhdGhzID0gaG9pc3QodXNlcmxhbmQsIFwiZ2V0U3RhdGljUGF0aHNcIik7XG5leHBvcnQgY29uc3QgZ2V0U2VydmVyU2lkZVByb3BzID0gaG9pc3QodXNlcmxhbmQsIFwiZ2V0U2VydmVyU2lkZVByb3BzXCIpO1xuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IGhvaXN0KHVzZXJsYW5kLCBcImNvbmZpZ1wiKTtcbmV4cG9ydCBjb25zdCByZXBvcnRXZWJWaXRhbHMgPSBob2lzdCh1c2VybGFuZCwgXCJyZXBvcnRXZWJWaXRhbHNcIik7XG4vLyBSZS1leHBvcnQgbGVnYWN5IG1ldGhvZHMuXG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTdGF0aWNQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQYXRocyA9IGhvaXN0KHVzZXJsYW5kLCBcInVuc3RhYmxlX2dldFN0YXRpY1BhdGhzXCIpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1BhcmFtcyA9IGhvaXN0KHVzZXJsYW5kLCBcInVuc3RhYmxlX2dldFN0YXRpY1BhcmFtc1wiKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTZXJ2ZXJQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCBcInVuc3RhYmxlX2dldFNlcnZlclByb3BzXCIpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFNlcnZlclNpZGVQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCBcInVuc3RhYmxlX2dldFNlcnZlclNpZGVQcm9wc1wiKTtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IFBhZ2VzUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICBwYWdlOiBcIi9fZXJyb3JcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL19lcnJvclwiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiXG4gICAgfSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEFwcCxcbiAgICAgICAgRG9jdW1lbnRcbiAgICB9LFxuICAgIHVzZXJsYW5kXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages/module.compiled */ \"./node_modules/next/dist/server/future/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! private-next-pages/_document */ \"./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! private-next-pages/_app */ \"./pages/_app.js\");\n/* harmony import */ var private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! private-next-pages/_error */ \"./node_modules/next/dist/pages/_error.js\");\n/* harmony import */ var private_next_pages_error__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"default\"));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getStaticProps\");\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getStaticPaths\");\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"getServerSideProps\");\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"config\");\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"reportWebVitals\");\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticProps\");\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticPaths\");\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticParams\");\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerProps\");\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerSideProps\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/_error\",\n pathname: \"/_error\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n components: {\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Document: (private_next_pages_document__WEBPACK_IMPORTED_MODULE_3___default())\n },\n userland: private_next_pages_error__WEBPACK_IMPORTED_MODULE_5__\n});\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTJnBhZ2U9JTJGX2Vycm9yJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZXJyb3ImYWJzb2x1dGVBcHBQYXRoPXByaXZhdGUtbmV4dC1wYWdlcyUyRl9hcHAmYWJzb2x1dGVEb2N1bWVudFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2RvY3VtZW50Jm1pZGRsZXdhcmVDb25maWdCYXNlNjQ9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBK0Y7QUFDaEM7QUFDTDtBQUMxRDtBQUNvRDtBQUNWO0FBQzFDO0FBQ3NEO0FBQ3REO0FBQ0EsaUVBQWUsd0VBQUssQ0FBQyxxREFBUSxZQUFZLEVBQUM7QUFDMUM7QUFDTyx1QkFBdUIsd0VBQUssQ0FBQyxxREFBUTtBQUNyQyx1QkFBdUIsd0VBQUssQ0FBQyxxREFBUTtBQUNyQywyQkFBMkIsd0VBQUssQ0FBQyxxREFBUTtBQUN6QyxlQUFlLHdFQUFLLENBQUMscURBQVE7QUFDN0Isd0JBQXdCLHdFQUFLLENBQUMscURBQVE7QUFDN0M7QUFDTyxnQ0FBZ0Msd0VBQUssQ0FBQyxxREFBUTtBQUM5QyxnQ0FBZ0Msd0VBQUssQ0FBQyxxREFBUTtBQUM5QyxpQ0FBaUMsd0VBQUssQ0FBQyxxREFBUTtBQUMvQyxnQ0FBZ0Msd0VBQUssQ0FBQyxxREFBUTtBQUM5QyxvQ0FBb0Msd0VBQUssQ0FBQyxxREFBUTtBQUN6RDtBQUNPLHdCQUF3Qix5R0FBZ0I7QUFDL0M7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxXQUFXO0FBQ1gsZ0JBQWdCO0FBQ2hCLEtBQUs7QUFDTCxZQUFZO0FBQ1osQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8/NDAwYiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlc1JvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgaG9pc3QgfSBmcm9tIFwibmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzXCI7XG4vLyBJbXBvcnQgdGhlIGFwcCBhbmQgZG9jdW1lbnQgbW9kdWxlcy5cbmltcG9ydCBEb2N1bWVudCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19kb2N1bWVudFwiO1xuaW1wb3J0IEFwcCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIjtcbi8vIEltcG9ydCB0aGUgdXNlcmxhbmQgY29kZS5cbmltcG9ydCAqIGFzIHVzZXJsYW5kIGZyb20gXCJwcml2YXRlLW5leHQtcGFnZXMvX2Vycm9yXCI7XG4vLyBSZS1leHBvcnQgdGhlIGNvbXBvbmVudCAoc2hvdWxkIGJlIHRoZSBkZWZhdWx0IGV4cG9ydCkuXG5leHBvcnQgZGVmYXVsdCBob2lzdCh1c2VybGFuZCwgXCJkZWZhdWx0XCIpO1xuLy8gUmUtZXhwb3J0IG1ldGhvZHMuXG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJnZXRTdGF0aWNQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQYXRocyA9IGhvaXN0KHVzZXJsYW5kLCBcImdldFN0YXRpY1BhdGhzXCIpO1xuZXhwb3J0IGNvbnN0IGdldFNlcnZlclNpZGVQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCBcImdldFNlcnZlclNpZGVQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCBjb25maWcgPSBob2lzdCh1c2VybGFuZCwgXCJjb25maWdcIik7XG5leHBvcnQgY29uc3QgcmVwb3J0V2ViVml0YWxzID0gaG9pc3QodXNlcmxhbmQsIFwicmVwb3J0V2ViVml0YWxzXCIpO1xuLy8gUmUtZXhwb3J0IGxlZ2FjeSBtZXRob2RzLlxuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1Byb3BzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U3RhdGljUHJvcHNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTdGF0aWNQYXRoc1wiKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U2VydmVyUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTZXJ2ZXJQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHNcIik7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBQYWdlc1JvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgcGFnZTogXCIvX2Vycm9yXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9fZXJyb3JcIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIlxuICAgIH0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBBcHAsXG4gICAgICAgIERvY3VtZW50XG4gICAgfSxcbiAgICB1c2VybGFuZFxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=private-next-pages%2F_error&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n");
/***/ }),
@@ -30,18 +30,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
-
-/***/ }),
-
-/***/ "./pages/_document.js":
-/*!****************************!*\
- !*** ./pages/_document.js ***!
- \****************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/document */ \"./node_modules/next/document.js\");\n/* harmony import */ var next_document__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_document__WEBPACK_IMPORTED_MODULE_1__);\n// pages/_document.js\n\n\nclass MyDocument extends (next_document__WEBPACK_IMPORTED_MODULE_1___default()) {\n render() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Html, {\n lang: \"de\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Head, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"script\", {\n src: \"/config.js\",\n defer: true\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 8,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Main, {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 14,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.NextScript, {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 15,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 13,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 7,\n columnNumber: 7\n }, this);\n }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyDocument);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fZG9jdW1lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxxQkFBcUI7O0FBQ2tEO0FBRXZFLE1BQU1LLG1CQUFtQkwsc0RBQVFBO0lBQy9CTSxTQUFTO1FBQ1AscUJBQ0UsOERBQUNMLCtDQUFJQTtZQUFDTSxNQUFLOzs4QkFDVCw4REFBQ0wsK0NBQUlBOzhCQUdILDRFQUFDTTt3QkFBT0MsS0FBSTt3QkFBYUMsS0FBSzs7Ozs7Ozs7Ozs7OEJBRWhDLDhEQUFDQzs7c0NBQ0MsOERBQUNSLCtDQUFJQTs7Ozs7c0NBQ0wsOERBQUNDLHFEQUFVQTs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFJbkI7QUFDRjtBQUVBLGlFQUFlQyxVQUFVQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcGFnZXMvX2RvY3VtZW50LmpzPzUzOGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFnZXMvX2RvY3VtZW50LmpzXHJcbmltcG9ydCBEb2N1bWVudCwgeyBIdG1sLCBIZWFkLCBNYWluLCBOZXh0U2NyaXB0IH0gZnJvbSBcIm5leHQvZG9jdW1lbnRcIjtcclxuXHJcbmNsYXNzIE15RG9jdW1lbnQgZXh0ZW5kcyBEb2N1bWVudCB7XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEh0bWwgbGFuZz1cImRlXCI+XHJcbiAgICAgICAgPEhlYWQ+XHJcbiAgICAgICAgICB7LyogSGllciBNZXRhLVRhZ3Mgb2RlciBTY2hyaWZ0YXJ0ZW4gZWluYmluZGVuICovfVxyXG4gICAgICAgICAgey8qIERhcyBTY3JpcHQgd2lyZCBoaWVyIGVpbmdlYnVuZGVuLCB1bSBlcyBhdWYgYWxsZW4gU2VpdGVuIHZlcmbDvGdiYXIgenUgbWFjaGVuICovfVxyXG4gICAgICAgICAgPHNjcmlwdCBzcmM9XCIvY29uZmlnLmpzXCIgZGVmZXI+PC9zY3JpcHQ+XHJcbiAgICAgICAgPC9IZWFkPlxyXG4gICAgICAgIDxib2R5PlxyXG4gICAgICAgICAgPE1haW4gLz5cclxuICAgICAgICAgIDxOZXh0U2NyaXB0IC8+XHJcbiAgICAgICAgPC9ib2R5PlxyXG4gICAgICA8L0h0bWw+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTXlEb2N1bWVudDtcclxuIl0sIm5hbWVzIjpbIkRvY3VtZW50IiwiSHRtbCIsIkhlYWQiLCJNYWluIiwiTmV4dFNjcmlwdCIsIk15RG9jdW1lbnQiLCJyZW5kZXIiLCJsYW5nIiwic2NyaXB0Iiwic3JjIiwiZGVmZXIiLCJib2R5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_document.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
/***/ }),
diff --git a/.next/server/pages/api/locations.js b/.next/server/pages/api/locations.js
index aba308ff9..f50ebcc91 100644
--- a/.next/server/pages/api/locations.js
+++ b/.next/server/pages/api/locations.js
@@ -39,7 +39,7 @@ module.exports = require("next/dist/compiled/next-server/pages-api.runtime.dev.j
\************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ routeModule: () => (/* binding */ routeModule)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages-api/module.compiled */ \"(api)/./node_modules/next/dist/server/future/route-modules/pages-api/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(api)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(api)/./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var _pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pages\\api\\locations.js */ \"(api)/./pages/api/locations.js\");\n\n\n\n// Import the userland code.\n\n// Re-export the handler (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__, \"default\"));\n// Re-export config.\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__, \"config\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesAPIRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES_API,\n page: \"/api/locations\",\n pathname: \"/api/locations\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n userland: _pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__\n});\n\n//# sourceMappingURL=pages-api.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTX0FQSSZwYWdlPSUyRmFwaSUyRmxvY2F0aW9ucyZwcmVmZXJyZWRSZWdpb249JmFic29sdXRlUGFnZVBhdGg9LiUyRnBhZ2VzJTVDYXBpJTVDbG9jYXRpb25zLmpzJm1pZGRsZXdhcmVDb25maWdCYXNlNjQ9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFzRztBQUN2QztBQUNMO0FBQzFEO0FBQ3VEO0FBQ3ZEO0FBQ0EsaUVBQWUsd0VBQUssQ0FBQyxvREFBUSxZQUFZLEVBQUM7QUFDMUM7QUFDTyxlQUFlLHdFQUFLLENBQUMsb0RBQVE7QUFDcEM7QUFDTyx3QkFBd0IsZ0hBQW1CO0FBQ2xEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLFlBQVk7QUFDWixDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLz8yNjJmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VzQVBJUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9wYWdlcy1hcGkvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgaG9pc3QgfSBmcm9tIFwibmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzXCI7XG4vLyBJbXBvcnQgdGhlIHVzZXJsYW5kIGNvZGUuXG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiLi9wYWdlc1xcXFxhcGlcXFxcbG9jYXRpb25zLmpzXCI7XG4vLyBSZS1leHBvcnQgdGhlIGhhbmRsZXIgKHNob3VsZCBiZSB0aGUgZGVmYXVsdCBleHBvcnQpLlxuZXhwb3J0IGRlZmF1bHQgaG9pc3QodXNlcmxhbmQsIFwiZGVmYXVsdFwiKTtcbi8vIFJlLWV4cG9ydCBjb25maWcuXG5leHBvcnQgY29uc3QgY29uZmlnID0gaG9pc3QodXNlcmxhbmQsIFwiY29uZmlnXCIpO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgUGFnZXNBUElSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuUEFHRVNfQVBJLFxuICAgICAgICBwYWdlOiBcIi9hcGkvbG9jYXRpb25zXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9hcGkvbG9jYXRpb25zXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogXCJcIixcbiAgICAgICAgZmlsZW5hbWU6IFwiXCJcbiAgICB9LFxuICAgIHVzZXJsYW5kXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtYXBpLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Flocations&preferredRegion=&absolutePagePath=.%2Fpages%5Capi%5Clocations.js&middlewareConfigBase64=e30%3D!\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ routeModule: () => (/* binding */ routeModule)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages-api/module.compiled */ \"(api)/./node_modules/next/dist/server/future/route-modules/pages-api/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(api)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(api)/./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var _pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./pages\\api\\locations.js */ \"(api)/./pages/api/locations.js\");\n\n\n\n// Import the userland code.\n\n// Re-export the handler (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__, \"default\"));\n// Re-export config.\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__, \"config\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesAPIRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES_API,\n page: \"/api/locations\",\n pathname: \"/api/locations\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n userland: _pages_api_locations_js__WEBPACK_IMPORTED_MODULE_3__\n});\n\n//# sourceMappingURL=pages-api.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTX0FQSSZwYWdlPSUyRmFwaSUyRmxvY2F0aW9ucyZwcmVmZXJyZWRSZWdpb249JmFic29sdXRlUGFnZVBhdGg9LiUyRnBhZ2VzJTVDYXBpJTVDbG9jYXRpb25zLmpzJm1pZGRsZXdhcmVDb25maWdCYXNlNjQ9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFzRztBQUN2QztBQUNMO0FBQzFEO0FBQ3VEO0FBQ3ZEO0FBQ0EsaUVBQWUsd0VBQUssQ0FBQyxvREFBUSxZQUFZLEVBQUM7QUFDMUM7QUFDTyxlQUFlLHdFQUFLLENBQUMsb0RBQVE7QUFDcEM7QUFDTyx3QkFBd0IsZ0hBQW1CO0FBQ2xEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLFlBQVk7QUFDWixDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLz9mYWJhIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VzQVBJUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9wYWdlcy1hcGkvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgaG9pc3QgfSBmcm9tIFwibmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzXCI7XG4vLyBJbXBvcnQgdGhlIHVzZXJsYW5kIGNvZGUuXG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiLi9wYWdlc1xcXFxhcGlcXFxcbG9jYXRpb25zLmpzXCI7XG4vLyBSZS1leHBvcnQgdGhlIGhhbmRsZXIgKHNob3VsZCBiZSB0aGUgZGVmYXVsdCBleHBvcnQpLlxuZXhwb3J0IGRlZmF1bHQgaG9pc3QodXNlcmxhbmQsIFwiZGVmYXVsdFwiKTtcbi8vIFJlLWV4cG9ydCBjb25maWcuXG5leHBvcnQgY29uc3QgY29uZmlnID0gaG9pc3QodXNlcmxhbmQsIFwiY29uZmlnXCIpO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgUGFnZXNBUElSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuUEFHRVNfQVBJLFxuICAgICAgICBwYWdlOiBcIi9hcGkvbG9jYXRpb25zXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9hcGkvbG9jYXRpb25zXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogXCJcIixcbiAgICAgICAgZmlsZW5hbWU6IFwiXCJcbiAgICB9LFxuICAgIHVzZXJsYW5kXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMtYXBpLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Flocations&preferredRegion=&absolutePagePath=.%2Fpages%5Capi%5Clocations.js&middlewareConfigBase64=e30%3D!\n");
/***/ }),
diff --git a/.next/server/pages/index.js b/.next/server/pages/index.js
index d28aa9762..b17340713 100644
--- a/.next/server/pages/index.js
+++ b/.next/server/pages/index.js
@@ -19,7 +19,7 @@ exports.modules = {
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages/module.compiled */ \"./node_modules/next/dist/server/future/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! private-next-pages/_document */ \"./pages/_document.js\");\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! private-next-pages/_app */ \"./pages/_app.js\");\n/* harmony import */ var _pages_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pages\\index.js */ \"./pages/index.js\");\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"default\"));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getStaticProps\");\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getStaticPaths\");\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getServerSideProps\");\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"config\");\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"reportWebVitals\");\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticProps\");\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticPaths\");\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticParams\");\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerProps\");\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerSideProps\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/index\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n components: {\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Document: private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n },\n userland: _pages_index_js__WEBPACK_IMPORTED_MODULE_5__\n});\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTJnBhZ2U9JTJGJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD0uJTJGcGFnZXMlNUNpbmRleC5qcyZhYnNvbHV0ZUFwcFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCZhYnNvbHV0ZURvY3VtZW50UGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZG9jdW1lbnQmbWlkZGxld2FyZUNvbmZpZ0Jhc2U2ND1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBK0Y7QUFDaEM7QUFDTDtBQUMxRDtBQUNvRDtBQUNWO0FBQzFDO0FBQzhDO0FBQzlDO0FBQ0EsaUVBQWUsd0VBQUssQ0FBQyw0Q0FBUSxZQUFZLEVBQUM7QUFDMUM7QUFDTyx1QkFBdUIsd0VBQUssQ0FBQyw0Q0FBUTtBQUNyQyx1QkFBdUIsd0VBQUssQ0FBQyw0Q0FBUTtBQUNyQywyQkFBMkIsd0VBQUssQ0FBQyw0Q0FBUTtBQUN6QyxlQUFlLHdFQUFLLENBQUMsNENBQVE7QUFDN0Isd0JBQXdCLHdFQUFLLENBQUMsNENBQVE7QUFDN0M7QUFDTyxnQ0FBZ0Msd0VBQUssQ0FBQyw0Q0FBUTtBQUM5QyxnQ0FBZ0Msd0VBQUssQ0FBQyw0Q0FBUTtBQUM5QyxpQ0FBaUMsd0VBQUssQ0FBQyw0Q0FBUTtBQUMvQyxnQ0FBZ0Msd0VBQUssQ0FBQyw0Q0FBUTtBQUM5QyxvQ0FBb0Msd0VBQUssQ0FBQyw0Q0FBUTtBQUN6RDtBQUNPLHdCQUF3Qix5R0FBZ0I7QUFDL0M7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxXQUFXO0FBQ1gsZ0JBQWdCO0FBQ2hCLEtBQUs7QUFDTCxZQUFZO0FBQ1osQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovLy8/MmNlNiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlc1JvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgaG9pc3QgfSBmcm9tIFwibmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzXCI7XG4vLyBJbXBvcnQgdGhlIGFwcCBhbmQgZG9jdW1lbnQgbW9kdWxlcy5cbmltcG9ydCBEb2N1bWVudCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19kb2N1bWVudFwiO1xuaW1wb3J0IEFwcCBmcm9tIFwicHJpdmF0ZS1uZXh0LXBhZ2VzL19hcHBcIjtcbi8vIEltcG9ydCB0aGUgdXNlcmxhbmQgY29kZS5cbmltcG9ydCAqIGFzIHVzZXJsYW5kIGZyb20gXCIuL3BhZ2VzXFxcXGluZGV4LmpzXCI7XG4vLyBSZS1leHBvcnQgdGhlIGNvbXBvbmVudCAoc2hvdWxkIGJlIHRoZSBkZWZhdWx0IGV4cG9ydCkuXG5leHBvcnQgZGVmYXVsdCBob2lzdCh1c2VybGFuZCwgXCJkZWZhdWx0XCIpO1xuLy8gUmUtZXhwb3J0IG1ldGhvZHMuXG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJnZXRTdGF0aWNQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQYXRocyA9IGhvaXN0KHVzZXJsYW5kLCBcImdldFN0YXRpY1BhdGhzXCIpO1xuZXhwb3J0IGNvbnN0IGdldFNlcnZlclNpZGVQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCBcImdldFNlcnZlclNpZGVQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCBjb25maWcgPSBob2lzdCh1c2VybGFuZCwgXCJjb25maWdcIik7XG5leHBvcnQgY29uc3QgcmVwb3J0V2ViVml0YWxzID0gaG9pc3QodXNlcmxhbmQsIFwicmVwb3J0V2ViVml0YWxzXCIpO1xuLy8gUmUtZXhwb3J0IGxlZ2FjeSBtZXRob2RzLlxuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1Byb3BzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U3RhdGljUHJvcHNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTdGF0aWNQYXRoc1wiKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U2VydmVyUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTZXJ2ZXJQcm9wc1wiKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJ1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHNcIik7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBQYWdlc1JvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgcGFnZTogXCIvaW5kZXhcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL1wiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiXG4gICAgfSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEFwcCxcbiAgICAgICAgRG9jdW1lbnRcbiAgICB9LFxuICAgIHVzZXJsYW5kXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/pages/module.compiled */ \"./node_modules/next/dist/server/future/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! private-next-pages/_document */ \"./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var private_next_pages_document__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(private_next_pages_document__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! private-next-pages/_app */ \"./pages/_app.js\");\n/* harmony import */ var _pages_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./pages\\index.js */ \"./pages/index.js\");\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"default\"));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getStaticProps\");\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getStaticPaths\");\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"getServerSideProps\");\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"config\");\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"reportWebVitals\");\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticProps\");\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticPaths\");\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getStaticParams\");\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerProps\");\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_pages_index_js__WEBPACK_IMPORTED_MODULE_5__, \"unstable_getServerSideProps\");\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/index\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\"\n },\n components: {\n App: private_next_pages_app__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n Document: (private_next_pages_document__WEBPACK_IMPORTED_MODULE_3___default())\n },\n userland: _pages_index_js__WEBPACK_IMPORTED_MODULE_5__\n});\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTJnBhZ2U9JTJGJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD0uJTJGcGFnZXMlNUNpbmRleC5qcyZhYnNvbHV0ZUFwcFBhdGg9cHJpdmF0ZS1uZXh0LXBhZ2VzJTJGX2FwcCZhYnNvbHV0ZURvY3VtZW50UGF0aD1wcml2YXRlLW5leHQtcGFnZXMlMkZfZG9jdW1lbnQmbWlkZGxld2FyZUNvbmZpZ0Jhc2U2ND1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQStGO0FBQ2hDO0FBQ0w7QUFDMUQ7QUFDb0Q7QUFDVjtBQUMxQztBQUM4QztBQUM5QztBQUNBLGlFQUFlLHdFQUFLLENBQUMsNENBQVEsWUFBWSxFQUFDO0FBQzFDO0FBQ08sdUJBQXVCLHdFQUFLLENBQUMsNENBQVE7QUFDckMsdUJBQXVCLHdFQUFLLENBQUMsNENBQVE7QUFDckMsMkJBQTJCLHdFQUFLLENBQUMsNENBQVE7QUFDekMsZUFBZSx3RUFBSyxDQUFDLDRDQUFRO0FBQzdCLHdCQUF3Qix3RUFBSyxDQUFDLDRDQUFRO0FBQzdDO0FBQ08sZ0NBQWdDLHdFQUFLLENBQUMsNENBQVE7QUFDOUMsZ0NBQWdDLHdFQUFLLENBQUMsNENBQVE7QUFDOUMsaUNBQWlDLHdFQUFLLENBQUMsNENBQVE7QUFDL0MsZ0NBQWdDLHdFQUFLLENBQUMsNENBQVE7QUFDOUMsb0NBQW9DLHdFQUFLLENBQUMsNENBQVE7QUFDekQ7QUFDTyx3QkFBd0IseUdBQWdCO0FBQy9DO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsV0FBVztBQUNYLGdCQUFnQjtBQUNoQixLQUFLO0FBQ0wsWUFBWTtBQUNaLENBQUM7O0FBRUQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vPzJjZTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZXNSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbmltcG9ydCB7IGhvaXN0IH0gZnJvbSBcIm5leHQvZGlzdC9idWlsZC90ZW1wbGF0ZXMvaGVscGVyc1wiO1xuLy8gSW1wb3J0IHRoZSBhcHAgYW5kIGRvY3VtZW50IG1vZHVsZXMuXG5pbXBvcnQgRG9jdW1lbnQgZnJvbSBcInByaXZhdGUtbmV4dC1wYWdlcy9fZG9jdW1lbnRcIjtcbmltcG9ydCBBcHAgZnJvbSBcInByaXZhdGUtbmV4dC1wYWdlcy9fYXBwXCI7XG4vLyBJbXBvcnQgdGhlIHVzZXJsYW5kIGNvZGUuXG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiLi9wYWdlc1xcXFxpbmRleC5qc1wiO1xuLy8gUmUtZXhwb3J0IHRoZSBjb21wb25lbnQgKHNob3VsZCBiZSB0aGUgZGVmYXVsdCBleHBvcnQpLlxuZXhwb3J0IGRlZmF1bHQgaG9pc3QodXNlcmxhbmQsIFwiZGVmYXVsdFwiKTtcbi8vIFJlLWV4cG9ydCBtZXRob2RzLlxuZXhwb3J0IGNvbnN0IGdldFN0YXRpY1Byb3BzID0gaG9pc3QodXNlcmxhbmQsIFwiZ2V0U3RhdGljUHJvcHNcIik7XG5leHBvcnQgY29uc3QgZ2V0U3RhdGljUGF0aHMgPSBob2lzdCh1c2VybGFuZCwgXCJnZXRTdGF0aWNQYXRoc1wiKTtcbmV4cG9ydCBjb25zdCBnZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgXCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIik7XG5leHBvcnQgY29uc3QgY29uZmlnID0gaG9pc3QodXNlcmxhbmQsIFwiY29uZmlnXCIpO1xuZXhwb3J0IGNvbnN0IHJlcG9ydFdlYlZpdGFscyA9IGhvaXN0KHVzZXJsYW5kLCBcInJlcG9ydFdlYlZpdGFsc1wiKTtcbi8vIFJlLWV4cG9ydCBsZWdhY3kgbWV0aG9kcy5cbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCBcInVuc3RhYmxlX2dldFN0YXRpY1Byb3BzXCIpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1BhdGhzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U3RhdGljUGF0aHNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U3RhdGljUGFyYW1zID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U3RhdGljUGFyYW1zXCIpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFNlcnZlclByb3BzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U2VydmVyUHJvcHNcIik7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U2VydmVyU2lkZVByb3BzID0gaG9pc3QodXNlcmxhbmQsIFwidW5zdGFibGVfZ2V0U2VydmVyU2lkZVByb3BzXCIpO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgUGFnZXNSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgIHBhZ2U6IFwiL2luZGV4XCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9cIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIlxuICAgIH0sXG4gICAgY29tcG9uZW50czoge1xuICAgICAgICBBcHAsXG4gICAgICAgIERvY3VtZW50XG4gICAgfSxcbiAgICB1c2VybGFuZFxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F&preferredRegion=&absolutePagePath=.%2Fpages%5Cindex.js&absoluteAppPath=private-next-pages%2F_app&absoluteDocumentPath=private-next-pages%2F_document&middlewareConfigBase64=e30%3D!\n");
/***/ }),
@@ -30,18 +30,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
-
-/***/ }),
-
-/***/ "./pages/_document.js":
-/*!****************************!*\
- !*** ./pages/_document.js ***!
- \****************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_document__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/document */ \"./node_modules/next/document.js\");\n/* harmony import */ var next_document__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_document__WEBPACK_IMPORTED_MODULE_1__);\n// pages/_document.js\n\n\nclass MyDocument extends (next_document__WEBPACK_IMPORTED_MODULE_1___default()) {\n render() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Html, {\n lang: \"de\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Head, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"script\", {\n src: \"/config.js\",\n defer: true\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 11,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 8,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.Main, {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 14,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_document__WEBPACK_IMPORTED_MODULE_1__.NextScript, {}, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 15,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 13,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_document.js\",\n lineNumber: 7,\n columnNumber: 7\n }, this);\n }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyDocument);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fZG9jdW1lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxxQkFBcUI7O0FBQ2tEO0FBRXZFLE1BQU1LLG1CQUFtQkwsc0RBQVFBO0lBQy9CTSxTQUFTO1FBQ1AscUJBQ0UsOERBQUNMLCtDQUFJQTtZQUFDTSxNQUFLOzs4QkFDVCw4REFBQ0wsK0NBQUlBOzhCQUdILDRFQUFDTTt3QkFBT0MsS0FBSTt3QkFBYUMsS0FBSzs7Ozs7Ozs7Ozs7OEJBRWhDLDhEQUFDQzs7c0NBQ0MsOERBQUNSLCtDQUFJQTs7Ozs7c0NBQ0wsOERBQUNDLHFEQUFVQTs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFJbkI7QUFDRjtBQUVBLGlFQUFlQyxVQUFVQSxFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcGFnZXMvX2RvY3VtZW50LmpzPzUzOGIiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gcGFnZXMvX2RvY3VtZW50LmpzXHJcbmltcG9ydCBEb2N1bWVudCwgeyBIdG1sLCBIZWFkLCBNYWluLCBOZXh0U2NyaXB0IH0gZnJvbSBcIm5leHQvZG9jdW1lbnRcIjtcclxuXHJcbmNsYXNzIE15RG9jdW1lbnQgZXh0ZW5kcyBEb2N1bWVudCB7XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEh0bWwgbGFuZz1cImRlXCI+XHJcbiAgICAgICAgPEhlYWQ+XHJcbiAgICAgICAgICB7LyogSGllciBNZXRhLVRhZ3Mgb2RlciBTY2hyaWZ0YXJ0ZW4gZWluYmluZGVuICovfVxyXG4gICAgICAgICAgey8qIERhcyBTY3JpcHQgd2lyZCBoaWVyIGVpbmdlYnVuZGVuLCB1bSBlcyBhdWYgYWxsZW4gU2VpdGVuIHZlcmbDvGdiYXIgenUgbWFjaGVuICovfVxyXG4gICAgICAgICAgPHNjcmlwdCBzcmM9XCIvY29uZmlnLmpzXCIgZGVmZXI+PC9zY3JpcHQ+XHJcbiAgICAgICAgPC9IZWFkPlxyXG4gICAgICAgIDxib2R5PlxyXG4gICAgICAgICAgPE1haW4gLz5cclxuICAgICAgICAgIDxOZXh0U2NyaXB0IC8+XHJcbiAgICAgICAgPC9ib2R5PlxyXG4gICAgICA8L0h0bWw+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTXlEb2N1bWVudDtcclxuIl0sIm5hbWVzIjpbIkRvY3VtZW50IiwiSHRtbCIsIkhlYWQiLCJNYWluIiwiTmV4dFNjcmlwdCIsIk15RG9jdW1lbnQiLCJyZW5kZXIiLCJsYW5nIiwic2NyaXB0Iiwic3JjIiwiZGVmZXIiLCJib2R5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_document.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ MyApp)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp({ Component, pageProps }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRTtJQUNwRCxxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9wYWdlcy9fYXBwLmpzP2UwYWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi4vc3R5bGVzL2dsb2JhbC5jc3NcIjsgLy8gUGZhZCB6dXIgZ2xvYmFsZW4gQ1NTLURhdGVpIGFucGFzc2VuXHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE15QXBwKHsgQ29tcG9uZW50LCBwYWdlUHJvcHMgfSkge1xyXG4gIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIk15QXBwIiwiQ29tcG9uZW50IiwicGFnZVByb3BzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/_app.js\n");
/***/ }),
@@ -52,7 +41,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Home)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dynamic */ \"./node_modules/next/dynamic.js\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dynamic__WEBPACK_IMPORTED_MODULE_2__);\n// pages/index.js\n\n\n\nconst MapComponentWithNoSSR = next_dynamic__WEBPACK_IMPORTED_MODULE_2___default()(()=>Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/leaflet\"), __webpack_require__.e(\"vendor-chunks/leaflet-contextmenu\"), __webpack_require__.e(\"components_MapComponent_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ../components/MapComponent */ \"./components/MapComponent.js\")), {\n loadableGenerated: {\n modules: [\n \"pages\\\\index.js -> \" + \"../components/MapComponent\"\n ]\n },\n ssr: false\n});\nfunction Home() {\n const [mParam, setMParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [uParam, setUParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [locations, setLocations] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n });\n const loadData = async ()=>{\n const response = await fetch(\"/api/locations\");\n const data = await response.json();\n setLocations(data);\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Funktion, um URL-Parameter zu holen\n function getURLParameter(name) {\n // Nutze URLSearchParams, eine Web API für die Arbeit mit Query-Strings\n const params = new URLSearchParams(window.location.search);\n return params.get(name); // Holt den Wert des Parameternamens\n }\n // Hole die Parameter 'm' und 'u'\n setMParam(getURLParameter(\"m\"));\n setUParam(getURLParameter(\"u\"));\n // Logge die Werte in der Konsole\n console.log(`Parameter m: ${mParam}, Parameter u: ${uParam}`);\n loadData();\n }, []);\n const handleAddLocation = async (name, type, lat, lng)=>{\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n name,\n type,\n latitude: lat,\n longitude: lng\n })\n });\n if (response.ok) {\n console.log(\"Standort erfolgreich hinzugef\\xfcgt\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts\");\n }\n };\n const handleSubmit = async (event)=>{\n event.preventDefault();\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(formData)\n });\n if (response.ok) {\n console.log(\"Erfolg\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Speichern der Daten\");\n }\n };\n const handleChange = (event)=>{\n const { name, value } = event.target;\n setFormData((prevState)=>({\n ...prevState,\n [name]: value\n }));\n };\n const handleLocationUpdate = (id, newLatitude, newLongitude)=>{\n setLocations((prevLocations)=>{\n return prevLocations.map((location)=>{\n if (location.idPoi === id) {\n return {\n ...location,\n // Hier musst du ggf. die Formatierung anpassen, je nachdem wie du die Koordinaten speicherst\n position: `POINT(${newLongitude} ${newLatitude})`\n };\n }\n return location;\n });\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(MapComponentWithNoSSR, {\n locations: locations,\n onAddLocation: handleAddLocation,\n onLocationUpdate: handleLocationUpdate\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 104,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 102,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LGNBQWNDLEdBQUcsQ0FBQyxDQUFDM0I7Z0JBQ3hCLElBQUlBLFNBQVM0QixLQUFLLEtBQUtMLElBQUk7b0JBQ3pCLE9BQU87d0JBQ0wsR0FBR3ZCLFFBQVE7d0JBQ1gsNkZBQTZGO3dCQUM3RjZCLFVBQVUsQ0FBQyxNQUFNLEVBQUVKLGFBQWEsQ0FBQyxFQUFFRCxZQUFZLENBQUMsQ0FBQztvQkFDbkQ7Z0JBQ0Y7Z0JBQ0EsT0FBT3hCO1lBQ1Q7UUFDRjtJQUNGO0lBQ0EscUJBQ0UsOERBQUM4QjtrQkFFQyw0RUFBQ3REO1lBQ0NPLFdBQVdBO1lBQ1hnRCxlQUFlMUI7WUFDZjJCLGtCQUFrQlY7Ozs7Ozs7Ozs7O0FBSTFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcGFnZXMvaW5kZXguanM/YmVlNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWdlcy9pbmRleC5qc1xyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBkeW5hbWljIGZyb20gXCJuZXh0L2R5bmFtaWNcIjtcclxuXHJcblxyXG5jb25zdCBNYXBDb21wb25lbnRXaXRoTm9TU1IgPSBkeW5hbWljKFxyXG4gICgpID0+IGltcG9ydChcIi4uL2NvbXBvbmVudHMvTWFwQ29tcG9uZW50XCIpLFxyXG4gIHsgc3NyOiBmYWxzZSB9XHJcbik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lKCkge1xyXG5cclxuICBjb25zdCBbbVBhcmFtLHNldE1QYXJhbV0gPSB1c2VTdGF0ZShbXCJcIl0pO1xyXG4gIGNvbnN0IFt1UGFyYW0sc2V0VVBhcmFtXSA9IHVzZVN0YXRlKFtcIlwiXSk7XHJcblxyXG4gIGNvbnN0IFtsb2NhdGlvbnMsIHNldExvY2F0aW9uc10gPSB1c2VTdGF0ZShbXSk7XHJcbiAgY29uc3QgW2Zvcm1EYXRhLCBzZXRGb3JtRGF0YV0gPSB1c2VTdGF0ZSh7XHJcbiAgICBuYW1lOiBcIlwiLFxyXG4gICAgbG9uZ2l0dWRlOiBcIlwiLFxyXG4gICAgbGF0aXR1ZGU6IFwiXCIsXHJcbiAgICB0eXBlOiBcIlwiLFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBsb2FkRGF0YSA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXCIvYXBpL2xvY2F0aW9uc1wiKTtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICBzZXRMb2NhdGlvbnMoZGF0YSk7XHJcbiAgfTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgIC8vIEZ1bmt0aW9uLCB1bSBVUkwtUGFyYW1ldGVyIHp1IGhvbGVuXHJcbiAgICAgICBmdW5jdGlvbiBnZXRVUkxQYXJhbWV0ZXIobmFtZSkge1xyXG4gICAgICAgIC8vIE51dHplIFVSTFNlYXJjaFBhcmFtcywgZWluZSBXZWIgQVBJIGbDvHIgZGllIEFyYmVpdCBtaXQgUXVlcnktU3RyaW5nc1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcy5nZXQobmFtZSk7IC8vIEhvbHQgZGVuIFdlcnQgZGVzIFBhcmFtZXRlcm5hbWVuc1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC8vIEhvbGUgZGllIFBhcmFtZXRlciAnbScgdW5kICd1J1xyXG4gICAgICBzZXRNUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCdtJykpO1xyXG4gICAgICBzZXRVUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCd1JykpO1xyXG4gIFxyXG4gICAgICAvLyBMb2dnZSBkaWUgV2VydGUgaW4gZGVyIEtvbnNvbGVcclxuICAgICAgY29uc29sZS5sb2coYFBhcmFtZXRlciBtOiAke21QYXJhbX0sIFBhcmFtZXRlciB1OiAke3VQYXJhbX1gKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfSwgW10pO1xyXG4gIGNvbnN0IGhhbmRsZUFkZExvY2F0aW9uID0gYXN5bmMgKG5hbWUsIHR5cGUsIGxhdCwgbG5nKSA9PiB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBsYXRpdHVkZTogbGF0LFxyXG4gICAgICAgIGxvbmdpdHVkZTogbG5nLFxyXG4gICAgICB9KSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlN0YW5kb3J0IGVyZm9sZ3JlaWNoIGhpbnp1Z2Vmw7xndFwiKTtcclxuICAgICAgc2V0Rm9ybURhdGEoeyBuYW1lOiBcIlwiLCBsb25naXR1ZGU6IFwiXCIsIGxhdGl0dWRlOiBcIlwiLCB0eXBlOiBcIlwiIH0pOyAvLyBGb3JtdWxhciB6dXLDvGNrc2V0emVuXHJcbiAgICAgIGxvYWREYXRhKCk7IC8vIERhdGVuIGVybmV1dCBsYWRlblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZlaGxlciBiZWltIEhpbnp1ZsO8Z2VuIGRlcyBTdGFuZG9ydHNcIik7XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZXZlbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJmb2xnXCIpO1xyXG4gICAgICBzZXRGb3JtRGF0YSh7IG5hbWU6IFwiXCIsIGxvbmdpdHVkZTogXCJcIiwgbGF0aXR1ZGU6IFwiXCIsIHR5cGU6IFwiXCIgfSk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgbG9hZERhdGEoKTsgLy8gRGF0ZW4gZXJuZXV0IGxhZGVuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRmVobGVyIGJlaW0gU3BlaWNoZXJuIGRlciBEYXRlblwiKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoZXZlbnQpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgIHNldEZvcm1EYXRhKChwcmV2U3RhdGUpID0+ICh7IC4uLnByZXZTdGF0ZSwgW25hbWVdOiB2YWx1ZSB9KSk7XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVMb2NhdGlvblVwZGF0ZSA9IChpZCwgbmV3TGF0aXR1ZGUsIG5ld0xvbmdpdHVkZSkgPT4ge1xyXG4gICAgc2V0TG9jYXRpb25zKChwcmV2TG9jYXRpb25zKSA9PiB7XHJcbiAgICAgIHJldHVybiBwcmV2TG9jYXRpb25zLm1hcCgobG9jYXRpb24pID0+IHtcclxuICAgICAgICBpZiAobG9jYXRpb24uaWRQb2kgPT09IGlkKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5sb2NhdGlvbixcclxuICAgICAgICAgICAgLy8gSGllciBtdXNzdCBkdSBnZ2YuIGRpZSBGb3JtYXRpZXJ1bmcgYW5wYXNzZW4sIGplIG5hY2hkZW0gd2llIGR1IGRpZSBLb29yZGluYXRlbiBzcGVpY2hlcnN0XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBgUE9JTlQoJHtuZXdMb25naXR1ZGV9ICR7bmV3TGF0aXR1ZGV9KWBcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsb2NhdGlvbjtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2PlxyXG4gICAgICB7LyogSWhyIEZvcm11bGFyICovfVxyXG4gICAgICA8TWFwQ29tcG9uZW50V2l0aE5vU1NSXHJcbiAgICAgICAgbG9jYXRpb25zPXtsb2NhdGlvbnN9XHJcbiAgICAgICAgb25BZGRMb2NhdGlvbj17aGFuZGxlQWRkTG9jYXRpb259XHJcbiAgICAgICAgb25Mb2NhdGlvblVwZGF0ZT17aGFuZGxlTG9jYXRpb25VcGRhdGV9XHJcbiAgICAgIC8+ICAgICBcclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJkeW5hbWljIiwiTWFwQ29tcG9uZW50V2l0aE5vU1NSIiwic3NyIiwiSG9tZSIsIm1QYXJhbSIsInNldE1QYXJhbSIsInVQYXJhbSIsInNldFVQYXJhbSIsImxvY2F0aW9ucyIsInNldExvY2F0aW9ucyIsImZvcm1EYXRhIiwic2V0Rm9ybURhdGEiLCJuYW1lIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJ0eXBlIiwibG9hZERhdGEiLCJyZXNwb25zZSIsImZldGNoIiwiZGF0YSIsImpzb24iLCJnZXRVUkxQYXJhbWV0ZXIiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInNlYXJjaCIsImdldCIsImNvbnNvbGUiLCJsb2ciLCJoYW5kbGVBZGRMb2NhdGlvbiIsImxhdCIsImxuZyIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm9rIiwiZXJyb3IiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidmFsdWUiLCJ0YXJnZXQiLCJwcmV2U3RhdGUiLCJoYW5kbGVMb2NhdGlvblVwZGF0ZSIsImlkIiwibmV3TGF0aXR1ZGUiLCJuZXdMb25naXR1ZGUiLCJwcmV2TG9jYXRpb25zIiwibWFwIiwiaWRQb2kiLCJwb3NpdGlvbiIsImRpdiIsIm9uQWRkTG9jYXRpb24iLCJvbkxvY2F0aW9uVXBkYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/index.js\n");
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Home)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"react/jsx-dev-runtime\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dynamic */ \"./node_modules/next/dynamic.js\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dynamic__WEBPACK_IMPORTED_MODULE_2__);\n// pages/index.js\n\n\n\nconst MapComponentWithNoSSR = next_dynamic__WEBPACK_IMPORTED_MODULE_2___default()(()=>Promise.all(/*! import() */[__webpack_require__.e(\"vendor-chunks/leaflet\"), __webpack_require__.e(\"vendor-chunks/leaflet-contextmenu\"), __webpack_require__.e(\"components_MapComponent_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ../components/MapComponent */ \"./components/MapComponent.js\")), {\n loadableGenerated: {\n modules: [\n \"pages\\\\index.js -> \" + \"../components/MapComponent\"\n ]\n },\n ssr: false\n});\nfunction Home() {\n const [mParam, setMParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [uParam, setUParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [locations, setLocations] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n });\n const loadData = async ()=>{\n const response = await fetch(\"/api/locations\");\n const data = await response.json();\n setLocations(data);\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Funktion, um URL-Parameter zu holen\n function getURLParameter(name) {\n // Nutze URLSearchParams, eine Web API für die Arbeit mit Query-Strings\n const params = new URLSearchParams(window.location.search);\n return params.get(name); // Holt den Wert des Parameternamens\n }\n // Hole die Parameter 'm' und 'u'\n setMParam(getURLParameter(\"m\"));\n setUParam(getURLParameter(\"u\"));\n // Logge die Werte in der Konsole\n console.log(`Parameter m: ${mParam}, Parameter u: ${uParam}`);\n loadData();\n }, []);\n const handleAddLocation = async (name, type, lat, lng)=>{\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n name,\n type,\n latitude: lat,\n longitude: lng\n })\n });\n if (response.ok) {\n console.log(\"Standort erfolgreich hinzugef\\xfcgt\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts\");\n }\n };\n const handleSubmit = async (event)=>{\n event.preventDefault();\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(formData)\n });\n if (response.ok) {\n console.log(\"Erfolg\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Speichern der Daten\");\n }\n };\n const handleChange = (event)=>{\n const { name, value } = event.target;\n setFormData((prevState)=>({\n ...prevState,\n [name]: value\n }));\n };\n const handleLocationUpdate = (id, newLatitude, newLongitude)=>{\n setLocations((prevLocations)=>{\n return prevLocations.map((location)=>{\n if (location.idPoi === id) {\n return {\n ...location,\n // Hier musst du ggf. die Formatierung anpassen, je nachdem wie du die Koordinaten speicherst\n position: `POINT(${newLongitude} ${newLatitude})`\n };\n }\n return location;\n });\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(MapComponentWithNoSSR, {\n locations: locations,\n onAddLocation: handleAddLocation,\n onLocationUpdate: handleLocationUpdate\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 104,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 102,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LGNBQWNDLEdBQUcsQ0FBQyxDQUFDM0I7Z0JBQ3hCLElBQUlBLFNBQVM0QixLQUFLLEtBQUtMLElBQUk7b0JBQ3pCLE9BQU87d0JBQ0wsR0FBR3ZCLFFBQVE7d0JBQ1gsNkZBQTZGO3dCQUM3RjZCLFVBQVUsQ0FBQyxNQUFNLEVBQUVKLGFBQWEsQ0FBQyxFQUFFRCxZQUFZLENBQUMsQ0FBQztvQkFDbkQ7Z0JBQ0Y7Z0JBQ0EsT0FBT3hCO1lBQ1Q7UUFDRjtJQUNGO0lBQ0EscUJBQ0UsOERBQUM4QjtrQkFFQyw0RUFBQ3REO1lBQ0NPLFdBQVdBO1lBQ1hnRCxlQUFlMUI7WUFDZjJCLGtCQUFrQlY7Ozs7Ozs7Ozs7O0FBSTFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vcGFnZXMvaW5kZXguanM/YmVlNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWdlcy9pbmRleC5qc1xyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBkeW5hbWljIGZyb20gXCJuZXh0L2R5bmFtaWNcIjtcclxuXHJcblxyXG5jb25zdCBNYXBDb21wb25lbnRXaXRoTm9TU1IgPSBkeW5hbWljKFxyXG4gICgpID0+IGltcG9ydChcIi4uL2NvbXBvbmVudHMvTWFwQ29tcG9uZW50XCIpLFxyXG4gIHsgc3NyOiBmYWxzZSB9XHJcbik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lKCkge1xyXG5cclxuICBjb25zdCBbbVBhcmFtLHNldE1QYXJhbV0gPSB1c2VTdGF0ZShbXCJcIl0pO1xyXG4gIGNvbnN0IFt1UGFyYW0sc2V0VVBhcmFtXSA9IHVzZVN0YXRlKFtcIlwiXSk7XHJcblxyXG4gIGNvbnN0IFtsb2NhdGlvbnMsIHNldExvY2F0aW9uc10gPSB1c2VTdGF0ZShbXSk7XHJcbiAgY29uc3QgW2Zvcm1EYXRhLCBzZXRGb3JtRGF0YV0gPSB1c2VTdGF0ZSh7XHJcbiAgICBuYW1lOiBcIlwiLFxyXG4gICAgbG9uZ2l0dWRlOiBcIlwiLFxyXG4gICAgbGF0aXR1ZGU6IFwiXCIsXHJcbiAgICB0eXBlOiBcIlwiLFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBsb2FkRGF0YSA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXCIvYXBpL2xvY2F0aW9uc1wiKTtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICBzZXRMb2NhdGlvbnMoZGF0YSk7XHJcbiAgfTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgIC8vIEZ1bmt0aW9uLCB1bSBVUkwtUGFyYW1ldGVyIHp1IGhvbGVuXHJcbiAgICAgICBmdW5jdGlvbiBnZXRVUkxQYXJhbWV0ZXIobmFtZSkge1xyXG4gICAgICAgIC8vIE51dHplIFVSTFNlYXJjaFBhcmFtcywgZWluZSBXZWIgQVBJIGbDvHIgZGllIEFyYmVpdCBtaXQgUXVlcnktU3RyaW5nc1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcy5nZXQobmFtZSk7IC8vIEhvbHQgZGVuIFdlcnQgZGVzIFBhcmFtZXRlcm5hbWVuc1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC8vIEhvbGUgZGllIFBhcmFtZXRlciAnbScgdW5kICd1J1xyXG4gICAgICBzZXRNUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCdtJykpO1xyXG4gICAgICBzZXRVUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCd1JykpO1xyXG4gIFxyXG4gICAgICAvLyBMb2dnZSBkaWUgV2VydGUgaW4gZGVyIEtvbnNvbGVcclxuICAgICAgY29uc29sZS5sb2coYFBhcmFtZXRlciBtOiAke21QYXJhbX0sIFBhcmFtZXRlciB1OiAke3VQYXJhbX1gKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfSwgW10pO1xyXG4gIGNvbnN0IGhhbmRsZUFkZExvY2F0aW9uID0gYXN5bmMgKG5hbWUsIHR5cGUsIGxhdCwgbG5nKSA9PiB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBsYXRpdHVkZTogbGF0LFxyXG4gICAgICAgIGxvbmdpdHVkZTogbG5nLFxyXG4gICAgICB9KSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlN0YW5kb3J0IGVyZm9sZ3JlaWNoIGhpbnp1Z2Vmw7xndFwiKTtcclxuICAgICAgc2V0Rm9ybURhdGEoeyBuYW1lOiBcIlwiLCBsb25naXR1ZGU6IFwiXCIsIGxhdGl0dWRlOiBcIlwiLCB0eXBlOiBcIlwiIH0pOyAvLyBGb3JtdWxhciB6dXLDvGNrc2V0emVuXHJcbiAgICAgIGxvYWREYXRhKCk7IC8vIERhdGVuIGVybmV1dCBsYWRlblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZlaGxlciBiZWltIEhpbnp1ZsO8Z2VuIGRlcyBTdGFuZG9ydHNcIik7XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZXZlbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJmb2xnXCIpO1xyXG4gICAgICBzZXRGb3JtRGF0YSh7IG5hbWU6IFwiXCIsIGxvbmdpdHVkZTogXCJcIiwgbGF0aXR1ZGU6IFwiXCIsIHR5cGU6IFwiXCIgfSk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgbG9hZERhdGEoKTsgLy8gRGF0ZW4gZXJuZXV0IGxhZGVuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRmVobGVyIGJlaW0gU3BlaWNoZXJuIGRlciBEYXRlblwiKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoZXZlbnQpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgIHNldEZvcm1EYXRhKChwcmV2U3RhdGUpID0+ICh7IC4uLnByZXZTdGF0ZSwgW25hbWVdOiB2YWx1ZSB9KSk7XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVMb2NhdGlvblVwZGF0ZSA9IChpZCwgbmV3TGF0aXR1ZGUsIG5ld0xvbmdpdHVkZSkgPT4ge1xyXG4gICAgc2V0TG9jYXRpb25zKChwcmV2TG9jYXRpb25zKSA9PiB7XHJcbiAgICAgIHJldHVybiBwcmV2TG9jYXRpb25zLm1hcCgobG9jYXRpb24pID0+IHtcclxuICAgICAgICBpZiAobG9jYXRpb24uaWRQb2kgPT09IGlkKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5sb2NhdGlvbixcclxuICAgICAgICAgICAgLy8gSGllciBtdXNzdCBkdSBnZ2YuIGRpZSBGb3JtYXRpZXJ1bmcgYW5wYXNzZW4sIGplIG5hY2hkZW0gd2llIGR1IGRpZSBLb29yZGluYXRlbiBzcGVpY2hlcnN0XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBgUE9JTlQoJHtuZXdMb25naXR1ZGV9ICR7bmV3TGF0aXR1ZGV9KWBcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsb2NhdGlvbjtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2PlxyXG4gICAgICB7LyogSWhyIEZvcm11bGFyICovfVxyXG4gICAgICA8TWFwQ29tcG9uZW50V2l0aE5vU1NSXHJcbiAgICAgICAgbG9jYXRpb25zPXtsb2NhdGlvbnN9XHJcbiAgICAgICAgb25BZGRMb2NhdGlvbj17aGFuZGxlQWRkTG9jYXRpb259XHJcbiAgICAgICAgb25Mb2NhdGlvblVwZGF0ZT17aGFuZGxlTG9jYXRpb25VcGRhdGV9XHJcbiAgICAgIC8+ICAgICBcclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJkeW5hbWljIiwiTWFwQ29tcG9uZW50V2l0aE5vU1NSIiwic3NyIiwiSG9tZSIsIm1QYXJhbSIsInNldE1QYXJhbSIsInVQYXJhbSIsInNldFVQYXJhbSIsImxvY2F0aW9ucyIsInNldExvY2F0aW9ucyIsImZvcm1EYXRhIiwic2V0Rm9ybURhdGEiLCJuYW1lIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJ0eXBlIiwibG9hZERhdGEiLCJyZXNwb25zZSIsImZldGNoIiwiZGF0YSIsImpzb24iLCJnZXRVUkxQYXJhbWV0ZXIiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInNlYXJjaCIsImdldCIsImNvbnNvbGUiLCJsb2ciLCJoYW5kbGVBZGRMb2NhdGlvbiIsImxhdCIsImxuZyIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm9rIiwiZXJyb3IiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidmFsdWUiLCJ0YXJnZXQiLCJwcmV2U3RhdGUiLCJoYW5kbGVMb2NhdGlvblVwZGF0ZSIsImlkIiwibmV3TGF0aXR1ZGUiLCJuZXdMb25naXR1ZGUiLCJwcmV2TG9jYXRpb25zIiwibWFwIiwiaWRQb2kiLCJwb3NpdGlvbiIsImRpdiIsIm9uQWRkTG9jYXRpb24iLCJvbkxvY2F0aW9uVXBkYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/index.js\n");
/***/ }),
diff --git a/.next/server/vendor-chunks/@swc.js b/.next/server/vendor-chunks/@swc.js
index 90ffc2d83..1e429d8dc 100644
--- a/.next/server/vendor-chunks/@swc.js
+++ b/.next/server/vendor-chunks/@swc.js
@@ -17,7 +17,7 @@ exports.modules = {
\********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
-eval("\n\nexports._ = exports._interop_require_default = _interop_require_default;\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuY2pzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFNBQVMsR0FBRyxnQ0FBZ0M7QUFDNUM7QUFDQSwyQ0FBMkM7QUFDM0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuY2pzPzQ1NzIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuXyA9IGV4cG9ydHMuX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0O1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\n");
+eval("\n\nexports._ = exports._interop_require_default = _interop_require_default;\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuY2pzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLFNBQVMsR0FBRyxnQ0FBZ0M7QUFDNUM7QUFDQSwyQ0FBMkM7QUFDM0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuY2pzPzliODgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuXyA9IGV4cG9ydHMuX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0ID0gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0O1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\n");
/***/ }),
@@ -27,7 +27,7 @@ eval("\n\nexports._ = exports._interop_require_default = _interop_require_defaul
\*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
-eval("\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nexports._ = exports._interop_require_wildcard = _interop_require_wildcard;\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmNqcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFNBQVMsR0FBRyxpQ0FBaUM7QUFDN0M7QUFDQTtBQUNBLHVGQUF1Rjs7QUFFdkY7O0FBRUE7O0FBRUEsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmNqcz8zZDQ2Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG5cbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmV4cG9ydHMuXyA9IGV4cG9ydHMuX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQ7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgcmV0dXJuIG9iajtcbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4geyBkZWZhdWx0OiBvYmogfTtcblxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG5cbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHJldHVybiBjYWNoZS5nZXQob2JqKTtcblxuICAgIHZhciBuZXdPYmogPSB7IF9fcHJvdG9fXzogbnVsbCB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgZWxzZSBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG5cbiAgICBpZiAoY2FjaGUpIGNhY2hlLnNldChvYmosIG5ld09iaik7XG5cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\n");
+eval("\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nexports._ = exports._interop_require_wildcard = _interop_require_wildcard;\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmNqcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFNBQVMsR0FBRyxpQ0FBaUM7QUFDN0M7QUFDQTtBQUNBLHVGQUF1Rjs7QUFFdkY7O0FBRUE7O0FBRUEsbUJBQW1CO0FBQ25COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmNqcz8wYzVmIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG5cbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmV4cG9ydHMuXyA9IGV4cG9ydHMuX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZCA9IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQ7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkgcmV0dXJuIG9iajtcbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4geyBkZWZhdWx0OiBvYmogfTtcblxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG5cbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHJldHVybiBjYWNoZS5nZXQob2JqKTtcblxuICAgIHZhciBuZXdPYmogPSB7IF9fcHJvdG9fXzogbnVsbCB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgZWxzZSBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG5cbiAgICBpZiAoY2FjaGUpIGNhY2hlLnNldChvYmosIG5ld09iaik7XG5cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\n");
/***/ })
diff --git a/.next/server/vendor-chunks/next.js b/.next/server/vendor-chunks/next.js
index cd01247d6..37c69df24 100644
--- a/.next/server/vendor-chunks/next.js
+++ b/.next/server/vendor-chunks/next.js
@@ -384,16 +384,6 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
-/***/ "./node_modules/next/document.js":
-/*!***************************************!*\
- !*** ./node_modules/next/document.js ***!
- \***************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-eval("module.exports = __webpack_require__(/*! ./dist/pages/_document */ \"./node_modules/next/dist/pages/_document.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kb2N1bWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxpSEFBa0QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kb2N1bWVudC5qcz85YTE0Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L3BhZ2VzL19kb2N1bWVudCcpXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/document.js\n");
-
-/***/ }),
-
/***/ "./node_modules/next/dynamic.js":
/*!**************************************!*\
!*** ./node_modules/next/dynamic.js ***!
@@ -411,7 +401,7 @@ eval("module.exports = __webpack_require__(/*! ./dist/shared/lib/dynamic */ \"./
/***/ ((__unused_webpack_module, exports) => {
"use strict";
-eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param module the module to hoist the name from\n * @param name the name to hoist\n * @returns the value on the module (or promised module)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hoist\", ({\n enumerable: true,\n get: function() {\n return hoist;\n }\n}));\nfunction hoist(module, name) {\n // If the name is available in the module, return it.\n if (name in module) {\n return module[name];\n }\n // If a property called `then` exists, assume it's a promise and\n // return a promise that resolves to the name.\n if (\"then\" in module && typeof module.then === \"function\") {\n return module.then((mod)=>hoist(mod, name));\n }\n // If we're trying to hoise the default export, and the module is a function,\n // return the module itself.\n if (typeof module === \"function\" && name === \"default\") {\n return module;\n }\n // Otherwise, return undefined.\n return undefined;\n}\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnMuanM/ZWZjNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhvaXN0cyBhIG5hbWUgZnJvbSBhIG1vZHVsZSBvciBwcm9taXNlZCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIG1vZHVsZSB0aGUgbW9kdWxlIHRvIGhvaXN0IHRoZSBuYW1lIGZyb21cbiAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIHRvIGhvaXN0XG4gKiBAcmV0dXJucyB0aGUgdmFsdWUgb24gdGhlIG1vZHVsZSAob3IgcHJvbWlzZWQgbW9kdWxlKVxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaG9pc3RcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhvaXN0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaG9pc3QobW9kdWxlLCBuYW1lKSB7XG4gICAgLy8gSWYgdGhlIG5hbWUgaXMgYXZhaWxhYmxlIGluIHRoZSBtb2R1bGUsIHJldHVybiBpdC5cbiAgICBpZiAobmFtZSBpbiBtb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZVtuYW1lXTtcbiAgICB9XG4gICAgLy8gSWYgYSBwcm9wZXJ0eSBjYWxsZWQgYHRoZW5gIGV4aXN0cywgYXNzdW1lIGl0J3MgYSBwcm9taXNlIGFuZFxuICAgIC8vIHJldHVybiBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgbmFtZS5cbiAgICBpZiAoXCJ0aGVuXCIgaW4gbW9kdWxlICYmIHR5cGVvZiBtb2R1bGUudGhlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGUudGhlbigobW9kKT0+aG9pc3QobW9kLCBuYW1lKSk7XG4gICAgfVxuICAgIC8vIElmIHdlJ3JlIHRyeWluZyB0byBob2lzZSB0aGUgZGVmYXVsdCBleHBvcnQsIGFuZCB0aGUgbW9kdWxlIGlzIGEgZnVuY3Rpb24sXG4gICAgLy8gcmV0dXJuIHRoZSBtb2R1bGUgaXRzZWxmLlxuICAgIGlmICh0eXBlb2YgbW9kdWxlID09PSBcImZ1bmN0aW9uXCIgJiYgbmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdW5kZWZpbmVkLlxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/build/templates/helpers.js\n");
+eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param module the module to hoist the name from\n * @param name the name to hoist\n * @returns the value on the module (or promised module)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hoist\", ({\n enumerable: true,\n get: function() {\n return hoist;\n }\n}));\nfunction hoist(module, name) {\n // If the name is available in the module, return it.\n if (name in module) {\n return module[name];\n }\n // If a property called `then` exists, assume it's a promise and\n // return a promise that resolves to the name.\n if (\"then\" in module && typeof module.then === \"function\") {\n return module.then((mod)=>hoist(mod, name));\n }\n // If we're trying to hoise the default export, and the module is a function,\n // return the module itself.\n if (typeof module === \"function\" && name === \"default\") {\n return module;\n }\n // Otherwise, return undefined.\n return undefined;\n}\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnMuanM/ZWM4ZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEhvaXN0cyBhIG5hbWUgZnJvbSBhIG1vZHVsZSBvciBwcm9taXNlZCBtb2R1bGUuXG4gKlxuICogQHBhcmFtIG1vZHVsZSB0aGUgbW9kdWxlIHRvIGhvaXN0IHRoZSBuYW1lIGZyb21cbiAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIHRvIGhvaXN0XG4gKiBAcmV0dXJucyB0aGUgdmFsdWUgb24gdGhlIG1vZHVsZSAob3IgcHJvbWlzZWQgbW9kdWxlKVxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiaG9pc3RcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhvaXN0O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaG9pc3QobW9kdWxlLCBuYW1lKSB7XG4gICAgLy8gSWYgdGhlIG5hbWUgaXMgYXZhaWxhYmxlIGluIHRoZSBtb2R1bGUsIHJldHVybiBpdC5cbiAgICBpZiAobmFtZSBpbiBtb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZVtuYW1lXTtcbiAgICB9XG4gICAgLy8gSWYgYSBwcm9wZXJ0eSBjYWxsZWQgYHRoZW5gIGV4aXN0cywgYXNzdW1lIGl0J3MgYSBwcm9taXNlIGFuZFxuICAgIC8vIHJldHVybiBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgbmFtZS5cbiAgICBpZiAoXCJ0aGVuXCIgaW4gbW9kdWxlICYmIHR5cGVvZiBtb2R1bGUudGhlbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGUudGhlbigobW9kKT0+aG9pc3QobW9kLCBuYW1lKSk7XG4gICAgfVxuICAgIC8vIElmIHdlJ3JlIHRyeWluZyB0byBob2lzZSB0aGUgZGVmYXVsdCBleHBvcnQsIGFuZCB0aGUgbW9kdWxlIGlzIGEgZnVuY3Rpb24sXG4gICAgLy8gcmV0dXJuIHRoZSBtb2R1bGUgaXRzZWxmLlxuICAgIGlmICh0eXBlb2YgbW9kdWxlID09PSBcImZ1bmN0aW9uXCIgJiYgbmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcbiAgICAgICAgcmV0dXJuIG1vZHVsZTtcbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdW5kZWZpbmVkLlxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/build/templates/helpers.js\n");
/***/ }),
@@ -422,7 +412,7 @@ eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param mod
/***/ ((__unused_webpack_module, exports) => {
"use strict";
-eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind;\n(function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n})(RouteKind || (RouteKind = {}));\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDZDQUE0QztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLElBQUksRUFBRSxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixJQUFJLEVBQUUsR0FBRztBQUNsQztBQUNBLENBQUMsOEJBQThCOztBQUUvQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kLmpzP2E5ZTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZUtpbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJvdXRlS2luZDtcbiAgICB9XG59KTtcbnZhciBSb3V0ZUtpbmQ7XG4oZnVuY3Rpb24oUm91dGVLaW5kKSB7XG4gICAgLyoqXG4gICAqIGBQQUdFU2AgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBwYWdlcy9gLlxuICAgKi8gUm91dGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgLyoqXG4gICAqIGBQQUdFU19BUElgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICovIFJvdXRlS2luZFtcIlBBR0VTX0FQSVwiXSA9IFwiUEFHRVNfQVBJXCI7XG4gICAgLyoqXG4gICAqIGBBUFBfUEFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcGFnZS57aix0fXN7LHh9YC5cbiAgICovIFJvdXRlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIC8qKlxuICAgKiBgQVBQX1JPVVRFYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcm91dGUue2osdH1zeyx4fWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xufSkoUm91dGVLaW5kIHx8IChSb3V0ZUtpbmQgPSB7fSkpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1raW5kLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/server/future/route-kind.js\n");
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind;\n(function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n})(RouteKind || (RouteKind = {}));\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDZDQUE0QztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLElBQUksRUFBRSxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixJQUFJLEVBQUUsR0FBRztBQUNsQztBQUNBLENBQUMsOEJBQThCOztBQUUvQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kLmpzPzI3N2IiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSb3V0ZUtpbmRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJvdXRlS2luZDtcbiAgICB9XG59KTtcbnZhciBSb3V0ZUtpbmQ7XG4oZnVuY3Rpb24oUm91dGVLaW5kKSB7XG4gICAgLyoqXG4gICAqIGBQQUdFU2AgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBwYWdlcy9gLlxuICAgKi8gUm91dGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgLyoqXG4gICAqIGBQQUdFU19BUElgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICovIFJvdXRlS2luZFtcIlBBR0VTX0FQSVwiXSA9IFwiUEFHRVNfQVBJXCI7XG4gICAgLyoqXG4gICAqIGBBUFBfUEFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcGFnZS57aix0fXN7LHh9YC5cbiAgICovIFJvdXRlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIC8qKlxuICAgKiBgQVBQX1JPVVRFYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcm91dGUue2osdH1zeyx4fWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xufSkoUm91dGVLaW5kIHx8IChSb3V0ZUtpbmQgPSB7fSkpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1raW5kLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/server/future/route-kind.js\n");
/***/ }),
@@ -433,7 +423,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
-eval("\nif (false) {} else {\n if (true) {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/pages-api.runtime.dev.js */ \"next/dist/compiled/next-server/pages-api.runtime.dev.js\");\n } else {}\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9wYWdlcy1hcGkvbW9kdWxlLmNvbXBpbGVkLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLElBQXNDO0FBQzlDLFFBQVEsOEpBQW1GO0FBQzNGLE1BQU0sS0FBSyxFQUlOO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9wYWdlcy1hcGkvbW9kdWxlLmNvbXBpbGVkLmpzPzBiMWQiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvcGFnZXMtYXBpL21vZHVsZS5qc1wiKTtcbn0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLWFwaS5ydW50aW1lLmRldi5qc1wiKTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMtYXBpLXR1cmJvLnJ1bnRpbWUucHJvZC5qc1wiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMtYXBpLnJ1bnRpbWUucHJvZC5qc1wiKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/server/future/route-modules/pages-api/module.compiled.js\n");
+eval("\nif (false) {} else {\n if (true) {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/pages-api.runtime.dev.js */ \"next/dist/compiled/next-server/pages-api.runtime.dev.js\");\n } else {}\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaSkvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9wYWdlcy1hcGkvbW9kdWxlLmNvbXBpbGVkLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLElBQXNDO0FBQzlDLFFBQVEsOEpBQW1GO0FBQzNGLE1BQU0sS0FBSyxFQUlOO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9wYWdlcy1hcGkvbW9kdWxlLmNvbXBpbGVkLmpzP2ZkYTIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSBcImVkZ2VcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvcGFnZXMtYXBpL21vZHVsZS5qc1wiKTtcbn0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLWFwaS5ydW50aW1lLmRldi5qc1wiKTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMtYXBpLXR1cmJvLnJ1bnRpbWUucHJvZC5qc1wiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMtYXBpLnJ1bnRpbWUucHJvZC5qc1wiKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZHVsZS5jb21waWxlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(api)/./node_modules/next/dist/server/future/route-modules/pages-api/module.compiled.js\n");
/***/ })
diff --git a/.next/static/chunks/components_MapComponent_js.js b/.next/static/chunks/components_MapComponent_js.js
index 9f48be24d..e23bcd495 100644
--- a/.next/static/chunks/components_MapComponent_js.js
+++ b/.next/static/chunks/components_MapComponent_js.js
@@ -77,7 +77,18 @@ eval(__webpack_require__.ts("var api = __webpack_require__(/*! !../../next/dist/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! leaflet */ \"./node_modules/leaflet/dist/leaflet-src.js\");\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(leaflet__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! leaflet/dist/leaflet.css */ \"./node_modules/leaflet/dist/leaflet.css\");\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! leaflet-contextmenu/dist/leaflet.contextmenu.css */ \"./node_modules/leaflet-contextmenu/dist/leaflet.contextmenu.css\");\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! leaflet-contextmenu */ \"./node_modules/leaflet-contextmenu/dist/leaflet.contextmenu.js\");\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__);\n\nvar _s = $RefreshSig$();\n\n\n\n\n\nconst MapComponent = (param)=>{\n let { locations, onLocationUpdate } = param;\n _s();\n const mapRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [map, setMap] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [online, setOnline] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(navigator.onLine);\n const offlineTileLayer = \"../TileMap/mapTiles/{z}/{x}/{y}.png\";\n const onlineTileLayer = \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";\n let initialMap = [];\n // Funktionen zur Überwachung der Internetverbindung\n const checkInternet = ()=>{\n console.log(\"Checking internet connectivity...\");\n fetch(\"https://tile.openstreetmap.org/1/1/1.png\", {\n method: \"HEAD\"\n }).then((response)=>setOnline(response.ok)).catch(()=>setOnline(false));\n };\n // Initialisiere die Karte\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (mapRef.current && !map) {\n initialMap = leaflet__WEBPACK_IMPORTED_MODULE_2___default().map(mapRef.current, {\n center: [\n 53.111111,\n 8.4625\n ],\n zoom: 10,\n zoomControl: false,\n contextmenu: true,\n contextmenuItems: [\n {\n text: \"Station hinzuf\\xfcgen\",\n callback: showAddStationPopup\n },\n {\n text: \"Station \\xf6ffnen (Tab)\",\n icon: \"img/screen_new.png\",\n callback: newLink\n },\n {\n text: \"Station \\xf6ffnen\",\n icon: \"img/screen_same.png\",\n callback: sameLink\n },\n {\n text: \"Koordinaten\",\n icon: \"img/screen_same.png\",\n callback: lata\n },\n \"-\",\n {\n text: \"Reinzoomen\",\n callback: zoomIn\n },\n {\n text: \"Rauszoomen\",\n callback: zoomOut\n },\n {\n text: \"Hier zentrieren\",\n callback: centerHere\n }\n ]\n });\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n attribution: '© OpenStreetMap contributors'\n }).addTo(initialMap);\n setMap(initialMap);\n }\n }, [\n mapRef,\n map\n ]);\n // Handle online/offline status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n window.addEventListener(\"online\", checkInternet);\n window.addEventListener(\"offline\", checkInternet);\n return ()=>{\n window.removeEventListener(\"online\", checkInternet);\n window.removeEventListener(\"offline\", checkInternet);\n };\n }, []);\n // Update map layers based on online status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (map) {\n const newLayer = leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n minZoom: 7,\n maxZoom: online ? 19 : 14,\n attribution: 'Map data \\xa9 OpenStreetMap contributors'\n });\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().TileLayer)) {\n map.removeLayer(layer);\n }\n });\n newLayer.addTo(map);\n }\n }, [\n online,\n map\n ]);\n // Marker handling\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Remove old markers\n if (map) {\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().Marker)) {\n map.removeLayer(layer);\n }\n });\n // Add new markers\n locations.forEach((location)=>{\n const { latitude, longitude } = parsePoint(location.position);\n const marker = leaflet__WEBPACK_IMPORTED_MODULE_2___default().marker([\n latitude,\n longitude\n ], {\n icon: leaflet__WEBPACK_IMPORTED_MODULE_2___default().icon({\n iconUrl: \"/location.svg\",\n iconSize: [\n 34,\n 34\n ],\n iconAnchor: [\n 17,\n 34\n ],\n popupAnchor: [\n 0,\n -34\n ]\n }),\n draggable: true,\n id: location.idPoi\n });\n marker.bindPopup(\"\".concat(location.description || \"Unbekannt\", \"
Type: \").concat(location.idPoiTyp || \"N/A\", \"
Lat: \").concat(latitude.toFixed(5), \", Lng: \").concat(longitude.toFixed(5)));\n marker.on(\"dragend\", function(e) {\n const newLat = e.target.getLatLng().lat;\n const newLng = e.target.getLatLng().lng;\n const markerId = e.target.options.id;\n updateLocationInDatabase(markerId, newLat, newLng).then(()=>{\n onLocationUpdate(markerId, newLat, newLng);\n });\n });\n marker.addTo(map);\n });\n }\n }, [\n map,\n locations,\n onLocationUpdate\n ]);\n //------------------------------------------\n function parsePoint(pointString) {\n const match = pointString.match(/POINT\\s*\\((\\d+(\\.\\d+)?)\\s+(\\d+(\\.\\d+)?)\\)/);\n if (match) {\n return {\n longitude: parseFloat(match[1]),\n latitude: parseFloat(match[3])\n };\n } else {\n // Handle the error or return a default/fallback value\n console.error(\"Invalid POINT format:\", pointString);\n return null; // Oder eine sinnvolle Standardantwort\n }\n }\n //----------------------------------\n //-----Kontextmenu----------------\n const newLink = (e)=>{\n try {\n if (!e.relatedTarget || !e.relatedTarget.options) {\n throw new Error(\"relatedTarget or options not defined\");\n }\n alert(\"Neues Fenster: \" + e.relatedTarget.options.test);\n window.open(\"../devices/\".concat(e.relatedTarget.options.test), \"_blank\").focus();\n } catch (error) {\n console.error(\"Failed in newLink function:\", error);\n }\n };\n const sameLink = (e)=>{\n alert(e.relatedTarget.options.test);\n window.open(\"../devices/\" + e.relatedTarget.options.test, \"_parent\").focus();\n };\n const lata = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat);\n };\n const zoomIn = (e)=>{\n initialMap.flyTo(e.latlng, 12);\n };\n const zoomOut = (e)=>{\n fly();\n };\n const centerHere = (e)=>{\n initialMap.panTo(e.latlng);\n };\n const showCoordinates = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat + \"\\nL\\xe4ngengrad: \" + e.latlng.lng);\n };\n const showData = (e)=>{\n console.log(e);\n };\n const showTalas = (e)=>{\n map.addLayer(TALAS);\n loadData();\n };\n const hideTalas = (e)=>{\n map.removeLayer(TALAS);\n loadData();\n };\n const showGSM = (e)=>{\n map.addLayer(GMA);\n loadData();\n };\n const hideGSM = (e)=>{\n map.removeLayer(GMA);\n loadData();\n };\n //-----Kontextmenu----ende------------\n // Ensure this function is only called when map is initialized and available\n const showAddStationPopup = (e)=>{\n if (!initialMap) {\n console.log(\"Map is not initialized.\");\n return;\n }\n const popupContent = leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomUtil.create(\"div\");\n popupContent.innerHTML = '\\n \\n ');\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().popup().setLatLng(e.latlng).setContent(popupContent).openOn(initialMap);\n // Attach event listener here\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomEvent.on(popupContent, \"submit\", handleSubmit);\n };\n /*\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n const form = event.target;\r\n const data = {\r\n name: form.name.value,\r\n type: form.type.value,\r\n latitude: form.lat.value,\r\n longitude: form.lng.value,\r\n };\r\n\r\n onAddLocation(name, type, lat, lng);\r\n console.log(\"Name: \", name, \"Type: \", type, \"Lat: \", lat, \"Lng: \", lng);\r\n map.closePopup();\r\n };\r\n*/ // Funktion zum Hinzufügen eines neuen Standorts\n async function handleSubmit(event) {\n event.preventDefault();\n const form = event.target;\n const data = {\n name: form.name.value,\n type: form.type.value,\n latitude: form.lat.value,\n longitude: form.lng.value\n };\n try {\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(data)\n });\n const result = await response.json();\n if (response.ok) {\n console.log(\"Standort hinzugef\\xfcgt:\", result);\n alert(\"Standort erfolgreich hinzugef\\xfcgt!\");\n form.reset(); // Formular zurücksetzen\n // Hier könntest du weitere Aktionen durchführen, wie das Schließen des Popups oder das Aktualisieren der Marker auf der Karte\n } else {\n throw new Error(result.error || \"Ein unbekannter Fehler ist aufgetreten.\");\n }\n } catch (error) {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts:\", error);\n alert(error.message);\n }\n }\n function fly(stationValue) {\n var x = 51.41321407879154;\n var y = 7.739617925303934;\n var zoom = 7;\n /* for (var i = 0; i < dataStaticlength; i++) {\r\n var gisStatics = dataStatic[i];\r\n if (stationValue === gisStatics.Area_Name) {\r\n //console.log(gisStatics.X+\",\"+gisStatics.Y);\r\n x = gisStatics.X;\r\n y = gisStatics.Y;\r\n }\r\n }\r\n if (y === 7.739617925303934) {\r\n zoom = 8;\r\n } */ initialMap.flyTo([\n x,\n y\n ], zoom);\n /* var popup = new L.Popup();\r\n oms.addListener(\"click\", function (marker) {\r\n popup.setContent(marker.desc);\r\n popup.setLatLng(marker.getLatLng());\r\n map.openPopup(popup);\r\n });\r\n\r\n for (var i = 0; i < window.mapData.length; i++) {\r\n var datum = window.mapData[i];\r\n var loc = new L.LatLng(datum.lat, datum.lon);\r\n var marker = new L.Marker(loc);\r\n marker.desc = datum.d;\r\n map.addLayer(marker);\r\n //oms.addMarker(marker); // <-- here\r\n } */ }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"map\",\n ref: mapRef,\n style: {\n height: \"100vh\",\n width: \"100vw\",\n overflow: \"hidden\"\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\components\\\\MapComponent.js\",\n lineNumber: 375,\n columnNumber: 5\n }, undefined);\n};\n_s(MapComponent, \"OOuAzIY+hrlA/mhV23hrDbVHSEg=\");\n_c = MapComponent;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MapComponent);\nvar _c;\n$RefreshReg$(_c, \"MapComponent\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q3VDO1lBQUdDO1NBQUUsRUFBRTVHO0lBRXpCOzs7Ozs7Ozs7Ozs7OztNQWNFLEdBQ0o7SUFFQSxxQkFDRSw4REFBQzZHO1FBQ0NyRSxJQUFHO1FBQ0hzRSxLQUFLbkk7UUFDTG9JLE9BQU87WUFBRUMsUUFBUTtZQUFTQyxPQUFPO1lBQVNDLFVBQVU7UUFBUzs7Ozs7O0FBR25FO0dBdlhNMUk7S0FBQUE7QUF5WE4sK0RBQWVBLFlBQVlBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9NYXBDb21wb25lbnQuanM/ZDA3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMIGZyb20gXCJsZWFmbGV0XCI7XHJcbmltcG9ydCBcImxlYWZsZXQvZGlzdC9sZWFmbGV0LmNzc1wiO1xyXG5pbXBvcnQgXCJsZWFmbGV0LWNvbnRleHRtZW51L2Rpc3QvbGVhZmxldC5jb250ZXh0bWVudS5jc3NcIjtcclxuaW1wb3J0IFwibGVhZmxldC1jb250ZXh0bWVudVwiO1xyXG5jb25zdCBNYXBDb21wb25lbnQgPSAoeyBsb2NhdGlvbnMsIG9uTG9jYXRpb25VcGRhdGUgfSkgPT4ge1xyXG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZihudWxsKTtcclxuICBjb25zdCBbbWFwLCBzZXRNYXBdID0gdXNlU3RhdGUobnVsbCk7XHJcbiAgY29uc3QgW29ubGluZSwgc2V0T25saW5lXSA9IHVzZVN0YXRlKG5hdmlnYXRvci5vbkxpbmUpO1xyXG4gIGNvbnN0IG9mZmxpbmVUaWxlTGF5ZXIgPSBcIi4uL1RpbGVNYXAvbWFwVGlsZXMve3p9L3t4fS97eX0ucG5nXCI7XHJcbiAgY29uc3Qgb25saW5lVGlsZUxheWVyID0gXCJodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZ1wiO1xyXG5cclxuICBsZXQgaW5pdGlhbE1hcCA9IFtdO1xyXG5cclxuICAvLyBGdW5rdGlvbmVuIHp1ciDDnGJlcndhY2h1bmcgZGVyIEludGVybmV0dmVyYmluZHVuZ1xyXG4gIGNvbnN0IGNoZWNrSW50ZXJuZXQgPSAoKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhcIkNoZWNraW5nIGludGVybmV0IGNvbm5lY3Rpdml0eS4uLlwiKTtcclxuICAgIGZldGNoKFwiaHR0cHM6Ly90aWxlLm9wZW5zdHJlZXRtYXAub3JnLzEvMS8xLnBuZ1wiLCB7IG1ldGhvZDogXCJIRUFEXCIgfSlcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiBzZXRPbmxpbmUocmVzcG9uc2Uub2spKVxyXG4gICAgICAuY2F0Y2goKCkgPT4gc2V0T25saW5lKGZhbHNlKSk7XHJcbiAgfTtcclxuICAvLyBJbml0aWFsaXNpZXJlIGRpZSBLYXJ0ZVxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAobWFwUmVmLmN1cnJlbnQgJiYgIW1hcCkge1xyXG4gICAgICBpbml0aWFsTWFwID0gTC5tYXAobWFwUmVmLmN1cnJlbnQsIHtcclxuICAgICAgICBjZW50ZXI6IFs1My4xMTExMTEsIDguNDYyNV0sXHJcbiAgICAgICAgem9vbTogMTAsXHJcbiAgICAgICAgem9vbUNvbnRyb2w6IGZhbHNlLCAvLyBEZWFrdGl2aWVyZSBkaWUgU3RhbmRhcmQtWm9vbXN0ZXVlcnVuZ1xyXG4gICAgICAgIGNvbnRleHRtZW51OiB0cnVlLFxyXG4gICAgICAgIGNvbnRleHRtZW51SXRlbXM6IFtcclxuICAgICAgICAgIHsgdGV4dDogXCJTdGF0aW9uIGhpbnp1ZsO8Z2VuXCIsIGNhbGxiYWNrOiBzaG93QWRkU3RhdGlvblBvcHVwIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiU3RhdGlvbiDDtmZmbmVuIChUYWIpXCIsXHJcbiAgICAgICAgICAgIGljb246IFwiaW1nL3NjcmVlbl9uZXcucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBuZXdMaW5rLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogXCJTdGF0aW9uIMO2ZmZuZW5cIixcclxuICAgICAgICAgICAgaWNvbjogXCJpbWcvc2NyZWVuX3NhbWUucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBzYW1lTGluayxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiS29vcmRpbmF0ZW5cIixcclxuICAgICAgICAgICAgaWNvbjogXCJpbWcvc2NyZWVuX3NhbWUucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBsYXRhLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFwiLVwiLCAvLyBEaXZpZGVyXHJcbiAgICAgICAgICB7IHRleHQ6IFwiUmVpbnpvb21lblwiLCBjYWxsYmFjazogem9vbUluIH0sXHJcbiAgICAgICAgICB7IHRleHQ6IFwiUmF1c3pvb21lblwiLCBjYWxsYmFjazogem9vbU91dCB9LFxyXG4gICAgICAgICAgeyB0ZXh0OiBcIkhpZXIgemVudHJpZXJlblwiLCBjYWxsYmFjazogY2VudGVySGVyZSB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICBMLnRpbGVMYXllcihvbmxpbmUgPyBvbmxpbmVUaWxlTGF5ZXIgOiBvZmZsaW5lVGlsZUxheWVyLCB7XHJcbiAgICAgICAgYXR0cmlidXRpb246XHJcbiAgICAgICAgICAnJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnLFxyXG4gICAgICB9KS5hZGRUbyhpbml0aWFsTWFwKTtcclxuXHJcbiAgICAgIHNldE1hcChpbml0aWFsTWFwKTtcclxuICAgIH1cclxuICB9LCBbbWFwUmVmLCBtYXBdKTtcclxuXHJcbiAgLy8gSGFuZGxlIG9ubGluZS9vZmZsaW5lIHN0YXR1c1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwib2ZmbGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwib25saW5lXCIsIGNoZWNrSW50ZXJuZXQpO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9mZmxpbmVcIiwgY2hlY2tJbnRlcm5ldCk7XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgLy8gVXBkYXRlIG1hcCBsYXllcnMgYmFzZWQgb24gb25saW5lIHN0YXR1c1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAobWFwKSB7XHJcbiAgICAgIGNvbnN0IG5ld0xheWVyID0gTC50aWxlTGF5ZXIoXHJcbiAgICAgICAgb25saW5lID8gb25saW5lVGlsZUxheWVyIDogb2ZmbGluZVRpbGVMYXllcixcclxuICAgICAgICB7XHJcbiAgICAgICAgICBtaW5ab29tOiA3LFxyXG4gICAgICAgICAgbWF4Wm9vbTogb25saW5lID8gMTkgOiAxNCxcclxuICAgICAgICAgIGF0dHJpYnV0aW9uOlxyXG4gICAgICAgICAgICAnTWFwIGRhdGEgwqkgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycycsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgICAgbWFwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcclxuICAgICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLlRpbGVMYXllcikge1xyXG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbmV3TGF5ZXIuYWRkVG8obWFwKTtcclxuICAgIH1cclxuICB9LCBbb25saW5lLCBtYXBdKTtcclxuXHJcbiAgLy8gTWFya2VyIGhhbmRsaW5nXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIFJlbW92ZSBvbGQgbWFya2Vyc1xyXG4gICAgaWYgKG1hcCkge1xyXG4gICAgICBtYXAuZWFjaExheWVyKChsYXllcikgPT4ge1xyXG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XHJcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBBZGQgbmV3IG1hcmtlcnNcclxuICAgICAgbG9jYXRpb25zLmZvckVhY2goKGxvY2F0aW9uKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBsYXRpdHVkZSwgbG9uZ2l0dWRlIH0gPSBwYXJzZVBvaW50KGxvY2F0aW9uLnBvc2l0aW9uKTtcclxuICAgICAgICBjb25zdCBtYXJrZXIgPSBMLm1hcmtlcihbbGF0aXR1ZGUsIGxvbmdpdHVkZV0sIHtcclxuICAgICAgICAgIGljb246IEwuaWNvbih7XHJcbiAgICAgICAgICAgIGljb25Vcmw6IFwiL2xvY2F0aW9uLnN2Z1wiLFxyXG4gICAgICAgICAgICBpY29uU2l6ZTogWzM0LCAzNF0sXHJcbiAgICAgICAgICAgIGljb25BbmNob3I6IFsxNywgMzRdLFxyXG4gICAgICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zNF0sXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGlkOiBsb2NhdGlvbi5pZFBvaSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgbWFya2VyLmJpbmRQb3B1cChcclxuICAgICAgICAgIGA8Yj4ke2xvY2F0aW9uLmRlc2NyaXB0aW9uIHx8IFwiVW5iZWthbm50XCJ9PC9iPjxicj5UeXBlOiAke2xvY2F0aW9uLmlkUG9pVHlwIHx8IFwiTi9BXCJ9PGJyPkxhdDogJHtsYXRpdHVkZS50b0ZpeGVkKDUpfSwgTG5nOiAke2xvbmdpdHVkZS50b0ZpeGVkKDUpfWBcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBtYXJrZXIub24oXCJkcmFnZW5kXCIsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdMYXQgPSBlLnRhcmdldC5nZXRMYXRMbmcoKS5sYXQ7XHJcbiAgICAgICAgICBjb25zdCBuZXdMbmcgPSBlLnRhcmdldC5nZXRMYXRMbmcoKS5sbmc7XHJcbiAgICAgICAgICBjb25zdCBtYXJrZXJJZCA9IGUudGFyZ2V0Lm9wdGlvbnMuaWQ7XHJcbiAgICAgICAgICB1cGRhdGVMb2NhdGlvbkluRGF0YWJhc2UobWFya2VySWQsIG5ld0xhdCwgbmV3TG5nKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgb25Mb2NhdGlvblVwZGF0ZShtYXJrZXJJZCwgbmV3TGF0LCBuZXdMbmcpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1hcmtlci5hZGRUbyhtYXApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9LCBbbWFwLCBsb2NhdGlvbnMsIG9uTG9jYXRpb25VcGRhdGVdKTtcclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBmdW5jdGlvbiBwYXJzZVBvaW50KHBvaW50U3RyaW5nKSB7XHJcbiAgICBjb25zdCBtYXRjaCA9IHBvaW50U3RyaW5nLm1hdGNoKFxyXG4gICAgICAvUE9JTlRcXHMqXFwoKFxcZCsoXFwuXFxkKyk/KVxccysoXFxkKyhcXC5cXGQrKT8pXFwpL1xyXG4gICAgKTtcclxuICAgIGlmIChtYXRjaCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxvbmdpdHVkZTogcGFyc2VGbG9hdChtYXRjaFsxXSksXHJcbiAgICAgICAgbGF0aXR1ZGU6IHBhcnNlRmxvYXQobWF0Y2hbM10pLCAvLyBBY2h0dW5nOiBJbmRleCAzIGbDvHIgZGllIHp3ZWl0ZSBLb29yZGluYXRlLCB3ZWdlbiBkZXIgR3J1cHBlIChcXC5cXGQrKT9cclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEhhbmRsZSB0aGUgZXJyb3Igb3IgcmV0dXJuIGEgZGVmYXVsdC9mYWxsYmFjayB2YWx1ZVxyXG4gICAgICBjb25zb2xlLmVycm9yKFwiSW52YWxpZCBQT0lOVCBmb3JtYXQ6XCIsIHBvaW50U3RyaW5nKTtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIE9kZXIgZWluZSBzaW5udm9sbGUgU3RhbmRhcmRhbnR3b3J0XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vLS0tLS1Lb250ZXh0bWVudS0tLS0tLS0tLS0tLS0tLS1cclxuICBjb25zdCBuZXdMaW5rID0gKGUpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICghZS5yZWxhdGVkVGFyZ2V0IHx8ICFlLnJlbGF0ZWRUYXJnZXQub3B0aW9ucykge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlbGF0ZWRUYXJnZXQgb3Igb3B0aW9ucyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgfVxyXG4gICAgICBhbGVydChcIk5ldWVzIEZlbnN0ZXI6IFwiICsgZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCk7XHJcbiAgICAgIHdpbmRvd1xyXG4gICAgICAgIC5vcGVuKGAuLi9kZXZpY2VzLyR7ZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdH1gLCBcIl9ibGFua1wiKVxyXG4gICAgICAgIC5mb2N1cygpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCBpbiBuZXdMaW5rIGZ1bmN0aW9uOlwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc2FtZUxpbmsgPSAoZSkgPT4ge1xyXG4gICAgYWxlcnQoZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCk7XHJcbiAgICB3aW5kb3dcclxuICAgICAgLm9wZW4oXCIuLi9kZXZpY2VzL1wiICsgZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCwgXCJfcGFyZW50XCIpXHJcbiAgICAgIC5mb2N1cygpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGxhdGEgPSAoZSkgPT4ge1xyXG4gICAgYWxlcnQoXCJCcmVpdGVuZ3JhZDogXCIgKyBlLmxhdGxuZy5sYXQpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHpvb21JbiA9IChlKSA9PiB7XHJcbiAgICBpbml0aWFsTWFwLmZseVRvKGUubGF0bG5nLCAxMik7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgem9vbU91dCA9IChlKSA9PiB7XHJcbiAgICBmbHkoKTtcclxuICB9O1xyXG4gIGNvbnN0IGNlbnRlckhlcmUgPSAoZSkgPT4ge1xyXG4gICAgaW5pdGlhbE1hcC5wYW5UbyhlLmxhdGxuZyk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc2hvd0Nvb3JkaW5hdGVzID0gKGUpID0+IHtcclxuICAgIGFsZXJ0KFwiQnJlaXRlbmdyYWQ6IFwiICsgZS5sYXRsbmcubGF0ICsgXCJcXG5Mw6RuZ2VuZ3JhZDogXCIgKyBlLmxhdGxuZy5sbmcpO1xyXG4gIH07XHJcbiAgY29uc3Qgc2hvd0RhdGEgPSAoZSkgPT4ge1xyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgfTtcclxuICBjb25zdCBzaG93VGFsYXMgPSAoZSkgPT4ge1xyXG4gICAgbWFwLmFkZExheWVyKFRBTEFTKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBoaWRlVGFsYXMgPSAoZSkgPT4ge1xyXG4gICAgbWFwLnJlbW92ZUxheWVyKFRBTEFTKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBzaG93R1NNID0gKGUpID0+IHtcclxuICAgIG1hcC5hZGRMYXllcihHTUEpO1xyXG4gICAgbG9hZERhdGEoKTtcclxuICB9O1xyXG4gIGNvbnN0IGhpZGVHU00gPSAoZSkgPT4ge1xyXG4gICAgbWFwLnJlbW92ZUxheWVyKEdNQSk7XHJcbiAgICBsb2FkRGF0YSgpO1xyXG4gIH07XHJcbiAgLy8tLS0tLUtvbnRleHRtZW51LS0tLWVuZGUtLS0tLS0tLS0tLS1cclxuICAvLyBFbnN1cmUgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCB3aGVuIG1hcCBpcyBpbml0aWFsaXplZCBhbmQgYXZhaWxhYmxlXHJcbiAgY29uc3Qgc2hvd0FkZFN0YXRpb25Qb3B1cCA9IChlKSA9PiB7XHJcbiAgICBpZiAoIWluaXRpYWxNYXApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJNYXAgaXMgbm90IGluaXRpYWxpemVkLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBvcHVwQ29udGVudCA9IEwuRG9tVXRpbC5jcmVhdGUoXCJkaXZcIik7XHJcbiAgICBwb3B1cENvbnRlbnQuaW5uZXJIVE1MID0gYFxyXG4gIDxmb3JtIGlkPVwiYWRkU3RhdGlvbkZvcm1cIiBjbGFzcz1cIm0tMCBwLTIgdy1mdWxsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj4gICAgICBcclxuICAgIDxsYWJlbCBmb3I9XCJuYW1lXCIgY2xhc3M9XCJibG9jayBtci0yIGZsZXgtbm9uZVwiPk5hbWU6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibmFtZVwiXHJcbiAgICAgIG5hbWU9XCJuYW1lXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIGRlciBTdGF0aW9uXCJcclxuICAgICAgY2xhc3M9XCJibG9jayBwLTIgZmxleC1ncm93IGJvcmRlci0yIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLW1kIHRleHQtc21cIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICBcclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPiAgIFxyXG4gICAgPGxhYmVsIGZvcj1cInR5cGVcIiBjbGFzcz1cImJsb2NrIG1yLTMgZmxleC1ub25lXCI+VHlwZTo8L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJ0eXBlXCJcclxuICAgICAgbmFtZT1cInR5cGVcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIlR5cCBkZXIgU3RhdGlvblwiXHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJsYXRcIiBjbGFzcz1cImJsb2NrIG1yLTIgZmxleC1ub25lXCI+QnJlaXRlbmdyYWQ6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibGF0XCJcclxuICAgICAgbmFtZT1cImxhdFwiXHJcbiAgICAgIHZhbHVlPVwiJHtlLmxhdGxuZy5sYXQudG9GaXhlZCg1KX1cIlxyXG4gICAgICByZWFkb25seVxyXG4gICAgICBjbGFzcz1cImJsb2NrIHAtMiBmbGV4LWdyb3cgYm9yZGVyLTIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbWQgdGV4dC1zbVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gICBcclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPiAgIFxyXG4gICAgPGxhYmVsIGZvcj1cImxuZ1wiIGNsYXNzPVwiYmxvY2sgbXItMiBmbGV4LW5vbmVcIj5Mw6RuZ2VuZ3JhZDo8L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJsbmdcIlxyXG4gICAgICBuYW1lPVwibG5nXCJcclxuICAgICAgdmFsdWU9XCIke2UubGF0bG5nLmxuZy50b0ZpeGVkKDUpfVwiXHJcbiAgICAgIHJlYWRvbmx5XHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGJ1dHRvblxyXG4gICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICBjbGFzcz1cImJnLWJsdWUtNTAwIGhvdmVyOmJnLWJsdWUtNzAwIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTIgcHgtNCByb3VuZGVkIHctZnVsbFwiXHJcbiAgPlxyXG4gICAgU3RhdGlvbiBoaW56dWbDvGdlblxyXG4gIDwvYnV0dG9uPlxyXG48L2Zvcm0+XHJcbiAgYDtcclxuXHJcbiAgICBMLnBvcHVwKCkuc2V0TGF0TG5nKGUubGF0bG5nKS5zZXRDb250ZW50KHBvcHVwQ29udGVudCkub3Blbk9uKGluaXRpYWxNYXApO1xyXG5cclxuICAgIC8vIEF0dGFjaCBldmVudCBsaXN0ZW5lciBoZXJlXHJcbiAgICBMLkRvbUV2ZW50Lm9uKHBvcHVwQ29udGVudCwgXCJzdWJtaXRcIiwgaGFuZGxlU3VibWl0KTtcclxuICB9O1xyXG5cclxuICAvKlxyXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChldmVudCkgPT4ge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBuYW1lOiBmb3JtLm5hbWUudmFsdWUsXHJcbiAgICAgIHR5cGU6IGZvcm0udHlwZS52YWx1ZSxcclxuICAgICAgbGF0aXR1ZGU6IGZvcm0ubGF0LnZhbHVlLFxyXG4gICAgICBsb25naXR1ZGU6IGZvcm0ubG5nLnZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICBvbkFkZExvY2F0aW9uKG5hbWUsIHR5cGUsIGxhdCwgbG5nKTtcclxuICAgIGNvbnNvbGUubG9nKFwiTmFtZTogXCIsIG5hbWUsIFwiVHlwZTogXCIsIHR5cGUsIFwiTGF0OiBcIiwgbGF0LCBcIkxuZzogXCIsIGxuZyk7XHJcbiAgICBtYXAuY2xvc2VQb3B1cCgpO1xyXG4gIH07XHJcbiovXHJcbiAgLy8gRnVua3Rpb24genVtIEhpbnp1ZsO8Z2VuIGVpbmVzIG5ldWVuIFN0YW5kb3J0c1xyXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdChldmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBuYW1lOiBmb3JtLm5hbWUudmFsdWUsXHJcbiAgICAgIHR5cGU6IGZvcm0udHlwZS52YWx1ZSxcclxuICAgICAgbGF0aXR1ZGU6IGZvcm0ubGF0LnZhbHVlLFxyXG4gICAgICBsb25naXR1ZGU6IGZvcm0ubG5nLnZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3RhbmRvcnQgaGluenVnZWbDvGd0OlwiLCByZXN1bHQpO1xyXG4gICAgICAgIGFsZXJ0KFwiU3RhbmRvcnQgZXJmb2xncmVpY2ggaGluenVnZWbDvGd0IVwiKTtcclxuICAgICAgICBmb3JtLnJlc2V0KCk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgICAvLyBIaWVyIGvDtm5udGVzdCBkdSB3ZWl0ZXJlIEFrdGlvbmVuIGR1cmNoZsO8aHJlbiwgd2llIGRhcyBTY2hsaWXDn2VuIGRlcyBQb3B1cHMgb2RlciBkYXMgQWt0dWFsaXNpZXJlbiBkZXIgTWFya2VyIGF1ZiBkZXIgS2FydGVcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICByZXN1bHQuZXJyb3IgfHwgXCJFaW4gdW5iZWthbm50ZXIgRmVobGVyIGlzdCBhdWZnZXRyZXRlbi5cIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJGZWhsZXIgYmVpbSBIaW56dWbDvGdlbiBkZXMgU3RhbmRvcnRzOlwiLCBlcnJvcik7XHJcbiAgICAgIGFsZXJ0KGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZmx5KHN0YXRpb25WYWx1ZSkge1xyXG4gICAgdmFyIHggPSA1MS40MTMyMTQwNzg3OTE1NDtcclxuICAgIHZhciB5ID0gNy43Mzk2MTc5MjUzMDM5MzQ7XHJcbiAgICB2YXIgem9vbSA9IDc7XHJcblxyXG4gICAgLyogIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YVN0YXRpY2xlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBnaXNTdGF0aWNzID0gZGF0YVN0YXRpY1tpXTtcclxuICAgICAgaWYgKHN0YXRpb25WYWx1ZSA9PT0gZ2lzU3RhdGljcy5BcmVhX05hbWUpIHtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKGdpc1N0YXRpY3MuWCtcIixcIitnaXNTdGF0aWNzLlkpO1xyXG4gICAgICAgIHggPSBnaXNTdGF0aWNzLlg7XHJcbiAgICAgICAgeSA9IGdpc1N0YXRpY3MuWTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHkgPT09IDcuNzM5NjE3OTI1MzAzOTM0KSB7XHJcbiAgICAgIHpvb20gPSA4O1xyXG4gICAgfSAqL1xyXG4gICAgaW5pdGlhbE1hcC5mbHlUbyhbeCwgeV0sIHpvb20pO1xyXG5cclxuICAgIC8qIHZhciBwb3B1cCA9IG5ldyBMLlBvcHVwKCk7XHJcbiAgICBvbXMuYWRkTGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAobWFya2VyKSB7XHJcbiAgICAgIHBvcHVwLnNldENvbnRlbnQobWFya2VyLmRlc2MpO1xyXG4gICAgICBwb3B1cC5zZXRMYXRMbmcobWFya2VyLmdldExhdExuZygpKTtcclxuICAgICAgbWFwLm9wZW5Qb3B1cChwb3B1cCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdpbmRvdy5tYXBEYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBkYXR1bSA9IHdpbmRvdy5tYXBEYXRhW2ldO1xyXG4gICAgICB2YXIgbG9jID0gbmV3IEwuTGF0TG5nKGRhdHVtLmxhdCwgZGF0dW0ubG9uKTtcclxuICAgICAgdmFyIG1hcmtlciA9IG5ldyBMLk1hcmtlcihsb2MpO1xyXG4gICAgICBtYXJrZXIuZGVzYyA9IGRhdHVtLmQ7XHJcbiAgICAgIG1hcC5hZGRMYXllcihtYXJrZXIpO1xyXG4gICAgICAvL29tcy5hZGRNYXJrZXIobWFya2VyKTsgIC8vIDwtLSBoZXJlXHJcbiAgICB9ICovXHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICBpZD1cIm1hcFwiXHJcbiAgICAgIHJlZj17bWFwUmVmfVxyXG4gICAgICBzdHlsZT17eyBoZWlnaHQ6IFwiMTAwdmhcIiwgd2lkdGg6IFwiMTAwdndcIiwgb3ZlcmZsb3c6IFwiaGlkZGVuXCIgfX1cclxuICAgID48L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWFwQ29tcG9uZW50O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkwiLCJNYXBDb21wb25lbnQiLCJsb2NhdGlvbnMiLCJvbkxvY2F0aW9uVXBkYXRlIiwibWFwUmVmIiwibWFwIiwic2V0TWFwIiwib25saW5lIiwic2V0T25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwib2ZmbGluZVRpbGVMYXllciIsIm9ubGluZVRpbGVMYXllciIsImluaXRpYWxNYXAiLCJjaGVja0ludGVybmV0IiwiY29uc29sZSIsImxvZyIsImZldGNoIiwibWV0aG9kIiwidGhlbiIsInJlc3BvbnNlIiwib2siLCJjYXRjaCIsImN1cnJlbnQiLCJjZW50ZXIiLCJ6b29tIiwiem9vbUNvbnRyb2wiLCJjb250ZXh0bWVudSIsImNvbnRleHRtZW51SXRlbXMiLCJ0ZXh0IiwiY2FsbGJhY2siLCJzaG93QWRkU3RhdGlvblBvcHVwIiwiaWNvbiIsIm5ld0xpbmsiLCJzYW1lTGluayIsImxhdGEiLCJ6b29tSW4iLCJ6b29tT3V0IiwiY2VudGVySGVyZSIsInRpbGVMYXllciIsImF0dHJpYnV0aW9uIiwiYWRkVG8iLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm5ld0xheWVyIiwibWluWm9vbSIsIm1heFpvb20iLCJlYWNoTGF5ZXIiLCJsYXllciIsIlRpbGVMYXllciIsInJlbW92ZUxheWVyIiwiTWFya2VyIiwiZm9yRWFjaCIsImxvY2F0aW9uIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJwYXJzZVBvaW50IiwicG9zaXRpb24iLCJtYXJrZXIiLCJpY29uVXJsIiwiaWNvblNpemUiLCJpY29uQW5jaG9yIiwicG9wdXBBbmNob3IiLCJkcmFnZ2FibGUiLCJpZCIsImlkUG9pIiwiYmluZFBvcHVwIiwiZGVzY3JpcHRpb24iLCJpZFBvaVR5cCIsInRvRml4ZWQiLCJvbiIsImUiLCJuZXdMYXQiLCJ0YXJnZXQiLCJnZXRMYXRMbmciLCJsYXQiLCJuZXdMbmciLCJsbmciLCJtYXJrZXJJZCIsIm9wdGlvbnMiLCJ1cGRhdGVMb2NhdGlvbkluRGF0YWJhc2UiLCJwb2ludFN0cmluZyIsIm1hdGNoIiwicGFyc2VGbG9hdCIsImVycm9yIiwicmVsYXRlZFRhcmdldCIsIkVycm9yIiwiYWxlcnQiLCJ0ZXN0Iiwib3BlbiIsImZvY3VzIiwibGF0bG5nIiwiZmx5VG8iLCJmbHkiLCJwYW5UbyIsInNob3dDb29yZGluYXRlcyIsInNob3dEYXRhIiwic2hvd1RhbGFzIiwiYWRkTGF5ZXIiLCJUQUxBUyIsImxvYWREYXRhIiwiaGlkZVRhbGFzIiwic2hvd0dTTSIsIkdNQSIsImhpZGVHU00iLCJwb3B1cENvbnRlbnQiLCJEb21VdGlsIiwiY3JlYXRlIiwiaW5uZXJIVE1MIiwicG9wdXAiLCJzZXRMYXRMbmciLCJzZXRDb250ZW50Iiwib3Blbk9uIiwiRG9tRXZlbnQiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZm9ybSIsImRhdGEiLCJuYW1lIiwidmFsdWUiLCJ0eXBlIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwicmVzdWx0IiwianNvbiIsInJlc2V0IiwibWVzc2FnZSIsInN0YXRpb25WYWx1ZSIsIngiLCJ5IiwiZGl2IiwicmVmIiwic3R5bGUiLCJoZWlnaHQiLCJ3aWR0aCIsIm92ZXJmbG93Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./components/MapComponent.js\n"));
+eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! leaflet */ \"./node_modules/leaflet/dist/leaflet-src.js\");\n/* harmony import */ var leaflet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(leaflet__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! leaflet/dist/leaflet.css */ \"./node_modules/leaflet/dist/leaflet.css\");\n/* harmony import */ var leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! leaflet-contextmenu/dist/leaflet.contextmenu.css */ \"./node_modules/leaflet-contextmenu/dist/leaflet.contextmenu.css\");\n/* harmony import */ var leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu_dist_leaflet_contextmenu_css__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! leaflet-contextmenu */ \"./node_modules/leaflet-contextmenu/dist/leaflet.contextmenu.js\");\n/* harmony import */ var leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(leaflet_contextmenu__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _config_config_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../config/config.js */ \"./config/config.js\");\n// components/MapComponent.js\n\nvar _s = $RefreshSig$();\n\n\n\n\n\n\nconst MapComponent = (param)=>{\n let { locations, onLocationUpdate } = param;\n _s();\n const mapRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); // Referenz auf das DIV-Element der Karte\n const [map, setMap] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null); // Zustand der Karteninstanz\n const [online, setOnline] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(navigator.onLine); // Zustand der Internetverbindung\n const [dataStatic, setDataStatic] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für statische Daten\n const [dataStatus, setDataStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Statusdaten\n const [dataIcons, setDataIcons] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Icons\n const [dataSystem, setDataSystem] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]); // Zustand für Systemdaten\n // Konstanten für die URLs\n const mapDataStaticUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStaticUrl;\n const mapDataStatusUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStatusUrl;\n const mapDataIconUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataIconUrl;\n const mapDataSystemUrl = _config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataSystemUrl;\n console.log(\"dataStatic hier :\", dataStatic);\n console.log(\"map:\", map);\n //------------------------------------------\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const fetchData = async ()=>{\n try {\n console.log(\"Datenabruf gestartet...\");\n const response = await fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStaticUrl);\n const jsonResponse = await response.json();\n // Prüfen, ob die Antwort das erwartete Format hat und Daten enthält\n if (jsonResponse && jsonResponse.length > 0 && jsonResponse[0].points) {\n console.log(\"dataStatic hier :\", dataStatic);\n console.log(\"map:\", map);\n setDataStatic(jsonResponse[0].points); // Zugriff auf das erste Objekt und dessen points-Array\n } else {\n console.error('Erwartete Daten im \"points\"-Array nicht gefunden', jsonResponse);\n setDataStatic([]);\n }\n } catch (error) {\n console.error(\"Fehler beim Laden der Daten: \", error);\n setDataStatic([]);\n }\n };\n fetchData();\n }, []); // Dependency-Array ist leer, um den Effekt nur beim Mount auszuführen\n //------------------------------------------\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Prüfen der Internetverbindung beim Start\n console.log(\"Pr\\xfcfen der Internetverbindung...\");\n checkInternet();\n // Asynchrones Laden der Kartendaten beim Initialisieren der Komponente\n const fetchData = async ()=>{\n try {\n console.log(\"Datenabruf gestartet...\");\n const responses = await Promise.all([\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStaticUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataStatusUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataIconUrl).then((res)=>res.json()),\n fetch(_config_config_js__WEBPACK_IMPORTED_MODULE_6__.mapDataSystemUrl).then((res)=>res.json())\n ]);\n console.log(\"Daten erfolgreich geladen.\");\n setDataStatic(responses[0].Points);\n setDataStatus(responses[1].Statis);\n setDataIcons(responses[2].List);\n setDataSystem(responses[3].Systems.filter((system)=>system.Allow === 1));\n } catch (error) {\n console.error(\"Fehler beim Laden der Daten: \", error);\n }\n };\n fetchData();\n }, []); // Leeres Abhängigkeitsarray, um nur beim ersten Mount zu laden\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (map && Array.isArray(dataStatic)) {\n dataStatic.forEach((item)=>{\n const marker = leaflet__WEBPACK_IMPORTED_MODULE_2___default().marker([\n item.y,\n item.x\n ], {\n icon: leaflet__WEBPACK_IMPORTED_MODULE_2___default().icon({\n iconUrl: \"/path/to/icon.png\",\n iconSize: [\n 25,\n 41\n ],\n iconAnchor: [\n 12,\n 41\n ],\n popupAnchor: [\n 1,\n -34\n ],\n shadowSize: [\n 41,\n 41\n ] // Größe des Schattens\n })\n }).addTo(map);\n // Anpassen des Popups um relevante Daten anzuzeigen\n marker.bindPopup(\"\".concat(item.lD_Name, \"
\").concat(item.device)).openPopup();\n });\n }\n }, [\n map,\n dataStatic\n ]); // Abhängigkeiten des Effekts\n const offlineTileLayer = \"../TileMap/mapTiles/{z}/{x}/{y}.png\";\n const onlineTileLayer = \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";\n // Create map layers\n const TALAS = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const ECI = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const ULAF = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const GSMModem = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const CiscoRouter = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const WAGO = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const Siemens = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const OTDR = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const WDM = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const GMA = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const Sonstige = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n const TALASICL = new (leaflet__WEBPACK_IMPORTED_MODULE_2___default().layerGroup)();\n let initialMap = [];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n console.log(\"Server URL from config:\", _config_config_js__WEBPACK_IMPORTED_MODULE_6__.serverURL);\n if (true) {\n console.log(\"Window height from config:\", _config_config_js__WEBPACK_IMPORTED_MODULE_6__.windowHeight);\n }\n }, []);\n // Funktionen zur Überwachung der Internetverbindung\n const checkInternet = ()=>{\n console.log(\"Checking internet connectivity...\");\n fetch(\"https://tile.openstreetmap.org/1/1/1.png\", {\n method: \"HEAD\"\n }).then((response)=>setOnline(response.ok)).catch(()=>setOnline(false));\n };\n // Initialisiere die Karte\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (mapRef.current && !map) {\n initialMap = leaflet__WEBPACK_IMPORTED_MODULE_2___default().map(mapRef.current, {\n center: [\n 53.111111,\n 8.4625\n ],\n zoom: 10,\n layers: [\n TALAS,\n ECI,\n ULAF,\n GSMModem,\n CiscoRouter,\n WAGO,\n Siemens,\n OTDR,\n WDM,\n GMA,\n Sonstige,\n TALASICL\n ],\n zoomControl: false,\n contextmenu: true,\n contextmenuItems: [\n {\n text: \"Station hinzuf\\xfcgen\",\n callback: showAddStationPopup\n },\n {\n text: \"Station \\xf6ffnen (Tab)\",\n icon: \"img/screen_new.png\",\n callback: newLink\n },\n {\n text: \"Station \\xf6ffnen\",\n icon: \"img/screen_same.png\",\n callback: sameLink\n },\n {\n text: \"Koordinaten\",\n icon: \"img/screen_same.png\",\n callback: lata\n },\n \"-\",\n {\n text: \"Reinzoomen\",\n callback: zoomIn\n },\n {\n text: \"Rauszoomen\",\n callback: zoomOut\n },\n {\n text: \"Hier zentrieren\",\n callback: centerHere\n }\n ]\n });\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n attribution: '© OpenStreetMap contributors'\n }).addTo(initialMap);\n setMap(initialMap);\n }\n }, [\n mapRef,\n map\n ]);\n // Handle online/offline status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n window.addEventListener(\"online\", checkInternet);\n window.addEventListener(\"offline\", checkInternet);\n return ()=>{\n window.removeEventListener(\"online\", checkInternet);\n window.removeEventListener(\"offline\", checkInternet);\n };\n }, []);\n // Update map layers based on online status\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (map) {\n const newLayer = leaflet__WEBPACK_IMPORTED_MODULE_2___default().tileLayer(online ? onlineTileLayer : offlineTileLayer, {\n minZoom: 7,\n maxZoom: online ? 19 : 14,\n attribution: 'Map data \\xa9 OpenStreetMap contributors'\n });\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().TileLayer)) {\n map.removeLayer(layer);\n }\n });\n newLayer.addTo(map);\n }\n }, [\n online,\n map\n ]);\n // Marker handling\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Remove old markers\n if (map) {\n map.eachLayer((layer)=>{\n if (layer instanceof (leaflet__WEBPACK_IMPORTED_MODULE_2___default().Marker)) {\n map.removeLayer(layer);\n }\n });\n // Add new markers\n locations.forEach((location)=>{\n const { latitude, longitude } = parsePoint(location.position);\n const marker = leaflet__WEBPACK_IMPORTED_MODULE_2___default().marker([\n latitude,\n longitude\n ], {\n icon: leaflet__WEBPACK_IMPORTED_MODULE_2___default().icon({\n iconUrl: \"/location.svg\",\n iconSize: [\n 34,\n 34\n ],\n iconAnchor: [\n 17,\n 34\n ],\n popupAnchor: [\n 0,\n -34\n ]\n }),\n draggable: true,\n id: location.idPoi\n });\n marker.bindPopup(\"\".concat(location.description || \"Unbekannt\", \"
Type: \").concat(location.idPoiTyp || \"N/A\", \"
Lat: \").concat(latitude.toFixed(5), \", Lng: \").concat(longitude.toFixed(5)));\n marker.on(\"dragend\", function(e) {\n const newLat = e.target.getLatLng().lat;\n const newLng = e.target.getLatLng().lng;\n const markerId = e.target.options.id;\n updateLocationInDatabase(markerId, newLat, newLng).then(()=>{\n onLocationUpdate(markerId, newLat, newLng);\n });\n });\n marker.addTo(map);\n });\n }\n }, [\n map,\n locations,\n onLocationUpdate\n ]);\n //------------------------------------------\n function parsePoint(pointString) {\n const match = pointString.match(/POINT\\s*\\((\\d+(\\.\\d+)?)\\s+(\\d+(\\.\\d+)?)\\)/);\n if (match) {\n return {\n longitude: parseFloat(match[1]),\n latitude: parseFloat(match[3])\n };\n } else {\n // Handle the error or return a default/fallback value\n console.error(\"Invalid POINT format:\", pointString);\n return null; // Oder eine sinnvolle Standardantwort\n }\n }\n //----------------------------------\n //-----Kontextmenu----------------\n const newLink = (e)=>{\n try {\n if (!e.relatedTarget || !e.relatedTarget.options) {\n throw new Error(\"relatedTarget or options not defined\");\n }\n alert(\"Neues Fenster: \" + e.relatedTarget.options.test);\n window.open(\"../devices/\".concat(e.relatedTarget.options.test), \"_blank\").focus();\n } catch (error) {\n console.error(\"Failed in newLink function:\", error);\n }\n };\n const sameLink = (e)=>{\n alert(e.relatedTarget.options.test);\n window.open(\"../devices/\" + e.relatedTarget.options.test, \"_parent\").focus();\n };\n const lata = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat);\n };\n const zoomIn = (e)=>{\n initialMap.flyTo(e.latlng, 12);\n };\n const zoomOut = (e)=>{\n fly();\n };\n const centerHere = (e)=>{\n initialMap.panTo(e.latlng);\n };\n const showCoordinates = (e)=>{\n alert(\"Breitengrad: \" + e.latlng.lat + \"\\nL\\xe4ngengrad: \" + e.latlng.lng);\n };\n const showData = (e)=>{\n console.log(e);\n };\n const showTalas = (e)=>{\n map.addLayer(TALAS);\n loadData();\n };\n const hideTalas = (e)=>{\n map.removeLayer(TALAS);\n loadData();\n };\n const showGSM = (e)=>{\n map.addLayer(GMA);\n loadData();\n };\n const hideGSM = (e)=>{\n map.removeLayer(GMA);\n loadData();\n };\n //-----Kontextmenu----ende------------\n // Ensure this function is only called when map is initialized and available\n const showAddStationPopup = (e)=>{\n if (!initialMap) {\n console.log(\"Map is not initialized.\");\n return;\n }\n const popupContent = leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomUtil.create(\"div\");\n popupContent.innerHTML = '\\n \\n ');\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().popup().setLatLng(e.latlng).setContent(popupContent).openOn(initialMap);\n // Attach event listener here\n leaflet__WEBPACK_IMPORTED_MODULE_2___default().DomEvent.on(popupContent, \"submit\", handleSubmit);\n };\n /*\r\n const handleSubmit = (event) => {\r\n event.preventDefault();\r\n const form = event.target;\r\n const data = {\r\n name: form.name.value,\r\n type: form.type.value,\r\n latitude: form.lat.value,\r\n longitude: form.lng.value,\r\n };\r\n\r\n onAddLocation(name, type, lat, lng);\r\n console.log(\"Name: \", name, \"Type: \", type, \"Lat: \", lat, \"Lng: \", lng);\r\n map.closePopup();\r\n };\r\n*/ // Funktion zum Hinzufügen eines neuen Standorts\n async function handleSubmit(event) {\n event.preventDefault();\n const form = event.target;\n const data = {\n name: form.name.value,\n type: form.type.value,\n latitude: form.lat.value,\n longitude: form.lng.value\n };\n try {\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(data)\n });\n const result = await response.json();\n if (response.ok) {\n console.log(\"Standort hinzugef\\xfcgt:\", result);\n alert(\"Standort erfolgreich hinzugef\\xfcgt!\");\n form.reset(); // Formular zurücksetzen\n // Hier könntest du weitere Aktionen durchführen, wie das Schließen des Popups oder das Aktualisieren der Marker auf der Karte\n } else {\n throw new Error(result.error || \"Ein unbekannter Fehler ist aufgetreten.\");\n }\n } catch (error) {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts:\", error);\n alert(error.message);\n }\n }\n function fly(stationValue) {\n var x = 51.41321407879154;\n var y = 7.739617925303934;\n var zoom = 7;\n /* for (var i = 0; i < dataStaticlength; i++) {\r\n var gisStatics = dataStatic[i];\r\n if (stationValue === gisStatics.Area_Name) {\r\n //console.log(gisStatics.X+\",\"+gisStatics.Y);\r\n x = gisStatics.X;\r\n y = gisStatics.Y;\r\n }\r\n }\r\n if (y === 7.739617925303934) {\r\n zoom = 8;\r\n } */ initialMap.flyTo([\n x,\n y\n ], zoom);\n /* var popup = new L.Popup();\r\n oms.addListener(\"click\", function (marker) {\r\n popup.setContent(marker.desc);\r\n popup.setLatLng(marker.getLatLng());\r\n map.openPopup(popup);\r\n });\r\n\r\n for (var i = 0; i < window.mapData.length; i++) {\r\n var datum = window.mapData[i];\r\n var loc = new L.LatLng(datum.lat, datum.lon);\r\n var marker = new L.Marker(loc);\r\n marker.desc = datum.d;\r\n map.addLayer(marker);\r\n //oms.addMarker(marker); // <-- here\r\n } */ }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"map\",\n ref: mapRef,\n style: {\n height: \"100vh\",\n width: \"100vw\",\n overflow: \"hidden\"\n }\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\components\\\\MapComponent.js\",\n lineNumber: 487,\n columnNumber: 5\n }, undefined);\n};\n_s(MapComponent, \"ExIMkVYUBcb/tSq6xaXzESE+2L8=\");\n_c = MapComponent;\n/* harmony default export */ __webpack_exports__[\"default\"] = (MapComponent);\nvar _c;\n$RefreshReg$(_c, \"MapComponent\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QixLQUFLVSxLQUFLLElBQUksd0JBQXdCO1lBQ3RDLDhIQUE4SDtZQUNoSSxPQUFPO2dCQUNMLE1BQU0sSUFBSXZDLE1BQ1JzQyxPQUFPbEosS0FBSyxJQUFJO1lBRXBCO1FBQ0YsRUFBRSxPQUFPQSxPQUFPO1lBQ2RULFFBQVFTLEtBQUssQ0FBQyw0Q0FBeUNBO1lBQ3ZENkcsTUFBTTdHLE1BQU1vSixPQUFPO1FBQ3JCO0lBQ0Y7SUFFQSxTQUFTakMsSUFBSWtDLFlBQVk7UUFDdkIsSUFBSWpJLElBQUk7UUFDUixJQUFJRCxJQUFJO1FBQ1IsSUFBSW9DLE9BQU87UUFFWDs7Ozs7Ozs7OztNQVVFLEdBQ0ZSLFdBQVdtRSxLQUFLLENBQUM7WUFBQzlGO1lBQUdEO1NBQUUsRUFBRW9DO0lBRXpCOzs7Ozs7Ozs7Ozs7OztNQWNFLEdBQ0o7SUFFQSxxQkFDRSw4REFBQytGO1FBQ0M5RCxJQUFHO1FBQ0grRCxLQUFLbkw7UUFDTG9MLE9BQU87WUFBRUMsUUFBUTtZQUFTQyxPQUFPO1lBQVNDLFVBQVU7UUFBUzs7Ozs7O0FBR25FO0dBcmVNMUw7S0FBQUE7QUF1ZU4sK0RBQWVBLFlBQVlBLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9NYXBDb21wb25lbnQuanM/ZDA3ZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBjb21wb25lbnRzL01hcENvbXBvbmVudC5qc1xyXG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBMIGZyb20gXCJsZWFmbGV0XCI7XHJcbmltcG9ydCBcImxlYWZsZXQvZGlzdC9sZWFmbGV0LmNzc1wiO1xyXG5pbXBvcnQgXCJsZWFmbGV0LWNvbnRleHRtZW51L2Rpc3QvbGVhZmxldC5jb250ZXh0bWVudS5jc3NcIjtcclxuaW1wb3J0IFwibGVhZmxldC1jb250ZXh0bWVudVwiO1xyXG5pbXBvcnQgKiBhcyBjb25maWcgZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5qcyc7XHJcbmNvbnN0IE1hcENvbXBvbmVudCA9ICh7IGxvY2F0aW9ucywgb25Mb2NhdGlvblVwZGF0ZSB9KSA9PiB7XHJcbiAgY29uc3QgbWFwUmVmID0gdXNlUmVmKG51bGwpOyAvLyBSZWZlcmVueiBhdWYgZGFzIERJVi1FbGVtZW50IGRlciBLYXJ0ZVxyXG4gIGNvbnN0IFttYXAsIHNldE1hcF0gPSB1c2VTdGF0ZShudWxsKTsgLy8gWnVzdGFuZCBkZXIgS2FydGVuaW5zdGFuelxyXG4gIGNvbnN0IFtvbmxpbmUsIHNldE9ubGluZV0gPSB1c2VTdGF0ZShuYXZpZ2F0b3Iub25MaW5lKTsgLy8gWnVzdGFuZCBkZXIgSW50ZXJuZXR2ZXJiaW5kdW5nXHJcbiAgY29uc3QgW2RhdGFTdGF0aWMsIHNldERhdGFTdGF0aWNdID0gdXNlU3RhdGUoW10pOyAvLyBadXN0YW5kIGbDvHIgc3RhdGlzY2hlIERhdGVuXHJcbiAgY29uc3QgW2RhdGFTdGF0dXMsIHNldERhdGFTdGF0dXNdID0gdXNlU3RhdGUoW10pOyAvLyBadXN0YW5kIGbDvHIgU3RhdHVzZGF0ZW5cclxuICBjb25zdCBbZGF0YUljb25zLCBzZXREYXRhSWNvbnNdID0gdXNlU3RhdGUoW10pOyAvLyBadXN0YW5kIGbDvHIgSWNvbnNcclxuICBjb25zdCBbZGF0YVN5c3RlbSwgc2V0RGF0YVN5c3RlbV0gPSB1c2VTdGF0ZShbXSk7IC8vIFp1c3RhbmQgZsO8ciBTeXN0ZW1kYXRlblxyXG5cclxuICAgIC8vIEtvbnN0YW50ZW4gZsO8ciBkaWUgVVJMc1xyXG4gICAgY29uc3QgbWFwRGF0YVN0YXRpY1VybCA9IGNvbmZpZy5tYXBEYXRhU3RhdGljVXJsO1xyXG4gICAgY29uc3QgbWFwRGF0YVN0YXR1c1VybCA9IGNvbmZpZy5tYXBEYXRhU3RhdHVzVXJsO1xyXG4gICAgY29uc3QgbWFwRGF0YUljb25VcmwgPSBjb25maWcubWFwRGF0YUljb25Vcmw7XHJcbiAgICBjb25zdCBtYXBEYXRhU3lzdGVtVXJsID0gY29uZmlnLm1hcERhdGFTeXN0ZW1Vcmw7XHJcblxyXG4gICAgY29uc29sZS5sb2coJ2RhdGFTdGF0aWMgaGllciA6JywgZGF0YVN0YXRpYyk7XHJcbiAgICBjb25zb2xlLmxvZygnbWFwOicsIG1hcCk7XHJcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3QgZmV0Y2hEYXRhID0gYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGVuYWJydWYgZ2VzdGFydGV0Li4uXCIpO1xyXG4gICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChjb25maWcubWFwRGF0YVN0YXRpY1VybCk7XHJcbiAgICAgICAgICBjb25zdCBqc29uUmVzcG9uc2UgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICBcclxuICAgICAgICAgIC8vIFByw7xmZW4sIG9iIGRpZSBBbnR3b3J0IGRhcyBlcndhcnRldGUgRm9ybWF0IGhhdCB1bmQgRGF0ZW4gZW50aMOkbHRcclxuICAgICAgICAgIGlmIChqc29uUmVzcG9uc2UgJiYganNvblJlc3BvbnNlLmxlbmd0aCA+IDAgJiYganNvblJlc3BvbnNlWzBdLnBvaW50cykge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnZGF0YVN0YXRpYyBoaWVyIDonLCBkYXRhU3RhdGljKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ21hcDonLCBtYXApO1xyXG4gICAgICAgICAgICBzZXREYXRhU3RhdGljKGpzb25SZXNwb25zZVswXS5wb2ludHMpOyAvLyBadWdyaWZmIGF1ZiBkYXMgZXJzdGUgT2JqZWt0IHVuZCBkZXNzZW4gcG9pbnRzLUFycmF5XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcndhcnRldGUgRGF0ZW4gaW0gXCJwb2ludHNcIi1BcnJheSBuaWNodCBnZWZ1bmRlbicsIGpzb25SZXNwb25zZSk7XHJcbiAgICAgICAgICAgIHNldERhdGFTdGF0aWMoW10pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRmVobGVyIGJlaW0gTGFkZW4gZGVyIERhdGVuOiBcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgc2V0RGF0YVN0YXRpYyhbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgXHJcbiAgICAgIGZldGNoRGF0YSgpO1xyXG4gICAgfSwgW10pOyAvLyBEZXBlbmRlbmN5LUFycmF5IGlzdCBsZWVyLCB1bSBkZW4gRWZmZWt0IG51ciBiZWltIE1vdW50IGF1c3p1ZsO8aHJlblxyXG4gICAgXHJcbiAgICAgICAgXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAvLyBQcsO8ZmVuIGRlciBJbnRlcm5ldHZlcmJpbmR1bmcgYmVpbSBTdGFydFxyXG4gICAgICBjb25zb2xlLmxvZyhcIlByw7xmZW4gZGVyIEludGVybmV0dmVyYmluZHVuZy4uLlwiKTtcclxuICAgICAgY2hlY2tJbnRlcm5ldCgpO1xyXG4gIFxyXG4gICAgICAvLyBBc3luY2hyb25lcyBMYWRlbiBkZXIgS2FydGVuZGF0ZW4gYmVpbSBJbml0aWFsaXNpZXJlbiBkZXIgS29tcG9uZW50ZVxyXG4gICAgICBjb25zdCBmZXRjaERhdGEgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGF0ZW5hYnJ1ZiBnZXN0YXJ0ZXQuLi5cIik7XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZXMgPSBhd2FpdCBQcm9taXNlLmFsbChbXHJcbiAgICAgICAgICAgIGZldGNoKGNvbmZpZy5tYXBEYXRhU3RhdGljVXJsKS50aGVuKHJlcyA9PiByZXMuanNvbigpKSxcclxuICAgICAgICAgICAgZmV0Y2goY29uZmlnLm1hcERhdGFTdGF0dXNVcmwpLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpLFxyXG4gICAgICAgICAgICBmZXRjaChjb25maWcubWFwRGF0YUljb25VcmwpLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpLFxyXG4gICAgICAgICAgICBmZXRjaChjb25maWcubWFwRGF0YVN5c3RlbVVybCkudGhlbihyZXMgPT4gcmVzLmpzb24oKSlcclxuICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJEYXRlbiBlcmZvbGdyZWljaCBnZWxhZGVuLlwiKTtcclxuICAgICAgICAgIHNldERhdGFTdGF0aWMocmVzcG9uc2VzWzBdLlBvaW50cyk7XHJcbiAgICAgICAgICBzZXREYXRhU3RhdHVzKHJlc3BvbnNlc1sxXS5TdGF0aXMpO1xyXG4gICAgICAgICAgc2V0RGF0YUljb25zKHJlc3BvbnNlc1syXS5MaXN0KTtcclxuICAgICAgICAgIHNldERhdGFTeXN0ZW0ocmVzcG9uc2VzWzNdLlN5c3RlbXMuZmlsdGVyKHN5c3RlbSA9PiBzeXN0ZW0uQWxsb3cgPT09IDEpKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIkZlaGxlciBiZWltIExhZGVuIGRlciBEYXRlbjogXCIsIGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgXHJcbiAgICAgIGZldGNoRGF0YSgpO1xyXG4gICAgfSwgW10pOy8vIExlZXJlcyBBYmjDpG5naWdrZWl0c2FycmF5LCB1bSBudXIgYmVpbSBlcnN0ZW4gTW91bnQgenUgbGFkZW5cclxuXHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAobWFwICYmIEFycmF5LmlzQXJyYXkoZGF0YVN0YXRpYykpIHtcclxuICAgICAgICBkYXRhU3RhdGljLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtYXJrZXIgPSBMLm1hcmtlcihbaXRlbS55LCBpdGVtLnhdLCB7ICAvLyBWZXJ3ZW5kdW5nIHZvbiBpdGVtLnkgdW5kIGl0ZW0ueCBzdGF0dCBpdGVtLmxhdGl0dWRlIHVuZCBpdGVtLmxvbmdpdHVkZVxyXG4gICAgICAgICAgICBpY29uOiBMLmljb24oe1xyXG4gICAgICAgICAgICAgIGljb25Vcmw6ICcvcGF0aC90by9pY29uLnBuZycsICAvLyBQZmFkIHp1bSBJY29uXHJcbiAgICAgICAgICAgICAgaWNvblNpemU6IFsyNSwgNDFdLCAgICAgICAgICAgIC8vIEdyw7bDn2UgZGVzIEljb25zXHJcbiAgICAgICAgICAgICAgaWNvbkFuY2hvcjogWzEyLCA0MV0sICAgICAgICAgIC8vIEFua2VycHVua3QgZGVzIEljb25zXHJcbiAgICAgICAgICAgICAgcG9wdXBBbmNob3I6IFsxLCAtMzRdLCAgICAgICAgIC8vIFBvc2l0aW9uIGRlcyBQb3B1cHMgcmVsYXRpdiB6dW0gSWNvblxyXG4gICAgICAgICAgICAgIHNoYWRvd1NpemU6IFs0MSwgNDFdICAgICAgICAgICAvLyBHcsO2w59lIGRlcyBTY2hhdHRlbnNcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XHJcbiAgICBcclxuICAgICAgICAgIC8vIEFucGFzc2VuIGRlcyBQb3B1cHMgdW0gcmVsZXZhbnRlIERhdGVuIGFuenV6ZWlnZW5cclxuICAgICAgICAgIG1hcmtlci5iaW5kUG9wdXAoYDxiPiR7aXRlbS5sRF9OYW1lfTwvYj48YnI+JHtpdGVtLmRldmljZX1gKS5vcGVuUG9wdXAoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgW21hcCwgZGF0YVN0YXRpY10pOyAvLyBBYmjDpG5naWdrZWl0ZW4gZGVzIEVmZmVrdHNcclxuICAgIFxyXG5cclxuICBjb25zdCBvZmZsaW5lVGlsZUxheWVyID0gXCIuLi9UaWxlTWFwL21hcFRpbGVzL3t6fS97eH0ve3l9LnBuZ1wiO1xyXG4gIGNvbnN0IG9ubGluZVRpbGVMYXllciA9IFwiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmdcIjtcclxuICAgIC8vIENyZWF0ZSBtYXAgbGF5ZXJzXHJcbiAgICBjb25zdCBUQUxBUyA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICAgIGNvbnN0IEVDSSA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICAgIGNvbnN0IFVMQUYgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgICBjb25zdCBHU01Nb2RlbSA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICAgIGNvbnN0IENpc2NvUm91dGVyID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gICAgY29uc3QgV0FHTyA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuICAgIGNvbnN0IFNpZW1lbnMgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgICBjb25zdCBPVERSID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gICAgY29uc3QgV0RNID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gICAgY29uc3QgR01BID0gbmV3IEwubGF5ZXJHcm91cCgpO1xyXG4gICAgY29uc3QgU29uc3RpZ2UgPSBuZXcgTC5sYXllckdyb3VwKCk7XHJcbiAgICBjb25zdCBUQUxBU0lDTCA9IG5ldyBMLmxheWVyR3JvdXAoKTtcclxuXHJcbiAgbGV0IGluaXRpYWxNYXAgPSBbXTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKFwiU2VydmVyIFVSTCBmcm9tIGNvbmZpZzpcIiwgY29uZmlnLnNlcnZlclVSTCk7XHJcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiV2luZG93IGhlaWdodCBmcm9tIGNvbmZpZzpcIiwgY29uZmlnLndpbmRvd0hlaWdodCk7XHJcbiAgICB9XHJcbn0sIFtdKTtcclxuXHJcbiAgLy8gRnVua3Rpb25lbiB6dXIgw5xiZXJ3YWNodW5nIGRlciBJbnRlcm5ldHZlcmJpbmR1bmdcclxuICBjb25zdCBjaGVja0ludGVybmV0ID0gKCkgPT4ge1xyXG4gICAgY29uc29sZS5sb2coXCJDaGVja2luZyBpbnRlcm5ldCBjb25uZWN0aXZpdHkuLi5cIik7XHJcbiAgICBmZXRjaChcImh0dHBzOi8vdGlsZS5vcGVuc3RyZWV0bWFwLm9yZy8xLzEvMS5wbmdcIiwgeyBtZXRob2Q6IFwiSEVBRFwiIH0pXHJcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gc2V0T25saW5lKHJlc3BvbnNlLm9rKSlcclxuICAgICAgLmNhdGNoKCgpID0+IHNldE9ubGluZShmYWxzZSkpO1xyXG4gIH07XHJcbiAgLy8gSW5pdGlhbGlzaWVyZSBkaWUgS2FydGVcclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKG1hcFJlZi5jdXJyZW50ICYmICFtYXApIHtcclxuICAgICAgaW5pdGlhbE1hcCA9IEwubWFwKG1hcFJlZi5jdXJyZW50LCB7XHJcbiAgICAgICAgY2VudGVyOiBbNTMuMTExMTExLCA4LjQ2MjVdLFxyXG4gICAgICAgIHpvb206IDEwLFxyXG4gICAgICAgIGxheWVyczogW1RBTEFTLCBFQ0ksIFVMQUYsIEdTTU1vZGVtLCBDaXNjb1JvdXRlciwgV0FHTywgU2llbWVucywgT1REUiwgV0RNLCBHTUEsIFNvbnN0aWdlLCBUQUxBU0lDTF0sXHJcbiAgICAgICAgem9vbUNvbnRyb2w6IGZhbHNlLCAvLyBEZWFrdGl2aWVyZSBkaWUgU3RhbmRhcmQtWm9vbXN0ZXVlcnVuZ1xyXG4gICAgICAgIGNvbnRleHRtZW51OiB0cnVlLFxyXG4gICAgICAgIGNvbnRleHRtZW51SXRlbXM6IFtcclxuICAgICAgICAgIHsgdGV4dDogXCJTdGF0aW9uIGhpbnp1ZsO8Z2VuXCIsIGNhbGxiYWNrOiBzaG93QWRkU3RhdGlvblBvcHVwIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiU3RhdGlvbiDDtmZmbmVuIChUYWIpXCIsXHJcbiAgICAgICAgICAgIGljb246IFwiaW1nL3NjcmVlbl9uZXcucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBuZXdMaW5rLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGV4dDogXCJTdGF0aW9uIMO2ZmZuZW5cIixcclxuICAgICAgICAgICAgaWNvbjogXCJpbWcvc2NyZWVuX3NhbWUucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBzYW1lTGluayxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQ6IFwiS29vcmRpbmF0ZW5cIixcclxuICAgICAgICAgICAgaWNvbjogXCJpbWcvc2NyZWVuX3NhbWUucG5nXCIsXHJcbiAgICAgICAgICAgIGNhbGxiYWNrOiBsYXRhLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIFwiLVwiLCAvLyBEaXZpZGVyXHJcbiAgICAgICAgICB7IHRleHQ6IFwiUmVpbnpvb21lblwiLCBjYWxsYmFjazogem9vbUluIH0sXHJcbiAgICAgICAgICB7IHRleHQ6IFwiUmF1c3pvb21lblwiLCBjYWxsYmFjazogem9vbU91dCB9LFxyXG4gICAgICAgICAgeyB0ZXh0OiBcIkhpZXIgemVudHJpZXJlblwiLCBjYWxsYmFjazogY2VudGVySGVyZSB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG4gICAgICBMLnRpbGVMYXllcihvbmxpbmUgPyBvbmxpbmVUaWxlTGF5ZXIgOiBvZmZsaW5lVGlsZUxheWVyLCB7XHJcbiAgICAgICAgYXR0cmlidXRpb246XHJcbiAgICAgICAgICAnJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnLFxyXG4gICAgICB9KS5hZGRUbyhpbml0aWFsTWFwKTtcclxuXHJcbiAgICAgIHNldE1hcChpbml0aWFsTWFwKTtcclxuICAgIH1cclxuICB9LCBbbWFwUmVmLCBtYXBdKTtcclxuXHJcbiAgLy8gSGFuZGxlIG9ubGluZS9vZmZsaW5lIHN0YXR1c1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwib2ZmbGluZVwiLCBjaGVja0ludGVybmV0KTtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwib25saW5lXCIsIGNoZWNrSW50ZXJuZXQpO1xyXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9mZmxpbmVcIiwgY2hlY2tJbnRlcm5ldCk7XHJcbiAgICB9O1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgLy8gVXBkYXRlIG1hcCBsYXllcnMgYmFzZWQgb24gb25saW5lIHN0YXR1c1xyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAobWFwKSB7XHJcbiAgICAgIGNvbnN0IG5ld0xheWVyID0gTC50aWxlTGF5ZXIoXHJcbiAgICAgICAgb25saW5lID8gb25saW5lVGlsZUxheWVyIDogb2ZmbGluZVRpbGVMYXllcixcclxuICAgICAgICB7XHJcbiAgICAgICAgICBtaW5ab29tOiA3LFxyXG4gICAgICAgICAgbWF4Wm9vbTogb25saW5lID8gMTkgOiAxNCxcclxuICAgICAgICAgIGF0dHJpYnV0aW9uOlxyXG4gICAgICAgICAgICAnTWFwIGRhdGEgwqkgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycycsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgICAgbWFwLmVhY2hMYXllcigobGF5ZXIpID0+IHtcclxuICAgICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLlRpbGVMYXllcikge1xyXG4gICAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbmV3TGF5ZXIuYWRkVG8obWFwKTtcclxuICAgIH1cclxuICB9LCBbb25saW5lLCBtYXBdKTtcclxuXHJcbiAgLy8gTWFya2VyIGhhbmRsaW5nXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIC8vIFJlbW92ZSBvbGQgbWFya2Vyc1xyXG4gICAgaWYgKG1hcCkge1xyXG4gICAgICBtYXAuZWFjaExheWVyKChsYXllcikgPT4ge1xyXG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XHJcbiAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBBZGQgbmV3IG1hcmtlcnNcclxuICAgICAgbG9jYXRpb25zLmZvckVhY2goKGxvY2F0aW9uKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBsYXRpdHVkZSwgbG9uZ2l0dWRlIH0gPSBwYXJzZVBvaW50KGxvY2F0aW9uLnBvc2l0aW9uKTtcclxuICAgICAgICBjb25zdCBtYXJrZXIgPSBMLm1hcmtlcihbbGF0aXR1ZGUsIGxvbmdpdHVkZV0sIHtcclxuICAgICAgICAgIGljb246IEwuaWNvbih7XHJcbiAgICAgICAgICAgIGljb25Vcmw6IFwiL2xvY2F0aW9uLnN2Z1wiLFxyXG4gICAgICAgICAgICBpY29uU2l6ZTogWzM0LCAzNF0sXHJcbiAgICAgICAgICAgIGljb25BbmNob3I6IFsxNywgMzRdLFxyXG4gICAgICAgICAgICBwb3B1cEFuY2hvcjogWzAsIC0zNF0sXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcclxuICAgICAgICAgIGlkOiBsb2NhdGlvbi5pZFBvaSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgbWFya2VyLmJpbmRQb3B1cChcclxuICAgICAgICAgIGA8Yj4ke2xvY2F0aW9uLmRlc2NyaXB0aW9uIHx8IFwiVW5iZWthbm50XCJ9PC9iPjxicj5UeXBlOiAke2xvY2F0aW9uLmlkUG9pVHlwIHx8IFwiTi9BXCJ9PGJyPkxhdDogJHtsYXRpdHVkZS50b0ZpeGVkKDUpfSwgTG5nOiAke2xvbmdpdHVkZS50b0ZpeGVkKDUpfWBcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBtYXJrZXIub24oXCJkcmFnZW5kXCIsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdMYXQgPSBlLnRhcmdldC5nZXRMYXRMbmcoKS5sYXQ7XHJcbiAgICAgICAgICBjb25zdCBuZXdMbmcgPSBlLnRhcmdldC5nZXRMYXRMbmcoKS5sbmc7XHJcbiAgICAgICAgICBjb25zdCBtYXJrZXJJZCA9IGUudGFyZ2V0Lm9wdGlvbnMuaWQ7XHJcbiAgICAgICAgICB1cGRhdGVMb2NhdGlvbkluRGF0YWJhc2UobWFya2VySWQsIG5ld0xhdCwgbmV3TG5nKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgb25Mb2NhdGlvblVwZGF0ZShtYXJrZXJJZCwgbmV3TGF0LCBuZXdMbmcpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIG1hcmtlci5hZGRUbyhtYXApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9LCBbbWFwLCBsb2NhdGlvbnMsIG9uTG9jYXRpb25VcGRhdGVdKTtcclxuXHJcbiAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICBmdW5jdGlvbiBwYXJzZVBvaW50KHBvaW50U3RyaW5nKSB7XHJcbiAgICBjb25zdCBtYXRjaCA9IHBvaW50U3RyaW5nLm1hdGNoKFxyXG4gICAgICAvUE9JTlRcXHMqXFwoKFxcZCsoXFwuXFxkKyk/KVxccysoXFxkKyhcXC5cXGQrKT8pXFwpL1xyXG4gICAgKTtcclxuICAgIGlmIChtYXRjaCkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGxvbmdpdHVkZTogcGFyc2VGbG9hdChtYXRjaFsxXSksXHJcbiAgICAgICAgbGF0aXR1ZGU6IHBhcnNlRmxvYXQobWF0Y2hbM10pLCAvLyBBY2h0dW5nOiBJbmRleCAzIGbDvHIgZGllIHp3ZWl0ZSBLb29yZGluYXRlLCB3ZWdlbiBkZXIgR3J1cHBlIChcXC5cXGQrKT9cclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIEhhbmRsZSB0aGUgZXJyb3Igb3IgcmV0dXJuIGEgZGVmYXVsdC9mYWxsYmFjayB2YWx1ZVxyXG4gICAgICBjb25zb2xlLmVycm9yKFwiSW52YWxpZCBQT0lOVCBmb3JtYXQ6XCIsIHBvaW50U3RyaW5nKTtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIE9kZXIgZWluZSBzaW5udm9sbGUgU3RhbmRhcmRhbnR3b3J0XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIC8vLS0tLS1Lb250ZXh0bWVudS0tLS0tLS0tLS0tLS0tLS1cclxuICBjb25zdCBuZXdMaW5rID0gKGUpID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICghZS5yZWxhdGVkVGFyZ2V0IHx8ICFlLnJlbGF0ZWRUYXJnZXQub3B0aW9ucykge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlbGF0ZWRUYXJnZXQgb3Igb3B0aW9ucyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgfVxyXG4gICAgICBhbGVydChcIk5ldWVzIEZlbnN0ZXI6IFwiICsgZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCk7XHJcbiAgICAgIHdpbmRvd1xyXG4gICAgICAgIC5vcGVuKGAuLi9kZXZpY2VzLyR7ZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdH1gLCBcIl9ibGFua1wiKVxyXG4gICAgICAgIC5mb2N1cygpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCBpbiBuZXdMaW5rIGZ1bmN0aW9uOlwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc2FtZUxpbmsgPSAoZSkgPT4ge1xyXG4gICAgYWxlcnQoZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCk7XHJcbiAgICB3aW5kb3dcclxuICAgICAgLm9wZW4oXCIuLi9kZXZpY2VzL1wiICsgZS5yZWxhdGVkVGFyZ2V0Lm9wdGlvbnMudGVzdCwgXCJfcGFyZW50XCIpXHJcbiAgICAgIC5mb2N1cygpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IGxhdGEgPSAoZSkgPT4ge1xyXG4gICAgYWxlcnQoXCJCcmVpdGVuZ3JhZDogXCIgKyBlLmxhdGxuZy5sYXQpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHpvb21JbiA9IChlKSA9PiB7XHJcbiAgICBpbml0aWFsTWFwLmZseVRvKGUubGF0bG5nLCAxMik7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgem9vbU91dCA9IChlKSA9PiB7XHJcbiAgICBmbHkoKTtcclxuICB9O1xyXG4gIGNvbnN0IGNlbnRlckhlcmUgPSAoZSkgPT4ge1xyXG4gICAgaW5pdGlhbE1hcC5wYW5UbyhlLmxhdGxuZyk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgc2hvd0Nvb3JkaW5hdGVzID0gKGUpID0+IHtcclxuICAgIGFsZXJ0KFwiQnJlaXRlbmdyYWQ6IFwiICsgZS5sYXRsbmcubGF0ICsgXCJcXG5Mw6RuZ2VuZ3JhZDogXCIgKyBlLmxhdGxuZy5sbmcpO1xyXG4gIH07XHJcbiAgY29uc3Qgc2hvd0RhdGEgPSAoZSkgPT4ge1xyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgfTtcclxuICBjb25zdCBzaG93VGFsYXMgPSAoZSkgPT4ge1xyXG4gICAgbWFwLmFkZExheWVyKFRBTEFTKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBoaWRlVGFsYXMgPSAoZSkgPT4ge1xyXG4gICAgbWFwLnJlbW92ZUxheWVyKFRBTEFTKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfTtcclxuICBjb25zdCBzaG93R1NNID0gKGUpID0+IHtcclxuICAgIG1hcC5hZGRMYXllcihHTUEpO1xyXG4gICAgbG9hZERhdGEoKTtcclxuICB9O1xyXG4gIGNvbnN0IGhpZGVHU00gPSAoZSkgPT4ge1xyXG4gICAgbWFwLnJlbW92ZUxheWVyKEdNQSk7XHJcbiAgICBsb2FkRGF0YSgpO1xyXG4gIH07XHJcbiAgLy8tLS0tLUtvbnRleHRtZW51LS0tLWVuZGUtLS0tLS0tLS0tLS1cclxuICAvLyBFbnN1cmUgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCB3aGVuIG1hcCBpcyBpbml0aWFsaXplZCBhbmQgYXZhaWxhYmxlXHJcbiAgY29uc3Qgc2hvd0FkZFN0YXRpb25Qb3B1cCA9IChlKSA9PiB7XHJcbiAgICBpZiAoIWluaXRpYWxNYXApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJNYXAgaXMgbm90IGluaXRpYWxpemVkLlwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBvcHVwQ29udGVudCA9IEwuRG9tVXRpbC5jcmVhdGUoXCJkaXZcIik7XHJcbiAgICBwb3B1cENvbnRlbnQuaW5uZXJIVE1MID0gYFxyXG4gIDxmb3JtIGlkPVwiYWRkU3RhdGlvbkZvcm1cIiBjbGFzcz1cIm0tMCBwLTIgdy1mdWxsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj4gICAgICBcclxuICAgIDxsYWJlbCBmb3I9XCJuYW1lXCIgY2xhc3M9XCJibG9jayBtci0yIGZsZXgtbm9uZVwiPk5hbWU6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibmFtZVwiXHJcbiAgICAgIG5hbWU9XCJuYW1lXCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lIGRlciBTdGF0aW9uXCJcclxuICAgICAgY2xhc3M9XCJibG9jayBwLTIgZmxleC1ncm93IGJvcmRlci0yIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLW1kIHRleHQtc21cIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuICBcclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPiAgIFxyXG4gICAgPGxhYmVsIGZvcj1cInR5cGVcIiBjbGFzcz1cImJsb2NrIG1yLTMgZmxleC1ub25lXCI+VHlwZTo8L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJ0eXBlXCJcclxuICAgICAgbmFtZT1cInR5cGVcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIlR5cCBkZXIgU3RhdGlvblwiXHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG1iLTRcIj5cclxuICAgIDxsYWJlbCBmb3I9XCJsYXRcIiBjbGFzcz1cImJsb2NrIG1yLTIgZmxleC1ub25lXCI+QnJlaXRlbmdyYWQ6PC9sYWJlbD5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGlkPVwibGF0XCJcclxuICAgICAgbmFtZT1cImxhdFwiXHJcbiAgICAgIHZhbHVlPVwiJHtlLmxhdGxuZy5sYXQudG9GaXhlZCg1KX1cIlxyXG4gICAgICByZWFkb25seVxyXG4gICAgICBjbGFzcz1cImJsb2NrIHAtMiBmbGV4LWdyb3cgYm9yZGVyLTIgYm9yZGVyLWdyYXktMjAwIHJvdW5kZWQtbWQgdGV4dC1zbVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4gICBcclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbWItNFwiPiAgIFxyXG4gICAgPGxhYmVsIGZvcj1cImxuZ1wiIGNsYXNzPVwiYmxvY2sgbXItMiBmbGV4LW5vbmVcIj5Mw6RuZ2VuZ3JhZDo8L2xhYmVsPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgaWQ9XCJsbmdcIlxyXG4gICAgICBuYW1lPVwibG5nXCJcclxuICAgICAgdmFsdWU9XCIke2UubGF0bG5nLmxuZy50b0ZpeGVkKDUpfVwiXHJcbiAgICAgIHJlYWRvbmx5XHJcbiAgICAgIGNsYXNzPVwiYmxvY2sgcC0yIGZsZXgtZ3JvdyBib3JkZXItMiBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1tZCB0ZXh0LXNtXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGJ1dHRvblxyXG4gICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICBjbGFzcz1cImJnLWJsdWUtNTAwIGhvdmVyOmJnLWJsdWUtNzAwIHRleHQtd2hpdGUgZm9udC1ib2xkIHB5LTIgcHgtNCByb3VuZGVkIHctZnVsbFwiXHJcbiAgPlxyXG4gICAgU3RhdGlvbiBoaW56dWbDvGdlblxyXG4gIDwvYnV0dG9uPlxyXG48L2Zvcm0+XHJcbiAgYDtcclxuXHJcbiAgICBMLnBvcHVwKCkuc2V0TGF0TG5nKGUubGF0bG5nKS5zZXRDb250ZW50KHBvcHVwQ29udGVudCkub3Blbk9uKGluaXRpYWxNYXApO1xyXG5cclxuICAgIC8vIEF0dGFjaCBldmVudCBsaXN0ZW5lciBoZXJlXHJcbiAgICBMLkRvbUV2ZW50Lm9uKHBvcHVwQ29udGVudCwgXCJzdWJtaXRcIiwgaGFuZGxlU3VibWl0KTtcclxuICB9O1xyXG5cclxuICAvKlxyXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChldmVudCkgPT4ge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBuYW1lOiBmb3JtLm5hbWUudmFsdWUsXHJcbiAgICAgIHR5cGU6IGZvcm0udHlwZS52YWx1ZSxcclxuICAgICAgbGF0aXR1ZGU6IGZvcm0ubGF0LnZhbHVlLFxyXG4gICAgICBsb25naXR1ZGU6IGZvcm0ubG5nLnZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICBvbkFkZExvY2F0aW9uKG5hbWUsIHR5cGUsIGxhdCwgbG5nKTtcclxuICAgIGNvbnNvbGUubG9nKFwiTmFtZTogXCIsIG5hbWUsIFwiVHlwZTogXCIsIHR5cGUsIFwiTGF0OiBcIiwgbGF0LCBcIkxuZzogXCIsIGxuZyk7XHJcbiAgICBtYXAuY2xvc2VQb3B1cCgpO1xyXG4gIH07XHJcbiovXHJcbiAgLy8gRnVua3Rpb24genVtIEhpbnp1ZsO8Z2VuIGVpbmVzIG5ldWVuIFN0YW5kb3J0c1xyXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdChldmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IGZvcm0gPSBldmVudC50YXJnZXQ7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBuYW1lOiBmb3JtLm5hbWUudmFsdWUsXHJcbiAgICAgIHR5cGU6IGZvcm0udHlwZS52YWx1ZSxcclxuICAgICAgbGF0aXR1ZGU6IGZvcm0ubGF0LnZhbHVlLFxyXG4gICAgICBsb25naXR1ZGU6IGZvcm0ubG5nLnZhbHVlLFxyXG4gICAgfTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcbiAgICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3RhbmRvcnQgaGluenVnZWbDvGd0OlwiLCByZXN1bHQpO1xyXG4gICAgICAgIGFsZXJ0KFwiU3RhbmRvcnQgZXJmb2xncmVpY2ggaGluenVnZWbDvGd0IVwiKTtcclxuICAgICAgICBmb3JtLnJlc2V0KCk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgICAvLyBIaWVyIGvDtm5udGVzdCBkdSB3ZWl0ZXJlIEFrdGlvbmVuIGR1cmNoZsO8aHJlbiwgd2llIGRhcyBTY2hsaWXDn2VuIGRlcyBQb3B1cHMgb2RlciBkYXMgQWt0dWFsaXNpZXJlbiBkZXIgTWFya2VyIGF1ZiBkZXIgS2FydGVcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICByZXN1bHQuZXJyb3IgfHwgXCJFaW4gdW5iZWthbm50ZXIgRmVobGVyIGlzdCBhdWZnZXRyZXRlbi5cIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJGZWhsZXIgYmVpbSBIaW56dWbDvGdlbiBkZXMgU3RhbmRvcnRzOlwiLCBlcnJvcik7XHJcbiAgICAgIGFsZXJ0KGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZmx5KHN0YXRpb25WYWx1ZSkge1xyXG4gICAgdmFyIHggPSA1MS40MTMyMTQwNzg3OTE1NDtcclxuICAgIHZhciB5ID0gNy43Mzk2MTc5MjUzMDM5MzQ7XHJcbiAgICB2YXIgem9vbSA9IDc7XHJcblxyXG4gICAgLyogIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YVN0YXRpY2xlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBnaXNTdGF0aWNzID0gZGF0YVN0YXRpY1tpXTtcclxuICAgICAgaWYgKHN0YXRpb25WYWx1ZSA9PT0gZ2lzU3RhdGljcy5BcmVhX05hbWUpIHtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKGdpc1N0YXRpY3MuWCtcIixcIitnaXNTdGF0aWNzLlkpO1xyXG4gICAgICAgIHggPSBnaXNTdGF0aWNzLlg7XHJcbiAgICAgICAgeSA9IGdpc1N0YXRpY3MuWTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHkgPT09IDcuNzM5NjE3OTI1MzAzOTM0KSB7XHJcbiAgICAgIHpvb20gPSA4O1xyXG4gICAgfSAqL1xyXG4gICAgaW5pdGlhbE1hcC5mbHlUbyhbeCwgeV0sIHpvb20pO1xyXG5cclxuICAgIC8qIHZhciBwb3B1cCA9IG5ldyBMLlBvcHVwKCk7XHJcbiAgICBvbXMuYWRkTGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAobWFya2VyKSB7XHJcbiAgICAgIHBvcHVwLnNldENvbnRlbnQobWFya2VyLmRlc2MpO1xyXG4gICAgICBwb3B1cC5zZXRMYXRMbmcobWFya2VyLmdldExhdExuZygpKTtcclxuICAgICAgbWFwLm9wZW5Qb3B1cChwb3B1cCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdpbmRvdy5tYXBEYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBkYXR1bSA9IHdpbmRvdy5tYXBEYXRhW2ldO1xyXG4gICAgICB2YXIgbG9jID0gbmV3IEwuTGF0TG5nKGRhdHVtLmxhdCwgZGF0dW0ubG9uKTtcclxuICAgICAgdmFyIG1hcmtlciA9IG5ldyBMLk1hcmtlcihsb2MpO1xyXG4gICAgICBtYXJrZXIuZGVzYyA9IGRhdHVtLmQ7XHJcbiAgICAgIG1hcC5hZGRMYXllcihtYXJrZXIpO1xyXG4gICAgICAvL29tcy5hZGRNYXJrZXIobWFya2VyKTsgIC8vIDwtLSBoZXJlXHJcbiAgICB9ICovXHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICBpZD1cIm1hcFwiXHJcbiAgICAgIHJlZj17bWFwUmVmfVxyXG4gICAgICBzdHlsZT17eyBoZWlnaHQ6IFwiMTAwdmhcIiwgd2lkdGg6IFwiMTAwdndcIiwgb3ZlcmZsb3c6IFwiaGlkZGVuXCIgfX1cclxuICAgID48L2Rpdj5cclxuICApO1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWFwQ29tcG9uZW50O1xyXG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkwiLCJjb25maWciLCJNYXBDb21wb25lbnQiLCJsb2NhdGlvbnMiLCJvbkxvY2F0aW9uVXBkYXRlIiwibWFwUmVmIiwibWFwIiwic2V0TWFwIiwib25saW5lIiwic2V0T25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwiZGF0YVN0YXRpYyIsInNldERhdGFTdGF0aWMiLCJkYXRhU3RhdHVzIiwic2V0RGF0YVN0YXR1cyIsImRhdGFJY29ucyIsInNldERhdGFJY29ucyIsImRhdGFTeXN0ZW0iLCJzZXREYXRhU3lzdGVtIiwibWFwRGF0YVN0YXRpY1VybCIsIm1hcERhdGFTdGF0dXNVcmwiLCJtYXBEYXRhSWNvblVybCIsIm1hcERhdGFTeXN0ZW1VcmwiLCJjb25zb2xlIiwibG9nIiwiZmV0Y2hEYXRhIiwicmVzcG9uc2UiLCJmZXRjaCIsImpzb25SZXNwb25zZSIsImpzb24iLCJsZW5ndGgiLCJwb2ludHMiLCJlcnJvciIsImNoZWNrSW50ZXJuZXQiLCJyZXNwb25zZXMiLCJQcm9taXNlIiwiYWxsIiwidGhlbiIsInJlcyIsIlBvaW50cyIsIlN0YXRpcyIsIkxpc3QiLCJTeXN0ZW1zIiwiZmlsdGVyIiwic3lzdGVtIiwiQWxsb3ciLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwiaXRlbSIsIm1hcmtlciIsInkiLCJ4IiwiaWNvbiIsImljb25VcmwiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJwb3B1cEFuY2hvciIsInNoYWRvd1NpemUiLCJhZGRUbyIsImJpbmRQb3B1cCIsImxEX05hbWUiLCJkZXZpY2UiLCJvcGVuUG9wdXAiLCJvZmZsaW5lVGlsZUxheWVyIiwib25saW5lVGlsZUxheWVyIiwiVEFMQVMiLCJsYXllckdyb3VwIiwiRUNJIiwiVUxBRiIsIkdTTU1vZGVtIiwiQ2lzY29Sb3V0ZXIiLCJXQUdPIiwiU2llbWVucyIsIk9URFIiLCJXRE0iLCJHTUEiLCJTb25zdGlnZSIsIlRBTEFTSUNMIiwiaW5pdGlhbE1hcCIsInNlcnZlclVSTCIsIndpbmRvd0hlaWdodCIsIm1ldGhvZCIsIm9rIiwiY2F0Y2giLCJjdXJyZW50IiwiY2VudGVyIiwiem9vbSIsImxheWVycyIsInpvb21Db250cm9sIiwiY29udGV4dG1lbnUiLCJjb250ZXh0bWVudUl0ZW1zIiwidGV4dCIsImNhbGxiYWNrIiwic2hvd0FkZFN0YXRpb25Qb3B1cCIsIm5ld0xpbmsiLCJzYW1lTGluayIsImxhdGEiLCJ6b29tSW4iLCJ6b29tT3V0IiwiY2VudGVySGVyZSIsInRpbGVMYXllciIsImF0dHJpYnV0aW9uIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJuZXdMYXllciIsIm1pblpvb20iLCJtYXhab29tIiwiZWFjaExheWVyIiwibGF5ZXIiLCJUaWxlTGF5ZXIiLCJyZW1vdmVMYXllciIsIk1hcmtlciIsImxvY2F0aW9uIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJwYXJzZVBvaW50IiwicG9zaXRpb24iLCJkcmFnZ2FibGUiLCJpZCIsImlkUG9pIiwiZGVzY3JpcHRpb24iLCJpZFBvaVR5cCIsInRvRml4ZWQiLCJvbiIsImUiLCJuZXdMYXQiLCJ0YXJnZXQiLCJnZXRMYXRMbmciLCJsYXQiLCJuZXdMbmciLCJsbmciLCJtYXJrZXJJZCIsIm9wdGlvbnMiLCJ1cGRhdGVMb2NhdGlvbkluRGF0YWJhc2UiLCJwb2ludFN0cmluZyIsIm1hdGNoIiwicGFyc2VGbG9hdCIsInJlbGF0ZWRUYXJnZXQiLCJFcnJvciIsImFsZXJ0IiwidGVzdCIsIm9wZW4iLCJmb2N1cyIsImxhdGxuZyIsImZseVRvIiwiZmx5IiwicGFuVG8iLCJzaG93Q29vcmRpbmF0ZXMiLCJzaG93RGF0YSIsInNob3dUYWxhcyIsImFkZExheWVyIiwibG9hZERhdGEiLCJoaWRlVGFsYXMiLCJzaG93R1NNIiwiaGlkZUdTTSIsInBvcHVwQ29udGVudCIsIkRvbVV0aWwiLCJjcmVhdGUiLCJpbm5lckhUTUwiLCJwb3B1cCIsInNldExhdExuZyIsInNldENvbnRlbnQiLCJvcGVuT24iLCJEb21FdmVudCIsImhhbmRsZVN1Ym1pdCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJmb3JtIiwiZGF0YSIsIm5hbWUiLCJ2YWx1ZSIsInR5cGUiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXN1bHQiLCJyZXNldCIsIm1lc3NhZ2UiLCJzdGF0aW9uVmFsdWUiLCJkaXYiLCJyZWYiLCJzdHlsZSIsImhlaWdodCIsIndpZHRoIiwib3ZlcmZsb3ciXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./components/MapComponent.js\n"));
+
+/***/ }),
+
+/***/ "./config/config.js":
+/*!**************************!*\
+ !*** ./config/config.js ***!
+ \**************************/
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ c: function() { return /* binding */ c; },\n/* harmony export */ fullSideMenu: function() { return /* binding */ fullSideMenu; },\n/* harmony export */ mapDataIconUrl: function() { return /* binding */ mapDataIconUrl; },\n/* harmony export */ mapDataMeasures: function() { return /* binding */ mapDataMeasures; },\n/* harmony export */ mapDataStaticUrl: function() { return /* binding */ mapDataStaticUrl; },\n/* harmony export */ mapDataStatusUrl: function() { return /* binding */ mapDataStatusUrl; },\n/* harmony export */ mapDataSystemUrl: function() { return /* binding */ mapDataSystemUrl; },\n/* harmony export */ mapIconsOfflineURL: function() { return /* binding */ mapIconsOfflineURL; },\n/* harmony export */ mapMeasuresOfflineURL: function() { return /* binding */ mapMeasuresOfflineURL; },\n/* harmony export */ mapStaticOfflineURL: function() { return /* binding */ mapStaticOfflineURL; },\n/* harmony export */ mapStatusOfflineURL: function() { return /* binding */ mapStatusOfflineURL; },\n/* harmony export */ mapSystemOfflineURL: function() { return /* binding */ mapSystemOfflineURL; },\n/* harmony export */ mapVersion: function() { return /* binding */ mapVersion; },\n/* harmony export */ offlineData: function() { return /* binding */ offlineData; },\n/* harmony export */ serverURL: function() { return /* binding */ serverURL; },\n/* harmony export */ standardSideMenu: function() { return /* binding */ standardSideMenu; },\n/* harmony export */ url: function() { return /* binding */ url; },\n/* harmony export */ url_string: function() { return /* binding */ url_string; },\n/* harmony export */ user: function() { return /* binding */ user; },\n/* harmony export */ windowHeight: function() { return /* binding */ windowHeight; }\n/* harmony export */ });\n// Definieren der grundlegenden Umgebungseinstellungen und Konfigurationen der Karte\nconst mapVersion = \"0.5.3\"; // Die Version der verwendeten Karte\nconst standardSideMenu = true; // Einstellung, ob ein standardmäßiges Seitenmenü verwendet wird\nconst fullSideMenu = false; // Einstellung, ob ein vollständiges Seitenmenü verwendet wird\nconst offlineData = false; // Schalter, um anzugeben, ob Daten offline verfügbar gemacht werden sollen\nconst serverURL = \"/api\"; // Die Basis-URL des Servers, von dem Daten bezogen werden\n// Initialisieren von Variablen, die später im Browserkontext gesetzt werden\nlet windowHeight, url_string, url, c, user;\nlet mapDataStaticUrl, mapDataStatusUrl, mapDataMeasures, mapDataIconUrl, mapDataSystemUrl;\nlet mapStaticOfflineURL, mapStatusOfflineURL, mapSystemOfflineURL, mapIconsOfflineURL, mapMeasuresOfflineURL;\n// Prüfen, ob das Code im Browser ausgeführt wird\nif (true) {\n // Diese Variablen werden nur im Browser-Kontext initialisiert\n windowHeight = window.innerHeight; // Die Höhe des Browserfensters\n url_string = window.location.href; // Die vollständige URL als String\n url = new URL(url_string); // Die URL als URL-Objekt, um Teile der URL einfacher zu handhaben\n c = url.searchParams.get(\"m\") || \"10\"; // Ein Parameter aus der URL, Standardwert ist '10'\n user = url.searchParams.get(\"u\") || \"484\"; // Ein weiterer Parameter aus der URL, Standardwert ist '487 oder 484'\n // Konstruktion von URLs, die auf spezifische Ressourcen auf dem Server zeigen\n mapDataStaticUrl = \"\".concat(serverURL, \"/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict?idMap=\").concat(c, \"&idUser=\").concat(user);\n mapDataStatusUrl = \"\".concat(serverURL, \"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict?idMap=\").concat(c, \"&idUser=\").concat(user);\n mapDataMeasures = \"\".concat(serverURL, \"/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap=\").concat(c);\n mapDataIconUrl = \"\".concat(serverURL, \"/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic\");\n mapDataSystemUrl = \"\".concat(serverURL, \"/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap=\").concat(c, \"&idUser=\").concat(user);\n /* mapDataStaticUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict`;\r\n mapDataStatusUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict`;\r\n mapDataMeasures = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements`;\r\n mapDataIconUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic`;\r\n mapDataSystemUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic`; */ // URLs zu Offline-Daten, falls benötigt\n mapStaticOfflineURL = \"offlineTestData/idMap\".concat(c, \"GisStationenStatic.json\");\n mapStatusOfflineURL = \"offlineTestData/idMap\".concat(c, \"GisStationenStatus.json\");\n mapSystemOfflineURL = \"offlineTestData/idMap\".concat(c, \"GisSystemStatic.json\");\n mapIconsOfflineURL = \"offlineTestData/icons.json\";\n mapMeasuresOfflineURL = \"offlineTestData/idMap\".concat(c, \"GisSystemMeasures.json\");\n}\n// Export der definierten Variablen und URLs, damit sie in anderen Teilen der Anwendung verwendet werden können\n\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvY29uZmlnLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0ZBQW9GO0FBQ3BGLE1BQU1BLGFBQWEsU0FBUyxvQ0FBb0M7QUFDaEUsTUFBTUMsbUJBQW1CLE1BQU0sZ0VBQWdFO0FBQy9GLE1BQU1DLGVBQWUsT0FBTyw4REFBOEQ7QUFDMUYsTUFBTUMsY0FBYyxPQUFPLDJFQUEyRTtBQUN0RyxNQUFNQyxZQUFZLFFBQVEsMERBQTBEO0FBRXBGLDRFQUE0RTtBQUM1RSxJQUFJQyxjQUFjQyxZQUFZQyxLQUFLQyxHQUFHQztBQUN0QyxJQUFJQyxrQkFDRkMsa0JBQ0FDLGlCQUNBQyxnQkFDQUM7QUFDRixJQUFJQyxxQkFDRkMscUJBQ0FDLHFCQUNBQyxvQkFDQUM7QUFFRixpREFBaUQ7QUFDakQsSUFBSSxJQUE2QixFQUFFO0lBQ2pDLDhEQUE4RDtJQUM5RGQsZUFBZWUsT0FBT0MsV0FBVyxFQUFFLCtCQUErQjtJQUNsRWYsYUFBYWMsT0FBT0UsUUFBUSxDQUFDQyxJQUFJLEVBQUUsa0NBQWtDO0lBQ3JFaEIsTUFBTSxJQUFJaUIsSUFBSWxCLGFBQWEsa0VBQWtFO0lBQzdGRSxJQUFJRCxJQUFJa0IsWUFBWSxDQUFDQyxHQUFHLENBQUMsUUFBUSxNQUFNLG1EQUFtRDtJQUMxRmpCLE9BQU9GLElBQUlrQixZQUFZLENBQUNDLEdBQUcsQ0FBQyxRQUFRLE9BQU8sc0VBQXNFO0lBRWpILDhFQUE4RTtJQUM5RWhCLG1CQUFtQixHQUFxRkYsT0FBbEZKLFdBQVUsMEVBQW9GSyxPQUFaRCxHQUFFLFlBQWUsT0FBTEM7SUFDcEhFLG1CQUFtQixHQUFxRkgsT0FBbEZKLFdBQVUsMEVBQW9GSyxPQUFaRCxHQUFFLFlBQWUsT0FBTEM7SUFDcEhHLGtCQUFrQixHQUFtRkosT0FBaEZKLFdBQVUsd0VBQXdFLE9BQUZJO0lBQ3JHSyxpQkFBaUIsR0FBYSxPQUFWVCxXQUFVO0lBQzlCVSxtQkFBbUIsR0FBMkVOLE9BQXhFSixXQUFVLGdFQUEwRUssT0FBWkQsR0FBRSxZQUFlLE9BQUxDO0lBRTFHOzs7OzBGQUl3RixHQUN4Rix3Q0FBd0M7SUFDeENNLHNCQUFzQix3QkFBMEIsT0FBRlAsR0FBRTtJQUNoRFEsc0JBQXNCLHdCQUEwQixPQUFGUixHQUFFO0lBQ2hEUyxzQkFBc0Isd0JBQTBCLE9BQUZULEdBQUU7SUFDaERVLHFCQUFxQjtJQUNyQkMsd0JBQXdCLHdCQUEwQixPQUFGWCxHQUFFO0FBQ3BEO0FBRUEsK0dBQStHO0FBc0I3RyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9jb25maWcvY29uZmlnLmpzP2FhMDQiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRGVmaW5pZXJlbiBkZXIgZ3J1bmRsZWdlbmRlbiBVbWdlYnVuZ3NlaW5zdGVsbHVuZ2VuIHVuZCBLb25maWd1cmF0aW9uZW4gZGVyIEthcnRlXHJcbmNvbnN0IG1hcFZlcnNpb24gPSBcIjAuNS4zXCI7IC8vIERpZSBWZXJzaW9uIGRlciB2ZXJ3ZW5kZXRlbiBLYXJ0ZVxyXG5jb25zdCBzdGFuZGFyZFNpZGVNZW51ID0gdHJ1ZTsgLy8gRWluc3RlbGx1bmcsIG9iIGVpbiBzdGFuZGFyZG3DpMOfaWdlcyBTZWl0ZW5tZW7DvCB2ZXJ3ZW5kZXQgd2lyZFxyXG5jb25zdCBmdWxsU2lkZU1lbnUgPSBmYWxzZTsgLy8gRWluc3RlbGx1bmcsIG9iIGVpbiB2b2xsc3TDpG5kaWdlcyBTZWl0ZW5tZW7DvCB2ZXJ3ZW5kZXQgd2lyZFxyXG5jb25zdCBvZmZsaW5lRGF0YSA9IGZhbHNlOyAvLyBTY2hhbHRlciwgdW0gYW56dWdlYmVuLCBvYiBEYXRlbiBvZmZsaW5lIHZlcmbDvGdiYXIgZ2VtYWNodCB3ZXJkZW4gc29sbGVuXHJcbmNvbnN0IHNlcnZlclVSTCA9IFwiL2FwaVwiOyAvLyBEaWUgQmFzaXMtVVJMIGRlcyBTZXJ2ZXJzLCB2b24gZGVtIERhdGVuIGJlem9nZW4gd2VyZGVuXHJcblxyXG4vLyBJbml0aWFsaXNpZXJlbiB2b24gVmFyaWFibGVuLCBkaWUgc3DDpHRlciBpbSBCcm93c2Vya29udGV4dCBnZXNldHp0IHdlcmRlblxyXG5sZXQgd2luZG93SGVpZ2h0LCB1cmxfc3RyaW5nLCB1cmwsIGMsIHVzZXI7XHJcbmxldCBtYXBEYXRhU3RhdGljVXJsLFxyXG4gIG1hcERhdGFTdGF0dXNVcmwsXHJcbiAgbWFwRGF0YU1lYXN1cmVzLFxyXG4gIG1hcERhdGFJY29uVXJsLFxyXG4gIG1hcERhdGFTeXN0ZW1Vcmw7XHJcbmxldCBtYXBTdGF0aWNPZmZsaW5lVVJMLFxyXG4gIG1hcFN0YXR1c09mZmxpbmVVUkwsXHJcbiAgbWFwU3lzdGVtT2ZmbGluZVVSTCxcclxuICBtYXBJY29uc09mZmxpbmVVUkwsXHJcbiAgbWFwTWVhc3VyZXNPZmZsaW5lVVJMO1xyXG5cclxuLy8gUHLDvGZlbiwgb2IgZGFzIENvZGUgaW0gQnJvd3NlciBhdXNnZWbDvGhydCB3aXJkXHJcbmlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgLy8gRGllc2UgVmFyaWFibGVuIHdlcmRlbiBudXIgaW0gQnJvd3Nlci1Lb250ZXh0IGluaXRpYWxpc2llcnRcclxuICB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7IC8vIERpZSBIw7ZoZSBkZXMgQnJvd3NlcmZlbnN0ZXJzXHJcbiAgdXJsX3N0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOyAvLyBEaWUgdm9sbHN0w6RuZGlnZSBVUkwgYWxzIFN0cmluZ1xyXG4gIHVybCA9IG5ldyBVUkwodXJsX3N0cmluZyk7IC8vIERpZSBVUkwgYWxzIFVSTC1PYmpla3QsIHVtIFRlaWxlIGRlciBVUkwgZWluZmFjaGVyIHp1IGhhbmRoYWJlblxyXG4gIGMgPSB1cmwuc2VhcmNoUGFyYW1zLmdldChcIm1cIikgfHwgXCIxMFwiOyAvLyBFaW4gUGFyYW1ldGVyIGF1cyBkZXIgVVJMLCBTdGFuZGFyZHdlcnQgaXN0ICcxMCdcclxuICB1c2VyID0gdXJsLnNlYXJjaFBhcmFtcy5nZXQoXCJ1XCIpIHx8IFwiNDg0XCI7IC8vIEVpbiB3ZWl0ZXJlciBQYXJhbWV0ZXIgYXVzIGRlciBVUkwsIFN0YW5kYXJkd2VydCBpc3QgJzQ4NyBvZGVyIDQ4NCdcclxuXHJcbiAgLy8gS29uc3RydWt0aW9uIHZvbiBVUkxzLCBkaWUgYXVmIHNwZXppZmlzY2hlIFJlc3NvdXJjZW4gYXVmIGRlbSBTZXJ2ZXIgemVpZ2VuXHJcbiAgbWFwRGF0YVN0YXRpY1VybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdGljRGlzdHJpY3Q/aWRNYXA9JHtjfSZpZFVzZXI9JHt1c2VyfWA7XHJcbiAgbWFwRGF0YVN0YXR1c1VybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdHVzRGlzdHJpY3Q/aWRNYXA9JHtjfSZpZFVzZXI9JHt1c2VyfWA7XHJcbiAgbWFwRGF0YU1lYXN1cmVzID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3RhdGlvbnNNZWFzdXJlbWVudHM/aWRNYXA9JHtjfWA7XHJcbiAgbWFwRGF0YUljb25VcmwgPSBgJHtzZXJ2ZXJVUkx9L3RhbGFzNS9DbGllbnREYXRhL1dlYnNlcnZpY2VNYXAuYXNteC9HZXRJY29uc1N0YXRpY2A7XHJcbiAgbWFwRGF0YVN5c3RlbVVybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N5c3RlbVN0YXRpYz9pZE1hcD0ke2N9JmlkVXNlcj0ke3VzZXJ9YDtcclxuXHJcbiAgLyogICBtYXBEYXRhU3RhdGljVXJsID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3RhdGlvbnNTdGF0aWNEaXN0cmljdGA7XHJcbiAgbWFwRGF0YVN0YXR1c1VybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zU3RhdHVzRGlzdHJpY3RgO1xyXG4gIG1hcERhdGFNZWFzdXJlcyA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dpc1N0YXRpb25zTWVhc3VyZW1lbnRzYDtcclxuICBtYXBEYXRhSWNvblVybCA9IGAke3NlcnZlclVSTH0vdGFsYXM1L0NsaWVudERhdGEvV2Vic2VydmljZU1hcC5hc214L0dldEljb25zU3RhdGljYDtcclxuICBtYXBEYXRhU3lzdGVtVXJsID0gYCR7c2VydmVyVVJMfS90YWxhczUvQ2xpZW50RGF0YS9XZWJzZXJ2aWNlTWFwLmFzbXgvR2lzU3lzdGVtU3RhdGljYDsgKi9cclxuICAvLyBVUkxzIHp1IE9mZmxpbmUtRGF0ZW4sIGZhbGxzIGJlbsO2dGlndFxyXG4gIG1hcFN0YXRpY09mZmxpbmVVUkwgPSBgb2ZmbGluZVRlc3REYXRhL2lkTWFwJHtjfUdpc1N0YXRpb25lblN0YXRpYy5qc29uYDtcclxuICBtYXBTdGF0dXNPZmZsaW5lVVJMID0gYG9mZmxpbmVUZXN0RGF0YS9pZE1hcCR7Y31HaXNTdGF0aW9uZW5TdGF0dXMuanNvbmA7XHJcbiAgbWFwU3lzdGVtT2ZmbGluZVVSTCA9IGBvZmZsaW5lVGVzdERhdGEvaWRNYXAke2N9R2lzU3lzdGVtU3RhdGljLmpzb25gO1xyXG4gIG1hcEljb25zT2ZmbGluZVVSTCA9IFwib2ZmbGluZVRlc3REYXRhL2ljb25zLmpzb25cIjtcclxuICBtYXBNZWFzdXJlc09mZmxpbmVVUkwgPSBgb2ZmbGluZVRlc3REYXRhL2lkTWFwJHtjfUdpc1N5c3RlbU1lYXN1cmVzLmpzb25gO1xyXG59XHJcblxyXG4vLyBFeHBvcnQgZGVyIGRlZmluaWVydGVuIFZhcmlhYmxlbiB1bmQgVVJMcywgZGFtaXQgc2llIGluIGFuZGVyZW4gVGVpbGVuIGRlciBBbndlbmR1bmcgdmVyd2VuZGV0IHdlcmRlbiBrw7ZubmVuXHJcbmV4cG9ydCB7XHJcbiAgbWFwVmVyc2lvbixcclxuICBzdGFuZGFyZFNpZGVNZW51LFxyXG4gIGZ1bGxTaWRlTWVudSxcclxuICBvZmZsaW5lRGF0YSxcclxuICBzZXJ2ZXJVUkwsXHJcbiAgd2luZG93SGVpZ2h0LFxyXG4gIHVybF9zdHJpbmcsXHJcbiAgdXJsLFxyXG4gIGMsXHJcbiAgdXNlcixcclxuICBtYXBEYXRhU3RhdGljVXJsLFxyXG4gIG1hcERhdGFTdGF0dXNVcmwsXHJcbiAgbWFwRGF0YU1lYXN1cmVzLFxyXG4gIG1hcERhdGFJY29uVXJsLFxyXG4gIG1hcERhdGFTeXN0ZW1VcmwsXHJcbiAgbWFwU3RhdGljT2ZmbGluZVVSTCxcclxuICBtYXBTdGF0dXNPZmZsaW5lVVJMLFxyXG4gIG1hcFN5c3RlbU9mZmxpbmVVUkwsXHJcbiAgbWFwSWNvbnNPZmZsaW5lVVJMLFxyXG4gIG1hcE1lYXN1cmVzT2ZmbGluZVVSTCxcclxufTtcclxuIl0sIm5hbWVzIjpbIm1hcFZlcnNpb24iLCJzdGFuZGFyZFNpZGVNZW51IiwiZnVsbFNpZGVNZW51Iiwib2ZmbGluZURhdGEiLCJzZXJ2ZXJVUkwiLCJ3aW5kb3dIZWlnaHQiLCJ1cmxfc3RyaW5nIiwidXJsIiwiYyIsInVzZXIiLCJtYXBEYXRhU3RhdGljVXJsIiwibWFwRGF0YVN0YXR1c1VybCIsIm1hcERhdGFNZWFzdXJlcyIsIm1hcERhdGFJY29uVXJsIiwibWFwRGF0YVN5c3RlbVVybCIsIm1hcFN0YXRpY09mZmxpbmVVUkwiLCJtYXBTdGF0dXNPZmZsaW5lVVJMIiwibWFwU3lzdGVtT2ZmbGluZVVSTCIsIm1hcEljb25zT2ZmbGluZVVSTCIsIm1hcE1lYXN1cmVzT2ZmbGluZVVSTCIsIndpbmRvdyIsImlubmVySGVpZ2h0IiwibG9jYXRpb24iLCJocmVmIiwiVVJMIiwic2VhcmNoUGFyYW1zIiwiZ2V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./config/config.js\n"));
/***/ })
diff --git a/.next/static/chunks/main.js b/.next/static/chunks/main.js
index 37e432571..3381f5abb 100644
--- a/.next/static/chunks/main.js
+++ b/.next/static/chunks/main.js
@@ -520,7 +520,7 @@ eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseStack\", ({\n enumerable: true,\n get: function() {\n return parseStack;\n }\n}));\nconst _stacktraceparser = __webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");\nconst regexNextStatic = /\\/_next(\\/static\\/.+)/;\nfunction parseStack(stack) {\n const frames = (0, _stacktraceparser.parse)(stack);\n return frames.map((frame)=>{\n try {\n const url = new URL(frame.file);\n const res = regexNextStatic.exec(url.pathname);\n if (res) {\n var _process_env___NEXT_DIST_DIR_replace, _process_env___NEXT_DIST_DIR;\n const distDir = (_process_env___NEXT_DIST_DIR = \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\.next\") == null ? void 0 : (_process_env___NEXT_DIST_DIR_replace = _process_env___NEXT_DIST_DIR.replace(/\\\\/g, \"/\")) == null ? void 0 : _process_env___NEXT_DIST_DIR_replace.replace(/\\/$/, \"\");\n if (distDir) {\n frame.file = \"file://\" + distDir.concat(res.pop()) + url.search;\n }\n }\n } catch (e) {}\n return frame;\n });\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=parseStack.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcGFyc2VTdGFjay5qcyIsIm1hcHBpbmdzIjoiOzs7OzhDQUtnQkE7OztlQUFBQTs7OzhDQUxNO0FBR3RCLE1BQU1DLGtCQUFrQjtBQUVqQixTQUFTRCxXQUFXRSxLQUFhO0lBQ3RDLE1BQU1DLFNBQVNDLENBQUFBLEdBQUFBLGtCQUFBQSxLQUFLLEVBQUNGO0lBQ3JCLE9BQU9DLE9BQU9FLEdBQUcsQ0FBQyxDQUFDQztRQUNqQixJQUFJO1lBQ0YsTUFBTUMsTUFBTSxJQUFJQyxJQUFJRixNQUFNRyxJQUFJO1lBQzlCLE1BQU1DLE1BQU1ULGdCQUFnQlUsSUFBSSxDQUFDSixJQUFJSyxRQUFRO1lBQzdDLElBQUlGLEtBQUs7b0JBQ1NHLHNDQUFBQTtnQkFBaEIsTUFBTUMsVUFBQUEsQ0FBVUQsK0JBQUFBLHNFQUEyQixzQkFBM0JBLHVDQUFBQSw2QkFDWkksT0FBTyxDQUFDLE9BQU8seUJBREhKLHFDQUVaSSxPQUFPLENBQUMsT0FBTztnQkFDbkIsSUFBSUgsU0FBUztvQkFDWFIsTUFBTUcsSUFBSSxHQUFHLFlBQVlLLFFBQVFJLE1BQU0sQ0FBQ1IsSUFBSVMsR0FBRyxNQUFPWixJQUFJYSxNQUFNO2dCQUNsRTtZQUNGO1FBQ0YsRUFBRSxPQUFBQyxHQUFNLENBQUM7UUFDVCxPQUFPZjtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL3BhcnNlU3RhY2sudHM/YWQwMyJdLCJuYW1lcyI6WyJwYXJzZVN0YWNrIiwicmVnZXhOZXh0U3RhdGljIiwic3RhY2siLCJmcmFtZXMiLCJwYXJzZSIsIm1hcCIsImZyYW1lIiwidXJsIiwiVVJMIiwiZmlsZSIsInJlcyIsImV4ZWMiLCJwYXRobmFtZSIsInByb2Nlc3MiLCJkaXN0RGlyIiwiZW52IiwiX19ORVhUX0RJU1RfRElSIiwicmVwbGFjZSIsImNvbmNhdCIsInBvcCIsInNlYXJjaCIsImUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js\n"));
+eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseStack\", ({\n enumerable: true,\n get: function() {\n return parseStack;\n }\n}));\nconst _stacktraceparser = __webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");\nconst regexNextStatic = /\\/_next(\\/static\\/.+)/;\nfunction parseStack(stack) {\n const frames = (0, _stacktraceparser.parse)(stack);\n return frames.map((frame)=>{\n try {\n const url = new URL(frame.file);\n const res = regexNextStatic.exec(url.pathname);\n if (res) {\n var _process_env___NEXT_DIST_DIR_replace, _process_env___NEXT_DIST_DIR;\n const distDir = (_process_env___NEXT_DIST_DIR = \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\.next\") == null ? void 0 : (_process_env___NEXT_DIST_DIR_replace = _process_env___NEXT_DIST_DIR.replace(/\\\\/g, \"/\")) == null ? void 0 : _process_env___NEXT_DIST_DIR_replace.replace(/\\/$/, \"\");\n if (distDir) {\n frame.file = \"file://\" + distDir.concat(res.pop()) + url.search;\n }\n }\n } catch (e) {}\n return frame;\n });\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=parseStack.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcGFyc2VTdGFjay5qcyIsIm1hcHBpbmdzIjoiOzs7OzhDQUtnQkE7OztlQUFBQTs7OzhDQUxNO0FBR3RCLE1BQU1DLGtCQUFrQjtBQUVqQixTQUFTRCxXQUFXRSxLQUFhO0lBQ3RDLE1BQU1DLFNBQVNDLENBQUFBLEdBQUFBLGtCQUFBQSxLQUFLLEVBQUNGO0lBQ3JCLE9BQU9DLE9BQU9FLEdBQUcsQ0FBQyxDQUFDQztRQUNqQixJQUFJO1lBQ0YsTUFBTUMsTUFBTSxJQUFJQyxJQUFJRixNQUFNRyxJQUFJO1lBQzlCLE1BQU1DLE1BQU1ULGdCQUFnQlUsSUFBSSxDQUFDSixJQUFJSyxRQUFRO1lBQzdDLElBQUlGLEtBQUs7b0JBQ1NHLHNDQUFBQTtnQkFBaEIsTUFBTUMsVUFBQUEsQ0FBVUQsK0JBQUFBLHNFQUEyQixzQkFBM0JBLHVDQUFBQSw2QkFDWkksT0FBTyxDQUFDLE9BQU8seUJBREhKLHFDQUVaSSxPQUFPLENBQUMsT0FBTztnQkFDbkIsSUFBSUgsU0FBUztvQkFDWFIsTUFBTUcsSUFBSSxHQUFHLFlBQVlLLFFBQVFJLE1BQU0sQ0FBQ1IsSUFBSVMsR0FBRyxNQUFPWixJQUFJYSxNQUFNO2dCQUNsRTtZQUNGO1FBQ0YsRUFBRSxPQUFBQyxHQUFNLENBQUM7UUFDVCxPQUFPZjtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL3BhcnNlU3RhY2sudHM/YWQwMyJdLCJuYW1lcyI6WyJwYXJzZVN0YWNrIiwicmVnZXhOZXh0U3RhdGljIiwic3RhY2siLCJmcmFtZXMiLCJwYXJzZSIsIm1hcCIsImZyYW1lIiwidXJsIiwiVVJMIiwiZmlsZSIsInJlcyIsImV4ZWMiLCJwYXRobmFtZSIsInByb2Nlc3MiLCJkaXN0RGlyIiwiZW52IiwiX19ORVhUX0RJU1RfRElSIiwicmVwbGFjZSIsImNvbmNhdCIsInBvcCIsInNlYXJjaCIsImUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js\n"));
/***/ }),
@@ -1911,7 +1911,7 @@ eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webp
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: function() { return /* binding */ _interop_require_default; },\n/* harmony export */ _interop_require_default: function() { return /* binding */ _interop_require_default; }\n/* harmony export */ });\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTztBQUNQLDJDQUEyQztBQUMzQztBQUN5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanM/NWUwOCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuZXhwb3J0IHsgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IGFzIF8gfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_interop_require_default.js\n"));
+eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: function() { return /* binding */ _interop_require_default; },\n/* harmony export */ _interop_require_default: function() { return /* binding */ _interop_require_default; }\n/* harmony export */ });\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTztBQUNQLDJDQUEyQztBQUMzQztBQUN5QyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanM/MjM5NSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9O1xufVxuZXhwb3J0IHsgX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0IGFzIF8gfTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_interop_require_default.js\n"));
/***/ }),
@@ -1922,7 +1922,7 @@ eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* har
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: function() { return /* binding */ _interop_require_wildcard; },\n/* harmony export */ _interop_require_wildcard: function() { return /* binding */ _interop_require_wildcard; }\n/* harmony export */ });\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDTztBQUNQO0FBQ0EsdUZBQXVGOztBQUV2Rjs7QUFFQTs7QUFFQSxtQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUMwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzPzJjNDQiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuXG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5leHBvcnQgZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHJldHVybiBvYmo7XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHsgZGVmYXVsdDogb2JqIH07XG5cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuXG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG5cbiAgICB2YXIgbmV3T2JqID0geyBfX3Byb3RvX186IG51bGwgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIGVsc2UgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuXG4gICAgaWYgKGNhY2hlKSBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuXG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmV4cG9ydCB7IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgYXMgXyB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\n"));
+eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: function() { return /* binding */ _interop_require_wildcard; },\n/* harmony export */ _interop_require_wildcard: function() { return /* binding */ _interop_require_wildcard; }\n/* harmony export */ });\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDTztBQUNQO0FBQ0EsdUZBQXVGOztBQUV2Rjs7QUFFQTs7QUFFQSxtQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUMwQyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzP2RhMzciXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuXG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5leHBvcnQgZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHJldHVybiBvYmo7XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHsgZGVmYXVsdDogb2JqIH07XG5cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuXG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG5cbiAgICB2YXIgbmV3T2JqID0geyBfX3Byb3RvX186IG51bGwgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIGVsc2UgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuXG4gICAgaWYgKGNhY2hlKSBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuXG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmV4cG9ydCB7IF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQgYXMgXyB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\n"));
/***/ }),
@@ -1933,7 +1933,7 @@ eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* har
/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: function() { return /* binding */ _tagged_template_literal_loose; },\n/* harmony export */ _tagged_template_literal_loose: function() { return /* binding */ _tagged_template_literal_loose; }\n/* harmony export */ });\nfunction _tagged_template_literal_loose(strings, raw) {\n if (!raw) raw = strings.slice(0);\n\n strings.raw = raw;\n\n return strings;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTztBQUNQOztBQUVBOztBQUVBO0FBQ0E7QUFDK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9lc20vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlLmpzPzY5MzQiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZShzdHJpbmdzLCByYXcpIHtcbiAgICBpZiAoIXJhdykgcmF3ID0gc3RyaW5ncy5zbGljZSgwKTtcblxuICAgIHN0cmluZ3MucmF3ID0gcmF3O1xuXG4gICAgcmV0dXJuIHN0cmluZ3M7XG59XG5leHBvcnQgeyBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgYXMgXyB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\n"));
+eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: function() { return /* binding */ _tagged_template_literal_loose; },\n/* harmony export */ _tagged_template_literal_loose: function() { return /* binding */ _tagged_template_literal_loose; }\n/* harmony export */ });\nfunction _tagged_template_literal_loose(strings, raw) {\n if (!raw) raw = strings.slice(0);\n\n strings.raw = raw;\n\n return strings;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTztBQUNQOztBQUVBOztBQUVBO0FBQ0E7QUFDK0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9lc20vX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlLmpzP2I0OWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIF90YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZShzdHJpbmdzLCByYXcpIHtcbiAgICBpZiAoIXJhdykgcmF3ID0gc3RyaW5ncy5zbGljZSgwKTtcblxuICAgIHN0cmluZ3MucmF3ID0gcmF3O1xuXG4gICAgcmV0dXJuIHN0cmluZ3M7XG59XG5leHBvcnQgeyBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UgYXMgXyB9O1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\n"));
/***/ })
diff --git a/.next/static/chunks/pages/_app.js b/.next/static/chunks/pages/_app.js
index 5d07c963e..9ec9370ff 100644
--- a/.next/static/chunks/pages/_app.js
+++ b/.next/static/chunks/pages/_app.js
@@ -26,7 +26,7 @@ eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* har
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_index_js_ruleSet_1_rules_6_oneOf_14_use_1_node_modules_next_dist_build_webpack_loaders_postcss_loader_src_index_js_ruleSet_1_rules_6_oneOf_14_use_2_node_modules_leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! -!../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[1]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[2]!../node_modules/leaflet/dist/leaflet.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[2]!./node_modules/leaflet/dist/leaflet.css\");\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n___CSS_LOADER_EXPORT___.i(_node_modules_next_dist_build_webpack_loaders_css_loader_src_index_js_ruleSet_1_rules_6_oneOf_14_use_1_node_modules_next_dist_build_webpack_loaders_postcss_loader_src_index_js_ruleSet_1_rules_6_oneOf_14_use_2_node_modules_leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com\\n*//*\\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\\n*/\\n\\n*,\\n::before,\\n::after {\\n box-sizing: border-box; /* 1 */\\n border-width: 0; /* 2 */\\n border-style: solid; /* 2 */\\n border-color: #e5e7eb; /* 2 */\\n}\\n\\n::before,\\n::after {\\n --tw-content: '';\\n}\\n\\n/*\\n1. Use a consistent sensible line-height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n3. Use a more readable tab size.\\n4. Use the user's configured `sans` font-family by default.\\n5. Use the user's configured `sans` font-feature-settings by default.\\n6. Use the user's configured `sans` font-variation-settings by default.\\n7. Disable tap highlights on iOS\\n*/\\n\\nhtml,\\n:host {\\n line-height: 1.5; /* 1 */\\n -webkit-text-size-adjust: 100%; /* 2 */\\n -moz-tab-size: 4; /* 3 */\\n -o-tab-size: 4;\\n tab-size: 4; /* 3 */\\n font-family: ui-sans-serif, system-ui, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\"; /* 4 */\\n font-feature-settings: normal; /* 5 */\\n font-variation-settings: normal; /* 6 */\\n -webkit-tap-highlight-color: transparent; /* 7 */\\n}\\n\\n/*\\n1. Remove the margin in all browsers.\\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\\n*/\\n\\nbody {\\n margin: 0; /* 1 */\\n line-height: inherit; /* 2 */\\n}\\n\\n/*\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n3. Ensure horizontal rules are visible by default.\\n*/\\n\\nhr {\\n height: 0; /* 1 */\\n color: inherit; /* 2 */\\n border-top-width: 1px; /* 3 */\\n}\\n\\n/*\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\n\\nabbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n}\\n\\n/*\\nRemove the default font size and weight for headings.\\n*/\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n\\n/*\\nReset links to optimize for opt-in styling instead of opt-out.\\n*/\\n\\na {\\n color: inherit;\\n text-decoration: inherit;\\n}\\n\\n/*\\nAdd the correct font weight in Edge and Safari.\\n*/\\n\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n\\n/*\\n1. Use the user's configured `mono` font-family by default.\\n2. Use the user's configured `mono` font-feature-settings by default.\\n3. Use the user's configured `mono` font-variation-settings by default.\\n4. Correct the odd `em` font sizing in all browsers.\\n*/\\n\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace; /* 1 */\\n font-feature-settings: normal; /* 2 */\\n font-variation-settings: normal; /* 3 */\\n font-size: 1em; /* 4 */\\n}\\n\\n/*\\nAdd the correct font size in all browsers.\\n*/\\n\\nsmall {\\n font-size: 80%;\\n}\\n\\n/*\\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\\n*/\\n\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\n\\nsub {\\n bottom: -0.25em;\\n}\\n\\nsup {\\n top: -0.5em;\\n}\\n\\n/*\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n3. Remove gaps between table borders by default.\\n*/\\n\\ntable {\\n text-indent: 0; /* 1 */\\n border-color: inherit; /* 2 */\\n border-collapse: collapse; /* 3 */\\n}\\n\\n/*\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n3. Remove default padding in all browsers.\\n*/\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n font-family: inherit; /* 1 */\\n font-feature-settings: inherit; /* 1 */\\n font-variation-settings: inherit; /* 1 */\\n font-size: 100%; /* 1 */\\n font-weight: inherit; /* 1 */\\n line-height: inherit; /* 1 */\\n letter-spacing: inherit; /* 1 */\\n color: inherit; /* 1 */\\n margin: 0; /* 2 */\\n padding: 0; /* 3 */\\n}\\n\\n/*\\nRemove the inheritance of text transform in Edge and Firefox.\\n*/\\n\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Remove default button styles.\\n*/\\n\\nbutton,\\ninput:where([type='button']),\\ninput:where([type='reset']),\\ninput:where([type='submit']) {\\n -webkit-appearance: button; /* 1 */\\n background-color: transparent; /* 2 */\\n background-image: none; /* 2 */\\n}\\n\\n/*\\nUse the modern Firefox focus style for all focusable elements.\\n*/\\n\\n:-moz-focusring {\\n outline: auto;\\n}\\n\\n/*\\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\\n*/\\n\\n:-moz-ui-invalid {\\n box-shadow: none;\\n}\\n\\n/*\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\n\\nprogress {\\n vertical-align: baseline;\\n}\\n\\n/*\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n/*\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n\\n[type='search'] {\\n -webkit-appearance: textfield; /* 1 */\\n outline-offset: -2px; /* 2 */\\n}\\n\\n/*\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n\\n::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to `inherit` in Safari.\\n*/\\n\\n::-webkit-file-upload-button {\\n -webkit-appearance: button; /* 1 */\\n font: inherit; /* 2 */\\n}\\n\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\n\\nsummary {\\n display: list-item;\\n}\\n\\n/*\\nRemoves the default spacing and border for appropriate elements.\\n*/\\n\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\n\\nfieldset {\\n margin: 0;\\n padding: 0;\\n}\\n\\nlegend {\\n padding: 0;\\n}\\n\\nol,\\nul,\\nmenu {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/*\\nReset default styling for dialogs.\\n*/\\ndialog {\\n padding: 0;\\n}\\n\\n/*\\nPrevent resizing textareas horizontally by default.\\n*/\\n\\ntextarea {\\n resize: vertical;\\n}\\n\\n/*\\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\\n2. Set the default placeholder color to the user's configured gray 400 color.\\n*/\\n\\ninput::-moz-placeholder, textarea::-moz-placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\ninput::placeholder,\\ntextarea::placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\n/*\\nSet the default cursor for buttons.\\n*/\\n\\nbutton,\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n\\n/*\\nMake sure disabled buttons don't get the pointer cursor.\\n*/\\n:disabled {\\n cursor: default;\\n}\\n\\n/*\\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\\n This can trigger a poorly considered lint error in some tools but is included by design.\\n*/\\n\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block; /* 1 */\\n vertical-align: middle; /* 2 */\\n}\\n\\n/*\\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\\n*/\\n\\nimg,\\nvideo {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n/* Make elements with the HTML hidden attribute stay hidden by default */\\n[hidden] {\\n display: none;\\n}\\n\\n*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\r\\n.container {\\n width: 100%;\\n}\\r\\n@media (min-width: 640px) {\\n\\n .container {\\n max-width: 640px;\\n }\\n}\\r\\n@media (min-width: 768px) {\\n\\n .container {\\n max-width: 768px;\\n }\\n}\\r\\n@media (min-width: 1024px) {\\n\\n .container {\\n max-width: 1024px;\\n }\\n}\\r\\n@media (min-width: 1280px) {\\n\\n .container {\\n max-width: 1280px;\\n }\\n}\\r\\n@media (min-width: 1536px) {\\n\\n .container {\\n max-width: 1536px;\\n }\\n}\\r\\n.m-0 {\\n margin: 0px;\\n}\\r\\n.mx-auto {\\n margin-left: auto;\\n margin-right: auto;\\n}\\r\\n.mb-4 {\\n margin-bottom: 1rem;\\n}\\r\\n.mr-2 {\\n margin-right: 0.5rem;\\n}\\r\\n.mr-3 {\\n margin-right: 0.75rem;\\n}\\r\\n.block {\\n display: block;\\n}\\r\\n.flex {\\n display: flex;\\n}\\r\\n.hidden {\\n display: none;\\n}\\r\\n.h-screen {\\n height: 100vh;\\n}\\r\\n.w-full {\\n width: 100%;\\n}\\r\\n.flex-none {\\n flex: none;\\n}\\r\\n.flex-grow {\\n flex-grow: 1;\\n}\\r\\n.items-center {\\n align-items: center;\\n}\\r\\n.rounded {\\n border-radius: 0.25rem;\\n}\\r\\n.rounded-md {\\n border-radius: 0.375rem;\\n}\\r\\n.border-2 {\\n border-width: 2px;\\n}\\r\\n.border-gray-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(229 231 235 / var(--tw-border-opacity));\\n}\\r\\n.bg-blue-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\\n}\\r\\n.p-2 {\\n padding: 0.5rem;\\n}\\r\\n.p-4 {\\n padding: 1rem;\\n}\\r\\n.px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem;\\n}\\r\\n.py-2 {\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n}\\r\\n.text-sm {\\n font-size: 0.875rem;\\n line-height: 1.25rem;\\n}\\r\\n.text-xl {\\n font-size: 1.25rem;\\n line-height: 1.75rem;\\n}\\r\\n.font-bold {\\n font-weight: 700;\\n}\\r\\n.text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity));\\n}\\r\\n.hover\\\\:bg-blue-700:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 78 216 / var(--tw-bg-opacity));\\n}\\r\\n\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/global.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@tailwind base;\\r\\n@tailwind components;\\r\\n@tailwind utilities;\\r\\n@import 'leaflet/dist/leaflet.css';\\r\\n\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s2XS5vbmVPZlsxNF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzZdLm9uZU9mWzE0XS51c2VbMl0hLi9zdHlsZXMvZ2xvYmFsLmNzcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDd0g7QUFDbU07QUFDM1QsOEJBQThCLGtIQUEyQjtBQUN6RCwwQkFBMEIsOFJBQWlDO0FBQzNEO0FBQ0EsMFhBQTBYLDRCQUE0Qiw0QkFBNEIsZ0NBQWdDLGtDQUFrQyxVQUFVLHdCQUF3QixxQkFBcUIsR0FBRywrYUFBK2Esc0JBQXNCLDJDQUEyQyw2QkFBNkIsMEJBQTBCLG9CQUFvQixvSkFBb0osMENBQTBDLDRDQUE0QyxxREFBcUQsVUFBVSxnS0FBZ0ssZUFBZSxpQ0FBaUMsVUFBVSwyTkFBMk4sZUFBZSwyQkFBMkIsa0NBQWtDLFVBQVUsaUdBQWlHLDhDQUE4Qyw4Q0FBOEMsR0FBRyxrR0FBa0csdUJBQXVCLHlCQUF5QixHQUFHLGlGQUFpRixtQkFBbUIsNkJBQTZCLEdBQUcsMkVBQTJFLHdCQUF3QixHQUFHLDBTQUEwUyx5SEFBeUgsMENBQTBDLDRDQUE0QywyQkFBMkIsVUFBVSxpRUFBaUUsbUJBQW1CLEdBQUcsMkdBQTJHLG1CQUFtQixtQkFBbUIsdUJBQXVCLDZCQUE2QixHQUFHLFNBQVMsb0JBQW9CLEdBQUcsU0FBUyxnQkFBZ0IsR0FBRyxnYkFBZ2Isb0JBQW9CLGtDQUFrQyxzQ0FBc0MsVUFBVSxrTUFBa00sMEJBQTBCLDJDQUEyQyw2Q0FBNkMsNEJBQTRCLGlDQUFpQyxpQ0FBaUMsb0NBQW9DLDJCQUEyQixzQkFBc0IsdUJBQXVCLFVBQVUsOEZBQThGLHlCQUF5QixHQUFH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QUFNLFVBQVUsTUFBTSxPQUFPLE1BQU0sS0FBSyxxQkFBcUIscUJBQXFCLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxNQUFNLE9BQU8sTUFBTSxLQUFLLHFCQUFxQixvQkFBb0IsTUFBTSxNQUFNLE1BQU0sS0FBSyxXQUFXLE1BQU0sTUFBTSxNQUFNLGlCQUFpQixVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxPQUFPLFdBQVcsVUFBVSxVQUFVLE1BQU0sTUFBTSxLQUFLLEtBQUssVUFBVSxNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsTUFBTSxPQUFPLE1BQU0sS0FBSyxvQkFBb0Isb0JBQW9CLE1BQU0sTUFBTSxvQkFBb0Isb0JBQW9CLE1BQU0sTUFBTSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sS0FBSyxLQUFLLFVBQVUsTUFBTSxRQUFRLE1BQU0sWUFBWSxvQkFBb0IscUJBQXFCLE1BQU0sTUFBTSxNQUFNLE1BQU0sVUFBVSxVQUFVLE1BQU0sV0FBVyxLQUFLLFVBQVUsTUFBTSxLQUFLLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLE1BQU0sS0FBSyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsS0FBSyxLQUFLLEtBQUssS0FBSyxNQUFNLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sV0FBVyxLQUFLLHdDQUF3Qyx5QkFBeUIsd0JBQXdCLHVDQUF1QywyQkFBMkI7QUFDNXNoQjtBQUNBLCtEQUFlLHVCQUF1QixFQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3N0eWxlcy9nbG9iYWwuY3NzPzFlMzUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvcnVudGltZS9hcGkuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FUX1JVTEVfSU1QT1JUXzBfX18gZnJvbSBcIi0hLi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvY3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbNl0ub25lT2ZbMTRdLnVzZVsxXSEuLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbNl0ub25lT2ZbMTRdLnVzZVsyXSEuLi9ub2RlX21vZHVsZXMvbGVhZmxldC9kaXN0L2xlYWZsZXQuY3NzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18odHJ1ZSk7XG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5pKF9fX0NTU19MT0FERVJfQVRfUlVMRV9JTVBPUlRfMF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKlxcbiEgdGFpbHdpbmRjc3MgdjMuNC4zIHwgTUlUIExpY2Vuc2UgfCBodHRwczovL3RhaWx3aW5kY3NzLmNvbVxcbiovLypcXG4xLiBQcmV2ZW50IHBhZGRpbmcgYW5kIGJvcmRlciBmcm9tIGFmZmVjdGluZyBlbGVtZW50IHdpZHRoLiAoaHR0cHM6Ly9naXRodWIuY29tL21vemRldnMvY3NzcmVtZWR5L2lzc3Vlcy80KVxcbjIuIEFsbG93IGFkZGluZyBhIGJvcmRlciB0byBhbiBlbGVtZW50IGJ5IGp1c3QgYWRkaW5nIGEgYm9yZGVyLXdpZHRoLiAoaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kY3NzL3RhaWx3aW5kY3NzL3B1bGwvMTE2KVxcbiovXFxuXFxuKixcXG46OmJlZm9yZSxcXG46OmFmdGVyIHtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cXG4gIGJvcmRlci13aWR0aDogMDsgLyogMiAqL1xcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsgLyogMiAqL1xcbiAgYm9yZGVyLWNvbG9yOiAjZTVlN2ViOyAvKiAyICovXFxufVxcblxcbjo6YmVmb3JlLFxcbjo6YWZ0ZXIge1xcbiAgLS10dy1jb250ZW50OiAnJztcXG59XFxuXFxuLypcXG4xLiBVc2UgYSBjb25zaXN0ZW50IHNlbnNpYmxlIGxpbmUtaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cXG4yLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cXG4zLiBVc2UgYSBtb3JlIHJlYWRhYmxlIHRhYiBzaXplLlxcbjQuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYHNhbnNgIGZvbnQtZmFtaWx5IGJ5IGRlZmF1bHQuXFxuNS4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgc2Fuc2AgZm9udC1mZWF0dXJlLXNldHRpbmdzIGJ5IGRlZmF1bHQuXFxuNi4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgc2Fuc2AgZm9udC12YXJpYXRpb24tc2V0dGluZ3MgYnkgZGVmYXVsdC5cXG43LiBEaXNhYmxlIHRhcCBoaWdobGlnaHRzIG9uIGlPU1xcbiovXFxuXFxuaHRtbCxcXG46aG9zdCB7XFxuICBsaW5lLWhlaWdodDogMS41OyAvKiAxICovXFxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cXG4gIC1tb3otdGFiLXNpemU6IDQ7IC8qIDMgKi9cXG4gIC1vLXRhYi1zaXplOiA0O1xcbiAgICAgdGFiLXNpemU6IDQ7IC8qIDMgKi9cXG4gIGZvbnQtZmFtaWx5OiB1aS1zYW5zLXNlcmlmLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWYsIFxcXCJBcHBsZSBDb2xvciBFbW9qaVxcXCIsIFxcXCJTZWdvZSBVSSBFbW9qaVxcXCIsIFxcXCJTZWdvZSBVSSBTeW1ib2xcXFwiLCBcXFwiTm90byBDb2xvciBFbW9qaVxcXCI7IC8qIDQgKi9cXG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsOyAvKiA1ICovXFxuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogbm9ybWFsOyAvKiA2ICovXFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiA3ICovXFxufVxcblxcbi8qXFxuMS4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxcbjIuIEluaGVyaXQgbGluZS1oZWlnaHQgZnJvbSBgaHRtbGAgc28gdXNlcnMgY2FuIHNldCB0aGVtIGFzIGEgY2xhc3MgZGlyZWN0bHkgb24gdGhlIGBodG1sYCBlbGVtZW50LlxcbiovXFxuXFxuYm9keSB7XFxuICBtYXJnaW46IDA7IC8qIDEgKi9cXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyAvKiAyICovXFxufVxcblxcbi8qXFxuMS4gQWRkIHRoZSBjb3JyZWN0IGhlaWdodCBpbiBGaXJlZm94LlxcbjIuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIG9mIGJvcmRlciBjb2xvciBpbiBGaXJlZm94LiAoaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNjU1KVxcbjMuIEVuc3VyZSBob3Jpem9udGFsIHJ1bGVzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQuXFxuKi9cXG5cXG5ociB7XFxuICBoZWlnaHQ6IDA7IC8qIDEgKi9cXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXFxuICBib3JkZXItdG9wLXdpZHRoOiAxcHg7IC8qIDMgKi9cXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cXG4qL1xcblxcbmFiYnI6d2hlcmUoW3RpdGxlXSkge1xcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG59XFxuXFxuLypcXG5SZW1vdmUgdGhlIGRlZmF1bHQgZm9udCBzaXplIGFuZCB3ZWlnaHQgZm9yIGhlYWRpbmdzLlxcbiovXFxuXFxuaDEsXFxuaDIsXFxuaDMsXFxuaDQsXFxuaDUsXFxuaDYge1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XFxufVxcblxcbi8qXFxuUmVzZXQgbGlua3MgdG8gb3B0aW1pemUgZm9yIG9wdC1pbiBzdHlsaW5nIGluc3RlYWQgb2Ygb3B0LW91dC5cXG4qL1xcblxcbmEge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIEVkZ2UgYW5kIFNhZmFyaS5cXG4qL1xcblxcbmIsXFxuc3Ryb25nIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XFxufVxcblxcbi8qXFxuMS4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgbW9ub2AgZm9udC1mYW1pbHkgYnkgZGVmYXVsdC5cXG4yLiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBtb25vYCBmb250LWZlYXR1cmUtc2V0dGluZ3MgYnkgZGVmYXVsdC5cXG4zLiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBtb25vYCBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBieSBkZWZhdWx0LlxcbjQuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cXG4qL1xcblxcbmNvZGUsXFxua2JkLFxcbnNhbXAsXFxucHJlIHtcXG4gIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXFxcIkxpYmVyYXRpb24gTW9ub1xcXCIsIFxcXCJDb3VyaWVyIE5ld1xcXCIsIG1vbm9zcGFjZTsgLyogMSAqL1xcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7IC8qIDIgKi9cXG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7IC8qIDMgKi9cXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiA0ICovXFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXFxuKi9cXG5cXG5zbWFsbCB7XFxuICBmb250LXNpemU6IDgwJTtcXG59XFxuXFxuLypcXG5QcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxcbiovXFxuXFxuc3ViLFxcbnN1cCB7XFxuICBmb250LXNpemU6IDc1JTtcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbn1cXG5cXG5zdWIge1xcbiAgYm90dG9tOiAtMC4yNWVtO1xcbn1cXG5cXG5zdXAge1xcbiAgdG9wOiAtMC41ZW07XFxufVxcblxcbi8qXFxuMS4gUmVtb3ZlIHRleHQgaW5kZW50YXRpb24gZnJvbSB0YWJsZSBjb250ZW50cyBpbiBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTk5OTA4OCwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTI5NylcXG4yLiBDb3JyZWN0IHRhYmxlIGJvcmRlciBjb2xvciBpbmhlcml0YW5jZSBpbiBhbGwgQ2hyb21lIGFuZCBTYWZhcmkuIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD05MzU3MjksIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTUwMTYpXFxuMy4gUmVtb3ZlIGdhcHMgYmV0d2VlbiB0YWJsZSBib3JkZXJzIGJ5IGRlZmF1bHQuXFxuKi9cXG5cXG50YWJsZSB7XFxuICB0ZXh0LWluZGVudDogMDsgLyogMSAqL1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0OyAvKiAyICovXFxuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvKiAzICovXFxufVxcblxcbi8qXFxuMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXFxuMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxcbjMuIFJlbW92ZSBkZWZhdWx0IHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzLlxcbiovXFxuXFxuYnV0dG9uLFxcbmlucHV0LFxcbm9wdGdyb3VwLFxcbnNlbGVjdCxcXG50ZXh0YXJlYSB7XFxuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBpbmhlcml0OyAvKiAxICovXFxuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogaW5oZXJpdDsgLyogMSAqL1xcbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXFxuICBmb250LXdlaWdodDogaW5oZXJpdDsgLyogMSAqL1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0OyAvKiAxICovXFxuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xcbiAgbWFyZ2luOiAwOyAvKiAyICovXFxuICBwYWRkaW5nOiAwOyAvKiAzICovXFxufVxcblxcbi8qXFxuUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlIGFuZCBGaXJlZm94LlxcbiovXFxuXFxuYnV0dG9uLFxcbnNlbGVjdCB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG59XFxuXFxuLypcXG4xLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxcbjIuIFJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBzdHlsZXMuXFxuKi9cXG5cXG5idXR0b24sXFxuaW5wdXQ6d2hlcmUoW3R5cGU9J2J1dHRvbiddKSxcXG5pbnB1dDp3aGVyZShbdHlwZT0ncmVzZXQnXSksXFxuaW5wdXQ6d2hlcmUoW3R5cGU9J3N1Ym1pdCddKSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDIgKi9cXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5Vc2UgdGhlIG1vZGVybiBGaXJlZm94IGZvY3VzIHN0eWxlIGZvciBhbGwgZm9jdXNhYmxlIGVsZW1lbnRzLlxcbiovXFxuXFxuOi1tb3otZm9jdXNyaW5nIHtcXG4gIG91dGxpbmU6IGF1dG87XFxufVxcblxcbi8qXFxuUmVtb3ZlIHRoZSBhZGRpdGlvbmFsIGA6aW52YWxpZGAgc3R5bGVzIGluIEZpcmVmb3guIChodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrby1kZXYvYmxvYi8yZjllYWNkOWQzZDk5NWM5MzdiNDI1MWE1NTU3ZDk1ZDQ5NGM5YmUxL2xheW91dC9zdHlsZS9yZXMvZm9ybXMuY3NzI0w3MjgtTDczNylcXG4qL1xcblxcbjotbW96LXVpLWludmFsaWQge1xcbiAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSBhbmQgRmlyZWZveC5cXG4qL1xcblxcbnByb2dyZXNzIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcXG59XFxuXFxuLypcXG5Db3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXFxuKi9cXG5cXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXFxuOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuXFxuLypcXG4xLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cXG4yLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cXG4qL1xcblxcblt0eXBlPSdzZWFyY2gnXSB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5SZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXFxuKi9cXG5cXG46Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG5cXG4vKlxcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXFxuMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxcbiovXFxuXFxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xcbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xcbn1cXG5cXG4vKlxcbkFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIENocm9tZSBhbmQgU2FmYXJpLlxcbiovXFxuXFxuc3VtbWFyeSB7XFxuICBkaXNwbGF5OiBsaXN0LWl0ZW07XFxufVxcblxcbi8qXFxuUmVtb3ZlcyB0aGUgZGVmYXVsdCBzcGFjaW5nIGFuZCBib3JkZXIgZm9yIGFwcHJvcHJpYXRlIGVsZW1lbnRzLlxcbiovXFxuXFxuYmxvY2txdW90ZSxcXG5kbCxcXG5kZCxcXG5oMSxcXG5oMixcXG5oMyxcXG5oNCxcXG5oNSxcXG5oNixcXG5ocixcXG5maWd1cmUsXFxucCxcXG5wcmUge1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5cXG5maWVsZHNldCB7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5cXG5sZWdlbmQge1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxub2wsXFxudWwsXFxubWVudSB7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLypcXG5SZXNldCBkZWZhdWx0IHN0eWxpbmcgZm9yIGRpYWxvZ3MuXFxuKi9cXG5kaWFsb2cge1xcbiAgcGFkZGluZzogMDtcXG59XFxuXFxuLypcXG5QcmV2ZW50IHJlc2l6aW5nIHRleHRhcmVhcyBob3Jpem9udGFsbHkgYnkgZGVmYXVsdC5cXG4qL1xcblxcbnRleHRhcmVhIHtcXG4gIHJlc2l6ZTogdmVydGljYWw7XFxufVxcblxcbi8qXFxuMS4gUmVzZXQgdGhlIGRlZmF1bHQgcGxhY2Vob2xkZXIgb3BhY2l0eSBpbiBGaXJlZm94LiAoaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kbGFicy90YWlsd2luZGNzcy9pc3N1ZXMvMzMwMClcXG4yLiBTZXQgdGhlIGRlZmF1bHQgcGxhY2Vob2xkZXIgY29sb3IgdG8gdGhlIHVzZXIncyBjb25maWd1cmVkIGdyYXkgNDAwIGNvbG9yLlxcbiovXFxuXFxuaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsIHRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIG9wYWNpdHk6IDE7IC8qIDEgKi9cXG4gIGNvbG9yOiAjOWNhM2FmOyAvKiAyICovXFxufVxcblxcbmlucHV0OjpwbGFjZWhvbGRlcixcXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xcbiAgb3BhY2l0eTogMTsgLyogMSAqL1xcbiAgY29sb3I6ICM5Y2EzYWY7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5TZXQgdGhlIGRlZmF1bHQgY3Vyc29yIGZvciBidXR0b25zLlxcbiovXFxuXFxuYnV0dG9uLFxcbltyb2xlPVxcXCJidXR0b25cXFwiXSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi8qXFxuTWFrZSBzdXJlIGRpc2FibGVkIGJ1dHRvbnMgZG9uJ3QgZ2V0IHRoZSBwb2ludGVyIGN1cnNvci5cXG4qL1xcbjpkaXNhYmxlZCB7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcblxcbi8qXFxuMS4gTWFrZSByZXBsYWNlZCBlbGVtZW50cyBgZGlzcGxheTogYmxvY2tgIGJ5IGRlZmF1bHQuIChodHRwczovL2dpdGh1Yi5jb20vbW96ZGV2cy9jc3NyZW1lZHkvaXNzdWVzLzE0KVxcbjIuIEFkZCBgdmVydGljYWwtYWxpZ246IG1pZGRsZWAgdG8gYWxpZ24gcmVwbGFjZWQgZWxlbWVudHMgbW9yZSBzZW5zaWJseSBieSBkZWZhdWx0LiAoaHR0cHM6Ly9naXRodWIuY29tL2plbnNpbW1vbnMvY3NzcmVtZWR5L2lzc3Vlcy8xNCNpc3N1ZWNvbW1lbnQtNjM0OTM0MjEwKVxcbiAgIFRoaXMgY2FuIHRyaWdnZXIgYSBwb29ybHkgY29uc2lkZXJlZCBsaW50IGVycm9yIGluIHNvbWUgdG9vbHMgYnV0IGlzIGluY2x1ZGVkIGJ5IGRlc2lnbi5cXG4qL1xcblxcbmltZyxcXG5zdmcsXFxudmlkZW8sXFxuY2FudmFzLFxcbmF1ZGlvLFxcbmlmcmFtZSxcXG5lbWJlZCxcXG5vYmplY3Qge1xcbiAgZGlzcGxheTogYmxvY2s7IC8qIDEgKi9cXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIDIgKi9cXG59XFxuXFxuLypcXG5Db25zdHJhaW4gaW1hZ2VzIGFuZCB2aWRlb3MgdG8gdGhlIHBhcmVudCB3aWR0aCBhbmQgcHJlc2VydmUgdGhlaXIgaW50cmluc2ljIGFzcGVjdCByYXRpby4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTQpXFxuKi9cXG5cXG5pbWcsXFxudmlkZW8ge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5cXG4vKiBNYWtlIGVsZW1lbnRzIHdpdGggdGhlIEhUTUwgaGlkZGVuIGF0dHJpYnV0ZSBzdGF5IGhpZGRlbiBieSBkZWZhdWx0ICovXFxuW2hpZGRlbl0ge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuXFxuKiwgOjpiZWZvcmUsIDo6YWZ0ZXIge1xcbiAgLS10dy1ib3JkZXItc3BhY2luZy14OiAwO1xcbiAgLS10dy1ib3JkZXItc3BhY2luZy15OiAwO1xcbiAgLS10dy10cmFuc2xhdGUteDogMDtcXG4gIC0tdHctdHJhbnNsYXRlLXk6IDA7XFxuICAtLXR3LXJvdGF0ZTogMDtcXG4gIC0tdHctc2tldy14OiAwO1xcbiAgLS10dy1za2V3LXk6IDA7XFxuICAtLXR3LXNjYWxlLXg6IDE7XFxuICAtLXR3LXNjYWxlLXk6IDE7XFxuICAtLXR3LXBhbi14OiAgO1xcbiAgLS10dy1wYW4teTogIDtcXG4gIC0tdHctcGluY2gtem9vbTogIDtcXG4gIC0tdHctc2Nyb2xsLXNuYXAtc3RyaWN0bmVzczogcHJveGltaXR5O1xcbiAgLS10dy1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1ncmFkaWVudC12aWEtcG9zaXRpb246ICA7XFxuICAtLXR3LWdyYWRpZW50LXRvLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1vcmRpbmFsOiAgO1xcbiAgLS10dy1zbGFzaGVkLXplcm86ICA7XFxuICAtLXR3LW51bWVyaWMtZmlndXJlOiAgO1xcbiAgLS10dy1udW1lcmljLXNwYWNpbmc6ICA7XFxuICAtLXR3LW51bWVyaWMtZnJhY3Rpb246ICA7XFxuICAtLXR3LXJpbmctaW5zZXQ6ICA7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXdpZHRoOiAwcHg7XFxuICAtLXR3LXJpbmctb2Zmc2V0LWNvbG9yOiAjZmZmO1xcbiAgLS10dy1yaW5nLWNvbG9yOiByZ2IoNTkgMTMwIDI0NiAvIDAuNSk7XFxuICAtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1yaW5nLXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1zaGFkb3c6IDAgMCAjMDAwMDtcXG4gIC0tdHctc2hhZG93LWNvbG9yZWQ6IDAgMCAjMDAwMDtcXG4gIC0tdHctYmx1cjogIDtcXG4gIC0tdHctYnJpZ2h0bmVzczogIDtcXG4gIC0tdHctY29udHJhc3Q6ICA7XFxuICAtLXR3LWdyYXlzY2FsZTogIDtcXG4gIC0tdHctaHVlLXJvdGF0ZTogIDtcXG4gIC0tdHctaW52ZXJ0OiAgO1xcbiAgLS10dy1zYXR1cmF0ZTogIDtcXG4gIC0tdHctc2VwaWE6ICA7XFxuICAtLXR3LWRyb3Atc2hhZG93OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1ibHVyOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1icmlnaHRuZXNzOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1jb250cmFzdDogIDtcXG4gIC0tdHctYmFja2Ryb3AtZ3JheXNjYWxlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1odWUtcm90YXRlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1pbnZlcnQ6ICA7XFxuICAtLXR3LWJhY2tkcm9wLW9wYWNpdHk6ICA7XFxuICAtLXR3LWJhY2tkcm9wLXNhdHVyYXRlOiAgO1xcbiAgLS10dy1iYWNrZHJvcC1zZXBpYTogIDtcXG4gIC0tdHctY29udGFpbi1zaXplOiAgO1xcbiAgLS10dy1jb250YWluLWxheW91dDogIDtcXG4gIC0tdHctY29udGFpbi1wYWludDogIDtcXG4gIC0tdHctY29udGFpbi1zdHlsZTogIDtcXG59XFxuXFxuOjpiYWNrZHJvcCB7XFxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXg6IDA7XFxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXk6IDA7XFxuICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xcbiAgLS10dy10cmFuc2xhdGUteTogMDtcXG4gIC0tdHctcm90YXRlOiAwO1xcbiAgLS10dy1za2V3LXg6IDA7XFxuICAtLXR3LXNrZXcteTogMDtcXG4gIC0tdHctc2NhbGUteDogMTtcXG4gIC0tdHctc2NhbGUteTogMTtcXG4gIC0tdHctcGFuLXg6ICA7XFxuICAtLXR3LXBhbi15OiAgO1xcbiAgLS10dy1waW5jaC16b29tOiAgO1xcbiAgLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOiBwcm94aW1pdHk7XFxuICAtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246ICA7XFxuICAtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogIDtcXG4gIC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246ICA7XFxuICAtLXR3LW9yZGluYWw6ICA7XFxuICAtLXR3LXNsYXNoZWQtemVybzogIDtcXG4gIC0tdHctbnVtZXJpYy1maWd1cmU6ICA7XFxuICAtLXR3LW51bWVyaWMtc3BhY2luZzogIDtcXG4gIC0tdHctbnVtZXJpYy1mcmFjdGlvbjogIDtcXG4gIC0tdHctcmluZy1pbnNldDogIDtcXG4gIC0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDtcXG4gIC0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7XFxuICAtLXR3LXJpbmctY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gMC41KTtcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXJpbmctc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwO1xcbiAgLS10dy1ibHVyOiAgO1xcbiAgLS10dy1icmlnaHRuZXNzOiAgO1xcbiAgLS10dy1jb250cmFzdDogIDtcXG4gIC0tdHctZ3JheXNjYWxlOiAgO1xcbiAgLS10dy1odWUtcm90YXRlOiAgO1xcbiAgLS10dy1pbnZlcnQ6ICA7XFxuICAtLXR3LXNhdHVyYXRlOiAgO1xcbiAgLS10dy1zZXBpYTogIDtcXG4gIC0tdHctZHJvcC1zaGFkb3c6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWJsdXI6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWludmVydDogIDtcXG4gIC0tdHctYmFja2Ryb3Atb3BhY2l0eTogIDtcXG4gIC0tdHctYmFja2Ryb3Atc2F0dXJhdGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLXNlcGlhOiAgO1xcbiAgLS10dy1jb250YWluLXNpemU6ICA7XFxuICAtLXR3LWNvbnRhaW4tbGF5b3V0OiAgO1xcbiAgLS10dy1jb250YWluLXBhaW50OiAgO1xcbiAgLS10dy1jb250YWluLXN0eWxlOiAgO1xcbn1cXHJcXG4uY29udGFpbmVyIHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcXG5cXG4gIC5jb250YWluZXIge1xcbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG5cXG4gIC5jb250YWluZXIge1xcbiAgICBtYXgtd2lkdGg6IDc2OHB4O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiAxMDI0cHg7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcXG5cXG4gIC5jb250YWluZXIge1xcbiAgICBtYXgtd2lkdGg6IDEyODBweDtcXG4gIH1cXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDE1MzZweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogMTUzNnB4O1xcbiAgfVxcbn1cXHJcXG4ubS0wIHtcXG4gIG1hcmdpbjogMHB4O1xcbn1cXHJcXG4ubXgtYXV0byB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG59XFxyXFxuLm1iLTQge1xcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcXG59XFxyXFxuLm1yLTIge1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XFxufVxcclxcbi5tci0zIHtcXG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcXG59XFxyXFxuLmJsb2NrIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXHJcXG4uZmxleCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXHJcXG4uaGlkZGVuIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcclxcbi5oLXNjcmVlbiB7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbn1cXHJcXG4udy1mdWxsIHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXHJcXG4uZmxleC1ub25lIHtcXG4gIGZsZXg6IG5vbmU7XFxufVxcclxcbi5mbGV4LWdyb3cge1xcbiAgZmxleC1ncm93OiAxO1xcbn1cXHJcXG4uaXRlbXMtY2VudGVyIHtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcclxcbi5yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XFxufVxcclxcbi5yb3VuZGVkLW1kIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xcbn1cXHJcXG4uYm9yZGVyLTIge1xcbiAgYm9yZGVyLXdpZHRoOiAycHg7XFxufVxcclxcbi5ib3JkZXItZ3JheS0yMDAge1xcbiAgLS10dy1ib3JkZXItb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogcmdiKDIyOSAyMzEgMjM1IC8gdmFyKC0tdHctYm9yZGVyLW9wYWNpdHkpKTtcXG59XFxyXFxuLmJnLWJsdWUtNTAwIHtcXG4gIC0tdHctYmctb3BhY2l0eTogMTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbn1cXHJcXG4ucC0yIHtcXG4gIHBhZGRpbmc6IDAuNXJlbTtcXG59XFxyXFxuLnAtNCB7XFxuICBwYWRkaW5nOiAxcmVtO1xcbn1cXHJcXG4ucHgtNCB7XFxuICBwYWRkaW5nLWxlZnQ6IDFyZW07XFxuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xcbn1cXHJcXG4ucHktMiB7XFxuICBwYWRkaW5nLXRvcDogMC41cmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcXG59XFxyXFxuLnRleHQtc20ge1xcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xcbn1cXHJcXG4udGV4dC14bCB7XFxuICBmb250LXNpemU6IDEuMjVyZW07XFxuICBsaW5lLWhlaWdodDogMS43NXJlbTtcXG59XFxyXFxuLmZvbnQtYm9sZCB7XFxuICBmb250LXdlaWdodDogNzAwO1xcbn1cXHJcXG4udGV4dC13aGl0ZSB7XFxuICAtLXR3LXRleHQtb3BhY2l0eTogMTtcXG4gIGNvbG9yOiByZ2IoMjU1IDI1NSAyNTUgLyB2YXIoLS10dy10ZXh0LW9wYWNpdHkpKTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1ibHVlLTcwMDpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbn1cXHJcXG5cXHJcXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vc3R5bGVzL2dsb2JhbC5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7O0NBQWMsQ0FBZDs7O0NBQWM7O0FBQWQ7OztFQUFBLHNCQUFjLEVBQWQsTUFBYztFQUFkLGVBQWMsRUFBZCxNQUFjO0VBQWQsbUJBQWMsRUFBZCxNQUFjO0VBQWQscUJBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0VBQUEsZ0JBQWM7QUFBQTs7QUFBZDs7Ozs7Ozs7Q0FBYzs7QUFBZDs7RUFBQSxnQkFBYyxFQUFkLE1BQWM7RUFBZCw4QkFBYyxFQUFkLE1BQWM7RUFBZCxnQkFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjO0tBQWQsV0FBYyxFQUFkLE1BQWM7RUFBZCwrSEFBYyxFQUFkLE1BQWM7RUFBZCw2QkFBYyxFQUFkLE1BQWM7RUFBZCwrQkFBYyxFQUFkLE1BQWM7RUFBZCx3Q0FBYyxFQUFkLE1BQWM7QUFBQTs7QUFBZDs7O0NBQWM7O0FBQWQ7RUFBQSxTQUFjLEVBQWQsTUFBYztFQUFkLG9CQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7RUFBQSxTQUFjLEVBQWQsTUFBYztFQUFkLGNBQWMsRUFBZCxNQUFjO0VBQWQscUJBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7RUFBQSx5Q0FBYztVQUFkLGlDQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7Ozs7OztFQUFBLGtCQUFjO0VBQWQsb0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDtFQUFBLGNBQWM7RUFBZCx3QkFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkOztFQUFBLG1CQUFjO0FBQUE7O0FBQWQ7Ozs7O0NBQWM7O0FBQWQ7Ozs7RUFBQSwrR0FBYyxFQUFkLE1BQWM7RUFBZCw2QkFBYyxFQUFkLE1BQWM7RUFBZCwrQkFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsY0FBYztBQUFBOztBQUFkOztDQUFjOztBQUFkOztFQUFBLGNBQWM7RUFBZCxjQUFjO0VBQWQsa0JBQWM7RUFBZCx3QkFBYztBQUFBOztBQUFkO0VBQUEsZUFBYztBQUFBOztBQUFkO0VBQUEsV0FBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7RUFBQSxjQUFjLEVBQWQsTUFBYztFQUFkLHFCQUFjLEVBQWQsTUFBYztFQUFkLHlCQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7Ozs7O0VBQUEsb0JBQWMsRUFBZCxNQUFjO0VBQWQsOEJBQWMsRUFBZCxNQUFjO0VBQWQsZ0NBQWMsRUFBZCxNQUFjO0VBQWQsZUFBYyxFQUFkLE1BQWM7RUFBZCxvQkFBYyxFQUFkLE1BQWM7RUFBZCxvQkFBYyxFQUFkLE1BQWM7RUFBZCx1QkFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjLEVBQWQsTUFBYztFQUFkLFNBQWMsRUFBZCxNQUFjO0VBQWQsVUFBYyxFQUFkLE1BQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7RUFBQSxvQkFBYztBQUFBOztBQUFkOzs7Q0FBYzs7QUFBZDs7OztFQUFBLDBCQUFjLEVBQWQsTUFBYztFQUFkLDZCQUFjLEVBQWQsTUFBYztFQUFkLHNCQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsYUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsZ0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDtFQUFBLHdCQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7O0VBQUEsWUFBYztBQUFBOztBQUFkOzs7Q0FBYzs7QUFBZDtFQUFBLDZCQUFjLEVBQWQsTUFBYztFQUFkLG9CQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsd0JBQWM7QUFBQTs7QUFBZDs7O0NBQWM7O0FBQWQ7RUFBQSwwQkFBYyxFQUFkLE1BQWM7RUFBZCxhQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsa0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7Ozs7Ozs7Ozs7OztFQUFBLFNBQWM7QUFBQTs7QUFBZDtFQUFBLFNBQWM7RUFBZCxVQUFjO0FBQUE7O0FBQWQ7RUFBQSxVQUFjO0FBQUE7O0FBQWQ7OztFQUFBLGdCQUFjO0VBQWQsU0FBYztFQUFkLFVBQWM7QUFBQTs7QUFBZDs7Q0FBYztBQUFkO0VBQUEsVUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsZ0JBQWM7QUFBQTs7QUFBZDs7O0NBQWM7O0FBQWQ7RUFBQSxVQUFjLEVBQWQsTUFBYztFQUFkLGNBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0VBQUEsVUFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkOztFQUFBLGVBQWM7QUFBQTs7QUFBZDs7Q0FBYztBQUFkO0VBQUEsZUFBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7Ozs7Ozs7O0VBQUEsY0FBYyxFQUFkLE1BQWM7RUFBZCxzQkFBYyxFQUFkLE1BQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7RUFBQSxlQUFjO0VBQWQsWUFBYztBQUFBOztBQUFkLHdFQUFjO0FBQWQ7RUFBQSxhQUFjO0FBQUE7O0FBQWQ7RUFBQSx3QkFBYztFQUFkLHdCQUFjO0VBQWQsbUJBQWM7RUFBZCxtQkFBYztFQUFkLGNBQWM7RUFBZCxjQUFjO0VBQWQsY0FBYztFQUFkLGVBQWM7RUFBZCxlQUFjO0VBQWQsYUFBYztFQUFkLGFBQWM7RUFBZCxrQkFBYztFQUFkLHNDQUFjO0VBQWQsOEJBQWM7RUFBZCw2QkFBYztFQUFkLDRCQUFjO0VBQWQsZUFBYztFQUFkLG9CQUFjO0VBQWQsc0JBQWM7RUFBZCx1QkFBYztFQUFkLHdCQUFjO0VBQWQsa0JBQWM7RUFBZCwyQkFBYztFQUFkLDRCQUFjO0VBQWQsc0NBQWM7RUFBZCxrQ0FBYztFQUFkLDJCQUFjO0VBQWQsc0JBQWM7RUFBZCw4QkFBYztFQUFkLFlBQWM7RUFBZCxrQkFBYztFQUFkLGdCQUFjO0VBQWQsaUJBQWM7RUFBZCxrQkFBYztFQUFkLGNBQWM7RUFBZCxnQkFBYztFQUFkLGFBQWM7RUFBZCxtQkFBYztFQUFkLHFCQUFjO0VBQWQsMkJBQWM7RUFBZCx5QkFBYztFQUFkLDBCQUFjO0VBQWQsMkJBQWM7RUFBZCx1QkFBYztFQUFkLHdCQUFjO0VBQWQseUJBQWM7RUFBZCxzQkFBYztFQUFkLG9CQUFjO0VBQWQsc0JBQWM7RUFBZCxxQkFBYztFQUFkO0FBQWM7O0FBQWQ7RUFBQSx3QkFBYztFQUFkLHdCQUFjO0VBQWQsbUJBQWM7RUFBZCxtQkFBYztFQUFkLGNBQWM7RUFBZCxjQUFjO0VBQWQsY0FBYztFQUFkLGVBQWM7RUFBZCxlQUFjO0VBQWQsYUFBYztFQUFkLGFBQWM7RUFBZCxrQkFBYztFQUFkLHNDQUFjO0VBQWQsOEJBQWM7RUFBZCw2QkFBYztFQUFkLDRCQUFjO0VBQWQsZUFBYztFQUFkLG9CQUFjO0VBQWQsc0JBQWM7RUFBZCx1QkFBYztFQUFkLHdCQUFjO0VBQWQsa0JBQWM7RUFBZCwyQkFBYztFQUFkLDRCQUFjO0VBQWQsc0NBQWM7RUFBZCxrQ0FBYztFQUFkLDJCQUFjO0VBQWQsc0JBQWM7RUFBZCw4QkFBYztFQUFkLFlBQWM7RUFBZCxrQkFBYztFQUFkLGdCQUFjO0VBQWQsaUJBQWM7RUFBZCxrQkFBYztFQUFkLGNBQWM7RUFBZCxnQkFBYztFQUFkLGFBQWM7RUFBZCxtQkFBYztFQUFkLHFCQUFjO0VBQWQsMkJBQWM7RUFBZCx5QkFBYztFQUFkLDBCQUFjO0VBQWQsMkJBQWM7RUFBZCx1QkFBYztFQUFkLHdCQUFjO0VBQWQseUJBQWM7RUFBZCxzQkFBYztFQUFkLG9CQUFjO0VBQWQsc0JBQWM7RUFBZCxxQkFBYztFQUFkO0FBQWM7QUFDZDtFQUFBO0FBQW9CO0FBQXBCOztFQUFBO0lBQUE7RUFBb0I7QUFBQTtBQUFwQjs7RUFBQTtJQUFBO0VBQW9CO0FBQUE7QUFBcEI7O0VBQUE7SUFBQTtFQUFvQjtBQUFBO0FBQXBCOztFQUFBO0lBQUE7RUFBb0I7QUFBQTtBQUFwQjs7RUFBQTtJQUFBO0VBQW9CO0FBQUE7QUFDcEI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBLGlCQUFtQjtFQUFuQjtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFGbkI7RUFBQSxrQkFLQTtFQUxBO0FBS0FcIixcInNvdXJjZXNDb250ZW50XCI6W1wiQHRhaWx3aW5kIGJhc2U7XFxyXFxuQHRhaWx3aW5kIGNvbXBvbmVudHM7XFxyXFxuQHRhaWx3aW5kIHV0aWxpdGllcztcXHJcXG5AaW1wb3J0ICdsZWFmbGV0L2Rpc3QvbGVhZmxldC5jc3MnO1xcclxcblxcclxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[2]!./styles/global.css\n"));
+eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js\");\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_next_dist_build_webpack_loaders_css_loader_src_index_js_ruleSet_1_rules_6_oneOf_14_use_1_node_modules_next_dist_build_webpack_loaders_postcss_loader_src_index_js_ruleSet_1_rules_6_oneOf_14_use_2_node_modules_leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! -!../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[1]!../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[2]!../node_modules/leaflet/dist/leaflet.css */ \"./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[2]!./node_modules/leaflet/dist/leaflet.css\");\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_next_dist_build_webpack_loaders_css_loader_src_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(true);\n___CSS_LOADER_EXPORT___.i(_node_modules_next_dist_build_webpack_loaders_css_loader_src_index_js_ruleSet_1_rules_6_oneOf_14_use_1_node_modules_next_dist_build_webpack_loaders_postcss_loader_src_index_js_ruleSet_1_rules_6_oneOf_14_use_2_node_modules_leaflet_dist_leaflet_css__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com\\n*//*\\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\\n*/\\n\\n*,\\n::before,\\n::after {\\n box-sizing: border-box; /* 1 */\\n border-width: 0; /* 2 */\\n border-style: solid; /* 2 */\\n border-color: #e5e7eb; /* 2 */\\n}\\n\\n::before,\\n::after {\\n --tw-content: '';\\n}\\n\\n/*\\n1. Use a consistent sensible line-height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n3. Use a more readable tab size.\\n4. Use the user's configured `sans` font-family by default.\\n5. Use the user's configured `sans` font-feature-settings by default.\\n6. Use the user's configured `sans` font-variation-settings by default.\\n7. Disable tap highlights on iOS\\n*/\\n\\nhtml,\\n:host {\\n line-height: 1.5; /* 1 */\\n -webkit-text-size-adjust: 100%; /* 2 */\\n -moz-tab-size: 4; /* 3 */\\n -o-tab-size: 4;\\n tab-size: 4; /* 3 */\\n font-family: ui-sans-serif, system-ui, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\"; /* 4 */\\n font-feature-settings: normal; /* 5 */\\n font-variation-settings: normal; /* 6 */\\n -webkit-tap-highlight-color: transparent; /* 7 */\\n}\\n\\n/*\\n1. Remove the margin in all browsers.\\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\\n*/\\n\\nbody {\\n margin: 0; /* 1 */\\n line-height: inherit; /* 2 */\\n}\\n\\n/*\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n3. Ensure horizontal rules are visible by default.\\n*/\\n\\nhr {\\n height: 0; /* 1 */\\n color: inherit; /* 2 */\\n border-top-width: 1px; /* 3 */\\n}\\n\\n/*\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\n\\nabbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n}\\n\\n/*\\nRemove the default font size and weight for headings.\\n*/\\n\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n\\n/*\\nReset links to optimize for opt-in styling instead of opt-out.\\n*/\\n\\na {\\n color: inherit;\\n text-decoration: inherit;\\n}\\n\\n/*\\nAdd the correct font weight in Edge and Safari.\\n*/\\n\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n\\n/*\\n1. Use the user's configured `mono` font-family by default.\\n2. Use the user's configured `mono` font-feature-settings by default.\\n3. Use the user's configured `mono` font-variation-settings by default.\\n4. Correct the odd `em` font sizing in all browsers.\\n*/\\n\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace; /* 1 */\\n font-feature-settings: normal; /* 2 */\\n font-variation-settings: normal; /* 3 */\\n font-size: 1em; /* 4 */\\n}\\n\\n/*\\nAdd the correct font size in all browsers.\\n*/\\n\\nsmall {\\n font-size: 80%;\\n}\\n\\n/*\\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\\n*/\\n\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\n\\nsub {\\n bottom: -0.25em;\\n}\\n\\nsup {\\n top: -0.5em;\\n}\\n\\n/*\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n3. Remove gaps between table borders by default.\\n*/\\n\\ntable {\\n text-indent: 0; /* 1 */\\n border-color: inherit; /* 2 */\\n border-collapse: collapse; /* 3 */\\n}\\n\\n/*\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n3. Remove default padding in all browsers.\\n*/\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n font-family: inherit; /* 1 */\\n font-feature-settings: inherit; /* 1 */\\n font-variation-settings: inherit; /* 1 */\\n font-size: 100%; /* 1 */\\n font-weight: inherit; /* 1 */\\n line-height: inherit; /* 1 */\\n letter-spacing: inherit; /* 1 */\\n color: inherit; /* 1 */\\n margin: 0; /* 2 */\\n padding: 0; /* 3 */\\n}\\n\\n/*\\nRemove the inheritance of text transform in Edge and Firefox.\\n*/\\n\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Remove default button styles.\\n*/\\n\\nbutton,\\ninput:where([type='button']),\\ninput:where([type='reset']),\\ninput:where([type='submit']) {\\n -webkit-appearance: button; /* 1 */\\n background-color: transparent; /* 2 */\\n background-image: none; /* 2 */\\n}\\n\\n/*\\nUse the modern Firefox focus style for all focusable elements.\\n*/\\n\\n:-moz-focusring {\\n outline: auto;\\n}\\n\\n/*\\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\\n*/\\n\\n:-moz-ui-invalid {\\n box-shadow: none;\\n}\\n\\n/*\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\n\\nprogress {\\n vertical-align: baseline;\\n}\\n\\n/*\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n height: auto;\\n}\\n\\n/*\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n\\n[type='search'] {\\n -webkit-appearance: textfield; /* 1 */\\n outline-offset: -2px; /* 2 */\\n}\\n\\n/*\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n\\n::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to `inherit` in Safari.\\n*/\\n\\n::-webkit-file-upload-button {\\n -webkit-appearance: button; /* 1 */\\n font: inherit; /* 2 */\\n}\\n\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\n\\nsummary {\\n display: list-item;\\n}\\n\\n/*\\nRemoves the default spacing and border for appropriate elements.\\n*/\\n\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\n\\nfieldset {\\n margin: 0;\\n padding: 0;\\n}\\n\\nlegend {\\n padding: 0;\\n}\\n\\nol,\\nul,\\nmenu {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n\\n/*\\nReset default styling for dialogs.\\n*/\\ndialog {\\n padding: 0;\\n}\\n\\n/*\\nPrevent resizing textareas horizontally by default.\\n*/\\n\\ntextarea {\\n resize: vertical;\\n}\\n\\n/*\\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\\n2. Set the default placeholder color to the user's configured gray 400 color.\\n*/\\n\\ninput::-moz-placeholder, textarea::-moz-placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\ninput::placeholder,\\ntextarea::placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n\\n/*\\nSet the default cursor for buttons.\\n*/\\n\\nbutton,\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n\\n/*\\nMake sure disabled buttons don't get the pointer cursor.\\n*/\\n:disabled {\\n cursor: default;\\n}\\n\\n/*\\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\\n This can trigger a poorly considered lint error in some tools but is included by design.\\n*/\\n\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block; /* 1 */\\n vertical-align: middle; /* 2 */\\n}\\n\\n/*\\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\\n*/\\n\\nimg,\\nvideo {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n/* Make elements with the HTML hidden attribute stay hidden by default */\\n[hidden] {\\n display: none;\\n}\\n\\n*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\r\\n.container {\\n width: 100%;\\n}\\r\\n@media (min-width: 640px) {\\n\\n .container {\\n max-width: 640px;\\n }\\n}\\r\\n@media (min-width: 768px) {\\n\\n .container {\\n max-width: 768px;\\n }\\n}\\r\\n@media (min-width: 1024px) {\\n\\n .container {\\n max-width: 1024px;\\n }\\n}\\r\\n@media (min-width: 1280px) {\\n\\n .container {\\n max-width: 1280px;\\n }\\n}\\r\\n@media (min-width: 1536px) {\\n\\n .container {\\n max-width: 1536px;\\n }\\n}\\r\\n.m-0 {\\n margin: 0px;\\n}\\r\\n.mx-auto {\\n margin-left: auto;\\n margin-right: auto;\\n}\\r\\n.mb-4 {\\n margin-bottom: 1rem;\\n}\\r\\n.mr-2 {\\n margin-right: 0.5rem;\\n}\\r\\n.mr-3 {\\n margin-right: 0.75rem;\\n}\\r\\n.block {\\n display: block;\\n}\\r\\n.flex {\\n display: flex;\\n}\\r\\n.hidden {\\n display: none;\\n}\\r\\n.h-screen {\\n height: 100vh;\\n}\\r\\n.w-full {\\n width: 100%;\\n}\\r\\n.flex-none {\\n flex: none;\\n}\\r\\n.flex-grow {\\n flex-grow: 1;\\n}\\r\\n.items-center {\\n align-items: center;\\n}\\r\\n.rounded {\\n border-radius: 0.25rem;\\n}\\r\\n.rounded-md {\\n border-radius: 0.375rem;\\n}\\r\\n.border-2 {\\n border-width: 2px;\\n}\\r\\n.border-gray-200 {\\n --tw-border-opacity: 1;\\n border-color: rgb(229 231 235 / var(--tw-border-opacity));\\n}\\r\\n.bg-blue-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(59 130 246 / var(--tw-bg-opacity));\\n}\\r\\n.p-2 {\\n padding: 0.5rem;\\n}\\r\\n.p-4 {\\n padding: 1rem;\\n}\\r\\n.px-4 {\\n padding-left: 1rem;\\n padding-right: 1rem;\\n}\\r\\n.py-2 {\\n padding-top: 0.5rem;\\n padding-bottom: 0.5rem;\\n}\\r\\n.text-sm {\\n font-size: 0.875rem;\\n line-height: 1.25rem;\\n}\\r\\n.text-xl {\\n font-size: 1.25rem;\\n line-height: 1.75rem;\\n}\\r\\n.font-bold {\\n font-weight: 700;\\n}\\r\\n.text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity));\\n}\\r\\n.filter {\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\r\\n.hover\\\\:bg-blue-700:hover {\\n --tw-bg-opacity: 1;\\n background-color: rgb(29 78 216 / var(--tw-bg-opacity));\\n}\\r\\n\\r\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://styles/global.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@tailwind base;\\r\\n@tailwind components;\\r\\n@tailwind utilities;\\r\\n@import 'leaflet/dist/leaflet.css';\\r\\n\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n/* harmony default export */ __webpack_exports__[\"default\"] = (___CSS_LOADER_EXPORT___);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s2XS5vbmVPZlsxNF0udXNlWzFdIS4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzZdLm9uZU9mWzE0XS51c2VbMl0hLi9zdHlsZXMvZ2xvYmFsLmNzcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDd0g7QUFDbU07QUFDM1QsOEJBQThCLGtIQUEyQjtBQUN6RCwwQkFBMEIsOFJBQWlDO0FBQzNEO0FBQ0EsMFhBQTBYLDRCQUE0Qiw0QkFBNEIsZ0NBQWdDLGtDQUFrQyxVQUFVLHdCQUF3QixxQkFBcUIsR0FBRywrYUFBK2Esc0JBQXNCLDJDQUEyQyw2QkFBNkIsMEJBQTBCLG9CQUFvQixvSkFBb0osMENBQTBDLDRDQUE0QyxxREFBcUQsVUFBVSxnS0FBZ0ssZUFBZSxpQ0FBaUMsVUFBVSwyTkFBMk4sZUFBZSwyQkFBMkIsa0NBQWtDLFVBQVUsaUdBQWlHLDhDQUE4Qyw4Q0FBOEMsR0FBRyxrR0FBa0csdUJBQXVCLHlCQUF5QixHQUFHLGlGQUFpRixtQkFBbUIsNkJBQTZCLEdBQUcsMkVBQTJFLHdCQUF3QixHQUFHLDBTQUEwUyx5SEFBeUgsMENBQTBDLDRDQUE0QywyQkFBMkIsVUFBVSxpRUFBaUUsbUJBQW1CLEdBQUcsMkdBQTJHLG1CQUFtQixtQkFBbUIsdUJBQXVCLDZCQUE2QixHQUFHLFNBQVMsb0JBQW9CLEdBQUcsU0FBUyxnQkFBZ0IsR0FBRyxnYkFBZ2Isb0JBQW9CLGtDQUFrQyxzQ0FBc0MsVUFBVSxrTUFBa00sMEJBQTBCLDJDQUEyQyw2Q0FBNkMsNEJBQTRCLGlDQUFpQyxpQ0FBaUMsb0NBQW9DLDJCQUEyQixzQkFBc0IsdUJBQXVCLFVBQVUsOEZBQThGLHlCQUF5QixHQUFH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LE1BQU0sTUFBTSxNQUFNLE1BQU0sVUFBVSxNQUFNLE9BQU8sTUFBTSxLQUFLLHFCQUFxQixxQkFBcUIsTUFBTSxNQUFNLE1BQU0sS0FBSyxXQUFXLE1BQU0sT0FBTyxNQUFNLEtBQUsscUJBQXFCLG9CQUFvQixNQUFNLE1BQU0sTUFBTSxLQUFLLFdBQVcsTUFBTSxNQUFNLE1BQU0saUJBQWlCLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLE9BQU8sV0FBVyxVQUFVLFVBQVUsTUFBTSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sTUFBTSxNQUFNLEtBQUssV0FBVyxNQUFNLE9BQU8sTUFBTSxLQUFLLG9CQUFvQixvQkFBb0IsTUFBTSxNQUFNLG9CQUFvQixvQkFBb0IsTUFBTSxNQUFNLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTSxLQUFLLEtBQUssVUFBVSxNQUFNLFFBQVEsTUFBTSxZQUFZLG9CQUFvQixxQkFBcUIsTUFBTSxNQUFNLE1BQU0sTUFBTSxVQUFVLFVBQVUsTUFBTSxXQUFXLEtBQUssVUFBVSxNQUFNLEtBQUssV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLEtBQUssTUFBTSxLQUFLLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxVQUFVLFdBQVcsV0FBVyxXQUFXLFdBQVcsVUFBVSxXQUFXLFVBQVUsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxXQUFXLFdBQVcsV0FBVyxLQUFLLEtBQUssS0FBSyxLQUFLLE1BQU0sT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxPQUFPLEtBQUssS0FBSyxNQUFNLEtBQUssT0FBTyxLQUFLLEtBQUssTUFBTSxLQUFLLE9BQU8sS0FBSyxLQUFLLE1BQU0sS0FBSyxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLE1BQU0sS0FBSyxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxLQUFLLE1BQU0sTUFBTSxXQUFXLEtBQUssd0NBQXdDLHlCQUF5Qix3QkFBd0IsdUNBQXVDLDJCQUEyQjtBQUNuNmhCO0FBQ0EsK0RBQWUsdUJBQXVCLEVBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3R5bGVzL2dsb2JhbC5jc3M/MWUzNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVRfUlVMRV9JTVBPUlRfMF9fXyBmcm9tIFwiLSEuLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9jc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s2XS5vbmVPZlsxNF0udXNlWzFdIS4uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s2XS5vbmVPZlsxNF0udXNlWzJdIS4uL25vZGVfbW9kdWxlcy9sZWFmbGV0L2Rpc3QvbGVhZmxldC5jc3NcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyh0cnVlKTtcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLmkoX19fQ1NTX0xPQURFUl9BVF9SVUxFX0lNUE9SVF8wX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi8qXFxuISB0YWlsd2luZGNzcyB2My40LjMgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vdGFpbHdpbmRjc3MuY29tXFxuKi8vKlxcbjEuIFByZXZlbnQgcGFkZGluZyBhbmQgYm9yZGVyIGZyb20gYWZmZWN0aW5nIGVsZW1lbnQgd2lkdGguIChodHRwczovL2dpdGh1Yi5jb20vbW96ZGV2cy9jc3NyZW1lZHkvaXNzdWVzLzQpXFxuMi4gQWxsb3cgYWRkaW5nIGEgYm9yZGVyIHRvIGFuIGVsZW1lbnQgYnkganVzdCBhZGRpbmcgYSBib3JkZXItd2lkdGguIChodHRwczovL2dpdGh1Yi5jb20vdGFpbHdpbmRjc3MvdGFpbHdpbmRjc3MvcHVsbC8xMTYpXFxuKi9cXG5cXG4qLFxcbjo6YmVmb3JlLFxcbjo6YWZ0ZXIge1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xcbiAgYm9yZGVyLXdpZHRoOiAwOyAvKiAyICovXFxuICBib3JkZXItc3R5bGU6IHNvbGlkOyAvKiAyICovXFxuICBib3JkZXItY29sb3I6ICNlNWU3ZWI7IC8qIDIgKi9cXG59XFxuXFxuOjpiZWZvcmUsXFxuOjphZnRlciB7XFxuICAtLXR3LWNvbnRlbnQ6ICcnO1xcbn1cXG5cXG4vKlxcbjEuIFVzZSBhIGNvbnNpc3RlbnQgc2Vuc2libGUgbGluZS1oZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxcbjIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxcbjMuIFVzZSBhIG1vcmUgcmVhZGFibGUgdGFiIHNpemUuXFxuNC4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgc2Fuc2AgZm9udC1mYW1pbHkgYnkgZGVmYXVsdC5cXG41LiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBzYW5zYCBmb250LWZlYXR1cmUtc2V0dGluZ3MgYnkgZGVmYXVsdC5cXG42LiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBzYW5zYCBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBieSBkZWZhdWx0LlxcbjcuIERpc2FibGUgdGFwIGhpZ2hsaWdodHMgb24gaU9TXFxuKi9cXG5cXG5odG1sLFxcbjpob3N0IHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjU7IC8qIDEgKi9cXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xcbiAgLW1vei10YWItc2l6ZTogNDsgLyogMyAqL1xcbiAgLW8tdGFiLXNpemU6IDQ7XFxuICAgICB0YWItc2l6ZTogNDsgLyogMyAqL1xcbiAgZm9udC1mYW1pbHk6IHVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgc2Fucy1zZXJpZiwgXFxcIkFwcGxlIENvbG9yIEVtb2ppXFxcIiwgXFxcIlNlZ29lIFVJIEVtb2ppXFxcIiwgXFxcIlNlZ29lIFVJIFN5bWJvbFxcXCIsIFxcXCJOb3RvIENvbG9yIEVtb2ppXFxcIjsgLyogNCAqL1xcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBub3JtYWw7IC8qIDUgKi9cXG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBub3JtYWw7IC8qIDYgKi9cXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIDcgKi9cXG59XFxuXFxuLypcXG4xLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXFxuMi4gSW5oZXJpdCBsaW5lLWhlaWdodCBmcm9tIGBodG1sYCBzbyB1c2VycyBjYW4gc2V0IHRoZW0gYXMgYSBjbGFzcyBkaXJlY3RseSBvbiB0aGUgYGh0bWxgIGVsZW1lbnQuXFxuKi9cXG5cXG5ib2R5IHtcXG4gIG1hcmdpbjogMDsgLyogMSAqL1xcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IC8qIDIgKi9cXG59XFxuXFxuLypcXG4xLiBBZGQgdGhlIGNvcnJlY3QgaGVpZ2h0IGluIEZpcmVmb3guXFxuMi4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2Ugb2YgYm9yZGVyIGNvbG9yIGluIEZpcmVmb3guIChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTUpXFxuMy4gRW5zdXJlIGhvcml6b250YWwgcnVsZXMgYXJlIHZpc2libGUgYnkgZGVmYXVsdC5cXG4qL1xcblxcbmhyIHtcXG4gIGhlaWdodDogMDsgLyogMSAqL1xcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cXG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDsgLyogMyAqL1xcbn1cXG5cXG4vKlxcbkFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxcbiovXFxuXFxuYWJicjp3aGVyZShbdGl0bGVdKSB7XFxuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbn1cXG5cXG4vKlxcblJlbW92ZSB0aGUgZGVmYXVsdCBmb250IHNpemUgYW5kIHdlaWdodCBmb3IgaGVhZGluZ3MuXFxuKi9cXG5cXG5oMSxcXG5oMixcXG5oMyxcXG5oNCxcXG5oNSxcXG5oNiB7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICBmb250LXdlaWdodDogaW5oZXJpdDtcXG59XFxuXFxuLypcXG5SZXNldCBsaW5rcyB0byBvcHRpbWl6ZSBmb3Igb3B0LWluIHN0eWxpbmcgaW5zdGVhZCBvZiBvcHQtb3V0LlxcbiovXFxuXFxuYSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gRWRnZSBhbmQgU2FmYXJpLlxcbiovXFxuXFxuYixcXG5zdHJvbmcge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcXG59XFxuXFxuLypcXG4xLiBVc2UgdGhlIHVzZXIncyBjb25maWd1cmVkIGBtb25vYCBmb250LWZhbWlseSBieSBkZWZhdWx0LlxcbjIuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYG1vbm9gIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBieSBkZWZhdWx0LlxcbjMuIFVzZSB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgYG1vbm9gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIGJ5IGRlZmF1bHQuXFxuNC4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxcbiovXFxuXFxuY29kZSxcXG5rYmQsXFxuc2FtcCxcXG5wcmUge1xcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcXFwiTGliZXJhdGlvbiBNb25vXFxcIiwgXFxcIkNvdXJpZXIgTmV3XFxcIiwgbW9ub3NwYWNlOyAvKiAxICovXFxuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDsgLyogMiAqL1xcbiAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IG5vcm1hbDsgLyogMyAqL1xcbiAgZm9udC1zaXplOiAxZW07IC8qIDQgKi9cXG59XFxuXFxuLypcXG5BZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cXG4qL1xcblxcbnNtYWxsIHtcXG4gIGZvbnQtc2l6ZTogODAlO1xcbn1cXG5cXG4vKlxcblByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXFxuKi9cXG5cXG5zdWIsXFxuc3VwIHtcXG4gIGZvbnQtc2l6ZTogNzUlO1xcbiAgbGluZS1oZWlnaHQ6IDA7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxufVxcblxcbnN1YiB7XFxuICBib3R0b206IC0wLjI1ZW07XFxufVxcblxcbnN1cCB7XFxuICB0b3A6IC0wLjVlbTtcXG59XFxuXFxuLypcXG4xLiBSZW1vdmUgdGV4dCBpbmRlbnRhdGlvbiBmcm9tIHRhYmxlIGNvbnRlbnRzIGluIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTk5MDg4LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjk3KVxcbjIuIENvcnJlY3QgdGFibGUgYm9yZGVyIGNvbG9yIGluaGVyaXRhbmNlIGluIGFsbCBDaHJvbWUgYW5kIFNhZmFyaS4gKGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTkzNTcyOSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTAxNilcXG4zLiBSZW1vdmUgZ2FwcyBiZXR3ZWVuIHRhYmxlIGJvcmRlcnMgYnkgZGVmYXVsdC5cXG4qL1xcblxcbnRhYmxlIHtcXG4gIHRleHQtaW5kZW50OiAwOyAvKiAxICovXFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IC8qIDMgKi9cXG59XFxuXFxuLypcXG4xLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cXG4yLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXFxuMy4gUmVtb3ZlIGRlZmF1bHQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMuXFxuKi9cXG5cXG5idXR0b24sXFxuaW5wdXQsXFxub3B0Z3JvdXAsXFxuc2VsZWN0LFxcbnRleHRhcmVhIHtcXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXFxuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBpbmhlcml0OyAvKiAxICovXFxuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cXG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyAvKiAxICovXFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDsgLyogMSAqL1xcbiAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7IC8qIDEgKi9cXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAxICovXFxuICBtYXJnaW46IDA7IC8qIDIgKi9cXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cXG59XFxuXFxuLypcXG5SZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UgYW5kIEZpcmVmb3guXFxuKi9cXG5cXG5idXR0b24sXFxuc2VsZWN0IHtcXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xcbn1cXG5cXG4vKlxcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXFxuMi4gUmVtb3ZlIGRlZmF1bHQgYnV0dG9uIHN0eWxlcy5cXG4qL1xcblxcbmJ1dHRvbixcXG5pbnB1dDp3aGVyZShbdHlwZT0nYnV0dG9uJ10pLFxcbmlucHV0OndoZXJlKFt0eXBlPSdyZXNldCddKSxcXG5pbnB1dDp3aGVyZShbdHlwZT0nc3VibWl0J10pIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMiAqL1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogMiAqL1xcbn1cXG5cXG4vKlxcblVzZSB0aGUgbW9kZXJuIEZpcmVmb3ggZm9jdXMgc3R5bGUgZm9yIGFsbCBmb2N1c2FibGUgZWxlbWVudHMuXFxuKi9cXG5cXG46LW1vei1mb2N1c3Jpbmcge1xcbiAgb3V0bGluZTogYXV0bztcXG59XFxuXFxuLypcXG5SZW1vdmUgdGhlIGFkZGl0aW9uYWwgYDppbnZhbGlkYCBzdHlsZXMgaW4gRmlyZWZveC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tvLWRldi9ibG9iLzJmOWVhY2Q5ZDNkOTk1YzkzN2I0MjUxYTU1NTdkOTVkNDk0YzliZTEvbGF5b3V0L3N0eWxlL3Jlcy9mb3Jtcy5jc3MjTDcyOC1MNzM3KVxcbiovXFxuXFxuOi1tb3otdWktaW52YWxpZCB7XFxuICBib3gtc2hhZG93OiBub25lO1xcbn1cXG5cXG4vKlxcbkFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lIGFuZCBGaXJlZm94LlxcbiovXFxuXFxucHJvZ3Jlc3Mge1xcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbn1cXG5cXG4vKlxcbkNvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIFNhZmFyaS5cXG4qL1xcblxcbjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5cXG4vKlxcbjEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxcbjIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxcbiovXFxuXFxuW3R5cGU9J3NlYXJjaCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXFxuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xcbn1cXG5cXG4vKlxcblJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cXG4qL1xcblxcbjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcblxcbi8qXFxuMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cXG4yLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXFxuKi9cXG5cXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXFxuICBmb250OiBpbmhlcml0OyAvKiAyICovXFxufVxcblxcbi8qXFxuQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXFxuKi9cXG5cXG5zdW1tYXJ5IHtcXG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcXG59XFxuXFxuLypcXG5SZW1vdmVzIHRoZSBkZWZhdWx0IHNwYWNpbmcgYW5kIGJvcmRlciBmb3IgYXBwcm9wcmlhdGUgZWxlbWVudHMuXFxuKi9cXG5cXG5ibG9ja3F1b3RlLFxcbmRsLFxcbmRkLFxcbmgxLFxcbmgyLFxcbmgzLFxcbmg0LFxcbmg1LFxcbmg2LFxcbmhyLFxcbmZpZ3VyZSxcXG5wLFxcbnByZSB7XFxuICBtYXJnaW46IDA7XFxufVxcblxcbmZpZWxkc2V0IHtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbmxlZ2VuZCB7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5cXG5vbCxcXG51bCxcXG5tZW51IHtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5cXG4vKlxcblJlc2V0IGRlZmF1bHQgc3R5bGluZyBmb3IgZGlhbG9ncy5cXG4qL1xcbmRpYWxvZyB7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5cXG4vKlxcblByZXZlbnQgcmVzaXppbmcgdGV4dGFyZWFzIGhvcml6b250YWxseSBieSBkZWZhdWx0LlxcbiovXFxuXFxudGV4dGFyZWEge1xcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcXG59XFxuXFxuLypcXG4xLiBSZXNldCB0aGUgZGVmYXVsdCBwbGFjZWhvbGRlciBvcGFjaXR5IGluIEZpcmVmb3guIChodHRwczovL2dpdGh1Yi5jb20vdGFpbHdpbmRsYWJzL3RhaWx3aW5kY3NzL2lzc3Vlcy8zMzAwKVxcbjIuIFNldCB0aGUgZGVmYXVsdCBwbGFjZWhvbGRlciBjb2xvciB0byB0aGUgdXNlcidzIGNvbmZpZ3VyZWQgZ3JheSA0MDAgY29sb3IuXFxuKi9cXG5cXG5pbnB1dDo6LW1vei1wbGFjZWhvbGRlciwgdGV4dGFyZWE6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgb3BhY2l0eTogMTsgLyogMSAqL1xcbiAgY29sb3I6ICM5Y2EzYWY7IC8qIDIgKi9cXG59XFxuXFxuaW5wdXQ6OnBsYWNlaG9sZGVyLFxcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XFxuICBvcGFjaXR5OiAxOyAvKiAxICovXFxuICBjb2xvcjogIzljYTNhZjsgLyogMiAqL1xcbn1cXG5cXG4vKlxcblNldCB0aGUgZGVmYXVsdCBjdXJzb3IgZm9yIGJ1dHRvbnMuXFxuKi9cXG5cXG5idXR0b24sXFxuW3JvbGU9XFxcImJ1dHRvblxcXCJdIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLypcXG5NYWtlIHN1cmUgZGlzYWJsZWQgYnV0dG9ucyBkb24ndCBnZXQgdGhlIHBvaW50ZXIgY3Vyc29yLlxcbiovXFxuOmRpc2FibGVkIHtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuXFxuLypcXG4xLiBNYWtlIHJlcGxhY2VkIGVsZW1lbnRzIGBkaXNwbGF5OiBibG9ja2AgYnkgZGVmYXVsdC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3pkZXZzL2Nzc3JlbWVkeS9pc3N1ZXMvMTQpXFxuMi4gQWRkIGB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlYCB0byBhbGlnbiByZXBsYWNlZCBlbGVtZW50cyBtb3JlIHNlbnNpYmx5IGJ5IGRlZmF1bHQuIChodHRwczovL2dpdGh1Yi5jb20vamVuc2ltbW9ucy9jc3NyZW1lZHkvaXNzdWVzLzE0I2lzc3VlY29tbWVudC02MzQ5MzQyMTApXFxuICAgVGhpcyBjYW4gdHJpZ2dlciBhIHBvb3JseSBjb25zaWRlcmVkIGxpbnQgZXJyb3IgaW4gc29tZSB0b29scyBidXQgaXMgaW5jbHVkZWQgYnkgZGVzaWduLlxcbiovXFxuXFxuaW1nLFxcbnN2ZyxcXG52aWRlbyxcXG5jYW52YXMsXFxuYXVkaW8sXFxuaWZyYW1lLFxcbmVtYmVkLFxcbm9iamVjdCB7XFxuICBkaXNwbGF5OiBibG9jazsgLyogMSAqL1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLyogMiAqL1xcbn1cXG5cXG4vKlxcbkNvbnN0cmFpbiBpbWFnZXMgYW5kIHZpZGVvcyB0byB0aGUgcGFyZW50IHdpZHRoIGFuZCBwcmVzZXJ2ZSB0aGVpciBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvLiAoaHR0cHM6Ly9naXRodWIuY29tL21vemRldnMvY3NzcmVtZWR5L2lzc3Vlcy8xNClcXG4qL1xcblxcbmltZyxcXG52aWRlbyB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IGF1dG87XFxufVxcblxcbi8qIE1ha2UgZWxlbWVudHMgd2l0aCB0aGUgSFRNTCBoaWRkZW4gYXR0cmlidXRlIHN0YXkgaGlkZGVuIGJ5IGRlZmF1bHQgKi9cXG5baGlkZGVuXSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5cXG4qLCA6OmJlZm9yZSwgOjphZnRlciB7XFxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXg6IDA7XFxuICAtLXR3LWJvcmRlci1zcGFjaW5nLXk6IDA7XFxuICAtLXR3LXRyYW5zbGF0ZS14OiAwO1xcbiAgLS10dy10cmFuc2xhdGUteTogMDtcXG4gIC0tdHctcm90YXRlOiAwO1xcbiAgLS10dy1za2V3LXg6IDA7XFxuICAtLXR3LXNrZXcteTogMDtcXG4gIC0tdHctc2NhbGUteDogMTtcXG4gIC0tdHctc2NhbGUteTogMTtcXG4gIC0tdHctcGFuLXg6ICA7XFxuICAtLXR3LXBhbi15OiAgO1xcbiAgLS10dy1waW5jaC16b29tOiAgO1xcbiAgLS10dy1zY3JvbGwtc25hcC1zdHJpY3RuZXNzOiBwcm94aW1pdHk7XFxuICAtLXR3LWdyYWRpZW50LWZyb20tcG9zaXRpb246ICA7XFxuICAtLXR3LWdyYWRpZW50LXZpYS1wb3NpdGlvbjogIDtcXG4gIC0tdHctZ3JhZGllbnQtdG8tcG9zaXRpb246ICA7XFxuICAtLXR3LW9yZGluYWw6ICA7XFxuICAtLXR3LXNsYXNoZWQtemVybzogIDtcXG4gIC0tdHctbnVtZXJpYy1maWd1cmU6ICA7XFxuICAtLXR3LW51bWVyaWMtc3BhY2luZzogIDtcXG4gIC0tdHctbnVtZXJpYy1mcmFjdGlvbjogIDtcXG4gIC0tdHctcmluZy1pbnNldDogIDtcXG4gIC0tdHctcmluZy1vZmZzZXQtd2lkdGg6IDBweDtcXG4gIC0tdHctcmluZy1vZmZzZXQtY29sb3I6ICNmZmY7XFxuICAtLXR3LXJpbmctY29sb3I6IHJnYig1OSAxMzAgMjQ2IC8gMC41KTtcXG4gIC0tdHctcmluZy1vZmZzZXQtc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXJpbmctc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXNoYWRvdzogMCAwICMwMDAwO1xcbiAgLS10dy1zaGFkb3ctY29sb3JlZDogMCAwICMwMDAwO1xcbiAgLS10dy1ibHVyOiAgO1xcbiAgLS10dy1icmlnaHRuZXNzOiAgO1xcbiAgLS10dy1jb250cmFzdDogIDtcXG4gIC0tdHctZ3JheXNjYWxlOiAgO1xcbiAgLS10dy1odWUtcm90YXRlOiAgO1xcbiAgLS10dy1pbnZlcnQ6ICA7XFxuICAtLXR3LXNhdHVyYXRlOiAgO1xcbiAgLS10dy1zZXBpYTogIDtcXG4gIC0tdHctZHJvcC1zaGFkb3c6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWJsdXI6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWJyaWdodG5lc3M6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWNvbnRyYXN0OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1ncmF5c2NhbGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWh1ZS1yb3RhdGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWludmVydDogIDtcXG4gIC0tdHctYmFja2Ryb3Atb3BhY2l0eTogIDtcXG4gIC0tdHctYmFja2Ryb3Atc2F0dXJhdGU6ICA7XFxuICAtLXR3LWJhY2tkcm9wLXNlcGlhOiAgO1xcbiAgLS10dy1jb250YWluLXNpemU6ICA7XFxuICAtLXR3LWNvbnRhaW4tbGF5b3V0OiAgO1xcbiAgLS10dy1jb250YWluLXBhaW50OiAgO1xcbiAgLS10dy1jb250YWluLXN0eWxlOiAgO1xcbn1cXG5cXG46OmJhY2tkcm9wIHtcXG4gIC0tdHctYm9yZGVyLXNwYWNpbmcteDogMDtcXG4gIC0tdHctYm9yZGVyLXNwYWNpbmcteTogMDtcXG4gIC0tdHctdHJhbnNsYXRlLXg6IDA7XFxuICAtLXR3LXRyYW5zbGF0ZS15OiAwO1xcbiAgLS10dy1yb3RhdGU6IDA7XFxuICAtLXR3LXNrZXcteDogMDtcXG4gIC0tdHctc2tldy15OiAwO1xcbiAgLS10dy1zY2FsZS14OiAxO1xcbiAgLS10dy1zY2FsZS15OiAxO1xcbiAgLS10dy1wYW4teDogIDtcXG4gIC0tdHctcGFuLXk6ICA7XFxuICAtLXR3LXBpbmNoLXpvb206ICA7XFxuICAtLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6IHByb3hpbWl0eTtcXG4gIC0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogIDtcXG4gIC0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiAgO1xcbiAgLS10dy1ncmFkaWVudC10by1wb3NpdGlvbjogIDtcXG4gIC0tdHctb3JkaW5hbDogIDtcXG4gIC0tdHctc2xhc2hlZC16ZXJvOiAgO1xcbiAgLS10dy1udW1lcmljLWZpZ3VyZTogIDtcXG4gIC0tdHctbnVtZXJpYy1zcGFjaW5nOiAgO1xcbiAgLS10dy1udW1lcmljLWZyYWN0aW9uOiAgO1xcbiAgLS10dy1yaW5nLWluc2V0OiAgO1xcbiAgLS10dy1yaW5nLW9mZnNldC13aWR0aDogMHB4O1xcbiAgLS10dy1yaW5nLW9mZnNldC1jb2xvcjogI2ZmZjtcXG4gIC0tdHctcmluZy1jb2xvcjogcmdiKDU5IDEzMCAyNDYgLyAwLjUpO1xcbiAgLS10dy1yaW5nLW9mZnNldC1zaGFkb3c6IDAgMCAjMDAwMDtcXG4gIC0tdHctcmluZy1zaGFkb3c6IDAgMCAjMDAwMDtcXG4gIC0tdHctc2hhZG93OiAwIDAgIzAwMDA7XFxuICAtLXR3LXNoYWRvdy1jb2xvcmVkOiAwIDAgIzAwMDA7XFxuICAtLXR3LWJsdXI6ICA7XFxuICAtLXR3LWJyaWdodG5lc3M6ICA7XFxuICAtLXR3LWNvbnRyYXN0OiAgO1xcbiAgLS10dy1ncmF5c2NhbGU6ICA7XFxuICAtLXR3LWh1ZS1yb3RhdGU6ICA7XFxuICAtLXR3LWludmVydDogIDtcXG4gIC0tdHctc2F0dXJhdGU6ICA7XFxuICAtLXR3LXNlcGlhOiAgO1xcbiAgLS10dy1kcm9wLXNoYWRvdzogIDtcXG4gIC0tdHctYmFja2Ryb3AtYmx1cjogIDtcXG4gIC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzczogIDtcXG4gIC0tdHctYmFja2Ryb3AtY29udHJhc3Q6ICA7XFxuICAtLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogIDtcXG4gIC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZTogIDtcXG4gIC0tdHctYmFja2Ryb3AtaW52ZXJ0OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1vcGFjaXR5OiAgO1xcbiAgLS10dy1iYWNrZHJvcC1zYXR1cmF0ZTogIDtcXG4gIC0tdHctYmFja2Ryb3Atc2VwaWE6ICA7XFxuICAtLXR3LWNvbnRhaW4tc2l6ZTogIDtcXG4gIC0tdHctY29udGFpbi1sYXlvdXQ6ICA7XFxuICAtLXR3LWNvbnRhaW4tcGFpbnQ6ICA7XFxuICAtLXR3LWNvbnRhaW4tc3R5bGU6ICA7XFxufVxcclxcbi5jb250YWluZXIge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogNjQwcHg7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogNzY4cHg7XFxuICB9XFxufVxcclxcbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcXG5cXG4gIC5jb250YWluZXIge1xcbiAgICBtYXgtd2lkdGg6IDEwMjRweDtcXG4gIH1cXG59XFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xcblxcbiAgLmNvbnRhaW5lciB7XFxuICAgIG1heC13aWR0aDogMTI4MHB4O1xcbiAgfVxcbn1cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTUzNnB4KSB7XFxuXFxuICAuY29udGFpbmVyIHtcXG4gICAgbWF4LXdpZHRoOiAxNTM2cHg7XFxuICB9XFxufVxcclxcbi5tLTAge1xcbiAgbWFyZ2luOiAwcHg7XFxufVxcclxcbi5teC1hdXRvIHtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXHJcXG4ubWItNCB7XFxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbn1cXHJcXG4ubXItMiB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcXG59XFxyXFxuLm1yLTMge1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjc1cmVtO1xcbn1cXHJcXG4uYmxvY2sge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcclxcbi5mbGV4IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcclxcbi5oaWRkZW4ge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxyXFxuLmgtc2NyZWVuIHtcXG4gIGhlaWdodDogMTAwdmg7XFxufVxcclxcbi53LWZ1bGwge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcclxcbi5mbGV4LW5vbmUge1xcbiAgZmxleDogbm9uZTtcXG59XFxyXFxuLmZsZXgtZ3JvdyB7XFxuICBmbGV4LWdyb3c6IDE7XFxufVxcclxcbi5pdGVtcy1jZW50ZXIge1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxyXFxuLnJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcXG59XFxyXFxuLnJvdW5kZWQtbWQge1xcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XFxufVxcclxcbi5ib3JkZXItMiB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG59XFxyXFxuLmJvcmRlci1ncmF5LTIwMCB7XFxuICAtLXR3LWJvcmRlci1vcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjI5IDIzMSAyMzUgLyB2YXIoLS10dy1ib3JkZXItb3BhY2l0eSkpO1xcbn1cXHJcXG4uYmctYmx1ZS01MDAge1xcbiAgLS10dy1iZy1vcGFjaXR5OiAxO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU5IDEzMCAyNDYgLyB2YXIoLS10dy1iZy1vcGFjaXR5KSk7XFxufVxcclxcbi5wLTIge1xcbiAgcGFkZGluZzogMC41cmVtO1xcbn1cXHJcXG4ucC00IHtcXG4gIHBhZGRpbmc6IDFyZW07XFxufVxcclxcbi5weC00IHtcXG4gIHBhZGRpbmctbGVmdDogMXJlbTtcXG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XFxufVxcclxcbi5weS0yIHtcXG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xcbn1cXHJcXG4udGV4dC1zbSB7XFxuICBmb250LXNpemU6IDAuODc1cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDEuMjVyZW07XFxufVxcclxcbi50ZXh0LXhsIHtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAxLjc1cmVtO1xcbn1cXHJcXG4uZm9udC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcclxcbi50ZXh0LXdoaXRlIHtcXG4gIC0tdHctdGV4dC1vcGFjaXR5OiAxO1xcbiAgY29sb3I6IHJnYigyNTUgMjU1IDI1NSAvIHZhcigtLXR3LXRleHQtb3BhY2l0eSkpO1xcbn1cXHJcXG4uZmlsdGVyIHtcXG4gIGZpbHRlcjogdmFyKC0tdHctYmx1cikgdmFyKC0tdHctYnJpZ2h0bmVzcykgdmFyKC0tdHctY29udHJhc3QpIHZhcigtLXR3LWdyYXlzY2FsZSkgdmFyKC0tdHctaHVlLXJvdGF0ZSkgdmFyKC0tdHctaW52ZXJ0KSB2YXIoLS10dy1zYXR1cmF0ZSkgdmFyKC0tdHctc2VwaWEpIHZhcigtLXR3LWRyb3Atc2hhZG93KTtcXG59XFxyXFxuLmhvdmVyXFxcXDpiZy1ibHVlLTcwMDpob3ZlciB7XFxuICAtLXR3LWJnLW9wYWNpdHk6IDE7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjkgNzggMjE2IC8gdmFyKC0tdHctYmctb3BhY2l0eSkpO1xcbn1cXHJcXG5cXHJcXG5cIiwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vc3R5bGVzL2dsb2JhbC5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7O0NBQWMsQ0FBZDs7O0NBQWM7O0FBQWQ7OztFQUFBLHNCQUFjLEVBQWQsTUFBYztFQUFkLGVBQWMsRUFBZCxNQUFjO0VBQWQsbUJBQWMsRUFBZCxNQUFjO0VBQWQscUJBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0VBQUEsZ0JBQWM7QUFBQTs7QUFBZDs7Ozs7Ozs7Q0FBYzs7QUFBZDs7RUFBQSxnQkFBYyxFQUFkLE1BQWM7RUFBZCw4QkFBYyxFQUFkLE1BQWM7RUFBZCxnQkFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjO0tBQWQsV0FBYyxFQUFkLE1BQWM7RUFBZCwrSEFBYyxFQUFkLE1BQWM7RUFBZCw2QkFBYyxFQUFkLE1BQWM7RUFBZCwrQkFBYyxFQUFkLE1BQWM7RUFBZCx3Q0FBYyxFQUFkLE1BQWM7QUFBQTs7QUFBZDs7O0NBQWM7O0FBQWQ7RUFBQSxTQUFjLEVBQWQsTUFBYztFQUFkLG9CQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7RUFBQSxTQUFjLEVBQWQsTUFBYztFQUFkLGNBQWMsRUFBZCxNQUFjO0VBQWQscUJBQWMsRUFBZCxNQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7RUFBQSx5Q0FBYztVQUFkLGlDQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7Ozs7OztFQUFBLGtCQUFjO0VBQWQsb0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDtFQUFBLGNBQWM7RUFBZCx3QkFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkOztFQUFBLG1CQUFjO0FBQUE7O0FBQWQ7Ozs7O0NBQWM7O0FBQWQ7Ozs7RUFBQSwrR0FBYyxFQUFkLE1BQWM7RUFBZCw2QkFBYyxFQUFkLE1BQWM7RUFBZCwrQkFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsY0FBYztBQUFBOztBQUFkOztDQUFjOztBQUFkOztFQUFBLGNBQWM7RUFBZCxjQUFjO0VBQWQsa0JBQWM7RUFBZCx3QkFBYztBQUFBOztBQUFkO0VBQUEsZUFBYztBQUFBOztBQUFkO0VBQUEsV0FBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7RUFBQSxjQUFjLEVBQWQsTUFBYztFQUFkLHFCQUFjLEVBQWQsTUFBYztFQUFkLHlCQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOzs7O0NBQWM7O0FBQWQ7Ozs7O0VBQUEsb0JBQWMsRUFBZCxNQUFjO0VBQWQsOEJBQWMsRUFBZCxNQUFjO0VBQWQsZ0NBQWMsRUFBZCxNQUFjO0VBQWQsZUFBYyxFQUFkLE1BQWM7RUFBZCxvQkFBYyxFQUFkLE1BQWM7RUFBZCxvQkFBYyxFQUFkLE1BQWM7RUFBZCx1QkFBYyxFQUFkLE1BQWM7RUFBZCxjQUFjLEVBQWQsTUFBYztFQUFkLFNBQWMsRUFBZCxNQUFjO0VBQWQsVUFBYyxFQUFkLE1BQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7RUFBQSxvQkFBYztBQUFBOztBQUFkOzs7Q0FBYzs7QUFBZDs7OztFQUFBLDBCQUFjLEVBQWQsTUFBYztFQUFkLDZCQUFjLEVBQWQsTUFBYztFQUFkLHNCQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsYUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsZ0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDtFQUFBLHdCQUFjO0FBQUE7O0FBQWQ7O0NBQWM7O0FBQWQ7O0VBQUEsWUFBYztBQUFBOztBQUFkOzs7Q0FBYzs7QUFBZDtFQUFBLDZCQUFjLEVBQWQsTUFBYztFQUFkLG9CQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsd0JBQWM7QUFBQTs7QUFBZDs7O0NBQWM7O0FBQWQ7RUFBQSwwQkFBYyxFQUFkLE1BQWM7RUFBZCxhQUFjLEVBQWQsTUFBYztBQUFBOztBQUFkOztDQUFjOztBQUFkO0VBQUEsa0JBQWM7QUFBQTs7QUFBZDs7Q0FBYzs7QUFBZDs7Ozs7Ozs7Ozs7OztFQUFBLFNBQWM7QUFBQTs7QUFBZDtFQUFBLFNBQWM7RUFBZCxVQUFjO0FBQUE7O0FBQWQ7RUFBQSxVQUFjO0FBQUE7O0FBQWQ7OztFQUFBLGdCQUFjO0VBQWQsU0FBYztFQUFkLFVBQWM7QUFBQTs7QUFBZDs7Q0FBYztBQUFkO0VBQUEsVUFBYztBQUFBOztB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O0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUFuQjtFQUFBO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1CO0FBQW5CO0VBQUE7QUFBbUI7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7QUFBbkI7RUFBQTtBQUFtQjtBQUZuQjtFQUFBLGtCQUtBO0VBTEE7QUFLQVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAdGFpbHdpbmQgYmFzZTtcXHJcXG5AdGFpbHdpbmQgY29tcG9uZW50cztcXHJcXG5AdGFpbHdpbmQgdXRpbGl0aWVzO1xcclxcbkBpbXBvcnQgJ2xlYWZsZXQvZGlzdC9sZWFmbGV0LmNzcyc7XFxyXFxuXFxyXFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[6].oneOf[14].use[2]!./styles/global.css\n"));
/***/ }),
@@ -90,7 +90,7 @@ eval(__webpack_require__.ts("\nconst isOldIE = function isOldIE() {\n let mem
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ MyApp; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp(param) {\n let { Component, pageProps } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n_c = MyApp;\nvar _c;\n$RefreshReg$(_c, \"MyApp\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxLQUF3QjtRQUF4QixFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRSxHQUF4QjtJQUM1QixxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakM7S0FGd0JGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3BhZ2VzL19hcHAuanM/ZTBhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIuLi9zdHlsZXMvZ2xvYmFsLmNzc1wiOyAvLyBQZmFkIHp1ciBnbG9iYWxlbiBDU1MtRGF0ZWkgYW5wYXNzZW5cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9KSB7XHJcbiAgcmV0dXJuIDxDb21wb25lbnQgey4uLnBhZ2VQcm9wc30gLz47XHJcbn1cclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./pages/_app.js\n"));
+eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ MyApp; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../styles/global.css */ \"./styles/global.css\");\n/* harmony import */ var _styles_global_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_styles_global_css__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n // Pfad zur globalen CSS-Datei anpassen\n\nfunction MyApp(param) {\n let { Component, pageProps } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Component, {\n ...pageProps\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\_app.js\",\n lineNumber: 5,\n columnNumber: 10\n }, this);\n}\n_c = MyApp;\nvar _c;\n$RefreshReg$(_c, \"MyApp\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWdlcy9fYXBwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThCLENBQUMsdUNBQXVDO0FBQzVDO0FBRVgsU0FBU0MsTUFBTSxLQUF3QjtRQUF4QixFQUFFQyxTQUFTLEVBQUVDLFNBQVMsRUFBRSxHQUF4QjtJQUM1QixxQkFBTyw4REFBQ0Q7UUFBVyxHQUFHQyxTQUFTOzs7Ozs7QUFDakM7S0FGd0JGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3BhZ2VzL19hcHAuanM/ZTBhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIuLi9zdHlsZXMvZ2xvYmFsLmNzc1wiOyAvLyBQZmFkIHp1ciBnbG9iYWxlbiBDU1MtRGF0ZWkgYW5wYXNzZW5cclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTXlBcHAoeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9KSB7XHJcbiAgcmV0dXJuIDxDb21wb25lbnQgey4uLnBhZ2VQcm9wc30gLz47XHJcbn1cclxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiTXlBcHAiLCJDb21wb25lbnQiLCJwYWdlUHJvcHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./pages/_app.js\n"));
/***/ }),
diff --git a/.next/static/chunks/pages/index.js b/.next/static/chunks/pages/index.js
index 3a0aacdde..28082d169 100644
--- a/.next/static/chunks/pages/index.js
+++ b/.next/static/chunks/pages/index.js
@@ -8,13 +8,13 @@
*/
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/index"],{
-/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=C%3A%5CUsers%5Cisa.LTW%5CDesktop%5C15.04.2024%5CwwwrootTalas5NodeMap%5Cpages%5Cindex.js&page=%2F!":
+/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=C%3A%5CUsers%5Cisa.LTW%5CDesktop%5C16.04.2024%5CwwwrootTalas5NodeMap%5Cpages%5Cindex.js&page=%2F!":
/*!*****************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=C%3A%5CUsers%5Cisa.LTW%5CDesktop%5C15.04.2024%5CwwwrootTalas5NodeMap%5Cpages%5Cindex.js&page=%2F! ***!
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=C%3A%5CUsers%5Cisa.LTW%5CDesktop%5C16.04.2024%5CwwwrootTalas5NodeMap%5Cpages%5Cindex.js&page=%2F! ***!
\*****************************************************************************************************************************************************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
-eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/\",\n function () {\n return __webpack_require__(/*! ./pages/index.js */ \"./pages/index.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/YWJzb2x1dGVQYWdlUGF0aD1DJTNBJTVDVXNlcnMlNUNpc2EuTFRXJTVDRGVza3RvcCU1QzE1LjA0LjIwMjQlNUN3d3dyb290VGFsYXM1Tm9kZU1hcCU1Q3BhZ2VzJTVDaW5kZXguanMmcGFnZT0lMkYhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsMENBQWtCO0FBQ3pDO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz8xMzZjIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwiLi9wYWdlcy9pbmRleC5qc1wiKTtcbiAgICAgIH1cbiAgICBdKTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaChbXCIvXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=C%3A%5CUsers%5Cisa.LTW%5CDesktop%5C15.04.2024%5CwwwrootTalas5NodeMap%5Cpages%5Cindex.js&page=%2F!\n"));
+eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/\",\n function () {\n return __webpack_require__(/*! ./pages/index.js */ \"./pages/index.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/YWJzb2x1dGVQYWdlUGF0aD1DJTNBJTVDVXNlcnMlNUNpc2EuTFRXJTVDRGVza3RvcCU1QzE2LjA0LjIwMjQlNUN3d3dyb290VGFsYXM1Tm9kZU1hcCU1Q3BhZ2VzJTVDaW5kZXguanMmcGFnZT0lMkYhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsMENBQWtCO0FBQ3pDO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz8xYjZmIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwiLi9wYWdlcy9pbmRleC5qc1wiKTtcbiAgICAgIH1cbiAgICBdKTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaChbXCIvXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=C%3A%5CUsers%5Cisa.LTW%5CDesktop%5C16.04.2024%5CwwwrootTalas5NodeMap%5Cpages%5Cindex.js&page=%2F!\n"));
/***/ }),
@@ -58,7 +58,7 @@ eval(__webpack_require__.ts("// TODO: Remove use of `any` type.\n/**\n@copyright
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Home; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dynamic */ \"./node_modules/next/dynamic.js\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dynamic__WEBPACK_IMPORTED_MODULE_2__);\n// pages/index.js\n\nvar _s = $RefreshSig$();\n\n\nconst MapComponentWithNoSSR = next_dynamic__WEBPACK_IMPORTED_MODULE_2___default()(()=>__webpack_require__.e(/*! import() */ \"components_MapComponent_js\").then(__webpack_require__.bind(__webpack_require__, /*! ../components/MapComponent */ \"./components/MapComponent.js\")), {\n loadableGenerated: {\n modules: [\n \"pages\\\\index.js -> \" + \"../components/MapComponent\"\n ]\n },\n ssr: false\n});\n_c = MapComponentWithNoSSR;\nfunction Home() {\n _s();\n const [mParam, setMParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [uParam, setUParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [locations, setLocations] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n });\n const loadData = async ()=>{\n const response = await fetch(\"/api/locations\");\n const data = await response.json();\n setLocations(data);\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Funktion, um URL-Parameter zu holen\n function getURLParameter(name) {\n // Nutze URLSearchParams, eine Web API für die Arbeit mit Query-Strings\n const params = new URLSearchParams(window.location.search);\n return params.get(name); // Holt den Wert des Parameternamens\n }\n // Hole die Parameter 'm' und 'u'\n setMParam(getURLParameter(\"m\"));\n setUParam(getURLParameter(\"u\"));\n // Logge die Werte in der Konsole\n console.log(\"Parameter m: \".concat(mParam, \", Parameter u: \").concat(uParam));\n loadData();\n }, []);\n const handleAddLocation = async (name, type, lat, lng)=>{\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n name,\n type,\n latitude: lat,\n longitude: lng\n })\n });\n if (response.ok) {\n console.log(\"Standort erfolgreich hinzugef\\xfcgt\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts\");\n }\n };\n const handleSubmit = async (event)=>{\n event.preventDefault();\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(formData)\n });\n if (response.ok) {\n console.log(\"Erfolg\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Speichern der Daten\");\n }\n };\n const handleChange = (event)=>{\n const { name, value } = event.target;\n setFormData((prevState)=>({\n ...prevState,\n [name]: value\n }));\n };\n const handleLocationUpdate = (id, newLatitude, newLongitude)=>{\n setLocations((prevLocations)=>{\n return prevLocations.map((location)=>{\n if (location.idPoi === id) {\n return {\n ...location,\n // Hier musst du ggf. die Formatierung anpassen, je nachdem wie du die Koordinaten speicherst\n position: \"POINT(\".concat(newLongitude, \" \").concat(newLatitude, \")\")\n };\n }\n return location;\n });\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(MapComponentWithNoSSR, {\n locations: locations,\n onAddLocation: handleAddLocation,\n onLocationUpdate: handleLocationUpdate\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 104,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\15.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 102,\n columnNumber: 5\n }, this);\n}\n_s(Home, \"HZdneRh5jR6KToAgfwesAoBd0vM=\");\n_c1 = Home;\nvar _c, _c1;\n$RefreshReg$(_c, \"MapComponentWithNoSSR\");\n$RefreshReg$(_c1, \"Home\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Y0FBY0MsR0FBRyxDQUFDLENBQUMzQjtnQkFDeEIsSUFBSUEsU0FBUzRCLEtBQUssS0FBS0wsSUFBSTtvQkFDekIsT0FBTzt3QkFDTCxHQUFHdkIsUUFBUTt3QkFDWCw2RkFBNkY7d0JBQzdGNkIsVUFBVSxTQUF5QkwsT0FBaEJDLGNBQWEsS0FBZSxPQUFaRCxhQUFZO29CQUNqRDtnQkFDRjtnQkFDQSxPQUFPeEI7WUFDVDtRQUNGO0lBQ0Y7SUFDQSxxQkFDRSw4REFBQzhCO2tCQUVDLDRFQUFDdEQ7WUFDQ08sV0FBV0E7WUFDWGdELGVBQWUxQjtZQUNmMkIsa0JBQWtCVjs7Ozs7Ozs7Ozs7QUFJMUI7R0FwR3dCNUM7TUFBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vcGFnZXMvaW5kZXguanM/YmVlNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWdlcy9pbmRleC5qc1xyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBkeW5hbWljIGZyb20gXCJuZXh0L2R5bmFtaWNcIjtcclxuXHJcblxyXG5jb25zdCBNYXBDb21wb25lbnRXaXRoTm9TU1IgPSBkeW5hbWljKFxyXG4gICgpID0+IGltcG9ydChcIi4uL2NvbXBvbmVudHMvTWFwQ29tcG9uZW50XCIpLFxyXG4gIHsgc3NyOiBmYWxzZSB9XHJcbik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lKCkge1xyXG5cclxuICBjb25zdCBbbVBhcmFtLHNldE1QYXJhbV0gPSB1c2VTdGF0ZShbXCJcIl0pO1xyXG4gIGNvbnN0IFt1UGFyYW0sc2V0VVBhcmFtXSA9IHVzZVN0YXRlKFtcIlwiXSk7XHJcblxyXG4gIGNvbnN0IFtsb2NhdGlvbnMsIHNldExvY2F0aW9uc10gPSB1c2VTdGF0ZShbXSk7XHJcbiAgY29uc3QgW2Zvcm1EYXRhLCBzZXRGb3JtRGF0YV0gPSB1c2VTdGF0ZSh7XHJcbiAgICBuYW1lOiBcIlwiLFxyXG4gICAgbG9uZ2l0dWRlOiBcIlwiLFxyXG4gICAgbGF0aXR1ZGU6IFwiXCIsXHJcbiAgICB0eXBlOiBcIlwiLFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBsb2FkRGF0YSA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXCIvYXBpL2xvY2F0aW9uc1wiKTtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICBzZXRMb2NhdGlvbnMoZGF0YSk7XHJcbiAgfTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgIC8vIEZ1bmt0aW9uLCB1bSBVUkwtUGFyYW1ldGVyIHp1IGhvbGVuXHJcbiAgICAgICBmdW5jdGlvbiBnZXRVUkxQYXJhbWV0ZXIobmFtZSkge1xyXG4gICAgICAgIC8vIE51dHplIFVSTFNlYXJjaFBhcmFtcywgZWluZSBXZWIgQVBJIGbDvHIgZGllIEFyYmVpdCBtaXQgUXVlcnktU3RyaW5nc1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcy5nZXQobmFtZSk7IC8vIEhvbHQgZGVuIFdlcnQgZGVzIFBhcmFtZXRlcm5hbWVuc1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC8vIEhvbGUgZGllIFBhcmFtZXRlciAnbScgdW5kICd1J1xyXG4gICAgICBzZXRNUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCdtJykpO1xyXG4gICAgICBzZXRVUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCd1JykpO1xyXG4gIFxyXG4gICAgICAvLyBMb2dnZSBkaWUgV2VydGUgaW4gZGVyIEtvbnNvbGVcclxuICAgICAgY29uc29sZS5sb2coYFBhcmFtZXRlciBtOiAke21QYXJhbX0sIFBhcmFtZXRlciB1OiAke3VQYXJhbX1gKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfSwgW10pO1xyXG4gIGNvbnN0IGhhbmRsZUFkZExvY2F0aW9uID0gYXN5bmMgKG5hbWUsIHR5cGUsIGxhdCwgbG5nKSA9PiB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBsYXRpdHVkZTogbGF0LFxyXG4gICAgICAgIGxvbmdpdHVkZTogbG5nLFxyXG4gICAgICB9KSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlN0YW5kb3J0IGVyZm9sZ3JlaWNoIGhpbnp1Z2Vmw7xndFwiKTtcclxuICAgICAgc2V0Rm9ybURhdGEoeyBuYW1lOiBcIlwiLCBsb25naXR1ZGU6IFwiXCIsIGxhdGl0dWRlOiBcIlwiLCB0eXBlOiBcIlwiIH0pOyAvLyBGb3JtdWxhciB6dXLDvGNrc2V0emVuXHJcbiAgICAgIGxvYWREYXRhKCk7IC8vIERhdGVuIGVybmV1dCBsYWRlblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZlaGxlciBiZWltIEhpbnp1ZsO8Z2VuIGRlcyBTdGFuZG9ydHNcIik7XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZXZlbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJmb2xnXCIpO1xyXG4gICAgICBzZXRGb3JtRGF0YSh7IG5hbWU6IFwiXCIsIGxvbmdpdHVkZTogXCJcIiwgbGF0aXR1ZGU6IFwiXCIsIHR5cGU6IFwiXCIgfSk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgbG9hZERhdGEoKTsgLy8gRGF0ZW4gZXJuZXV0IGxhZGVuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRmVobGVyIGJlaW0gU3BlaWNoZXJuIGRlciBEYXRlblwiKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoZXZlbnQpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgIHNldEZvcm1EYXRhKChwcmV2U3RhdGUpID0+ICh7IC4uLnByZXZTdGF0ZSwgW25hbWVdOiB2YWx1ZSB9KSk7XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVMb2NhdGlvblVwZGF0ZSA9IChpZCwgbmV3TGF0aXR1ZGUsIG5ld0xvbmdpdHVkZSkgPT4ge1xyXG4gICAgc2V0TG9jYXRpb25zKChwcmV2TG9jYXRpb25zKSA9PiB7XHJcbiAgICAgIHJldHVybiBwcmV2TG9jYXRpb25zLm1hcCgobG9jYXRpb24pID0+IHtcclxuICAgICAgICBpZiAobG9jYXRpb24uaWRQb2kgPT09IGlkKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5sb2NhdGlvbixcclxuICAgICAgICAgICAgLy8gSGllciBtdXNzdCBkdSBnZ2YuIGRpZSBGb3JtYXRpZXJ1bmcgYW5wYXNzZW4sIGplIG5hY2hkZW0gd2llIGR1IGRpZSBLb29yZGluYXRlbiBzcGVpY2hlcnN0XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBgUE9JTlQoJHtuZXdMb25naXR1ZGV9ICR7bmV3TGF0aXR1ZGV9KWBcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsb2NhdGlvbjtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2PlxyXG4gICAgICB7LyogSWhyIEZvcm11bGFyICovfVxyXG4gICAgICA8TWFwQ29tcG9uZW50V2l0aE5vU1NSXHJcbiAgICAgICAgbG9jYXRpb25zPXtsb2NhdGlvbnN9XHJcbiAgICAgICAgb25BZGRMb2NhdGlvbj17aGFuZGxlQWRkTG9jYXRpb259XHJcbiAgICAgICAgb25Mb2NhdGlvblVwZGF0ZT17aGFuZGxlTG9jYXRpb25VcGRhdGV9XHJcbiAgICAgIC8+ICAgICBcclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJkeW5hbWljIiwiTWFwQ29tcG9uZW50V2l0aE5vU1NSIiwic3NyIiwiSG9tZSIsIm1QYXJhbSIsInNldE1QYXJhbSIsInVQYXJhbSIsInNldFVQYXJhbSIsImxvY2F0aW9ucyIsInNldExvY2F0aW9ucyIsImZvcm1EYXRhIiwic2V0Rm9ybURhdGEiLCJuYW1lIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJ0eXBlIiwibG9hZERhdGEiLCJyZXNwb25zZSIsImZldGNoIiwiZGF0YSIsImpzb24iLCJnZXRVUkxQYXJhbWV0ZXIiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInNlYXJjaCIsImdldCIsImNvbnNvbGUiLCJsb2ciLCJoYW5kbGVBZGRMb2NhdGlvbiIsImxhdCIsImxuZyIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm9rIiwiZXJyb3IiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidmFsdWUiLCJ0YXJnZXQiLCJwcmV2U3RhdGUiLCJoYW5kbGVMb2NhdGlvblVwZGF0ZSIsImlkIiwibmV3TGF0aXR1ZGUiLCJuZXdMb25naXR1ZGUiLCJwcmV2TG9jYXRpb25zIiwibWFwIiwiaWRQb2kiLCJwb3NpdGlvbiIsImRpdiIsIm9uQWRkTG9jYXRpb24iLCJvbkxvY2F0aW9uVXBkYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/index.js\n"));
+eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Home; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"./node_modules/react/jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dynamic */ \"./node_modules/next/dynamic.js\");\n/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dynamic__WEBPACK_IMPORTED_MODULE_2__);\n// pages/index.js\n\nvar _s = $RefreshSig$();\n\n\nconst MapComponentWithNoSSR = next_dynamic__WEBPACK_IMPORTED_MODULE_2___default()(()=>__webpack_require__.e(/*! import() */ \"components_MapComponent_js\").then(__webpack_require__.bind(__webpack_require__, /*! ../components/MapComponent */ \"./components/MapComponent.js\")), {\n loadableGenerated: {\n modules: [\n \"pages\\\\index.js -> \" + \"../components/MapComponent\"\n ]\n },\n ssr: false\n});\n_c = MapComponentWithNoSSR;\nfunction Home() {\n _s();\n const [mParam, setMParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [uParam, setUParam] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([\n \"\"\n ]);\n const [locations, setLocations] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [formData, setFormData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n });\n const loadData = async ()=>{\n const response = await fetch(\"/api/locations\");\n const data = await response.json();\n setLocations(data);\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Funktion, um URL-Parameter zu holen\n function getURLParameter(name) {\n // Nutze URLSearchParams, eine Web API für die Arbeit mit Query-Strings\n const params = new URLSearchParams(window.location.search);\n return params.get(name); // Holt den Wert des Parameternamens\n }\n // Hole die Parameter 'm' und 'u'\n setMParam(getURLParameter(\"m\"));\n setUParam(getURLParameter(\"u\"));\n // Logge die Werte in der Konsole\n console.log(\"Parameter m: \".concat(mParam, \", Parameter u: \").concat(uParam));\n loadData();\n }, []);\n const handleAddLocation = async (name, type, lat, lng)=>{\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n name,\n type,\n latitude: lat,\n longitude: lng\n })\n });\n if (response.ok) {\n console.log(\"Standort erfolgreich hinzugef\\xfcgt\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Hinzuf\\xfcgen des Standorts\");\n }\n };\n const handleSubmit = async (event)=>{\n event.preventDefault();\n const response = await fetch(\"/api/addLocation\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(formData)\n });\n if (response.ok) {\n console.log(\"Erfolg\");\n setFormData({\n name: \"\",\n longitude: \"\",\n latitude: \"\",\n type: \"\"\n }); // Formular zurücksetzen\n loadData(); // Daten erneut laden\n } else {\n console.error(\"Fehler beim Speichern der Daten\");\n }\n };\n const handleChange = (event)=>{\n const { name, value } = event.target;\n setFormData((prevState)=>({\n ...prevState,\n [name]: value\n }));\n };\n const handleLocationUpdate = (id, newLatitude, newLongitude)=>{\n setLocations((prevLocations)=>{\n return prevLocations.map((location)=>{\n if (location.idPoi === id) {\n return {\n ...location,\n // Hier musst du ggf. die Formatierung anpassen, je nachdem wie du die Koordinaten speicherst\n position: \"POINT(\".concat(newLongitude, \" \").concat(newLatitude, \")\")\n };\n }\n return location;\n });\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(MapComponentWithNoSSR, {\n locations: locations,\n onAddLocation: handleAddLocation,\n onLocationUpdate: handleLocationUpdate\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 104,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\Users\\\\isa.LTW\\\\Desktop\\\\16.04.2024\\\\wwwrootTalas5NodeMap\\\\pages\\\\index.js\",\n lineNumber: 102,\n columnNumber: 5\n }, this);\n}\n_s(Home, \"HZdneRh5jR6KToAgfwesAoBd0vM=\");\n_c1 = Home;\nvar _c, _c1;\n$RefreshReg$(_c, \"MapComponentWithNoSSR\");\n$RefreshReg$(_c1, \"Home\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Y0FBY0MsR0FBRyxDQUFDLENBQUMzQjtnQkFDeEIsSUFBSUEsU0FBUzRCLEtBQUssS0FBS0wsSUFBSTtvQkFDekIsT0FBTzt3QkFDTCxHQUFHdkIsUUFBUTt3QkFDWCw2RkFBNkY7d0JBQzdGNkIsVUFBVSxTQUF5QkwsT0FBaEJDLGNBQWEsS0FBZSxPQUFaRCxhQUFZO29CQUNqRDtnQkFDRjtnQkFDQSxPQUFPeEI7WUFDVDtRQUNGO0lBQ0Y7SUFDQSxxQkFDRSw4REFBQzhCO2tCQUVDLDRFQUFDdEQ7WUFDQ08sV0FBV0E7WUFDWGdELGVBQWUxQjtZQUNmMkIsa0JBQWtCVjs7Ozs7Ozs7Ozs7QUFJMUI7R0FwR3dCNUM7TUFBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vcGFnZXMvaW5kZXguanM/YmVlNyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwYWdlcy9pbmRleC5qc1xyXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBkeW5hbWljIGZyb20gXCJuZXh0L2R5bmFtaWNcIjtcclxuXHJcblxyXG5jb25zdCBNYXBDb21wb25lbnRXaXRoTm9TU1IgPSBkeW5hbWljKFxyXG4gICgpID0+IGltcG9ydChcIi4uL2NvbXBvbmVudHMvTWFwQ29tcG9uZW50XCIpLFxyXG4gIHsgc3NyOiBmYWxzZSB9XHJcbik7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lKCkge1xyXG5cclxuICBjb25zdCBbbVBhcmFtLHNldE1QYXJhbV0gPSB1c2VTdGF0ZShbXCJcIl0pO1xyXG4gIGNvbnN0IFt1UGFyYW0sc2V0VVBhcmFtXSA9IHVzZVN0YXRlKFtcIlwiXSk7XHJcblxyXG4gIGNvbnN0IFtsb2NhdGlvbnMsIHNldExvY2F0aW9uc10gPSB1c2VTdGF0ZShbXSk7XHJcbiAgY29uc3QgW2Zvcm1EYXRhLCBzZXRGb3JtRGF0YV0gPSB1c2VTdGF0ZSh7XHJcbiAgICBuYW1lOiBcIlwiLFxyXG4gICAgbG9uZ2l0dWRlOiBcIlwiLFxyXG4gICAgbGF0aXR1ZGU6IFwiXCIsXHJcbiAgICB0eXBlOiBcIlwiLFxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBsb2FkRGF0YSA9IGFzeW5jICgpID0+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXCIvYXBpL2xvY2F0aW9uc1wiKTtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICBzZXRMb2NhdGlvbnMoZGF0YSk7XHJcbiAgfTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgICAgIC8vIEZ1bmt0aW9uLCB1bSBVUkwtUGFyYW1ldGVyIHp1IGhvbGVuXHJcbiAgICAgICBmdW5jdGlvbiBnZXRVUkxQYXJhbWV0ZXIobmFtZSkge1xyXG4gICAgICAgIC8vIE51dHplIFVSTFNlYXJjaFBhcmFtcywgZWluZSBXZWIgQVBJIGbDvHIgZGllIEFyYmVpdCBtaXQgUXVlcnktU3RyaW5nc1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcy5nZXQobmFtZSk7IC8vIEhvbHQgZGVuIFdlcnQgZGVzIFBhcmFtZXRlcm5hbWVuc1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIC8vIEhvbGUgZGllIFBhcmFtZXRlciAnbScgdW5kICd1J1xyXG4gICAgICBzZXRNUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCdtJykpO1xyXG4gICAgICBzZXRVUGFyYW0oZ2V0VVJMUGFyYW1ldGVyKCd1JykpO1xyXG4gIFxyXG4gICAgICAvLyBMb2dnZSBkaWUgV2VydGUgaW4gZGVyIEtvbnNvbGVcclxuICAgICAgY29uc29sZS5sb2coYFBhcmFtZXRlciBtOiAke21QYXJhbX0sIFBhcmFtZXRlciB1OiAke3VQYXJhbX1gKTtcclxuICAgIGxvYWREYXRhKCk7XHJcbiAgfSwgW10pO1xyXG4gIGNvbnN0IGhhbmRsZUFkZExvY2F0aW9uID0gYXN5bmMgKG5hbWUsIHR5cGUsIGxhdCwgbG5nKSA9PiB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIG5hbWUsXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgICBsYXRpdHVkZTogbGF0LFxyXG4gICAgICAgIGxvbmdpdHVkZTogbG5nLFxyXG4gICAgICB9KSxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChyZXNwb25zZS5vaykge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlN0YW5kb3J0IGVyZm9sZ3JlaWNoIGhpbnp1Z2Vmw7xndFwiKTtcclxuICAgICAgc2V0Rm9ybURhdGEoeyBuYW1lOiBcIlwiLCBsb25naXR1ZGU6IFwiXCIsIGxhdGl0dWRlOiBcIlwiLCB0eXBlOiBcIlwiIH0pOyAvLyBGb3JtdWxhciB6dXLDvGNrc2V0emVuXHJcbiAgICAgIGxvYWREYXRhKCk7IC8vIERhdGVuIGVybmV1dCBsYWRlblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIkZlaGxlciBiZWltIEhpbnp1ZsO8Z2VuIGRlcyBTdGFuZG9ydHNcIik7XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZXZlbnQpID0+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFwiL2FwaS9hZGRMb2NhdGlvblwiLCB7XHJcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXHJcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcclxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEpLFxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJmb2xnXCIpO1xyXG4gICAgICBzZXRGb3JtRGF0YSh7IG5hbWU6IFwiXCIsIGxvbmdpdHVkZTogXCJcIiwgbGF0aXR1ZGU6IFwiXCIsIHR5cGU6IFwiXCIgfSk7IC8vIEZvcm11bGFyIHp1csO8Y2tzZXR6ZW5cclxuICAgICAgbG9hZERhdGEoKTsgLy8gRGF0ZW4gZXJuZXV0IGxhZGVuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiRmVobGVyIGJlaW0gU3BlaWNoZXJuIGRlciBEYXRlblwiKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoZXZlbnQpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUgfSA9IGV2ZW50LnRhcmdldDtcclxuICAgIHNldEZvcm1EYXRhKChwcmV2U3RhdGUpID0+ICh7IC4uLnByZXZTdGF0ZSwgW25hbWVdOiB2YWx1ZSB9KSk7XHJcbiAgfTtcclxuICBjb25zdCBoYW5kbGVMb2NhdGlvblVwZGF0ZSA9IChpZCwgbmV3TGF0aXR1ZGUsIG5ld0xvbmdpdHVkZSkgPT4ge1xyXG4gICAgc2V0TG9jYXRpb25zKChwcmV2TG9jYXRpb25zKSA9PiB7XHJcbiAgICAgIHJldHVybiBwcmV2TG9jYXRpb25zLm1hcCgobG9jYXRpb24pID0+IHtcclxuICAgICAgICBpZiAobG9jYXRpb24uaWRQb2kgPT09IGlkKSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5sb2NhdGlvbixcclxuICAgICAgICAgICAgLy8gSGllciBtdXNzdCBkdSBnZ2YuIGRpZSBGb3JtYXRpZXJ1bmcgYW5wYXNzZW4sIGplIG5hY2hkZW0gd2llIGR1IGRpZSBLb29yZGluYXRlbiBzcGVpY2hlcnN0XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBgUE9JTlQoJHtuZXdMb25naXR1ZGV9ICR7bmV3TGF0aXR1ZGV9KWBcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsb2NhdGlvbjtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2PlxyXG4gICAgICB7LyogSWhyIEZvcm11bGFyICovfVxyXG4gICAgICA8TWFwQ29tcG9uZW50V2l0aE5vU1NSXHJcbiAgICAgICAgbG9jYXRpb25zPXtsb2NhdGlvbnN9XHJcbiAgICAgICAgb25BZGRMb2NhdGlvbj17aGFuZGxlQWRkTG9jYXRpb259XHJcbiAgICAgICAgb25Mb2NhdGlvblVwZGF0ZT17aGFuZGxlTG9jYXRpb25VcGRhdGV9XHJcbiAgICAgIC8+ICAgICBcclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn0iXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJkeW5hbWljIiwiTWFwQ29tcG9uZW50V2l0aE5vU1NSIiwic3NyIiwiSG9tZSIsIm1QYXJhbSIsInNldE1QYXJhbSIsInVQYXJhbSIsInNldFVQYXJhbSIsImxvY2F0aW9ucyIsInNldExvY2F0aW9ucyIsImZvcm1EYXRhIiwic2V0Rm9ybURhdGEiLCJuYW1lIiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJ0eXBlIiwibG9hZERhdGEiLCJyZXNwb25zZSIsImZldGNoIiwiZGF0YSIsImpzb24iLCJnZXRVUkxQYXJhbWV0ZXIiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInNlYXJjaCIsImdldCIsImNvbnNvbGUiLCJsb2ciLCJoYW5kbGVBZGRMb2NhdGlvbiIsImxhdCIsImxuZyIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsIm9rIiwiZXJyb3IiLCJoYW5kbGVTdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlQ2hhbmdlIiwidmFsdWUiLCJ0YXJnZXQiLCJwcmV2U3RhdGUiLCJoYW5kbGVMb2NhdGlvblVwZGF0ZSIsImlkIiwibmV3TGF0aXR1ZGUiLCJuZXdMb25naXR1ZGUiLCJwcmV2TG9jYXRpb25zIiwibWFwIiwiaWRQb2kiLCJwb3NpdGlvbiIsImRpdiIsIm9uQWRkTG9jYXRpb24iLCJvbkxvY2F0aW9uVXBkYXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./pages/index.js\n"));
/***/ }),
@@ -75,7 +75,7 @@ eval(__webpack_require__.ts("module.exports = __webpack_require__(/*! ./dist/sha
},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
-/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=C%3A%5CUsers%5Cisa.LTW%5CDesktop%5C15.04.2024%5CwwwrootTalas5NodeMap%5Cpages%5Cindex.js&page=%2F!"); });
+/******/ __webpack_require__.O(0, ["pages/_app","main"], function() { return __webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=C%3A%5CUsers%5Cisa.LTW%5CDesktop%5C16.04.2024%5CwwwrootTalas5NodeMap%5Cpages%5Cindex.js&page=%2F!"); });
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
/******/ }
diff --git a/.next/static/chunks/webpack.js b/.next/static/chunks/webpack.js
index e02eef0e9..f7e55569c 100644
--- a/.next/static/chunks/webpack.js
+++ b/.next/static/chunks/webpack.js
@@ -153,7 +153,7 @@
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
-/******/ __webpack_require__.h = function() { return "3771899ba32da642"; }
+/******/ __webpack_require__.h = function() { return "0f945be9853e1317"; }
/******/ }();
/******/
/******/ /* webpack/runtime/global */
diff --git a/.next/trace b/.next/trace
index 8624864d2..10b765e4c 100644
--- a/.next/trace
+++ b/.next/trace
@@ -1,2 +1,2 @@
-[{"name":"hot-reloader","duration":42,"timestamp":372198879846,"id":3,"tags":{"version":"14.2.0","isTurbopack":false},"startTime":1713182318290,"traceId":"23e9cc6408de9699"},{"name":"start","duration":3,"timestamp":372198880612,"id":4,"parentId":3,"tags":{},"startTime":1713182318291,"traceId":"23e9cc6408de9699"},{"name":"get-version-info","duration":1015462,"timestamp":372198880994,"id":5,"parentId":4,"tags":{},"startTime":1713182318291,"traceId":"23e9cc6408de9699"},{"name":"clean","duration":12650,"timestamp":372199896498,"id":6,"parentId":4,"tags":{},"startTime":1713182319307,"traceId":"23e9cc6408de9699"},{"name":"get-page-paths","duration":918,"timestamp":372199910457,"id":8,"parentId":7,"tags":{},"startTime":1713182319321,"traceId":"23e9cc6408de9699"},{"name":"create-pages-mapping","duration":281,"timestamp":372199911406,"id":9,"parentId":7,"tags":{},"startTime":1713182319322,"traceId":"23e9cc6408de9699"},{"name":"create-entrypoints","duration":2285,"timestamp":372199911704,"id":10,"parentId":7,"tags":{},"startTime":1713182319322,"traceId":"23e9cc6408de9699"},{"name":"generate-webpack-config","duration":90563,"timestamp":372199914017,"id":11,"parentId":7,"tags":{},"startTime":1713182319324,"traceId":"23e9cc6408de9699"},{"name":"get-webpack-config","duration":94192,"timestamp":372199910404,"id":7,"parentId":4,"tags":{},"startTime":1713182319321,"traceId":"23e9cc6408de9699"},{"name":"make","duration":754,"timestamp":372200055837,"id":13,"parentId":12,"tags":{},"startTime":1713182319466,"traceId":"23e9cc6408de9699"},{"name":"chunk-graph","duration":758,"timestamp":372200057804,"id":15,"parentId":14,"tags":{},"startTime":1713182319468,"traceId":"23e9cc6408de9699"},{"name":"optimize-modules","duration":15,"timestamp":372200058690,"id":17,"parentId":14,"tags":{},"startTime":1713182319469,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunks","duration":518,"timestamp":372200058778,"id":18,"parentId":14,"tags":{},"startTime":1713182319469,"traceId":"23e9cc6408de9699"},{"name":"optimize-tree","duration":70,"timestamp":372200059361,"id":19,"parentId":14,"tags":{},"startTime":1713182319470,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunk-modules","duration":90,"timestamp":372200059540,"id":20,"parentId":14,"tags":{},"startTime":1713182319470,"traceId":"23e9cc6408de9699"},{"name":"optimize","duration":1083,"timestamp":372200058652,"id":16,"parentId":14,"tags":{},"startTime":1713182319469,"traceId":"23e9cc6408de9699"},{"name":"module-hash","duration":64,"timestamp":372200060375,"id":21,"parentId":14,"tags":{},"startTime":1713182319471,"traceId":"23e9cc6408de9699"},{"name":"code-generation","duration":139,"timestamp":372200060459,"id":22,"parentId":14,"tags":{},"startTime":1713182319471,"traceId":"23e9cc6408de9699"},{"name":"hash","duration":356,"timestamp":372200060759,"id":23,"parentId":14,"tags":{},"startTime":1713182319471,"traceId":"23e9cc6408de9699"},{"name":"code-generation-jobs","duration":77,"timestamp":372200061115,"id":24,"parentId":14,"tags":{},"startTime":1713182319471,"traceId":"23e9cc6408de9699"},{"name":"module-assets","duration":52,"timestamp":372200061176,"id":25,"parentId":14,"tags":{},"startTime":1713182319472,"traceId":"23e9cc6408de9699"},{"name":"create-chunk-assets","duration":130,"timestamp":372200061234,"id":26,"parentId":14,"tags":{},"startTime":1713182319472,"traceId":"23e9cc6408de9699"},{"name":"NextJsBuildManifest-generateClientManifest","duration":549,"timestamp":372200203581,"id":28,"parentId":12,"tags":{},"startTime":1713182319614,"traceId":"23e9cc6408de9699"},{"name":"NextJsBuildManifest-createassets","duration":864,"timestamp":372200203349,"id":27,"parentId":12,"tags":{},"startTime":1713182319614,"traceId":"23e9cc6408de9699"},{"name":"seal","duration":147168,"timestamp":372200057507,"id":14,"parentId":12,"tags":{},"startTime":1713182319468,"traceId":"23e9cc6408de9699"},{"name":"webpack-compilation","duration":152869,"timestamp":372200051989,"id":12,"parentId":3,"tags":{"name":"client"},"startTime":1713182319462,"traceId":"23e9cc6408de9699"},{"name":"emit","duration":7332,"timestamp":372200205096,"id":29,"parentId":3,"tags":{},"startTime":1713182319615,"traceId":"23e9cc6408de9699"},{"name":"make","duration":576,"timestamp":372200218164,"id":31,"parentId":30,"tags":{},"startTime":1713182319628,"traceId":"23e9cc6408de9699"},{"name":"chunk-graph","duration":20,"timestamp":372200218886,"id":33,"parentId":32,"tags":{},"startTime":1713182319629,"traceId":"23e9cc6408de9699"},{"name":"optimize-modules","duration":3,"timestamp":372200218923,"id":35,"parentId":32,"tags":{},"startTime":1713182319629,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunks","duration":537,"timestamp":372200218968,"id":36,"parentId":32,"tags":{},"startTime":1713182319629,"traceId":"23e9cc6408de9699"},{"name":"optimize-tree","duration":5,"timestamp":372200219540,"id":37,"parentId":32,"tags":{},"startTime":1713182319630,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunk-modules","duration":4,"timestamp":372200219584,"id":38,"parentId":32,"tags":{},"startTime":1713182319630,"traceId":"23e9cc6408de9699"},{"name":"optimize","duration":707,"timestamp":372200218918,"id":34,"parentId":32,"tags":{},"startTime":1713182319629,"traceId":"23e9cc6408de9699"},{"name":"module-hash","duration":5,"timestamp":372200219706,"id":39,"parentId":32,"tags":{},"startTime":1713182319630,"traceId":"23e9cc6408de9699"},{"name":"code-generation","duration":5,"timestamp":372200219718,"id":40,"parentId":32,"tags":{},"startTime":1713182319630,"traceId":"23e9cc6408de9699"},{"name":"hash","duration":38,"timestamp":372200219747,"id":41,"parentId":32,"tags":{},"startTime":1713182319630,"traceId":"23e9cc6408de9699"},{"name":"code-generation-jobs","duration":26,"timestamp":372200219786,"id":42,"parentId":32,"tags":{},"startTime":1713182319630,"traceId":"23e9cc6408de9699"},{"name":"module-assets","duration":9,"timestamp":372200219806,"id":43,"parentId":32,"tags":{},"startTime":1713182319630,"traceId":"23e9cc6408de9699"},{"name":"create-chunk-assets","duration":10,"timestamp":372200219821,"id":44,"parentId":32,"tags":{},"startTime":1713182319630,"traceId":"23e9cc6408de9699"},{"name":"seal","duration":1268,"timestamp":372200218858,"id":32,"parentId":30,"tags":{},"startTime":1713182319629,"traceId":"23e9cc6408de9699"},{"name":"webpack-compilation","duration":2589,"timestamp":372200217649,"id":30,"parentId":3,"tags":{"name":"server"},"startTime":1713182319628,"traceId":"23e9cc6408de9699"},{"name":"emit","duration":1790,"timestamp":372200220312,"id":45,"parentId":3,"tags":{},"startTime":1713182319631,"traceId":"23e9cc6408de9699"},{"name":"make","duration":178,"timestamp":372200225409,"id":47,"parentId":46,"tags":{},"startTime":1713182319636,"traceId":"23e9cc6408de9699"},{"name":"chunk-graph","duration":19,"timestamp":372200225964,"id":49,"parentId":48,"tags":{},"startTime":1713182319636,"traceId":"23e9cc6408de9699"},{"name":"optimize-modules","duration":3,"timestamp":372200226001,"id":51,"parentId":48,"tags":{},"startTime":1713182319636,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunks","duration":7,"timestamp":372200226044,"id":52,"parentId":48,"tags":{},"startTime":1713182319636,"traceId":"23e9cc6408de9699"},{"name":"optimize-tree","duration":3,"timestamp":372200226063,"id":53,"parentId":48,"tags":{},"startTime":1713182319636,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunk-modules","duration":3,"timestamp":372200226080,"id":54,"parentId":48,"tags":{},"startTime":1713182319636,"traceId":"23e9cc6408de9699"},{"name":"optimize","duration":102,"timestamp":372200225996,"id":50,"parentId":48,"tags":{},"startTime":1713182319636,"traceId":"23e9cc6408de9699"},{"name":"module-hash","duration":6,"timestamp":372200226167,"id":55,"parentId":48,"tags":{},"startTime":1713182319637,"traceId":"23e9cc6408de9699"},{"name":"code-generation","duration":5,"timestamp":372200226181,"id":56,"parentId":48,"tags":{},"startTime":1713182319637,"traceId":"23e9cc6408de9699"},{"name":"hash","duration":55,"timestamp":372200226210,"id":57,"parentId":48,"tags":{},"startTime":1713182319637,"traceId":"23e9cc6408de9699"},{"name":"code-generation-jobs","duration":15,"timestamp":372200226265,"id":58,"parentId":48,"tags":{},"startTime":1713182319637,"traceId":"23e9cc6408de9699"},{"name":"module-assets","duration":6,"timestamp":372200226277,"id":59,"parentId":48,"tags":{},"startTime":1713182319637,"traceId":"23e9cc6408de9699"},{"name":"create-chunk-assets","duration":9,"timestamp":372200226287,"id":60,"parentId":48,"tags":{},"startTime":1713182319637,"traceId":"23e9cc6408de9699"},{"name":"seal","duration":710,"timestamp":372200225938,"id":48,"parentId":46,"tags":{},"startTime":1713182319636,"traceId":"23e9cc6408de9699"},{"name":"webpack-compilation","duration":2257,"timestamp":372200224422,"id":46,"parentId":3,"tags":{"name":"edge-server"},"startTime":1713182319635,"traceId":"23e9cc6408de9699"},{"name":"emit","duration":5193,"timestamp":372200226709,"id":61,"parentId":3,"tags":{},"startTime":1713182319637,"traceId":"23e9cc6408de9699"}]
-[{"name":"make","duration":226,"timestamp":372200483912,"id":66,"parentId":65,"tags":{},"startTime":1713182319894,"traceId":"23e9cc6408de9699"},{"name":"chunk-graph","duration":37,"timestamp":372200484330,"id":68,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"optimize-modules","duration":7,"timestamp":372200484399,"id":70,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunks","duration":19,"timestamp":372200484432,"id":71,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"optimize-tree","duration":8,"timestamp":372200484471,"id":72,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunk-modules","duration":8,"timestamp":372200484506,"id":73,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"optimize","duration":160,"timestamp":372200484390,"id":69,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"module-hash","duration":12,"timestamp":372200484683,"id":74,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"code-generation","duration":10,"timestamp":372200484713,"id":75,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"hash","duration":71,"timestamp":372200484772,"id":76,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"code-generation-jobs","duration":32,"timestamp":372200484842,"id":77,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"module-assets","duration":14,"timestamp":372200484866,"id":78,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"create-chunk-assets","duration":18,"timestamp":372200484889,"id":79,"parentId":67,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"NextJsBuildManifest-generateClientManifest","duration":224,"timestamp":372200485290,"id":81,"parentId":65,"tags":{},"startTime":1713182319896,"traceId":"23e9cc6408de9699"},{"name":"NextJsBuildManifest-createassets","duration":297,"timestamp":372200485232,"id":80,"parentId":65,"tags":{},"startTime":1713182319896,"traceId":"23e9cc6408de9699"},{"name":"seal","duration":1400,"timestamp":372200484283,"id":67,"parentId":65,"tags":{},"startTime":1713182319895,"traceId":"23e9cc6408de9699"},{"name":"webpack-compilation","duration":3173,"timestamp":372200482550,"id":65,"parentId":62,"tags":{"name":"client"},"startTime":1713182319893,"traceId":"23e9cc6408de9699"},{"name":"setup-dev-bundler","duration":1674888,"timestamp":372198874800,"id":2,"parentId":1,"tags":{},"startTime":1713182318285,"traceId":"23e9cc6408de9699"},{"name":"emit","duration":65551,"timestamp":372200485757,"id":82,"parentId":62,"tags":{},"startTime":1713182319896,"traceId":"23e9cc6408de9699"},{"name":"webpack-invalidated-client","duration":74064,"timestamp":372200478016,"id":62,"parentId":3,"tags":{"trigger":"manual"},"startTime":1713182319888,"traceId":"23e9cc6408de9699"},{"name":"make","duration":156,"timestamp":372200553521,"id":84,"parentId":83,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"chunk-graph","duration":28,"timestamp":372200553905,"id":86,"parentId":85,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"optimize-modules","duration":4,"timestamp":372200553955,"id":88,"parentId":85,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunks","duration":35,"timestamp":372200553976,"id":89,"parentId":85,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"optimize-tree","duration":6,"timestamp":372200554027,"id":90,"parentId":85,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunk-modules","duration":4,"timestamp":372200554050,"id":91,"parentId":85,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"optimize","duration":128,"timestamp":372200553949,"id":87,"parentId":85,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"module-hash","duration":7,"timestamp":372200554157,"id":92,"parentId":85,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"code-generation","duration":6,"timestamp":372200554174,"id":93,"parentId":85,"tags":{},"startTime":1713182319965,"traceId":"23e9cc6408de9699"},{"name":"hash","duration":164,"timestamp":372200554208,"id":94,"parentId":85,"tags":{},"startTime":1713182319965,"traceId":"23e9cc6408de9699"},{"name":"code-generation-jobs","duration":89,"timestamp":372200554371,"id":95,"parentId":85,"tags":{},"startTime":1713182319965,"traceId":"23e9cc6408de9699"},{"name":"module-assets","duration":66,"timestamp":372200554406,"id":96,"parentId":85,"tags":{},"startTime":1713182319965,"traceId":"23e9cc6408de9699"},{"name":"create-chunk-assets","duration":20,"timestamp":372200554481,"id":97,"parentId":85,"tags":{},"startTime":1713182319965,"traceId":"23e9cc6408de9699"},{"name":"seal","duration":887,"timestamp":372200553873,"id":85,"parentId":83,"tags":{},"startTime":1713182319964,"traceId":"23e9cc6408de9699"},{"name":"webpack-compilation","duration":1783,"timestamp":372200553019,"id":83,"parentId":63,"tags":{"name":"server"},"startTime":1713182319963,"traceId":"23e9cc6408de9699"},{"name":"run-instrumentation-hook","duration":38,"timestamp":372200583378,"id":99,"parentId":1,"tags":{},"startTime":1713182319994,"traceId":"23e9cc6408de9699"},{"name":"emit","duration":32687,"timestamp":372200554831,"id":98,"parentId":63,"tags":{},"startTime":1713182319965,"traceId":"23e9cc6408de9699"},{"name":"webpack-invalidated-server","duration":109794,"timestamp":372200478209,"id":63,"parentId":3,"tags":{"trigger":"manual"},"startTime":1713182319889,"traceId":"23e9cc6408de9699"},{"name":"make","duration":117,"timestamp":372200589592,"id":101,"parentId":100,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"chunk-graph","duration":15,"timestamp":372200589891,"id":103,"parentId":102,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"optimize-modules","duration":3,"timestamp":372200589925,"id":105,"parentId":102,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunks","duration":6,"timestamp":372200589969,"id":106,"parentId":102,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"optimize-tree","duration":4,"timestamp":372200589986,"id":107,"parentId":102,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"optimize-chunk-modules","duration":5,"timestamp":372200590004,"id":108,"parentId":102,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"optimize","duration":101,"timestamp":372200589921,"id":104,"parentId":102,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"module-hash","duration":5,"timestamp":372200590161,"id":109,"parentId":102,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"code-generation","duration":5,"timestamp":372200590174,"id":110,"parentId":102,"tags":{},"startTime":1713182320001,"traceId":"23e9cc6408de9699"},{"name":"hash","duration":33,"timestamp":372200590197,"id":111,"parentId":102,"tags":{},"startTime":1713182320001,"traceId":"23e9cc6408de9699"},{"name":"code-generation-jobs","duration":11,"timestamp":372200590230,"id":112,"parentId":102,"tags":{},"startTime":1713182320001,"traceId":"23e9cc6408de9699"},{"name":"module-assets","duration":5,"timestamp":372200590238,"id":113,"parentId":102,"tags":{},"startTime":1713182320001,"traceId":"23e9cc6408de9699"},{"name":"create-chunk-assets","duration":8,"timestamp":372200590247,"id":114,"parentId":102,"tags":{},"startTime":1713182320001,"traceId":"23e9cc6408de9699"},{"name":"seal","duration":579,"timestamp":372200589868,"id":102,"parentId":100,"tags":{},"startTime":1713182320000,"traceId":"23e9cc6408de9699"},{"name":"webpack-compilation","duration":1418,"timestamp":372200589051,"id":100,"parentId":64,"tags":{"name":"edge-server"},"startTime":1713182319999,"traceId":"23e9cc6408de9699"},{"name":"start-dev-server","duration":2085817,"timestamp":372198506072,"id":1,"tags":{"cpus":"12","platform":"win32","memory.freeMem":"3871670272","memory.totalMem":"16815702016","memory.heapSizeLimit":"8457814016","isTurbopack":false,"memory.rss":"223535104","memory.heapTotal":"92680192","memory.heapUsed":"60736104"},"startTime":1713182317916,"traceId":"23e9cc6408de9699"},{"name":"emit","duration":3863,"timestamp":372200590486,"id":115,"parentId":64,"tags":{},"startTime":1713182320001,"traceId":"23e9cc6408de9699"},{"name":"webpack-invalidated-edge-server","duration":116790,"timestamp":372200478264,"id":64,"parentId":3,"tags":{"trigger":"manual"},"startTime":1713182319889,"traceId":"23e9cc6408de9699"}]
+[{"name":"hot-reloader","duration":154,"timestamp":688589319,"id":3,"tags":{"version":"14.2.0","isTurbopack":false},"startTime":1713241960614,"traceId":"3bc4e19cef216580"},{"name":"start","duration":8,"timestamp":688592077,"id":4,"parentId":3,"tags":{},"startTime":1713241960617,"traceId":"3bc4e19cef216580"},{"name":"get-version-info","duration":1347685,"timestamp":688592794,"id":5,"parentId":4,"tags":{},"startTime":1713241960617,"traceId":"3bc4e19cef216580"},{"name":"clean","duration":687389,"timestamp":689940579,"id":6,"parentId":4,"tags":{},"startTime":1713241961965,"traceId":"3bc4e19cef216580"},{"name":"get-page-paths","duration":4500,"timestamp":690639885,"id":8,"parentId":7,"tags":{},"startTime":1713241962664,"traceId":"3bc4e19cef216580"},{"name":"create-pages-mapping","duration":2119,"timestamp":690644773,"id":9,"parentId":7,"tags":{},"startTime":1713241962669,"traceId":"3bc4e19cef216580"},{"name":"create-entrypoints","duration":8843,"timestamp":690646993,"id":10,"parentId":7,"tags":{},"startTime":1713241962672,"traceId":"3bc4e19cef216580"},{"name":"generate-webpack-config","duration":501839,"timestamp":690655955,"id":11,"parentId":7,"tags":{},"startTime":1713241962681,"traceId":"3bc4e19cef216580"},{"name":"get-webpack-config","duration":518193,"timestamp":690639645,"id":7,"parentId":4,"tags":{},"startTime":1713241962664,"traceId":"3bc4e19cef216580"},{"name":"make","duration":3732,"timestamp":691324361,"id":13,"parentId":12,"tags":{},"startTime":1713241963349,"traceId":"3bc4e19cef216580"},{"name":"chunk-graph","duration":2385,"timestamp":691334279,"id":15,"parentId":14,"tags":{},"startTime":1713241963359,"traceId":"3bc4e19cef216580"},{"name":"optimize-modules","duration":99,"timestamp":691337179,"id":17,"parentId":14,"tags":{},"startTime":1713241963362,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunks","duration":1704,"timestamp":691337566,"id":18,"parentId":14,"tags":{},"startTime":1713241963362,"traceId":"3bc4e19cef216580"},{"name":"optimize-tree","duration":310,"timestamp":691339530,"id":19,"parentId":14,"tags":{},"startTime":1713241963364,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunk-modules","duration":394,"timestamp":691340455,"id":20,"parentId":14,"tags":{},"startTime":1713241963365,"traceId":"3bc4e19cef216580"},{"name":"optimize","duration":4418,"timestamp":691336980,"id":16,"parentId":14,"tags":{},"startTime":1713241963362,"traceId":"3bc4e19cef216580"},{"name":"module-hash","duration":262,"timestamp":691344091,"id":21,"parentId":14,"tags":{},"startTime":1713241963369,"traceId":"3bc4e19cef216580"},{"name":"code-generation","duration":698,"timestamp":691344474,"id":22,"parentId":14,"tags":{},"startTime":1713241963369,"traceId":"3bc4e19cef216580"},{"name":"hash","duration":1705,"timestamp":691346002,"id":23,"parentId":14,"tags":{},"startTime":1713241963371,"traceId":"3bc4e19cef216580"},{"name":"code-generation-jobs","duration":420,"timestamp":691347701,"id":24,"parentId":14,"tags":{},"startTime":1713241963372,"traceId":"3bc4e19cef216580"},{"name":"module-assets","duration":259,"timestamp":691348026,"id":25,"parentId":14,"tags":{},"startTime":1713241963373,"traceId":"3bc4e19cef216580"},{"name":"create-chunk-assets","duration":593,"timestamp":691348329,"id":26,"parentId":14,"tags":{},"startTime":1713241963373,"traceId":"3bc4e19cef216580"},{"name":"NextJsBuildManifest-generateClientManifest","duration":1674,"timestamp":691446325,"id":28,"parentId":12,"tags":{},"startTime":1713241963471,"traceId":"3bc4e19cef216580"},{"name":"NextJsBuildManifest-createassets","duration":2226,"timestamp":691445853,"id":27,"parentId":12,"tags":{},"startTime":1713241963470,"traceId":"3bc4e19cef216580"},{"name":"seal","duration":117999,"timestamp":691332585,"id":14,"parentId":12,"tags":{},"startTime":1713241963357,"traceId":"3bc4e19cef216580"},{"name":"webpack-compilation","duration":146341,"timestamp":691305201,"id":12,"parentId":3,"tags":{"name":"client"},"startTime":1713241963330,"traceId":"3bc4e19cef216580"},{"name":"emit","duration":30022,"timestamp":691452770,"id":29,"parentId":3,"tags":{},"startTime":1713241963477,"traceId":"3bc4e19cef216580"},{"name":"make","duration":18831,"timestamp":691509811,"id":31,"parentId":30,"tags":{},"startTime":1713241963534,"traceId":"3bc4e19cef216580"},{"name":"chunk-graph","duration":113,"timestamp":691530971,"id":33,"parentId":32,"tags":{},"startTime":1713241963556,"traceId":"3bc4e19cef216580"},{"name":"optimize-modules","duration":22,"timestamp":691531190,"id":35,"parentId":32,"tags":{},"startTime":1713241963556,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunks","duration":2735,"timestamp":691531453,"id":36,"parentId":32,"tags":{},"startTime":1713241963556,"traceId":"3bc4e19cef216580"},{"name":"optimize-tree","duration":34,"timestamp":691534382,"id":37,"parentId":32,"tags":{},"startTime":1713241963559,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunk-modules","duration":31,"timestamp":691534635,"id":38,"parentId":32,"tags":{},"startTime":1713241963559,"traceId":"3bc4e19cef216580"},{"name":"optimize","duration":3720,"timestamp":691531163,"id":34,"parentId":32,"tags":{},"startTime":1713241963556,"traceId":"3bc4e19cef216580"},{"name":"module-hash","duration":33,"timestamp":691535343,"id":39,"parentId":32,"tags":{},"startTime":1713241963560,"traceId":"3bc4e19cef216580"},{"name":"code-generation","duration":27,"timestamp":691535428,"id":40,"parentId":32,"tags":{},"startTime":1713241963560,"traceId":"3bc4e19cef216580"},{"name":"hash","duration":222,"timestamp":691535608,"id":41,"parentId":32,"tags":{},"startTime":1713241963560,"traceId":"3bc4e19cef216580"},{"name":"code-generation-jobs","duration":180,"timestamp":691535828,"id":42,"parentId":32,"tags":{},"startTime":1713241963560,"traceId":"3bc4e19cef216580"},{"name":"module-assets","duration":66,"timestamp":691535971,"id":43,"parentId":32,"tags":{},"startTime":1713241963561,"traceId":"3bc4e19cef216580"},{"name":"create-chunk-assets","duration":50,"timestamp":691536070,"id":44,"parentId":32,"tags":{},"startTime":1713241963561,"traceId":"3bc4e19cef216580"},{"name":"seal","duration":7189,"timestamp":691530342,"id":32,"parentId":30,"tags":{},"startTime":1713241963555,"traceId":"3bc4e19cef216580"},{"name":"webpack-compilation","duration":30064,"timestamp":691507642,"id":30,"parentId":3,"tags":{"name":"server"},"startTime":1713241963532,"traceId":"3bc4e19cef216580"},{"name":"emit","duration":6218,"timestamp":691538026,"id":45,"parentId":3,"tags":{},"startTime":1713241963563,"traceId":"3bc4e19cef216580"},{"name":"make","duration":275,"timestamp":691550689,"id":47,"parentId":46,"tags":{},"startTime":1713241963575,"traceId":"3bc4e19cef216580"},{"name":"chunk-graph","duration":35,"timestamp":691551518,"id":49,"parentId":48,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"optimize-modules","duration":7,"timestamp":691551586,"id":51,"parentId":48,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunks","duration":15,"timestamp":691551662,"id":52,"parentId":48,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"optimize-tree","duration":8,"timestamp":691551700,"id":53,"parentId":48,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunk-modules","duration":8,"timestamp":691551734,"id":54,"parentId":48,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"optimize","duration":205,"timestamp":691551577,"id":50,"parentId":48,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"module-hash","duration":11,"timestamp":691551920,"id":55,"parentId":48,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"code-generation","duration":10,"timestamp":691551949,"id":56,"parentId":48,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"hash","duration":101,"timestamp":691552012,"id":57,"parentId":48,"tags":{},"startTime":1713241963577,"traceId":"3bc4e19cef216580"},{"name":"code-generation-jobs","duration":34,"timestamp":691552112,"id":58,"parentId":48,"tags":{},"startTime":1713241963577,"traceId":"3bc4e19cef216580"},{"name":"module-assets","duration":14,"timestamp":691552138,"id":59,"parentId":48,"tags":{},"startTime":1713241963577,"traceId":"3bc4e19cef216580"},{"name":"create-chunk-assets","duration":17,"timestamp":691552161,"id":60,"parentId":48,"tags":{},"startTime":1713241963577,"traceId":"3bc4e19cef216580"},{"name":"seal","duration":1299,"timestamp":691551467,"id":48,"parentId":46,"tags":{},"startTime":1713241963576,"traceId":"3bc4e19cef216580"},{"name":"webpack-compilation","duration":3842,"timestamp":691548976,"id":46,"parentId":3,"tags":{"name":"edge-server"},"startTime":1713241963574,"traceId":"3bc4e19cef216580"},{"name":"emit","duration":5744,"timestamp":691552871,"id":61,"parentId":3,"tags":{},"startTime":1713241963577,"traceId":"3bc4e19cef216580"}]
+[{"name":"make","duration":471,"timestamp":691850968,"id":66,"parentId":65,"tags":{},"startTime":1713241963876,"traceId":"3bc4e19cef216580"},{"name":"chunk-graph","duration":85,"timestamp":691851844,"id":68,"parentId":67,"tags":{},"startTime":1713241963876,"traceId":"3bc4e19cef216580"},{"name":"optimize-modules","duration":19,"timestamp":691852005,"id":70,"parentId":67,"tags":{},"startTime":1713241963877,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunks","duration":41,"timestamp":691852081,"id":71,"parentId":67,"tags":{},"startTime":1713241963877,"traceId":"3bc4e19cef216580"},{"name":"optimize-tree","duration":20,"timestamp":691852168,"id":72,"parentId":67,"tags":{},"startTime":1713241963877,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunk-modules","duration":19,"timestamp":691852245,"id":73,"parentId":67,"tags":{},"startTime":1713241963877,"traceId":"3bc4e19cef216580"},{"name":"optimize","duration":698,"timestamp":691851981,"id":69,"parentId":67,"tags":{},"startTime":1713241963877,"traceId":"3bc4e19cef216580"},{"name":"module-hash","duration":28,"timestamp":691853020,"id":74,"parentId":67,"tags":{},"startTime":1713241963878,"traceId":"3bc4e19cef216580"},{"name":"code-generation","duration":25,"timestamp":691853093,"id":75,"parentId":67,"tags":{},"startTime":1713241963878,"traceId":"3bc4e19cef216580"},{"name":"hash","duration":153,"timestamp":691853241,"id":76,"parentId":67,"tags":{},"startTime":1713241963878,"traceId":"3bc4e19cef216580"},{"name":"code-generation-jobs","duration":81,"timestamp":691853392,"id":77,"parentId":67,"tags":{},"startTime":1713241963878,"traceId":"3bc4e19cef216580"},{"name":"module-assets","duration":37,"timestamp":691853452,"id":78,"parentId":67,"tags":{},"startTime":1713241963878,"traceId":"3bc4e19cef216580"},{"name":"create-chunk-assets","duration":48,"timestamp":691853532,"id":79,"parentId":67,"tags":{},"startTime":1713241963878,"traceId":"3bc4e19cef216580"},{"name":"NextJsBuildManifest-generateClientManifest","duration":208,"timestamp":691854443,"id":81,"parentId":65,"tags":{},"startTime":1713241963879,"traceId":"3bc4e19cef216580"},{"name":"NextJsBuildManifest-createassets","duration":359,"timestamp":691854320,"id":80,"parentId":65,"tags":{},"startTime":1713241963879,"traceId":"3bc4e19cef216580"},{"name":"seal","duration":3272,"timestamp":691851727,"id":67,"parentId":65,"tags":{},"startTime":1713241963876,"traceId":"3bc4e19cef216580"},{"name":"webpack-compilation","duration":5988,"timestamp":691849093,"id":65,"parentId":62,"tags":{"name":"client"},"startTime":1713241963874,"traceId":"3bc4e19cef216580"},{"name":"emit","duration":23930,"timestamp":691855153,"id":82,"parentId":62,"tags":{},"startTime":1713241963880,"traceId":"3bc4e19cef216580"},{"name":"webpack-invalidated-client","duration":46705,"timestamp":691835382,"id":62,"parentId":3,"tags":{"trigger":"manual"},"startTime":1713241963860,"traceId":"3bc4e19cef216580"},{"name":"make","duration":855,"timestamp":691887178,"id":84,"parentId":83,"tags":{},"startTime":1713241963912,"traceId":"3bc4e19cef216580"},{"name":"chunk-graph","duration":132,"timestamp":691888568,"id":86,"parentId":85,"tags":{},"startTime":1713241963913,"traceId":"3bc4e19cef216580"},{"name":"optimize-modules","duration":33,"timestamp":691888815,"id":88,"parentId":85,"tags":{},"startTime":1713241963913,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunks","duration":162,"timestamp":691888943,"id":89,"parentId":85,"tags":{},"startTime":1713241963913,"traceId":"3bc4e19cef216580"},{"name":"optimize-tree","duration":27,"timestamp":691889178,"id":90,"parentId":85,"tags":{},"startTime":1713241963914,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunk-modules","duration":30,"timestamp":691889291,"id":91,"parentId":85,"tags":{},"startTime":1713241963914,"traceId":"3bc4e19cef216580"},{"name":"optimize","duration":654,"timestamp":691888781,"id":87,"parentId":85,"tags":{},"startTime":1713241963913,"traceId":"3bc4e19cef216580"},{"name":"module-hash","duration":43,"timestamp":691889879,"id":92,"parentId":85,"tags":{},"startTime":1713241963914,"traceId":"3bc4e19cef216580"},{"name":"code-generation","duration":31,"timestamp":691889989,"id":93,"parentId":85,"tags":{},"startTime":1713241963915,"traceId":"3bc4e19cef216580"},{"name":"hash","duration":306,"timestamp":691890201,"id":94,"parentId":85,"tags":{},"startTime":1713241963915,"traceId":"3bc4e19cef216580"},{"name":"code-generation-jobs","duration":126,"timestamp":691890503,"id":95,"parentId":85,"tags":{},"startTime":1713241963915,"traceId":"3bc4e19cef216580"},{"name":"module-assets","duration":59,"timestamp":691890594,"id":96,"parentId":85,"tags":{},"startTime":1713241963915,"traceId":"3bc4e19cef216580"},{"name":"create-chunk-assets","duration":59,"timestamp":691890691,"id":97,"parentId":85,"tags":{},"startTime":1713241963915,"traceId":"3bc4e19cef216580"},{"name":"seal","duration":3002,"timestamp":691888411,"id":85,"parentId":83,"tags":{},"startTime":1713241963913,"traceId":"3bc4e19cef216580"},{"name":"webpack-compilation","duration":6135,"timestamp":691885405,"id":83,"parentId":63,"tags":{"name":"server"},"startTime":1713241963910,"traceId":"3bc4e19cef216580"},{"name":"setup-dev-bundler","duration":4082129,"timestamp":688567252,"id":2,"parentId":1,"tags":{},"startTime":1713241960592,"traceId":"3bc4e19cef216580"},{"name":"emit","duration":769670,"timestamp":691891615,"id":98,"parentId":63,"tags":{},"startTime":1713241963916,"traceId":"3bc4e19cef216580"},{"name":"webpack-invalidated-server","duration":827712,"timestamp":691835713,"id":63,"parentId":3,"tags":{"trigger":"manual"},"startTime":1713241963860,"traceId":"3bc4e19cef216580"},{"name":"make","duration":452,"timestamp":692670574,"id":100,"parentId":99,"tags":{},"startTime":1713241964695,"traceId":"3bc4e19cef216580"},{"name":"chunk-graph","duration":140,"timestamp":692672036,"id":102,"parentId":101,"tags":{},"startTime":1713241964697,"traceId":"3bc4e19cef216580"},{"name":"optimize-modules","duration":44,"timestamp":692672310,"id":104,"parentId":101,"tags":{},"startTime":1713241964697,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunks","duration":62,"timestamp":692672611,"id":105,"parentId":101,"tags":{},"startTime":1713241964697,"traceId":"3bc4e19cef216580"},{"name":"optimize-tree","duration":45,"timestamp":692672762,"id":106,"parentId":101,"tags":{},"startTime":1713241964697,"traceId":"3bc4e19cef216580"},{"name":"optimize-chunk-modules","duration":48,"timestamp":692672909,"id":107,"parentId":101,"tags":{},"startTime":1713241964697,"traceId":"3bc4e19cef216580"},{"name":"optimize","duration":796,"timestamp":692672267,"id":103,"parentId":101,"tags":{},"startTime":1713241964697,"traceId":"3bc4e19cef216580"},{"name":"module-hash","duration":40,"timestamp":692673965,"id":108,"parentId":101,"tags":{},"startTime":1713241964699,"traceId":"3bc4e19cef216580"},{"name":"code-generation","duration":46,"timestamp":692674086,"id":109,"parentId":101,"tags":{},"startTime":1713241964699,"traceId":"3bc4e19cef216580"},{"name":"hash","duration":289,"timestamp":692674330,"id":110,"parentId":101,"tags":{},"startTime":1713241964699,"traceId":"3bc4e19cef216580"},{"name":"code-generation-jobs","duration":141,"timestamp":692674614,"id":111,"parentId":101,"tags":{},"startTime":1713241964699,"traceId":"3bc4e19cef216580"},{"name":"module-assets","duration":62,"timestamp":692674718,"id":112,"parentId":101,"tags":{},"startTime":1713241964699,"traceId":"3bc4e19cef216580"},{"name":"create-chunk-assets","duration":68,"timestamp":692674820,"id":113,"parentId":101,"tags":{},"startTime":1713241964699,"traceId":"3bc4e19cef216580"},{"name":"seal","duration":4117,"timestamp":692671855,"id":101,"parentId":99,"tags":{},"startTime":1713241964696,"traceId":"3bc4e19cef216580"},{"name":"webpack-compilation","duration":7342,"timestamp":692668769,"id":99,"parentId":64,"tags":{"name":"edge-server"},"startTime":1713241964693,"traceId":"3bc4e19cef216580"},{"name":"run-instrumentation-hook","duration":62,"timestamp":692985510,"id":115,"parentId":1,"tags":{},"startTime":1713241965010,"traceId":"3bc4e19cef216580"},{"name":"start-dev-server","duration":13612820,"timestamp":679391840,"id":1,"tags":{"cpus":"12","platform":"win32","memory.freeMem":"4562337792","memory.totalMem":"16815702016","memory.heapSizeLimit":"8457814016","isTurbopack":false,"memory.rss":"129572864","memory.heapTotal":"81100800","memory.heapUsed":"51272200"},"startTime":1713241951416,"traceId":"3bc4e19cef216580"},{"name":"emit","duration":330833,"timestamp":692676213,"id":114,"parentId":64,"tags":{},"startTime":1713241964701,"traceId":"3bc4e19cef216580"},{"name":"webpack-invalidated-edge-server","duration":1172537,"timestamp":691835780,"id":64,"parentId":3,"tags":{"trigger":"manual"},"startTime":1713241963860,"traceId":"3bc4e19cef216580"}]
diff --git a/components/MapComponent.js b/components/MapComponent.js
index 6efc316d3..c9aa3e6b2 100644
--- a/components/MapComponent.js
+++ b/components/MapComponent.js
@@ -1,17 +1,128 @@
+// components/MapComponent.js
import React, { useEffect, useRef, useState } from "react";
import L from "leaflet";
import "leaflet/dist/leaflet.css";
import "leaflet-contextmenu/dist/leaflet.contextmenu.css";
import "leaflet-contextmenu";
+import * as config from '../config/config.js';
const MapComponent = ({ locations, onLocationUpdate }) => {
- const mapRef = useRef(null);
- const [map, setMap] = useState(null);
- const [online, setOnline] = useState(navigator.onLine);
+ const mapRef = useRef(null); // Referenz auf das DIV-Element der Karte
+ const [map, setMap] = useState(null); // Zustand der Karteninstanz
+ const [online, setOnline] = useState(navigator.onLine); // Zustand der Internetverbindung
+ const [dataStatic, setDataStatic] = useState([]); // Zustand für statische Daten
+ const [dataStatus, setDataStatus] = useState([]); // Zustand für Statusdaten
+ const [dataIcons, setDataIcons] = useState([]); // Zustand für Icons
+ const [dataSystem, setDataSystem] = useState([]); // Zustand für Systemdaten
+
+ // Konstanten für die URLs
+ const mapDataStaticUrl = config.mapDataStaticUrl;
+ const mapDataStatusUrl = config.mapDataStatusUrl;
+ const mapDataIconUrl = config.mapDataIconUrl;
+ const mapDataSystemUrl = config.mapDataSystemUrl;
+
+ console.log('dataStatic hier :', dataStatic);
+ console.log('map:', map);
+ //------------------------------------------
+ useEffect(() => {
+ const fetchData = async () => {
+ try {
+ console.log("Datenabruf gestartet...");
+ const response = await fetch(config.mapDataStaticUrl);
+ const jsonResponse = await response.json();
+
+ // Prüfen, ob die Antwort das erwartete Format hat und Daten enthält
+ if (jsonResponse && jsonResponse.length > 0 && jsonResponse[0].points) {
+ console.log('dataStatic hier :', dataStatic);
+ console.log('map:', map);
+ setDataStatic(jsonResponse[0].points); // Zugriff auf das erste Objekt und dessen points-Array
+ } else {
+ console.error('Erwartete Daten im "points"-Array nicht gefunden', jsonResponse);
+ setDataStatic([]);
+ }
+ } catch (error) {
+ console.error("Fehler beim Laden der Daten: ", error);
+ setDataStatic([]);
+ }
+ };
+
+ fetchData();
+ }, []); // Dependency-Array ist leer, um den Effekt nur beim Mount auszuführen
+
+
+//------------------------------------------
+ useEffect(() => {
+ // Prüfen der Internetverbindung beim Start
+ console.log("Prüfen der Internetverbindung...");
+ checkInternet();
+
+ // Asynchrones Laden der Kartendaten beim Initialisieren der Komponente
+ const fetchData = async () => {
+ try {
+ console.log("Datenabruf gestartet...");
+ const responses = await Promise.all([
+ fetch(config.mapDataStaticUrl).then(res => res.json()),
+ fetch(config.mapDataStatusUrl).then(res => res.json()),
+ fetch(config.mapDataIconUrl).then(res => res.json()),
+ fetch(config.mapDataSystemUrl).then(res => res.json())
+ ]);
+ console.log("Daten erfolgreich geladen.");
+ setDataStatic(responses[0].Points);
+ setDataStatus(responses[1].Statis);
+ setDataIcons(responses[2].List);
+ setDataSystem(responses[3].Systems.filter(system => system.Allow === 1));
+ } catch (error) {
+ console.error("Fehler beim Laden der Daten: ", error);
+ }
+ };
+
+ fetchData();
+ }, []);// Leeres Abhängigkeitsarray, um nur beim ersten Mount zu laden
+
+ useEffect(() => {
+ if (map && Array.isArray(dataStatic)) {
+ dataStatic.forEach(item => {
+ const marker = L.marker([item.y, item.x], { // Verwendung von item.y und item.x statt item.latitude und item.longitude
+ icon: L.icon({
+ iconUrl: '/path/to/icon.png', // Pfad zum Icon
+ iconSize: [25, 41], // Größe des Icons
+ iconAnchor: [12, 41], // Ankerpunkt des Icons
+ popupAnchor: [1, -34], // Position des Popups relativ zum Icon
+ shadowSize: [41, 41] // Größe des Schattens
+ })
+ }).addTo(map);
+
+ // Anpassen des Popups um relevante Daten anzuzeigen
+ marker.bindPopup(`${item.lD_Name}
${item.device}`).openPopup();
+ });
+ }
+ }, [map, dataStatic]); // Abhängigkeiten des Effekts
+
+
const offlineTileLayer = "../TileMap/mapTiles/{z}/{x}/{y}.png";
const onlineTileLayer = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";
+ // Create map layers
+ const TALAS = new L.layerGroup();
+ const ECI = new L.layerGroup();
+ const ULAF = new L.layerGroup();
+ const GSMModem = new L.layerGroup();
+ const CiscoRouter = new L.layerGroup();
+ const WAGO = new L.layerGroup();
+ const Siemens = new L.layerGroup();
+ const OTDR = new L.layerGroup();
+ const WDM = new L.layerGroup();
+ const GMA = new L.layerGroup();
+ const Sonstige = new L.layerGroup();
+ const TALASICL = new L.layerGroup();
let initialMap = [];
+ useEffect(() => {
+ console.log("Server URL from config:", config.serverURL);
+ if (typeof window !== "undefined") {
+ console.log("Window height from config:", config.windowHeight);
+ }
+}, []);
+
// Funktionen zur Überwachung der Internetverbindung
const checkInternet = () => {
console.log("Checking internet connectivity...");
@@ -25,6 +136,7 @@ const MapComponent = ({ locations, onLocationUpdate }) => {
initialMap = L.map(mapRef.current, {
center: [53.111111, 8.4625],
zoom: 10,
+ layers: [TALAS, ECI, ULAF, GSMModem, CiscoRouter, WAGO, Siemens, OTDR, WDM, GMA, Sonstige, TALASICL],
zoomControl: false, // Deaktiviere die Standard-Zoomsteuerung
contextmenu: true,
contextmenuItems: [
diff --git a/config/config.js b/config/config.js
new file mode 100644
index 000000000..73210540f
--- /dev/null
+++ b/config/config.js
@@ -0,0 +1,72 @@
+// Definieren der grundlegenden Umgebungseinstellungen und Konfigurationen der Karte
+const mapVersion = "0.5.3"; // Die Version der verwendeten Karte
+const standardSideMenu = true; // Einstellung, ob ein standardmäßiges Seitenmenü verwendet wird
+const fullSideMenu = false; // Einstellung, ob ein vollständiges Seitenmenü verwendet wird
+const offlineData = false; // Schalter, um anzugeben, ob Daten offline verfügbar gemacht werden sollen
+const serverURL = "/api"; // Die Basis-URL des Servers, von dem Daten bezogen werden
+
+// Initialisieren von Variablen, die später im Browserkontext gesetzt werden
+let windowHeight, url_string, url, c, user;
+let mapDataStaticUrl,
+ mapDataStatusUrl,
+ mapDataMeasures,
+ mapDataIconUrl,
+ mapDataSystemUrl;
+let mapStaticOfflineURL,
+ mapStatusOfflineURL,
+ mapSystemOfflineURL,
+ mapIconsOfflineURL,
+ mapMeasuresOfflineURL;
+
+// Prüfen, ob das Code im Browser ausgeführt wird
+if (typeof window !== "undefined") {
+ // Diese Variablen werden nur im Browser-Kontext initialisiert
+ windowHeight = window.innerHeight; // Die Höhe des Browserfensters
+ url_string = window.location.href; // Die vollständige URL als String
+ url = new URL(url_string); // Die URL als URL-Objekt, um Teile der URL einfacher zu handhaben
+ c = url.searchParams.get("m") || "10"; // Ein Parameter aus der URL, Standardwert ist '10'
+ user = url.searchParams.get("u") || "484"; // Ein weiterer Parameter aus der URL, Standardwert ist '487 oder 484'
+
+ // Konstruktion von URLs, die auf spezifische Ressourcen auf dem Server zeigen
+ mapDataStaticUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict?idMap=${c}&idUser=${user}`;
+ mapDataStatusUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict?idMap=${c}&idUser=${user}`;
+ mapDataMeasures = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap=${c}`;
+ mapDataIconUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic`;
+ mapDataSystemUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap=${c}&idUser=${user}`;
+
+ /* mapDataStaticUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict`;
+ mapDataStatusUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict`;
+ mapDataMeasures = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements`;
+ mapDataIconUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic`;
+ mapDataSystemUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic`; */
+ // URLs zu Offline-Daten, falls benötigt
+ mapStaticOfflineURL = `offlineTestData/idMap${c}GisStationenStatic.json`;
+ mapStatusOfflineURL = `offlineTestData/idMap${c}GisStationenStatus.json`;
+ mapSystemOfflineURL = `offlineTestData/idMap${c}GisSystemStatic.json`;
+ mapIconsOfflineURL = "offlineTestData/icons.json";
+ mapMeasuresOfflineURL = `offlineTestData/idMap${c}GisSystemMeasures.json`;
+}
+
+// Export der definierten Variablen und URLs, damit sie in anderen Teilen der Anwendung verwendet werden können
+export {
+ mapVersion,
+ standardSideMenu,
+ fullSideMenu,
+ offlineData,
+ serverURL,
+ windowHeight,
+ url_string,
+ url,
+ c,
+ user,
+ mapDataStaticUrl,
+ mapDataStatusUrl,
+ mapDataMeasures,
+ mapDataIconUrl,
+ mapDataSystemUrl,
+ mapStaticOfflineURL,
+ mapStatusOfflineURL,
+ mapSystemOfflineURL,
+ mapIconsOfflineURL,
+ mapMeasuresOfflineURL,
+};
diff --git a/package-lock.json b/package-lock.json
index 4d4b06660..9ece24073 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,6 +5,7 @@
"packages": {
"": {
"dependencies": {
+ "http-proxy-middleware": "^3.0.0",
"leaflet": "^1.9.4",
"leaflet-contextmenu": "^1.4.0",
"mysql": "^2.18.1",
@@ -306,6 +307,22 @@
"tslib": "^2.4.0"
}
},
+ "node_modules/@types/http-proxy": {
+ "version": "1.17.14",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz",
+ "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "20.12.7",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz",
+ "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
"node_modules/ansi-regex": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
@@ -431,7 +448,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -609,6 +625,22 @@
"node": ">=4"
}
},
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
"node_modules/didyoumean": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
@@ -648,6 +680,11 @@
"node": ">=6"
}
},
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
"node_modules/fast-glob": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
@@ -689,7 +726,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -697,6 +733,25 @@
"node": ">=8"
}
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/foreground-child": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
@@ -800,6 +855,35 @@
"node": ">= 0.4"
}
},
+ "node_modules/http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dependencies": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/http-proxy-middleware": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz",
+ "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==",
+ "dependencies": {
+ "@types/http-proxy": "^1.17.10",
+ "debug": "^4.3.4",
+ "http-proxy": "^1.18.1",
+ "is-glob": "^4.0.1",
+ "is-plain-obj": "^3.0.0",
+ "micromatch": "^4.0.5"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@@ -833,7 +917,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -851,7 +934,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -863,11 +945,21 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
"engines": {
"node": ">=0.12.0"
}
},
+ "node_modules/is-plain-obj": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -969,7 +1061,6 @@
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
"dependencies": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@@ -1002,6 +1093,11 @@
"node": ">=16 || 14 >=14.17"
}
},
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
"node_modules/mysql": {
"version": "2.18.1",
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
@@ -1202,7 +1298,6 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
"engines": {
"node": ">=8.6"
},
@@ -1488,6 +1583,11 @@
"node": ">=8.10.0"
}
},
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+ },
"node_modules/resolve": {
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
@@ -1830,7 +1930,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -1849,6 +1948,11 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+ },
"node_modules/update-browserslist-db": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
diff --git a/package.json b/package.json
index 1416944c3..b1fcd9074 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,6 @@
{
"dependencies": {
+ "http-proxy-middleware": "^3.0.0",
"leaflet": "^1.9.4",
"leaflet-contextmenu": "^1.4.0",
"mysql": "^2.18.1",
diff --git a/pages/_document.js b/pages/_document.js
deleted file mode 100644
index 28befd8e6..000000000
--- a/pages/_document.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// pages/_document.js
-import Document, { Html, Head, Main, NextScript } from "next/document";
-
-class MyDocument extends Document {
- render() {
- return (
-
-
- {/* Hier Meta-Tags oder Schriftarten einbinden */}
- {/* Das Script wird hier eingebunden, um es auf allen Seiten verfügbar zu machen */}
-
-
-
-
-
-
-
- );
- }
-}
-
-export default MyDocument;
diff --git a/pages/api/[...path].js b/pages/api/[...path].js
new file mode 100644
index 000000000..c03d25934
--- /dev/null
+++ b/pages/api/[...path].js
@@ -0,0 +1,11 @@
+// pages/api/[...path].js
+import { createProxyMiddleware } from "http-proxy-middleware";
+
+export default createProxyMiddleware({
+ target: "http://10.10.0.13", // Ziel-URL des Proxys
+ changeOrigin: true,
+ pathRewrite: {
+ "^/api": "/", // Optional: Entfernt /api aus dem Pfad, wenn das Backend dies nicht erfordert
+ },
+ logLevel: "debug", // Setzt das Logging-Level auf "debug" für detaillierte Ausgaben
+});
diff --git a/public/js/config.js b/public/js/config.js
index dd5a2279f..b2738279a 100644
--- a/public/js/config.js
+++ b/public/js/config.js
@@ -1,104 +1,41 @@
-/**
- * @file config.js
- * @author Andreas Tholen
- * Contact: info@littwin-systechnik.de
- * @version 0.5.3
- * @description Config-File for the TALAS.Map
- **/
-//Versionsnummer
-var mapVersion = "0.5.3";
+// /public/js/config.js
+// Umgebungsvariablen und Konfigurationseinstellungen
+const mapVersion = "0.5.3";
+const standardSideMenu = true;
+const fullSideMenu = false;
+const offlineData = false;
+const serverURL = "http://10.10.0.13";
-//Visual Config
-var standardSideMenu = true;
-var fullSideMenu = false;
+let windowHeight, url_string, url, c, user;
+let mapDataStaticUrl, mapDataStatusUrl, mapDataMeasures, mapDataIconUrl, mapDataSystemUrl;
+let mapStaticOfflineURL, mapStatusOfflineURL, mapSystemOfflineURL, mapIconsOfflineURL, mapMeasuresOfflineURL;
-// Window Height erkennen
-var windowHeight = window.innerHeight;
-//console.log("windowheighet:"+windowHeight);
+if (typeof window !== "undefined") {
+ // Dieser Code wird nur im Browser ausgeführt
+ windowHeight = window.innerHeight;
+ url_string = window.location.href;
+ url = new URL(url_string);
+ c = url.searchParams.get("m") || '10'; // Standardwert, falls nichts gesetzt ist
+ user = url.searchParams.get("u") || '487'; // Standardwert, falls nichts gesetzt ist
-//Zoom
-var mapZoomMin = 4;
-var mapZoomMax = 17;
+ mapDataStaticUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict?idMap=${c}&idUser=${user}`;
+ mapDataStatusUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict?idMap=${c}&idUser=${user}`;
+ mapDataMeasures = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap=${c}`;
+ mapDataIconUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic`;
+ mapDataSystemUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap=${c}&idUser=${user}`;
-//Datenquelle
-var offlineData = false;
-var serverURL = "http://10.10.0.13";
-
-var url_string = window.location;
-var url = new URL(url_string);
-var c = url.searchParams.get("m");
-//c = 10;
-console.log("idMap: " + c);
-
-var user = url.searchParams.get("u");
-if (user === null) {
- user = 487;
+ mapStaticOfflineURL = `offlineTestData/idMap${c}GisStationenStatic.json`;
+ mapStatusOfflineURL = `offlineTestData/idMap${c}GisStationenStatus.json`;
+ mapSystemOfflineURL = `offlineTestData/idMap${c}GisSystemStatic.json`;
+ mapIconsOfflineURL = "offlineTestData/icons.json";
+ mapMeasuresOfflineURL = `offlineTestData/idMap${c}GisSystemMeasures.json`;
}
-console.log("idUser: " + user);
-// Kartedaten einlesen
-var mapDataStaticUrl =
- serverURL +
- "/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict?idMap=" +
- c +
- "&idUser=" +
- user;
-var mapDataStatusUrl =
- serverURL +
- "/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict?idMap=" +
- c +
- "&idUser=" +
- user;
-var mapDataMeasures =
- serverURL +
- "/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap=" +
- c;
-var mapDataIconUrl =
- serverURL + "/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic";
-var mapDataSystemUrl =
- serverURL +
- "/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap=" +
- c +
- "&idUser=" +
- user;
-const mapStaticOfflineURL =
- "offlineTestData/idMap" + c + "GisStationenStatic.json";
-const mapStatusOfflineURL =
- "offlineTestData/idMap" + c + "GisStationenStatus.json";
-const mapSystemOfflineURL =
- "offlineTestData/idMap" + c + "GisSystemStatic.json";
-const mapIconsOfflineURL = "offlineTestData/icons.json";
-const mapMeasuresOfflineURL =
- "offlineTestData/idMap" + c + "GisSystemMeasures.json";
-//das kann auskommentiert werden
-/*
-if (offlineData) {
- console.log("%cSYSTEM| Offline Daten aktiviert!", 'color: blue');
- mapDataStaticUrl = mapStaticOfflineURL;
- mapDataSystemUrl = mapSystemOfflineURL;
- mapDataStatusUrl = mapStatusOfflineURL;
- mapDataIconUrl = mapIconsOfflineURL;
- mapDataMeasures = mapMeasuresOfflineURL;
- console.log("%cSYSTEM| Static URL: %c"+mapDataStaticUrl, 'color: blue', 'color: green');
- console.log("%cSYSTEM| Status URL: %c"+mapDataStatusUrl, 'color: blue', 'color: green');
-}
-*/
-// Update Zeit
-var updateIntervall = 5000; // in Millisekunden
-
-// example -> L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map);
-console.log("%cSYSTEM| Kartenfunktionen geladen", "color: blue");
-console.log(
- "%cSYSTEM| Die aktuelle Fenstergröße Breite: " +
- window.innerWidth +
- "px Höhe: " +
- window.innerHeight +
- "px",
- "color: blue"
-);
-console.log("%cMAP| Marker-Icons preload abgeschlossen", "color: green");
-console.log(
- "%cMAP| Updateintervall: " + updateIntervall + " ms",
- "color: green"
-);
+// Export von Variablen und Funktionen
+export {
+ mapVersion, standardSideMenu, fullSideMenu, offlineData, serverURL,
+ windowHeight, url_string, url, c, user,
+ mapDataStaticUrl, mapDataStatusUrl, mapDataMeasures, mapDataIconUrl, mapDataSystemUrl,
+ mapStaticOfflineURL, mapStatusOfflineURL, mapSystemOfflineURL, mapIconsOfflineURL, mapMeasuresOfflineURL
+};
diff --git a/public/js/js/config.js b/public/js/js/config.js
deleted file mode 100644
index 1059aaa00..000000000
--- a/public/js/js/config.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * @file config.js
- * @author Andreas Tholen
- * Contact: info@littwin-systechnik.de
- * @version 0.5.3
- * @description Config-File for the TALAS.Map
-**/
-
-//Versionsnummer
-var mapVersion = "0.5.3";
-
-//Visual Config
-var standardSideMenu = true;
-var fullSideMenu = false;
-
-// Window Height erkennen
-var windowHeight = window.innerHeight;
-//console.log("windowheighet:"+windowHeight);
-
-//Zoom
-var mapZoomMin = 4;
-var mapZoomMax = 15;
-
-//Datenquelle
-var offlineData = false;
-var serverURL = "http://10.10.0.13";
-
- var url_string = window.location;
- var url = new URL(url_string);
- var c = url.searchParams.get("idMap");
- //console.log("idMap: "+c);
-
- var user = url.searchParams.get("idUser");
- if (user === null) {
- user = 0;
- }
- //console.log("idUser: "+user);
-
-// Kartedaten einlesen
-var mapDataStaticUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatic?idMap="+c;
-var mapDataStatusUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsStatus?idMap="+c;
-var mapDataMeasures = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap="+c;
-var mapDataIconUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic";
-var mapDataSystemUrl = serverURL+"/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap="+c+"&idUser="+user;
-const mapStaticOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatic.json";
-const mapStatusOfflineURL = "offlineTestData/idMap"+c+"GisStationenStatus.json";
-const mapSystemOfflineURL = "offlineTestData/idMap"+c+"GisSystemStatic.json";
-const mapIconsOfflineURL = "offlineTestData/icons.json";
-const mapMeasuresOfflineURL = "offlineTestData/idMap"+c+"GisSystemMeasures.json";
-
-if (offlineData) {
- console.log("%cSYSTEM| Offline Daten aktiviert!", 'color: blue');
- mapDataStaticUrl = mapStaticOfflineURL;
- mapDataSystemUrl = mapSystemOfflineURL;
- mapDataStatusUrl = mapStatusOfflineURL;
- mapDataIconUrl = mapIconsOfflineURL;
- mapDataMeasures = mapMeasuresOfflineURL;
- console.log("%cSYSTEM| Static URL: %c"+mapDataStaticUrl, 'color: blue', 'color: green');
- console.log("%cSYSTEM| Status URL: %c"+mapDataStatusUrl, 'color: blue', 'color: green');
-}
-
-// Update Zeit
-var updateIntervall = 5000; // in Millisekunden
-
-// example -> L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map);
-console.log("%cSYSTEM| Kartenfunktionen geladen", 'color: blue');
-console.log("%cSYSTEM| Die aktuelle Fenstergröße Breite: " + window.innerWidth+"px Höhe: "+window.innerHeight + "px", 'color: blue');
-console.log("%cMAP| Marker-Icons preload abgeschlossen", 'color: green');
-console.log("%cMAP| Updateintervall: "+updateIntervall+" ms", 'color: green');
\ No newline at end of file