/* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ (() => { var exports = {}; exports.id = "app/page"; exports.ids = ["app/page"]; exports.modules = { /***/ "next/dist/compiled/next-server/app-page.runtime.dev.js": /*!*************************************************************************!*\ !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***! \*************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js"); /***/ }), /***/ "../app-render/action-async-storage.external": /*!*******************************************************************************!*\ !*** external "next/dist/server/app-render/action-async-storage.external.js" ***! \*******************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/server/app-render/action-async-storage.external.js"); /***/ }), /***/ "../app-render/after-task-async-storage.external": /*!***********************************************************************************!*\ !*** external "next/dist/server/app-render/after-task-async-storage.external.js" ***! \***********************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/server/app-render/after-task-async-storage.external.js"); /***/ }), /***/ "../app-render/work-async-storage.external": /*!*****************************************************************************!*\ !*** external "next/dist/server/app-render/work-async-storage.external.js" ***! \*****************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/server/app-render/work-async-storage.external.js"); /***/ }), /***/ "./work-unit-async-storage.external": /*!**********************************************************************************!*\ !*** external "next/dist/server/app-render/work-unit-async-storage.external.js" ***! \**********************************************************************************/ /***/ ((module) => { "use strict"; module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js"); /***/ }), /***/ "path": /*!***********************!*\ !*** external "path" ***! \***********************/ /***/ ((module) => { "use strict"; module.exports = require("path"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***! \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__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 */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?91d2\");\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(rsc)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\nconst module0 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\"));\nconst module1 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23));\nconst module2 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/forbidden-error */ \"(rsc)/./node_modules/next/dist/client/components/forbidden-error.js\", 23));\nconst module3 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/unauthorized-error */ \"(rsc)/./node_modules/next/dist/client/components/unauthorized-error.js\", 23));\nconst page4 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(rsc)/./src/app/page.tsx\"));\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: ['__PAGE__', {}, {\n page: [page4, \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\"],\n \n }]\n },\n {\n 'layout': [module0, \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout.tsx\"],\n'not-found': [module1, \"next/dist/client/components/not-found-error\"],\n'forbidden': [module2, \"next/dist/client/components/forbidden-error\"],\n'unauthorized': [module3, \"next/dist/client/components/unauthorized-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/page\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIvaW5kZXguanM/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPSUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0JBQXNCLG9KQUEwSDtBQUNoSixzQkFBc0IsME5BQWdGO0FBQ3RHLHNCQUFzQiwwTkFBZ0Y7QUFDdEcsc0JBQXNCLGdPQUFtRjtBQUN6RyxvQkFBb0IsZ0pBQXdIO0FBRzFJO0FBQ3NEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBQzZEO0FBQ3BGLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUN1RDtBQUN2RDtBQUNPLHdCQUF3Qix1R0FBa0I7QUFDakQ7QUFDQSxjQUFjLGtFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9kdWxlMCA9ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvbGF5b3V0LnRzeFwiKTtcbmNvbnN0IG1vZHVsZTEgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIik7XG5jb25zdCBtb2R1bGUyID0gKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZm9yYmlkZGVuLWVycm9yXCIpO1xuY29uc3QgbW9kdWxlMyA9ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC1lcnJvclwiKTtcbmNvbnN0IHBhZ2U0ID0gKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9wYWdlLnRzeFwiKTtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCIgd2l0aCB7XG4gICAgJ3R1cmJvcGFjay10cmFuc2l0aW9uJzogJ25leHQtc3NyJ1xufTtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmRcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbJ19fUEFHRV9fJywge30sIHtcbiAgICAgICAgICBwYWdlOiBbcGFnZTQsIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3hcIl0sXG4gICAgICAgICAgXG4gICAgICAgIH1dXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsYXlvdXQnOiBbbW9kdWxlMCwgXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9sYXlvdXQudHN4XCJdLFxuJ25vdC1mb3VuZCc6IFttb2R1bGUxLCBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIl0sXG4nZm9yYmlkZGVuJzogW21vZHVsZTIsIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2ZvcmJpZGRlbi1lcnJvclwiXSxcbid1bmF1dGhvcml6ZWQnOiBbbW9kdWxlMywgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvdW5hdXRob3JpemVkLWVycm9yXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9zcmMvYXBwL3BhZ2UudHN4XCJdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmV4cG9ydCAqIGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZVwiO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUGFnZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgcGFnZTogXCIvcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogJycsXG4gICAgICAgIGZpbGVuYW1lOiAnJyxcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfVxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(rsc)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-segment.js */ \"(rsc)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(rsc)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/metadata-boundary.js */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata-boundary.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGY2xpZW50LXBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZjbGllbnQtc2VnbWVudC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmVycm9yLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGaHR0cC1hY2Nlc3MtZmFsbGJhY2slMkZlcnJvci1ib3VuZGFyeS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmxheW91dC1yb3V0ZXIuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZsaWIlMkZtZXRhZGF0YSUyRm1ldGFkYXRhLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxvT0FBK0o7QUFDL0o7QUFDQSwwT0FBa0s7QUFDbEs7QUFDQSwwT0FBa0s7QUFDbEs7QUFDQSxvUkFBdUw7QUFDdkw7QUFDQSx3T0FBaUs7QUFDaks7QUFDQSxzUUFBZ0w7QUFDaEw7QUFDQSxzT0FBZ0siLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudC5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvbWV0YWRhdGEtYm91bmRhcnkuanNcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(ssr)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-segment.js */ \"(ssr)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/metadata-boundary.js */ \"(ssr)/./node_modules/next/dist/lib/metadata/metadata-boundary.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGY2xpZW50LXBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZjbGllbnQtc2VnbWVudC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmVycm9yLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGaHR0cC1hY2Nlc3MtZmFsbGJhY2slMkZlcnJvci1ib3VuZGFyeS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmxheW91dC1yb3V0ZXIuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZsaWIlMkZtZXRhZGF0YSUyRm1ldGFkYXRhLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxvT0FBK0o7QUFDL0o7QUFDQSwwT0FBa0s7QUFDbEs7QUFDQSwwT0FBa0s7QUFDbEs7QUFDQSxvUkFBdUw7QUFDdkw7QUFDQSx3T0FBaUs7QUFDaks7QUFDQSxzUUFBZ0w7QUFDaEw7QUFDQSxzT0FBZ0siLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudC5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvbWV0YWRhdGEtYm91bmRhcnkuanNcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); /***/ }), /***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!**************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \**************************************************************************************************************************************************************************************************************************************************************************/ /***/ (() => { /***/ }), /***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!**************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \**************************************************************************************************************************************************************************************************************************************************************************/ /***/ (() => { /***/ }), /***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!***********************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \***********************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(rsc)/./src/app/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGc3JjJTJGYXBwJTJGcGFnZS50c3glMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGdKQUF3SCIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); /***/ }), /***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!": /*!***********************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! \***********************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(ssr)/./src/app/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGc3JjJTJGYXBwJTJGcGFnZS50c3glMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGdKQUF3SCIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); /***/ }), /***/ "(ssr)/./src/app/page.tsx": /*!**************************!*\ !*** ./src/app/page.tsx ***! \**************************/ /***/ ((__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 */ Dashboard)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/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 */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/server.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/external-link.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/settings.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/activity.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/layout-dashboard.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/monitor.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/triangle-alert.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/history.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/plus.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/bell.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/circle-check.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertTriangle,Bell,CheckCircle2,Clock,ExternalLink,History,LayoutDashboard,Monitor,Plus,RefreshCw,Search,Server,Settings,Trash2,Zap!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/zap.js\");\n/* harmony import */ var _barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=Line,LineChart,ResponsiveContainer!=!recharts */ \"(ssr)/./node_modules/recharts/es6/component/ResponsiveContainer.js\");\n/* harmony import */ var _barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Line,LineChart,ResponsiveContainer!=!recharts */ \"(ssr)/./node_modules/recharts/es6/chart/LineChart.js\");\n/* harmony import */ var _barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Line,LineChart,ResponsiveContainer!=!recharts */ \"(ssr)/./node_modules/recharts/es6/cartesian/Line.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n// Generate sparkline data\nconst generateSparklineData = (points, isUp)=>{\n return Array.from({\n length: points\n }, (_, i)=>({\n value: isUp ? 80 + Math.random() * 20 : Math.random() * 30,\n time: i\n }));\n};\n// shadcn-style Card Component\nconst Card = ({ children, className = \"\" })=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `bg-slate-900/60 backdrop-blur-xl border border-slate-800/60 rounded-xl overflow-hidden ${className}`,\n children: children\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 66,\n columnNumber: 3\n }, undefined);\nconst CardContent = ({ children, className = \"\" })=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `p-6 ${className}`,\n children: children\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 72,\n columnNumber: 3\n }, undefined);\n// shadcn-style Badge\nconst Badge = ({ children, variant = \"default\", className = \"\" })=>{\n const variants = {\n default: \"bg-slate-800 text-slate-200 border-slate-700\",\n success: \"bg-emerald-500/10 text-emerald-400 border-emerald-500/20\",\n destructive: \"bg-red-500/10 text-red-400 border-red-500/20\",\n warning: \"bg-amber-500/10 text-amber-400 border-amber-500/20\"\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border ${variants[variant]} ${className}`,\n children: children\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 92,\n columnNumber: 5\n }, undefined);\n};\n// shadcn-style Progress\nconst Progress = ({ value, className = \"\" })=>{\n const getColor = ()=>{\n if (value >= 95) return \"bg-emerald-500\";\n if (value >= 80) return \"bg-amber-500\";\n return \"bg-red-500\";\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-full bg-slate-800 rounded-full h-2 overflow-hidden ${className}`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n width: 0\n },\n animate: {\n width: `${value}%`\n },\n transition: {\n duration: 1,\n ease: \"easeOut\"\n },\n className: `h-full rounded-full ${getColor()}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 107,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 106,\n columnNumber: 5\n }, undefined);\n};\n// shadcn-style Button\nconst Button = ({ children, variant = \"default\", size = \"default\", className = \"\", ...props })=>{\n const variants = {\n default: \"bg-emerald-600 hover:bg-emerald-500 text-white\",\n ghost: \"hover:bg-slate-800 text-slate-400 hover:text-white\",\n outline: \"border border-slate-700 hover:bg-slate-800 text-slate-300\"\n };\n const sizes = {\n default: \"px-4 py-2\",\n sm: \"px-3 py-1.5 text-sm\",\n icon: \"p-2\"\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: `inline-flex items-center justify-center rounded-lg font-medium transition-colors ${variants[variant]} ${sizes[size]} ${className}`,\n ...props,\n children: children\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 141,\n columnNumber: 5\n }, undefined);\n};\n// Sidebar Item Component\nconst SidebarItem = ({ icon: Icon, label, isActive, onClick })=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.button, {\n onClick: onClick,\n whileHover: {\n x: 2\n },\n whileTap: {\n scale: 0.98\n },\n className: `w-full flex items-center gap-3 px-3 py-2.5 rounded-lg transition-all duration-200 ${isActive ? \"bg-emerald-500/10 text-emerald-400 border border-emerald-500/20\" : \"text-slate-400 hover:text-slate-100 hover:bg-slate-800/50\"}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n className: \"w-5 h-5 flex-shrink-0\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 172,\n columnNumber: 5\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-medium whitespace-nowrap\",\n children: label\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 173,\n columnNumber: 5\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 162,\n columnNumber: 3\n }, undefined);\n// KPI Card Component\nconst KPICard = ({ title, value, subtitle, icon: Icon, color, data })=>{\n const colorMap = {\n emerald: {\n bg: \"bg-emerald-500/10\",\n text: \"text-emerald-400\",\n bar: \"#10b981\"\n },\n blue: {\n bg: \"bg-blue-500/10\",\n text: \"text-blue-400\",\n bar: \"#3b82f6\"\n },\n purple: {\n bg: \"bg-purple-500/10\",\n text: \"text-purple-400\",\n bar: \"#a855f7\"\n },\n amber: {\n bg: \"bg-amber-500/10\",\n text: \"text-amber-400\",\n bar: \"#f59e0b\"\n }\n };\n const colors = colorMap[color] || colorMap.emerald;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Card, {\n className: \"hover:border-slate-700/60 transition-all duration-300 hover:shadow-xl hover:shadow-black/20 hover:scale-[1.02]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CardContent, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 text-sm font-medium mb-1\",\n children: title\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 206,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold text-white\",\n children: value\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 207,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-500 text-xs mt-1\",\n children: subtitle\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 208,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 205,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `p-2.5 rounded-lg ${colors.bg}`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Icon, {\n className: `w-5 h-5 ${colors.text}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 211,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 210,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 204,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 h-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_3__.ResponsiveContainer, {\n width: \"100%\",\n height: \"100%\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_4__.LineChart, {\n data: data,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_5__.Line, {\n type: \"monotone\",\n dataKey: \"value\",\n stroke: colors.bar,\n strokeWidth: 2,\n dot: false\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 217,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 216,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 215,\n columnNumber: 11\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 214,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 203,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 202,\n columnNumber: 5\n }, undefined);\n};\n// Service Card Component\nconst ServiceCard = ({ app, status, onDelete })=>{\n const [isHovered, setIsHovered] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const sparklineData = generateSparklineData(10, status.isUp);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n layout: true,\n initial: {\n opacity: 0,\n scale: 0.95\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n exit: {\n opacity: 0,\n scale: 0.95\n },\n whileHover: {\n scale: 1.02,\n transition: {\n duration: 0.2\n }\n },\n onHoverStart: ()=>setIsHovered(true),\n onHoverEnd: ()=>setIsHovered(false),\n className: \"group\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Card, {\n className: \"h-full hover:border-slate-700/60 transition-all duration-300 hover:shadow-xl hover:shadow-black/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `h-1 w-full ${status.isUp ? \"bg-emerald-500\" : \"bg-red-500\"}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 258,\n columnNumber: 9\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(CardContent, {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-10 h-10 rounded-lg flex items-center justify-center ${status.isUp ? \"bg-emerald-500/10\" : \"bg-red-500/10\"}`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: `w-5 h-5 ${status.isUp ? \"text-emerald-400\" : \"text-red-400\"}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 265,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 264,\n columnNumber: 15\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-semibold text-white flex items-center gap-2\",\n children: [\n app.name,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: app.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-slate-500 hover:text-emerald-400 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"w-3.5 h-3.5\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 276,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 270,\n columnNumber: 19\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 268,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-500\",\n children: [\n \"Port \",\n app.port\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 279,\n columnNumber: 17\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 267,\n columnNumber: 15\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 263,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Badge, {\n variant: status.isUp ? \"success\" : \"destructive\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative flex h-1.5 w-1.5 mr-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 ${status.isUp ? \"bg-emerald-400\" : \"bg-red-400\"}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 285,\n columnNumber: 17\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `relative inline-flex rounded-full h-1.5 w-1.5 ${status.isUp ? \"bg-emerald-500\" : \"bg-red-500\"}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 286,\n columnNumber: 17\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 284,\n columnNumber: 15\n }, undefined),\n status.isUp ? \"Operational\" : \"Down\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 283,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 262,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-slate-400\",\n children: \"Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 295,\n columnNumber: 15\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg font-semibold text-white\",\n children: [\n status.uptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 296,\n columnNumber: 15\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 294,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Progress, {\n value: status.uptime\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 298,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 293,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-slate-400\",\n children: \"Response Time\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 303,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-2xl font-bold text-white\",\n children: status.avgResponseTime > 0 ? `${status.avgResponseTime}ms` : \"—\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 304,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 302,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-10 -mx-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_3__.ResponsiveContainer, {\n width: \"100%\",\n height: \"100%\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_4__.LineChart, {\n data: sparklineData,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Line_LineChart_ResponsiveContainer_recharts__WEBPACK_IMPORTED_MODULE_5__.Line, {\n type: \"monotone\",\n dataKey: \"value\",\n stroke: status.isUp ? \"#10b981\" : \"#ef4444\",\n strokeWidth: 1.5,\n dot: false\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 313,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 312,\n columnNumber: 15\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 311,\n columnNumber: 13\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 310,\n columnNumber: 11\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between pt-2 border-t border-slate-800/60\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-slate-500 flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-3 h-3\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 327,\n columnNumber: 15\n }, undefined),\n status.latest ? new Date(status.latest.timestamp).toLocaleTimeString() : \"Never\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 326,\n columnNumber: 13\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_9__.AnimatePresence, {\n children: isHovered && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n x: 10\n },\n animate: {\n opacity: 1,\n x: 0\n },\n exit: {\n opacity: 0,\n x: 10\n },\n className: \"flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-8 w-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 340,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 339,\n columnNumber: 19\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-8 w-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 343,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 342,\n columnNumber: 19\n }, undefined),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"h-8 w-8 hover:text-red-400 hover:bg-red-500/10\",\n onClick: onDelete,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 351,\n columnNumber: 21\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 345,\n columnNumber: 19\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 333,\n columnNumber: 17\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 331,\n columnNumber: 13\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 325,\n columnNumber: 11\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 260,\n columnNumber: 9\n }, undefined)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 256,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 246,\n columnNumber: 5\n }, undefined);\n};\nfunction Dashboard() {\n const [apps, setApps] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [status, setStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [activeNav, setActiveNav] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"overview\");\n const [showAddModal, setShowAddModal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [newApp, setNewApp] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n url: \"http://localhost:\",\n port: 3000,\n enabled: true\n });\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"Dashboard.useEffect\": ()=>{\n fetchData();\n const interval = setInterval(fetchData, 30000);\n return ({\n \"Dashboard.useEffect\": ()=>clearInterval(interval)\n })[\"Dashboard.useEffect\"];\n }\n }[\"Dashboard.useEffect\"], []);\n async function fetchData() {\n try {\n const res = await fetch(\"/api/monitor\");\n const data = await res.json();\n setApps(data.apps || []);\n setStatus(data.status || []);\n } catch (err) {\n console.error(\"Failed to fetch data:\", err);\n } finally{\n setLoading(false);\n }\n }\n async function addApp(e) {\n e.preventDefault();\n if (!newApp.name || !newApp.url) return;\n await fetch(\"/api/monitor\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n action: \"addApp\",\n app: newApp\n })\n });\n setShowAddModal(false);\n setNewApp({\n name: \"\",\n url: \"http://localhost:\",\n port: 3000,\n enabled: true\n });\n fetchData();\n }\n async function deleteApp(id) {\n if (!confirm(\"Delete this monitor?\")) return;\n await fetch(\"/api/monitor\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n action: \"deleteApp\",\n id\n })\n });\n fetchData();\n }\n function getAppStatus(appId) {\n const appStatus = status.filter((s)=>s.appId === appId);\n const latest = appStatus[appStatus.length - 1];\n const isUp = latest?.status === \"up\";\n const uptime = appStatus.length > 0 ? Math.round(appStatus.filter((s)=>s.status === \"up\").length / appStatus.length * 100) : 100;\n const avgResponseTime = appStatus.length > 0 ? Math.round(appStatus.filter((s)=>s.responseTime).reduce((acc, s)=>acc + (s.responseTime || 0), 0) / appStatus.filter((s)=>s.responseTime).length) || 0 : 0;\n return {\n latest,\n isUp,\n uptime,\n avgResponseTime\n };\n }\n const stats = {\n total: apps.length,\n online: apps.filter((app)=>getAppStatus(app.id).isUp).length,\n offline: apps.filter((app)=>!getAppStatus(app.id).isUp).length,\n avgUptime: apps.length > 0 ? Math.round(apps.reduce((acc, app)=>acc + getAppStatus(app.id).uptime, 0) / apps.length) : 0,\n avgResponseTime: apps.length > 0 ? Math.round(apps.reduce((acc, app)=>acc + getAppStatus(app.id).avgResponseTime, 0) / apps.length) : 0,\n incidents: status.filter((s)=>s.status === \"down\").length\n };\n const allUp = stats.online === stats.total && stats.total > 0;\n // Sparkline data for KPI cards\n const servicesData = generateSparklineData(20, true);\n const uptimeData = generateSparklineData(20, true);\n const responseData = generateSparklineData(20, true).map((d)=>({\n ...d,\n value: d.value * 2\n }));\n const incidentsData = generateSparklineData(20, false);\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-slate-950 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n className: \"flex flex-col items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n animate: {\n rotate: 360\n },\n transition: {\n duration: 2,\n repeat: Infinity,\n ease: \"linear\"\n },\n className: \"w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 461,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 blur-xl opacity-50\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 466,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 460,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400\",\n children: \"Loading dashboard...\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 468,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 455,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 454,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-slate-950 text-slate-100 flex\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"fixed left-0 top-0 bottom-0 w-[280px] bg-slate-900/80 backdrop-blur-xl border-r border-slate-800/60 z-50 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-16 flex items-center px-4 border-b border-slate-800/60\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-9 h-9 rounded-lg bg-gradient-to-br from-emerald-500 to-cyan-500 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_13__[\"default\"], {\n className: \"w-5 h-5 text-white\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 481,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 480,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"ml-3 font-bold text-lg text-white\",\n children: \"Heartbeat\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 483,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 479,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"flex-1 p-3 space-y-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarItem, {\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n label: \"Overview\",\n isActive: activeNav === \"overview\",\n onClick: ()=>setActiveNav(\"overview\")\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 488,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarItem, {\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n label: \"Monitored Services\",\n isActive: activeNav === \"services\",\n onClick: ()=>setActiveNav(\"services\")\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 494,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarItem, {\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n label: \"Incidents\",\n isActive: activeNav === \"incidents\",\n onClick: ()=>setActiveNav(\"incidents\")\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 500,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarItem, {\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n label: \"History / Logs\",\n isActive: activeNav === \"history\",\n onClick: ()=>setActiveNav(\"history\")\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 506,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(SidebarItem, {\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n label: \"Settings\",\n isActive: activeNav === \"settings\",\n onClick: ()=>setActiveNav(\"settings\")\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 512,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 487,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 477,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"flex-1 ml-[280px] min-h-screen flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"h-16 bg-slate-900/50 backdrop-blur-sm border-b border-slate-800/60 sticky top-0 z-40 px-6 flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `flex items-center gap-2 px-3 py-1.5 rounded-full border ${allUp ? \"bg-emerald-500/10 border-emerald-500/20\" : \"bg-amber-500/10 border-amber-500/20\"}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative flex h-2 w-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 ${allUp ? \"bg-emerald-400\" : \"bg-amber-400\"}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 532,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `relative inline-flex rounded-full h-2 w-2 ${allUp ? \"bg-emerald-500\" : \"bg-amber-500\"}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 533,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 531,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `text-sm font-medium ${allUp ? \"text-emerald-400\" : \"text-amber-400\"}`,\n children: allUp ? \"All Systems Operational\" : `${stats.offline} Service${stats.offline > 1 ? 's' : ''} Down`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 535,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500 text-xs\",\n children: [\n \"• Updated \",\n new Date().toLocaleTimeString()\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 538,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 526,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_18__[\"default\"], {\n className: \"w-4 h-4 absolute left-3 top-1/2 -translate-y-1/2 text-slate-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 544,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n placeholder: \"Search...\",\n className: \"w-64 bg-slate-800/50 border border-slate-700 rounded-lg pl-10 pr-4 py-2 text-sm text-white placeholder-slate-500 focus:border-emerald-500/50 focus:outline-none\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 545,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 543,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n onClick: ()=>setShowAddModal(true),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_19__[\"default\"], {\n className: \"w-4 h-4 mr-2\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 553,\n columnNumber: 15\n }, this),\n \"Add Monitor\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 552,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n variant: \"ghost\",\n size: \"icon\",\n onClick: fetchData,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 558,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 557,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n variant: \"ghost\",\n size: \"icon\",\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_20__[\"default\"], {\n className: \"w-5 h-5\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 562,\n columnNumber: 15\n }, this),\n stats.incidents > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"absolute top-1 right-1 w-2 h-2 bg-red-500 rounded-full\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 564,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 561,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-9 h-9 rounded-full bg-gradient-to-br from-emerald-500 to-cyan-500 flex items-center justify-center text-white font-medium text-sm\",\n children: \"MB\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 568,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 542,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 524,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 p-6 overflow-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 md:grid-cols-4 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(KPICard, {\n title: \"Services Online\",\n value: `${stats.online}/${stats.total}`,\n subtitle: allUp ? \"All healthy\" : `${stats.offline} down`,\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n color: \"emerald\",\n data: servicesData\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 579,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(KPICard, {\n title: \"Average Uptime\",\n value: `${stats.avgUptime}%`,\n subtitle: \"Last 30 days\",\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n color: \"blue\",\n data: uptimeData\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 587,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(KPICard, {\n title: \"Avg Response Time\",\n value: `${stats.avgResponseTime}ms`,\n subtitle: \"Across all services\",\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_22__[\"default\"],\n color: \"purple\",\n data: responseData\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 595,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(KPICard, {\n title: \"Total Incidents\",\n value: stats.incidents,\n subtitle: \"Last 24 hours\",\n icon: _barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n color: \"amber\",\n data: incidentsData\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 603,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 578,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-lg font-semibold text-white\",\n children: \"Monitored Services\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 616,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm text-slate-500\",\n children: [\n stats.total,\n \" services\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 617,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 615,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n layout: true,\n className: \"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_9__.AnimatePresence, {\n mode: \"popLayout\",\n children: apps.map((app)=>{\n const appStatus = getAppStatus(app.id);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(ServiceCard, {\n app: app,\n status: appStatus,\n onDelete: ()=>deleteApp(app.id)\n }, app.id, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 628,\n columnNumber: 23\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 624,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 620,\n columnNumber: 15\n }, this),\n apps.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n className: \"text-center py-16 bg-slate-900/30 rounded-xl border border-dashed border-slate-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-slate-800 rounded-2xl flex items-center justify-center mx-auto mb-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertTriangle_Bell_CheckCircle2_Clock_ExternalLink_History_LayoutDashboard_Monitor_Plus_RefreshCw_Search_Server_Settings_Trash2_Zap_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"w-8 h-8 text-slate-600\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 646,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 645,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold text-white mb-2\",\n children: \"No monitors yet\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 648,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-500 mb-4\",\n children: \"Start monitoring your services\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 649,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n onClick: ()=>setShowAddModal(true),\n children: \"Add Your First Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 650,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 640,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 614,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 576,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 575,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 522,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_9__.AnimatePresence, {\n children: showAddModal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n className: \"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95,\n y: 20\n },\n animate: {\n opacity: 1,\n scale: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95,\n y: 20\n },\n className: \"bg-slate-900 border border-slate-800 rounded-xl p-6 w-full max-w-md shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl font-bold text-white mb-2\",\n children: \"Add New Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 675,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 text-sm mb-6\",\n children: \"Configure a new service to monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 676,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: addApp,\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-slate-300 mb-2\",\n children: \"Service Name\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 680,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: newApp.name,\n onChange: (e)=>setNewApp({\n ...newApp,\n name: e.target.value\n }),\n className: \"w-full bg-slate-800/50 border border-slate-700 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500/50 focus:outline-none\",\n placeholder: \"My Service\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 681,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 679,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-slate-300 mb-2\",\n children: \"URL\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 693,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"url\",\n value: newApp.url,\n onChange: (e)=>setNewApp({\n ...newApp,\n url: e.target.value\n }),\n className: \"w-full bg-slate-800/50 border border-slate-700 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500/50 focus:outline-none\",\n placeholder: \"http://localhost:3000\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 694,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 692,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium text-slate-300 mb-2\",\n children: \"Port\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 704,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: newApp.port,\n onChange: (e)=>setNewApp({\n ...newApp,\n port: parseInt(e.target.value)\n }),\n className: \"w-full bg-slate-800/50 border border-slate-700 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500/50 focus:outline-none\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 705,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 703,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 691,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-3 pt-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n type: \"button\",\n variant: \"outline\",\n onClick: ()=>setShowAddModal(false),\n className: \"flex-1\",\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 716,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Button, {\n type: \"submit\",\n className: \"flex-1\",\n children: \"Add Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 724,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 715,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 678,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 669,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 663,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 661,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 475,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Z0I7Z0RBQy9CN0YsV0FBVTswREFDWDs7Ozs7OzBEQUdELDhEQUFDbUI7Z0RBQU9rQyxNQUFLO2dEQUFTckQsV0FBVTswREFBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVczRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBtb3Rpb24sIEFuaW1hdGVQcmVzZW5jZSB9IGZyb20gXCJmcmFtZXItbW90aW9uXCI7XG5pbXBvcnQge1xuICBBY3Rpdml0eSxcbiAgUGx1cyxcbiAgUmVmcmVzaEN3LFxuICBUcmFzaDIsXG4gIEV4dGVybmFsTGluayxcbiAgU2VhcmNoLFxuICBCZWxsLFxuICBTZXR0aW5ncyxcbiAgQ2hldnJvbkxlZnQsXG4gIENoZXZyb25SaWdodCxcbiAgTGF5b3V0RGFzaGJvYXJkLFxuICBNb25pdG9yLFxuICBBbGVydFRyaWFuZ2xlLFxuICBIaXN0b3J5LFxuICBDaGVja0NpcmNsZTIsXG4gIFhDaXJjbGUsXG4gIENsb2NrLFxuICBaYXAsXG4gIFRyZW5kaW5nVXAsXG4gIFNlcnZlcixcbiAgTW9yZVZlcnRpY2FsLFxuICBNZW51LFxufSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XG5pbXBvcnQge1xuICBMaW5lQ2hhcnQsXG4gIExpbmUsXG4gIFJlc3BvbnNpdmVDb250YWluZXIsXG59IGZyb20gXCJyZWNoYXJ0c1wiO1xuXG4vLyBUeXBlc1xuaW50ZXJmYWNlIEFwcCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIHBvcnQ6IG51bWJlcjtcbiAgcGF0aDogc3RyaW5nO1xuICBjb21tYW5kOiBzdHJpbmc7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBTdGF0dXNFbnRyeSB7XG4gIGFwcElkOiBzdHJpbmc7XG4gIHRpbWVzdGFtcDogc3RyaW5nO1xuICBzdGF0dXM6IFwidXBcIiB8IFwiZG93blwiO1xuICByZXNwb25zZVRpbWU/OiBudW1iZXI7XG59XG5cbi8vIEdlbmVyYXRlIHNwYXJrbGluZSBkYXRhXG5jb25zdCBnZW5lcmF0ZVNwYXJrbGluZURhdGEgPSAocG9pbnRzOiBudW1iZXIsIGlzVXA6IGJvb2xlYW4pID0+IHtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IHBvaW50cyB9LCAoXywgaSkgPT4gKHtcbiAgICB2YWx1ZTogaXNVcCA/IDgwICsgTWF0aC5yYW5kb20oKSAqIDIwIDogTWF0aC5yYW5kb20oKSAqIDMwLFxuICAgIHRpbWU6IGksXG4gIH0pKTtcbn07XG5cbi8vIHNoYWRjbi1zdHlsZSBDYXJkIENvbXBvbmVudFxuY29uc3QgQ2FyZCA9ICh7IGNoaWxkcmVuLCBjbGFzc05hbWUgPSBcIlwiIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTsgY2xhc3NOYW1lPzogc3RyaW5nIH0pID0+IChcbiAgPGRpdiBjbGFzc05hbWU9e2BiZy1zbGF0ZS05MDAvNjAgYmFja2Ryb3AtYmx1ci14bCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMC82MCByb3VuZGVkLXhsIG92ZXJmbG93LWhpZGRlbiAke2NsYXNzTmFtZX1gfT5cbiAgICB7Y2hpbGRyZW59XG4gIDwvZGl2PlxuKTtcblxuY29uc3QgQ2FyZENvbnRlbnQgPSAoeyBjaGlsZHJlbiwgY2xhc3NOYW1lID0gXCJcIiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7IGNsYXNzTmFtZT86IHN0cmluZyB9KSA9PiAoXG4gIDxkaXYgY2xhc3NOYW1lPXtgcC02ICR7Y2xhc3NOYW1lfWB9PntjaGlsZHJlbn08L2Rpdj5cbik7XG5cbi8vIHNoYWRjbi1zdHlsZSBCYWRnZVxuY29uc3QgQmFkZ2UgPSAoeyBcbiAgY2hpbGRyZW4sIFxuICB2YXJpYW50ID0gXCJkZWZhdWx0XCIsXG4gIGNsYXNzTmFtZSA9IFwiXCIgXG59OiB7IFxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlOyBcbiAgdmFyaWFudD86IFwiZGVmYXVsdFwiIHwgXCJzdWNjZXNzXCIgfCBcImRlc3RydWN0aXZlXCIgfCBcIndhcm5pbmdcIjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufSkgPT4ge1xuICBjb25zdCB2YXJpYW50cyA9IHtcbiAgICBkZWZhdWx0OiBcImJnLXNsYXRlLTgwMCB0ZXh0LXNsYXRlLTIwMCBib3JkZXItc2xhdGUtNzAwXCIsXG4gICAgc3VjY2VzczogXCJiZy1lbWVyYWxkLTUwMC8xMCB0ZXh0LWVtZXJhbGQtNDAwIGJvcmRlci1lbWVyYWxkLTUwMC8yMFwiLFxuICAgIGRlc3RydWN0aXZlOiBcImJnLXJlZC01MDAvMTAgdGV4dC1yZWQtNDAwIGJvcmRlci1yZWQtNTAwLzIwXCIsXG4gICAgd2FybmluZzogXCJiZy1hbWJlci01MDAvMTAgdGV4dC1hbWJlci00MDAgYm9yZGVyLWFtYmVyLTUwMC8yMFwiLFxuICB9O1xuICByZXR1cm4gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMS41IHB4LTIuNSBweS0xIHJvdW5kZWQtZnVsbCB0ZXh0LXhzIGZvbnQtbWVkaXVtIGJvcmRlciAke3ZhcmlhbnRzW3ZhcmlhbnRdfSAke2NsYXNzTmFtZX1gfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L3NwYW4+XG4gICk7XG59O1xuXG4vLyBzaGFkY24tc3R5bGUgUHJvZ3Jlc3NcbmNvbnN0IFByb2dyZXNzID0gKHsgdmFsdWUsIGNsYXNzTmFtZSA9IFwiXCIgfTogeyB2YWx1ZTogbnVtYmVyOyBjbGFzc05hbWU/OiBzdHJpbmcgfSkgPT4ge1xuICBjb25zdCBnZXRDb2xvciA9ICgpID0+IHtcbiAgICBpZiAodmFsdWUgPj0gOTUpIHJldHVybiBcImJnLWVtZXJhbGQtNTAwXCI7XG4gICAgaWYgKHZhbHVlID49IDgwKSByZXR1cm4gXCJiZy1hbWJlci01MDBcIjtcbiAgICByZXR1cm4gXCJiZy1yZWQtNTAwXCI7XG4gIH07XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2B3LWZ1bGwgYmctc2xhdGUtODAwIHJvdW5kZWQtZnVsbCBoLTIgb3ZlcmZsb3ctaGlkZGVuICR7Y2xhc3NOYW1lfWB9PlxuICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgIGluaXRpYWw9e3sgd2lkdGg6IDAgfX1cbiAgICAgICAgYW5pbWF0ZT17eyB3aWR0aDogYCR7dmFsdWV9JWAgfX1cbiAgICAgICAgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMSwgZWFzZTogXCJlYXNlT3V0XCIgfX1cbiAgICAgICAgY2xhc3NOYW1lPXtgaC1mdWxsIHJvdW5kZWQtZnVsbCAke2dldENvbG9yKCl9YH1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG4vLyBzaGFkY24tc3R5bGUgQnV0dG9uXG5jb25zdCBCdXR0b24gPSAoeyBcbiAgY2hpbGRyZW4sIFxuICB2YXJpYW50ID0gXCJkZWZhdWx0XCIsIFxuICBzaXplID0gXCJkZWZhdWx0XCIsXG4gIGNsYXNzTmFtZSA9IFwiXCIsXG4gIC4uLnByb3BzIFxufTogeyBcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTsgXG4gIHZhcmlhbnQ/OiBcImRlZmF1bHRcIiB8IFwiZ2hvc3RcIiB8IFwib3V0bGluZVwiO1xuICBzaXplPzogXCJkZWZhdWx0XCIgfCBcInNtXCIgfCBcImljb25cIjtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufSAmIFJlYWN0LkJ1dHRvbkhUTUxBdHRyaWJ1dGVzPEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICBjb25zdCB2YXJpYW50cyA9IHtcbiAgICBkZWZhdWx0OiBcImJnLWVtZXJhbGQtNjAwIGhvdmVyOmJnLWVtZXJhbGQtNTAwIHRleHQtd2hpdGVcIixcbiAgICBnaG9zdDogXCJob3ZlcjpiZy1zbGF0ZS04MDAgdGV4dC1zbGF0ZS00MDAgaG92ZXI6dGV4dC13aGl0ZVwiLFxuICAgIG91dGxpbmU6IFwiYm9yZGVyIGJvcmRlci1zbGF0ZS03MDAgaG92ZXI6Ymctc2xhdGUtODAwIHRleHQtc2xhdGUtMzAwXCIsXG4gIH07XG4gIGNvbnN0IHNpemVzID0ge1xuICAgIGRlZmF1bHQ6IFwicHgtNCBweS0yXCIsXG4gICAgc206IFwicHgtMyBweS0xLjUgdGV4dC1zbVwiLFxuICAgIGljb246IFwicC0yXCIsXG4gIH07XG4gIHJldHVybiAoXG4gICAgPGJ1dHRvbiBcbiAgICAgIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWxnIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzICR7dmFyaWFudHNbdmFyaWFudF19ICR7c2l6ZXNbc2l6ZV19ICR7Y2xhc3NOYW1lfWB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYnV0dG9uPlxuICApO1xufTtcblxuLy8gU2lkZWJhciBJdGVtIENvbXBvbmVudFxuY29uc3QgU2lkZWJhckl0ZW0gPSAoeyBcbiAgaWNvbjogSWNvbiwgXG4gIGxhYmVsLCBcbiAgaXNBY3RpdmUsIFxuICBvbkNsaWNrIFxufTogeyBcbiAgaWNvbjogYW55O1xuICBsYWJlbDogc3RyaW5nOyBcbiAgaXNBY3RpdmU6IGJvb2xlYW47IFxuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufSkgPT4gKFxuICA8bW90aW9uLmJ1dHRvblxuICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgd2hpbGVIb3Zlcj17eyB4OiAyIH19XG4gICAgd2hpbGVUYXA9e3sgc2NhbGU6IDAuOTggfX1cbiAgICBjbGFzc05hbWU9e2B3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcHgtMyBweS0yLjUgcm91bmRlZC1sZyB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDAgJHtcbiAgICAgIGlzQWN0aXZlIFxuICAgICAgICA/IFwiYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCBib3JkZXIgYm9yZGVyLWVtZXJhbGQtNTAwLzIwXCIgXG4gICAgICAgIDogXCJ0ZXh0LXNsYXRlLTQwMCBob3Zlcjp0ZXh0LXNsYXRlLTEwMCBob3ZlcjpiZy1zbGF0ZS04MDAvNTBcIlxuICAgIH1gfVxuICA+XG4gICAgPEljb24gY2xhc3NOYW1lPVwidy01IGgtNSBmbGV4LXNocmluay0wXCIgLz5cbiAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHdoaXRlc3BhY2Utbm93cmFwXCI+e2xhYmVsfTwvc3Bhbj5cbiAgPC9tb3Rpb24uYnV0dG9uPlxuKTtcblxuLy8gS1BJIENhcmQgQ29tcG9uZW50XG5jb25zdCBLUElDYXJkID0gKHsgXG4gIHRpdGxlLCBcbiAgdmFsdWUsIFxuICBzdWJ0aXRsZSwgXG4gIGljb246IEljb24sIFxuICBjb2xvcixcbiAgZGF0YSxcbn06IHsgXG4gIHRpdGxlOiBzdHJpbmc7IFxuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyOyBcbiAgc3VidGl0bGU6IHN0cmluZztcbiAgaWNvbjogYW55O1xuICBjb2xvcjogc3RyaW5nO1xuICBkYXRhOiBhbnlbXTtcbn0pID0+IHtcbiAgY29uc3QgY29sb3JNYXA6IFJlY29yZDxzdHJpbmcsIHsgYmc6IHN0cmluZzsgdGV4dDogc3RyaW5nOyBiYXI6IHN0cmluZyB9PiA9IHtcbiAgICBlbWVyYWxkOiB7IGJnOiBcImJnLWVtZXJhbGQtNTAwLzEwXCIsIHRleHQ6IFwidGV4dC1lbWVyYWxkLTQwMFwiLCBiYXI6IFwiIzEwYjk4MVwiIH0sXG4gICAgYmx1ZTogeyBiZzogXCJiZy1ibHVlLTUwMC8xMFwiLCB0ZXh0OiBcInRleHQtYmx1ZS00MDBcIiwgYmFyOiBcIiMzYjgyZjZcIiB9LFxuICAgIHB1cnBsZTogeyBiZzogXCJiZy1wdXJwbGUtNTAwLzEwXCIsIHRleHQ6IFwidGV4dC1wdXJwbGUtNDAwXCIsIGJhcjogXCIjYTg1NWY3XCIgfSxcbiAgICBhbWJlcjogeyBiZzogXCJiZy1hbWJlci01MDAvMTBcIiwgdGV4dDogXCJ0ZXh0LWFtYmVyLTQwMFwiLCBiYXI6IFwiI2Y1OWUwYlwiIH0sXG4gIH07XG4gIGNvbnN0IGNvbG9ycyA9IGNvbG9yTWFwW2NvbG9yXSB8fCBjb2xvck1hcC5lbWVyYWxkO1xuXG4gIHJldHVybiAoXG4gICAgPENhcmQgY2xhc3NOYW1lPVwiaG92ZXI6Ym9yZGVyLXNsYXRlLTcwMC82MCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgaG92ZXI6c2hhZG93LXhsIGhvdmVyOnNoYWRvdy1ibGFjay8yMCBob3ZlcjpzY2FsZS1bMS4wMl1cIj5cbiAgICAgIDxDYXJkQ29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTQwMCB0ZXh0LXNtIGZvbnQtbWVkaXVtIG1iLTFcIj57dGl0bGV9PC9wPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkIHRleHQtd2hpdGVcIj57dmFsdWV9PC9wPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS01MDAgdGV4dC14cyBtdC0xXCI+e3N1YnRpdGxlfTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHAtMi41IHJvdW5kZWQtbGcgJHtjb2xvcnMuYmd9YH0+XG4gICAgICAgICAgICA8SWNvbiBjbGFzc05hbWU9e2B3LTUgaC01ICR7Y29sb3JzLnRleHR9YH0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNCBoLTEyXCI+XG4gICAgICAgICAgPFJlc3BvbnNpdmVDb250YWluZXIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxuICAgICAgICAgICAgPExpbmVDaGFydCBkYXRhPXtkYXRhfT5cbiAgICAgICAgICAgICAgPExpbmVcbiAgICAgICAgICAgICAgICB0eXBlPVwibW9ub3RvbmVcIlxuICAgICAgICAgICAgICAgIGRhdGFLZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPXtjb2xvcnMuYmFyfVxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsyfVxuICAgICAgICAgICAgICAgIGRvdD17ZmFsc2V9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0xpbmVDaGFydD5cbiAgICAgICAgICA8L1Jlc3BvbnNpdmVDb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9DYXJkQ29udGVudD5cbiAgICA8L0NhcmQ+XG4gICk7XG59O1xuXG4vLyBTZXJ2aWNlIENhcmQgQ29tcG9uZW50XG5jb25zdCBTZXJ2aWNlQ2FyZCA9ICh7IFxuICBhcHAsIFxuICBzdGF0dXMsIFxuICBvbkRlbGV0ZSBcbn06IHsgXG4gIGFwcDogQXBwOyBcbiAgc3RhdHVzOiB7IGlzVXA6IGJvb2xlYW47IHVwdGltZTogbnVtYmVyOyBhdmdSZXNwb25zZVRpbWU6IG51bWJlcjsgbGF0ZXN0PzogU3RhdHVzRW50cnkgfTsgXG4gIG9uRGVsZXRlOiAoKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCBbaXNIb3ZlcmVkLCBzZXRJc0hvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBzcGFya2xpbmVEYXRhID0gZ2VuZXJhdGVTcGFya2xpbmVEYXRhKDEwLCBzdGF0dXMuaXNVcCk7XG5cbiAgcmV0dXJuIChcbiAgICA8bW90aW9uLmRpdlxuICAgICAgbGF5b3V0XG4gICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1IH19XG4gICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHNjYWxlOiAxIH19XG4gICAgICBleGl0PXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1IH19XG4gICAgICB3aGlsZUhvdmVyPXt7IHNjYWxlOiAxLjAyLCB0cmFuc2l0aW9uOiB7IGR1cmF0aW9uOiAwLjIgfSB9fVxuICAgICAgb25Ib3ZlclN0YXJ0PXsoKSA9PiBzZXRJc0hvdmVyZWQodHJ1ZSl9XG4gICAgICBvbkhvdmVyRW5kPXsoKSA9PiBzZXRJc0hvdmVyZWQoZmFsc2UpfVxuICAgICAgY2xhc3NOYW1lPVwiZ3JvdXBcIlxuICAgID5cbiAgICAgIDxDYXJkIGNsYXNzTmFtZT1cImgtZnVsbCBob3Zlcjpib3JkZXItc2xhdGUtNzAwLzYwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCBob3ZlcjpzaGFkb3cteGwgaG92ZXI6c2hhZG93LWJsYWNrLzIwXCI+XG4gICAgICAgIHsvKiBUb3AgY29sb3JlZCBsaW5lICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGgtMSB3LWZ1bGwgJHtzdGF0dXMuaXNVcCA/IFwiYmctZW1lcmFsZC01MDBcIiA6IFwiYmctcmVkLTUwMFwifWB9IC8+XG4gICAgICAgIFxuICAgICAgICA8Q2FyZENvbnRlbnQgY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdy0xMCBoLTEwIHJvdW5kZWQtbGcgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgJHtzdGF0dXMuaXNVcCA/IFwiYmctZW1lcmFsZC01MDAvMTBcIiA6IFwiYmctcmVkLTUwMC8xMFwifWB9PlxuICAgICAgICAgICAgICAgIDxTZXJ2ZXIgY2xhc3NOYW1lPXtgdy01IGgtNSAke3N0YXR1cy5pc1VwID8gXCJ0ZXh0LWVtZXJhbGQtNDAwXCIgOiBcInRleHQtcmVkLTQwMFwifWB9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkIHRleHQtd2hpdGUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIHthcHAubmFtZX1cbiAgICAgICAgICAgICAgICAgIDxhIFxuICAgICAgICAgICAgICAgICAgICBocmVmPXthcHAudXJsfSBcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCIgXG4gICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTUwMCBob3Zlcjp0ZXh0LWVtZXJhbGQtNDAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEV4dGVybmFsTGluayBjbGFzc05hbWU9XCJ3LTMuNSBoLTMuNVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtc2xhdGUtNTAwXCI+UG9ydCB7YXBwLnBvcnR9PC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8QmFkZ2UgdmFyaWFudD17c3RhdHVzLmlzVXAgPyBcInN1Y2Nlc3NcIiA6IFwiZGVzdHJ1Y3RpdmVcIn0+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInJlbGF0aXZlIGZsZXggaC0xLjUgdy0xLjUgbXItMVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGFuaW1hdGUtcGluZyBhYnNvbHV0ZSBpbmxpbmUtZmxleCBoLWZ1bGwgdy1mdWxsIHJvdW5kZWQtZnVsbCBvcGFjaXR5LTc1ICR7c3RhdHVzLmlzVXAgPyBcImJnLWVtZXJhbGQtNDAwXCIgOiBcImJnLXJlZC00MDBcIn1gfSAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YHJlbGF0aXZlIGlubGluZS1mbGV4IHJvdW5kZWQtZnVsbCBoLTEuNSB3LTEuNSAke3N0YXR1cy5pc1VwID8gXCJiZy1lbWVyYWxkLTUwMFwiIDogXCJiZy1yZWQtNTAwXCJ9YH0gLz5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB7c3RhdHVzLmlzVXAgPyBcIk9wZXJhdGlvbmFsXCIgOiBcIkRvd25cIn1cbiAgICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICB7LyogVXB0aW1lICovfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0yXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1zbGF0ZS00MDBcIj5VcHRpbWU8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlXCI+e3N0YXR1cy51cHRpbWV9JTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPFByb2dyZXNzIHZhbHVlPXtzdGF0dXMudXB0aW1lfSAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgey8qIFJlc3BvbnNlIFRpbWUgKi99XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1zbGF0ZS00MDBcIj5SZXNwb25zZSBUaW1lPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAge3N0YXR1cy5hdmdSZXNwb25zZVRpbWUgPiAwID8gYCR7c3RhdHVzLmF2Z1Jlc3BvbnNlVGltZX1tc2AgOiBcIuKAlFwifVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgey8qIFNwYXJrbGluZSAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtMTAgLW14LTJcIj5cbiAgICAgICAgICAgIDxSZXNwb25zaXZlQ29udGFpbmVyIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgPExpbmVDaGFydCBkYXRhPXtzcGFya2xpbmVEYXRhfT5cbiAgICAgICAgICAgICAgICA8TGluZVxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm1vbm90b25lXCJcbiAgICAgICAgICAgICAgICAgIGRhdGFLZXk9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBzdHJva2U9e3N0YXR1cy5pc1VwID8gXCIjMTBiOTgxXCIgOiBcIiNlZjQ0NDRcIn1cbiAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsxLjV9XG4gICAgICAgICAgICAgICAgICBkb3Q9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvTGluZUNoYXJ0PlxuICAgICAgICAgICAgPC9SZXNwb25zaXZlQ29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgey8qIEZvb3RlciAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwdC0yIGJvcmRlci10IGJvcmRlci1zbGF0ZS04MDAvNjBcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1zbGF0ZS01MDAgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgPENsb2NrIGNsYXNzTmFtZT1cInctMyBoLTNcIiAvPlxuICAgICAgICAgICAgICB7c3RhdHVzLmxhdGVzdCA/IG5ldyBEYXRlKHN0YXR1cy5sYXRlc3QudGltZXN0YW1wKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA6IFwiTmV2ZXJcIn1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAge2lzSG92ZXJlZCAmJiAoXG4gICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeDogMTAgfX1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgeDogMCB9fVxuICAgICAgICAgICAgICAgICAgZXhpdD17eyBvcGFjaXR5OiAwLCB4OiAxMCB9fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cImdob3N0XCIgc2l6ZT1cImljb25cIiBjbGFzc05hbWU9XCJoLTggdy04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxSZWZyZXNoQ3cgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cImdob3N0XCIgc2l6ZT1cImljb25cIiBjbGFzc05hbWU9XCJoLTggdy04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTZXR0aW5ncyBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCIgXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJpY29uXCIgXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtOCB3LTggaG92ZXI6dGV4dC1yZWQtNDAwIGhvdmVyOmJnLXJlZC01MDAvMTBcIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtvbkRlbGV0ZX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFRyYXNoMiBjbGFzc05hbWU9XCJ3LTQgaC00XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0NhcmRDb250ZW50PlxuICAgICAgPC9DYXJkPlxuICAgIDwvbW90aW9uLmRpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERhc2hib2FyZCgpIHtcbiAgY29uc3QgW2FwcHMsIHNldEFwcHNdID0gdXNlU3RhdGU8QXBwW10+KFtdKTtcbiAgY29uc3QgW3N0YXR1cywgc2V0U3RhdHVzXSA9IHVzZVN0YXRlPFN0YXR1c0VudHJ5W10+KFtdKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFthY3RpdmVOYXYsIHNldEFjdGl2ZU5hdl0gPSB1c2VTdGF0ZShcIm92ZXJ2aWV3XCIpO1xuICBjb25zdCBbc2hvd0FkZE1vZGFsLCBzZXRTaG93QWRkTW9kYWxdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbbmV3QXBwLCBzZXROZXdBcHBdID0gdXNlU3RhdGU8UGFydGlhbDxBcHA+Pih7XG4gICAgbmFtZTogXCJcIixcbiAgICB1cmw6IFwiaHR0cDovL2xvY2FsaG9zdDpcIixcbiAgICBwb3J0OiAzMDAwLFxuICAgIGVuYWJsZWQ6IHRydWUsXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hEYXRhKCk7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmZXRjaERhdGEsIDMwMDAwKTtcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gIH0sIFtdKTtcblxuICBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIpO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICBzZXRBcHBzKGRhdGEuYXBwcyB8fCBbXSk7XG4gICAgICBzZXRTdGF0dXMoZGF0YS5zdGF0dXMgfHwgW10pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBmZXRjaCBkYXRhOlwiLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBhZGRBcHAoZTogUmVhY3QuRm9ybUV2ZW50KSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghbmV3QXBwLm5hbWUgfHwgIW5ld0FwcC51cmwpIHJldHVybjtcbiAgICBhd2FpdCBmZXRjaChcIi9hcGkvbW9uaXRvclwiLCB7XG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBhY3Rpb246IFwiYWRkQXBwXCIsIGFwcDogbmV3QXBwIH0pLFxuICAgIH0pO1xuICAgIHNldFNob3dBZGRNb2RhbChmYWxzZSk7XG4gICAgc2V0TmV3QXBwKHsgbmFtZTogXCJcIiwgdXJsOiBcImh0dHA6Ly9sb2NhbGhvc3Q6XCIsIHBvcnQ6IDMwMDAsIGVuYWJsZWQ6IHRydWUgfSk7XG4gICAgZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBkZWxldGVBcHAoaWQ6IHN0cmluZykge1xuICAgIGlmICghY29uZmlybShcIkRlbGV0ZSB0aGlzIG1vbml0b3I/XCIpKSByZXR1cm47XG4gICAgYXdhaXQgZmV0Y2goXCIvYXBpL21vbml0b3JcIiwge1xuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgYWN0aW9uOiBcImRlbGV0ZUFwcFwiLCBpZCB9KSxcbiAgICB9KTtcbiAgICBmZXRjaERhdGEoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEFwcFN0YXR1cyhhcHBJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgYXBwU3RhdHVzID0gc3RhdHVzLmZpbHRlcigocykgPT4gcy5hcHBJZCA9PT0gYXBwSWQpO1xuICAgIGNvbnN0IGxhdGVzdCA9IGFwcFN0YXR1c1thcHBTdGF0dXMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgaXNVcCA9IGxhdGVzdD8uc3RhdHVzID09PSBcInVwXCI7XG4gICAgY29uc3QgdXB0aW1lID0gYXBwU3RhdHVzLmxlbmd0aCA+IDAgXG4gICAgICA/IE1hdGgucm91bmQoKGFwcFN0YXR1cy5maWx0ZXIocyA9PiBzLnN0YXR1cyA9PT0gXCJ1cFwiKS5sZW5ndGggLyBhcHBTdGF0dXMubGVuZ3RoKSAqIDEwMClcbiAgICAgIDogMTAwO1xuICAgIGNvbnN0IGF2Z1Jlc3BvbnNlVGltZSA9IGFwcFN0YXR1cy5sZW5ndGggPiAwXG4gICAgICA/IE1hdGgucm91bmQoYXBwU3RhdHVzLmZpbHRlcihzID0+IHMucmVzcG9uc2VUaW1lKS5yZWR1Y2UoKGFjYywgcykgPT4gYWNjICsgKHMucmVzcG9uc2VUaW1lIHx8IDApLCAwKSAvIGFwcFN0YXR1cy5maWx0ZXIocyA9PiBzLnJlc3BvbnNlVGltZSkubGVuZ3RoKSB8fCAwXG4gICAgICA6IDA7XG4gICAgcmV0dXJuIHsgbGF0ZXN0LCBpc1VwLCB1cHRpbWUsIGF2Z1Jlc3BvbnNlVGltZSB9O1xuICB9XG5cbiAgY29uc3Qgc3RhdHMgPSB7XG4gICAgdG90YWw6IGFwcHMubGVuZ3RoLFxuICAgIG9ubGluZTogYXBwcy5maWx0ZXIoKGFwcCkgPT4gZ2V0QXBwU3RhdHVzKGFwcC5pZCkuaXNVcCkubGVuZ3RoLFxuICAgIG9mZmxpbmU6IGFwcHMuZmlsdGVyKChhcHApID0+ICFnZXRBcHBTdGF0dXMoYXBwLmlkKS5pc1VwKS5sZW5ndGgsXG4gICAgYXZnVXB0aW1lOiBhcHBzLmxlbmd0aCA+IDAgXG4gICAgICA/IE1hdGgucm91bmQoYXBwcy5yZWR1Y2UoKGFjYywgYXBwKSA9PiBhY2MgKyBnZXRBcHBTdGF0dXMoYXBwLmlkKS51cHRpbWUsIDApIC8gYXBwcy5sZW5ndGgpXG4gICAgICA6IDAsXG4gICAgYXZnUmVzcG9uc2VUaW1lOiBhcHBzLmxlbmd0aCA+IDBcbiAgICAgID8gTWF0aC5yb3VuZChhcHBzLnJlZHVjZSgoYWNjLCBhcHApID0+IGFjYyArIGdldEFwcFN0YXR1cyhhcHAuaWQpLmF2Z1Jlc3BvbnNlVGltZSwgMCkgLyBhcHBzLmxlbmd0aClcbiAgICAgIDogMCxcbiAgICBpbmNpZGVudHM6IHN0YXR1cy5maWx0ZXIocyA9PiBzLnN0YXR1cyA9PT0gXCJkb3duXCIpLmxlbmd0aCxcbiAgfTtcblxuICBjb25zdCBhbGxVcCA9IHN0YXRzLm9ubGluZSA9PT0gc3RhdHMudG90YWwgJiYgc3RhdHMudG90YWwgPiAwO1xuXG4gIC8vIFNwYXJrbGluZSBkYXRhIGZvciBLUEkgY2FyZHNcbiAgY29uc3Qgc2VydmljZXNEYXRhID0gZ2VuZXJhdGVTcGFya2xpbmVEYXRhKDIwLCB0cnVlKTtcbiAgY29uc3QgdXB0aW1lRGF0YSA9IGdlbmVyYXRlU3BhcmtsaW5lRGF0YSgyMCwgdHJ1ZSk7XG4gIGNvbnN0IHJlc3BvbnNlRGF0YSA9IGdlbmVyYXRlU3BhcmtsaW5lRGF0YSgyMCwgdHJ1ZSkubWFwKGQgPT4gKHsgLi4uZCwgdmFsdWU6IGQudmFsdWUgKiAyIH0pKTtcbiAgY29uc3QgaW5jaWRlbnRzRGF0YSA9IGdlbmVyYXRlU3BhcmtsaW5lRGF0YSgyMCwgZmFsc2UpO1xuXG4gIGlmIChsb2FkaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLXNsYXRlLTk1MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCB9fVxuICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2IFxuICAgICAgICAgICAgICBhbmltYXRlPXt7IHJvdGF0ZTogMzYwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZHVyYXRpb246IDIsIHJlcGVhdDogSW5maW5pdHksIGVhc2U6IFwibGluZWFyXCIgfX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy0xMiBoLTEyIHJvdW5kZWQteGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1lbWVyYWxkLTUwMCB0by1jeWFuLTUwMFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHctMTIgaC0xMiByb3VuZGVkLXhsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC01MDAgdG8tY3lhbi01MDAgYmx1ci14bCBvcGFjaXR5LTUwXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTQwMFwiPkxvYWRpbmcgZGFzaGJvYXJkLi4uPC9wPlxuICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1zbGF0ZS05NTAgdGV4dC1zbGF0ZS0xMDAgZmxleFwiPlxuICAgICAgey8qIEZpeGVkIFNpZGViYXIgLSAyODBweCAqL31cbiAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJmaXhlZCBsZWZ0LTAgdG9wLTAgYm90dG9tLTAgdy1bMjgwcHhdIGJnLXNsYXRlLTkwMC84MCBiYWNrZHJvcC1ibHVyLXhsIGJvcmRlci1yIGJvcmRlci1zbGF0ZS04MDAvNjAgei01MCBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgIHsvKiBMb2dvICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtMTYgZmxleCBpdGVtcy1jZW50ZXIgcHgtNCBib3JkZXItYiBib3JkZXItc2xhdGUtODAwLzYwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTkgaC05IHJvdW5kZWQtbGcgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1lbWVyYWxkLTUwMCB0by1jeWFuLTUwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPEFjdGl2aXR5IGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC13aGl0ZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibWwtMyBmb250LWJvbGQgdGV4dC1sZyB0ZXh0LXdoaXRlXCI+SGVhcnRiZWF0PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICB7LyogTmF2aWdhdGlvbiAqL31cbiAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJmbGV4LTEgcC0zIHNwYWNlLXktMVwiPlxuICAgICAgICAgIDxTaWRlYmFySXRlbVxuICAgICAgICAgICAgaWNvbj17TGF5b3V0RGFzaGJvYXJkfVxuICAgICAgICAgICAgbGFiZWw9XCJPdmVydmlld1wiXG4gICAgICAgICAgICBpc0FjdGl2ZT17YWN0aXZlTmF2ID09PSBcIm92ZXJ2aWV3XCJ9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVOYXYoXCJvdmVydmlld1wiKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTaWRlYmFySXRlbVxuICAgICAgICAgICAgaWNvbj17TW9uaXRvcn1cbiAgICAgICAgICAgIGxhYmVsPVwiTW9uaXRvcmVkIFNlcnZpY2VzXCJcbiAgICAgICAgICAgIGlzQWN0aXZlPXthY3RpdmVOYXYgPT09IFwic2VydmljZXNcIn1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZU5hdihcInNlcnZpY2VzXCIpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFNpZGViYXJJdGVtXG4gICAgICAgICAgICBpY29uPXtBbGVydFRyaWFuZ2xlfVxuICAgICAgICAgICAgbGFiZWw9XCJJbmNpZGVudHNcIlxuICAgICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZU5hdiA9PT0gXCJpbmNpZGVudHNcIn1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEFjdGl2ZU5hdihcImluY2lkZW50c1wiKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxTaWRlYmFySXRlbVxuICAgICAgICAgICAgaWNvbj17SGlzdG9yeX1cbiAgICAgICAgICAgIGxhYmVsPVwiSGlzdG9yeSAvIExvZ3NcIlxuICAgICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZU5hdiA9PT0gXCJoaXN0b3J5XCJ9XG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRBY3RpdmVOYXYoXCJoaXN0b3J5XCIpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFNpZGViYXJJdGVtXG4gICAgICAgICAgICBpY29uPXtTZXR0aW5nc31cbiAgICAgICAgICAgIGxhYmVsPVwiU2V0dGluZ3NcIlxuICAgICAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZU5hdiA9PT0gXCJzZXR0aW5nc1wifVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0QWN0aXZlTmF2KFwic2V0dGluZ3NcIil9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9uYXY+XG4gICAgICA8L2FzaWRlPlxuXG4gICAgICB7LyogTWFpbiBDb250ZW50ICovfVxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwiZmxleC0xIG1sLVsyODBweF0gbWluLWgtc2NyZWVuIGZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgey8qIFRvcCBOYXZiYXIgKi99XG4gICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwiaC0xNiBiZy1zbGF0ZS05MDAvNTAgYmFja2Ryb3AtYmx1ci1zbSBib3JkZXItYiBib3JkZXItc2xhdGUtODAwLzYwIHN0aWNreSB0b3AtMCB6LTQwIHB4LTYgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgey8qIEdsb2JhbCBTdGF0dXMgQmFubmVyICovfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHgtMyBweS0xLjUgcm91bmRlZC1mdWxsIGJvcmRlciAke1xuICAgICAgICAgICAgYWxsVXAgXG4gICAgICAgICAgICAgID8gXCJiZy1lbWVyYWxkLTUwMC8xMCBib3JkZXItZW1lcmFsZC01MDAvMjBcIiBcbiAgICAgICAgICAgICAgOiBcImJnLWFtYmVyLTUwMC8xMCBib3JkZXItYW1iZXItNTAwLzIwXCJcbiAgICAgICAgICB9YH0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBmbGV4IGgtMiB3LTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgYW5pbWF0ZS1waW5nIGFic29sdXRlIGlubGluZS1mbGV4IGgtZnVsbCB3LWZ1bGwgcm91bmRlZC1mdWxsIG9wYWNpdHktNzUgJHthbGxVcCA/IFwiYmctZW1lcmFsZC00MDBcIiA6IFwiYmctYW1iZXItNDAwXCJ9YH0gLz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgcmVsYXRpdmUgaW5saW5lLWZsZXggcm91bmRlZC1mdWxsIGgtMiB3LTIgJHthbGxVcCA/IFwiYmctZW1lcmFsZC01MDBcIiA6IFwiYmctYW1iZXItNTAwXCJ9YH0gLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YHRleHQtc20gZm9udC1tZWRpdW0gJHthbGxVcCA/IFwidGV4dC1lbWVyYWxkLTQwMFwiIDogXCJ0ZXh0LWFtYmVyLTQwMFwifWB9PlxuICAgICAgICAgICAgICB7YWxsVXAgPyBcIkFsbCBTeXN0ZW1zIE9wZXJhdGlvbmFsXCIgOiBgJHtzdGF0cy5vZmZsaW5lfSBTZXJ2aWNlJHtzdGF0cy5vZmZsaW5lID4gMSA/ICdzJyA6ICcnfSBEb3duYH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc2xhdGUtNTAwIHRleHQteHNcIj7igKIgVXBkYXRlZCB7bmV3IERhdGUoKS50b0xvY2FsZVRpbWVTdHJpbmcoKX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICB7LyogUmlnaHQgQWN0aW9ucyAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgIDxTZWFyY2ggY2xhc3NOYW1lPVwidy00IGgtNCBhYnNvbHV0ZSBsZWZ0LTMgdG9wLTEvMiAtdHJhbnNsYXRlLXktMS8yIHRleHQtc2xhdGUtNTAwXCIgLz5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LTY0IGJnLXNsYXRlLTgwMC81MCBib3JkZXIgYm9yZGVyLXNsYXRlLTcwMCByb3VuZGVkLWxnIHBsLTEwIHByLTQgcHktMiB0ZXh0LXNtIHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMC81MCBmb2N1czpvdXRsaW5lLW5vbmVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxCdXR0b24gb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZE1vZGFsKHRydWUpfT5cbiAgICAgICAgICAgICAgPFBsdXMgY2xhc3NOYW1lPVwidy00IGgtNCBtci0yXCIgLz5cbiAgICAgICAgICAgICAgQWRkIE1vbml0b3JcbiAgICAgICAgICAgIDwvQnV0dG9uPlxuXG4gICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJnaG9zdFwiIHNpemU9XCJpY29uXCIgb25DbGljaz17ZmV0Y2hEYXRhfT5cbiAgICAgICAgICAgICAgPFJlZnJlc2hDdyBjbGFzc05hbWU9XCJ3LTUgaC01XCIgLz5cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuXG4gICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJnaG9zdFwiIHNpemU9XCJpY29uXCIgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgPEJlbGwgY2xhc3NOYW1lPVwidy01IGgtNVwiIC8+XG4gICAgICAgICAgICAgIHtzdGF0cy5pbmNpZGVudHMgPiAwICYmIChcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMSByaWdodC0xIHctMiBoLTIgYmctcmVkLTUwMCByb3VuZGVkLWZ1bGxcIiAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9CdXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy05IGgtOSByb3VuZGVkLWZ1bGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1lbWVyYWxkLTUwMCB0by1jeWFuLTUwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LXdoaXRlIGZvbnQtbWVkaXVtIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgTUJcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICB7LyogRGFzaGJvYXJkIENvbnRlbnQgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIHAtNiBvdmVyZmxvdy1hdXRvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXgtdy03eGwgbXgtYXV0byBzcGFjZS15LTZcIj5cbiAgICAgICAgICAgIHsvKiBLUEkgUm93IC0gNCBjYXJkcyAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMiBtZDpncmlkLWNvbHMtNCBnYXAtNFwiPlxuICAgICAgICAgICAgICA8S1BJQ2FyZFxuICAgICAgICAgICAgICAgIHRpdGxlPVwiU2VydmljZXMgT25saW5lXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17YCR7c3RhdHMub25saW5lfS8ke3N0YXRzLnRvdGFsfWB9XG4gICAgICAgICAgICAgICAgc3VidGl0bGU9e2FsbFVwID8gXCJBbGwgaGVhbHRoeVwiIDogYCR7c3RhdHMub2ZmbGluZX0gZG93bmB9XG4gICAgICAgICAgICAgICAgaWNvbj17U2VydmVyfVxuICAgICAgICAgICAgICAgIGNvbG9yPVwiZW1lcmFsZFwiXG4gICAgICAgICAgICAgICAgZGF0YT17c2VydmljZXNEYXRhfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8S1BJQ2FyZFxuICAgICAgICAgICAgICAgIHRpdGxlPVwiQXZlcmFnZSBVcHRpbWVcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtgJHtzdGF0cy5hdmdVcHRpbWV9JWB9XG4gICAgICAgICAgICAgICAgc3VidGl0bGU9XCJMYXN0IDMwIGRheXNcIlxuICAgICAgICAgICAgICAgIGljb249e0NoZWNrQ2lyY2xlMn1cbiAgICAgICAgICAgICAgICBjb2xvcj1cImJsdWVcIlxuICAgICAgICAgICAgICAgIGRhdGE9e3VwdGltZURhdGF9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxLUElDYXJkXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJBdmcgUmVzcG9uc2UgVGltZVwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e2Ake3N0YXRzLmF2Z1Jlc3BvbnNlVGltZX1tc2B9XG4gICAgICAgICAgICAgICAgc3VidGl0bGU9XCJBY3Jvc3MgYWxsIHNlcnZpY2VzXCJcbiAgICAgICAgICAgICAgICBpY29uPXtaYXB9XG4gICAgICAgICAgICAgICAgY29sb3I9XCJwdXJwbGVcIlxuICAgICAgICAgICAgICAgIGRhdGE9e3Jlc3BvbnNlRGF0YX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPEtQSUNhcmRcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlRvdGFsIEluY2lkZW50c1wiXG4gICAgICAgICAgICAgICAgdmFsdWU9e3N0YXRzLmluY2lkZW50c31cbiAgICAgICAgICAgICAgICBzdWJ0aXRsZT1cIkxhc3QgMjQgaG91cnNcIlxuICAgICAgICAgICAgICAgIGljb249e0FsZXJ0VHJpYW5nbGV9XG4gICAgICAgICAgICAgICAgY29sb3I9XCJhbWJlclwiXG4gICAgICAgICAgICAgICAgZGF0YT17aW5jaWRlbnRzRGF0YX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogTW9uaXRvcmVkIFNlcnZpY2VzIFNlY3Rpb24gKi99XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi00XCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlXCI+TW9uaXRvcmVkIFNlcnZpY2VzPC9oMj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNTAwXCI+e3N0YXRzLnRvdGFsfSBzZXJ2aWNlczwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICAgICAgICBsYXlvdXRcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zIGdhcC02XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxBbmltYXRlUHJlc2VuY2UgbW9kZT1cInBvcExheW91dFwiPlxuICAgICAgICAgICAgICAgICAge2FwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwU3RhdHVzID0gZ2V0QXBwU3RhdHVzKGFwcC5pZCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFNlcnZpY2VDYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FwcC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcD17YXBwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPXthcHBTdGF0dXN9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkRlbGV0ZT17KCkgPT4gZGVsZXRlQXBwKGFwcC5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICAgICAge2FwcHMubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCB5OiAyMCB9fVxuICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBweS0xNiBiZy1zbGF0ZS05MDAvMzAgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLWRhc2hlZCBib3JkZXItc2xhdGUtODAwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTYgaC0xNiBiZy1zbGF0ZS04MDAgcm91bmRlZC0yeGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgbXgtYXV0byBtYi00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxNb25pdG9yIGNsYXNzTmFtZT1cInctOCBoLTggdGV4dC1zbGF0ZS02MDBcIiAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtd2hpdGUgbWItMlwiPk5vIG1vbml0b3JzIHlldDwvaDM+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTUwMCBtYi00XCI+U3RhcnQgbW9uaXRvcmluZyB5b3VyIHNlcnZpY2VzPC9wPlxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXsoKSA9PiBzZXRTaG93QWRkTW9kYWwodHJ1ZSl9PlxuICAgICAgICAgICAgICAgICAgICBBZGQgWW91ciBGaXJzdCBNb25pdG9yXG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG5cbiAgICAgIHsvKiBBZGQgTW9uaXRvciBNb2RhbCAqL31cbiAgICAgIDxBbmltYXRlUHJlc2VuY2U+XG4gICAgICAgIHtzaG93QWRkTW9kYWwgJiYgKFxuICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgZXhpdD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIGJnLWJsYWNrLzYwIGJhY2tkcm9wLWJsdXItc20gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgei01MCBwLTRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgc2NhbGU6IDAuOTUsIHk6IDIwIH19XG4gICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgc2NhbGU6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgICAgZXhpdD17eyBvcGFjaXR5OiAwLCBzY2FsZTogMC45NSwgeTogMjAgfX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctc2xhdGUtOTAwIGJvcmRlciBib3JkZXItc2xhdGUtODAwIHJvdW5kZWQteGwgcC02IHctZnVsbCBtYXgtdy1tZCBzaGFkb3ctMnhsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkIHRleHQtd2hpdGUgbWItMlwiPkFkZCBOZXcgTW9uaXRvcjwvaDI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc2xhdGUtNDAwIHRleHQtc20gbWItNlwiPkNvbmZpZ3VyZSBhIG5ldyBzZXJ2aWNlIHRvIG1vbml0b3I8L3A+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8Zm9ybSBvblN1Ym1pdD17YWRkQXBwfSBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1zbGF0ZS0zMDAgbWItMlwiPlNlcnZpY2UgTmFtZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bmV3QXBwLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0TmV3QXBwKHsgLi4ubmV3QXBwLCBuYW1lOiBlLnRhcmdldC52YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXNsYXRlLTgwMC81MCBib3JkZXIgYm9yZGVyLXNsYXRlLTcwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMC81MCBmb2N1czpvdXRsaW5lLW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk15IFNlcnZpY2VcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtMzAwIG1iLTJcIj5VUkw8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bmV3QXBwLnVybH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldE5ld0FwcCh7IC4uLm5ld0FwcCwgdXJsOiBlLnRhcmdldC52YWx1ZSB9KX1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgYmctc2xhdGUtODAwLzUwIGJvcmRlciBib3JkZXItc2xhdGUtNzAwIHJvdW5kZWQtbGcgcHgtNCBweS0yLjUgdGV4dC13aGl0ZSBwbGFjZWhvbGRlci1zbGF0ZS01MDAgZm9jdXM6Ym9yZGVyLWVtZXJhbGQtNTAwLzUwIGZvY3VzOm91dGxpbmUtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJodHRwOi8vbG9jYWxob3N0OjMwMDBcIlxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJibG9jayB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtMzAwIG1iLTJcIj5Qb3J0PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e25ld0FwcC5wb3J0fVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0TmV3QXBwKHsgLi4ubmV3QXBwLCBwb3J0OiBwYXJzZUludChlLnRhcmdldC52YWx1ZSkgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXNsYXRlLTgwMC81MCBib3JkZXIgYm9yZGVyLXNsYXRlLTcwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMC81MCBmb2N1czpvdXRsaW5lLW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBnYXAtMyBwdC00XCI+XG4gICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZVwiXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNob3dBZGRNb2RhbChmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzc05hbWU9XCJmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgQWRkIE1vbml0b3JcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICApfVxuICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIm1vdGlvbiIsIkFuaW1hdGVQcmVzZW5jZSIsIkFjdGl2aXR5IiwiUGx1cyIsIlJlZnJlc2hDdyIsIlRyYXNoMiIsIkV4dGVybmFsTGluayIsIlNlYXJjaCIsIkJlbGwiLCJTZXR0aW5ncyIsIkxheW91dERhc2hib2FyZCIsIk1vbml0b3IiLCJBbGVydFRyaWFuZ2xlIiwiSGlzdG9yeSIsIkNoZWNrQ2lyY2xlMiIsIkNsb2NrIiwiWmFwIiwiU2VydmVyIiwiTGluZUNoYXJ0IiwiTGluZSIsIlJlc3BvbnNpdmVDb250YWluZXIiLCJnZW5lcmF0ZVNwYXJrbGluZURhdGEiLCJwb2ludHMiLCJpc1VwIiwiQXJyYXkiLCJmcm9tIiwibGVuZ3RoIiwiXyIsImkiLCJ2YWx1ZSIsIk1hdGgiLCJyYW5kb20iLCJ0aW1lIiwiQ2FyZCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGl2IiwiQ2FyZENvbnRlbnQiLCJCYWRnZSIsInZhcmlhbnQiLCJ2YXJpYW50cyIsImRlZmF1bHQiLCJzdWNjZXNzIiwiZGVzdHJ1Y3RpdmUiLCJ3YXJuaW5nIiwic3BhbiIsIlByb2dyZXNzIiwiZ2V0Q29sb3IiLCJpbml0aWFsIiwid2lkdGgiLCJhbmltYXRlIiwidHJhbnNpdGlvbiIsImR1cmF0aW9uIiwiZWFzZSIsIkJ1dHRvbiIsInNpemUiLCJwcm9wcyIsImdob3N0Iiwib3V0bGluZSIsInNpemVzIiwic20iLCJpY29uIiwiYnV0dG9uIiwiU2lkZWJhckl0ZW0iLCJJY29uIiwibGFiZWwiLCJpc0FjdGl2ZSIsIm9uQ2xpY2siLCJ3aGlsZUhvdmVyIiwieCIsIndoaWxlVGFwIiwic2NhbGUiLCJLUElDYXJkIiwidGl0bGUiLCJzdWJ0aXRsZSIsImNvbG9yIiwiZGF0YSIsImNvbG9yTWFwIiwiZW1lcmFsZCIsImJnIiwidGV4dCIsImJhciIsImJsdWUiLCJwdXJwbGUiLCJhbWJlciIsImNvbG9ycyIsInAiLCJoZWlnaHQiLCJ0eXBlIiwiZGF0YUtleSIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwiZG90IiwiU2VydmljZUNhcmQiLCJhcHAiLCJzdGF0dXMiLCJvbkRlbGV0ZSIsImlzSG92ZXJlZCIsInNldElzSG92ZXJlZCIsInNwYXJrbGluZURhdGEiLCJsYXlvdXQiLCJvcGFjaXR5IiwiZXhpdCIsIm9uSG92ZXJTdGFydCIsIm9uSG92ZXJFbmQiLCJoMyIsIm5hbWUiLCJhIiwiaHJlZiIsInVybCIsInRhcmdldCIsInJlbCIsInBvcnQiLCJ1cHRpbWUiLCJhdmdSZXNwb25zZVRpbWUiLCJsYXRlc3QiLCJEYXRlIiwidGltZXN0YW1wIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiRGFzaGJvYXJkIiwiYXBwcyIsInNldEFwcHMiLCJzZXRTdGF0dXMiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsImFjdGl2ZU5hdiIsInNldEFjdGl2ZU5hdiIsInNob3dBZGRNb2RhbCIsInNldFNob3dBZGRNb2RhbCIsIm5ld0FwcCIsInNldE5ld0FwcCIsImVuYWJsZWQiLCJmZXRjaERhdGEiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsInJlcyIsImZldGNoIiwianNvbiIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsImFkZEFwcCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsImFjdGlvbiIsImRlbGV0ZUFwcCIsImlkIiwiY29uZmlybSIsImdldEFwcFN0YXR1cyIsImFwcElkIiwiYXBwU3RhdHVzIiwiZmlsdGVyIiwicyIsInJvdW5kIiwicmVzcG9uc2VUaW1lIiwicmVkdWNlIiwiYWNjIiwic3RhdHMiLCJ0b3RhbCIsIm9ubGluZSIsIm9mZmxpbmUiLCJhdmdVcHRpbWUiLCJpbmNpZGVudHMiLCJhbGxVcCIsInNlcnZpY2VzRGF0YSIsInVwdGltZURhdGEiLCJyZXNwb25zZURhdGEiLCJtYXAiLCJkIiwiaW5jaWRlbnRzRGF0YSIsInJvdGF0ZSIsInJlcGVhdCIsIkluZmluaXR5IiwiYXNpZGUiLCJuYXYiLCJtYWluIiwiaGVhZGVyIiwiaW5wdXQiLCJwbGFjZWhvbGRlciIsImgyIiwibW9kZSIsInkiLCJmb3JtIiwib25TdWJtaXQiLCJvbkNoYW5nZSIsInJlcXVpcmVkIiwicGFyc2VJbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/app/page.tsx\n"); /***/ }), /***/ "(rsc)/./src/app/globals.css": /*!*****************************!*\ !*** ./src/app/globals.css ***! \*****************************/ /***/ ((__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 default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"43019ed0b75a\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9nbG9iYWxzLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcIjQzMDE5ZWQwYjc1YVwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n"); /***/ }), /***/ "(rsc)/./src/app/layout.tsx": /*!****************************!*\ !*** ./src/app/layout.tsx ***! \****************************/ /***/ ((__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 */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/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 _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\nconst metadata = {\n title: \"Heartbeat Monitor\",\n description: \"Real-time monitoring dashboard for your web applications\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n className: \"dark\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: \"antialiased\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout.tsx\",\n lineNumber: 15,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ3VCO0FBRWhCLE1BQU1BLFdBQXFCO0lBQ2hDQyxPQUFPO0lBQ1BDLGFBQWE7QUFDZixFQUFFO0FBRWEsU0FBU0MsV0FBVyxFQUNqQ0MsUUFBUSxFQUdSO0lBQ0EscUJBQ0UsOERBQUNDO1FBQUtDLE1BQUs7UUFBS0MsV0FBVTtrQkFDeEIsNEVBQUNDO1lBQUtELFdBQVU7c0JBQWVIOzs7Ozs7Ozs7OztBQUdyQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvbGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1ldGFkYXRhIH0gZnJvbSBcIm5leHRcIjtcbmltcG9ydCBcIi4vZ2xvYmFscy5jc3NcIjtcblxuZXhwb3J0IGNvbnN0IG1ldGFkYXRhOiBNZXRhZGF0YSA9IHtcbiAgdGl0bGU6IFwiSGVhcnRiZWF0IE1vbml0b3JcIixcbiAgZGVzY3JpcHRpb246IFwiUmVhbC10aW1lIG1vbml0b3JpbmcgZGFzaGJvYXJkIGZvciB5b3VyIHdlYiBhcHBsaWNhdGlvbnNcIixcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFJvb3RMYXlvdXQoe1xuICBjaGlsZHJlbixcbn06IFJlYWRvbmx5PHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn0+KSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCIgY2xhc3NOYW1lPVwiZGFya1wiPlxuICAgICAgPGJvZHkgY2xhc3NOYW1lPVwiYW50aWFsaWFzZWRcIj57Y2hpbGRyZW59PC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImNsYXNzTmFtZSIsImJvZHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n"); /***/ }), /***/ "(rsc)/./src/app/page.tsx": /*!**************************!*\ !*** ./src/app/page.tsx ***! \**************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server.edge */ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server-edge.js"); /* harmony import */ var react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__); /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)( function() { throw new Error("Attempted to call the default export of \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); }, "/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx", "default", )); /***/ }) }; ; // load runtime 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/lodash","vendor-chunks/motion-dom","vendor-chunks/recharts","vendor-chunks/framer-motion","vendor-chunks/d3-shape","vendor-chunks/motion-utils","vendor-chunks/d3-scale","vendor-chunks/lucide-react","vendor-chunks/d3-array","vendor-chunks/d3-format","vendor-chunks/d3-interpolate","vendor-chunks/d3-time","vendor-chunks/react-smooth","vendor-chunks/react-transition-group","vendor-chunks/prop-types","vendor-chunks/@babel","vendor-chunks/@swc","vendor-chunks/recharts-scale","vendor-chunks/d3-time-format","vendor-chunks/d3-color","vendor-chunks/victory-vendor","vendor-chunks/react-is","vendor-chunks/tiny-invariant","vendor-chunks/internmap","vendor-chunks/fast-equals","vendor-chunks/decimal.js-light","vendor-chunks/d3-path","vendor-chunks/clsx","vendor-chunks/object-assign","vendor-chunks/eventemitter3"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"))); module.exports = __webpack_exports__; })();