"use strict"; /* * 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/). */ self["webpackHotUpdate_N_E"]("app/dashboard/analytics/page",{ /***/ "(app-pages-browser)/./app/dashboard/analytics/page.tsx": /*!******************************************!*\ !*** ./app/dashboard/analytics/page.tsx ***! \******************************************/ /***/ (function(module, __webpack_exports__, __webpack_require__) { eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ Analytics; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/component/ResponsiveContainer.js\");\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/chart/PieChart.js\");\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/polar/Pie.js\");\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/component/Cell.js\");\n/* harmony import */ var _barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! __barrel_optimize__?names=Cell,Pie,PieChart,ResponsiveContainer,Tooltip!=!recharts */ \"(app-pages-browser)/./node_modules/recharts/es6/component/Tooltip.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/download.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/scan-line.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/users.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/shield-check.js\");\n/* harmony import */ var _barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Download,Globe,ScanLine,ShieldCheck,Users!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js\");\n/* harmony import */ var _components_ScanTrendChart__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ScanTrendChart */ \"(app-pages-browser)/./components/ScanTrendChart.tsx\");\n/* harmony import */ var _lib_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/api */ \"(app-pages-browser)/./lib/api.ts\");\n/* harmony import */ var _components_GeographicOverview__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/GeographicOverview */ \"(app-pages-browser)/./components/GeographicOverview.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\nconst PRESETS = [\n {\n label: \"7d\",\n days: 7\n },\n {\n label: \"30d\",\n days: 30\n },\n {\n label: \"90d\",\n days: 90\n }\n];\nconst DONUT = [\n \"#2563eb\",\n \"#10b981\",\n \"#f59e0b\",\n \"#94a3b8\"\n];\nconst DOW = [\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n \"Sun\"\n];\nfunction Analytics() {\n _s();\n const [days, setDays] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(30);\n const [s, setS] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [trend, setTrend] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [topP, setTopP] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [cities, setCities] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [devices, setDevices] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [heat, setHeat] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [recent, setRecent] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [geo, setGeo] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/geography\").then(setGeo).catch(()=>{});\n }, []);\n const [period, setPeriod] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"morning\");\n const PERIODS = {\n morning: {\n label: \"Morning\",\n start: 6,\n end: 12\n },\n afternoon: {\n label: \"Afternoon\",\n start: 12,\n end: 18\n },\n evening: {\n label: \"Evening\",\n start: 18,\n end: 24\n },\n night: {\n label: \"Night\",\n start: 0,\n end: 6\n }\n };\n const hours = Array.from({\n length: PERIODS[period].end - PERIODS[period].start\n }, (_, i)=>PERIODS[period].start + i);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/summary?days=\".concat(days)).then(setS).catch(()=>{});\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/trend?days=\".concat(days)).then(setTrend).catch(()=>{});\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/top-products\").then(setTopP).catch(()=>{});\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/top-cities\").then(setCities).catch(()=>{});\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/devices\").then(setDevices).catch(()=>{});\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/time-distribution\").then(setHeat).catch(()=>{});\n (0,_lib_api__WEBPACK_IMPORTED_MODULE_3__.api)(\"/analytics/recent-scans\").then(setRecent).catch(()=>{});\n }, [\n days\n ]);\n const maxP = Math.max(1, ...topP.map((p)=>p.scans));\n const maxHeat = Math.max(1, ...heat.map((h)=>h.count));\n var _s_total_scans, _s_unique_consumers, _s_today_scans, _s_active_products, _s_avg_trust_score, _s_countries;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-5\",\n children: [\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)(\"h2\", {\n className: \"text-xl font-bold\",\n children: \"Analytics & Insights\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 82,\n columnNumber: 9\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: \"flex rounded-lg border border-slate-200 overflow-hidden\",\n children: PRESETS.map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setDays(p.days),\n className: \"px-3 py-1.5 text-sm font-medium \".concat(days === p.days ? \"bg-brand-600 text-white\" : \"bg-white text-slate-600\"),\n children: p.label\n }, p.days, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 86,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 84,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"\".concat(_lib_api__WEBPACK_IMPORTED_MODULE_3__.apiBase, \"/analytics/export?days=\").concat(days),\n className: \"flex items-center gap-2 border border-slate-200 px-3 py-1.5 rounded-lg text-sm font-medium\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 94,\n columnNumber: 13\n }, this),\n \" CSV\"\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 92,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 83,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 81,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Total Scans\",\n value: (_s_total_scans = s === null || s === void 0 ? void 0 : s.total_scans) !== null && _s_total_scans !== void 0 ? _s_total_scans : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 101,\n columnNumber: 68\n }, void 0),\n tint: \"bg-blue-50 text-blue-600\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 101,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Unique Consumers\",\n value: (_s_unique_consumers = s === null || s === void 0 ? void 0 : s.unique_consumers) !== null && _s_unique_consumers !== void 0 ? _s_unique_consumers : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 102,\n columnNumber: 78\n }, void 0),\n tint: \"bg-violet-50 text-violet-600\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Today\",\n value: (_s_today_scans = s === null || s === void 0 ? void 0 : s.today_scans) !== null && _s_today_scans !== void 0 ? _s_today_scans : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 103,\n columnNumber: 62\n }, void 0),\n tint: \"bg-orange-50 text-orange-500\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 103,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Active Products\",\n value: (_s_active_products = s === null || s === void 0 ? void 0 : s.active_products) !== null && _s_active_products !== void 0 ? _s_active_products : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 104,\n columnNumber: 76\n }, void 0),\n tint: \"bg-emerald-50 text-emerald-600\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 104,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Avg Trust\",\n value: \"\".concat((_s_avg_trust_score = s === null || s === void 0 ? void 0 : s.avg_trust_score) !== null && _s_avg_trust_score !== void 0 ? _s_avg_trust_score : 0, \"%\"),\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 105,\n columnNumber: 76\n }, void 0),\n tint: \"bg-blue-50 text-blue-600\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 105,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Kpi, {\n label: \"Countries\",\n value: (_s_countries = s === null || s === void 0 ? void 0 : s.countries) !== null && _s_countries !== void 0 ? _s_countries : 0,\n icon: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Download_Globe_ScanLine_ShieldCheck_Users_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"h-5 w-5\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 106,\n columnNumber: 64\n }, void 0),\n tint: \"bg-amber-50 text-amber-500\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 106,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 100,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid lg:grid-cols-3 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5 lg:col-span-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-2\",\n children: \"Scan Trend\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 111,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ScanTrendChart__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n data: trend\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 112,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 110,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-2\",\n children: \"Device Types\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 115,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_10__.ResponsiveContainer, {\n width: \"100%\",\n height: 200,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_11__.PieChart, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_12__.Pie, {\n data: devices,\n dataKey: \"scans\",\n nameKey: \"device\",\n innerRadius: 50,\n outerRadius: 80,\n paddingAngle: 2,\n children: devices.map((_, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_13__.Cell, {\n fill: DONUT[i % DONUT.length]\n }, i, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 119,\n columnNumber: 40\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 118,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Cell_Pie_PieChart_ResponsiveContainer_Tooltip_recharts__WEBPACK_IMPORTED_MODULE_14__.Tooltip, {}, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 121,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 117,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 116,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-2 justify-center mt-2 text-xs\",\n children: devices.map((d, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"h-2 w-2 rounded-full\",\n style: {\n background: DONUT[i % DONUT.length]\n }\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 127,\n columnNumber: 17\n }, this),\n d.device,\n \" (\",\n d.scans,\n \")\"\n ]\n }, d.device, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 126,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 124,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 114,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-4\",\n children: \"Scan Time Distribution\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 135,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex rounded-lg border overflow-hidden mb-5\",\n children: Object.entries(PERIODS).map((param)=>{\n let [key, value] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setPeriod(key),\n className: \"flex-1 py-2 text-sm font-medium transition \".concat(period === key ? \"bg-blue-600 text-white\" : \"bg-white text-slate-600 hover:bg-slate-50\"),\n children: value.label\n }, key, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 138,\n columnNumber: 5\n }, this);\n })\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 136,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"overflow-x-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"inline-grid gap-0.5\",\n style: {\n gridTemplateColumns: \"32px repeat(${hours.length}, 18px)\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {}, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 153,\n columnNumber: 13\n }, this),\n hours.map((h)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-[10px] text-center text-slate-400\",\n children: h === 0 ? \"12 AM\" : h === 12 ? \"12 PM\" : h < 12 ? \"\".concat(h, \" AM\") : \"\".concat(h - 12, \" PM\")\n }, h, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 155,\n columnNumber: 3\n }, this)),\n DOW.map((day, d)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-[10px] text-slate-500 pr-1 flex items-center\",\n children: day\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 170,\n columnNumber: 17\n }, this),\n Array.from({\n length: 24\n }).map((_, h)=>{\n const cell = heat.find((x)=>x.dow === d && x.hour === h);\n var _cell_count;\n const v = (_cell_count = cell === null || cell === void 0 ? void 0 : cell.count) !== null && _cell_count !== void 0 ? _cell_count : 0;\n const op = v === 0 ? 0.06 : 0.2 + v / maxHeat * 0.8;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n title: \"\".concat(day, \" \").concat(h, \":00 — \").concat(v),\n className: \"h-[14px] w-[14px] rounded-[2px]\",\n style: {\n background: \"rgba(37,99,235,\".concat(op, \")\")\n }\n }, \"\".concat(d, \"-\").concat(h), false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 175,\n columnNumber: 26\n }, this);\n })\n ]\n }, \"row-\".concat(d), true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 169,\n columnNumber: 15\n }, this))\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 152,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 151,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 134,\n columnNumber: 10\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 109,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid lg:grid-cols-3 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-4\",\n children: \"Top Products\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 187,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\n children: [\n topP.map((p)=>/*#__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-28 text-sm text-slate-600 truncate\",\n children: p.name\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 191,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 h-3 rounded-full bg-slate-100 overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full rounded-full bg-blue-400\",\n style: {\n width: \"\".concat(p.scans / maxP * 100, \"%\")\n }\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 193,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 192,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 text-right text-sm font-semibold\",\n children: p.scans\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 195,\n columnNumber: 17\n }, this)\n ]\n }, p.name, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 190,\n columnNumber: 15\n }, this)),\n topP.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"No data.\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 198,\n columnNumber: 35\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 188,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 186,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-4\",\n children: \"Top Cities\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 202,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ol\", {\n className: \"space-y-2 text-sm\",\n children: [\n cities.map((c, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-600\",\n children: [\n i + 1,\n \". \",\n c.city\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 206,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: c.scans\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 207,\n columnNumber: 17\n }, this)\n ]\n }, c.city, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 205,\n columnNumber: 15\n }, this)),\n cities.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"text-slate-400\",\n children: \"No data.\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 210,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 203,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 201,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold mb-4\",\n children: \"Geographic Overview\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 214,\n columnNumber: 5\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_GeographicOverview__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n data: geo\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 218,\n columnNumber: 5\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 213,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 185,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card overflow-x-auto\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-bold p-5 pb-3\",\n children: \"Recent Scans\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 227,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n className: \"w-full text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\n className: \"bg-slate-50 text-slate-500 text-left\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"Time\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 231,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"Code\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 232,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"City\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 233,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"Country\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 234,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n className: \"px-4 py-3 font-medium\",\n children: \"Device\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 235,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 230,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 229,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n className: \"divide-y divide-slate-100\",\n children: [\n recent.map((r, i)=>/*#__PURE__*/ {\n var _r_city, _r_country, _r_device;\n return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3 text-slate-500\",\n children: new Date(r.at).toLocaleString()\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 241,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3 font-mono text-slate-600\",\n children: r.code\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 242,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3\",\n children: (_r_city = r.city) !== null && _r_city !== void 0 ? _r_city : \"—\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 243,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3\",\n children: (_r_country = r.country) !== null && _r_country !== void 0 ? _r_country : \"—\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 244,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n className: \"px-4 py-3\",\n children: (_r_device = r.device) !== null && _r_device !== void 0 ? _r_device : \"—\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 245,\n columnNumber: 17\n }, this)\n ]\n }, i, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 240,\n columnNumber: 15\n }, this);\n }),\n recent.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tr\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n colSpan: 5,\n className: \"px-4 py-10 text-center text-slate-400\",\n children: \"No scans yet.\"\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 248,\n columnNumber: 41\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 248,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 238,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 228,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 226,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 80,\n columnNumber: 5\n }, this);\n}\n_s(Analytics, \"/B6m+gvxNa39FlbX6ic7dEZGFoQ=\");\n_c = Analytics;\nfunction Kpi(param) {\n let { label, value, icon, tint } = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card p-4\",\n children: /*#__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: \"h-11 w-11 rounded-xl grid place-items-center shrink-0 \".concat(tint),\n children: icon\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 260,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xl font-extrabold text-slate-900\",\n children: value\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 262,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-slate-500\",\n children: label\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 263,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 261,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 259,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"C:\\\\company_projects\\\\verify pack\\\\frontend\\\\app\\\\dashboard\\\\analytics\\\\page.tsx\",\n lineNumber: 258,\n columnNumber: 5\n }, this);\n}\n_c1 = Kpi;\nvar _c, _c1;\n$RefreshReg$(_c, \"Analytics\");\n$RefreshReg$(_c1, \"Kpi\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9kYXNoYm9hcmQvYW5hbHl0aWNzL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDc0Q7QUFHcEM7QUFDMkQ7QUFDcEI7QUFDaEI7QUFDd0I7QUFFakUsTUFBTWlCLFVBQVU7SUFDZDtRQUFFQyxPQUFPO1FBQU1DLE1BQU07SUFBRTtJQUN2QjtRQUFFRCxPQUFPO1FBQU9DLE1BQU07SUFBRztJQUN6QjtRQUFFRCxPQUFPO1FBQU9DLE1BQU07SUFBRztDQUMxQjtBQUNELE1BQU1DLFFBQVE7SUFBQztJQUFXO0lBQVc7SUFBVztDQUFVO0FBQzFELE1BQU1DLE1BQU07SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87SUFBTztDQUFNO0FBRzlDLFNBQVNDOztJQUN0QixNQUFNLENBQUNILE1BQU1JLFFBQVEsR0FBR3JCLCtDQUFRQSxDQUFDO0lBQ2pDLE1BQU0sQ0FBQ3NCLEdBQUdDLEtBQUssR0FBR3ZCLCtDQUFRQSxDQUFNO0lBQ2hDLE1BQU0sQ0FBQ3dCLE9BQU9DLFNBQVMsR0FBR3pCLCtDQUFRQSxDQUFRLEVBQUU7SUFDNUMsTUFBTSxDQUFDMEIsTUFBTUMsUUFBUSxHQUFHM0IsK0NBQVFBLENBQVEsRUFBRTtJQUMxQyxNQUFNLENBQUM0QixRQUFRQyxVQUFVLEdBQUc3QiwrQ0FBUUEsQ0FBUSxFQUFFO0lBQzlDLE1BQU0sQ0FBQzhCLFNBQVNDLFdBQVcsR0FBRy9CLCtDQUFRQSxDQUFRLEVBQUU7SUFDaEQsTUFBTSxDQUFDZ0MsTUFBTUMsUUFBUSxHQUFHakMsK0NBQVFBLENBQVEsRUFBRTtJQUMxQyxNQUFNLENBQUNrQyxRQUFRQyxVQUFVLEdBQUduQywrQ0FBUUEsQ0FBUSxFQUFFO0lBQzlDLE1BQU0sQ0FBQ29DLEtBQUtDLE9BQU8sR0FBR3JDLCtDQUFRQSxDQUFRLEVBQUU7SUFFMUNELGdEQUFTQSxDQUFDO1FBQ1JhLDZDQUFHQSxDQUFDLHdCQUF3QjBCLElBQUksQ0FB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Q3NELEVBQUVLLElBQUk7Ozs7Ozs4REFDMUQsOERBQUNKO29EQUFHdkQsV0FBVTs4REFBYXNELENBQUFBLFVBQUFBLEVBQUVOLElBQUksY0FBTk0scUJBQUFBLFVBQVU7Ozs7Ozs4REFDckMsOERBQUNDO29EQUFHdkQsV0FBVTs4REFBYXNELENBQUFBLGFBQUFBLEVBQUVNLE9BQU8sY0FBVE4sd0JBQUFBLGFBQWE7Ozs7Ozs4REFDeEMsOERBQUNDO29EQUFHdkQsV0FBVTs4REFBYXNELENBQUFBLFlBQUFBLEVBQUV4QixNQUFNLGNBQVJ3Qix1QkFBQUEsWUFBWTs7Ozs7OzsyQ0FMaENqRTs7Ozs7b0NBTUw7b0NBRUxwQixPQUFPa0IsTUFBTSxLQUFLLG1CQUFLLDhEQUFDZ0U7a0RBQUcsNEVBQUNJOzRDQUFHTSxTQUFTOzRDQUFHN0QsV0FBVTtzREFBd0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTFHO0dBMU93QjdDO0tBQUFBO0FBNE94QixTQUFTbUQsSUFBSSxLQUFpQztRQUFqQyxFQUFFdkQsS0FBSyxFQUFFd0QsS0FBSyxFQUFFRSxJQUFJLEVBQUVDLElBQUksRUFBTyxHQUFqQztJQUNYLHFCQUNFLDhEQUFDWDtRQUFJQyxXQUFVO2tCQUNiLDRFQUFDRDtZQUFJQyxXQUFVOzs4QkFDYiw4REFBQ0Q7b0JBQUlDLFdBQVcseURBQThELE9BQUxVOzhCQUFTRDs7Ozs7OzhCQUNsRiw4REFBQ1Y7b0JBQUlDLFdBQVU7O3NDQUNiLDhEQUFDRDs0QkFBSUMsV0FBVTtzQ0FBeUNPOzs7Ozs7c0NBQ3hELDhEQUFDUjs0QkFBSUMsV0FBVTtzQ0FBMEJqRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLbkQ7TUFaU3VEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9kYXNoYm9hcmQvYW5hbHl0aWNzL3BhZ2UudHN4P2I4MjgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5pbXBvcnQgeyBGcmFnbWVudCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtcbiAgUGllQ2hhcnQsIFBpZSwgQ2VsbCwgUmVzcG9uc2l2ZUNvbnRhaW5lciwgVG9vbHRpcCxcbn0gZnJvbSBcInJlY2hhcnRzXCI7XG5pbXBvcnQgeyBEb3dubG9hZCwgU2NhbkxpbmUsIFVzZXJzLCBHbG9iZSwgU2hpZWxkQ2hlY2sgfSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XG5pbXBvcnQgU2NhblRyZW5kQ2hhcnQgZnJvbSBcIkAvY29tcG9uZW50cy9TY2FuVHJlbmRDaGFydFwiO1xuaW1wb3J0IHsgYXBpLCBhcGlCYXNlIH0gZnJvbSBcIkAvbGliL2FwaVwiO1xuaW1wb3J0IEdlb2dyYXBoaWNPdmVydmlldyBmcm9tIFwiQC9jb21wb25lbnRzL0dlb2dyYXBoaWNPdmVydmlld1wiO1xuXG5jb25zdCBQUkVTRVRTID0gW1xuICB7IGxhYmVsOiBcIjdkXCIsIGRheXM6IDcgfSxcbiAgeyBsYWJlbDogXCIzMGRcIiwgZGF5czogMzAgfSxcbiAgeyBsYWJlbDogXCI5MGRcIiwgZGF5czogOTAgfSxcbl07XG5jb25zdCBET05VVCA9IFtcIiMyNTYzZWJcIiwgXCIjMTBiOTgxXCIsIFwiI2Y1OWUwYlwiLCBcIiM5NGEzYjhcIl07XG5jb25zdCBET1cgPSBbXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIiwgXCJTdW5cIl07XG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQW5hbHl0aWNzKCkge1xuICBjb25zdCBbZGF5cywgc2V0RGF5c10gPSB1c2VTdGF0ZSgzMCk7XG4gIGNvbnN0IFtzLCBzZXRTXSA9IHVzZVN0YXRlPGFueT4obnVsbCk7XG4gIGNvbnN0IFt0cmVuZCwgc2V0VHJlbmRdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcbiAgY29uc3QgW3RvcFAsIHNldFRvcFBdID0gdXNlU3RhdGU8YW55W10+KFtdKTtcbiAgY29uc3QgW2NpdGllcywgc2V0Q2l0aWVzXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IFtkZXZpY2VzLCBzZXREZXZpY2VzXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IFtoZWF0LCBzZXRIZWF0XSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IFtyZWNlbnQsIHNldFJlY2VudF0gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbZ2VvLCBzZXRHZW9dID0gdXNlU3RhdGU8YW55W10+KFtdKTtcblxudXNlRWZmZWN0KCgpID0+IHtcbiAgYXBpKFwiL2FuYWx5dGljcy9nZW9ncmFwaHlcIikudGhlbihzZXRHZW8pLmNhdGNoKCgpID0+IHt9KTtcbn0sIFtdKTtcblxuY29uc3QgW3BlcmlvZCwgc2V0UGVyaW9kXSA9IHVzZVN0YXRlPFxuICBcIm1vcm5pbmdcIiB8IFwiYWZ0ZXJub29uXCIgfCBcImV2ZW5pbmdcIiB8IFwibmlnaHRcIlxuPihcIm1vcm5pbmdcIik7XG5jb25zdCBQRVJJT0RTID0ge1xuICBtb3JuaW5nOiB7XG4gICAgbGFiZWw6IFwiTW9ybmluZ1wiLFxuICAgIHN0YXJ0OiA2LFxuICAgIGVuZDogMTIsXG4gIH0sXG4gIGFmdGVybm9vbjoge1xuICAgIGxhYmVsOiBcIkFmdGVybm9vblwiLFxuICAgIHN0YXJ0OiAxMixcbiAgICBlbmQ6IDE4LFxuICB9LFxuICBldmVuaW5nOiB7XG4gICAgbGFiZWw6IFwiRXZlbmluZ1wiLFxuICAgIHN0YXJ0OiAxOCxcbiAgICBlbmQ6IDI0LFxuICB9LFxuICBuaWdodDoge1xuICAgIGxhYmVsOiBcIk5pZ2h0XCIsXG4gICAgc3RhcnQ6IDAsXG4gICAgZW5kOiA2LFxuICB9LFxufTtcblxuY29uc3QgaG91cnMgPSBBcnJheS5mcm9tKFxuICB7IGxlbmd0aDogUEVSSU9EU1twZXJpb2RdLmVuZCAtIFBFUklPRFNbcGVyaW9kXS5zdGFydCB9LFxuICAoXywgaSkgPT4gUEVSSU9EU1twZXJpb2RdLnN0YXJ0ICsgaVxuKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGFwaShgL2FuYWx5dGljcy9zdW1tYXJ5P2RheXM9JHtkYXlzfWApLnRoZW4oc2V0UykuY2F0Y2goKCkgPT4ge30pO1xuICAgIGFwaShgL2FuYWx5dGljcy90cmVuZD9kYXlzPSR7ZGF5c31gKS50aGVuKHNldFRyZW5kKS5jYXRjaCgoKSA9PiB7fSk7XG4gICAgYXBpKFwiL2FuYWx5dGljcy90b3AtcHJvZHVjdHNcIikudGhlbihzZXRUb3BQKS5jYXRjaCgoKSA9PiB7fSk7XG4gICAgYXBpKFwiL2FuYWx5dGljcy90b3AtY2l0aWVzXCIpLnRoZW4oc2V0Q2l0aWVzKS5jYXRjaCgoKSA9PiB7fSk7XG4gICAgYXBpKFwiL2FuYWx5dGljcy9kZXZpY2VzXCIpLnRoZW4oc2V0RGV2aWNlcykuY2F0Y2goKCkgPT4ge30pO1xuICAgIGFwaShcIi9hbmFseXRpY3MvdGltZS1kaXN0cmlidXRpb25cIikudGhlbihzZXRIZWF0KS5jYXRjaCgoKSA9PiB7fSk7XG4gICAgYXBpKFwiL2FuYWx5dGljcy9yZWNlbnQtc2NhbnNcIikudGhlbihzZXRSZWNlbnQpLmNhdGNoKCgpID0+IHt9KTtcbiAgfSwgW2RheXNdKTtcblxuICBjb25zdCBtYXhQID0gTWF0aC5tYXgoMSwgLi4udG9wUC5tYXAoKHApID0+IHAuc2NhbnMpKTtcbiAgY29uc3QgbWF4SGVhdCA9IE1hdGgubWF4KDEsIC4uLmhlYXQubWFwKChoKSA9PiBoLmNvdW50KSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNVwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkXCI+QW5hbHl0aWNzICYgSW5zaWdodHM8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICB7UFJFU0VUUy5tYXAoKHApID0+IChcbiAgICAgICAgICAgICAgPGJ1dHRvbiBrZXk9e3AuZGF5c30gb25DbGljaz17KCkgPT4gc2V0RGF5cyhwLmRheXMpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTMgcHktMS41IHRleHQtc20gZm9udC1tZWRpdW0gJHtkYXlzID09PSBwLmRheXMgPyBcImJnLWJyYW5kLTYwMCB0ZXh0LXdoaXRlXCIgOiBcImJnLXdoaXRlIHRleHQtc2xhdGUtNjAwXCJ9YH0+XG4gICAgICAgICAgICAgICAge3AubGFiZWx9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGEgaHJlZj17YCR7YXBpQmFzZX0vYW5hbHl0aWNzL2V4cG9ydD9kYXlzPSR7ZGF5c31gfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgYm9yZGVyIGJvcmRlci1zbGF0ZS0yMDAgcHgtMyBweS0xLjUgcm91bmRlZC1sZyB0ZXh0LXNtIGZvbnQtbWVkaXVtXCI+XG4gICAgICAgICAgICA8RG93bmxvYWQgY2xhc3NOYW1lPVwiaC00IHctNFwiIC8+IENTVlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgey8qIEtQSXMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTIgc206Z3JpZC1jb2xzLTMgbGc6Z3JpZC1jb2xzLTYgZ2FwLTRcIj5cbiAgICAgICAgPEtwaSBsYWJlbD1cIlRvdGFsIFNjYW5zXCIgdmFsdWU9e3M/LnRvdGFsX3NjYW5zID8/IDB9IGljb249ezxTY2FuTGluZSBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz59IHRpbnQ9XCJiZy1ibHVlLTUwIHRleHQtYmx1ZS02MDBcIiAvPlxuICAgICAgICA8S3BpIGxhYmVsPVwiVW5pcXVlIENvbnN1bWVyc1wiIHZhbHVlPXtzPy51bmlxdWVfY29uc3VtZXJzID8/IDB9IGljb249ezxVc2VycyBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz59IHRpbnQ9XCJiZy12aW9sZXQtNTAgdGV4dC12aW9sZXQtNjAwXCIgLz5cbiAgICAgICAgPEtwaSBsYWJlbD1cIlRvZGF5XCIgdmFsdWU9e3M/LnRvZGF5X3NjYW5zID8/IDB9IGljb249ezxTY2FuTGluZSBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz59IHRpbnQ9XCJiZy1vcmFuZ2UtNTAgdGV4dC1vcmFuZ2UtNTAwXCIgLz5cbiAgICAgICAgPEtwaSBsYWJlbD1cIkFjdGl2ZSBQcm9kdWN0c1wiIHZhbHVlPXtzPy5hY3RpdmVfcHJvZHVjdHMgPz8gMH0gaWNvbj17PFNoaWVsZENoZWNrIGNsYXNzTmFtZT1cImgtNSB3LTVcIiAvPn0gdGludD1cImJnLWVtZXJhbGQtNTAgdGV4dC1lbWVyYWxkLTYwMFwiIC8+XG4gICAgICAgIDxLcGkgbGFiZWw9XCJBdmcgVHJ1c3RcIiB2YWx1ZT17YCR7cz8uYXZnX3RydXN0X3Njb3JlID8/IDB9JWB9IGljb249ezxTaGllbGRDaGVjayBjbGFzc05hbWU9XCJoLTUgdy01XCIgLz59IHRpbnQ9XCJiZy1ibHVlLTUwIHRleHQtYmx1ZS02MDBcIiAvPlxuICAgICAgICA8S3BpIGxhYmVsPVwiQ291bnRyaWVzXCIgdmFsdWU9e3M/LmNvdW50cmllcyA/PyAwfSBpY29uPXs8R2xvYmUgY2xhc3NOYW1lPVwiaC01IHctNVwiIC8+fSB0aW50PVwiYmctYW1iZXItNTAgdGV4dC1hbWJlci01MDBcIiAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBsZzpncmlkLWNvbHMtMyBnYXAtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgcC01IGxnOmNvbC1zcGFuLTFcIj5cbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1ib2xkIG1iLTJcIj5TY2FuIFRyZW5kPC9oMz5cbiAgICAgICAgICA8U2NhblRyZW5kQ2hhcnQgZGF0YT17dHJlbmR9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgcC01XCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBtYi0yXCI+RGV2aWNlIFR5cGVzPC9oMz5cbiAgICAgICAgICA8UmVzcG9uc2l2ZUNvbnRhaW5lciB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9ezIwMH0+XG4gICAgICAgICAgICA8UGllQ2hhcnQ+XG4gICAgICAgICAgICAgIDxQaWUgZGF0YT17ZGV2aWNlc30gZGF0YUtleT1cInNjYW5zXCIgbmFtZUtleT1cImRldmljZVwiIGlubmVyUmFkaXVzPXs1MH0gb3V0ZXJSYWRpdXM9ezgwfSBwYWRkaW5nQW5nbGU9ezJ9PlxuICAgICAgICAgICAgICAgIHtkZXZpY2VzLm1hcCgoXywgaSkgPT4gPENlbGwga2V5PXtpfSBmaWxsPXtET05VVFtpICUgRE9OVVQubGVuZ3RoXX0gLz4pfVxuICAgICAgICAgICAgICA8L1BpZT5cbiAgICAgICAgICAgICAgPFRvb2x0aXAgLz5cbiAgICAgICAgICAgIDwvUGllQ2hhcnQ+XG4gICAgICAgICAgPC9SZXNwb25zaXZlQ29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTIganVzdGlmeS1jZW50ZXIgbXQtMiB0ZXh0LXhzXCI+XG4gICAgICAgICAgICB7ZGV2aWNlcy5tYXAoKGQsIGkpID0+IChcbiAgICAgICAgICAgICAgPHNwYW4ga2V5PXtkLmRldmljZX0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJoLTIgdy0yIHJvdW5kZWQtZnVsbFwiIHN0eWxlPXt7IGJhY2tncm91bmQ6IERPTlVUW2kgJSBET05VVC5sZW5ndGhdIH19IC8+XG4gICAgICAgICAgICAgICAge2QuZGV2aWNlfSAoe2Quc2NhbnN9KVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgcC01XCI+XG4gICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LWJvbGQgbWItNFwiPlNjYW4gVGltZSBEaXN0cmlidXRpb248L2gzPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggcm91bmRlZC1sZyBib3JkZXIgb3ZlcmZsb3ctaGlkZGVuIG1iLTVcIj5cbiAge09iamVjdC5lbnRyaWVzKFBFUklPRFMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoXG4gICAgPGJ1dHRvblxuICAgICAga2V5PXtrZXl9XG4gICAgICBvbkNsaWNrPXsoKSA9PiBzZXRQZXJpb2Qoa2V5IGFzIGFueSl9XG4gICAgICBjbGFzc05hbWU9e2BmbGV4LTEgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24gJHtcbiAgICAgICAgcGVyaW9kID09PSBrZXlcbiAgICAgICAgICA/IFwiYmctYmx1ZS02MDAgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgOiBcImJnLXdoaXRlIHRleHQtc2xhdGUtNjAwIGhvdmVyOmJnLXNsYXRlLTUwXCJcbiAgICAgIH1gfVxuICAgID5cbiAgICAgIHt2YWx1ZS5sYWJlbH1cbiAgICA8L2J1dHRvbj5cbiAgKSl9XG48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJvdmVyZmxvdy14LWF1dG9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlubGluZS1ncmlkIGdhcC0wLjVcIiBzdHlsZT17eyBncmlkVGVtcGxhdGVDb2x1bW5zOiBcIjMycHggcmVwZWF0KCR7aG91cnMubGVuZ3RofSwgMThweClcIiB9fT5cbiAgICAgICAgICAgIDxkaXYgLz5cbiAgICAgICAgICAgIHtob3Vycy5tYXAoKGgpID0+IChcbiAgPGRpdlxuICAgIGtleT17aH1cbiAgICBjbGFzc05hbWU9XCJ0ZXh0LVsxMHB4XSB0ZXh0LWNlbnRlciB0ZXh0LXNsYXRlLTQwMFwiXG4gID5cbiAgICB7aCA9PT0gMFxuICAgICAgPyBcIjEyIEFNXCJcbiAgICAgIDogaCA9PT0gMTJcbiAgICAgID8gXCIxMiBQTVwiXG4gICAgICA6IGggPCAxMlxuICAgICAgPyBgJHtofSBBTWBcbiAgICAgIDogYCR7aCAtIDEyfSBQTWB9XG4gIDwvZGl2PlxuKSl9XG4gICAgICAgICAgICB7RE9XLm1hcCgoZGF5LCBkKSA9PiAoXG4gICAgICAgICAgICAgIDxGcmFnbWVudCBrZXk9e2Byb3ctJHtkfWB9PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1bMTBweF0gdGV4dC1zbGF0ZS01MDAgcHItMSBmbGV4IGl0ZW1zLWNlbnRlclwiPntkYXl9PC9kaXY+XG4gICAgICAgICAgICAgICAge0FycmF5LmZyb20oeyBsZW5ndGg6IDI0IH0pLm1hcCgoXywgaCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbCA9IGhlYXQuZmluZCgoeCkgPT4geC5kb3cgPT09IGQgJiYgeC5ob3VyID09PSBoKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBjZWxsPy5jb3VudCA/PyAwO1xuICAgICAgICAgICAgICAgICAgY29uc3Qgb3AgPSB2ID09PSAwID8gMC4wNiA6IDAuMiArICh2IC8gbWF4SGVhdCkgKiAwLjg7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2Ake2R9LSR7aH1gfSB0aXRsZT17YCR7ZGF5fSAke2h9OjAwIOKAlCAke3Z9YH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC1bMTRweF0gdy1bMTRweF0gcm91bmRlZC1bMnB4XVwiIHN0eWxlPXt7IGJhY2tncm91bmQ6IGByZ2JhKDM3LDk5LDIzNSwke29wfSlgIH19IC8+O1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGxnOmdyaWQtY29scy0zIGdhcC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZCBwLTVcIj5cbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiZm9udC1ib2xkIG1iLTRcIj5Ub3AgUHJvZHVjdHM8L2gzPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0zXCI+XG4gICAgICAgICAgICB7dG9wUC5tYXAoKHApID0+IChcbiAgICAgICAgICAgICAgPGRpdiBrZXk9e3AubmFtZX0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMjggdGV4dC1zbSB0ZXh0LXNsYXRlLTYwMCB0cnVuY2F0ZVwiPntwLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgaC0zIHJvdW5kZWQtZnVsbCBiZy1zbGF0ZS0xMDAgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtZnVsbCByb3VuZGVkLWZ1bGwgYmctYmx1ZS00MDBcIiBzdHlsZT17eyB3aWR0aDogYCR7KHAuc2NhbnMgLyBtYXhQKSAqIDEwMH0lYCB9fSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xMCB0ZXh0LXJpZ2h0IHRleHQtc20gZm9udC1zZW1pYm9sZFwiPntwLnNjYW5zfTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgICAge3RvcFAubGVuZ3RoID09PSAwICYmIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1zbGF0ZS00MDBcIj5ObyBkYXRhLjwvcD59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgcC01XCI+XG4gICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBtYi00XCI+VG9wIENpdGllczwvaDM+XG4gICAgICAgICAgPG9sIGNsYXNzTmFtZT1cInNwYWNlLXktMiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICB7Y2l0aWVzLm1hcCgoYywgaSkgPT4gKFxuICAgICAgICAgICAgICA8bGkga2V5PXtjLmNpdHl9IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS02MDBcIj57aSArIDF9LiB7Yy5jaXR5fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkXCI+e2Muc2NhbnN9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICB7Y2l0aWVzLmxlbmd0aCA9PT0gMCAmJiA8bGkgY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS00MDBcIj5ObyBkYXRhLjwvbGk+fVxuICAgICAgICAgIDwvb2w+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgcC01XCI+XG4gICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtYm9sZCBtYi00XCI+XG4gICAgICAgIEdlb2dyYXBoaWMgT3ZlcnZpZXdcbiAgICA8L2gzPlxuXG4gICAgPEdlb2dyYXBoaWNPdmVydmlldyBkYXRhPXtnZW99IC8+XG48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogSGVhdG1hcCAqL31cbiAgICAgXG5cbiAgICAgIHsvKiBSZWNlbnQgc2NhbnMgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmQgb3ZlcmZsb3cteC1hdXRvXCI+XG4gICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LWJvbGQgcC01IHBiLTNcIj5SZWNlbnQgU2NhbnM8L2gzPlxuICAgICAgICA8dGFibGUgY2xhc3NOYW1lPVwidy1mdWxsIHRleHQtc21cIj5cbiAgICAgICAgICA8dGhlYWQgY2xhc3NOYW1lPVwiYmctc2xhdGUtNTAgdGV4dC1zbGF0ZS01MDAgdGV4dC1sZWZ0XCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJweC00IHB5LTMgZm9udC1tZWRpdW1cIj5UaW1lPC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTQgcHktMyBmb250LW1lZGl1bVwiPkNvZGU8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3NOYW1lPVwicHgtNCBweS0zIGZvbnQtbWVkaXVtXCI+Q2l0eTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBjbGFzc05hbWU9XCJweC00IHB5LTMgZm9udC1tZWRpdW1cIj5Db3VudHJ5PC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzTmFtZT1cInB4LTQgcHktMyBmb250LW1lZGl1bVwiPkRldmljZTwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgPHRib2R5IGNsYXNzTmFtZT1cImRpdmlkZS15IGRpdmlkZS1zbGF0ZS0xMDBcIj5cbiAgICAgICAgICAgIHtyZWNlbnQubWFwKChyLCBpKSA9PiAoXG4gICAgICAgICAgICAgIDx0ciBrZXk9e2l9PlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJweC00IHB5LTMgdGV4dC1zbGF0ZS01MDBcIj57bmV3IERhdGUoci5hdCkudG9Mb2NhbGVTdHJpbmcoKX08L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJweC00IHB5LTMgZm9udC1tb25vIHRleHQtc2xhdGUtNjAwXCI+e3IuY29kZX08L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzc05hbWU9XCJweC00IHB5LTNcIj57ci5jaXR5ID8/IFwi4oCUXCJ9PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPVwicHgtNCBweS0zXCI+e3IuY291bnRyeSA/PyBcIuKAlFwifTwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT1cInB4LTQgcHktM1wiPntyLmRldmljZSA/PyBcIuKAlFwifTwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICAgIHtyZWNlbnQubGVuZ3RoID09PSAwICYmIDx0cj48dGQgY29sU3Bhbj17NX0gY2xhc3NOYW1lPVwicHgtNCBweS0xMCB0ZXh0LWNlbnRlciB0ZXh0LXNsYXRlLTQwMFwiPk5vIHNjYW5zIHlldC48L3RkPjwvdHI+fVxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gS3BpKHsgbGFiZWwsIHZhbHVlLCBpY29uLCB0aW50IH06IGFueSkge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZCBwLTRcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2BoLTExIHctMTEgcm91bmRlZC14bCBncmlkIHBsYWNlLWl0ZW1zLWNlbnRlciBzaHJpbmstMCAke3RpbnR9YH0+e2ljb259PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWluLXctMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWV4dHJhYm9sZCB0ZXh0LXNsYXRlLTkwMFwiPnt2YWx1ZX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1zbGF0ZS01MDBcIj57bGFiZWx9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiRnJhZ21lbnQiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsIlBpZUNoYXJ0IiwiUGllIiwiQ2VsbCIsIlJlc3BvbnNpdmVDb250YWluZXIiLCJUb29sdGlwIiwiRG93bmxvYWQiLCJTY2FuTGluZSIsIlVzZXJzIiwiR2xvYmUiLCJTaGllbGRDaGVjayIsIlNjYW5UcmVuZENoYXJ0IiwiYXBpIiwiYXBpQmFzZSIsIkdlb2dyYXBoaWNPdmVydmlldyIsIlBSRVNFVFMiLCJsYWJlbCIsImRheXMiLCJET05VVCIsIkRPVyIsIkFuYWx5dGljcyIsInNldERheXMiLCJzIiwic2V0UyIsInRyZW5kIiwic2V0VHJlbmQiLCJ0b3BQIiwic2V0VG9wUCIsImNpdGllcyIsInNldENpdGllcyIsImRldmljZXMiLCJzZXREZXZpY2VzIiwiaGVhdCIsInNldEhlYXQiLCJyZWNlbnQiLCJzZXRSZWNlbnQiLCJnZW8iLCJzZXRHZW8iLCJ0aGVuIiwiY2F0Y2giLCJwZXJpb2QiLCJzZXRQZXJpb2QiLCJQRVJJT0RTIiwibW9ybmluZyIsInN0YXJ0IiwiZW5kIiwiYWZ0ZXJub29uIiwiZXZlbmluZyIsIm5pZ2h0IiwiaG91cnMiLCJBcnJheSIsImZyb20iLCJsZW5ndGgiLCJfIiwiaSIsIm1heFAiLCJNYXRoIiwibWF4IiwibWFwIiwicCIsInNjYW5zIiwibWF4SGVhdCIsImgiLCJjb3VudCIsImRpdiIsImNsYXNzTmFtZSIsImgyIiwiYnV0dG9uIiwib25DbGljayIsImEiLCJocmVmIiwiS3BpIiwidmFsdWUiLCJ0b3RhbF9zY2FucyIsImljb24iLCJ0aW50IiwidW5pcXVlX2NvbnN1bWVycyIsInRvZGF5X3NjYW5zIiwiYWN0aXZlX3Byb2R1Y3RzIiwiYXZnX3RydXN0X3Njb3JlIiwiY291bnRyaWVzIiwiaDMiLCJkYXRhIiwid2lkdGgiLCJoZWlnaHQiLCJkYXRhS2V5IiwibmFtZUtleSIsImlubmVyUmFkaXVzIiwib3V0ZXJSYWRpdXMiLCJwYWRkaW5nQW5nbGUiLCJmaWxsIiwiZCIsInNwYW4iLCJzdHlsZSIsImJhY2tncm91bmQiLCJkZXZpY2UiLCJPYmplY3QiLCJlbnRyaWVzIiwia2V5IiwiZ3JpZFRlbXBsYXRlQ29sdW1ucyIsImRheSIsImNlbGwiLCJmaW5kIiwieCIsImRvdyIsImhvdXIiLCJ2Iiwib3AiLCJ0aXRsZSIsIm5hbWUiLCJvbCIsImMiLCJsaSIsImNpdHkiLCJ0YWJsZSIsInRoZWFkIiwidHIiLCJ0aCIsInRib2R5IiwiciIsInRkIiwiRGF0ZSIsImF0IiwidG9Mb2NhbGVTdHJpbmciLCJjb2RlIiwiY291bnRyeSIsImNvbFNwYW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/dashboard/analytics/page.tsx\n")); /***/ }) });