From 0c1f0e1a60982c966fd477cba165e2e9e942c29d Mon Sep 17 00:00:00 2001 From: landaiqing <3517283258@qq.com> Date: Fri, 12 Apr 2024 00:01:59 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=E4=BF=AE=E5=A4=8D(antd):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8Dantd=E7=BB=84=E4=BB=B6=E6=8C=89=E9=9C=80?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....timestamp-1711172711463-e712dd6497908.mjs | 223 ++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 vite.config.mts.timestamp-1711172711463-e712dd6497908.mjs diff --git a/vite.config.mts.timestamp-1711172711463-e712dd6497908.mjs b/vite.config.mts.timestamp-1711172711463-e712dd6497908.mjs new file mode 100644 index 0000000..1ce44f1 --- /dev/null +++ b/vite.config.mts.timestamp-1711172711463-e712dd6497908.mjs @@ -0,0 +1,223 @@ +// vite.config.mts +import { defineConfig, loadEnv } from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/vite@5.2.2_@types+node@20.11.30_less@4.2.0_terser@5.29.2/node_modules/vite/dist/node/index.js"; +import vue from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/@vitejs+plugin-vue@5.0.4_vite@5.2.2_vue@3.4.21/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import * as path from "path"; +import legacy from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/@vitejs+plugin-legacy@5.3.2_terser@5.29.2_vite@5.2.2/node_modules/@vitejs/plugin-legacy/dist/index.mjs"; +import AutoImport from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/unplugin-auto-import@0.17.5_@vueuse+core@10.9.0/node_modules/unplugin-auto-import/dist/vite.js"; +import Components from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/unplugin-vue-components@0.26.0_vue@3.4.21/node_modules/unplugin-vue-components/dist/vite.js"; +import { AntDesignVueResolver } from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/unplugin-vue-components@0.26.0_vue@3.4.21/node_modules/unplugin-vue-components/dist/resolvers.js"; +import { createSvgIconsPlugin } from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/vite-plugin-svg-icons@2.0.1_vite@5.2.2/node_modules/vite-plugin-svg-icons/dist/index.mjs"; +import autoprefixer from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/autoprefixer@10.4.19_postcss@8.4.38/node_modules/autoprefixer/lib/autoprefixer.js"; +import viteCompression from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/vite-plugin-compression@0.5.1_vite@5.2.2/node_modules/vite-plugin-compression/dist/index.mjs"; +import imagemin from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/unplugin-imagemin@0.5.18/node_modules/unplugin-imagemin/dist/vite.mjs"; +import { createHtmlPlugin } from "file:///E:/vue-projects/schisandra-cloud-album-front/node_modules/.pnpm/vite-plugin-html@3.2.2_vite@5.2.2/node_modules/vite-plugin-html/dist/index.mjs"; +var __vite_injected_original_dirname = "E:\\vue-projects\\schisandra-cloud-album-front"; +var vite_config_default = defineConfig(({ mode, command }) => { + const env = loadEnv(mode, process.cwd()); + return { + resolve: { + //设置别名 + alias: { + "@": path.resolve(__vite_injected_original_dirname, "src") + } + }, + css: { + // CSS 预处理器 + preprocessorOptions: { + //define global less variable + less: { + javascriptEnabled: true, + charset: false, + //禁用字符集声明(charset 选项用于控制是否在生成的 CSS 文件的头部添加 @charset "UTF-8";) + additionalData: '@import "./src/assets/styles/variables.less";' + } + }, + postcss: { + plugins: [ + autoprefixer({ + overrideBrowserslist: ["Chrome > 40", "ff > 31", "ie 11"] + }) + ] + } + }, + esbuild: { + // configure this value when the browser version of the development environment is lower + // minimum support es2015 + // https://esbuild.github.io/api/#target + target: "es2015", + include: /\.(ts|jsx|tsx)$/ + }, + plugins: [ + vue(), + createHtmlPlugin({ + minify: true, + /** + * 在这里写entry后,你将不需要在`index.html`内添加 script 标签,原有标签需要删除 + * @default src/main.ts + */ + entry: "src/main.ts", + filename: "index.html", + /** + * 如果你想将 `index.html`存放在指定文件夹,可以修改它,否则不需要配置 + * @default index.html + */ + template: "index.html", + /** + * 需要注入 index.html ejs 模版的数据 + */ + inject: { + data: { + title: env.VITE_TITLE_NAME + } + } + }), + imagemin({ + // Default mode sharp. support squoosh and sharp + mode: "sharp", + beforeBundle: true, + // Default configuration options for compressing different pictures + compress: { + jpg: { + quality: 10 + }, + jpeg: { + quality: 10 + }, + png: { + quality: 10 + }, + webp: { + quality: 10 + } + }, + conversion: [ + { from: "jpeg", to: "webp" }, + { from: "png", to: "webp" }, + { from: "JPG", to: "jpeg" } + ] + }), + viteCompression({ + verbose: true, + // 是否在控制台中输出压缩结果 + disable: false, + threshold: 10240, + // 如果体积大于阈值,将被压缩,单位为b,体积过小时请不要压缩,以免适得其反 + algorithm: "gzip", + // 压缩算法,可选['gzip',' brotliccompress ','deflate ','deflateRaw'] + ext: ".gz", + deleteOriginFile: true + // 源文件压缩后是否删除 + }), + // 修改 icons 相关配置 + createSvgIconsPlugin({ + // 指定需要缓存的图标文件夹 + iconDirs: [path.resolve(__vite_injected_original_dirname, "./src/assets/icons")] + }), + legacy({ + renderLegacyChunks: true, + modernPolyfills: true, + targets: ["chrome 52"], + // 需要兼容的目标列表 + additionalLegacyPolyfills: ["regenerator-runtime/runtime"] + // 面向IE11时需要此插件 + }), + AutoImport({ + //安装两行后你会发现在组件中不用再导入ref,reactive等 + imports: ["vue", "vue-router", "@vueuse/core"], + dts: "auto-import.d.ts", + //ant-design-vue + resolvers: [AntDesignVueResolver()], + eslintrc: { + enabled: true + // 1、改为true用于生成eslint配置。2、生成后改回false,避免重复生成消耗 + } + }), + Components({ + // 指定自动导入的组件位置,默认是 src/components + dirs: ["src/components"], + //ant-design-vue + resolvers: [AntDesignVueResolver({ importStyle: true, resolveIcons: true })] + }) + ], + optimizeDeps: { + include: ["core-js"] + }, + server: { + proxy: { + "/api": { + //target是代理的目标路径 + target: env.VITE_API_BASE_URL, + changeOrigin: true, + //必须要开启跨域 + rewrite: (path2) => path2.replace(/\/api/, "") + // 路径重写 + } + } + }, + build: { + // target: ['es2015'], // 设置最终构建的浏览器兼容目标 + moduleResolution: "node", + // 决定如何处理模块。 + outDir: "dist", + // 指定输出路径 + assetsDir: "assets", + // 指定生成静态文件目录 + assetsInlineLimit: "4096", + // 小于此阈值的导入或引用资源将内联为 base64 编码 + cssCodeSplit: true, + // 启用 CSS 代码拆分 + // cssTarget: '', // 允许用户为 CSS 的压缩设置一个不同的浏览器 target 与 build.target 一致 + sourcemap: false, + // 构建后是否生成 source map 文件 + // lib: {}, // 构建为库 + manifest: false, + // 当设置为 true,构建后将会生成 manifest.json 文件 + ssrManifest: false, + // 构建不生成 SSR 的 manifest 文件 + ssr: void 0, + // 生成面向 SSR 的构建 + minify: "terser", + // 指定使用哪种混淆器 + // 传递给 Terser 的更多 minify 选项 + terserOptions: { + compress: { + drop_console: true, + drop_debugger: true + } + }, + write: true, + // 启用将构建后的文件写入磁盘 + emptyOutDir: true, + // 构建时清空该目录 + brotliSize: true, + // 启用 brotli 压缩大小报告 + chunkSizeWarningLimit: 2e3, + // chunk 大小警告的限制 + watch: null, + // 设置为 {} 则会启用 rollup 的监听器 + rollupOptions: { + // 自定义底层的 Rollup 打包配置 + output: { + chunkFileNames: "js/[name]-[hash].js", + // 引入文件名的名称 + entryFileNames: "js/[name]-[hash].js", + // 包的入口文件名称 + assetFileNames: "[ext]/[name]-[hash].[ext]" + // 资源文件像 字体,图片等 + } + } + }, + output: { + // 最小化拆分包 + manualChunks(id) { + if (id.includes("node_modules")) { + return id.toString().split("node_modules/")[1].split("/")[0].toString(); + } + } + } + }; +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcubXRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiRTpcXFxcdnVlLXByb2plY3RzXFxcXHNjaGlzYW5kcmEtY2xvdWQtYWxidW0tZnJvbnRcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkU6XFxcXHZ1ZS1wcm9qZWN0c1xcXFxzY2hpc2FuZHJhLWNsb3VkLWFsYnVtLWZyb250XFxcXHZpdGUuY29uZmlnLm10c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRTovdnVlLXByb2plY3RzL3NjaGlzYW5kcmEtY2xvdWQtYWxidW0tZnJvbnQvdml0ZS5jb25maWcubXRzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBsb2FkRW52IH0gZnJvbSAndml0ZSdcclxuaW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnXHJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCdcclxuaW1wb3J0IGxlZ2FjeSBmcm9tICdAdml0ZWpzL3BsdWdpbi1sZWdhY3knXHJcblxyXG4vLyBcdTgxRUFcdTUyQThcdTVCRkNcdTUxNjV2dWVcdTRFMkRob29rIHJlYWN0aXZlIHJlZlx1N0I0OVxyXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJ1xyXG4vL1x1ODFFQVx1NTJBOFx1NUJGQ1x1NTE2NXVpLVx1N0VDNFx1NEVGNiBcdTZCRDRcdTU5ODJcdThCRjRhbnQtZGVzaWduLXZ1ZSAgZWxlbWVudC1wbHVzXHU3QjQ5XHJcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnXHJcbi8vYW50LWRlc2lnbi12dWVcclxuaW1wb3J0IHsgQW50RGVzaWduVnVlUmVzb2x2ZXIgfSBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy9yZXNvbHZlcnMnXHJcblxyXG4vLyBpY29ucyBwbHVnaW5cclxuaW1wb3J0IHsgY3JlYXRlU3ZnSWNvbnNQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1zdmctaWNvbnMnXHJcblxyXG5pbXBvcnQgYXV0b3ByZWZpeGVyIGZyb20gJ2F1dG9wcmVmaXhlcidcclxuXHJcbmltcG9ydCB2aXRlQ29tcHJlc3Npb24gZnJvbSAndml0ZS1wbHVnaW4tY29tcHJlc3Npb24nXHJcbmltcG9ydCBpbWFnZW1pbiBmcm9tICd1bnBsdWdpbi1pbWFnZW1pbi92aXRlJ1xyXG5cclxuXHJcbmltcG9ydCB7IGNyZWF0ZUh0bWxQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1odG1sJ1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKCh7IG1vZGUsIGNvbW1hbmQgfSkgPT4ge1xyXG5cdGNvbnN0IGVudiA9IGxvYWRFbnYobW9kZSwgcHJvY2Vzcy5jd2QoKSlcclxuXHRyZXR1cm4ge1xyXG5cdFx0cmVzb2x2ZToge1xyXG5cdFx0XHQvL1x1OEJCRVx1N0Y2RVx1NTIyQlx1NTQwRFxyXG5cdFx0XHRhbGlhczoge1xyXG5cdFx0XHRcdCdAJzogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3NyYycpXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRjc3M6IHtcclxuXHRcdFx0Ly8gQ1NTIFx1OTg4NFx1NTkwNFx1NzQwNlx1NTY2OFxyXG5cdFx0XHRwcmVwcm9jZXNzb3JPcHRpb25zOiB7XHJcblx0XHRcdFx0Ly9kZWZpbmUgZ2xvYmFsIGxlc3MgdmFyaWFibGVcclxuXHRcdFx0XHRsZXNzOiB7XHJcblx0XHRcdFx0XHRqYXZhc2NyaXB0RW5hYmxlZDogdHJ1ZSxcclxuXHRcdFx0XHRcdGNoYXJzZXQ6IGZhbHNlLCAvL1x1Nzk4MVx1NzUyOFx1NUI1N1x1N0IyNlx1OTZDNlx1NThGMFx1NjYwRShjaGFyc2V0IFx1OTAwOVx1OTg3OVx1NzUyOFx1NEU4RVx1NjNBN1x1NTIzNlx1NjYyRlx1NTQyNlx1NTcyOFx1NzUxRlx1NjIxMFx1NzY4NCBDU1MgXHU2NTg3XHU0RUY2XHU3Njg0XHU1OTM0XHU5MEU4XHU2REZCXHU1MkEwIEBjaGFyc2V0IFwiVVRGLThcIjspXHJcblx0XHRcdFx0XHRhZGRpdGlvbmFsRGF0YTogJ0BpbXBvcnQgXCIuL3NyYy9hc3NldHMvc3R5bGVzL3ZhcmlhYmxlcy5sZXNzXCI7J1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0cG9zdGNzczoge1xyXG5cdFx0XHRcdHBsdWdpbnM6IFtcclxuXHRcdFx0XHRcdGF1dG9wcmVmaXhlcih7XHJcblx0XHRcdFx0XHRcdG92ZXJyaWRlQnJvd3NlcnNsaXN0OiBbJ0Nocm9tZSA+IDQwJywgJ2ZmID4gMzEnLCAnaWUgMTEnXVxyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRdXHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRlc2J1aWxkOiB7XHJcblx0XHRcdC8vIGNvbmZpZ3VyZSB0aGlzIHZhbHVlIHdoZW4gdGhlIGJyb3dzZXIgdmVyc2lvbiBvZiB0aGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgaXMgbG93ZXJcclxuXHRcdFx0Ly8gbWluaW11bSBzdXBwb3J0IGVzMjAxNVxyXG5cdFx0XHQvLyBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdGFyZ2V0XHJcblx0XHRcdHRhcmdldDogJ2VzMjAxNScsXHJcblx0XHRcdGluY2x1ZGU6IC9cXC4odHN8anN4fHRzeCkkL1xyXG5cdFx0fSxcclxuXHRcdHBsdWdpbnM6IFtcclxuXHRcdFx0dnVlKCksXHJcblx0XHRcdGNyZWF0ZUh0bWxQbHVnaW4oe1xyXG5cdFx0XHRcdG1pbmlmeTogdHJ1ZSxcclxuXHRcdFx0XHQvKipcclxuXHRcdFx0XHQgKiBcdTU3MjhcdThGRDlcdTkxQ0NcdTUxOTllbnRyeVx1NTQwRVx1RkYwQ1x1NEY2MFx1NUMwNlx1NEUwRFx1OTcwMFx1ODk4MVx1NTcyOGBpbmRleC5odG1sYFx1NTE4NVx1NkRGQlx1NTJBMCBzY3JpcHQgXHU2ODA3XHU3QjdFXHVGRjBDXHU1MzlGXHU2NzA5XHU2ODA3XHU3QjdFXHU5NzAwXHU4OTgxXHU1MjIwXHU5NjY0XHJcblx0XHRcdFx0ICogQGRlZmF1bHQgc3JjL21haW4udHNcclxuXHRcdFx0XHQgKi9cclxuXHRcdFx0XHRlbnRyeTogJ3NyYy9tYWluLnRzJyxcclxuXHRcdFx0XHRmaWxlbmFtZTogJ2luZGV4Lmh0bWwnLFxyXG5cdFx0XHRcdC8qKlxyXG5cdFx0XHRcdCAqIFx1NTk4Mlx1Njc5Q1x1NEY2MFx1NjBGM1x1NUMwNiBgaW5kZXguaHRtbGBcdTVCNThcdTY1M0VcdTU3MjhcdTYzMDdcdTVCOUFcdTY1ODdcdTRFRjZcdTU5MzlcdUZGMENcdTUzRUZcdTRFRTVcdTRGRUVcdTY1MzlcdTVCODNcdUZGMENcdTU0MjZcdTUyMTlcdTRFMERcdTk3MDBcdTg5ODFcdTkxNERcdTdGNkVcclxuXHRcdFx0XHQgKiBAZGVmYXVsdCBpbmRleC5odG1sXHJcblx0XHRcdFx0ICovXHJcblx0XHRcdFx0dGVtcGxhdGU6ICdpbmRleC5odG1sJyxcclxuXHRcdFx0XHQvKipcclxuXHRcdFx0XHQgKiBcdTk3MDBcdTg5ODFcdTZDRThcdTUxNjUgaW5kZXguaHRtbCBlanMgXHU2QTIxXHU3MjQ4XHU3Njg0XHU2NTcwXHU2MzZFXHJcblx0XHRcdFx0ICovXHJcblx0XHRcdFx0aW5qZWN0OiB7XHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdHRpdGxlOiBlbnYuVklURV9USVRMRV9OQU1FLFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSksXHJcblx0XHRcdGltYWdlbWluKHtcclxuXHRcdFx0XHQvLyBEZWZhdWx0IG1vZGUgc2hhcnAuIHN1cHBvcnQgc3F1b29zaCBhbmQgc2hhcnBcclxuXHRcdFx0XHRtb2RlOiAnc2hhcnAnLFxyXG5cdFx0XHRcdGJlZm9yZUJ1bmRsZTogdHJ1ZSxcclxuXHRcdFx0XHQvLyBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgY29tcHJlc3NpbmcgZGlmZmVyZW50IHBpY3R1cmVzXHJcblx0XHRcdFx0Y29tcHJlc3M6IHtcclxuXHRcdFx0XHRcdGpwZzoge1xyXG5cdFx0XHRcdFx0XHRxdWFsaXR5OiAxMFxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGpwZWc6IHtcclxuXHRcdFx0XHRcdFx0cXVhbGl0eTogMTBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRwbmc6IHtcclxuXHRcdFx0XHRcdFx0cXVhbGl0eTogMTBcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHR3ZWJwOiB7XHJcblx0XHRcdFx0XHRcdHF1YWxpdHk6IDEwXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRjb252ZXJzaW9uOiBbXHJcblx0XHRcdFx0XHR7IGZyb206ICdqcGVnJywgdG86ICd3ZWJwJyB9LFxyXG5cdFx0XHRcdFx0eyBmcm9tOiAncG5nJywgdG86ICd3ZWJwJyB9LFxyXG5cdFx0XHRcdFx0eyBmcm9tOiAnSlBHJywgdG86ICdqcGVnJyB9XHJcblx0XHRcdFx0XVxyXG5cdFx0XHR9KSxcclxuXHRcdFx0dml0ZUNvbXByZXNzaW9uKHtcclxuXHRcdFx0XHR2ZXJib3NlOiB0cnVlLCAvLyBcdTY2MkZcdTU0MjZcdTU3MjhcdTYzQTdcdTUyMzZcdTUzRjBcdTRFMkRcdThGOTNcdTUxRkFcdTUzOEJcdTdGMjlcdTdFRDNcdTY3OUNcclxuXHRcdFx0XHRkaXNhYmxlOiBmYWxzZSxcclxuXHRcdFx0XHR0aHJlc2hvbGQ6IDEwMjQwLCAvLyBcdTU5ODJcdTY3OUNcdTRGNTNcdTc5RUZcdTU5MjdcdTRFOEVcdTk2MDhcdTUwM0NcdUZGMENcdTVDMDZcdTg4QUJcdTUzOEJcdTdGMjlcdUZGMENcdTUzNTVcdTRGNERcdTRFM0FiXHVGRjBDXHU0RjUzXHU3OUVGXHU4RkM3XHU1QzBGXHU2NUY2XHU4QkY3XHU0RTBEXHU4OTgxXHU1MzhCXHU3RjI5XHVGRjBDXHU0RUU1XHU1MTREXHU5MDAyXHU1Rjk3XHU1MTc2XHU1M0NEXHJcblx0XHRcdFx0YWxnb3JpdGhtOiAnZ3ppcCcsIC8vIFx1NTM4Qlx1N0YyOVx1N0I5N1x1NkNENVx1RkYwQ1x1NTNFRlx1OTAwOVsnZ3ppcCdcdUZGMEMnIGJyb3RsaWNjb21wcmVzcyAnXHVGRjBDJ2RlZmxhdGUgJ1x1RkYwQydkZWZsYXRlUmF3J11cclxuXHRcdFx0XHRleHQ6ICcuZ3onLFxyXG5cdFx0XHRcdGRlbGV0ZU9yaWdpbkZpbGU6IHRydWUgLy8gXHU2RTkwXHU2NTg3XHU0RUY2XHU1MzhCXHU3RjI5XHU1NDBFXHU2NjJGXHU1NDI2XHU1MjIwXHU5NjY0XHJcblx0XHRcdH0pLFxyXG5cdFx0XHQvLyBcdTRGRUVcdTY1MzkgaWNvbnMgXHU3NkY4XHU1MTczXHU5MTREXHU3RjZFXHJcblx0XHRcdGNyZWF0ZVN2Z0ljb25zUGx1Z2luKHtcclxuXHRcdFx0XHQvLyBcdTYzMDdcdTVCOUFcdTk3MDBcdTg5ODFcdTdGMTNcdTVCNThcdTc2ODRcdTU2RkVcdTY4MDdcdTY1ODdcdTRFRjZcdTU5MzlcclxuXHRcdFx0XHRpY29uRGlyczogW3BhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuL3NyYy9hc3NldHMvaWNvbnMnKV1cclxuXHRcdFx0fSksXHJcblx0XHRcdGxlZ2FjeSh7XHJcblx0XHRcdFx0cmVuZGVyTGVnYWN5Q2h1bmtzOiB0cnVlLFxyXG5cdFx0XHRcdG1vZGVyblBvbHlmaWxsczogdHJ1ZSxcclxuXHRcdFx0XHR0YXJnZXRzOiBbJ2Nocm9tZSA1MiddLCAvLyBcdTk3MDBcdTg5ODFcdTUxN0NcdTVCQjlcdTc2ODRcdTc2RUVcdTY4MDdcdTUyMTdcdTg4NjhcclxuXHRcdFx0XHRhZGRpdGlvbmFsTGVnYWN5UG9seWZpbGxzOiBbJ3JlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZSddIC8vIFx1OTc2Mlx1NTQxMUlFMTFcdTY1RjZcdTk3MDBcdTg5ODFcdTZCNjRcdTYzRDJcdTRFRjZcclxuXHRcdFx0fSksXHJcblx0XHRcdEF1dG9JbXBvcnQoe1xyXG5cdFx0XHRcdC8vXHU1Qjg5XHU4OEM1XHU0RTI0XHU4ODRDXHU1NDBFXHU0RjYwXHU0RjFBXHU1M0QxXHU3M0IwXHU1NzI4XHU3RUM0XHU0RUY2XHU0RTJEXHU0RTBEXHU3NTI4XHU1MThEXHU1QkZDXHU1MTY1cmVmXHVGRjBDcmVhY3RpdmVcdTdCNDlcclxuXHRcdFx0XHRpbXBvcnRzOiBbJ3Z1ZScsICd2dWUtcm91dGVyJywnQHZ1ZXVzZS9jb3JlJ10sXHJcblx0XHRcdFx0ZHRzOiAnYXV0by1pbXBvcnQuZC50cycsXHJcblx0XHRcdFx0Ly9hbnQtZGVzaWduLXZ1ZVxyXG5cdFx0XHRcdHJlc29sdmVyczogW0FudERlc2lnblZ1ZVJlc29sdmVyKCldLFxyXG5cdFx0XHRcdGVzbGludHJjOiB7XHJcblx0XHRcdFx0XHRlbmFibGVkOiB0cnVlIC8vIDFcdTMwMDFcdTY1MzlcdTRFM0F0cnVlXHU3NTI4XHU0RThFXHU3NTFGXHU2MjEwZXNsaW50XHU5MTREXHU3RjZFXHUzMDAyMlx1MzAwMVx1NzUxRlx1NjIxMFx1NTQwRVx1NjUzOVx1NTZERWZhbHNlXHVGRjBDXHU5MDdGXHU1MTREXHU5MUNEXHU1OTBEXHU3NTFGXHU2MjEwXHU2RDg4XHU4MDE3XHJcblxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSksXHJcblx0XHRcdENvbXBvbmVudHMoe1xyXG5cdFx0XHRcdC8vIFx1NjMwN1x1NUI5QVx1ODFFQVx1NTJBOFx1NUJGQ1x1NTE2NVx1NzY4NFx1N0VDNFx1NEVGNlx1NEY0RFx1N0Y2RVx1RkYwQ1x1OUVEOFx1OEJBNFx1NjYyRiBzcmMvY29tcG9uZW50c1xyXG5cdFx0XHRcdGRpcnM6IFsnc3JjL2NvbXBvbmVudHMnXSxcclxuXHRcdFx0XHQvL2FudC1kZXNpZ24tdnVlXHJcblx0XHRcdFx0cmVzb2x2ZXJzOiBbQW50RGVzaWduVnVlUmVzb2x2ZXIoeyBpbXBvcnRTdHlsZTogdHJ1ZSwgcmVzb2x2ZUljb25zOiB0cnVlIH0pXVxyXG5cdFx0XHR9KVxyXG5cdFx0XSxcclxuXHRcdG9wdGltaXplRGVwczoge1xyXG5cdFx0XHRpbmNsdWRlOiBbJ2NvcmUtanMnXVxyXG5cdFx0fSxcclxuXHRcdHNlcnZlcjoge1xyXG5cdFx0XHRwcm94eToge1xyXG5cdFx0XHRcdCcvYXBpJzoge1xyXG5cdFx0XHRcdFx0Ly90YXJnZXRcdTY2MkZcdTRFRTNcdTc0MDZcdTc2ODRcdTc2RUVcdTY4MDdcdThERUZcdTVGODRcclxuXHRcdFx0XHRcdHRhcmdldDogZW52LlZJVEVfQVBJX0JBU0VfVVJMLFxyXG5cdFx0XHRcdFx0Y2hhbmdlT3JpZ2luOiB0cnVlLCAvL1x1NUZDNVx1OTg3Qlx1ODk4MVx1NUYwMFx1NTQyRlx1OERFOFx1NTdERlxyXG5cdFx0XHRcdFx0cmV3cml0ZTogKHBhdGgpID0+IHBhdGgucmVwbGFjZSgvXFwvYXBpLywgJycpIC8vIFx1OERFRlx1NUY4NFx1OTFDRFx1NTE5OVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGJ1aWxkOiB7XHJcblx0XHRcdC8vIHRhcmdldDogWydlczIwMTUnXSwgLy8gXHU4QkJFXHU3RjZFXHU2NzAwXHU3RUM4XHU2Nzg0XHU1RUZBXHU3Njg0XHU2RDRGXHU4OUM4XHU1NjY4XHU1MTdDXHU1QkI5XHU3NkVFXHU2ODA3XHJcblx0XHRcdG1vZHVsZVJlc29sdXRpb246ICdub2RlJywgLy8gXHU1MUIzXHU1QjlBXHU1OTgyXHU0RjU1XHU1OTA0XHU3NDA2XHU2QTIxXHU1NzU3XHUzMDAyXHJcblx0XHRcdG91dERpcjogJ2Rpc3QnLCAvLyBcdTYzMDdcdTVCOUFcdThGOTNcdTUxRkFcdThERUZcdTVGODRcclxuXHRcdFx0YXNzZXRzRGlyOiAnYXNzZXRzJywgLy8gXHU2MzA3XHU1QjlBXHU3NTFGXHU2MjEwXHU5NzU5XHU2MDAxXHU2NTg3XHU0RUY2XHU3NkVFXHU1RjU1XHJcblx0XHRcdGFzc2V0c0lubGluZUxpbWl0OiAnNDA5NicsIC8vIFx1NUMwRlx1NEU4RVx1NkI2NFx1OTYwOFx1NTAzQ1x1NzY4NFx1NUJGQ1x1NTE2NVx1NjIxNlx1NUYxNVx1NzUyOFx1OEQ0NFx1NkU5MFx1NUMwNlx1NTE4NVx1ODA1NFx1NEUzQSBiYXNlNjQgXHU3RjE2XHU3ODAxXHJcblx0XHRcdGNzc0NvZGVTcGxpdDogdHJ1ZSwgLy8gXHU1NDJGXHU3NTI4IENTUyBcdTRFRTNcdTc4MDFcdTYyQzZcdTUyMDZcclxuXHRcdFx0Ly8gY3NzVGFyZ2V0OiAnJywgLy8gXHU1MTQxXHU4QkI4XHU3NTI4XHU2MjM3XHU0RTNBIENTUyBcdTc2ODRcdTUzOEJcdTdGMjlcdThCQkVcdTdGNkVcdTRFMDBcdTRFMkFcdTRFMERcdTU0MENcdTc2ODRcdTZENEZcdTg5QzhcdTU2NjggdGFyZ2V0IFx1NEUwRSBidWlsZC50YXJnZXQgXHU0RTAwXHU4MUY0XHJcblx0XHRcdHNvdXJjZW1hcDogZmFsc2UsIC8vIFx1Njc4NFx1NUVGQVx1NTQwRVx1NjYyRlx1NTQyNlx1NzUxRlx1NjIxMCBzb3VyY2UgbWFwIFx1NjU4N1x1NEVGNlxyXG5cclxuXHRcdFx0Ly8gbGliOiB7fSwgLy8gXHU2Nzg0XHU1RUZBXHU0RTNBXHU1RTkzXHJcblx0XHRcdG1hbmlmZXN0OiBmYWxzZSwgLy8gXHU1RjUzXHU4QkJFXHU3RjZFXHU0RTNBIHRydWVcdUZGMENcdTY3ODRcdTVFRkFcdTU0MEVcdTVDMDZcdTRGMUFcdTc1MUZcdTYyMTAgbWFuaWZlc3QuanNvbiBcdTY1ODdcdTRFRjZcclxuXHRcdFx0c3NyTWFuaWZlc3Q6IGZhbHNlLCAvLyBcdTY3ODRcdTVFRkFcdTRFMERcdTc1MUZcdTYyMTAgU1NSIFx1NzY4NCBtYW5pZmVzdCBcdTY1ODdcdTRFRjZcclxuXHRcdFx0c3NyOiB1bmRlZmluZWQsIC8vIFx1NzUxRlx1NjIxMFx1OTc2Mlx1NTQxMSBTU1IgXHU3Njg0XHU2Nzg0XHU1RUZBXHJcblx0XHRcdG1pbmlmeTogJ3RlcnNlcicsIC8vIFx1NjMwN1x1NUI5QVx1NEY3Rlx1NzUyOFx1NTRFQVx1NzlDRFx1NkRGN1x1NkRDNlx1NTY2OFxyXG5cdFx0XHQvLyBcdTRGMjBcdTkwMTJcdTdFRDkgVGVyc2VyIFx1NzY4NFx1NjZGNFx1NTkxQSBtaW5pZnkgXHU5MDA5XHU5ODc5XHJcblx0XHRcdHRlcnNlck9wdGlvbnM6IHtcclxuXHRcdFx0XHRjb21wcmVzczoge1xyXG5cdFx0XHRcdFx0ZHJvcF9jb25zb2xlOiB0cnVlLFxyXG5cdFx0XHRcdFx0ZHJvcF9kZWJ1Z2dlcjogdHJ1ZVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0d3JpdGU6IHRydWUsIC8vIFx1NTQyRlx1NzUyOFx1NUMwNlx1Njc4NFx1NUVGQVx1NTQwRVx1NzY4NFx1NjU4N1x1NEVGNlx1NTE5OVx1NTE2NVx1NzhDMVx1NzZEOFxyXG5cdFx0XHRlbXB0eU91dERpcjogdHJ1ZSwgLy8gXHU2Nzg0XHU1RUZBXHU2NUY2XHU2RTA1XHU3QTdBXHU4QkU1XHU3NkVFXHU1RjU1XHJcblx0XHRcdGJyb3RsaVNpemU6IHRydWUsIC8vIFx1NTQyRlx1NzUyOCBicm90bGkgXHU1MzhCXHU3RjI5XHU1OTI3XHU1QzBGXHU2MkE1XHU1NDRBXHJcblx0XHRcdGNodW5rU2l6ZVdhcm5pbmdMaW1pdDogMjAwMCwgLy8gY2h1bmsgXHU1OTI3XHU1QzBGXHU4QjY2XHU1NDRBXHU3Njg0XHU5NjUwXHU1MjM2XHJcblx0XHRcdHdhdGNoOiBudWxsLCAvLyBcdThCQkVcdTdGNkVcdTRFM0Ege30gXHU1MjE5XHU0RjFBXHU1NDJGXHU3NTI4IHJvbGx1cCBcdTc2ODRcdTc2RDFcdTU0MkNcdTU2NjhcclxuXHRcdFx0cm9sbHVwT3B0aW9uczogeyAgLy8gXHU4MUVBXHU1QjlBXHU0RTQ5XHU1RTk1XHU1QzQyXHU3Njg0IFJvbGx1cCBcdTYyNTNcdTUzMDVcdTkxNERcdTdGNkVcclxuXHRcdFx0XHRvdXRwdXQ6IHtcclxuXHRcdFx0XHRcdGNodW5rRmlsZU5hbWVzOiAnanMvW25hbWVdLVtoYXNoXS5qcycsIC8vIFx1NUYxNVx1NTE2NVx1NjU4N1x1NEVGNlx1NTQwRFx1NzY4NFx1NTQwRFx1NzlGMFxyXG5cdFx0XHRcdFx0ZW50cnlGaWxlTmFtZXM6ICdqcy9bbmFtZV0tW2hhc2hdLmpzJywgLy8gXHU1MzA1XHU3Njg0XHU1MTY1XHU1M0UzXHU2NTg3XHU0RUY2XHU1NDBEXHU3OUYwXHJcblx0XHRcdFx0XHRhc3NldEZpbGVOYW1lczogJ1tleHRdL1tuYW1lXS1baGFzaF0uW2V4dF0nIC8vIFx1OEQ0NFx1NkU5MFx1NjU4N1x1NEVGNlx1NTBDRiBcdTVCNTdcdTRGNTNcdUZGMENcdTU2RkVcdTcyNDdcdTdCNDlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblx0XHRvdXRwdXQ6IHtcclxuXHRcdFx0Ly8gXHU2NzAwXHU1QzBGXHU1MzE2XHU2MkM2XHU1MjA2XHU1MzA1XHJcblx0XHRcdG1hbnVhbENodW5rcyhpZCkge1xyXG5cdFx0XHRcdGlmIChpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcclxuXHRcdFx0XHRcdHJldHVybiBpZC50b1N0cmluZygpLnNwbGl0KCdub2RlX21vZHVsZXMvJylbMV0uc3BsaXQoJy8nKVswXS50b1N0cmluZygpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59KVxyXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQThULFNBQVMsY0FBYyxlQUFlO0FBQ3BXLE9BQU8sU0FBUztBQUNoQixZQUFZLFVBQVU7QUFDdEIsT0FBTyxZQUFZO0FBR25CLE9BQU8sZ0JBQWdCO0FBRXZCLE9BQU8sZ0JBQWdCO0FBRXZCLFNBQVMsNEJBQTRCO0FBR3JDLFNBQVMsNEJBQTRCO0FBRXJDLE9BQU8sa0JBQWtCO0FBRXpCLE9BQU8scUJBQXFCO0FBQzVCLE9BQU8sY0FBYztBQUdyQixTQUFTLHdCQUF3QjtBQXJCakMsSUFBTSxtQ0FBbUM7QUF1QnpDLElBQU8sc0JBQVEsYUFBYSxDQUFDLEVBQUUsTUFBTSxRQUFRLE1BQU07QUFDbEQsUUFBTSxNQUFNLFFBQVEsTUFBTSxRQUFRLElBQUksQ0FBQztBQUN2QyxTQUFPO0FBQUEsSUFDTixTQUFTO0FBQUE7QUFBQSxNQUVSLE9BQU87QUFB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