-
批量下载
@@ -121,6 +112,18 @@
+
+
+
@@ -639,10 +642,35 @@ export default {
&__attachment-head {
display: flex;
align-items: center;
- justify-content: space-between;
+ justify-content: flex-end;
margin-bottom: 12px;
}
+ &__attachment-upload {
+ display: flex;
+ justify-content: flex-start;
+ margin-top: 12px;
+
+ :deep(.vehicle-attachment-upload) {
+ display: flex;
+ align-items: center;
+ width: auto;
+ }
+
+ :deep(.el-upload) {
+ display: inline-flex;
+ }
+
+ :deep(.el-upload__tip) {
+ display: inline-block;
+ margin: 0 0 0 30px;
+ color: #909399;
+ font-size: 13px;
+ line-height: 1.4;
+ text-align: left;
+ }
+ }
+
&__flow {
width: 100%;
height: calc(100vh - 150px);
@@ -670,4 +698,8 @@ export default {
.temporary-credit-limit-dialog .business-crud-page__detail-content .el-descriptions__label {
width: 180px !important;
}
+.el-form-item--default .el-form-item__label {
+ min-height: 30px;
+ height: auto !important;
+}
diff --git a/src/views/payment/bill-ledger-form.vue b/src/views/payment/bill-ledger-form.vue
index 87daa14..0568bfd 100644
--- a/src/views/payment/bill-ledger-form.vue
+++ b/src/views/payment/bill-ledger-form.vue
@@ -231,7 +231,7 @@
class="bill-ledger-form-page__uploader"
:multiple="true"
:limit="20"
- :max-size="10"
+ :max-size="500"
:file-types="attachmentFileTypes"
:show-file-list="false"
button-text="上传"
diff --git a/src/views/payment/bill-payment-form.vue b/src/views/payment/bill-payment-form.vue
index 38e9dfd..d77ca32 100644
--- a/src/views/payment/bill-payment-form.vue
+++ b/src/views/payment/bill-payment-form.vue
@@ -113,7 +113,7 @@
class="bill-payment-form-page__uploader"
:multiple="true"
:limit="20"
- :max-size="10"
+ :max-size="500"
:file-types="attachmentFileTypes"
:show-file-list="false"
button-text="上传"
diff --git a/src/views/payment/invoice-application-form.vue b/src/views/payment/invoice-application-form.vue
index abfb2be..bdb50e5 100644
--- a/src/views/payment/invoice-application-form.vue
+++ b/src/views/payment/invoice-application-form.vue
@@ -366,17 +366,6 @@
-
@@ -399,6 +388,19 @@
+
+
+
@@ -970,6 +972,17 @@ export default {
gap: 8px;
padding: 16px 0 8px;
}
+.invoice-form-page__attachment-upload {
+ display: flex;
+ justify-content: flex-start;
+ margin-top: 12px;
+}
+.invoice-form-page__attachment-upload .vehicle-attachment-upload {
+ width: auto;
+}
+.invoice-form-page__attachment-upload .el-upload {
+ display: inline-flex;
+}
.invoice-form-page__dialog-search {
display: flex;
justify-content: flex-end;
diff --git a/src/views/payment/payment-application-form.vue b/src/views/payment/payment-application-form.vue
index f0cdb00..4a1d369 100644
--- a/src/views/payment/payment-application-form.vue
+++ b/src/views/payment/payment-application-form.vue
@@ -245,17 +245,7 @@
/>
-
+
+
+
返回
-
批量下载
@@ -341,6 +328,20 @@
+
+
+
@@ -1559,10 +1560,25 @@ export default {
&__attachment-actions {
display: flex;
align-items: center;
+ justify-content: flex-end;
gap: 8px;
margin-bottom: 12px;
}
+ &__attachment-upload {
+ display: flex;
+ justify-content: flex-start;
+ margin-top: 12px;
+
+ :deep(.vehicle-attachment-upload) {
+ width: auto;
+ }
+
+ :deep(.el-upload) {
+ display: inline-flex;
+ }
+ }
+
&__summary-total {
padding: 12px 16px 0;
text-align: right;
diff --git a/src/views/vehicle/customer-archive.vue b/src/views/vehicle/customer-archive.vue
index 2eeae7a..b24f89e 100644
--- a/src/views/vehicle/customer-archive.vue
+++ b/src/views/vehicle/customer-archive.vue
@@ -606,7 +606,6 @@
v-model="ocrQualificationUploadFiles"
:multiple="true"
:limit="20"
- accept=".pdf,.bmp,.jpeg,.png,.jpg,.doc,.docx,.ppt,.pptx,.xlsx,.xls,.eml,.msg,.zip"
:max-size="500"
button-text="OCR上传识别"
:show-tip="false"
@@ -689,14 +688,10 @@
accept=".pdf,.bmp,.jpeg,.png,.jpg,.doc,.docx,.ppt,.pptx,.xlsx,.xls,.eml,.msg,.zip"
:max-size="500"
button-text="上传附件"
- :show-tip="false"
:show-file-list="false"
:show-uploading="true"
@success="handleQualificationUploadSuccess"
/>
-
- 支持pdf、bmp、jpeg、png、jpg、doc、docx、ppt、pptx、xlsx、xls、eml、msg、zip,单个文件不超过500M
-
@@ -859,7 +854,13 @@
-
+
@@ -951,7 +952,13 @@
-
+
@@ -4537,7 +4544,7 @@ export default {
display: flex;
align-items: center;
gap: 10px;
- width: 97%;
+ width: 100%;
}
.business-term-field {
@@ -4628,21 +4635,33 @@ export default {
}
.qualification-upload-bar {
- display: grid;
- grid-template-columns: 1fr auto 1fr;
+ display: flex;
align-items: center;
margin-top: 12px;
margin-bottom: 6px;
:deep(.vehicle-attachment-upload) {
- width: auto;
- }
+ flex: 1;
+ display: flex;
+ align-items: center;
+ min-width: 0;
- &__tip {
- grid-column: 2;
- color: #909399;
- font-size: 13px;
- text-align: center;
+ :deep(.el-upload) {
+ flex: 0 0 auto;
+ display: inline-flex;
+ align-items: center;
+ }
+
+ :deep(.el-upload__tip) {
+ margin-left: 30px;
+ color: #909399;
+ font-size: 13px;
+ line-height: 1.4;
+ text-align: left;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
}
}
diff --git a/vite.config.mjs.timestamp-1787653210304-5b6c221708201.mjs b/vite.config.mjs.timestamp-1787653210304-5b6c221708201.mjs
new file mode 100644
index 0000000..30fcf0c
--- /dev/null
+++ b/vite.config.mjs.timestamp-1787653210304-5b6c221708201.mjs
@@ -0,0 +1,158 @@
+// vite.config.mjs
+import {
+ defineConfig,
+ loadEnv
+} from "file:///Users/gxwebsoft/VUE/tms-erp-web-ws/node_modules/.pnpm/vite@5.4.21_sass@1.99.0_terser@5.46.2/node_modules/vite/dist/node/index.js";
+import { resolve } from "path";
+
+// vite/plugins/index.js
+import vue from "file:///Users/gxwebsoft/VUE/tms-erp-web-ws/node_modules/.pnpm/@vitejs+plugin-vue@5.2.4_vite@5.4.21_sass@1.99.0_terser@5.46.2__vue@3.5.34/node_modules/@vitejs/plugin-vue/dist/index.mjs";
+
+// vite/plugins/auto-import.js
+import autoImport from "file:///Users/gxwebsoft/VUE/tms-erp-web-ws/node_modules/.pnpm/unplugin-auto-import@0.11.5_@vueuse+core@14.3.0_vue@3.5.34__rollup@4.60.3/node_modules/unplugin-auto-import/dist/vite.js";
+function createAutoImport() {
+ return autoImport({
+ imports: ["vue", "vue-router", "vuex"],
+ dts: false
+ });
+}
+
+// vite/plugins/compression.js
+import compression from "file:///Users/gxwebsoft/VUE/tms-erp-web-ws/node_modules/.pnpm/vite-plugin-compression@0.5.1_vite@5.4.21_sass@1.99.0_terser@5.46.2_/node_modules/vite-plugin-compression/dist/index.mjs";
+function createCompression(env) {
+ const { VITE_BUILD_COMPRESS } = env;
+ const plugin = [];
+ if (VITE_BUILD_COMPRESS) {
+ const compressList = VITE_BUILD_COMPRESS.split(",");
+ if (compressList.includes("gzip")) {
+ plugin.push(
+ compression({
+ ext: ".gz",
+ deleteOriginFile: false
+ })
+ );
+ }
+ if (compressList.includes("brotli")) {
+ plugin.push(
+ compression({
+ ext: ".br",
+ algorithm: "brotliCompress",
+ deleteOriginFile: false
+ })
+ );
+ }
+ }
+ return plugin;
+}
+
+// vite/plugins/setup-extend.js
+import setupExtend from "file:///Users/gxwebsoft/VUE/tms-erp-web-ws/node_modules/.pnpm/vite-plugin-vue-setup-extend@0.4.0_vite@5.4.21_sass@1.99.0_terser@5.46.2_/node_modules/vite-plugin-vue-setup-extend/dist/index.mjs";
+function createSetupExtend() {
+ return setupExtend();
+}
+
+// vite/plugins/index.js
+function createVitePlugins(viteEnv, isBuild = false) {
+ const vitePlugins = [vue()];
+ vitePlugins.push(createAutoImport());
+ vitePlugins.push(createSetupExtend());
+ isBuild && vitePlugins.push(...createCompression(viteEnv));
+ return vitePlugins;
+}
+
+// vite.config.mjs
+var __vite_injected_original_dirname = "/Users/gxwebsoft/VUE/tms-erp-web-ws";
+var vite_config_default = ({
+ mode,
+ command
+}) => {
+ const env = loadEnv(mode, process.cwd());
+ const {
+ VITE_APP_ENV,
+ VITE_APP_BASE
+ } = env;
+ const isProd = VITE_APP_ENV === "production";
+ const buildConfig = {
+ target: "esnext",
+ minify: isProd ? "terser" : "esbuild"
+ // 根据环境选择压缩工具
+ };
+ if (isProd) {
+ buildConfig.terserOptions = {
+ compress: {
+ drop_console: true,
+ // 删除 console
+ drop_debugger: true
+ // 删除 debugger
+ },
+ format: {
+ comments: false
+ // 删除所有注释
+ }
+ };
+ buildConfig.rollupOptions = {
+ output: {
+ manualChunks: {
+ "element-plus": ["element-plus"],
+ "@smallwei/avue": ["@smallwei/avue"]
+ }
+ }
+ };
+ }
+ return defineConfig({
+ base: VITE_APP_BASE,
+ define: {
+ __VUE_I18N_FULL_INSTALL__: true,
+ __VUE_I18N_LEGACY_API__: true,
+ __INTLIFY_PROD_DEVTOOLS__: false
+ },
+ // server: {
+ // port: 2888,
+ // proxy: {
+ // '/api': {
+ // target: 'http://localhost',
+ // //target: 'https://saber3.bladex.cn/api',
+ // changeOrigin: true,
+ // rewrite: path => path.replace(/^\/api/, ''),
+ // },
+ // },
+ // },
+ server: {
+ port: 2889,
+ proxy: {
+ "/api": {
+ target: "http://172.16.203.228:8000",
+ changeOrigin: true
+ }
+ }
+ },
+ resolve: {
+ alias: {
+ "~": resolve(__vite_injected_original_dirname, "./"),
+ "@": resolve(__vite_injected_original_dirname, "./src"),
+ components: resolve(__vite_injected_original_dirname, "./src/components"),
+ styles: resolve(__vite_injected_original_dirname, "./src/styles"),
+ utils: resolve(__vite_injected_original_dirname, "./src/utils")
+ }
+ },
+ css: {
+ preprocessorOptions: {
+ scss: {
+ api: "modern-compiler",
+ additionalData: `@use "@/styles/variables.scss" as *;`
+ }
+ }
+ },
+ plugins: createVitePlugins(env, command === "build"),
+ build: buildConfig,
+ optimizeDeps: {
+ esbuildOptions: {
+ target: "esnext"
+ }
+ }
+ });
+};
+export {
+ vite_config_default as default
+};
+//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcubWpzIiwgInZpdGUvcGx1Z2lucy9pbmRleC5qcyIsICJ2aXRlL3BsdWdpbnMvYXV0by1pbXBvcnQuanMiLCAidml0ZS9wbHVnaW5zL2NvbXByZXNzaW9uLmpzIiwgInZpdGUvcGx1Z2lucy9zZXR1cC1leHRlbmQuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvZ3h3ZWJzb2Z0L1ZVRS90bXMtZXJwLXdlYi13c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL2d4d2Vic29mdC9WVUUvdG1zLWVycC13ZWItd3Mvdml0ZS5jb25maWcubWpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9neHdlYnNvZnQvVlVFL3Rtcy1lcnAtd2ViLXdzL3ZpdGUuY29uZmlnLm1qc1wiO2ltcG9ydCB7XG4gIGRlZmluZUNvbmZpZyxcbiAgbG9hZEVudlxufSBmcm9tICd2aXRlJztcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0IGNyZWF0ZVZpdGVQbHVnaW5zIGZyb20gJy4vdml0ZS9wbHVnaW5zJztcbi8vIGh0dHBzOi8vdml0ZWpzLmRldi9jb25maWcvXG5leHBvcnQgZGVmYXVsdCAoe1xuICBtb2RlLFxuICBjb21tYW5kXG59KSA9PiB7XG4gIGNvbnN0IGVudiA9IGxvYWRFbnYobW9kZSwgcHJvY2Vzcy5jd2QoKSlcbiAgY29uc3Qge1xuICAgIFZJVEVfQVBQX0VOVixcbiAgICBWSVRFX0FQUF9CQVNFXG4gIH0gPSBlbnZcbiAgLy8gXHU1MjI0XHU2NUFEXHU2NjJGXHU2MjUzXHU3NTFGXHU0RUE3XHU3M0FGXHU1ODgzXHU1MzA1XG4gIGNvbnN0IGlzUHJvZCA9IFZJVEVfQVBQX0VOViA9PT0gJ3Byb2R1Y3Rpb24nXG5cbiAgLy8gXHU2ODM5XHU2MzZFXHU2NjJGXHU1NDI2XHU3NTFGXHU0RUE3XHU3M0FGXHU1ODgzXHVGRjBDXHU1MkE4XHU2MDAxXHU4QkJFXHU3RjZFXHU1MzhCXHU3RjI5XHU5MTREXHU3RjZFXG4gIGNvbnN0IGJ1aWxkQ29uZmlnID0ge1xuICAgIHRhcmdldDogJ2VzbmV4dCcsXG4gICAgbWluaWZ5OiBpc1Byb2QgPyAndGVyc2VyJyA6ICdlc2J1aWxkJywgLy8gXHU2ODM5XHU2MzZFXHU3M0FGXHU1ODgzXHU5MDA5XHU2MkU5XHU1MzhCXHU3RjI5XHU1REU1XHU1MTc3XG4gIH07XG5cbiAgLy8gXHU1OTgyXHU2NzlDXHU2NjJGXHU3NTFGXHU0RUE3XHU3M0FGXHU1ODgzXHVGRjBDXHU2REZCXHU1MkEwVGVyc2VyXHU3Njg0XHU5MTREXHU3RjZFXG4gIGlmIChpc1Byb2QpIHtcbiAgICBidWlsZENvbmZpZy50ZXJzZXJPcHRpb25zID0ge1xuICAgICAgY29tcHJlc3M6IHtcbiAgICAgICAgZHJvcF9jb25zb2xlOiB0cnVlLCAvLyBcdTUyMjBcdTk2NjQgY29uc29sZVxuICAgICAgICBkcm9wX2RlYnVnZ2VyOiB0cnVlLCAvLyBcdTUyMjBcdTk2NjQgZGVidWdnZXJcbiAgICAgIH0sXG4gICAgICBmb3JtYXQ6IHtcbiAgICAgICAgY29tbWVudHM6IGZhbHNlIC8vIFx1NTIyMFx1OTY2NFx1NjI0MFx1NjcwOVx1NkNFOFx1OTFDQVxuICAgICAgfVxuICAgIH07XG4gICAgYnVpbGRDb25maWcucm9sbHVwT3B0aW9ucyA9IHtcbiAgICAgIG91dHB1dDoge1xuICAgICAgICBtYW51YWxDaHVua3M6IHtcbiAgICAgICAgICAnZWxlbWVudC1wbHVzJzogWydlbGVtZW50LXBsdXMnXSxcbiAgICAgICAgICAnQHNtYWxsd2VpL2F2dWUnOiBbJ0BzbWFsbHdlaS9hdnVlJ11cbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyh7XG4gICAgYmFzZTogVklURV9BUFBfQkFTRSxcbiAgICBkZWZpbmU6IHtcbiAgICAgIF9fVlVFX0kxOE5fRlVMTF9JTlNUQUxMX186IHRydWUsXG4gICAgICBfX1ZVRV9JMThOX0xFR0FDWV9BUElfXzogdHJ1ZSxcbiAgICAgIF9fSU5UTElGWV9QUk9EX0RFVlRPT0xTX186IGZhbHNlLFxuICAgIH0sXG4gICAgLy8gc2VydmVyOiB7XG4gICAgLy8gICBwb3J0OiAyODg4LFxuICAgIC8vICAgcHJveHk6IHtcbiAgICAvLyAgICAgJy9hcGknOiB7XG4gICAgLy8gICAgICAgdGFyZ2V0OiAnaHR0cDovL2xvY2FsaG9zdCcsXG4gICAgLy8gICAgICAgLy90YXJnZXQ6ICdodHRwczovL3NhYmVyMy5ibGFkZXguY24vYXBpJyxcbiAgICAvLyAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgLy8gICAgICAgcmV3cml0ZTogcGF0aCA9PiBwYXRoLnJlcGxhY2UoL15cXC9hcGkvLCAnJyksXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICB9LFxuICAgIC8vIH0sXG4gICAgc2VydmVyOiB7XG4gICAgICBwb3J0OiAyODg5LFxuICAgICAgcHJveHk6IHtcbiAgICAgICAgJy9hcGknOiB7XG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cDovLzE3Mi4xNi4yMDMuMjI4OjgwMDAnLFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBhbGlhczoge1xuICAgICAgICAnfic6IHJlc29sdmUoX19kaXJuYW1lLCAnLi8nKSxcbiAgICAgICAgJ0AnOiByZXNvbHZlKF9fZGlybmFtZSwgJy4vc3JjJyksXG4gICAgICAgIGNvbXBvbmVudHM6IHJlc29sdmUoX19kaXJuYW1lLCAnLi9zcmMvY29tcG9uZW50cycpLFxuICAgICAgICBzdHlsZXM6IHJlc29sdmUoX19kaXJuYW1lLCAnLi9zcmMvc3R5bGVzJyksXG4gICAgICAgIHV0aWxzOiByZXNvbHZlKF9fZGlybmFtZSwgJy4vc3JjL3V0aWxzJyksXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3NzOiB7XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBhcGk6ICdtb2Rlcm4tY29tcGlsZXInLFxuICAgICAgICAgIGFkZGl0aW9uYWxEYXRhOiBgQHVzZSBcIkAvc3R5bGVzL3ZhcmlhYmxlcy5zY3NzXCIgYXMgKjtgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IGNyZWF0ZVZpdGVQbHVnaW5zKGVudiwgY29tbWFuZCA9PT0gJ2J1aWxkJyksXG4gICAgYnVpbGQ6IGJ1aWxkQ29uZmlnLFxuICAgIG9wdGltaXplRGVwczoge1xuICAgICAgZXNidWlsZE9wdGlvbnM6IHtcbiAgICAgICAgdGFyZ2V0OiAnZXNuZXh0JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG59O1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvZ3h3ZWJzb2Z0L1ZVRS90bXMtZXJwLXdlYi13cy92aXRlL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9neHdlYnNvZnQvVlVFL3Rtcy1lcnAtd2ViLXdzL3ZpdGUvcGx1Z2lucy9pbmRleC5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvZ3h3ZWJzb2Z0L1ZVRS90bXMtZXJwLXdlYi13cy92aXRlL3BsdWdpbnMvaW5kZXguanNcIjtpbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSc7XG5cbmltcG9ydCBjcmVhdGVBdXRvSW1wb3J0IGZyb20gJy4vYXV0by1pbXBvcnQnO1xuaW1wb3J0IGNyZWF0ZUNvbXByZXNzaW9uIGZyb20gJy4vY29tcHJlc3Npb24nO1xuaW1wb3J0IGNyZWF0ZVNldHVwRXh0ZW5kIGZyb20gJy4vc2V0dXAtZXh0ZW5kJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlVml0ZVBsdWdpbnModml0ZUVudiwgaXNCdWlsZCA9IGZhbHNlKSB7XG4gIGNvbnN0IHZpdGVQbHVnaW5zID0gW3Z1ZSgpXTtcbiAgdml0ZVBsdWdpbnMucHVzaChjcmVhdGVBdXRvSW1wb3J0KCkpO1xuICB2aXRlUGx1Z2lucy5wdXNoKGNyZWF0ZVNldHVwRXh0ZW5kKCkpO1xuICBpc0J1aWxkICYmIHZpdGVQbHVnaW5zLnB1c2goLi4uY3JlYXRlQ29tcHJlc3Npb24odml0ZUVudikpO1xuICByZXR1cm4gdml0ZVBsdWdpbnM7XG59IiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvZ3h3ZWJzb2Z0L1ZVRS90bXMtZXJwLXdlYi13cy92aXRlL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9neHdlYnNvZnQvVlVFL3Rtcy1lcnAtd2ViLXdzL3ZpdGUvcGx1Z2lucy9hdXRvLWltcG9ydC5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvZ3h3ZWJzb2Z0L1ZVRS90bXMtZXJwLXdlYi13cy92aXRlL3BsdWdpbnMvYXV0by1pbXBvcnQuanNcIjtpbXBvcnQgYXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlQXV0b0ltcG9ydCgpIHtcbiAgcmV0dXJuIGF1dG9JbXBvcnQoe1xuICAgIGltcG9ydHM6IFsndnVlJywgJ3Z1ZS1yb3V0ZXInLCAndnVleCddLFxuICAgIGR0czogZmFsc2UsXG4gIH0pO1xufVxuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvZ3h3ZWJzb2Z0L1ZVRS90bXMtZXJwLXdlYi13cy92aXRlL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy9neHdlYnNvZnQvVlVFL3Rtcy1lcnAtd2ViLXdzL3ZpdGUvcGx1Z2lucy9jb21wcmVzc2lvbi5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMvZ3h3ZWJzb2Z0L1ZVRS90bXMtZXJwLXdlYi13cy92aXRlL3BsdWdpbnMvY29tcHJlc3Npb24uanNcIjtpbXBvcnQgY29tcHJlc3Npb24gZnJvbSAndml0ZS1wbHVnaW4tY29tcHJlc3Npb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVDb21wcmVzc2lvbihlbnYpIHtcbiAgY29uc3QgeyBWSVRFX0JVSUxEX0NPTVBSRVNTIH0gPSBlbnY7XG4gIGNvbnN0IHBsdWdpbiA9IFtdO1xuICBpZiAoVklURV9CVUlMRF9DT01QUkVTUykge1xuICAgIGNvbnN0IGNvbXByZXNzTGlzdCA9IFZJVEVfQlVJTERfQ09NUFJFU1Muc3BsaXQoJywnKTtcbiAgICBpZiAoY29tcHJlc3NMaXN0LmluY2x1ZGVzKCdnemlwJykpIHtcbiAgICAgIHBsdWdpbi5wdXNoKFxuICAgICAgICBjb21wcmVzc2lvbih7XG4gICAgICAgICAgZXh0OiAnLmd6JyxcbiAgICAgICAgICBkZWxldGVPcmlnaW5GaWxlOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChjb21wcmVzc0xpc3QuaW5jbHVkZXMoJ2Jyb3RsaScpKSB7XG4gICAgICBwbHVnaW4ucHVzaChcbiAgICAgICAgY29tcHJlc3Npb24oe1xuICAgICAgICAgIGV4dDogJy5icicsXG4gICAgICAgICAgYWxnb3JpdGhtOiAnYnJvdGxpQ29tcHJlc3MnLFxuICAgICAgICAgIGRlbGV0ZU9yaWdpbkZpbGU6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBsdWdpbjtcbn1cbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL2d4d2Vic29mdC9WVUUvdG1zLWVycC13ZWItd3Mvdml0ZS9wbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvZ3h3ZWJzb2Z0L1ZVRS90bXMtZXJwLXdlYi13cy92aXRlL3BsdWdpbnMvc2V0dXAtZXh0ZW5kLmpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy9neHdlYnNvZnQvVlVFL3Rtcy1lcnAtd2ViLXdzL3ZpdGUvcGx1Z2lucy9zZXR1cC1leHRlbmQuanNcIjtpbXBvcnQgc2V0dXBFeHRlbmQgZnJvbSAndml0ZS1wbHVnaW4tdnVlLXNldHVwLWV4dGVuZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVNldHVwRXh0ZW5kKCkge1xuICByZXR1cm4gc2V0dXBFeHRlbmQoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBNlI7QUFBQSxFQUMzUjtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxlQUFlOzs7QUNKOFIsT0FBTyxTQUFTOzs7QUNBSixPQUFPLGdCQUFnQjtBQUUxVSxTQUFSLG1CQUFvQztBQUN6QyxTQUFPLFdBQVc7QUFBQSxJQUNoQixTQUFTLENBQUMsT0FBTyxjQUFjLE1BQU07QUFBQSxJQUNyQyxLQUFLO0FBQUEsRUFDUCxDQUFDO0FBQ0g7OztBQ1BrVSxPQUFPLGlCQUFpQjtBQUUzVSxTQUFSLGtCQUFtQyxLQUFLO0FBQzdDLFFBQU0sRUFBRSxvQkFBb0IsSUFBSTtBQUNoQyxRQUFNLFNBQVMsQ0FBQztBQUNoQixNQUFJLHFCQUFxQjtBQUN2QixVQUFNLGVBQWUsb0JBQW9CLE1BQU0sR0FBRztBQUNsRCxRQUFJLGFBQWEsU0FBUyxNQUFNLEdBQUc7QUFDakMs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