contractApproval/.next/static/webpack/app/dashboard/contracts/page.09594c826d1cd053.hot-update.js
2026-06-26 15:56:49 +08:00

22 lines
75 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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/contracts/page",{
/***/ "(app-pages-browser)/./src/app/dashboard/contracts/page.js":
/*!*********************************************!*\
!*** ./src/app/dashboard/contracts/page.js ***!
\*********************************************/
/***/ (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 */ ContractsPage; }\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 next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../layout */ \"(app-pages-browser)/./src/app/dashboard/layout.js\");\n/* harmony import */ var _lib_auth_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/auth-client */ \"(app-pages-browser)/./src/lib/auth-client.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$(), _s1 = $RefreshSig$();\n\n\n\n\nconst PAGE_SIZE = 10;\nfunction Toast(param) {\n let { message, type, onClose } = param;\n _s();\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const timer = setTimeout(onClose, 3000);\n return ()=>clearTimeout(timer);\n }, [\n onClose\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"toast toast-\".concat(type),\n children: [\n type === \"success\" ? \"✅\" : type === \"error\" ? \"❌\" : \"\",\n \" \",\n message\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 15,\n columnNumber: 5\n }, this);\n}\n_s(Toast, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\n_c = Toast;\nfunction ContractsPage() {\n _s1();\n const user = (0,_layout__WEBPACK_IMPORTED_MODULE_3__.useUser)();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n // 筛选状态\n const [filters, setFilters] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n status: \"\",\n date_from: \"\",\n date_to: \"\",\n search: \"\"\n });\n const [appliedFilters, setAppliedFilters] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n status: \"\",\n date_from: \"\",\n date_to: \"\",\n search: \"\"\n });\n // 数据状态\n const [contracts, setContracts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [page, setPage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(1);\n const [total, setTotal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [exporting, setExporting] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [toasts, setToasts] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const showToast = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(function(message) {\n let type = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"info\";\n const id = Date.now();\n setToasts((prev)=>[\n ...prev,\n {\n id,\n message,\n type\n }\n ]);\n }, []);\n const removeToast = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((id)=>{\n setToasts((prev)=>prev.filter((t)=>t.id !== id));\n }, []);\n // 构建查询参数\n const buildQuery = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((pageNum, filterObj)=>{\n const params = new URLSearchParams();\n params.set(\"page\", pageNum);\n params.set(\"page_size\", PAGE_SIZE);\n if (filterObj.status) params.set(\"status\", filterObj.status);\n if (filterObj.date_from) params.set(\"date_from\", filterObj.date_from);\n if (filterObj.date_to) params.set(\"date_to\", filterObj.date_to);\n if (filterObj.search) params.set(\"search\", filterObj.search);\n return params.toString();\n }, []);\n // 加载数据\n const loadContracts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async function() {\n let pageNum = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 1, filterObj = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : appliedFilters;\n setLoading(true);\n try {\n const query = buildQuery(pageNum, filterObj);\n const res = await (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(\"/api/contracts?\".concat(query));\n const data = await res.json();\n setContracts(data.contracts || []);\n setTotal(data.total || 0);\n setPage(pageNum);\n } catch (err) {\n showToast(\"加载合同列表失败\", \"error\");\n } finally{\n setLoading(false);\n }\n }, [\n appliedFilters,\n buildQuery,\n showToast\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n loadContracts(1, appliedFilters);\n }, []);\n // 查询\n const handleSearch = ()=>{\n setAppliedFilters({\n ...filters\n });\n loadContracts(1, {\n ...filters\n });\n };\n // 重置\n const handleReset = ()=>{\n const empty = {\n status: \"\",\n date_from: \"\",\n date_to: \"\",\n search: \"\"\n };\n setFilters(empty);\n setAppliedFilters(empty);\n loadContracts(1, empty);\n };\n // 导出\n const handleExport = async ()=>{\n setExporting(true);\n try {\n const params = new URLSearchParams();\n if (appliedFilters.status) params.set(\"status\", appliedFilters.status);\n if (appliedFilters.date_from) params.set(\"date_from\", appliedFilters.date_from);\n if (appliedFilters.date_to) params.set(\"date_to\", appliedFilters.date_to);\n if (appliedFilters.search) params.set(\"search\", appliedFilters.search);\n const res = await (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(\"/api/contracts/export?\".concat(params.toString()));\n if (!res.ok) throw new Error(\"导出失败\");\n const blob = await res.blob();\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = \"合同列表_\".concat(new Date().toLocaleDateString(\"zh-CN\"), \".xlsx\");\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n showToast(\"导出成功\", \"success\");\n } catch (err) {\n showToast(\"导出失败,请稍后重试\", \"error\");\n } finally{\n setExporting(false);\n }\n };\n const formatDate = (dateStr)=>{\n if (!dateStr) return \"-\";\n return new Date(dateStr).toLocaleDateString(\"zh-CN\");\n };\n const formatMoney = (val)=>{\n if (val == null) return \"-\";\n return new Intl.NumberFormat(\"zh-CN\", {\n style: \"currency\",\n currency: \"CNY\"\n }).format(val);\n };\n const totalPages = Math.ceil(total / PAGE_SIZE);\n // 生成分页页码\n const getPageNumbers = ()=>{\n const pages = [];\n const maxVisible = 5;\n let start = Math.max(1, page - Math.floor(maxVisible / 2));\n let end = Math.min(totalPages, start + maxVisible - 1);\n if (end - start + 1 < maxVisible) {\n start = Math.max(1, end - maxVisible + 1);\n }\n for(let i = start; i <= end; i++){\n pages.push(i);\n }\n return pages;\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-fadeIn\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"toast-container\",\n children: toasts.map((t)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Toast, {\n message: t.message,\n type: t.type,\n onClose: ()=>removeToast(t.id)\n }, t.id, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 165,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 163,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"page-header\",\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)(\"h1\", {\n className: \"page-title\",\n children: \"合同流转\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 171,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"page-subtitle\",\n children: \"管理和查看所有合同信息\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 172,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 170,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n gap: \"12px\"\n },\n children: [\n (user === null || user === void 0 ? void 0 : user.role) === \"employee\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-primary\",\n onClick: ()=>router.push(\"/dashboard/contracts/create\"),\n children: \" 新建合同\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 176,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-outline\",\n onClick: handleExport,\n disabled: exporting,\n children: exporting ? \"⏳ 导出中...\" : \"\\uD83D\\uDCE5 导出 Excel\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 183,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 174,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 169,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"filter-bar\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: \"form-select\",\n value: filters.status,\n onChange: (e)=>setFilters((prev)=>({\n ...prev,\n status: e.target.value\n })),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"\",\n children: \"全部状态\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 200,\n columnNumber: 11\n }, this),\n Object.entries(_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.STATUS_NAMES).map((param)=>{\n let [key, label] = param;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: key,\n children: label\n }, key, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 202,\n columnNumber: 13\n }, this);\n })\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 195,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"form-input\",\n value: filters.date_from,\n onChange: (e)=>setFilters((prev)=>({\n ...prev,\n date_from: e.target.value\n })),\n placeholder: \"开始日期\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 206,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"form-input\",\n value: filters.date_to,\n onChange: (e)=>setFilters((prev)=>({\n ...prev,\n date_to: e.target.value\n })),\n placeholder: \"结束日期\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 214,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n className: \"form-input\",\n value: filters.search,\n onChange: (e)=>setFilters((prev)=>({\n ...prev,\n search: e.target.value\n })),\n placeholder: \"搜索项目名称 / 合作单位...\",\n onKeyDown: (e)=>{\n if (e.key === \"Enter\") handleSearch();\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 222,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"filter-actions\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-primary btn-sm\",\n onClick: handleSearch,\n children: \"\\uD83D\\uDD0D 查询\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 232,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-ghost btn-sm\",\n onClick: handleReset,\n children: \"\\uD83D\\uDD04 重置\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 235,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 231,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 194,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n style: {\n padding: 0\n },\n children: loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"loading-overlay\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"loading-spinner\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 246,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 245,\n columnNumber: 13\n }, this) : contracts.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"empty-state\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"empty-state-icon\",\n children: \"\\uD83D\\uDCED\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 250,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"empty-state-text\",\n children: \"暂无合同数据\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 251,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 249,\n columnNumber: 13\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"table-container\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"table\", {\n className: \"data-table\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"thead\", {\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 children: \"经办日期\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 258,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"项目名称\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 259,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"合作单位\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 260,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"合同金额\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 261,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"预估利润\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 262,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"收/付款\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 263,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"状态\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 264,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"th\", {\n children: \"操作\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 265,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 257,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 256,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"tbody\", {\n children: contracts.map((c)=>/*#__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)(\"td\", {\n children: formatDate(c.created_at)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 271,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/dashboard/contracts/\".concat(c.id),\n onClick: (e)=>{\n e.preventDefault();\n router.push(\"/dashboard/contracts/\".concat(c.id));\n },\n style: {\n fontWeight: 600,\n color: \"var(--primary)\"\n },\n children: c.project_name || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 273,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 272,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: c.partner_name || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 281,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n style: {\n fontWeight: 600,\n color: \"var(--text-dark)\"\n },\n children: formatMoney(c.contract_amount)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 282,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: c.payment_type === \"pay\" ? \"-\" : formatMoney(c.estimated_profit)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 285,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: c.payment_type === \"receive\" ? \"收款\" : c.payment_type === \"pay\" ? \"付款\" : \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 286,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"status-badge status-\".concat(c.status),\n children: _lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.STATUS_NAMES[c.status] || c.status\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 288,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 287,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"td\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-outline btn-sm\",\n onClick: ()=>router.push(\"/dashboard/contracts/\".concat(c.id)),\n children: \"查看\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 293,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 292,\n columnNumber: 23\n }, this)\n ]\n }, c.id, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 270,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 268,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 255,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 254,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 243,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 242,\n columnNumber: 7\n }, this),\n totalPages > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pagination\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"pagination-btn\",\n disabled: page <= 1,\n onClick: ()=>loadContracts(page - 1, appliedFilters),\n children: \" 上一页\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 312,\n columnNumber: 11\n }, this),\n getPageNumbers().map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"pagination-btn \".concat(p === page ? \"active\" : \"\"),\n onClick: ()=>loadContracts(p, appliedFilters),\n children: p\n }, p, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 321,\n columnNumber: 13\n }, this)),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"pagination-btn\",\n disabled: page >= totalPages,\n onClick: ()=>loadContracts(page + 1, appliedFilters),\n children: \"下一页 \"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 330,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n marginLeft: \"12px\",\n fontSize: \"13px\",\n color: \"var(--gray-500)\"\n },\n children: [\n \"共 \",\n total,\n \" 条\"\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 338,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 311,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/page.js\",\n lineNumber: 161,\n columnNumber: 5\n }, this);\n}\n_s1(ContractsPage, \"i0HflsaqhwvqUWzNr7pgO3dBw0A=\", false, function() {\n return [\n _layout__WEBPACK_IMPORTED_MODULE_3__.useUser,\n next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter\n ];\n});\n_c1 = ContractsPage;\nvar _c, _c1;\n$RefreshReg$(_c, \"Toast\");\n$RefreshReg$(_c1, \"ContractsPage\");\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvZGFzaGJvYXJkL2NvbnRyYWN0cy9wYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUN5RDtBQUNiO0FBQ1I7QUFDbUQ7QUFFdkYsTUFBTVMsWUFBWTtBQUVsQixTQUFTQyxNQUFNLEtBQTBCO1FBQTFCLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUUsR0FBMUI7O0lBQ2JaLGdEQUFTQSxDQUFDO1FBQ1IsTUFBTWEsUUFBUUMsV0FBV0YsU0FBUztRQUNsQyxPQUFPLElBQU1HLGFBQWFGO0lBQzVCLEdBQUc7UUFBQ0Q7S0FBUTtJQUNaLHFCQUNFLDhEQUFDSTtRQUFJQyxXQUFXLGVBQW9CLE9BQUxOOztZQUM1QkEsU0FBUyxZQUFZLE1BQU1BLFNBQVMsVUFBVSxNQUFNO1lBQUs7WUFBRUQ7Ozs7Ozs7QUFHbEU7R0FWU0Q7S0FBQUE7QUFZTSxTQUFTUzs7SUFDdEIsTUFBTUMsT0FBT2hCLGdEQUFPQTtJQUNwQixNQUFNaUIsU0FBU2xCLDBEQUFTQTtJQUV4QixPQUFPO0lBQ1AsTUFBTSxDQUFDbUIsU0FBU0MsV0FBVyxHQUFHdkIsK0NBQVFBLENBQUM7UUFDckN3QixRQUFRO1FBQ1JDLFdBQVc7UUFDWEMsU0FBUztRQUNUQyxRQUFRO0lBQ1Y7SUFDQSxNQUFNLENBQUNDLGdCQUFnQkMsa0JBQWtCLEdBQUc3QiwrQ0FBUUEsQ0FBQztRQUNuRHdCLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLFFBQVE7SUFDVjtJQUVBLE9BQU87SUFDUCxNQUFNLENBQUNHLFdBQVdDLGFBQWEsR0FBRy9CLCtDQUFRQSxDQUFDLEVBQUU7SUFDN0MsTUFBTSxDQUFDZ0MsU0FBU0MsV0FBVyxHQUFHakMsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDa0MsTUFBTUMsUUFBUSxHQUFHbkMsK0NBQVFBLENBQUM7SUFDakMsTUFBTSxDQUFDb0MsT0FBT0MsU0FBUyxHQUFHckMsK0NBQVFBLENB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Wiw4REFBQzdFO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQytGO3dCQUNDL0YsV0FBVTt3QkFDVmlHLFVBQVVqRixRQUFRO3dCQUNsQmdGLFNBQVMsSUFBTXpELGNBQWN2QixPQUFPLEdBQUdOO2tDQUN4Qzs7Ozs7O29CQUlBcUUsaUJBQWlCVSxHQUFHLENBQUMsQ0FBQ0Usa0JBQ3JCLDhEQUFDSTs0QkFFQy9GLFdBQVcsa0JBQTZDLE9BQTNCMkYsTUFBTTNFLE9BQU8sV0FBVzs0QkFDckRnRixTQUFTLElBQU16RCxjQUFjb0QsR0FBR2pGO3NDQUUvQmlGOzJCQUpJQTs7Ozs7a0NBUVQsOERBQUNJO3dCQUNDL0YsV0FBVTt3QkFDVmlHLFVBQVVqRixRQUFRNEQ7d0JBQ2xCb0IsU0FBUyxJQUFNekQsY0FBY3ZCLE9BQU8sR0FBR047a0NBQ3hDOzs7Ozs7a0NBSUQsOERBQUN1SDt3QkFBS3hELE9BQU87NEJBQUV5RCxZQUFZOzRCQUFRQyxVQUFVOzRCQUFRUixPQUFPO3dCQUFrQjs7NEJBQUc7NEJBQzVFekc7NEJBQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNckI7SUFwVXdCakI7O1FBQ1RmLDRDQUFPQTtRQUNMRCxzREFBU0E7OztNQUZGZ0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vc3JjL2FwcC9kYXNoYm9hcmQvY29udHJhY3RzL3BhZ2UuanM/Zjc2ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyB1c2VVc2VyIH0gZnJvbSAnLi4vbGF5b3V0JztcbmltcG9ydCB7IGF1dGhGZXRjaCwgU1RBVFVTX05BTUVTLCBST0xFX05BTUVTLCBTVEFUVVNfQ09MT1JTIH0gZnJvbSAnQC9saWIvYXV0aC1jbGllbnQnO1xuXG5jb25zdCBQQUdFX1NJWkUgPSAxMDtcblxuZnVuY3Rpb24gVG9hc3QoeyBtZXNzYWdlLCB0eXBlLCBvbkNsb3NlIH0pIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQob25DbG9zZSwgMzAwMCk7XG4gICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lcik7XG4gIH0sIFtvbkNsb3NlXSk7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2B0b2FzdCB0b2FzdC0ke3R5cGV9YH0+XG4gICAgICB7dHlwZSA9PT0gJ3N1Y2Nlc3MnID8gJ+KchScgOiB0eXBlID09PSAnZXJyb3InID8gJ+KdjCcgOiAn4oS577iPJ30ge21lc3NhZ2V9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvbnRyYWN0c1BhZ2UoKSB7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKCk7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpO1xuXG4gIC8vIOetm+mAieeKtuaAgVxuICBjb25zdCBbZmlsdGVycywgc2V0RmlsdGVyc10gPSB1c2VTdGF0ZSh7XG4gICAgc3RhdHVzOiAnJyxcbiAgICBkYXRlX2Zyb206ICcnLFxuICAgIGRhdGVfdG86ICcnLFxuICAgIHNlYXJjaDogJycsXG4gIH0pO1xuICBjb25zdCBbYXBwbGllZEZpbHRlcnMsIHNldEFwcGxpZWRGaWx0ZXJzXSA9IHVzZVN0YXRlKHtcbiAgICBzdGF0dXM6ICcnLFxuICAgIGRhdGVfZnJvbTogJycsXG4gICAgZGF0ZV90bzogJycsXG4gICAgc2VhcmNoOiAnJyxcbiAgfSk7XG5cbiAgLy8g5pWw5o2u54q25oCBXG4gIGNvbnN0IFtjb250cmFjdHMsIHNldENvbnRyYWN0c10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbcGFnZSwgc2V0UGFnZV0gPSB1c2VTdGF0ZSgxKTtcbiAgY29uc3QgW3RvdGFsLCBzZXRUb3RhbF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2V4cG9ydGluZywgc2V0RXhwb3J0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3RvYXN0cywgc2V0VG9hc3RzXSA9IHVzZVN0YXRlKFtdKTtcblxuICBjb25zdCBzaG93VG9hc3QgPSB1c2VDYWxsYmFjaygobWVzc2FnZSwgdHlwZSA9ICdpbmZvJykgPT4ge1xuICAgIGNvbnN0IGlkID0gRGF0ZS5ub3coKTtcbiAgICBzZXRUb2FzdHMocHJldiA9PiBbLi4ucHJldiwgeyBpZCwgbWVzc2FnZSwgdHlwZSB9XSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCByZW1vdmVUb2FzdCA9IHVzZUNhbGxiYWNrKChpZCkgPT4ge1xuICAgIHNldFRvYXN0cyhwcmV2ID0+IHByZXYuZmlsdGVyKHQgPT4gdC5pZCAhPT0gaWQpKTtcbiAgfSwgW10pO1xuXG4gIC8vIOaehOW7uuafpeivouWPguaVsFxuICBjb25zdCBidWlsZFF1ZXJ5ID0gdXNlQ2FsbGJhY2soKHBhZ2VOdW0sIGZpbHRlck9iaikgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBwYXJhbXMuc2V0KCdwYWdlJywgcGFnZU51bSk7XG4gICAgcGFyYW1zLnNldCgncGFnZV9zaXplJywgUEFHRV9TSVpFKTtcbiAgICBpZiAoZmlsdGVyT2JqLnN0YXR1cykgcGFyYW1zLnNldCgnc3RhdHVzJywgZmlsdGVyT2JqLnN0YXR1cyk7XG4gICAgaWYgKGZpbHRlck9iai5kYXRlX2Zyb20pIHBhcmFtcy5zZXQoJ2RhdGVfZnJvbScsIGZpbHRlck9iai5kYXRlX2Zyb20pO1xuICAgIGlmIChmaWx0ZXJPYmouZGF0ZV90bykgcGFyYW1zLnNldCgnZGF0ZV90bycsIGZpbHRlck9iai5kYXRlX3RvKTtcbiAgICBpZiAoZmlsdGVyT2JqLnNlYXJjaCkgcGFyYW1zLnNldCgnc2VhcmNoJywgZmlsdGVyT2JqLnNlYXJjaCk7XG4gICAgcmV0dXJuIHBhcmFtcy50b1N0cmluZygpO1xuICB9LCBbXSk7XG5cbiAgLy8g5Yqg6L295pWw5o2uXG4gIGNvbnN0IGxvYWRDb250cmFjdHMgPSB1c2VDYWxsYmFjayhhc3luYyAocGFnZU51bSA9IDEsIGZpbHRlck9iaiA9IGFwcGxpZWRGaWx0ZXJzKSA9PiB7XG4gICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnkgPSBidWlsZFF1ZXJ5KHBhZ2VOdW0sIGZpbHRlck9iaik7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBhdXRoRmV0Y2goYC9hcGkvY29udHJhY3RzPyR7cXVlcnl9YCk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICAgIHNldENvbnRyYWN0cyhkYXRhLmNvbnRyYWN0cyB8fCBbXSk7XG4gICAgICBzZXRUb3RhbChkYXRhLnRvdGFsIHx8IDApO1xuICAgICAgc2V0UGFnZShwYWdlTnVtKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNob3dUb2FzdCgn5Yqg6L295ZCI5ZCM5YiX6KGo5aSx6LSlJywgJ2Vycm9yJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfSwgW2FwcGxpZWRGaWx0ZXJzLCBidWlsZFF1ZXJ5LCBzaG93VG9hc3RdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvYWRDb250cmFjdHMoMSwgYXBwbGllZEZpbHRlcnMpO1xuICB9LCBbXSk7XG5cbiAgLy8g5p+l6K+iXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICBzZXRBcHBsaWVkRmlsdGVycyh7IC4uLmZpbHRlcnMgfSk7XG4gICAgbG9hZENvbnRyYWN0cygxLCB7IC4uLmZpbHRlcnMgfSk7XG4gIH07XG5cbiAgLy8g6YeN572uXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIGNvbnN0IGVtcHR5ID0geyBzdGF0dXM6ICcnLCBkYXRlX2Zyb206ICcnLCBkYXRlX3RvOiAnJywgc2VhcmNoOiAnJyB9O1xuICAgIHNldEZpbHRlcnMoZW1wdHkpO1xuICAgIHNldEFwcGxpZWRGaWx0ZXJzKGVtcHR5KTtcbiAgICBsb2FkQ29udHJhY3RzKDEsIGVtcHR5KTtcbiAgfTtcblxuICAvLyDlr7zlh7pcbiAgY29uc3QgaGFuZGxlRXhwb3J0ID0gYXN5bmMgKCkgPT4ge1xuICAgIHNldEV4cG9ydGluZyh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgaWYgKGFwcGxpZWRGaWx0ZXJzLnN0YXR1cykgcGFyYW1zLnNldCgnc3RhdHVzJywgYXBwbGllZEZpbHRlcnMuc3RhdHVzKTtcbiAgICAgIGlmIChhcHBsaWVkRmlsdGVycy5kYXRlX2Zyb20pIHBhcmFtcy5zZXQoJ2RhdGVfZnJvbScsIGFwcGxpZWRGaWx0ZXJzLmRhdGVfZnJvbSk7XG4gICAgICBpZiAoYXBwbGllZEZpbHRlcnMuZGF0ZV90bykgcGFyYW1zLnNldCgnZGF0ZV90bycsIGFwcGxpZWRGaWx0ZXJzLmRhdGVfdG8pO1xuICAgICAgaWYgKGFwcGxpZWRGaWx0ZXJzLnNlYXJjaCkgcGFyYW1zLnNldCgnc2VhcmNoJywgYXBwbGllZEZpbHRlcnMuc2VhcmNoKTtcblxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYXV0aEZldGNoKGAvYXBpL2NvbnRyYWN0cy9leHBvcnQ/JHtwYXJhbXMudG9TdHJpbmcoKX1gKTtcbiAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ+WvvOWHuuWksei0pScpO1xuXG4gICAgICBjb25zdCBibG9iID0gYXdhaXQgcmVzLmJsb2IoKTtcbiAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgIGEuZG93bmxvYWQgPSBg5ZCI5ZCM5YiX6KGoXyR7bmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoJ3poLUNOJyl9Lnhsc3hgO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgIGEuY2xpY2soKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICAgICAgc2hvd1RvYXN0KCflr7zlh7rmiJDlip8nLCAnc3VjY2VzcycpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2hvd1RvYXN0KCflr7zlh7rlpLHotKXvvIzor7fnqI3lkI7ph43or5UnLCAnZXJyb3InKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0RXhwb3J0aW5nKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyKSA9PiB7XG4gICAgaWYgKCFkYXRlU3RyKSByZXR1cm4gJy0nO1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlU3RyKS50b0xvY2FsZURhdGVTdHJpbmcoJ3poLUNOJyk7XG4gIH07XG5cbiAgY29uc3QgZm9ybWF0TW9uZXkgPSAodmFsKSA9PiB7XG4gICAgaWYgKHZhbCA9PSBudWxsKSByZXR1cm4gJy0nO1xuICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoJ3poLUNOJywgeyBzdHlsZTogJ2N1cnJlbmN5JywgY3VycmVuY3k6ICdDTlknIH0pLmZvcm1hdCh2YWwpO1xuICB9O1xuXG4gIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodG90YWwgLyBQQUdFX1NJWkUpO1xuXG4gIC8vIOeUn+aIkOWIhumhtemhteeggVxuICBjb25zdCBnZXRQYWdlTnVtYmVycyA9ICgpID0+IHtcbiAgICBjb25zdCBwYWdlcyA9IFtdO1xuICAgIGNvbnN0IG1heFZpc2libGUgPSA1O1xuICAgIGxldCBzdGFydCA9IE1hdGgubWF4KDEsIHBhZ2UgLSBNYXRoLmZsb29yKG1heFZpc2libGUgLyAyKSk7XG4gICAgbGV0IGVuZCA9IE1hdGgubWluKHRvdGFsUGFnZXMsIHN0YXJ0ICsgbWF4VmlzaWJsZSAtIDEpO1xuICAgIGlmIChlbmQgLSBzdGFydCArIDEgPCBtYXhWaXNpYmxlKSB7XG4gICAgICBzdGFydCA9IE1hdGgubWF4KDEsIGVuZCAtIG1heFZpc2libGUgKyAxKTtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICBwYWdlcy5wdXNoKGkpO1xuICAgIH1cbiAgICByZXR1cm4gcGFnZXM7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtZmFkZUluXCI+XG4gICAgICB7LyogVG9hc3Qg6YCa55+lICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0b2FzdC1jb250YWluZXJcIj5cbiAgICAgICAge3RvYXN0cy5tYXAodCA9PiAoXG4gICAgICAgICAgPFRvYXN0IGtleT17dC5pZH0gbWVzc2FnZT17dC5tZXNzYWdlfSB0eXBlPXt0LnR5cGV9IG9uQ2xvc2U9eygpID0+IHJlbW92ZVRvYXN0KHQuaWQpfSAvPlxuICAgICAgICApKX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInBhZ2UtdGl0bGVcIj7lkIjlkIzmtYHovaw8L2gxPlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInBhZ2Utc3VidGl0bGVcIj7nrqHnkIblkozmn6XnnIvmiYDmnInlkIjlkIzkv6Hmga88L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcgfX0+XG4gICAgICAgICAge3VzZXI/LnJvbGUgPT09ICdlbXBsb3llZScgJiYgKFxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiByb3V0ZXIucHVzaCgnL2Rhc2hib2FyZC9jb250cmFjdHMvY3JlYXRlJyl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIOKelSDmlrDlu7rlkIjlkIxcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1vdXRsaW5lXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUV4cG9ydH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtleHBvcnRpbmd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2V4cG9ydGluZyA/ICfij7Mg5a+85Ye65LitLi4uJyA6ICfwn5OlIOWvvOWHuiBFeGNlbCd9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiDnrZvpgInmoI8gKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbHRlci1iYXJcIj5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tc2VsZWN0XCJcbiAgICAgICAgICB2YWx1ZT17ZmlsdGVycy5zdGF0dXN9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRGaWx0ZXJzKHByZXYgPT4gKHsgLi4ucHJldiwgc3RhdHVzOiBlLnRhcmdldC52YWx1ZSB9KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+5YWo6YOo54q25oCBPC9vcHRpb24+XG4gICAgICAgICAge09iamVjdC5lbnRyaWVzKFNUQVRVU19OQU1FUykubWFwKChba2V5LCBsYWJlbF0pID0+IChcbiAgICAgICAgICAgIDxvcHRpb24ga2V5PXtrZXl9IHZhbHVlPXtrZXl9PntsYWJlbH08L29wdGlvbj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9zZWxlY3Q+XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0taW5wdXRcIlxuICAgICAgICAgIHZhbHVlPXtmaWx0ZXJzLmRhdGVfZnJvbX1cbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldEZpbHRlcnMocHJldiA9PiAoeyAuLi5wcmV2LCBkYXRlX2Zyb206IGUudGFyZ2V0LnZhbHVlIH0pKX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIuW8gOWni+aXpeacn1wiXG4gICAgICAgIC8+XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0taW5wdXRcIlxuICAgICAgICAgIHZhbHVlPXtmaWx0ZXJzLmRhdGVfdG99XG4gICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRGaWx0ZXJzKHByZXYgPT4gKHsgLi4ucHJldiwgZGF0ZV90bzogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1pbnB1dFwiXG4gICAgICAgICAgdmFsdWU9e2ZpbHRlcnMuc2VhcmNofVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0RmlsdGVycyhwcmV2ID0+ICh7IC4uLnByZXYsIHNlYXJjaDogZS50YXJnZXQudmFsdWUgfSkpfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwi5pCc57Si6aG555uu5ZCN56ewIC8g5ZCI5L2c5Y2V5L2NLi4uXCJcbiAgICAgICAgICBvbktleURvd249eyhlKSA9PiB7IGlmIChlLmtleSA9PT0gJ0VudGVyJykgaGFuZGxlU2VhcmNoKCk7IH19XG4gICAgICAgIC8+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWx0ZXItYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0+XG4gICAgICAgICAgICDwn5SNIOafpeivolxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuIGJ0bi1naG9zdCBidG4tc21cIiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+XG4gICAgICAgICAgICDwn5SEIOmHjee9rlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Lyog5pWw5o2u6KGo5qC8ICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCIgc3R5bGU9e3sgcGFkZGluZzogMCB9fT5cbiAgICAgICAgICB7bG9hZGluZyA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZy1vdmVybGF5XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibG9hZGluZy1zcGlubmVyXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogY29udHJhY3RzLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlbXB0eS1zdGF0ZS1pY29uXCI+8J+TrTwvZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJlbXB0eS1zdGF0ZS10ZXh0XCI+5pqC5peg5ZCI5ZCM5pWw5o2uPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGFibGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzc05hbWU9XCJkYXRhLXRhYmxlXCI+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGg+57uP5Yqe5pel5pyfPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoPumhueebruWQjeensDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aD7lkIjkvZzljZXkvY08L3RoPlxuICAgICAgICAgICAgICAgICAgICA8dGg+5ZCI5ZCM6YeR6aKdPC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoPumihOS8sOWIqea2pjwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aD7mlLYv5LuY5qy+PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoPueKtuaAgTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aD7mk43kvZw8L3RoPlxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgIHtjb250cmFjdHMubWFwKChjKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDx0ciBrZXk9e2MuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57Zm9ybWF0RGF0ZShjLmNyZWF0ZWRfYXQpfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9kYXNoYm9hcmQvY29udHJhY3RzLyR7Yy5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4geyBlLnByZXZlbnREZWZhdWx0KCk7IHJvdXRlci5wdXNoKGAvZGFzaGJvYXJkL2NvbnRyYWN0cy8ke2MuaWR9YCk7IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGZvbnRXZWlnaHQ6IDYwMCwgY29sb3I6ICd2YXIoLS1wcmltYXJ5KScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge2MucHJvamVjdF9uYW1lIHx8ICctJ31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD57Yy5wYXJ0bmVyX25hbWUgfHwgJy0nfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkIHN0eWxlPXt7IGZvbnRXZWlnaHQ6IDYwMCwgY29sb3I6ICd2YXIoLS10ZXh0LWRhcmspJyB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtmb3JtYXRNb25leShjLmNvbnRyYWN0X2Ftb3VudCl9XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e2MucGF5bWVudF90eXBlID09PSAncGF5JyA/ICctJyA6IGZvcm1hdE1vbmV5KGMuZXN0aW1hdGVkX3Byb2ZpdCl9PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+e2MucGF5bWVudF90eXBlID09PSAncmVjZWl2ZScgPyAn5pS25qy+JyA6IGMucGF5bWVudF90eXBlID09PSAncGF5JyA/ICfku5jmrL4nIDogJy0nfTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgc3RhdHVzLWJhZGdlIHN0YXR1cy0ke2Muc3RhdHVzfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7U1RBVFVTX05BTUVTW2Muc3RhdHVzXSB8fCBjLnN0YXR1c31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHJvdXRlci5wdXNoKGAvZGFzaGJvYXJkL2NvbnRyYWN0cy8ke2MuaWR9YCl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIOafpeeci1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7Lyog5YiG6aG1ICovfVxuICAgICAge3RvdGFsUGFnZXMgPiAwICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwYWdpbmF0aW9uXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicGFnaW5hdGlvbi1idG5cIlxuICAgICAgICAgICAgZGlzYWJsZWQ9e3BhZ2UgPD0gMX1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGxvYWRDb250cmFjdHMocGFnZSAtIDEsIGFwcGxpZWRGaWx0ZXJzKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICDigLkg5LiK5LiA6aG1XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICB7Z2V0UGFnZU51bWJlcnMoKS5tYXAoKHApID0+IChcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAga2V5PXtwfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2BwYWdpbmF0aW9uLWJ0biAke3AgPT09IHBhZ2UgPyAnYWN0aXZlJyA6ICcnfWB9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGxvYWRDb250cmFjdHMocCwgYXBwbGllZEZpbHRlcnMpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7cH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICkpfVxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicGFnaW5hdGlvbi1idG5cIlxuICAgICAgICAgICAgZGlzYWJsZWQ9e3BhZ2UgPj0gdG90YWxQYWdlc31cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGxvYWRDb250cmFjdHMocGFnZSArIDEsIGFwcGxpZWRGaWx0ZXJzKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICDkuIvkuIDpobUg4oC6XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBtYXJnaW5MZWZ0OiAnMTJweCcsIGZvbnRTaXplOiAnMTNweCcsIGNvbG9yOiAndmFyKC0tZ3JheS01MDApJyB9fT5cbiAgICAgICAgICAgIOWFsSB7dG90YWx9IOadoVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm5hbWVzIjpbInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VSb3V0ZXIiLCJ1c2VVc2VyIiwiYXV0aEZldGNoIiwiU1RBVFVTX05BTUVTIiwiUk9MRV9OQU1FUyIsIlNUQVRVU19DT0xPUlMiLCJQQUdFX1NJWkUiLCJUb2FzdCIsIm1lc3NhZ2UiLCJ0eXBlIiwib25DbG9zZSIsInRpbWVyIiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsImRpdiIsImNsYXNzTmFtZSIsIkNvbnRyYWN0c1BhZ2UiLCJ1c2VyIiwicm91dGVyIiwiZmlsdGVycyIsInNldEZpbHRlcnMiLCJzdGF0dXMiLCJkYXRlX2Zyb20iLCJkYXRlX3RvIiwic2VhcmNoIiwiYXBwbGllZEZpbHRlcnMiLCJzZXRBcHBsaWVkRmlsdGVycyIsImNvbnRyYWN0cyIsInNldENvbnRyYWN0cyIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwicGFnZSIsInNldFBhZ2UiLCJ0b3RhbCIsInNldFRvdGFsIiwiZXhwb3J0aW5nIiwic2V0RXhwb3J0aW5nIiwidG9hc3RzIiwic2V0VG9hc3RzIiwic2hvd1RvYXN0IiwiaWQiLCJEYXRlIiwibm93IiwicHJldiIsInJlbW92ZVRvYXN0IiwiZmlsdGVyIiwidCIsImJ1aWxkUXVlcnkiLCJwYWdlTnVtIiwiZmlsdGVyT2JqIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwic2V0IiwidG9TdHJpbmciLCJsb2FkQ29udHJhY3RzIiwicXVlcnkiLCJyZXMiLCJkYXRhIiwianNvbiIsImVyciIsImhhbmRsZVNlYXJjaCIsImhhbmRsZVJlc2V0IiwiZW1wdHkiLCJoYW5kbGVFeHBvcnQiLCJvayIsIkVycm9yIiwiYmxvYiIsInVybCIsIndpbmRvdyIsIlVSTCIsImNyZWF0ZU9iamVjdFVSTCIsImEiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJocmVmIiwiZG93bmxvYWQiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJjbGljayIsInJlbW92ZUNoaWxkIiwicmV2b2tlT2JqZWN0VVJMIiwiZm9ybWF0RGF0ZSIsImRhdGVTdHIiLCJmb3JtYXRNb25leSIsInZhbCIsIkludGwiLCJOdW1iZXJGb3JtYXQiLCJzdHlsZSIsImN1cnJlbmN5IiwiZm9ybWF0IiwidG90YWxQYWdlcyIsIk1hdGgiLCJjZWlsIiwiZ2V0UGFnZU51bWJlcnMiLCJwYWdlcyIsIm1heFZpc2libGUiLCJzdGFydCIsIm1heCIsImZsb29yIiwiZW5kIiwibWluIiwiaSIsInB1c2giLCJtYXAiLCJoMSIsInAiLCJkaXNwbGF5IiwiZ2FwIiwicm9sZSIsImJ1dHRvbiIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsInNlbGVjdCIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0Iiwib3B0aW9uIiwiT2JqZWN0IiwiZW50cmllcyIsImtleSIsImxhYmVsIiwiaW5wdXQiLCJwbGFjZWhvbGRlciIsIm9uS2V5RG93biIsInBhZGRpbmciLCJsZW5ndGgiLCJ0YWJsZSIsInRoZWFkIiwidHIiLCJ0aCIsInRib2R5IiwiYyIsInRkIiwiY3JlYXRlZF9hdCIsInByZXZlbnREZWZhdWx0IiwiZm9udFdlaWdodCIsImNvbG9yIiwicHJvamVjdF9uYW1lIiwicGFydG5lcl9uYW1lIiwiY29udHJhY3RfYW1vdW50IiwicGF5bWVudF90eXBlIiwiZXN0aW1hdGVkX3Byb2ZpdCIsInNwYW4iLCJtYXJnaW5MZWZ0IiwiZm9udFNpemUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/dashboard/contracts/page.js\n"));
/***/ })
});