2026-06-26 15:56:49 +08:00

225 lines
331 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.

/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(() => {
var exports = {};
exports.id = "app/dashboard/contracts/[id]/page";
exports.ids = ["app/dashboard/contracts/[id]/page"];
exports.modules = {
/***/ "../../client/components/action-async-storage.external":
/*!*******************************************************************************!*\
!*** external "next/dist/client/components/action-async-storage.external.js" ***!
\*******************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/client/components/action-async-storage.external.js");
/***/ }),
/***/ "../../client/components/request-async-storage.external":
/*!********************************************************************************!*\
!*** external "next/dist/client/components/request-async-storage.external.js" ***!
\********************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/client/components/request-async-storage.external.js");
/***/ }),
/***/ "../../client/components/static-generation-async-storage.external":
/*!******************************************************************************************!*\
!*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
\******************************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
/***/ }),
/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
/*!*************************************************************************!*\
!*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
\*************************************************************************/
/***/ ((module) => {
"use strict";
module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&page=%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&appPaths=%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage.js&appDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&page=%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&appPaths=%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage.js&appDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?9100\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: [\n 'dashboard',\n {\n children: [\n 'contracts',\n {\n children: [\n '[id]',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/contracts/[id]/page.js */ \"(rsc)/./src/app/dashboard/contracts/[id]/page.js\")), \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\"],\n \n }]\n },\n {\n \n \n }\n ]\n },\n {\n \n \n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/layout.js */ \"(rsc)/./src/app/dashboard/layout.js\")), \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\"],\n \n }\n ]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.js */ \"(rsc)/./src/app/layout.js\")), \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/layout.js\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/dashboard/contracts/[id]/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/dashboard/contracts/[id]/page\",\n pathname: \"/dashboard/contracts/[id]\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZkYXNoYm9hcmQlMkZjb250cmFjdHMlMkYlNUJpZCU1RCUyRnBhZ2UmcGFnZT0lMkZkYXNoYm9hcmQlMkZjb250cmFjdHMlMkYlNUJpZCU1RCUyRnBhZ2UmYXBwUGF0aHM9JTJGZGFzaGJvYXJkJTJGY29udHJhY3RzJTJGJTVCaWQlNUQlMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGZGFzaGJvYXJkJTJGY29udHJhY3RzJTJGJTVCaWQlNUQlMkZwYWdlLmpzJmFwcERpcj0lMkZVc2VycyUyRmdhbmRhbnhpYW5nemhhbyUyRkRlc2t0b3AlMkYlRTUlOTAlODglRTUlOTAlOEMlRTYlQjUlODElRTglQkQlQUMlRTUlQUUlQTElRTYlODklQjklRTclQjMlQkIlRTclQkIlOUYlMkZzcmMlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGZ2FuZGFueGlhbmd6aGFvJTJGRGVza3RvcCUyRiVFNSU5MCU4OCVFNSU5MCU4QyVFNiVCNSU4MSVFOCVCRCVBQyVFNSVBRSVBMSVFNiU4OSVCOSVFNyVCMyVCQiVFNyVCQiU5RiZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWEsc0JBQXNCO0FBQ2lFO0FBQ3JDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQyx1QkFBdUIsZ01BQXFIO0FBQzVJO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSx5QkFBeUIsc0tBQXdHO0FBQ2pJO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHlCQUF5QixrSkFBOEY7QUFDdkgsb0JBQW9CLDBOQUFnRjtBQUNwRztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDdUI7QUFDNkQ7QUFDcEYsNkJBQTZCLG1CQUFtQjtBQUNoRDtBQUNPO0FBQ0E7QUFDUDtBQUNBO0FBQ0E7QUFDdUQ7QUFDdkQ7QUFDTyx3QkFBd0IsOEdBQWtCO0FBQ2pEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovL2NvbnRyYWN0LWFwcHJvdmFsLXN5c3RlbS8/ODk3MiJdLCJzb3VyY2VzQ29udGVudCI6WyJcIlRVUkJPUEFDSyB7IHRyYW5zaXRpb246IG5leHQtc3NyIH1cIjtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICdkYXNoYm9hcmQnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICdjb250cmFjdHMnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICdbaWRdJyxcbiAgICAgICAge1xuICAgICAgICBjaGlsZHJlbjogWydfX1BBR0VfXycsIHt9LCB7XG4gICAgICAgICAgcGFnZTogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9zcmMvYXBwL2Rhc2hib2FyZC9jb250cmFjdHMvW2lkXS9wYWdlLmpzXCIpLCBcIi9Vc2Vycy9nYW5kYW54aWFuZ3poYW8vRGVza3RvcC/lkIjlkIzmtYHovazlrqHmibnns7vnu58vc3JjL2FwcC9kYXNoYm9hcmQvY29udHJhY3RzL1tpZF0vcGFnZS5qc1wiXSxcbiAgICAgICAgICBcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgfVxuICAgICAgXVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICBcbiAgICAgICAgXG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsYXlvdXQnOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2FuZGFueGlhbmd6aGFvL0Rlc2t0b3Av5ZCI5ZCM5rWB6L2s5a6h5om557O757ufL3NyYy9hcHAvZGFzaGJvYXJkL2xheW91dC5qc1wiKSwgXCIvVXNlcnMvZ2FuZGFueGlhbmd6aGFvL0Rlc2t0b3Av5ZCI5ZCM5rWB6L2s5a6h5om557O757ufL3NyYy9hcHAvZGFzaGJvYXJkL2xheW91dC5qc1wiXSxcbiAgICAgICAgXG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsYXlvdXQnOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2FuZGFueGlhbmd6aGFvL0Rlc2t0b3Av5ZCI5ZCM5rWB6L2s5a6h5om557O757ufL3NyYy9hcHAvbGF5b3V0LmpzXCIpLCBcIi9Vc2Vycy9nYW5kYW54aWFuZ3poYW8vRGVza3RvcC/lkIjlkIzmtYHovazlrqHmibnns7vnu58vc3JjL2FwcC9sYXlvdXQuanNcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiKSwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9Vc2Vycy9nYW5kYW54aWFuZ3poYW8vRGVza3RvcC/lkIjlkIzmtYHovazlrqHmibnns7vnu58vc3JjL2FwcC9kYXNoYm9hcmQvY29udHJhY3RzL1tpZF0vcGFnZS5qc1wiXTtcbmV4cG9ydCB7IHRyZWUsIHBhZ2VzIH07XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdsb2JhbEVycm9yIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeVwiO1xuY29uc3QgX19uZXh0X2FwcF9yZXF1aXJlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fXG5jb25zdCBfX25leHRfYXBwX2xvYWRfY2h1bmtfXyA9ICgpID0+IFByb21pc2UucmVzb2x2ZSgpXG5leHBvcnQgY29uc3Qgb3JpZ2luYWxQYXRobmFtZSA9IFwiL2Rhc2hib2FyZC9jb250cmFjdHMvW2lkXS9wYWdlXCI7XG5leHBvcnQgY29uc3QgX19uZXh0X2FwcF9fID0ge1xuICAgIHJlcXVpcmU6IF9fbmV4dF9hcHBfcmVxdWlyZV9fLFxuICAgIGxvYWRDaHVuazogX19uZXh0X2FwcF9sb2FkX2NodW5rX19cbn07XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIjtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IEFwcFBhZ2VSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgIHBhZ2U6IFwiL2Rhc2hib2FyZC9jb250cmFjdHMvW2lkXS9wYWdlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9kYXNoYm9hcmQvY29udHJhY3RzL1tpZF1cIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIixcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfVxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&page=%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&appPaths=%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage.js&appDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(ssr)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2FuZGFueGlhbmd6aGFvJTJGRGVza3RvcCUyRiVFNSU5MCU4OCVFNSU5MCU4QyVFNiVCNSU4MSVFOCVCRCVBQyVFNSVBRSVBMSVFNiU4OSVCOSVFNyVCMyVCQiVFNyVCQiU5RiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmFwcC1yb3V0ZXIuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGY2xpZW50LXBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRmdhbmRhbnhpYW5nemhhbyUyRkRlc2t0b3AlMkYlRTUlOTAlODglRTUlOTAlOEMlRTYlQjUlODElRTglQkQlQUMlRTUlQUUlQTElRTYlODklQjklRTclQjMlQkIlRTclQkIlOUYlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZub3QtZm91bmQtYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZnYW5kYW54aWFuZ3poYW8lMkZEZXNrdG9wJTJGJUU1JTkwJTg4JUU1JTkwJThDJUU2JUI1JTgxJUU4JUJEJUFDJUU1JUFFJUExJUU2JTg5JUI5JUU3JUIzJUJCJUU3JUJCJTlGJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQW1JO0FBQ25JO0FBQ0Esb09BQW9JO0FBQ3BJO0FBQ0EsME9BQXVJO0FBQ3ZJO0FBQ0Esd09BQXNJO0FBQ3RJO0FBQ0Esa1BBQTJJO0FBQzNJO0FBQ0Esc1FBQXFKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLz80ODQ2Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9nYW5kYW54aWFuZ3poYW8vRGVza3RvcC/lkIjlkIzmtYHovazlrqHmibnns7vnu58vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvZ2FuZGFueGlhbmd6aGFvL0Rlc2t0b3Av5ZCI5ZCM5rWB6L2s5a6h5om557O757ufL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanNcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/contracts/[id]/page.js */ \"(ssr)/./src/app/dashboard/contracts/[id]/page.js\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2FuZGFueGlhbmd6aGFvJTJGRGVza3RvcCUyRiVFNSU5MCU4OCVFNSU5MCU4QyVFNiVCNSU4MSVFOCVCRCVBQyVFNSVBRSVBMSVFNiU4OSVCOSVFNyVCMyVCQiVFNyVCQiU5RiUyRnNyYyUyRmFwcCUyRmRhc2hib2FyZCUyRmNvbnRyYWN0cyUyRiU1QmlkJTVEJTJGcGFnZS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsZ01BQXFIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLz84NWU3Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9zcmMvYXBwL2Rhc2hib2FyZC9jb250cmFjdHMvW2lkXS9wYWdlLmpzXCIpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Flayout.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Flayout.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
\*******************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/dashboard/layout.js */ \"(ssr)/./src/app/dashboard/layout.js\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGZ2FuZGFueGlhbmd6aGFvJTJGRGVza3RvcCUyRiVFNSU5MCU4OCVFNSU5MCU4QyVFNiVCNSU4MSVFOCVCRCVBQyVFNSVBRSVBMSVFNiU4OSVCOSVFNyVCMyVCQiVFNyVCQiU5RiUyRnNyYyUyRmFwcCUyRmRhc2hib2FyZCUyRmxheW91dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsc0tBQXdHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLz8wM2MzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL2dhbmRhbnhpYW5nemhhby9EZXNrdG9wL+WQiOWQjOa1gei9rOWuoeaJueezu+e7ny9zcmMvYXBwL2Rhc2hib2FyZC9sYXlvdXQuanNcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fdashboard%2Flayout.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
\*********************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ (() => {
/***/ }),
/***/ "(ssr)/./src/app/dashboard/contracts/[id]/page.js":
/*!**************************************************!*\
!*** ./src/app/dashboard/contracts/[id]/page.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ContractDetailPage)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _layout__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../layout */ \"(ssr)/./src/app/dashboard/layout.js\");\n/* harmony import */ var _lib_auth_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/auth-client */ \"(ssr)/./src/lib/auth-client.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nfunction ContractDetailPage() {\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useParams)();\n const user = (0,_layout__WEBPACK_IMPORTED_MODULE_3__.useUser)();\n const contractId = params.id;\n const [contract, setContract] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [toast, setToast] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n // Approval state\n const [opinion, setOpinion] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [approving, setApproving] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Resubmit state\n const [editing, setEditing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [editForm, setEditForm] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const [editFiles, setEditFiles] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [editDragging, setEditDragging] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const editFileInputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [resubmitting, setResubmitting] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Partners for resubmit\n const [partners, setPartners] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [supervisors, setSupervisors] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [partnerSearch, setPartnerSearch] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [selectedPartnerName, setSelectedPartnerName] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [partnerDropdownOpen, setPartnerDropdownOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const partnerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const showToast = (message, type = \"success\")=>{\n setToast({\n message,\n type\n });\n setTimeout(()=>setToast(null), 3000);\n };\n const fetchContract = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async ()=>{\n try {\n const res = await (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(`/api/contracts/${contractId}`);\n const data = await res.json();\n if (!res.ok) {\n showToast(data.error || \"加载失败\", \"error\");\n return;\n }\n setContract(data.contract || data);\n } catch (err) {\n showToast(\"加载合同详情失败\", \"error\");\n } finally{\n setLoading(false);\n }\n }, [\n contractId\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n fetchContract();\n }, [\n fetchContract\n ]);\n // Load partners and supervisors for resubmit\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (editing) {\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(\"/api/partners\").then((r)=>r.json()).then((data)=>setPartners(data.partners || data || [])).catch(()=>{});\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(\"/api/users\").then((r)=>r.json()).then((data)=>{\n const list = (data || []).filter((u)=>u.role === \"supervisor\" && u.status === 1);\n setSupervisors(list);\n }).catch(()=>{});\n }\n }, [\n editing\n ]);\n // Close partner dropdown on outside click\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const handleClick = (e1)=>{\n if (partnerRef.current && !partnerRef.current.contains(e1.target)) {\n setPartnerDropdownOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClick);\n return ()=>document.removeEventListener(\"mousedown\", handleClick);\n }, []);\n const formatDate = (dateStr)=>{\n if (!dateStr) return \"-\";\n const d = new Date(dateStr);\n return d.toLocaleDateString(\"zh-CN\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n });\n };\n const formatDateTime = (dateStr)=>{\n if (!dateStr) return \"\";\n const d = new Date(dateStr);\n return d.toLocaleString(\"zh-CN\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n });\n };\n const formatCurrency = (amount)=>{\n if (amount === null || amount === undefined) return \"-\";\n return Number(amount).toLocaleString(\"zh-CN\", {\n style: \"currency\",\n currency: \"CNY\"\n });\n };\n // Can current user approve?\n const canApprove = ()=>{\n if (!contract || !user) return false;\n const { status, department_id } = contract;\n const { role, department_id: userDeptId } = user;\n if (status === \"pending_supervisor\" && role === \"supervisor\" && userDeptId === department_id) return true;\n if (status === \"pending_finance\" && role === \"finance\") return true;\n if (status === \"pending_secretary\" && role === \"secretary\") return true;\n return false;\n };\n // Can resubmit?\n const canResubmit = ()=>{\n if (!contract || !user) return false;\n return contract.status === \"rejected\" && user.id === contract.creator_id;\n };\n // Approve/Reject\n const handleApproval = async (approved)=>{\n setApproving(true);\n try {\n const res = await (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(`/api/contracts/${contractId}/approve`, {\n method: \"POST\",\n body: JSON.stringify({\n approved,\n opinion\n })\n });\n const data = await res.json();\n if (!res.ok) {\n showToast(data.error || \"操作失败\", \"error\");\n } else {\n showToast(approved ? \"已通过审批\" : \"已驳回\");\n setOpinion(\"\");\n fetchContract();\n }\n } catch (err) {\n showToast(\"操作失败,请重试\", \"error\");\n } finally{\n setApproving(false);\n }\n };\n // Start editing for resubmit\n const startEditing = ()=>{\n let start = \"\";\n let end = \"\";\n if (contract.contract_years && contract.contract_years.includes(\" ~ \")) {\n const parts = contract.contract_years.split(\" ~ \");\n start = parts[0] || \"\";\n end = parts[1] || \"\";\n }\n setEditForm({\n project_name: contract.project_name || \"\",\n project_leader: contract.project_leader || \"\",\n sign_date: contract.sign_date ? contract.sign_date.substring(0, 10) : \"\",\n partner_id: contract.partner_id || \"\",\n contract_content: contract.contract_content || \"\",\n cooperate_start: start,\n cooperate_end: end,\n contract_amount: contract.contract_amount || \"\",\n estimated_profit: contract.estimated_profit || \"\",\n payment_type: contract.payment_type || \"receive\"\n });\n setSelectedPartnerName(contract.partner_name || \"\");\n setPartnerSearch(contract.partner_name || \"\");\n setEditing(true);\n };\n const handleEditChange = (field, value)=>{\n setEditForm((prev)=>{\n const updated = {\n ...prev,\n [field]: value\n };\n if (field === \"payment_type\" && value === \"pay\") {\n updated.estimated_profit = \"\";\n }\n return updated;\n });\n };\n // Resubmit\n const handleResubmit = async ()=>{\n if (!editForm.project_name?.trim()) {\n showToast(\"请输入项目名称\", \"error\");\n return;\n }\n if (!editForm.partner_id) {\n showToast(\"请选择合作单位\", \"error\");\n return;\n }\n if (!editForm.contract_amount || Number(editForm.contract_amount) <= 0) {\n showToast(\"请输入合同金额\", \"error\");\n return;\n }\n if (!editForm.cooperate_start || !editForm.cooperate_end) {\n showToast(\"请选择完整的合作时间范围\", \"error\");\n return;\n }\n if (editForm.cooperate_start > editForm.cooperate_end) {\n showToast(\"合作开始时间不能晚于结束时间\", \"error\");\n return;\n }\n setResubmitting(true);\n try {\n const body = {\n project_name: editForm.project_name,\n project_leader: editForm.project_leader || null,\n sign_date: editForm.sign_date || null,\n partner_id: editForm.partner_id,\n contract_content: editForm.contract_content || null,\n contract_years: editForm.cooperate_start && editForm.cooperate_end ? `${editForm.cooperate_start} ~ ${editForm.cooperate_end}` : null,\n contract_amount: Number(editForm.contract_amount),\n estimated_profit: editForm.estimated_profit === \"\" || editForm.estimated_profit === null || editForm.estimated_profit === undefined ? null : Number(editForm.estimated_profit),\n payment_type: editForm.payment_type\n };\n const res = await (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(`/api/contracts/${contractId}`, {\n method: \"PUT\",\n body: JSON.stringify(body)\n });\n const data = await res.json();\n if (!res.ok) {\n showToast(data.error || \"重新提交失败\", \"error\");\n } else {\n // Upload new files if any\n for (const file of editFiles){\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append(\"contract_id\", contractId);\n await (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.authFetch)(\"/api/upload\", {\n method: \"POST\",\n body: formData\n });\n }\n showToast(\"已重新提交审批\");\n setEditing(false);\n setEditFiles([]);\n fetchContract();\n }\n } catch (err) {\n showToast(\"提交失败,请重试\", \"error\");\n } finally{\n setResubmitting(false);\n }\n };\n const editFilteredPartners = partners.filter((p)=>(p.name || \"\").toLowerCase().includes(partnerSearch.toLowerCase()));\n const selectPartner = (partner)=>{\n setEditForm((prev)=>({\n ...prev,\n partner_id: partner.id\n }));\n setSelectedPartnerName(partner.name);\n setPartnerSearch(partner.name);\n setPartnerDropdownOpen(false);\n };\n // File handling for resubmit\n const handleEditFiles = (newFiles)=>{\n setEditFiles((prev)=>[\n ...prev,\n ...Array.from(newFiles)\n ]);\n };\n const formatFileSize = (bytes)=>{\n if (bytes < 1024) return bytes + \" B\";\n if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + \" KB\";\n return (bytes / (1024 * 1024)).toFixed(1) + \" MB\";\n };\n // Timeline step state\n const getStepState = (stepIndex)=>{\n if (!contract) return \"pending\";\n const { status, supervisor_approved, finance_approved, secretary_approved } = contract;\n switch(stepIndex){\n case 0:\n return \"completed\";\n case 1:\n if (supervisor_approved === 1) return \"completed\";\n if (supervisor_approved === 0) return \"rejected\";\n if (status === \"pending_supervisor\") return \"current\";\n if ([\n \"pending_finance\",\n \"pending_secretary\",\n \"approved\"\n ].includes(status)) return \"completed\";\n return \"pending\";\n case 2:\n if (finance_approved === 1) return \"completed\";\n if (finance_approved === 0) return \"rejected\";\n if (status === \"pending_finance\") return \"current\";\n if ([\n \"pending_secretary\",\n \"approved\"\n ].includes(status)) return \"completed\";\n return \"pending\";\n case 3:\n if (secretary_approved === 1) return \"completed\";\n if (secretary_approved === 0) return \"rejected\";\n if (status === \"pending_secretary\") return \"current\";\n if (status === \"approved\") return \"completed\";\n return \"pending\";\n default:\n return \"pending\";\n }\n };\n const getLineState = (stepIndex)=>{\n const currentState = getStepState(stepIndex);\n const nextState = getStepState(stepIndex + 1);\n if (currentState === \"completed\" && nextState === \"completed\") return \"completed\";\n if (currentState === \"completed\" && nextState === \"current\") return \"active\";\n return \"\";\n };\n const getStepIcon = (state)=>{\n switch(state){\n case \"completed\":\n return \"✓\";\n case \"rejected\":\n return \"✕\";\n case \"current\":\n return \"⋯\";\n default:\n return \"\";\n }\n };\n const timelineSteps = [\n {\n label: \"提交\",\n approver: contract?.creator_name,\n time: contract?.created_at\n },\n {\n label: \"初审\",\n approver: contract?.supervisor_name,\n time: contract?.supervisor_time\n },\n {\n label: \"财务审核\",\n approver: contract?.finance_name,\n time: contract?.finance_time\n },\n {\n label: \"终审\",\n approver: contract?.secretary_name,\n time: contract?.secretary_time\n }\n ];\n if (loading) {\n return /*#__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/[id]/page.js\",\n lineNumber: 348,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 347,\n columnNumber: 7\n }, this);\n }\n if (!contract) {\n return /*#__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\\uDCCB\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 356,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"empty-state-text\",\n children: \"合同不存在或已被删除\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 357,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-primary\",\n style: {\n marginTop: 16\n },\n onClick: ()=>router.push(\"/dashboard/contracts\"),\n children: \"返回列表\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 358,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 355,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-fadeIn\",\n children: [\n toast && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"toast-container\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `toast toast-${toast.type}`,\n children: [\n toast.type === \"success\" ? \"✅\" : \"❌\",\n \" \",\n toast.message\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 370,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 369,\n columnNumber: 9\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: contract.project_name\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 379,\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 \"合同编号:\",\n contract.contract_no || contract.id\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 380,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 378,\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: 12\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `status-badge status-${contract.status}`,\n children: _lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.STATUS_NAMES[contract.status] || contract.status\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 383,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-outline\",\n onClick: ()=>router.push(\"/dashboard/contracts\"),\n children: \"← 返回列表\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 386,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 382,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 377,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n style: {\n marginBottom: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"card-title\",\n children: \"\\uD83D\\uDCCA 审批流程\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 395,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 394,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"approval-timeline\",\n children: timelineSteps.map((step, index)=>{\n const state = getStepState(index);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n alignItems: \"center\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"timeline-step\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `timeline-dot ${state}`,\n children: state === \"pending\" ? index + 1 : getStepIcon(state)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 404,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"timeline-label\",\n children: step.label\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 407,\n columnNumber: 21\n }, this),\n (state === \"completed\" || state === \"rejected\") && step.approver && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"timeline-info\",\n children: [\n step.approver,\n step.time && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"br\", {}, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 411,\n columnNumber: 39\n }, this),\n step.time && formatDateTime(step.time)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 409,\n columnNumber: 23\n }, this),\n state === \"current\" && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"timeline-info\",\n style: {\n color: \"var(--primary)\"\n },\n children: \"等待审批中...\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 416,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 403,\n columnNumber: 19\n }, this),\n index < timelineSteps.length - 1 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `timeline-line ${getLineState(index)}`\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 422,\n columnNumber: 21\n }, this)\n ]\n }, index, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 402,\n columnNumber: 17\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 398,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 397,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 393,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n style: {\n marginBottom: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"card-title\",\n children: \"\\uD83D\\uDCCB 合同详情\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 434,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 433,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-grid\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"项目名称\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 439,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n children: contract.project_name || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 440,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 438,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"项目负责人\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 443,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n children: contract.project_leader || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 444,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 442,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"合作单位\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 447,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n children: contract.partner_name || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 448,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 446,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"签订时间\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 451,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n children: formatDate(contract.sign_date)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 452,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 450,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"合同金额\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 455,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n style: {\n color: \"var(--primary)\",\n fontWeight: 700,\n fontSize: 18\n },\n children: formatCurrency(contract.contract_amount)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 456,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 454,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"合作期限\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 467,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n children: contract.contract_years || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 468,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 466,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"收付款类型\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 471,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n children: contract.payment_type === \"receive\" ? \"收款\" : contract.payment_type === \"pay\" ? \"付款\" : \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 472,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 470,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"提交人\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 475,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n children: contract.creator_name || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 476,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 474,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"所属部门\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 479,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n children: contract.department_name || \"-\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 480,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 478,\n columnNumber: 13\n }, this),\n contract.contract_content && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-item full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-label\",\n children: \"合同内容\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 484,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"detail-value\",\n style: {\n whiteSpace: \"pre-wrap\",\n lineHeight: 1.8\n },\n children: contract.contract_content\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 485,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 483,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 437,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 436,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 432,\n columnNumber: 7\n }, this),\n contract.opinions && contract.opinions.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n style: {\n marginBottom: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"card-title\",\n children: \"\\uD83D\\uDCAC 审批意见\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 498,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 497,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n children: contract.opinions.map((op, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n padding: \"12px 16px\",\n background: op.approved ? \"var(--success-light)\" : \"var(--danger-light)\",\n borderRadius: \"var(--radius-md)\",\n marginBottom: 8,\n borderLeft: `3px solid ${op.approved ? \"var(--success)\" : \"var(--danger)\"}`\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: 4\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n fontWeight: 600,\n fontSize: 14\n },\n children: [\n op.approver_name,\n \" (\",\n _lib_auth_client__WEBPACK_IMPORTED_MODULE_4__.ROLE_NAMES[op.role] || op.role,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 510,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n fontSize: 12,\n color: \"var(--gray-500)\"\n },\n children: formatDateTime(op.created_at)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 513,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 509,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n fontSize: 14,\n color: \"var(--text-dark-secondary)\"\n },\n children: [\n op.approved ? \"✅ 通过\" : \"❌ 驳回\",\n op.opinion && ` — ${op.opinion}`\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 517,\n columnNumber: 17\n }, this)\n ]\n }, idx, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 502,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 500,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 496,\n columnNumber: 9\n }, this),\n contract.attachments && contract.attachments.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n style: {\n marginBottom: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"card-title\",\n children: \"\\uD83D\\uDCCE 附件文件\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 531,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 530,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-list\",\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: 16\n },\n children: contract.attachments.map((file, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(AttachmentPreviewItem, {\n file: file\n }, idx, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 536,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 534,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 533,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `\n .excel-table-container table {\n border-collapse: collapse;\n width: 100%;\n font-size: 13px;\n background: white;\n }\n .excel-table-container th, .excel-table-container td {\n border: 1px solid var(--gray-200);\n padding: 6px 10px;\n text-align: left;\n }\n .excel-table-container tr:nth-child(even) {\n background-color: var(--gray-50);\n }\n .docx-render-container .docx-preview-rendered {\n font-family: inherit !important;\n }\n `\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 541,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 529,\n columnNumber: 9\n }, this),\n canApprove() && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n style: {\n marginBottom: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"card-title\",\n children: \"✍️ 审批操作\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 567,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 566,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: \"审批意见\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 571,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n className: \"form-textarea\",\n placeholder: \"请输入审批意见(可选)...\",\n value: opinion,\n onChange: (e1)=>setOpinion(e1.target.value),\n rows: 3\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 572,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 570,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n gap: 12\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-success\",\n disabled: approving,\n onClick: ()=>handleApproval(true),\n children: approving ? \"处理中...\" : \"✅ 通过\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 581,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-danger\",\n disabled: approving,\n onClick: ()=>handleApproval(false),\n children: approving ? \"处理中...\" : \"❌ 驳回\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 588,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 580,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 569,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 565,\n columnNumber: 9\n }, this),\n canResubmit() && !editing && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n style: {\n marginBottom: 20\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n style: {\n textAlign: \"center\",\n padding: 32\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n fontSize: 48,\n marginBottom: 12\n },\n children: \"\\uD83D\\uDCDD\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 604,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n style: {\n color: \"var(--gray-500)\",\n marginBottom: 16\n },\n children: \"该合同已被驳回,您可以修改后重新提交\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 605,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-primary\",\n onClick: startEditing,\n children: \"修改并重新提交\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 606,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 603,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 602,\n columnNumber: 9\n }, this),\n canResubmit() && editing && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card\",\n style: {\n marginBottom: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-header\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"card-title\",\n children: \"\\uD83D\\uDCDD 修改合同信息\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 617,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 616,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"card-body\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"grid\",\n gridTemplateColumns: \"repeat(2, 1fr)\",\n gap: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: [\n \"项目名称 \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"required\",\n children: \"*\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 622,\n columnNumber: 52\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 622,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n className: \"form-input\",\n value: editForm.project_name,\n onChange: (e1)=>handleEditChange(\"project_name\", e1.target.value)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 623,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 621,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: \"项目负责人\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 631,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n className: \"form-select\",\n value: editForm.project_leader,\n onChange: (e1)=>handleEditChange(\"project_leader\", e1.target.value),\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/[id]/page.js\",\n lineNumber: 637,\n columnNumber: 19\n }, this),\n supervisors.map((s)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: s.real_name,\n children: [\n s.real_name,\n \" (\",\n s.department_name || \"无部门\",\n \")\"\n ]\n }, s.id, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 639,\n columnNumber: 21\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 632,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 630,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: \"签订时间\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 646,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"form-input\",\n value: editForm.sign_date,\n onChange: (e1)=>handleEditChange(\"sign_date\", e1.target.value)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 647,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 645,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n ref: partnerRef,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: [\n \"合作单位 \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"required\",\n children: \"*\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 655,\n columnNumber: 52\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 655,\n columnNumber: 17\n }, this),\n editForm.partner_id ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"selected-partner-card animate-fadeIn\",\n style: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n padding: \"10px 14px\",\n background: \"var(--gray-50)\",\n border: \"1.5px solid var(--gray-200)\",\n borderRadius: \"var(--radius-md)\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n fontWeight: 600,\n fontSize: 14\n },\n children: [\n \"\\uD83C\\uDFE2 \",\n selectedPartnerName\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 666,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"btn btn-ghost btn-sm\",\n style: {\n color: \"var(--danger)\",\n padding: \"4px 8px\"\n },\n onClick: ()=>{\n setEditForm((prev)=>({\n ...prev,\n partner_id: \"\"\n }));\n setSelectedPartnerName(\"\");\n setPartnerSearch(\"\");\n setPartnerDropdownOpen(true);\n },\n children: \"重新选择\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 667,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 657,\n columnNumber: 19\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"search-select\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n className: \"search-select-input\",\n placeholder: \"搜索合作单位...\",\n value: partnerSearch,\n onChange: (e1)=>{\n setPartnerSearch(e1.target.value);\n setPartnerDropdownOpen(true);\n },\n onFocus: ()=>setPartnerDropdownOpen(true)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 683,\n columnNumber: 21\n }, this),\n partnerDropdownOpen && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"search-select-dropdown\",\n children: editFilteredPartners.length > 0 ? editFilteredPartners.map((p)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `search-select-option ${editForm.partner_id === p.id ? \"selected\" : \"\"}`,\n onClick: ()=>selectPartner(p),\n children: p.name\n }, p.id, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 698,\n columnNumber: 29\n }, this)) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"search-select-empty\",\n children: [\n \"未找到?\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"/dashboard/partners\",\n onClick: (e1)=>{\n e1.preventDefault();\n router.push(\"/dashboard/partners\");\n },\n children: \"前往添加合作单位\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 709,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 707,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 695,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 682,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 654,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n style: {\n gridColumn: \"1 / -1\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: \"合同内容\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 720,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n className: \"form-textarea\",\n value: editForm.contract_content,\n onChange: (e1)=>handleEditChange(\"contract_content\", e1.target.value),\n rows: 4\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 721,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 719,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n style: {\n gridColumn: \"1 / -1\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: [\n \"合作期限 \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"required\",\n children: \"*\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 729,\n columnNumber: 52\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 729,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n maxWidth: 400\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"form-input\",\n value: editForm.cooperate_start,\n onChange: handleEditChange(\"cooperate_start\", e.target.value)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 731,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n style: {\n color: \"var(--gray-400)\"\n },\n children: \"至\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 737,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"date\",\n className: \"form-input\",\n value: editForm.cooperate_end,\n onChange: handleEditChange(\"cooperate_end\", e.target.value)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 738,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 730,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 728,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: [\n \"合同金额(元)\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"required\",\n children: \"*\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 747,\n columnNumber: 54\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 747,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n className: \"form-input\",\n min: \"0\",\n step: \"0.01\",\n value: editForm.contract_amount,\n onChange: (e1)=>handleEditChange(\"contract_amount\", e1.target.value)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 748,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 746,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: \"预估利润(元)\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 758,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n className: \"form-input\",\n placeholder: editForm.payment_type === \"pay\" ? \"付款合同无利润\" : \"请输入预估利润\",\n min: \"0\",\n step: \"0.01\",\n value: editForm.estimated_profit,\n onChange: (e1)=>handleEditChange(\"estimated_profit\", e1.target.value),\n disabled: editForm.payment_type === \"pay\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 759,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 757,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: \"收款/付款\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 771,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n gap: 24,\n marginTop: 8\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n cursor: \"pointer\",\n fontSize: 14\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n name: \"edit_payment_type\",\n value: \"receive\",\n checked: editForm.payment_type === \"receive\",\n onChange: (e1)=>handleEditChange(\"payment_type\", e1.target.value),\n style: {\n accentColor: \"var(--primary)\"\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 774,\n columnNumber: 21\n }, this),\n \"收款\"\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 773,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n cursor: \"pointer\",\n fontSize: 14\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n name: \"edit_payment_type\",\n value: \"pay\",\n checked: editForm.payment_type === \"pay\",\n onChange: (e1)=>handleEditChange(\"payment_type\", e1.target.value),\n style: {\n accentColor: \"var(--primary)\"\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 785,\n columnNumber: 21\n }, this),\n \"付款\"\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 784,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 772,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 770,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 620,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"form-group\",\n style: {\n marginTop: 12\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"form-label\",\n children: \"追加附件\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 801,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `upload-area ${editDragging ? \"dragging\" : \"\"}`,\n onDragOver: (e1)=>{\n e1.preventDefault();\n setEditDragging(true);\n },\n onDragLeave: (e1)=>{\n e1.preventDefault();\n setEditDragging(false);\n },\n onDrop: (e1)=>{\n e1.preventDefault();\n setEditDragging(false);\n handleEditFiles(e1.dataTransfer.files);\n },\n onClick: ()=>editFileInputRef.current?.click(),\n style: {\n padding: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"upload-text\",\n children: \"\\uD83D\\uDCC1 点击或拖拽文件上传\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 810,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n ref: editFileInputRef,\n type: \"file\",\n multiple: true,\n style: {\n display: \"none\"\n },\n onChange: (e1)=>{\n if (e1.target.files.length > 0) {\n handleEditFiles(e1.target.files);\n e1.target.value = \"\";\n }\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 811,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 802,\n columnNumber: 15\n }, this),\n editFiles.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-list\",\n children: editFiles.map((file, idx)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-item\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"file-item-name\",\n children: [\n \"\\uD83D\\uDCC4 \",\n file.name,\n \" (\",\n formatFileSize(file.size),\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 828,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"file-item-remove\",\n onClick: ()=>setEditFiles((prev)=>prev.filter((_, i)=>i !== idx)),\n children: \"✕\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 829,\n columnNumber: 23\n }, this)\n ]\n }, idx, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 827,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 825,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 800,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n gap: 12,\n marginTop: 20\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-ghost\",\n onClick: ()=>setEditing(false),\n children: \"取消\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 843,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"btn btn-primary\",\n disabled: resubmitting,\n onClick: handleResubmit,\n children: resubmitting ? \"提交中...\" : \"✨ 修改并重新提交\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 846,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 842,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 619,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 615,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 366,\n columnNumber: 5\n }, this);\n}\nfunction AttachmentPreviewItem({ file }) {\n const originalPath = file.file_path || file.path || file.url || \"\";\n const ext = originalPath.split(\".\").pop().toLowerCase();\n let path = originalPath;\n if (path.startsWith(\"/uploads/attachments/\")) {\n const fileName = path.replace(\"/uploads/attachments/\", \"\");\n path = `/api/upload?file=${fileName}`;\n }\n const isImage = [\n \"png\",\n \"jpg\",\n \"jpeg\",\n \"gif\",\n \"webp\",\n \"bmp\"\n ].includes(ext);\n const isPdf = ext === \"pdf\";\n const isWord = ext === \"docx\";\n const isExcel = [\n \"xlsx\",\n \"xls\"\n ].includes(ext);\n const isText = [\n \"txt\",\n \"csv\",\n \"log\",\n \"json\"\n ].includes(ext);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [textVal, setTextVal] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [excelHtml, setExcelHtml] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n // Helper to load external scripts\n const loadScript = (src)=>{\n return new Promise((resolve, reject)=>{\n if (document.querySelector(`script[src=\"${src}\"]`)) {\n resolve();\n return;\n }\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = ()=>resolve();\n script.onerror = (err)=>reject(err);\n document.body.appendChild(script);\n });\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n let active = true;\n const fetchAndRender = async ()=>{\n if (isWord) {\n setLoading(true);\n setError(null);\n try {\n // Load JSZip and docx-preview\n await loadScript(\"https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js\");\n await loadScript(\"https://unpkg.com/docx-preview@0.1.15/dist/docx-preview.min.js\");\n const res = await fetch(path);\n if (!res.ok) throw new Error(\"无法加载文档文件\");\n const blob = await res.blob();\n if (active && containerRef.current && window.docx) {\n containerRef.current.innerHTML = \"\";\n await window.docx.renderAsync(blob, containerRef.current, null, {\n className: \"docx-preview-rendered\",\n inWrapper: false\n });\n }\n } catch (err) {\n console.error(err);\n if (active) setError(\"Word 文档解析失败,请点击下载查看\");\n } finally{\n if (active) setLoading(false);\n }\n } else if (isExcel) {\n setLoading(true);\n setError(null);\n try {\n await loadScript(\"https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js\");\n const res = await fetch(path);\n if (!res.ok) throw new Error(\"无法加载表格文件\");\n const arrayBuffer = await res.arrayBuffer();\n if (active && window.XLSX) {\n const workbook = window.XLSX.read(new Uint8Array(arrayBuffer), {\n type: \"array\"\n });\n const sheetName = workbook.SheetNames[0];\n const sheet = workbook.Sheets[sheetName];\n const html = window.XLSX.utils.sheet_to_html(sheet);\n setExcelHtml(html);\n }\n } catch (err) {\n console.error(err);\n if (active) setError(\"Excel 表格解析失败,请点击下载查看\");\n } finally{\n if (active) setLoading(false);\n }\n } else if (isText) {\n setLoading(true);\n setError(null);\n try {\n const res = await fetch(path);\n if (!res.ok) throw new Error(\"无法加载文本内容\");\n const text = await res.text();\n if (active) setTextVal(text);\n } catch (err) {\n console.error(err);\n if (active) setError(\"文本读取失败,请点击下载查看\");\n } finally{\n if (active) setLoading(false);\n }\n }\n };\n fetchAndRender();\n return ()=>{\n active = false;\n };\n }, [\n path,\n isWord,\n isExcel,\n isText\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n borderBottom: \"1px solid var(--gray-100)\",\n paddingBottom: 16,\n lastChild: {\n borderBottom: \"none\"\n }\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-item\",\n style: {\n marginBottom: 8,\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"file-item-name\",\n style: {\n fontWeight: 500\n },\n children: [\n \"\\uD83D\\uDCC4 \",\n file.original_name || file.file_name || file.name || \"附件\"\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 972,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: path,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"btn btn-sm btn-outline\",\n children: \"下载\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 975,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 971,\n columnNumber: 7\n }, this),\n loading && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n padding: 12,\n fontSize: 13,\n color: \"var(--gray-500)\",\n display: \"flex\",\n alignItems: \"center\",\n gap: 8\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"loading-spinner-sm\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 988,\n columnNumber: 11\n }, this),\n \" 正在渲染预览中...\"\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 987,\n columnNumber: 9\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n padding: 10,\n fontSize: 13,\n color: \"var(--red-500)\",\n background: \"var(--red-50)\"\n },\n children: [\n \"⚠️ \",\n error\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 992,\n columnNumber: 9\n }, this),\n !loading && !error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n isImage && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-preview animate-fadeIn\",\n style: {\n marginTop: 10,\n padding: 10,\n background: \"var(--gray-50)\",\n border: \"1px solid var(--gray-200)\",\n borderRadius: \"var(--radius-md)\",\n textAlign: \"center\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: path,\n alt: file.file_name,\n style: {\n maxWidth: \"100%\",\n maxHeight: 400,\n borderRadius: 4,\n objectFit: \"contain\"\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1009,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1001,\n columnNumber: 13\n }, this),\n isPdf && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-preview animate-fadeIn\",\n style: {\n marginTop: 10,\n padding: 10,\n background: \"var(--gray-50)\",\n border: \"1px solid var(--gray-200)\",\n borderRadius: \"var(--radius-md)\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"iframe\", {\n src: path,\n title: file.file_name,\n style: {\n width: \"100%\",\n height: 600,\n border: \"none\",\n borderRadius: 4\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1024,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1017,\n columnNumber: 13\n }, this),\n isWord && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-preview animate-fadeIn\",\n style: {\n marginTop: 10,\n padding: \"20px 40px\",\n background: \"white\",\n border: \"1px solid var(--gray-200)\",\n borderRadius: \"var(--radius-md)\",\n maxHeight: 600,\n overflowY: \"auto\",\n boxShadow: \"inset 0 0 10px rgba(0,0,0,0.05)\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: containerRef,\n className: \"docx-render-container\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1042,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1032,\n columnNumber: 13\n }, this),\n isExcel && excelHtml && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-preview animate-fadeIn\",\n style: {\n marginTop: 10,\n padding: 16,\n background: \"white\",\n border: \"1px solid var(--gray-200)\",\n borderRadius: \"var(--radius-md)\",\n maxHeight: 500,\n overflow: \"auto\",\n boxShadow: \"inset 0 0 10px rgba(0,0,0,0.05)\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n dangerouslySetInnerHTML: {\n __html: excelHtml\n },\n className: \"excel-table-container\",\n style: {\n overflowX: \"auto\"\n }\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1056,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1046,\n columnNumber: 13\n }, this),\n isText && textVal && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"file-preview animate-fadeIn\",\n style: {\n marginTop: 10,\n padding: 16,\n background: \"var(--gray-50)\",\n border: \"1px solid var(--gray-200)\",\n borderRadius: \"var(--radius-md)\",\n maxHeight: 400,\n overflowY: \"auto\"\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"pre\", {\n style: {\n margin: 0,\n whiteSpace: \"pre-wrap\",\n fontFamily: \"monospace\",\n fontSize: 13,\n color: \"var(--gray-800)\",\n lineHeight: 1.6\n },\n children: textVal\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1073,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1064,\n columnNumber: 13\n }, this),\n !isImage && !isPdf && !isWord && !isExcel && !isText && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n fontSize: 12,\n color: \"var(--gray-400)\",\n marginTop: 4\n },\n children: \"提示:此格式文件暂不支持直接预览,请点击下载查看。\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 1084,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js\",\n lineNumber: 970,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL2Rhc2hib2FyZC9jb250cmFjdHMvW2lkXS9wYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNpRTtBQUNWO0FBQ2hCO0FBQ2lDO0FBRXpELFNBQVNVO0lBQ3RCLE1BQU1DLFNBQVNQLDBEQUFTQTtJQUN4QixNQUFNUSxTQUFTUCwwREFBU0E7SUFDeEIsTUFBTVEsT0FBT1AsZ0RBQU9BO0lBQ3BCLE1BQU1RLGFBQWFGLE9BQU9HLEVBQUU7SUFFNUIsTUFBTSxDQUFDQyxVQUFVQyxZQUFZLEdBQUdqQiwrQ0FBUUEsQ0FBQztJQUN6QyxNQUFNLENBQUNrQixTQUFTQyxXQUFXLEdBQUduQiwrQ0FBUUEsQ0FBQztJQUN2QyxNQUFNLENBQUNvQixPQUFPQyxTQUFTLEdBQUdyQiwrQ0FBUUEsQ0FBQztJQUVuQyxpQkFBaUI7SUFDakIsTUFBTSxDQUFDc0IsU0FBU0MsV0FBVyxHQUFHdkIsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDd0IsV0FBV0MsYUFBYSxHQUFHekIsK0NBQVFBLENBQUM7SUFFM0MsaUJBQWlCO0lBQ2pCLE1BQU0sQ0FBQzBCLFNBQVNDLFdBQVcsR0FBRzNCLCtDQUFRQSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQzRCLFVBQVVDLFlBQVksR0FBRzdCLCtDQUFRQSxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDOEIsV0FBV0MsYUFBYSxHQUFHL0IsK0NBQVFBLENBQUMsRUFBRTtJQUM3QyxNQUFNLENBQUNnQyxjQUFjQyxnQkFBZ0IsR0FBR2pDLCtDQUFRQSxDQUFDO0lBQ2pELE1BQU1rQyxtQkFBbUJoQyw2Q0FBTUEsQ0FBQztJQUNoQyxNQUFNLENBQUNpQyxjQUFjQyxnQkFBZ0IsR0FBR3BDLCtDQUFRQSxDQUFDO0lBRWpELHdCQUF3QjtJQUN4QixNQUFNLENBQUNxQyxVQUFVQyxZQUFZLEdBQUd0QywrQ0FBUUEsQ0FBQyxFQUFFO0lBQzNDLE1BQU0sQ0FBQ3VDLGFBQWFDLGVBQWUsR0FBR3hDLCtDQUFRQSxDQUFD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O2dDQUNaL0gsVUFBVTtnQ0FDVkgsT0FBTztnQ0FDUE0sWUFBWTs0QkFDZDtzQ0FBSWdFOzs7Ozs7Ozs7OztvQkFHUCxDQUFDTixXQUFXLENBQUNDLFNBQVMsQ0FBQ0MsVUFBVSxDQUFDQyxXQUFXLENBQUNDLHdCQUM3Qyw4REFBQ3RGO3dCQUFJOUUsT0FBTzs0QkFBRW1HLFVBQVU7NEJBQUlILE9BQU87NEJBQW1CZixXQUFXO3dCQUFFO2tDQUFHOzs7Ozs7Ozs7Ozs7OztBQVFsRiIsInNvdXJjZXMiOlsid2VicGFjazovL2NvbnRyYWN0LWFwcHJvdmFsLXN5c3RlbS8uL3NyYy9hcHAvZGFzaGJvYXJkL2NvbnRyYWN0cy9baWRdL3BhZ2UuanM/NGRiMCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUm91dGVyLCB1c2VQYXJhbXMgfSBmcm9tICduZXh0L25hdmlnYXRpb24nO1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uLy4uL2xheW91dCc7XG5pbXBvcnQgeyBhdXRoRmV0Y2gsIFNUQVRVU19OQU1FUywgUk9MRV9OQU1FUyB9IGZyb20gJ0AvbGliL2F1dGgtY2xpZW50JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ29udHJhY3REZXRhaWxQYWdlKCkge1xuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKTtcbiAgY29uc3QgcGFyYW1zID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHVzZXIgPSB1c2VVc2VyKCk7XG4gIGNvbnN0IGNvbnRyYWN0SWQgPSBwYXJhbXMuaWQ7XG5cbiAgY29uc3QgW2NvbnRyYWN0LCBzZXRDb250cmFjdF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFt0b2FzdCwgc2V0VG9hc3RdID0gdXNlU3RhdGUobnVsbCk7XG5cbiAgLy8gQXBwcm92YWwgc3RhdGVcbiAgY29uc3QgW29waW5pb24sIHNldE9waW5pb25dID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbYXBwcm92aW5nLCBzZXRBcHByb3ZpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIFJlc3VibWl0IHN0YXRlXG4gIGNvbnN0IFtlZGl0aW5nLCBzZXRFZGl0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2VkaXRGb3JtLCBzZXRFZGl0Rm9ybV0gPSB1c2VTdGF0ZSh7fSk7XG4gIGNvbnN0IFtlZGl0RmlsZXMsIHNldEVkaXRGaWxlc10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtlZGl0RHJhZ2dpbmcsIHNldEVkaXREcmFnZ2luZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGVkaXRGaWxlSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IFtyZXN1Ym1pdHRpbmcsIHNldFJlc3VibWl0dGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8gUGFydG5lcnMgZm9yIHJlc3VibWl0XG4gIGNvbnN0IFtwYXJ0bmVycywgc2V0UGFydG5lcnNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbc3VwZXJ2aXNvcnMsIHNldFN1cGVydmlzb3JzXSA9IHVzZVN0YXRlKFtdKTtcbiAgY29uc3QgW3BhcnRuZXJTZWFyY2gsIHNldFBhcnRuZXJTZWFyY2hdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCBbc2VsZWN0ZWRQYXJ0bmVyTmFtZSwgc2V0U2VsZWN0ZWRQYXJ0bmVyTmFtZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtwYXJ0bmVyRHJvcGRvd25PcGVuLCBzZXRQYXJ0bmVyRHJvcGRvd25PcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgcGFydG5lclJlZiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCBzaG93VG9hc3QgPSAobWVzc2FnZSwgdHlwZSA9ICdzdWNjZXNzJykgPT4ge1xuICAgIHNldFRvYXN0KHsgbWVzc2FnZSwgdHlwZSB9KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHNldFRvYXN0KG51bGwpLCAzMDAwKTtcbiAgfTtcblxuICBjb25zdCBmZXRjaENvbnRyYWN0ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBhdXRoRmV0Y2goYC9hcGkvY29udHJhY3RzLyR7Y29udHJhY3RJZH1gKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMuanNvbigpO1xuICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgc2hvd1RvYXN0KGRhdGEuZXJyb3IgfHwgJ+WKoOi9veWksei0pScsICdlcnJvcicpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzZXRDb250cmFjdChkYXRhLmNvbnRyYWN0IHx8IGRhdGEpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2hvd1RvYXN0KCfliqDovb3lkIjlkIzor6bmg4XlpLHotKUnLCAnZXJyb3InKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICB9LCBbY29udHJhY3RJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hDb250cmFjdCgpO1xuICB9LCBbZmV0Y2hDb250cmFjdF0pO1xuXG4gIC8vIExvYWQgcGFydG5lcnMgYW5kIHN1cGVydmlzb3JzIGZvciByZXN1Ym1pdFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlZGl0aW5nKSB7XG4gICAgICBhdXRoRmV0Y2goJy9hcGkvcGFydG5lcnMnKVxuICAgICAgICAudGhlbihyID0+IHIuanNvbigpKVxuICAgICAgICAudGhlbihkYXRhID0+IHNldFBhcnRuZXJzKGRhdGEucGFydG5lcnMgfHwgZGF0YSB8fCBbXSkpXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XG5cbiAgICAgIGF1dGhGZXRjaCgnL2FwaS91c2VycycpXG4gICAgICAgIC50aGVuKHIgPT4gci5qc29uKCkpXG4gICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgIGNvbnN0IGxpc3QgPSAoZGF0YSB8fCBbXSkuZmlsdGVyKHUgPT4gdS5yb2xlID09PSAnc3VwZXJ2aXNvcicgJiYgdS5zdGF0dXMgPT09IDEpO1xuICAgICAgICAgIHNldFN1cGVydmlzb3JzKGxpc3QpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKCkgPT4ge30pO1xuICAgIH1cbiAgfSwgW2VkaXRpbmddKTtcblxuICAvLyBDbG9zZSBwYXJ0bmVyIGRyb3Bkb3duIG9uIG91dHNpZGUgY2xpY2tcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGljayA9IChlKSA9PiB7XG4gICAgICBpZiAocGFydG5lclJlZi5jdXJyZW50ICYmICFwYXJ0bmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XG4gICAgICAgIHNldFBhcnRuZXJEcm9wZG93bk9wZW4oZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2spO1xuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVDbGljayk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBmb3JtYXREYXRlID0gKGRhdGVTdHIpID0+IHtcbiAgICBpZiAoIWRhdGVTdHIpIHJldHVybiAnLSc7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGRhdGVTdHIpO1xuICAgIHJldHVybiBkLnRvTG9jYWxlRGF0ZVN0cmluZygnemgtQ04nLCB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICcyLWRpZ2l0JywgZGF5OiAnMi1kaWdpdCcgfSk7XG4gIH07XG5cbiAgY29uc3QgZm9ybWF0RGF0ZVRpbWUgPSAoZGF0ZVN0cikgPT4ge1xuICAgIGlmICghZGF0ZVN0cikgcmV0dXJuICcnO1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZShkYXRlU3RyKTtcbiAgICByZXR1cm4gZC50b0xvY2FsZVN0cmluZygnemgtQ04nLCB7XG4gICAgICB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnLFxuICAgICAgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0J1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGZvcm1hdEN1cnJlbmN5ID0gKGFtb3VudCkgPT4ge1xuICAgIGlmIChhbW91bnQgPT09IG51bGwgfHwgYW1vdW50ID09PSB1bmRlZmluZWQpIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIE51bWJlcihhbW91bnQpLnRvTG9jYWxlU3RyaW5nKCd6aC1DTicsIHsgc3R5bGU6ICdjdXJyZW5jeScsIGN1cnJlbmN5OiAnQ05ZJyB9KTtcbiAgfTtcblxuICAvLyBDYW4gY3VycmVudCB1c2VyIGFwcHJvdmU/XG4gIGNvbnN0IGNhbkFwcHJvdmUgPSAoKSA9PiB7XG4gICAgaWYgKCFjb250cmFjdCB8fCAhdXNlcikgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IHsgc3RhdHVzLCBkZXBhcnRtZW50X2lkIH0gPSBjb250cmFjdDtcbiAgICBjb25zdCB7IHJvbGUsIGRlcGFydG1lbnRfaWQ6IHVzZXJEZXB0SWQgfSA9IHVzZXI7XG4gICAgaWYgKHN0YXR1cyA9PT0gJ3BlbmRpbmdfc3VwZXJ2aXNvcicgJiYgcm9sZSA9PT0gJ3N1cGVydmlzb3InICYmIHVzZXJEZXB0SWQgPT09IGRlcGFydG1lbnRfaWQpIHJldHVybiB0cnVlO1xuICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nX2ZpbmFuY2UnICYmIHJvbGUgPT09ICdmaW5hbmNlJykgcmV0dXJuIHRydWU7XG4gICAgaWYgKHN0YXR1cyA9PT0gJ3BlbmRpbmdfc2VjcmV0YXJ5JyAmJiByb2xlID09PSAnc2VjcmV0YXJ5JykgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIC8vIENhbiByZXN1Ym1pdD9cbiAgY29uc3QgY2FuUmVzdWJtaXQgPSAoKSA9PiB7XG4gICAgaWYgKCFjb250cmFjdCB8fCAhdXNlcikgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBjb250cmFjdC5zdGF0dXMgPT09ICdyZWplY3RlZCcgJiYgdXNlci5pZCA9PT0gY29udHJhY3QuY3JlYXRvcl9pZDtcbiAgfTtcblxuICAvLyBBcHByb3ZlL1JlamVjdFxuICBjb25zdCBoYW5kbGVBcHByb3ZhbCA9IGFzeW5jIChhcHByb3ZlZCkgPT4ge1xuICAgIHNldEFwcHJvdmluZyh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYXV0aEZldGNoKGAvYXBpL2NvbnRyYWN0cy8ke2NvbnRyYWN0SWR9L2FwcHJvdmVgLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFwcHJvdmVkLCBvcGluaW9uIH0pLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgIHNob3dUb2FzdChkYXRhLmVycm9yIHx8ICfmk43kvZzlpLHotKUnLCAnZXJyb3InKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNob3dUb2FzdChhcHByb3ZlZCA/ICflt7LpgJrov4flrqHmibknIDogJ+W3sumps+WbnicpO1xuICAgICAgICBzZXRPcGluaW9uKCcnKTtcbiAgICAgICAgZmV0Y2hDb250cmFjdCgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2hvd1RvYXN0KCfmk43kvZzlpLHotKXvvIzor7fph43or5UnLCAnZXJyb3InKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0QXBwcm92aW5nKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gU3RhcnQgZWRpdGluZyBmb3IgcmVzdWJtaXRcbiAgY29uc3Qgc3RhcnRFZGl0aW5nID0gKCkgPT4ge1xuICAgIGxldCBzdGFydCA9ICcnO1xuICAgIGxldCBlbmQgPSAnJztcbiAgICBpZiAoY29udHJhY3QuY29udHJhY3RfeWVhcnMgJiYgY29udHJhY3QuY29udHJhY3RfeWVhcnMuaW5jbHVkZXMoJyB+ICcpKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IGNvbnRyYWN0LmNvbnRyYWN0X3llYXJzLnNwbGl0KCcgfiAnKTtcbiAgICAgIHN0YXJ0ID0gcGFydHNbMF0gfHwgJyc7XG4gICAgICBlbmQgPSBwYXJ0c1sxXSB8fCAnJztcbiAgICB9XG5cbiAgICBzZXRFZGl0Rm9ybSh7XG4gICAgICBwcm9qZWN0X25hbWU6IGNvbnRyYWN0LnByb2plY3RfbmFtZSB8fCAnJyxcbiAgICAgIHByb2plY3RfbGVhZGVyOiBjb250cmFjdC5wcm9qZWN0X2xlYWRlciB8fCAnJyxcbiAgICAgIHNpZ25fZGF0ZTogY29udHJhY3Quc2lnbl9kYXRlID8gY29udHJhY3Quc2lnbl9kYXRlLnN1YnN0cmluZygwLCAxMCkgOiAnJyxcbiAgICAgIHBhcnRuZXJfaWQ6IGNvbnRyYWN0LnBhcnRuZXJfaWQgfHwgJycsXG4gICAgICBjb250cmFjdF9jb250ZW50OiBjb250cmFjdC5jb250cmFjdF9jb250ZW50IHx8ICcnLFxuICAgICAgY29vcGVyYXRlX3N0YXJ0OiBzdGFydCxcbiAgICAgIGNvb3BlcmF0ZV9lbmQ6IGVuZCxcbiAgICAgIGNvbnRyYWN0X2Ftb3VudDogY29udHJhY3QuY29udHJhY3RfYW1vdW50IHx8ICcnLFxuICAgICAgZXN0aW1hdGVkX3Byb2ZpdDogY29udHJhY3QuZXN0aW1hdGVkX3Byb2ZpdCB8fCAnJyxcbiAgICAgIHBheW1lbnRfdHlwZTogY29udHJhY3QucGF5bWVudF90eXBlIHx8ICdyZWNlaXZlJyxcbiAgICB9KTtcbiAgICBzZXRTZWxlY3RlZFBhcnRuZXJOYW1lKGNvbnRyYWN0LnBhcnRuZXJfbmFtZSB8fCAnJyk7XG4gICAgc2V0UGFydG5lclNlYXJjaChjb250cmFjdC5wYXJ0bmVyX25hbWUgfHwgJycpO1xuICAgIHNldEVkaXRpbmcodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRWRpdENoYW5nZSA9IChmaWVsZCwgdmFsdWUpID0+IHtcbiAgICBzZXRFZGl0Rm9ybShwcmV2ID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSB7IC4uLnByZXYsIFtmaWVsZF06IHZhbHVlIH07XG4gICAgICBpZiAoZmllbGQgPT09ICdwYXltZW50X3R5cGUnICYmIHZhbHVlID09PSAncGF5Jykge1xuICAgICAgICB1cGRhdGVkLmVzdGltYXRlZF9wcm9maXQgPSAnJztcbiAgICAgIH1cbiAgICAgIHJldHVybiB1cGRhdGVkO1xuICAgIH0pO1xuICB9O1xuXG4gIC8vIFJlc3VibWl0XG4gIGNvbnN0IGhhbmRsZVJlc3VibWl0ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghZWRpdEZvcm0ucHJvamVjdF9uYW1lPy50cmltKCkpIHtcbiAgICAgIHNob3dUb2FzdCgn6K+36L6T5YWl6aG555uu5ZCN56ewJywgJ2Vycm9yJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghZWRpdEZvcm0ucGFydG5lcl9pZCkge1xuICAgICAgc2hvd1RvYXN0KCfor7fpgInmi6nlkIjkvZzljZXkvY0nLCAnZXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFlZGl0Rm9ybS5jb250cmFjdF9hbW91bnQgfHwgTnVtYmVyKGVkaXRGb3JtLmNvbnRyYWN0X2Ftb3VudCkgPD0gMCkge1xuICAgICAgc2hvd1RvYXN0KCfor7fovpPlhaXlkIjlkIzph5Hpop0nLCAnZXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFlZGl0Rm9ybS5jb29wZXJhdGVfc3RhcnQgfHwgIWVkaXRGb3JtLmNvb3BlcmF0ZV9lbmQpIHtcbiAgICAgIHNob3dUb2FzdCgn6K+36YCJ5oup5a6M5pW055qE5ZCI5L2c5pe26Ze06IyD5Zu0JywgJ2Vycm9yJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChlZGl0Rm9ybS5jb29wZXJhdGVfc3RhcnQgPiBlZGl0Rm9ybS5jb29wZXJhdGVfZW5kKSB7XG4gICAgICBzaG93VG9hc3QoJ+WQiOS9nOW8gOWni+aXtumXtOS4jeiDveaZmuS6jue7k+adn+aXtumXtCcsICdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldFJlc3VibWl0dGluZyh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgcHJvamVjdF9uYW1lOiBlZGl0Rm9ybS5wcm9qZWN0X25hbWUsXG4gICAgICAgIHByb2plY3RfbGVhZGVyOiBlZGl0Rm9ybS5wcm9qZWN0X2xlYWRlciB8fCBudWxsLFxuICAgICAgICBzaWduX2RhdGU6IGVkaXRGb3JtLnNpZ25fZGF0ZSB8fCBudWxsLFxuICAgICAgICBwYXJ0bmVyX2lkOiBlZGl0Rm9ybS5wYXJ0bmVyX2lkLFxuICAgICAgICBjb250cmFjdF9jb250ZW50OiBlZGl0Rm9ybS5jb250cmFjdF9jb250ZW50IHx8IG51bGwsXG4gICAgICAgIGNvbnRyYWN0X3llYXJzOiBlZGl0Rm9ybS5jb29wZXJhdGVfc3RhcnQgJiYgZWRpdEZvcm0uY29vcGVyYXRlX2VuZCA/IGAke2VkaXRGb3JtLmNvb3BlcmF0ZV9zdGFydH0gfiAke2VkaXRGb3JtLmNvb3BlcmF0ZV9lbmR9YCA6IG51bGwsXG4gICAgICAgIGNvbnRyYWN0X2Ftb3VudDogTnVtYmVyKGVkaXRGb3JtLmNvbnRyYWN0X2Ftb3VudCksXG4gICAgICAgIGVzdGltYXRlZF9wcm9maXQ6IGVkaXRGb3JtLmVzdGltYXRlZF9wcm9maXQgPT09ICcnIHx8IGVkaXRGb3JtLmVzdGltYXRlZF9wcm9maXQgPT09IG51bGwgfHwgZWRpdEZvcm0uZXN0aW1hdGVkX3Byb2ZpdCA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IE51bWJlcihlZGl0Rm9ybS5lc3RpbWF0ZWRfcHJvZml0KSxcbiAgICAgICAgcGF5bWVudF90eXBlOiBlZGl0Rm9ybS5wYXltZW50X3R5cGUsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBhdXRoRmV0Y2goYC9hcGkvY29udHJhY3RzLyR7Y29udHJhY3RJZH1gLCB7XG4gICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVzLmpzb24oKTtcbiAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgIHNob3dUb2FzdChkYXRhLmVycm9yIHx8ICfph43mlrDmj5DkuqTlpLHotKUnLCAnZXJyb3InKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVwbG9hZCBuZXcgZmlsZXMgaWYgYW55XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBlZGl0RmlsZXMpIHtcbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnY29udHJhY3RfaWQnLCBjb250cmFjdElkKTtcbiAgICAgICAgICBhd2FpdCBhdXRoRmV0Y2goJy9hcGkvdXBsb2FkJywgeyBtZXRob2Q6ICdQT1NUJywgYm9keTogZm9ybURhdGEgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc2hvd1RvYXN0KCflt7Lph43mlrDmj5DkuqTlrqHmibknKTtcbiAgICAgICAgc2V0RWRpdGluZyhmYWxzZSk7XG4gICAgICAgIHNldEVkaXRGaWxlcyhbXSk7XG4gICAgICAgIGZldGNoQ29udHJhY3QoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHNob3dUb2FzdCgn5o+Q5Lqk5aSx6LSl77yM6K+36YeN6K+VJywgJ2Vycm9yJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldFJlc3VibWl0dGluZyhmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGVkaXRGaWx0ZXJlZFBhcnRuZXJzID0gcGFydG5lcnMuZmlsdGVyKHAgPT5cbiAgICAocC5uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHBhcnRuZXJTZWFyY2gudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICBjb25zdCBzZWxlY3RQYXJ0bmVyID0gKHBhcnRuZXIpID0+IHtcbiAgICBzZXRFZGl0Rm9ybShwcmV2ID0+ICh7IC4uLnByZXYsIHBhcnRuZXJfaWQ6IHBhcnRuZXIuaWQgfSkpO1xuICAgIHNldFNlbGVjdGVkUGFydG5lck5hbWUocGFydG5lci5uYW1lKTtcbiAgICBzZXRQYXJ0bmVyU2VhcmNoKHBhcnRuZXIubmFtZSk7XG4gICAgc2V0UGFydG5lckRyb3Bkb3duT3BlbihmYWxzZSk7XG4gIH07XG5cbiAgLy8gRmlsZSBoYW5kbGluZyBmb3IgcmVzdWJtaXRcbiAgY29uc3QgaGFuZGxlRWRpdEZpbGVzID0gKG5ld0ZpbGVzKSA9PiB7XG4gICAgc2V0RWRpdEZpbGVzKHByZXYgPT4gWy4uLnByZXYsIC4uLkFycmF5LmZyb20obmV3RmlsZXMpXSk7XG4gIH07XG5cbiAgY29uc3QgZm9ybWF0RmlsZVNpemUgPSAoYnl0ZXMpID0+IHtcbiAgICBpZiAoYnl0ZXMgPCAxMDI0KSByZXR1cm4gYnl0ZXMgKyAnIEInO1xuICAgIGlmIChieXRlcyA8IDEwMjQgKiAxMDI0KSByZXR1cm4gKGJ5dGVzIC8gMTAyNCkudG9GaXhlZCgxKSArICcgS0InO1xuICAgIHJldHVybiAoYnl0ZXMgLyAoMTAyNCAqIDEwMjQpKS50b0ZpeGVkKDEpICsgJyBNQic7XG4gIH07XG5cbiAgLy8gVGltZWxpbmUgc3RlcCBzdGF0ZVxuICBjb25zdCBnZXRTdGVwU3RhdGUgPSAoc3RlcEluZGV4KSA9PiB7XG4gICAgaWYgKCFjb250cmFjdCkgcmV0dXJuICdwZW5kaW5nJztcbiAgICBjb25zdCB7IHN0YXR1cywgc3VwZXJ2aXNvcl9hcHByb3ZlZCwgZmluYW5jZV9hcHByb3ZlZCwgc2VjcmV0YXJ5X2FwcHJvdmVkIH0gPSBjb250cmFjdDtcblxuICAgIHN3aXRjaCAoc3RlcEluZGV4KSB7XG4gICAgICBjYXNlIDA6IC8vIOaPkOS6pFxuICAgICAgICByZXR1cm4gJ2NvbXBsZXRlZCc7XG4gICAgICBjYXNlIDE6IC8vIOWIneWuoVxuICAgICAgICBpZiAoc3VwZXJ2aXNvcl9hcHByb3ZlZCA9PT0gMSkgcmV0dXJuICdjb21wbGV0ZWQnO1xuICAgICAgICBpZiAoc3VwZXJ2aXNvcl9hcHByb3ZlZCA9PT0gMCkgcmV0dXJuICdyZWplY3RlZCc7XG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nX3N1cGVydmlzb3InKSByZXR1cm4gJ2N1cnJlbnQnO1xuICAgICAgICBpZiAoWydwZW5kaW5nX2ZpbmFuY2UnLCAncGVuZGluZ19zZWNyZXRhcnknLCAnYXBwcm92ZWQnXS5pbmNsdWRlcyhzdGF0dXMpKSByZXR1cm4gJ2NvbXBsZXRlZCc7XG4gICAgICAgIHJldHVybiAncGVuZGluZyc7XG4gICAgICBjYXNlIDI6IC8vIOi0ouWKoeWuoeaguFxuICAgICAgICBpZiAoZmluYW5jZV9hcHByb3ZlZCA9PT0gMSkgcmV0dXJuICdjb21wbGV0ZWQnO1xuICAgICAgICBpZiAoZmluYW5jZV9hcHByb3ZlZCA9PT0gMCkgcmV0dXJuICdyZWplY3RlZCc7XG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nX2ZpbmFuY2UnKSByZXR1cm4gJ2N1cnJlbnQnO1xuICAgICAgICBpZiAoWydwZW5kaW5nX3NlY3JldGFyeScsICdhcHByb3ZlZCddLmluY2x1ZGVzKHN0YXR1cykpIHJldHVybiAnY29tcGxldGVkJztcbiAgICAgICAgcmV0dXJuICdwZW5kaW5nJztcbiAgICAgIGNhc2UgMzogLy8g57uI5a6hXG4gICAgICAgIGlmIChzZWNyZXRhcnlfYXBwcm92ZWQgPT09IDEpIHJldHVybiAnY29tcGxldGVkJztcbiAgICAgICAgaWYgKHNlY3JldGFyeV9hcHByb3ZlZCA9PT0gMCkgcmV0dXJuICdyZWplY3RlZCc7XG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdwZW5kaW5nX3NlY3JldGFyeScpIHJldHVybiAnY3VycmVudCc7XG4gICAgICAgIGlmIChzdGF0dXMgPT09ICdhcHByb3ZlZCcpIHJldHVybiAnY29tcGxldGVkJztcbiAgICAgICAgcmV0dXJuICdwZW5kaW5nJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAncGVuZGluZyc7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldExpbmVTdGF0ZSA9IChzdGVwSW5kZXgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBnZXRTdGVwU3RhdGUoc3RlcEluZGV4KTtcbiAgICBjb25zdCBuZXh0U3RhdGUgPSBnZXRTdGVwU3RhdGUoc3RlcEluZGV4ICsgMSk7XG4gICAgaWYgKGN1cnJlbnRTdGF0ZSA9PT0gJ2NvbXBsZXRlZCcgJiYgbmV4dFN0YXRlID09PSAnY29tcGxldGVkJykgcmV0dXJuICdjb21wbGV0ZWQnO1xuICAgIGlmIChjdXJyZW50U3RhdGUgPT09ICdjb21wbGV0ZWQnICYmIG5leHRTdGF0ZSA9PT0gJ2N1cnJlbnQnKSByZXR1cm4gJ2FjdGl2ZSc7XG4gICAgcmV0dXJuICcnO1xuICB9O1xuXG4gIGNvbnN0IGdldFN0ZXBJY29uID0gKHN0YXRlKSA9PiB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSAnY29tcGxldGVkJzogcmV0dXJuICfinJMnO1xuICAgICAgY2FzZSAncmVqZWN0ZWQnOiByZXR1cm4gJ+KclSc7XG4gICAgICBjYXNlICdjdXJyZW50JzogcmV0dXJuICfii68nO1xuICAgICAgZGVmYXVsdDogcmV0dXJuICcnO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB0aW1lbGluZVN0ZXBzID0gW1xuICAgIHtcbiAgICAgIGxhYmVsOiAn5o+Q5LqkJyxcbiAgICAgIGFwcHJvdmVyOiBjb250cmFjdD8uY3JlYXRvcl9uYW1lLFxuICAgICAgdGltZTogY29udHJhY3Q/LmNyZWF0ZWRfYXQsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ+WIneWuoScsXG4gICAgICBhcHByb3ZlcjogY29udHJhY3Q/LnN1cGVydmlzb3JfbmFtZSxcbiAgICAgIHRpbWU6IGNvbnRyYWN0Py5zdXBlcnZpc29yX3RpbWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ+i0ouWKoeWuoeaguCcsXG4gICAgICBhcHByb3ZlcjogY29udHJhY3Q/LmZpbmFuY2VfbmFtZSxcbiAgICAgIHRpbWU6IGNvbnRyYWN0Py5maW5hbmNlX3RpbWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ+e7iOWuoScsXG4gICAgICBhcHByb3ZlcjogY29udHJhY3Q/LnNlY3JldGFyeV9uYW1lLFxuICAgICAgdGltZTogY29udHJhY3Q/LnNlY3JldGFyeV90aW1lLFxuICAgIH0sXG4gIF07XG5cbiAgaWYgKGxvYWRpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2FkaW5nLW92ZXJsYXlcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsb2FkaW5nLXNwaW5uZXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICBpZiAoIWNvbnRyYWN0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJlbXB0eS1zdGF0ZS1pY29uXCI+8J+TizwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVtcHR5LXN0YXRlLXRleHRcIj7lkIjlkIzkuI3lrZjlnKjmiJblt7LooqvliKDpmaQ8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYnRuLXByaW1hcnlcIiBzdHlsZT17eyBtYXJnaW5Ub3A6IDE2IH19IG9uQ2xpY2s9eygpID0+IHJvdXRlci5wdXNoKCcvZGFzaGJvYXJkL2NvbnRyYWN0cycpfT5cbiAgICAgICAgICDov5Tlm57liJfooahcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImFuaW1hdGUtZmFkZUluXCI+XG4gICAgICB7LyogVG9hc3QgKi99XG4gICAgICB7dG9hc3QgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRvYXN0LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdG9hc3QgdG9hc3QtJHt0b2FzdC50eXBlfWB9PlxuICAgICAgICAgICAge3RvYXN0LnR5cGUgPT09ICdzdWNjZXNzJyA/ICfinIUnIDogJ+KdjCd9IHt0b2FzdC5tZXNzYWdlfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInBhZ2UtdGl0bGVcIj57Y29udHJhY3QucHJvamVjdF9uYW1lfTwvaDE+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwicGFnZS1zdWJ0aXRsZVwiPuWQiOWQjOe8luWPt++8mntjb250cmFjdC5jb250cmFjdF9ubyB8fCBjb250cmFjdC5pZH08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAxMiB9fT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2BzdGF0dXMtYmFkZ2Ugc3RhdHVzLSR7Y29udHJhY3Quc3RhdHVzfWB9PlxuICAgICAgICAgICAge1NUQVRVU19OQU1FU1tjb250cmFjdC5zdGF0dXNdIHx8IGNvbnRyYWN0LnN0YXR1c31cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYnRuLW91dGxpbmVcIiBvbkNsaWNrPXsoKSA9PiByb3V0ZXIucHVzaCgnL2Rhc2hib2FyZC9jb250cmFjdHMnKX0+XG4gICAgICAgICAgICDihpAg6L+U5Zue5YiX6KGoXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBBcHByb3ZhbCBUaW1lbGluZSAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiIHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogMjAgfX0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwiY2FyZC10aXRsZVwiPvCfk4og5a6h5om55rWB56iLPC9oMz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhcHByb3ZhbC10aW1lbGluZVwiPlxuICAgICAgICAgICAge3RpbWVsaW5lU3RlcHMubWFwKChzdGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzdGF0ZSA9IGdldFN0ZXBTdGF0ZShpbmRleCk7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aW1lbGluZS1zdGVwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdGltZWxpbmUtZG90ICR7c3RhdGV9YH0+XG4gICAgICAgICAgICAgICAgICAgICAge3N0YXRlID09PSAncGVuZGluZycgPyAoaW5kZXggKyAxKSA6IGdldFN0ZXBJY29uKHN0YXRlKX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtbGFiZWxcIj57c3RlcC5sYWJlbH08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgeyhzdGF0ZSA9PT0gJ2NvbXBsZXRlZCcgfHwgc3RhdGUgPT09ICdyZWplY3RlZCcpICYmIHN0ZXAuYXBwcm92ZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3N0ZXAuYXBwcm92ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICB7c3RlcC50aW1lICYmIDxiciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHtzdGVwLnRpbWUgJiYgZm9ybWF0RGF0ZVRpbWUoc3RlcC50aW1lKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAge3N0YXRlID09PSAnY3VycmVudCcgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGltZWxpbmUtaW5mb1wiIHN0eWxlPXt7IGNvbG9yOiAndmFyKC0tcHJpbWFyeSknIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAg562J5b6F5a6h5om55LitLi4uXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIHtpbmRleCA8IHRpbWVsaW5lU3RlcHMubGVuZ3RoIC0gMSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgdGltZWxpbmUtbGluZSAke2dldExpbmVTdGF0ZShpbmRleCl9YH0+PC9kaXY+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHsvKiBDb250cmFjdCBEZXRhaWxzICovfVxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkXCIgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiAyMCB9fT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjYXJkLXRpdGxlXCI+8J+TiyDlkIjlkIzor6bmg4U8L2gzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRldGFpbC1ncmlkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRldGFpbC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWxhYmVsXCI+6aG555uu5ZCN56ewPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLXZhbHVlXCI+e2NvbnRyYWN0LnByb2plY3RfbmFtZSB8fCAnLSd9PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtbGFiZWxcIj7pobnnm67otJ/otKPkuro8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtdmFsdWVcIj57Y29udHJhY3QucHJvamVjdF9sZWFkZXIgfHwgJy0nfTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRldGFpbC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWxhYmVsXCI+5ZCI5L2c5Y2V5L2NPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLXZhbHVlXCI+e2NvbnRyYWN0LnBhcnRuZXJfbmFtZSB8fCAnLSd9PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtbGFiZWxcIj7nrb7orqLml7bpl7Q8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtdmFsdWVcIj57Zm9ybWF0RGF0ZShjb250cmFjdC5zaWduX2RhdGUpfTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRldGFpbC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWxhYmVsXCI+5ZCI5ZCM6YeR6aKdPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLXZhbHVlXCIgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1wcmltYXJ5KScsIGZvbnRXZWlnaHQ6IDcwMCwgZm9udFNpemU6IDE4IH19PlxuICAgICAgICAgICAgICAgIHtmb3JtYXRDdXJyZW5jeShjb250cmFjdC5jb250cmFjdF9hbW91bnQpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgey8qIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtbGFiZWxcIj7pooTkvLDliKnmtqY8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtdmFsdWVcIj5cbiAgICAgICAgICAgICAgICB7Y29udHJhY3QucGF5bWVudF90eXBlID09PSAncGF5JyA/ICctJyA6IGZvcm1hdEN1cnJlbmN5KGNvbnRyYWN0LmVzdGltYXRlZF9wcm9maXQpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtbGFiZWxcIj7lkIjkvZzmnJ/pmZA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtdmFsdWVcIj57Y29udHJhY3QuY29udHJhY3RfeWVhcnMgfHwgJy0nfTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRldGFpbC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWxhYmVsXCI+5pS25LuY5qy+57G75Z6LPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLXZhbHVlXCI+e2NvbnRyYWN0LnBheW1lbnRfdHlwZSA9PT0gJ3JlY2VpdmUnID8gJ+aUtuasvicgOiBjb250cmFjdC5wYXltZW50X3R5cGUgPT09ICdwYXknID8gJ+S7mOasvicgOiAnLSd9PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtbGFiZWxcIj7mj5DkuqTkuro8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtdmFsdWVcIj57Y29udHJhY3QuY3JlYXRvcl9uYW1lIHx8ICctJ308L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtaXRlbVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRldGFpbC1sYWJlbFwiPuaJgOWxnumDqOmXqDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRldGFpbC12YWx1ZVwiPntjb250cmFjdC5kZXBhcnRtZW50X25hbWUgfHwgJy0nfTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7Y29udHJhY3QuY29udHJhY3RfY29udGVudCAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWl0ZW0gZnVsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGV0YWlsLWxhYmVsXCI+5ZCI5ZCM5YaF5a65PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXRhaWwtdmFsdWVcIiBzdHlsZT17eyB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLCBsaW5lSGVpZ2h0OiAxLjggfX0+XG4gICAgICAgICAgICAgICAgICB7Y29udHJhY3QuY29udHJhY3RfY29udGVudH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7LyogQXBwcm92YWwgT3BpbmlvbnMgKi99XG4gICAgICB7Y29udHJhY3Qub3BpbmlvbnMgJiYgY29udHJhY3Qub3BpbmlvbnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiIHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogMjAgfX0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNhcmQtdGl0bGVcIj7wn5KsIOWuoeaJueaEj+ingTwvaDM+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgIHtjb250cmFjdC5vcGluaW9ucy5tYXAoKG9wLCBpZHgpID0+IChcbiAgICAgICAgICAgICAgPGRpdiBrZXk9e2lkeH0gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTJweCAxNnB4JyxcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBvcC5hcHByb3ZlZCA/ICd2YXIoLS1zdWNjZXNzLWxpZ2h0KScgOiAndmFyKC0tZGFuZ2VyLWxpZ2h0KScsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAndmFyKC0tcmFkaXVzLW1kKScsXG4gICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiA4LFxuICAgICAgICAgICAgICAgIGJvcmRlckxlZnQ6IGAzcHggc29saWQgJHtvcC5hcHByb3ZlZCA/ICd2YXIoLS1zdWNjZXNzKScgOiAndmFyKC0tZGFuZ2VyKSd9YCxcbiAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsIG1hcmdpbkJvdHRvbTogNCB9fT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGZvbnRXZWlnaHQ6IDYwMCwgZm9udFNpemU6IDE0IH19PlxuICAgICAgICAgICAgICAgICAgICB7b3AuYXBwcm92ZXJfbmFtZX0gKHtST0xFX05BTUVTW29wLnJvbGVdIHx8IG9wLnJvbGV9KVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZm9udFNpemU6IDEyLCBjb2xvcjogJ3ZhcigtLWdyYXktNTAwKScgfX0+XG4gICAgICAgICAgICAgICAgICAgIHtmb3JtYXREYXRlVGltZShvcC5jcmVhdGVkX2F0KX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZvbnRTaXplOiAxNCwgY29sb3I6ICd2YXIoLS10ZXh0LWRhcmstc2Vjb25kYXJ5KScgfX0+XG4gICAgICAgICAgICAgICAgICB7b3AuYXBwcm92ZWQgPyAn4pyFIOmAmui/hycgOiAn4p2MIOmps+Wbnid9XG4gICAgICAgICAgICAgICAgICB7b3Aub3BpbmlvbiAmJiBgIOKAlCAke29wLm9waW5pb259YH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7LyogQXR0YWNobWVudHMgKi99XG4gICAgICB7Y29udHJhY3QuYXR0YWNobWVudHMgJiYgY29udHJhY3QuYXR0YWNobWVudHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiIHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogMjAgfX0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImNhcmQtdGl0bGVcIj7wn5OOIOmZhOS7tuaWh+S7tjwvaDM+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS1saXN0XCIgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJywgZ2FwOiAxNiB9fT5cbiAgICAgICAgICAgICAge2NvbnRyYWN0LmF0dGFjaG1lbnRzLm1hcCgoZmlsZSwgaWR4KSA9PiAoXG4gICAgICAgICAgICAgICAgPEF0dGFjaG1lbnRQcmV2aWV3SXRlbSBrZXk9e2lkeH0gZmlsZT17ZmlsZX0gLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7LyogQ3VzdG9tIGdsb2JhbCBDU1MgZm9yIEV4Y2VsIHByZXZpZXdzICovfVxuICAgICAgICAgIDxzdHlsZSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGBcbiAgICAgICAgICAgIC5leGNlbC10YWJsZS1jb250YWluZXIgdGFibGUge1xuICAgICAgICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5leGNlbC10YWJsZS1jb250YWluZXIgdGgsIC5leGNlbC10YWJsZS1jb250YWluZXIgdGQge1xuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmF5LTIwMCk7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmV4Y2VsLXRhYmxlLWNvbnRhaW5lciB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmF5LTUwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5kb2N4LXJlbmRlci1jb250YWluZXIgLmRvY3gtcHJldmlldy1yZW5kZXJlZCB7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgYH19IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgey8qIEFwcHJvdmFsIEFjdGlvbiAqL31cbiAgICAgIHtjYW5BcHByb3ZlKCkgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRcIiBzdHlsZT17eyBtYXJnaW5Cb3R0b206IDIwIH19PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjYXJkLXRpdGxlXCI+4pyN77iPIOWuoeaJueaTjeS9nDwvaDM+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZm9ybS1sYWJlbFwiPuWuoeaJueaEj+ingTwvbGFiZWw+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tdGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5a6h5om55oSP6KeB77yI5Y+v6YCJ77yJLi4uXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17b3Bpbmlvbn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBzZXRPcGluaW9uKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICByb3dzPXszfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAxMiB9fT5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tc3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2FwcHJvdmluZ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBcHByb3ZhbCh0cnVlKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHthcHByb3ZpbmcgPyAn5aSE55CG5LitLi4uJyA6ICfinIUg6YCa6L+HJ31cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidG4gYnRuLWRhbmdlclwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2FwcHJvdmluZ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVBcHByb3ZhbChmYWxzZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7YXBwcm92aW5nID8gJ+WkhOeQhuS4rS4uLicgOiAn4p2MIOmps+Wbnid9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgey8qIFJlc3VibWl0IEFyZWEgKi99XG4gICAgICB7Y2FuUmVzdWJtaXQoKSAmJiAhZWRpdGluZyAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZFwiIHN0eWxlPXt7IG1hcmdpbkJvdHRvbTogMjAgfX0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjYXJkLWJvZHlcIiBzdHlsZT17eyB0ZXh0QWxpZ246ICdjZW50ZXInLCBwYWRkaW5nOiAzMiB9fT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6IDQ4LCBtYXJnaW5Cb3R0b206IDEyIH19PvCfk508L2Rpdj5cbiAgICAgICAgICAgIDxwIHN0eWxlPXt7IGNvbG9yOiAndmFyKC0tZ3JheS01MDApJywgbWFyZ2luQm90dG9tOiAxNiB9fT7or6XlkIjlkIzlt7LooqvpqbPlm57vvIzmgqjlj6/ku6Xkv67mlLnlkI7ph43mlrDmj5DkuqQ8L3A+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiIG9uQ2xpY2s9e3N0YXJ0RWRpdGluZ30+XG4gICAgICAgICAgICAgIOS/ruaUueW5tumHjeaWsOaPkOS6pFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cblxuICAgICAgey8qIFJlc3VibWl0IEVkaXQgRm9ybSAqL31cbiAgICAgIHtjYW5SZXN1Ym1pdCgpICYmIGVkaXRpbmcgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNhcmRcIiBzdHlsZT17eyBtYXJnaW5Cb3R0b206IDIwIH19PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJjYXJkLXRpdGxlXCI+8J+TnSDkv67mlLnlkIjlkIzkv6Hmga88L2gzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdncmlkJywgZ3JpZFRlbXBsYXRlQ29sdW1uczogJ3JlcGVhdCgyLCAxZnIpJywgZ2FwOiAyMCB9fT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZvcm0tbGFiZWxcIj7pobnnm67lkI3np7AgPHNwYW4gY2xhc3NOYW1lPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtlZGl0Rm9ybS5wcm9qZWN0X25hbWV9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBoYW5kbGVFZGl0Q2hhbmdlKCdwcm9qZWN0X25hbWUnLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmb3JtLWxhYmVsXCI+6aG555uu6LSf6LSj5Lq6PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17ZWRpdEZvcm0ucHJvamVjdF9sZWFkZXJ9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBoYW5kbGVFZGl0Q2hhbmdlKCdwcm9qZWN0X2xlYWRlcicsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+LS0g6K+36YCJ5oup6YOo6Zeo5Li7566hIC0tPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICB7c3VwZXJ2aXNvcnMubWFwKHMgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17cy5pZH0gdmFsdWU9e3MucmVhbF9uYW1lfT5cbiAgICAgICAgICAgICAgICAgICAgICB7cy5yZWFsX25hbWV9ICh7cy5kZXBhcnRtZW50X25hbWUgfHwgJ+aXoOmDqOmXqCd9KVxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZvcm0tbGFiZWxcIj7nrb7orqLml7bpl7Q8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17ZWRpdEZvcm0uc2lnbl9kYXRlfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gaGFuZGxlRWRpdENoYW5nZSgnc2lnbl9kYXRlJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIiByZWY9e3BhcnRuZXJSZWZ9PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmb3JtLWxhYmVsXCI+5ZCI5L2c5Y2V5L2NIDxzcGFuIGNsYXNzTmFtZT1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgICAgICAgICAgICAgIHtlZGl0Rm9ybS5wYXJ0bmVyX2lkID8gKFxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3RlZC1wYXJ0bmVyLWNhcmQgYW5pbWF0ZS1mYWRlSW5cIiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMTBweCAxNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLWdyYXktNTApJyxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMS41cHggc29saWQgdmFyKC0tZ3JheS0yMDApJyxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAndmFyKC0tcmFkaXVzLW1kKScsXG4gICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZm9udFdlaWdodDogNjAwLCBmb250U2l6ZTogMTQgfX0+8J+PoiB7c2VsZWN0ZWRQYXJ0bmVyTmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJidG4gYnRuLWdob3N0IGJ0bi1zbVwiXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1kYW5nZXIpJywgcGFkZGluZzogJzRweCA4cHgnIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0RWRpdEZvcm0ocHJldiA9PiAoeyAuLi5wcmV2LCBwYXJ0bmVyX2lkOiAnJyB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZFBhcnRuZXJOYW1lKCcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhcnRuZXJTZWFyY2goJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFydG5lckRyb3Bkb3duT3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAg6YeN5paw6YCJ5oupXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VhcmNoLXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2VhcmNoLXNlbGVjdC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLmkJzntKLlkIjkvZzljZXkvY0uLi5cIlxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJ0bmVyU2VhcmNofVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhcnRuZXJTZWFyY2goZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFydG5lckRyb3Bkb3duT3Blbih0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9eygpID0+IHNldFBhcnRuZXJEcm9wZG93bk9wZW4odHJ1ZSl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIHtwYXJ0bmVyRHJvcGRvd25PcGVuICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYXJjaC1zZWxlY3QtZHJvcGRvd25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtlZGl0RmlsdGVyZWRQYXJ0bmVycy5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0RmlsdGVyZWRQYXJ0bmVycy5tYXAocCA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtwLmlkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgc2VhcmNoLXNlbGVjdC1vcHRpb24gJHtlZGl0Rm9ybS5wYXJ0bmVyX2lkID09PSBwLmlkID8gJ3NlbGVjdGVkJyA6ICcnfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZWxlY3RQYXJ0bmVyKHApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlYXJjaC1zZWxlY3QtZW1wdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDmnKrmib7liLDvvJ9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiL2Rhc2hib2FyZC9wYXJ0bmVyc1wiIG9uQ2xpY2s9e2UgPT4geyBlLnByZXZlbnREZWZhdWx0KCk7IHJvdXRlci5wdXNoKCcvZGFzaGJvYXJkL3BhcnRuZXJzJyk7IH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5YmN5b6A5re75Yqg5ZCI5L2c5Y2V5L2NXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCIgc3R5bGU9e3sgZ3JpZENvbHVtbjogJzEgLyAtMScgfX0+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZvcm0tbGFiZWxcIj7lkIjlkIzlhoXlrrk8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS10ZXh0YXJlYVwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17ZWRpdEZvcm0uY29udHJhY3RfY29udGVudH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IGhhbmRsZUVkaXRDaGFuZ2UoJ2NvbnRyYWN0X2NvbnRlbnQnLCBlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICByb3dzPXs0fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIiBzdHlsZT17eyBncmlkQ29sdW1uOiAnMSAvIC0xJyB9fT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZm9ybS1sYWJlbFwiPuWQiOS9nOacn+mZkCA8c3BhbiBjbGFzc05hbWU9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogMTIsIG1heFdpZHRoOiA0MDAgfX0+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2VkaXRGb3JtLmNvb3BlcmF0ZV9zdGFydH1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUVkaXRDaGFuZ2UoJ2Nvb3BlcmF0ZV9zdGFydCcsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBjb2xvcjogJ3ZhcigtLWdyYXktNDAwKScgfX0+6IezPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtlZGl0Rm9ybS5jb29wZXJhdGVfZW5kfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlRWRpdENoYW5nZSgnY29vcGVyYXRlX2VuZCcsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZm9ybS1sYWJlbFwiPuWQiOWQjOmHkemine+8iOWFg++8iTxzcGFuIGNsYXNzTmFtZT1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgc3RlcD1cIjAuMDFcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2VkaXRGb3JtLmNvbnRyYWN0X2Ftb3VudH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IGhhbmRsZUVkaXRDaGFuZ2UoJ2NvbnRyYWN0X2Ftb3VudCcsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImZvcm0tbGFiZWxcIj7pooTkvLDliKnmtqbvvIjlhYPvvIk8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtlZGl0Rm9ybS5wYXltZW50X3R5cGUgPT09ICdwYXknID8gJ+S7mOasvuWQiOWQjOaXoOWIqea2picgOiAn6K+36L6T5YWl6aKE5Lyw5Yip5ramJ31cbiAgICAgICAgICAgICAgICAgIG1pbj1cIjBcIlxuICAgICAgICAgICAgICAgICAgc3RlcD1cIjAuMDFcIlxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2VkaXRGb3JtLmVzdGltYXRlZF9wcm9maXR9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBoYW5kbGVFZGl0Q2hhbmdlKCdlc3RpbWF0ZWRfcHJvZml0JywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2VkaXRGb3JtLnBheW1lbnRfdHlwZSA9PT0gJ3BheSd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmb3JtLWxhYmVsXCI+5pS25qy+L+S7mOasvjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGdhcDogMjQsIG1hcmdpblRvcDogOCB9fT5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBzdHlsZT17eyBkaXNwbGF5OiAnZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInLCBnYXA6IDYsIGN1cnNvcjogJ3BvaW50ZXInLCBmb250U2l6ZTogMTQgfX0+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImVkaXRfcGF5bWVudF90eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInJlY2VpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2VkaXRGb3JtLnBheW1lbnRfdHlwZSA9PT0gJ3JlY2VpdmUnfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IGhhbmRsZUVkaXRDaGFuZ2UoJ3BheW1lbnRfdHlwZScsIGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBhY2NlbnRDb2xvcjogJ3ZhcigtLXByaW1hcnkpJyB9fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICDmlLbmrL5cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywgZ2FwOiA2LCBjdXJzb3I6ICdwb2ludGVyJywgZm9udFNpemU6IDE0IH19PlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlZGl0X3BheW1lbnRfdHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJwYXlcIlxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2VkaXRGb3JtLnBheW1lbnRfdHlwZSA9PT0gJ3BheSd9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gaGFuZGxlRWRpdENoYW5nZSgncGF5bWVudF90eXBlJywgZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGFjY2VudENvbG9yOiAndmFyKC0tcHJpbWFyeSknIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIOS7mOasvlxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIEZpbGUgdXBsb2FkIGZvciByZXN1Ym1pdCAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9ybS1ncm91cFwiIHN0eWxlPXt7IG1hcmdpblRvcDogMTIgfX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJmb3JtLWxhYmVsXCI+6L+95Yqg6ZmE5Lu2PC9sYWJlbD5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHVwbG9hZC1hcmVhICR7ZWRpdERyYWdnaW5nID8gJ2RyYWdnaW5nJyA6ICcnfWB9XG4gICAgICAgICAgICAgICAgb25EcmFnT3Zlcj17ZSA9PiB7IGUucHJldmVudERlZmF1bHQoKTsgc2V0RWRpdERyYWdnaW5nKHRydWUpOyB9fVxuICAgICAgICAgICAgICAgIG9uRHJhZ0xlYXZlPXtlID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyBzZXRFZGl0RHJhZ2dpbmcoZmFsc2UpOyB9fVxuICAgICAgICAgICAgICAgIG9uRHJvcD17ZSA9PiB7IGUucHJldmVudERlZmF1bHQoKTsgc2V0RWRpdERyYWdnaW5nKGZhbHNlKTsgaGFuZGxlRWRpdEZpbGVzKGUuZGF0YVRyYW5zZmVyLmZpbGVzKTsgfX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBlZGl0RmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKCl9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgcGFkZGluZzogMjAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLXRleHRcIj7wn5OBIOeCueWHu+aIluaLluaLveaWh+S7tuS4iuS8oDwvZGl2PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgcmVmPXtlZGl0RmlsZUlucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUVkaXRGaWxlcyhlLnRhcmdldC5maWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAge2VkaXRGaWxlcy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtbGlzdFwiPlxuICAgICAgICAgICAgICAgICAge2VkaXRGaWxlcy5tYXAoKGZpbGUsIGlkeCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aWR4fSBjbGFzc05hbWU9XCJmaWxlLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmaWxlLWl0ZW0tbmFtZVwiPvCfk4Qge2ZpbGUubmFtZX0gKHtmb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpfSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWxlLWl0ZW0tcmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEVkaXRGaWxlcyhwcmV2ID0+IHByZXYuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpZHgpKX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICDinJVcbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAxMiwgbWFyZ2luVG9wOiAyMCB9fT5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJidG4gYnRuLWdob3N0XCIgb25DbGljaz17KCkgPT4gc2V0RWRpdGluZyhmYWxzZSl9PlxuICAgICAgICAgICAgICAgIOWPlua2iFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3Jlc3VibWl0dGluZ31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVSZXN1Ym1pdH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtyZXN1Ym1pdHRpbmcgPyAn5o+Q5Lqk5LitLi4uJyA6ICfinKgg5L+u5pS55bm26YeN5paw5o+Q5LqkJ31cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBBdHRhY2htZW50UHJldmlld0l0ZW0oeyBmaWxlIH0pIHtcbiAgY29uc3Qgb3JpZ2luYWxQYXRoID0gZmlsZS5maWxlX3BhdGggfHwgZmlsZS5wYXRoIHx8IGZpbGUudXJsIHx8ICcnO1xuICBjb25zdCBleHQgPSBvcmlnaW5hbFBhdGguc3BsaXQoJy4nKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuICBcbiAgbGV0IHBhdGggPSBvcmlnaW5hbFBhdGg7XG4gIGlmIChwYXRoLnN0YXJ0c1dpdGgoJy91cGxvYWRzL2F0dGFjaG1lbnRzLycpKSB7XG4gICAgY29uc3QgZmlsZU5hbWUgPSBwYXRoLnJlcGxhY2UoJy91cGxvYWRzL2F0dGFjaG1lbnRzLycsICcnKTtcbiAgICBwYXRoID0gYC9hcGkvdXBsb2FkP2ZpbGU9JHtmaWxlTmFtZX1gO1xuICB9XG5cbiAgY29uc3QgaXNJbWFnZSA9IFsncG5nJywgJ2pwZycsICdqcGVnJywgJ2dpZicsICd3ZWJwJywgJ2JtcCddLmluY2x1ZGVzKGV4dCk7XG4gIGNvbnN0IGlzUGRmID0gZXh0ID09PSAncGRmJztcbiAgY29uc3QgaXNXb3JkID0gZXh0ID09PSAnZG9jeCc7XG4gIGNvbnN0IGlzRXhjZWwgPSBbJ3hsc3gnLCAneGxzJ10uaW5jbHVkZXMoZXh0KTtcbiAgY29uc3QgaXNUZXh0ID0gWyd0eHQnLCAnY3N2JywgJ2xvZycsICdqc29uJ10uaW5jbHVkZXMoZXh0KTtcblxuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFt0ZXh0VmFsLCBzZXRUZXh0VmFsXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW2V4Y2VsSHRtbCwgc2V0RXhjZWxIdG1sXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIC8vIEhlbHBlciB0byBsb2FkIGV4dGVybmFsIHNjcmlwdHNcbiAgY29uc3QgbG9hZFNjcmlwdCA9IChzcmMpID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmM9XCIke3NyY31cIl1gKSkge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgc2NyaXB0LnNyYyA9IHNyYztcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKCk7XG4gICAgICBzY3JpcHQub25lcnJvciA9IChlcnIpID0+IHJlamVjdChlcnIpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGFjdGl2ZSA9IHRydWU7XG4gICAgY29uc3QgZmV0Y2hBbmRSZW5kZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoaXNXb3JkKSB7XG4gICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIExvYWQgSlNaaXAgYW5kIGRvY3gtcHJldmlld1xuICAgICAgICAgIGF3YWl0IGxvYWRTY3JpcHQoJ2h0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2pzemlwLzMuMTAuMS9qc3ppcC5taW4uanMnKTtcbiAgICAgICAgICBhd2FpdCBsb2FkU2NyaXB0KCdodHRwczovL3VucGtnLmNvbS9kb2N4LXByZXZpZXdAMC4xLjE1L2Rpc3QvZG9jeC1wcmV2aWV3Lm1pbi5qcycpO1xuICAgICAgICAgIFxuICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHBhdGgpO1xuICAgICAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ+aXoOazleWKoOi9veaWh+aho+aWh+S7ticpO1xuICAgICAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCByZXMuYmxvYigpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmIChhY3RpdmUgJiYgY29udGFpbmVyUmVmLmN1cnJlbnQgJiYgd2luZG93LmRvY3gpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50LmlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgYXdhaXQgd2luZG93LmRvY3gucmVuZGVyQXN5bmMoYmxvYiwgY29udGFpbmVyUmVmLmN1cnJlbnQsIG51bGwsIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcImRvY3gtcHJldmlldy1yZW5kZXJlZFwiLFxuICAgICAgICAgICAgICBpbldyYXBwZXI6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICBpZiAoYWN0aXZlKSBzZXRFcnJvcignV29yZCDmlofmoaPop6PmnpDlpLHotKXvvIzor7fngrnlh7vkuIvovb3mn6XnnIsnKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAoYWN0aXZlKSBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc0V4Y2VsKSB7XG4gICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGxvYWRTY3JpcHQoJ2h0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL3hsc3gvMC4xOC41L3hsc3guZnVsbC5taW4uanMnKTtcbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChwYXRoKTtcbiAgICAgICAgICBpZiAoIXJlcy5vaykgdGhyb3cgbmV3IEVycm9yKCfml6Dms5XliqDovb3ooajmoLzmlofku7YnKTtcbiAgICAgICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGF3YWl0IHJlcy5hcnJheUJ1ZmZlcigpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmIChhY3RpdmUgJiYgd2luZG93LlhMU1gpIHtcbiAgICAgICAgICAgIGNvbnN0IHdvcmtib29rID0gd2luZG93LlhMU1gucmVhZChuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlciksIHsgdHlwZTogJ2FycmF5JyB9KTtcbiAgICAgICAgICAgIGNvbnN0IHNoZWV0TmFtZSA9IHdvcmtib29rLlNoZWV0TmFtZXNbMF07XG4gICAgICAgICAgICBjb25zdCBzaGVldCA9IHdvcmtib29rLlNoZWV0c1tzaGVldE5hbWVdO1xuICAgICAgICAgICAgY29uc3QgaHRtbCA9IHdpbmRvdy5YTFNYLnV0aWxzLnNoZWV0X3RvX2h0bWwoc2hlZXQpO1xuICAgICAgICAgICAgc2V0RXhjZWxIdG1sKGh0bWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgIGlmIChhY3RpdmUpIHNldEVycm9yKCdFeGNlbCDooajmoLzop6PmnpDlpLHotKXvvIzor7fngrnlh7vkuIvovb3mn6XnnIsnKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAoYWN0aXZlKSBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc1RleHQpIHtcbiAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgc2V0RXJyb3IobnVsbCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocGF0aCk7XG4gICAgICAgICAgaWYgKCFyZXMub2spIHRocm93IG5ldyBFcnJvcign5peg5rOV5Yqg6L295paH5pys5YaF5a65Jyk7XG4gICAgICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHJlcy50ZXh0KCk7XG4gICAgICAgICAgaWYgKGFjdGl2ZSkgc2V0VGV4dFZhbCh0ZXh0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgIGlmIChhY3RpdmUpIHNldEVycm9yKCfmlofmnKzor7vlj5blpLHotKXvvIzor7fngrnlh7vkuIvovb3mn6XnnIsnKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAoYWN0aXZlKSBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBmZXRjaEFuZFJlbmRlcigpO1xuICAgIHJldHVybiAoKSA9PiB7IGFjdGl2ZSA9IGZhbHNlOyB9O1xuICB9LCBbcGF0aCwgaXNXb3JkLCBpc0V4Y2VsLCBpc1RleHRdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkIHZhcigtLWdyYXktMTAwKScsIHBhZGRpbmdCb3R0b206IDE2LCBsYXN0Q2hpbGQ6IHsgYm9yZGVyQm90dG9tOiAnbm9uZScgfSB9fT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS1pdGVtXCIgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiA4LCBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmaWxlLWl0ZW0tbmFtZVwiIHN0eWxlPXt7IGZvbnRXZWlnaHQ6IDUwMCB9fT5cbiAgICAgICAgICDwn5OEIHtmaWxlLm9yaWdpbmFsX25hbWUgfHwgZmlsZS5maWxlX25hbWUgfHwgZmlsZS5uYW1lIHx8ICfpmYTku7YnfVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxhXG4gICAgICAgICAgaHJlZj17cGF0aH1cbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tc20gYnRuLW91dGxpbmVcIlxuICAgICAgICA+XG4gICAgICAgICAg5LiL6L29XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICB7LyogTG9hZGluZyAmIEVycm9yIFN0YXRlcyAqL31cbiAgICAgIHtsb2FkaW5nICYmIChcbiAgICAgICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiAxMiwgZm9udFNpemU6IDEzLCBjb2xvcjogJ3ZhcigtLWdyYXktNTAwKScsIGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogOCB9fT5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJsb2FkaW5nLXNwaW5uZXItc21cIj48L3NwYW4+IOato+WcqOa4suafk+mihOiniOS4rS4uLlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7ZXJyb3IgJiYgKFxuICAgICAgICA8ZGl2IHN0eWxlPXt7IHBhZGRpbmc6IDEwLCBmb250U2l6ZTogMTMsIGNvbG9yOiAndmFyKC0tcmVkLTUwMCknLCBiYWNrZ3JvdW5kOiAndmFyKC0tcmVkLTUwKScgfX0+XG4gICAgICAgICAg4pqg77iPIHtlcnJvcn1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICB7LyogUHJldmlldyBBcmVhICovfVxuICAgICAgeyFsb2FkaW5nICYmICFlcnJvciAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2lzSW1hZ2UgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLXByZXZpZXcgYW5pbWF0ZS1mYWRlSW5cIiBzdHlsZT17e1xuICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDEwLFxuICAgICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLWdyYXktNTApJyxcbiAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHZhcigtLWdyYXktMjAwKScsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJ3ZhcigtLXJhZGl1cy1tZCknLFxuICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIHNyYz17cGF0aH1cbiAgICAgICAgICAgICAgICBhbHQ9e2ZpbGUuZmlsZV9uYW1lfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1heEhlaWdodDogNDAwLCBib3JkZXJSYWRpdXM6IDQsIG9iamVjdEZpdDogJ2NvbnRhaW4nIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtpc1BkZiAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtcHJldmlldyBhbmltYXRlLWZhZGVJblwiIHN0eWxlPXt7XG4gICAgICAgICAgICAgIG1hcmdpblRvcDogMTAsXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tZ3JheS01MCknLFxuICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgdmFyKC0tZ3JheS0yMDApJyxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAndmFyKC0tcmFkaXVzLW1kKSdcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgICAgICAgc3JjPXtwYXRofVxuICAgICAgICAgICAgICAgIHRpdGxlPXtmaWxlLmZpbGVfbmFtZX1cbiAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6IDYwMCwgYm9yZGVyOiAnbm9uZScsIGJvcmRlclJhZGl1czogNCB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7aXNXb3JkICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS1wcmV2aWV3IGFuaW1hdGUtZmFkZUluXCIgc3R5bGU9e3tcbiAgICAgICAgICAgICAgbWFyZ2luVG9wOiAxMCxcbiAgICAgICAgICAgICAgcGFkZGluZzogJzIwcHggNDBweCcsXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCB2YXIoLS1ncmF5LTIwMCknLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICd2YXIoLS1yYWRpdXMtbWQpJyxcbiAgICAgICAgICAgICAgbWF4SGVpZ2h0OiA2MDAsXG4gICAgICAgICAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICdpbnNldCAwIDAgMTBweCByZ2JhKDAsMCwwLDAuMDUpJ1xuICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9IGNsYXNzTmFtZT1cImRvY3gtcmVuZGVyLWNvbnRhaW5lclwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtpc0V4Y2VsICYmIGV4Y2VsSHRtbCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtcHJldmlldyBhbmltYXRlLWZhZGVJblwiIHN0eWxlPXt7XG4gICAgICAgICAgICAgIG1hcmdpblRvcDogMTAsXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDE2LFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgdmFyKC0tZ3JheS0yMDApJyxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAndmFyKC0tcmFkaXVzLW1kKScsXG4gICAgICAgICAgICAgIG1heEhlaWdodDogNTAwLFxuICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICdpbnNldCAwIDAgMTBweCByZ2JhKDAsMCwwLDAuMDUpJ1xuICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgIDxkaXYgXG4gICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBleGNlbEh0bWwgfX0gXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZXhjZWwtdGFibGUtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7aXNUZXh0ICYmIHRleHRWYWwgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLXByZXZpZXcgYW5pbWF0ZS1mYWRlSW5cIiBzdHlsZT17e1xuICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDEwLFxuICAgICAgICAgICAgICBwYWRkaW5nOiAxNixcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3ZhcigtLWdyYXktNTApJyxcbiAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHZhcigtLWdyYXktMjAwKScsXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJ3ZhcigtLXJhZGl1cy1tZCknLFxuICAgICAgICAgICAgICBtYXhIZWlnaHQ6IDQwMCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bydcbiAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICA8cHJlIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdwcmUtd3JhcCcsXG4gICAgICAgICAgICAgICAgZm9udEZhbWlseTogJ21vbm9zcGFjZScsXG4gICAgICAgICAgICAgICAgZm9udFNpemU6IDEzLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tZ3JheS04MDApJyxcbiAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjZcbiAgICAgICAgICAgICAgfX0+e3RleHRWYWx9PC9wcmU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHshaXNJbWFnZSAmJiAhaXNQZGYgJiYgIWlzV29yZCAmJiAhaXNFeGNlbCAmJiAhaXNUZXh0ICYmIChcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZm9udFNpemU6IDEyLCBjb2xvcjogJ3ZhcigtLWdyYXktNDAwKScsIG1hcmdpblRvcDogNCB9fT5cbiAgICAgICAgICAgICAg5o+Q56S677ya5q2k5qC85byP5paH5Lu25pqC5LiN5pSv5oyB55u05o6l6aKE6KeI77yM6K+354K55Ye75LiL6L295p+l55yL44CCXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApfVxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VDYWxsYmFjayIsInVzZVJvdXRlciIsInVzZVBhcmFtcyIsInVzZVVzZXIiLCJhdXRoRmV0Y2giLCJTVEFUVVNfTkFNRVMiLCJST0xFX05BTUVTIiwiQ29udHJhY3REZXRhaWxQYWdlIiwicm91dGVyIiwicGFyYW1zIiwidXNlciIsImNvbnRyYWN0SWQiLCJpZCIsImNvbnRyYWN0Iiwic2V0Q29udHJhY3QiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsInRvYXN0Iiwic2V0VG9hc3QiLCJvcGluaW9uIiwic2V0T3BpbmlvbiIsImFwcHJvdmluZyIsInNldEFwcHJvdmluZyIsImVkaXRpbmciLCJzZXRFZGl0aW5nIiwiZWRpdEZvcm0iLCJzZXRFZGl0Rm9ybSIsImVkaXRGaWxlcyIsInNldEVkaXRGaWxlcyIsImVkaXREcmFnZ2luZyIsInNldEVkaXREcmFnZ2luZyIsImVkaXRGaWxlSW5wdXRSZWYiLCJyZXN1Ym1pdHRpbmciLCJzZXRSZXN1Ym1pdHRpbmciLCJwYXJ0bmVycyIsInNldFBhcnRuZXJzIiwic3VwZXJ2aXNvcnMiLCJzZXRTdXBlcnZpc29ycyIsInBhcnRuZXJTZWFyY2giLCJzZXRQYXJ0bmVyU2VhcmNoIiwic2VsZWN0ZWRQYXJ0bmVyTmFtZSIsInNldFNlbGVjdGVkUGFydG5lck5hbWUiLCJwYXJ0bmVyRHJvcGRvd25PcGVuIiwic2V0UGFydG5lckRyb3Bkb3duT3BlbiIsInBhcnRuZXJSZWYiLCJzaG93VG9hc3QiLCJtZXNzYWdlIiwidHlwZSIsInNldFRpbWVvdXQiLCJmZXRjaENvbnRyYWN0IiwicmVzIiwiZGF0YSIsImpzb24iLCJvayIsImVycm9yIiwiZXJyIiwidGhlbiIsInIiLCJjYXRjaCIsImxpc3QiLCJmaWx0ZXIiLCJ1Iiwicm9sZSIsInN0YXR1cyIsImhhbmRsZUNsaWNrIiwiZSIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJmb3JtYXREYXRlIiwiZGF0ZVN0ciIsImQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwieWVhciIsIm1vbnRoIiwiZGF5IiwiZm9ybWF0RGF0ZVRpbWUiLCJ0b0xvY2FsZVN0cmluZyIsImhvdXIiLCJtaW51dGUiLCJmb3JtYXRDdXJyZW5jeSIsImFtb3VudCIsInVuZGVmaW5lZCIsIk51bWJlciIsInN0eWxlIiwiY3VycmVuY3kiLCJjYW5BcHByb3ZlIiwiZGVwYXJ0bWVudF9pZCIsInVzZXJEZXB0SWQiLCJjYW5SZXN1Ym1pdCIsImNyZWF0b3JfaWQiLCJoYW5kbGVBcHByb3ZhbCIsImFwcHJvdmVkIiwibWV0aG9kIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFydEVkaXRpbmciLCJzdGFydCIsImVuZCIsImNvbnRyYWN0X3llYXJzIiwiaW5jbHVkZXMiLCJwYXJ0cyIsInNwbGl0IiwicHJvamVjdF9uYW1lIiwicHJvamVjdF9sZWFkZXIiLCJzaWduX2RhdGUiLCJzdWJzdHJpbmciLCJwYXJ0bmVyX2lkIiwiY29udHJhY3RfY29udGVudCIsImNvb3BlcmF0ZV9zdGFydCIsImNvb3BlcmF0ZV9lbmQiLCJjb250cmFjdF9hbW91bnQiLCJlc3RpbWF0ZWRfcHJvZml0IiwicGF5bWVudF90eXBlIiwicGFydG5lcl9uYW1lIiwiaGFuZGxlRWRpdENoYW5nZSIsImZpZWxkIiwidmFsdWUiLCJwcmV2IiwidXBkYXRlZCIsImhhbmRsZVJlc3VibWl0IiwidHJpbSIsImZpbGUiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiZWRpdEZpbHRlcmVkUGFydG5lcnMiLCJwIiwibmFtZSIsInRvTG93ZXJDYXNlIiwic2VsZWN0UGFydG5lciIsInBhcnRuZXIiLCJoYW5kbGVFZGl0RmlsZXMiLCJuZXdGaWxlcyIsIkFycmF5IiwiZnJvbSIsImZvcm1hdEZpbGVTaXplIiwiYnl0ZXMiLCJ0b0ZpeGVkIiwiZ2V0U3RlcFN0YXRlIiwic3RlcEluZGV4Iiwic3VwZXJ2aXNvcl9hcHByb3ZlZCIsImZpbmFuY2VfYXBwcm92ZWQiLCJzZWNyZXRhcnlfYXBwcm92ZWQiLCJnZXRMaW5lU3RhdGUiLCJjdXJyZW50U3RhdGUiLCJuZXh0U3RhdGUiLCJnZXRTdGVwSWNvbiIsInN0YXRlIiwidGltZWxpbmVTdGVwcyIsImxhYmVsIiwiYXBwcm92ZXIiLCJjcmVhdG9yX25hbWUiLCJ0aW1lIiwiY3JlYXRlZF9hdCIsInN1cGVydmlzb3JfbmFtZSIsInN1cGVydmlzb3JfdGltZSIsImZpbmFuY2VfbmFtZSIsImZpbmFuY2VfdGltZSIsInNlY3JldGFyeV9uYW1lIiwic2VjcmV0YXJ5X3RpbWUiLCJkaXYiLCJjbGFzc05hbWUiLCJidXR0b24iLCJtYXJnaW5Ub3AiLCJvbkNsaWNrIiwicHVzaCIsImgxIiwiY29udHJhY3Rfbm8iLCJkaXNwbGF5IiwiZ2FwIiwic3BhbiIsIm1hcmdpbkJvdHRvbSIsImgzIiwibWFwIiwic3RlcCIsImluZGV4IiwiYWxpZ25JdGVtcyIsImJyIiwiY29sb3IiLCJsZW5ndGgiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJkZXBhcnRtZW50X25hbWUiLCJ3aGl0ZVNwYWNlIiwibGluZUhlaWdodCIsIm9waW5pb25zIiwib3AiLCJpZHgiLCJwYWRkaW5nIiwiYmFja2dyb3VuZCIsImJvcmRlclJhZGl1cyIsImJvcmRlckxlZnQiLCJqdXN0aWZ5Q29udGVudCIsImFwcHJvdmVyX25hbWUiLCJhdHRhY2htZW50cyIsImZsZXhEaXJlY3Rpb24iLCJBdHRhY2htZW50UHJldmlld0l0ZW0iLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsInRleHRhcmVhIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsInJvd3MiLCJkaXNhYmxlZCIsInRleHRBbGlnbiIsImdyaWRUZW1wbGF0ZUNvbHVtbnMiLCJpbnB1dCIsInNlbGVjdCIsIm9wdGlvbiIsInMiLCJyZWFsX25hbWUiLCJyZWYiLCJib3JkZXIiLCJvbkZvY3VzIiwiYSIsImhyZWYiLCJwcmV2ZW50RGVmYXVsdCIsImdyaWRDb2x1bW4iLCJtYXhXaWR0aCIsIm1pbiIsImN1cnNvciIsImNoZWNrZWQiLCJhY2NlbnRDb2xvciIsIm9uRHJhZ092ZXIiLCJvbkRyYWdMZWF2ZSIsIm9uRHJvcCIsImRhdGFUcmFuc2ZlciIsImZpbGVzIiwiY2xpY2siLCJtdWx0aXBsZSIsInNpemUiLCJfIiwiaSIsIm9yaWdpbmFsUGF0aCIsImZpbGVfcGF0aCIsInBhdGgiLCJ1cmwiLCJleHQiLCJwb3AiLCJzdGFydHNXaXRoIiwiZmlsZU5hbWUiLCJyZXBsYWNlIiwiaXNJbWFnZSIsImlzUGRmIiwiaXNXb3JkIiwiaXNFeGNlbCIsImlzVGV4dCIsInNldEVycm9yIiwidGV4dFZhbCIsInNldFRleHRWYWwiLCJleGNlbEh0bWwiLCJzZXRFeGNlbEh0bWwiLCJjb250YWluZXJSZWYiLCJsb2FkU2NyaXB0Iiwic3JjIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJxdWVyeVNlbGVjdG9yIiwic2NyaXB0IiwiY3JlYXRlRWxlbWVudCIsIm9ubG9hZCIsIm9uZXJyb3IiLCJhcHBlbmRDaGlsZCIsImFjdGl2ZSIsImZldGNoQW5kUmVuZGVyIiwiZmV0Y2giLCJFcnJvciIsImJsb2IiLCJ3aW5kb3ciLCJkb2N4IiwiaW5uZXJIVE1MIiwicmVuZGVyQXN5bmMiLCJpbldyYXBwZXIiLCJjb25zb2xlIiwiYXJyYXlCdWZmZXIiLCJYTFNYIiwid29ya2Jvb2siLCJyZWFkIiwiVWludDhBcnJheSIsInNoZWV0TmFtZSIsIlNoZWV0TmFtZXMiLCJzaGVldCIsIlNoZWV0cyIsImh0bWwiLCJ1dGlscyIsInNoZWV0X3RvX2h0bWwiLCJ0ZXh0IiwiYm9yZGVyQm90dG9tIiwicGFkZGluZ0JvdHRvbSIsImxhc3RDaGlsZCIsIm9yaWdpbmFsX25hbWUiLCJmaWxlX25hbWUiLCJyZWwiLCJpbWciLCJhbHQiLCJtYXhIZWlnaHQiLCJvYmplY3RGaXQiLCJpZnJhbWUiLCJ0aXRsZSIsIndpZHRoIiwiaGVpZ2h0Iiwib3ZlcmZsb3dZIiwiYm94U2hhZG93Iiwib3ZlcmZsb3ciLCJvdmVyZmxvd1giLCJwcmUiLCJtYXJnaW4iLCJmb250RmFtaWx5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/app/dashboard/contracts/[id]/page.js\n");
/***/ }),
/***/ "(ssr)/./src/app/dashboard/layout.js":
/*!*************************************!*\
!*** ./src/app/dashboard/layout.js ***!
\*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DashboardLayout),\n/* harmony export */ useUser: () => (/* binding */ useUser)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _lib_auth_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/auth-client */ \"(ssr)/./src/lib/auth-client.js\");\n/* harmony import */ var _dashboard_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dashboard.css */ \"(ssr)/./src/app/dashboard/dashboard.css\");\n/* __next_internal_client_entry_do_not_use__ useUser,default auto */ \n\n\n\n\nconst UserContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null);\nconst useUser = ()=>(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(UserContext);\nconst ALL_MENUS = [\n {\n key: \"dashboard\",\n label: \"工作台\",\n icon: \"\\uD83D\\uDCCA\",\n path: \"/dashboard\"\n },\n {\n key: \"contracts\",\n label: \"合同流转\",\n icon: \"\\uD83D\\uDCCB\",\n path: \"/dashboard/contracts\"\n },\n {\n key: \"partners\",\n label: \"合作单位\",\n icon: \"\\uD83C\\uDFE2\",\n path: \"/dashboard/partners\"\n },\n {\n key: \"users\",\n label: \"用户管理\",\n icon: \"\\uD83D\\uDC65\",\n path: \"/dashboard/users\"\n },\n {\n key: \"departments\",\n label: \"部门管理\",\n icon: \"\\uD83C\\uDFDB\",\n path: \"/dashboard/departments\"\n },\n {\n key: \"settings\",\n label: \"系统配置\",\n icon: \"⚙️\",\n path: \"/dashboard/settings\"\n },\n {\n key: \"permissions\",\n label: \"权限配置\",\n icon: \"\\uD83D\\uDD10\",\n path: \"/dashboard/permissions\"\n }\n];\nfunction DashboardLayout({ children }) {\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n const [user, setUser] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [permissions, setPermissions] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [collapsed, setCollapsed] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const token = (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.getToken)();\n if (!token) {\n router.replace(\"/login\");\n return;\n }\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.authFetch)(\"/api/auth/me\").then((r)=>r.json()).then((data)=>{\n if (data.error) {\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.clearToken)();\n router.replace(\"/login\");\n return;\n }\n setUser(data.user);\n setPermissions(data.permissions || []);\n setLoading(false);\n }).catch(()=>{\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.clearToken)();\n router.replace(\"/login\");\n });\n }, [\n router\n ]);\n const handleLogout = ()=>{\n (0,_lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.clearToken)();\n router.replace(\"/login\");\n };\n const visibleMenus = ALL_MENUS.filter((menu)=>{\n if (!user) return false;\n if (user.role === \"admin\") return true;\n const perm = permissions.find((p)=>p.menu_key === menu.key);\n return perm ? perm.visible === 1 : false;\n });\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n style: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n minHeight: \"100vh\"\n },\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/layout.js\",\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 66,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(UserContext.Provider, {\n value: user,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"dashboard-layout\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: `sidebar ${collapsed ? \"collapsed\" : \"\"}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar-header\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar-logo\",\n children: \"\\uD83D\\uDCC4\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 77,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"sidebar-brand\",\n children: \"合同审批系统\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 78,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 76,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"sidebar-nav\",\n children: visibleMenus.map((menu)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: menu.path,\n className: `nav-item ${pathname === menu.path || menu.key !== \"dashboard\" && pathname.startsWith(menu.path) ? \"active\" : \"\"}`,\n onClick: (e)=>{\n e.preventDefault();\n router.push(menu.path);\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"nav-item-icon\",\n children: menu.icon\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 88,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"nav-item-text\",\n children: menu.label\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 89,\n columnNumber: 17\n }, this)\n ]\n }, menu.key, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 82,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 80,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"sidebar-footer\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"sidebar-toggle\",\n onClick: ()=>setCollapsed(!collapsed),\n children: collapsed ? \"→\" : \"← 收起菜单\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 94,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 93,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 75,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `main-content ${collapsed ? \"collapsed\" : \"\"}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"top-header\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"header-left\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"header-title\",\n children: visibleMenus.find((m)=>pathname === m.path || m.key !== \"dashboard\" && pathname.startsWith(m.path))?.label || \"工作台\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 103,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 102,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"header-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"user-info\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"user-avatar\",\n children: user?.real_name?.[0]\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 109,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"user-name\",\n children: user?.real_name\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 111,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"user-role\",\n children: _lib_auth_client__WEBPACK_IMPORTED_MODULE_3__.ROLE_NAMES[user?.role] || user?.role\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 112,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 110,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 108,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: \"logout-btn\",\n onClick: handleLogout,\n children: \"退出登录\"\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 115,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 107,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 101,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"page-content\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 118,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 100,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 74,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js\",\n lineNumber: 73,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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MEIsQ0FBQUEsSUFBS2pELGFBQWFpRCxFQUFFckQsSUFBSSxJQUFLcUQsRUFBRXhELEdBQUcsS0FBSyxlQUFlTyxTQUFTMEMsVUFBVSxDQUFDTyxFQUFFckQsSUFBSSxJQUFLRixTQUFTOzs7Ozs7Ozs7Ozs4Q0FHckgsOERBQUNpQztvQ0FBSU0sV0FBVTs7c0RBQ2IsOERBQUNOOzRDQUFJTSxXQUFVOzs4REFDYiw4REFBQ047b0RBQUlNLFdBQVU7OERBQWVoQyxNQUFNaUQsV0FBVyxDQUFDLEVBQUU7Ozs7Ozs4REFDbEQsOERBQUN2Qjs7c0VBQ0MsOERBQUNBOzREQUFJTSxXQUFVO3NFQUFhaEMsTUFBTWlEOzs7Ozs7c0VBQ2xDLDhEQUFDYjs0REFBS0osV0FBVTtzRUFBYTVDLHdEQUFVLENBQUNZLE1BQU1vQixLQUFLLElBQUlwQixNQUFNb0I7Ozs7Ozs7Ozs7Ozs7Ozs7OztzREFHakUsOERBQUMwQjs0Q0FBT2QsV0FBVTs0Q0FBYVUsU0FBUzFCO3NEQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBRzFELDhEQUFDa0M7NEJBQUtsQixXQUFVO3NDQUNibkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9jb250cmFjdC1hcHByb3ZhbC1zeXN0ZW0vLi9zcmMvYXBwL2Rhc2hib2FyZC9sYXlvdXQuanM/ZjcxOSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlUm91dGVyLCB1c2VQYXRobmFtZSB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBnZXRUb2tlbiwgY2xlYXJUb2tlbiwgZ2V0VXNlciwgYXV0aEZldGNoLCBST0xFX05BTUVTIH0gZnJvbSAnQC9saWIvYXV0aC1jbGllbnQnO1xuaW1wb3J0ICcuL2Rhc2hib2FyZC5jc3MnO1xuXG5jb25zdCBVc2VyQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQobnVsbCk7XG5leHBvcnQgY29uc3QgdXNlVXNlciA9ICgpID0+IHVzZUNvbnRleHQoVXNlckNvbnRleHQpO1xuXG5jb25zdCBBTExfTUVOVVMgPSBbXG4gIHsga2V5OiAnZGFzaGJvYXJkJywgbGFiZWw6ICflt6XkvZzlj7AnLCBpY29uOiAn8J+TiicsIHBhdGg6ICcvZGFzaGJvYXJkJyB9LFxuICB7IGtleTogJ2NvbnRyYWN0cycsIGxhYmVsOiAn5ZCI5ZCM5rWB6L2sJywgaWNvbjogJ/Cfk4snLCBwYXRoOiAnL2Rhc2hib2FyZC9jb250cmFjdHMnIH0sXG4gIHsga2V5OiAncGFydG5lcnMnLCBsYWJlbDogJ+WQiOS9nOWNleS9jScsIGljb246ICfwn4+iJywgcGF0aDogJy9kYXNoYm9hcmQvcGFydG5lcnMnIH0sXG4gIHsga2V5OiAndXNlcnMnLCBsYWJlbDogJ+eUqOaIt+euoeeQhicsIGljb246ICfwn5GlJywgcGF0aDogJy9kYXNoYm9hcmQvdXNlcnMnIH0sXG4gIHsga2V5OiAnZGVwYXJ0bWVudHMnLCBsYWJlbDogJ+mDqOmXqOeuoeeQhicsIGljb246ICfwn4+b77iPJywgcGF0aDogJy9kYXNoYm9hcmQvZGVwYXJ0bWVudHMnIH0sXG4gIHsga2V5OiAnc2V0dGluZ3MnLCBsYWJlbDogJ+ezu+e7n+mFjee9ricsIGljb246ICfimpnvuI8nLCBwYXRoOiAnL2Rhc2hib2FyZC9zZXR0aW5ncycgfSxcbiAgeyBrZXk6ICdwZXJtaXNzaW9ucycsIGxhYmVsOiAn5p2D6ZmQ6YWN572uJywgaWNvbjogJ/CflJAnLCBwYXRoOiAnL2Rhc2hib2FyZC9wZXJtaXNzaW9ucycgfSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERhc2hib2FyZExheW91dCh7IGNoaWxkcmVuIH0pIHtcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKTtcbiAgY29uc3QgW3VzZXIsIHNldFVzZXJdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtwZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRva2VuID0gZ2V0VG9rZW4oKTtcbiAgICBpZiAoIXRva2VuKSB7XG4gICAgICByb3V0ZXIucmVwbGFjZSgnL2xvZ2luJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF1dGhGZXRjaCgnL2FwaS9hdXRoL21lJylcbiAgICAgIC50aGVuKHIgPT4gci5qc29uKCkpXG4gICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgICAgICBjbGVhclRva2VuKCk7XG4gICAgICAgICAgcm91dGVyLnJlcGxhY2UoJy9sb2dpbicpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRVc2VyKGRhdGEudXNlcik7XG4gICAgICAgIHNldFBlcm1pc3Npb25zKGRhdGEucGVybWlzc2lvbnMgfHwgW10pO1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICBjbGVhclRva2VuKCk7XG4gICAgICAgIHJvdXRlci5yZXBsYWNlKCcvbG9naW4nKTtcbiAgICAgIH0pO1xuICB9LCBbcm91dGVyXSk7XG5cbiAgY29uc3QgaGFuZGxlTG9nb3V0ID0gKCkgPT4ge1xuICAgIGNsZWFyVG9rZW4oKTtcbiAgICByb3V0ZXIucmVwbGFjZSgnL2xvZ2luJyk7XG4gIH07XG5cbiAgY29uc3QgdmlzaWJsZU1lbnVzID0gQUxMX01FTlVTLmZpbHRlcihtZW51ID0+IHtcbiAgICBpZiAoIXVzZXIpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodXNlci5yb2xlID09PSAnYWRtaW4nKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBwZXJtID0gcGVybWlzc2lvbnMuZmluZChwID0+IHAubWVudV9rZXkgPT09IG1lbnUua2V5KTtcbiAgICByZXR1cm4gcGVybSA/IHBlcm0udmlzaWJsZSA9PT0gMSA6IGZhbHNlO1xuICB9KTtcblxuICBpZiAobG9hZGluZykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgbWluSGVpZ2h0OiAnMTAwdmgnIH19PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvYWRpbmctc3Bpbm5lclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFVzZXJDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt1c2VyfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGFzaGJvYXJkLWxheW91dFwiPlxuICAgICAgICA8YXNpZGUgY2xhc3NOYW1lPXtgc2lkZWJhciAke2NvbGxhcHNlZCA/ICdjb2xsYXBzZWQnIDogJyd9YH0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyLWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWRlYmFyLWxvZ29cIj7wn5OEPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzaWRlYmFyLWJyYW5kXCI+5ZCI5ZCM5a6h5om557O757ufPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwic2lkZWJhci1uYXZcIj5cbiAgICAgICAgICAgIHt2aXNpYmxlTWVudXMubWFwKG1lbnUgPT4gKFxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGtleT17bWVudS5rZXl9XG4gICAgICAgICAgICAgICAgaHJlZj17bWVudS5wYXRofVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YG5hdi1pdGVtICR7cGF0aG5hbWUgPT09IG1lbnUucGF0aCB8fCAobWVudS5rZXkgIT09ICdkYXNoYm9hcmQnICYmIHBhdGhuYW1lLnN0YXJ0c1dpdGgobWVudS5wYXRoKSkgPyAnYWN0aXZlJyA6ICcnfWB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyByb3V0ZXIucHVzaChtZW51LnBhdGgpOyB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibmF2LWl0ZW0taWNvblwiPnttZW51Lmljb259PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5hdi1pdGVtLXRleHRcIj57bWVudS5sYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lkZWJhci1mb290ZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwic2lkZWJhci10b2dnbGVcIiBvbkNsaWNrPXsoKSA9PiBzZXRDb2xsYXBzZWQoIWNvbGxhcHNlZCl9PlxuICAgICAgICAgICAgICB7Y29sbGFwc2VkID8gJ+KGkicgOiAn4oaQIOaUtui1t+iPnOWNlSd9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hc2lkZT5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YG1haW4tY29udGVudCAke2NvbGxhcHNlZCA/ICdjb2xsYXBzZWQnIDogJyd9YH0+XG4gICAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJ0b3AtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhlYWRlci1sZWZ0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImhlYWRlci10aXRsZVwiPlxuICAgICAgICAgICAgICAgIHt2aXNpYmxlTWVudXMuZmluZChtID0+IHBhdGhuYW1lID09PSBtLnBhdGggfHwgKG0ua2V5ICE9PSAnZGFzaGJvYXJkJyAmJiBwYXRobmFtZS5zdGFydHNXaXRoKG0ucGF0aCkpKT8ubGFiZWwgfHwgJ+W3peS9nOWPsCd9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXItcmlnaHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1c2VyLWluZm9cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVzZXItYXZhdGFyXCI+e3VzZXI/LnJlYWxfbmFtZT8uWzBdfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVzZXItbmFtZVwiPnt1c2VyPy5yZWFsX25hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ1c2VyLXJvbGVcIj57Uk9MRV9OQU1FU1t1c2VyPy5yb2xlXSB8fCB1c2VyPy5yb2xlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwibG9nb3V0LWJ0blwiIG9uQ2xpY2s9e2hhbmRsZUxvZ291dH0+6YCA5Ye655m75b2VPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJwYWdlLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L21haW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9Vc2VyQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlUm91dGVyIiwidXNlUGF0aG5hbWUiLCJnZXRUb2tlbiIsImNsZWFyVG9rZW4iLCJnZXRVc2VyIiwiYXV0aEZldGNoIiwiUk9MRV9OQU1FUyIsIlVzZXJDb250ZXh0IiwidXNlVXNlciIsIkFMTF9NRU5VUyIsImtleSIsImxhYmVsIiwiaWNvbiIsInBhdGgiLCJEYXNoYm9hcmRMYXlvdXQiLCJjaGlsZHJlbiIsInJvdXRlciIsInBhdGhuYW1lIiwidXNlciIsInNldFVzZXIiLCJwZXJtaXNzaW9ucyIsInNldFBlcm1pc3Npb25zIiwiY29sbGFwc2VkIiwic2V0Q29sbGFwc2VkIiwibG9hZGluZyIsInNldExvYWRpbmciLCJ0b2tlbiIsInJlcGxhY2UiLCJ0aGVuIiwiciIsImpzb24iLCJkYXRhIiwiZXJyb3IiLCJjYXRjaCIsImhhbmRsZUxvZ291dCIsInZpc2libGVNZW51cyIsImZpbHRlciIsIm1lbnUiLCJyb2xlIiwicGVybSIsImZpbmQiLCJwIiwibWVudV9rZXkiLCJ2aXNpYmxlIiwiZGl2Iiwic3R5bGUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwibWluSGVpZ2h0IiwiY2xhc3NOYW1lIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImFzaWRlIiwic3BhbiIsIm5hdiIsIm1hcCIsImEiLCJocmVmIiwic3RhcnRzV2l0aCIsIm9uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJwdXNoIiwiYnV0dG9uIiwiaGVhZGVyIiwibSIsInJlYWxfbmFtZSIsIm1haW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/app/dashboard/layout.js\n");
/***/ }),
/***/ "(ssr)/./src/lib/auth-client.js":
/*!********************************!*\
!*** ./src/lib/auth-client.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ROLE_NAMES: () => (/* binding */ ROLE_NAMES),\n/* harmony export */ STATUS_COLORS: () => (/* binding */ STATUS_COLORS),\n/* harmony export */ STATUS_NAMES: () => (/* binding */ STATUS_NAMES),\n/* harmony export */ authFetch: () => (/* binding */ authFetch),\n/* harmony export */ clearToken: () => (/* binding */ clearToken),\n/* harmony export */ getToken: () => (/* binding */ getToken),\n/* harmony export */ getUser: () => (/* binding */ getUser),\n/* harmony export */ setToken: () => (/* binding */ setToken),\n/* harmony export */ setUser: () => (/* binding */ setUser)\n/* harmony export */ });\n// 客户端认证工具函数\n// 获取存储的 Token\nfunction getToken() {\n if (true) return null;\n return localStorage.getItem(\"token\");\n}\n// 设置 Token\nfunction setToken(token) {\n localStorage.setItem(\"token\", token);\n}\n// 清除 Token\nfunction clearToken() {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"user\");\n}\n// 获取存储的用户信息\nfunction getUser() {\n if (true) return null;\n const user = localStorage.getItem(\"user\");\n return user ? JSON.parse(user) : null;\n}\n// 设置用户信息\nfunction setUser(user) {\n localStorage.setItem(\"user\", JSON.stringify(user));\n}\n// 带认证的 fetch 请求\nasync function authFetch(url, options = {}) {\n const token = getToken();\n const headers = {\n ...options.headers\n };\n if (token) {\n headers[\"Authorization\"] = `Bearer ${token}`;\n }\n // 如果不是 FormData设置 Content-Type\n if (!(options.body instanceof FormData)) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n const response = await fetch(url, {\n ...options,\n headers\n });\n // 401 未授权,跳转登录\n if (response.status === 401) {\n clearToken();\n if (false) {}\n throw new Error(\"未登录或登录已过期\");\n }\n return response;\n}\n// 角色中文名称映射\nconst ROLE_NAMES = {\n admin: \"系统管理员\",\n employee: \"员工\",\n supervisor: \"部门主管\",\n finance: \"财务部\",\n secretary: \"秘书长\"\n};\n// 状态中文名称映射\nconst STATUS_NAMES = {\n draft: \"草稿\",\n pending_supervisor: \"待初审\",\n pending_finance: \"待财务审核\",\n pending_secretary: \"待终审\",\n approved: \"已通过\",\n rejected: \"已驳回\"\n};\n// 状态颜色映射\nconst STATUS_COLORS = {\n draft: \"#6b7280\",\n pending_supervisor: \"#3b82f6\",\n pending_finance: \"#f59e0b\",\n pending_secretary: \"#8b5cf6\",\n approved: \"#10b981\",\n rejected: \"#ef4444\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL2F1dGgtY2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLFlBQVk7QUFFWixjQUFjO0FBQ1AsU0FBU0E7SUFDZCxJQUFJLElBQWtCLEVBQWEsT0FBTztJQUMxQyxPQUFPQyxhQUFhQyxPQUFPLENBQUM7QUFDOUI7QUFFQSxXQUFXO0FBQ0osU0FBU0MsU0FBU0MsS0FBSztJQUM1QkgsYUFBYUksT0FBTyxDQUFDLFNBQVNEO0FBQ2hDO0FBRUEsV0FBVztBQUNKLFNBQVNFO0lBQ2RMLGFBQWFNLFVBQVUsQ0FBQztJQUN4Qk4sYUFBYU0sVUFBVSxDQUFDO0FBQzFCO0FBRUEsWUFBWTtBQUNMLFNBQVNDO0lBQ2QsSUFBSSxJQUFrQixFQUFhLE9BQU87SUFDMUMsTUFBTUMsT0FBT1IsYUFBYUMsT0FBTyxDQUFDO0lBQ2xDLE9BQU9PLE9BQU9DLEtBQUtDLEtBQUssQ0FBQ0YsUUFBUTtBQUNuQztBQUVBLFNBQVM7QUFDRixTQUFTRyxRQUFRSCxJQUFJO0lBQzFCUixhQUFhSSxPQUFPLENBQUMsUUFBUUssS0FBS0csU0FBUyxDQUFDSjtBQUM5QztBQUVBLGdCQUFnQjtBQUNULGVBQWVLLFVBQVVDLEdBQUcsRUFBRUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsTUFBTVosUUFBUUo7SUFDZCxNQUFNaUIsVUFBVTtRQUNkLEdBQUdELFFBQVFDLE9BQU87SUFDcEI7SUFFQSxJQUFJYixPQUFPO1FBQ1RhLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLE9BQU8sRUFBRWIsTUFBTSxDQUFDO0lBQzlDO0lBRUEsZ0NBQWdDO0lBQ2hDLElBQUksQ0FBRVksQ0FBQUEsUUFBUUUsSUFBSSxZQUFZQyxRQUFPLEdBQUk7UUFDdkNGLE9BQU8sQ0FBQyxlQUFlLEdBQUc7SUFDNUI7SUFFQSxNQUFNRyxXQUFXLE1BQU1DLE1BQU1OLEtBQUs7UUFDaEMsR0FBR0MsT0FBTztRQUNWQztJQUNGO0lBRUEsZUFBZTtJQUNmLElBQUlHLFNBQVNFLE1BQU0sS0FBSyxLQUFLO1FBQzNCaEI7UUFDQSxJQUFJLEtBQWtCLEVBQWEsRUFFbEM7UUFDRCxNQUFNLElBQUlvQixNQUFNO0lBQ2xCO0lBRUEsT0FBT047QUFDVDtBQUVBLFdBQVc7QUFDSixNQUFNTyxhQUFhO0lBQ3hCQyxPQUFPO0lBQ1BDLFVBQVU7SUFDVkMsWUFBWTtJQUNaQyxTQUFTO0lBQ1RDLFdBQVc7QUFDYixFQUFFO0FBRUYsV0FBVztBQUNKLE1BQU1DLGVBQWU7SUFDMUJDLE9BQU87SUFDUEMsb0JBQW9CO0lBQ3BCQyxpQkFBaUI7SUFDakJDLG1CQUFtQjtJQUNuQkMsVUFBVTtJQUNWQyxVQUFVO0FBQ1osRUFBRTtBQUVGLFNBQVM7QUFDRixNQUFNQyxnQkFBZ0I7SUFDM0JOLE9BQU87SUFDUEMsb0JBQW9CO0lBQ3BCQyxpQkFBaUI7SUFDakJDLG1CQUFtQjtJQUNuQkMsVUFBVTtJQUNWQyxVQUFVO0FBQ1osRUFBRSIsInNvdXJjZXMiOlsid2VicGFjazovL2NvbnRyYWN0LWFwcHJvdmFsLXN5c3RlbS8uL3NyYy9saWIvYXV0aC1jbGllbnQuanM/N2VjZSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyDlrqLmiLfnq6/orqTor4Hlt6Xlhbflh73mlbBcblxuLy8g6I635Y+W5a2Y5YKo55qEIFRva2VuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW4oKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGw7XG4gIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndG9rZW4nKTtcbn1cblxuLy8g6K6+572uIFRva2VuXG5leHBvcnQgZnVuY3Rpb24gc2V0VG9rZW4odG9rZW4pIHtcbiAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Rva2VuJywgdG9rZW4pO1xufVxuXG4vLyDmuIXpmaQgVG9rZW5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclRva2VuKCkge1xuICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG9rZW4nKTtcbiAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3VzZXInKTtcbn1cblxuLy8g6I635Y+W5a2Y5YKo55qE55So5oi35L+h5oGvXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlcigpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gbnVsbDtcbiAgY29uc3QgdXNlciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyJyk7XG4gIHJldHVybiB1c2VyID8gSlNPTi5wYXJzZSh1c2VyKSA6IG51bGw7XG59XG5cbi8vIOiuvue9rueUqOaIt+S/oeaBr1xuZXhwb3J0IGZ1bmN0aW9uIHNldFVzZXIodXNlcikge1xuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlcicsIEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcbn1cblxuLy8g5bim6K6k6K+B55qEIGZldGNoIOivt+axglxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGF1dGhGZXRjaCh1cmwsIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCB0b2tlbiA9IGdldFRva2VuKCk7XG4gIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgLi4ub3B0aW9ucy5oZWFkZXJzLFxuICB9O1xuICBcbiAgaWYgKHRva2VuKSB7XG4gICAgaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gYEJlYXJlciAke3Rva2VufWA7XG4gIH1cbiAgXG4gIC8vIOWmguaenOS4jeaYryBGb3JtRGF0Ye+8jOiuvue9riBDb250ZW50LVR5cGVcbiAgaWYgKCEob3B0aW9ucy5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpKSB7XG4gICAgaGVhZGVyc1snQ29udGVudC1UeXBlJ10gPSAnYXBwbGljYXRpb24vanNvbic7XG4gIH1cblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgaGVhZGVycyxcbiAgfSk7XG5cbiAgLy8gNDAxIOacquaOiOadg++8jOi3s+i9rOeZu+W9lVxuICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpIHtcbiAgICBjbGVhclRva2VuKCk7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbG9naW4nO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ+acqueZu+W9leaIlueZu+W9leW3sui/h+acnycpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG4vLyDop5LoibLkuK3mloflkI3np7DmmKDlsIRcbmV4cG9ydCBjb25zdCBST0xFX05BTUVTID0ge1xuICBhZG1pbjogJ+ezu+e7n+euoeeQhuWRmCcsXG4gIGVtcGxveWVlOiAn5ZGY5belJyxcbiAgc3VwZXJ2aXNvcjogJ+mDqOmXqOS4u+euoScsXG4gIGZpbmFuY2U6ICfotKLliqHpg6gnLFxuICBzZWNyZXRhcnk6ICfnp5jkuabplb8nLFxufTtcblxuLy8g54q25oCB5Lit5paH5ZCN56ew5pig5bCEXG5leHBvcnQgY29uc3QgU1RBVFVTX05BTUVTID0ge1xuICBkcmFmdDogJ+iNieeovycsXG4gIHBlbmRpbmdfc3VwZXJ2aXNvcjogJ+W+heWIneWuoScsXG4gIHBlbmRpbmdfZmluYW5jZTogJ+W+hei0ouWKoeWuoeaguCcsXG4gIHBlbmRpbmdfc2VjcmV0YXJ5OiAn5b6F57uI5a6hJyxcbiAgYXBwcm92ZWQ6ICflt7LpgJrov4cnLFxuICByZWplY3RlZDogJ+W3sumps+WbnicsXG59O1xuXG4vLyDnirbmgIHpopzoibLmmKDlsIRcbmV4cG9ydCBjb25zdCBTVEFUVVNfQ09MT1JTID0ge1xuICBkcmFmdDogJyM2YjcyODAnLFxuICBwZW5kaW5nX3N1cGVydmlzb3I6ICcjM2I4MmY2JyxcbiAgcGVuZGluZ19maW5hbmNlOiAnI2Y1OWUwYicsXG4gIHBlbmRpbmdfc2VjcmV0YXJ5OiAnIzhiNWNmNicsXG4gIGFwcHJvdmVkOiAnIzEwYjk4MScsXG4gIHJlamVjdGVkOiAnI2VmNDQ0NCcsXG59O1xuIl0sIm5hbWVzIjpbImdldFRva2VuIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInNldFRva2VuIiwidG9rZW4iLCJzZXRJdGVtIiwiY2xlYXJUb2tlbiIsInJlbW92ZUl0ZW0iLCJnZXRVc2VyIiwidXNlciIsIkpTT04iLCJwYXJzZSIsInNldFVzZXIiLCJzdHJpbmdpZnkiLCJhdXRoRmV0Y2giLCJ1cmwiLCJvcHRpb25zIiwiaGVhZGVycyIsImJvZHkiLCJGb3JtRGF0YSIsInJlc3BvbnNlIiwiZmV0Y2giLCJzdGF0dXMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJFcnJvciIsIlJPTEVfTkFNRVMiLCJhZG1pbiIsImVtcGxveWVlIiwic3VwZXJ2aXNvciIsImZpbmFuY2UiLCJzZWNyZXRhcnkiLCJTVEFUVVNfTkFNRVMiLCJkcmFmdCIsInBlbmRpbmdfc3VwZXJ2aXNvciIsInBlbmRpbmdfZmluYW5jZSIsInBlbmRpbmdfc2VjcmV0YXJ5IiwiYXBwcm92ZWQiLCJyZWplY3RlZCIsIlNUQVRVU19DT0xPUlMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/auth-client.js\n");
/***/ }),
/***/ "(ssr)/./src/app/dashboard/dashboard.css":
/*!*****************************************!*\
!*** ./src/app/dashboard/dashboard.css ***!
\*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"abd70d2a063c\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL2Rhc2hib2FyZC9kYXNoYm9hcmQuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLy4vc3JjL2FwcC9kYXNoYm9hcmQvZGFzaGJvYXJkLmNzcz9mOGM3Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiYWJkNzBkMmEwNjNjXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/app/dashboard/dashboard.css\n");
/***/ }),
/***/ "(rsc)/./src/app/globals.css":
/*!*****************************!*\
!*** ./src/app/globals.css ***!
\*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"5219fd8ccaad\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY29udHJhY3QtYXBwcm92YWwtc3lzdGVtLy4vc3JjL2FwcC9nbG9iYWxzLmNzcz9kMTZmIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiNTIxOWZkOGNjYWFkXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");
/***/ }),
/***/ "(rsc)/./src/app/dashboard/contracts/[id]/page.js":
/*!**************************************************!*\
!*** ./src/app/dashboard/contracts/[id]/page.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/contracts/[id]/page.js#default`));
/***/ }),
/***/ "(rsc)/./src/app/dashboard/layout.js":
/*!*************************************!*\
!*** ./src/app/dashboard/layout.js ***!
\*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */ useUser: () => (/* binding */ e0)
/* harmony export */ });
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
const e0 = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js#useUser`);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/dashboard/layout.js#default`));
/***/ }),
/***/ "(rsc)/./src/app/layout.js":
/*!***************************!*\
!*** ./src/app/layout.js ***!
\***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\nconst metadata = {\n title: \"合同流转审批系统\",\n description: \"企业合同流转审批管理平台\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"zh-CN\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: children\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/layout.js\",\n lineNumber: 11,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/gandanxiangzhao/Desktop/合同流转审批系统/src/app/layout.js\",\n lineNumber: 10,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUI7QUFFaEIsTUFBTUEsV0FBVztJQUN0QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2YsRUFBRTtBQUVhLFNBQVNDLFdBQVcsRUFBRUMsUUFBUSxFQUFFO0lBQzdDLHFCQUNFLDhEQUFDQztRQUFLQyxNQUFLO2tCQUNULDRFQUFDQztzQkFBTUg7Ozs7Ozs7Ozs7O0FBR2IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9jb250cmFjdC1hcHByb3ZhbC1zeXN0ZW0vLi9zcmMvYXBwL2xheW91dC5qcz81YjE5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnLi9nbG9iYWxzLmNzcyc7XG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YSA9IHtcbiAgdGl0bGU6ICflkIjlkIzmtYHovazlrqHmibnns7vnu58nLFxuICBkZXNjcmlwdGlvbjogJ+S8geS4muWQiOWQjOa1gei9rOWuoeaJueeuoeeQhuW5s+WPsCcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSb290TGF5b3V0KHsgY2hpbGRyZW4gfSkge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJ6aC1DTlwiPlxuICAgICAgPGJvZHk+e2NoaWxkcmVufTwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59XG4iXSwibmFtZXMiOlsibWV0YWRhdGEiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiUm9vdExheW91dCIsImNoaWxkcmVuIiwiaHRtbCIsImxhbmciLCJib2R5Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.js\n");
/***/ })
};
;
// load runtime
var __webpack_require__ = require("../../../../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&page=%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&appPaths=%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage&pagePath=private-next-app-dir%2Fdashboard%2Fcontracts%2F%5Bid%5D%2Fpage.js&appDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fgandanxiangzhao%2FDesktop%2F%E5%90%88%E5%90%8C%E6%B5%81%E8%BD%AC%E5%AE%A1%E6%89%B9%E7%B3%BB%E7%BB%9F&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
module.exports = __webpack_exports__;
})();