// vite.config.js import { defineConfig, loadEnv } from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/vite/dist/node/index.js"; import vue from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/@vitejs/plugin-vue/dist/index.mjs"; import AutoImport from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/unplugin-auto-import/dist/vite.js"; import Components from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/unplugin-vue-components/dist/vite.js"; import { ElementPlusResolver } from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/unplugin-vue-components/dist/resolvers.js"; import path from "path"; import { VxeTableResolver } from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/@vxecli/import-unplugin-vue-components/dist/index.mjs"; import CssMinimizerPlugin from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/css-minimizer-webpack-plugin/dist/index.js"; import TerserPlugin from "file:///C:/Users/%E5%86%B0%E5%93%A5%E5%93%A5%E7%9A%84%E7%94%B5%E8%84%91/Desktop/xysale/node_modules/terser-webpack-plugin/dist/index.js"; var __vite_injected_original_dirname = "C:\\Users\\\u51B0\u54E5\u54E5\u7684\u7535\u8111\\Desktop\\xysale"; var name = "\u7231\u679C\u6218\u58D5\u6258\u7BA1\u7CFB\u7EDF"; var port = process.env.port || process.env.npm_config_port || 80; var vite_config_default = defineConfig((command, mode) => { const env = loadEnv(mode, __vite_injected_original_dirname); return { publicPath: "./", outputDir: "dist", assetsDir: "static", lintOnSave: env.VITE_MODE === "development", //lintOnSave: false, productionSourceMap: false, plugins: [ vue(), AutoImport({ resolvers: [ElementPlusResolver(), VxeTableResolver()] }), Components({ resolvers: [ElementPlusResolver(), VxeTableResolver()] }) ], define: { "process.env": { VITE_APP_BASE_API: "JSON.stringify(env.VUE_APP_BASE_API)", VITE_APP_BASE_SITE: "JSON.stringify(env.VITE_APP_BASE_SITE)" } }, server: { port, open: true, hot: true, overlay: { warnings: false, errors: true }, host: "0.0.0.0", proxy: { [process.env.VUE_APP_BASE_API]: { //这里是公共部分,在调用接口时后面接不相同的部分 target: process.env.VUE_APP_BASE_API, //修改后台接口地址 changeOrigin: true, //开启跨域 pathRewrite: { //重命名 ["^" + process.env.VUE_APP_BASE_API]: "" } }, "^/api": { target: "http://dev-erp-api.xtkj99.com:7890", changeOrigin: true } }, disableHostCheck: true }, resolve: { // 设置路径别名 alias: { "@": path.join(__vite_injected_original_dirname, "/src"), "@services": path.join(__vite_injected_original_dirname, "/src/services"), "@axioshooks": path.join(__vite_injected_original_dirname, "/src/services/axioshooks"), "@assets": path.join(__vite_injected_original_dirname, "/src/assets"), "@components": path.join(__vite_injected_original_dirname, "/src/components"), "@api": path.join(__vite_injected_original_dirname, "/src/services/api"), "@untils": path.join(__vite_injected_original_dirname, "/src/untils") } }, css: { // 是否使用css分离插件 ExtractTextPlugin extract: { filename: `static/js/chunk-[hash].css` } }, configureWebpack: { output: { filename: `static/js/chunk-[hash].js` }, module: { rules: [ { test: /\.js$/, include: path.resolve(__vite_injected_original_dirname, "../src"), exclude: /node_modules/, use: [ "cache-loader", { loader: "thread-loader", options: { workers: 2 } }, "bable-loader" ] } ] } }, // provide the app's title in webpack's name field, so that // it can be accessed in index.html to inject the correct title. name, optimization: { minimizer: [ // For webpack@5 you can use the `...` syntax to extend existing minimizers (i.e. `terser-webpack-plugin`), uncomment the next line // `...`, new CssMinimizerPlugin(), new TerserPlugin({ terserOptions: { compress: { drop_console: true // 生产环境自动删除console } } }) ] }, chainWebpack(config) { config.plugin("preload").tap(() => [ { rel: "preload", // to ignore runtime.js // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171 fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/], include: "initial" } ]); config.plugins.delete("prefetch"); config.module.rule("svg").exclude.add(resolve("src/icons")).end(); config.module.rule("icons").test(/\.svg$/).include.add(resolve("src/icons")).end().use("svg-sprite-loader").loader("svg-sprite-loader").options({ symbolId: `icon-[name].${Version}.[ext]` }).end(); config.when(process.env.NODE_ENV !== "development", (config2) => { config2.plugin("ScriptExtHtmlWebpackPlugin").after("html").use("script-ext-html-webpack-plugin", [ { // `runtime` must same as runtimeChunk name. default is `runtime` inline: /runtime\..*\.js$/ } ]).end(); config2.optimization.splitChunks({ chunks: "all", cacheGroups: { libs: { name: "chunk-libs", test: /[\\/]node_modules[\\/]/, priority: 10, chunks: "initial" // only package third parties that are initially dependent }, elementUI: { name: "chunk-elementUI", // split elementUI into a single package priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm }, commons: { name: "chunk-commons", test: resolve("src/components"), // can customize your rules minChunks: 3, // minimum common number priority: 5, reuseExistingChunk: true } } }); config2.optimization.runtimeChunk("single"); config2.optimization.minimizer("terser").tap((args) => { args[0].parallel = 4; args[0].terserOptions.compress.warnings = true; args[0].terserOptions.compress.drop_debugger = true; args[0].terserOptions.compress.drop_console = true; return args; }); }); } }; }); export { vite_config_default as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJDOlxcXFxVc2Vyc1xcXFxcdTUxQjBcdTU0RTVcdTU0RTVcdTc2ODRcdTc1MzVcdTgxMTFcXFxcRGVza3RvcFxcXFx4eXNhbGVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkM6XFxcXFVzZXJzXFxcXFx1NTFCMFx1NTRFNVx1NTRFNVx1NzY4NFx1NzUzNVx1ODExMVxcXFxEZXNrdG9wXFxcXHh5c2FsZVxcXFx2aXRlLmNvbmZpZy5qc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vQzovVXNlcnMvJUU1JTg2JUIwJUU1JTkzJUE1JUU1JTkzJUE1JUU3JTlBJTg0JUU3JTk0JUI1JUU4JTg0JTkxL0Rlc2t0b3AveHlzYWxlL3ZpdGUuY29uZmlnLmpzXCI7aW1wb3J0IHsgZGVmaW5lQ29uZmlnICxsb2FkRW52fSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZScgXHJcbmltcG9ydCBBdXRvSW1wb3J0IGZyb20gJ3VucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGUnXHJcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnIFxyXG5pbXBvcnQgeyBFbGVtZW50UGx1c1Jlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJ1xyXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJzsgXHJcbmltcG9ydCB7IFZ4ZVRhYmxlUmVzb2x2ZXIgfSBmcm9tICdAdnhlY2xpL2ltcG9ydC11bnBsdWdpbi12dWUtY29tcG9uZW50cyc7XHJcbmltcG9ydCBDc3NNaW5pbWl6ZXJQbHVnaW4gZnJvbSBcImNzcy1taW5pbWl6ZXItd2VicGFjay1wbHVnaW5cIjtcclxuaW1wb3J0IFRlcnNlclBsdWdpbiBmcm9tIFwidGVyc2VyLXdlYnBhY2stcGx1Z2luXCI7XHJcblxyXG5jb25zdCBuYW1lID0gXCJcdTcyMzFcdTY3OUNcdTYyMThcdTU4RDVcdTYyNThcdTdCQTFcdTdDRkJcdTdFREZcIjsgLy8gcGFnZSB0aXRsZVxyXG4gIFxyXG5cclxuXHJcbmNvbnN0IHBvcnQgPSBwcm9jZXNzLmVudi5wb3J0IHx8IHByb2Nlc3MuZW52Lm5wbV9jb25maWdfcG9ydCB8fCA4MDsgLy8gZGV2IHBvcnRcclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKChjb21tYW5kLG1vZGUpPT57XHJcbiAgY29uc3QgZW52ID0gbG9hZEVudihtb2RlLCBfX2Rpcm5hbWUpOyBcclxuIFxyXG4gIHJldHVybiB7XHJcbiAgICBwdWJsaWNQYXRoOiBcIi4vXCIsXHJcbiAgICBvdXRwdXREaXI6IFwiZGlzdFwiLFxyXG4gICAgXHJcbiAgICBhc3NldHNEaXI6IFwic3RhdGljXCIsIFxyXG4gICAgbGludE9uU2F2ZTogZW52LlZJVEVfTU9ERSA9PT0gXCJkZXZlbG9wbWVudFwiLFxyXG4gICAgLy9saW50T25TYXZlOiBmYWxzZSxcclxuICAgIHByb2R1Y3Rpb25Tb3VyY2VNYXA6IGZhbHNlLFxyXG4gICAgcGx1Z2luczogWyBcclxuICAgICAgdnVlKCksIFxyXG4gICAgICBBdXRvSW1wb3J0KHtcclxuICAgICAgICByZXNvbHZlcnM6IFtFbGVtZW50UGx1c1Jlc29sdmVyKCksVnhlVGFibGVSZXNvbHZlcigpXSxcclxuICAgICAgfSksXHJcbiAgICAgIENvbXBvbmVudHMoe1xyXG4gICAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKSxWeGVUYWJsZVJlc29sdmVyKCldLFxyXG4gICAgICB9KSwgXHJcbiAgICBdLFxyXG4gICAgZGVmaW5lOiB7IFxyXG4gICAgICAncHJvY2Vzcy5lbnYnOiB7XHJcbiAgICAgICAgVklURV9BUFBfQkFTRV9BUEk6ICdKU09OLnN0cmluZ2lmeShlbnYuVlVFX0FQUF9CQVNFX0FQSSknLFxyXG4gICAgICAgIFZJVEVfQVBQX0JBU0VfU0lURTonSlNPTi5zdHJpbmdpZnkoZW52LlZJVEVfQVBQX0JBU0VfU0lURSknXHJcbiAgICAgIH0sIFxyXG4gICAgfSxcclxuICAgIHNlcnZlcjoge1xyXG4gICAgICBwb3J0OiBwb3J0LFxyXG4gICAgICBvcGVuOiB0cnVlLFxyXG4gICAgICBob3Q6dHJ1ZSxcclxuICAgICAgb3ZlcmxheToge1xyXG4gICAgICAgIHdhcm5pbmdzOiBmYWxzZSxcclxuICAgICAgICBlcnJvcnM6IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGhvc3Q6ICcwLjAuMC4wJywgXHJcbiAgICAgIHByb3h5OiB7XHJcbiAgICAgICAgW3Byb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEldOiB7XHJcbiAgICAgICAgICAvL1x1OEZEOVx1OTFDQ1x1NjYyRlx1NTE2Q1x1NTE3MVx1OTBFOFx1NTIwNlx1RkYwQ1x1NTcyOFx1OEMwM1x1NzUyOFx1NjNBNVx1NTNFM1x1NjVGNlx1NTQwRVx1OTc2Mlx1NjNBNVx1NEUwRFx1NzZGOFx1NTQwQ1x1NzY4NFx1OTBFOFx1NTIwNlxyXG4gICAgICAgICAgdGFyZ2V0OiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJLCAvL1x1NEZFRVx1NjUzOVx1NTQwRVx1NTNGMFx1NjNBNVx1NTNFM1x1NTczMFx1NTc0MFxyXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLCAvL1x1NUYwMFx1NTQyRlx1OERFOFx1NTdERlxyXG4gICAgICAgICAgcGF0aFJld3JpdGU6IHtcclxuICAgICAgICAgICAgLy9cdTkxQ0RcdTU0N0RcdTU0MERcclxuICAgICAgICAgICAgW1wiXlwiICsgcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSV06IFwiXCIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgJ14vYXBpJzoge1xyXG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cDovL2Rldi1lcnAtYXBpLnh0a2o5OS5jb206Nzg5MCcsIFxyXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkaXNhYmxlSG9zdENoZWNrOiB0cnVlLCBcclxuICAgIH0sXHJcbiAgICByZXNvbHZlOiB7XHJcbiAgICAgIC8vIFx1OEJCRVx1N0Y2RVx1OERFRlx1NUY4NFx1NTIyQlx1NTQwRFxyXG4gICAgICBhbGlhczogeyBcclxuICAgICAgICAnQCc6IHBhdGguam9pbihfX2Rpcm5hbWUsJy9zcmMnKSxcclxuICAgICAgICAnQHNlcnZpY2VzJzogcGF0aC5qb2luKF9fZGlybmFtZSwnL3NyYy9zZXJ2aWNlcycpLFxyXG4gICAgICAgICdAYXhpb3Nob29rcyc6IHBhdGguam9pbihfX2Rpcm5hbWUsJy9zcmMvc2VydmljZXMvYXhpb3Nob29rcycpLFxyXG4gICAgICAgICdAYXNzZXRzJzogcGF0aC5qb2luKF9fZGlybmFtZSwnL3NyYy9hc3NldHMnKSxcclxuICAgICAgICAnQGNvbXBvbmVudHMnOnBhdGguam9pbihfX2Rpcm5hbWUsJy9zcmMvY29tcG9uZW50cycpLFxyXG4gICAgICAgICdAYXBpJzpwYXRoLmpvaW4oX19kaXJuYW1lLCcvc3JjL3NlcnZpY2VzL2FwaScpLFxyXG4gICAgICAgICdAdW50aWxzJzpwYXRoLmpvaW4oX19kaXJuYW1lLCcvc3JjL3VudGlscycpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjc3M6IHtcclxuICAgICAgLy8gXHU2NjJGXHU1NDI2XHU0RjdGXHU3NTI4Y3NzXHU1MjA2XHU3OUJCXHU2M0QyXHU0RUY2IEV4dHJhY3RUZXh0UGx1Z2luXHJcbiAgICAgIGV4dHJhY3Q6IHsgXHJcbiAgICAgICAgZmlsZW5hbWU6IGBzdGF0aWMvanMvY2h1bmstW2hhc2hdLmNzc2AgXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgY29uZmlndXJlV2VicGFjazoge1xyXG4gICAgICBvdXRwdXQ6IHsgXHJcbiAgICAgICAgZmlsZW5hbWU6IGBzdGF0aWMvanMvY2h1bmstW2hhc2hdLmpzYCBcclxuICAgICAgfSxcclxuICAgICAgbW9kdWxlOiB7XHJcbiAgICAgICAgcnVsZXM6IFsgXHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGVzdDogL1xcLmpzJC8sXHJcbiAgICAgICAgICAgIGluY2x1ZGU6IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsJy4uL3NyYycpLFxyXG4gICAgICAgICAgICBleGNsdWRlOi9ub2RlX21vZHVsZXMvLFxyXG4gICAgICAgICAgICB1c2U6IFtcclxuICAgICAgICAgICAgICAnY2FjaGUtbG9hZGVyJyxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsb2FkZXI6ICd0aHJlYWQtbG9hZGVyJyxcclxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsgXHJcbiAgICAgICAgICAgICAgICAgIHdvcmtlcnM6IDJcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICdiYWJsZS1sb2FkZXInXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICAvLyBwcm92aWRlIHRoZSBhcHAncyB0aXRsZSBpbiB3ZWJwYWNrJ3MgbmFtZSBmaWVsZCwgc28gdGhhdFxyXG4gICAgLy8gaXQgY2FuIGJlIGFjY2Vzc2VkIGluIGluZGV4Lmh0bWwgdG8gaW5qZWN0IHRoZSBjb3JyZWN0IHRpdGxlLlxyXG4gICAgbmFtZTogbmFtZSxcclxuICAgIG9wdGltaXphdGlvbjp7XHJcbiAgICAgIG1pbmltaXplcjogW1xyXG4gICAgICAgIC8vIEZvciB3ZWJwYWNrQDUgeW91IGNhbiB1c2UgdGhlIGAuLi5gIHN5bnRheCB0byBleHRlbmQgZXhpc3RpbmcgbWluaW1pemVycyAoaS5lLiBgdGVyc2VyLXdlYnBhY2stcGx1Z2luYCksIHVuY29tbWVudCB0aGUgbmV4dCBsaW5lXHJcbiAgICAgICAgLy8gYC4uLmAsXHJcbiAgICAgICAgbmV3IENzc01pbmltaXplclBsdWdpbigpLFxyXG4gICAgICAgIG5ldyBUZXJzZXJQbHVnaW4oe1xyXG4gICAgICAgICAgdGVyc2VyT3B0aW9uczoge1xyXG4gICAgICAgICAgICBjb21wcmVzczoge1xyXG4gICAgICAgICAgICAgIGRyb3BfY29uc29sZTogdHJ1ZSwgLy8gXHU3NTFGXHU0RUE3XHU3M0FGXHU1ODgzXHU4MUVBXHU1MkE4XHU1MjIwXHU5NjY0Y29uc29sZVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gIFxyXG4gICAgY2hhaW5XZWJwYWNrKGNvbmZpZykge1xyXG4gICAgICAvLyBpdCBjYW4gaW1wcm92ZSB0aGUgc3BlZWQgb2YgdGhlIGZpcnN0IHNjcmVlbiwgaXQgaXMgcmVjb21tZW5kZWQgdG8gdHVybiBvbiBwcmVsb2FkXHJcbiAgICAgIGNvbmZpZy5wbHVnaW4oXCJwcmVsb2FkXCIpLnRhcCgoKSA9PiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcmVsOiBcInByZWxvYWRcIixcclxuICAgICAgICAgIC8vIHRvIGlnbm9yZSBydW50aW1lLmpzXHJcbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdnVlanMvdnVlLWNsaS9ibG9iL2Rldi9wYWNrYWdlcy9AdnVlL2NsaS1zZXJ2aWNlL2xpYi9jb25maWcvYXBwLmpzI0wxNzFcclxuICAgICAgICAgIGZpbGVCbGFja2xpc3Q6IFsvXFwubWFwJC8sIC9ob3QtdXBkYXRlXFwuanMkLywgL3J1bnRpbWVcXC4uKlxcLmpzJC9dLFxyXG4gICAgICAgICAgaW5jbHVkZTogXCJpbml0aWFsXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSk7XHJcbiAgICBcclxuICAgICAgXHJcbiAgICAgIC8vIHdoZW4gdGhlcmUgYXJlIG1hbnkgcGFnZXMsIGl0IHdpbGwgY2F1c2UgdG9vIG1hbnkgbWVhbmluZ2xlc3MgcmVxdWVzdHNcclxuICAgICBjb25maWcucGx1Z2lucy5kZWxldGUoXCJwcmVmZXRjaFwiKTtcclxuICAgIFxyXG4gIFxyXG4gICAgICAvLyBzZXQgc3ZnLXNwcml0ZS1sb2FkZXJcclxuICAgICAgY29uZmlnLm1vZHVsZS5ydWxlKFwic3ZnXCIpLmV4Y2x1ZGUuYWRkKHJlc29sdmUoXCJzcmMvaWNvbnNcIikpLmVuZCgpO1xyXG4gICAgICBjb25maWcubW9kdWxlXHJcbiAgICAgICAgLnJ1bGUoXCJpY29uc1wiKVxyXG4gICAgICAgIC50ZXN0KC9cXC5zdmckLylcclxuICAgICAgICAuaW5jbHVkZS5hZGQocmVzb2x2ZShcInNyYy9pY29uc1wiKSlcclxuICAgICAgICAuZW5kKClcclxuICAgICAgICAudXNlKFwic3ZnLXNwcml0ZS1sb2FkZXJcIilcclxuICAgICAgICAubG9hZGVyKFwic3ZnLXNwcml0ZS1sb2FkZXJcIilcclxuICAgICAgICAub3B0aW9ucyh7XHJcbiAgICAgICAgICBzeW1ib2xJZDogYGljb24tW25hbWVdLiR7VmVyc2lvbn0uW2V4dF1gLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmVuZCgpO1xyXG4gICAgICAgIFxyXG4gICAgICBjb25maWcud2hlbihwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJkZXZlbG9wbWVudFwiLCAoY29uZmlnKSA9PiB7IFxyXG4gICAgICAgIGNvbmZpZ1xyXG4gICAgICAgICAgLnBsdWdpbihcIlNjcmlwdEV4dEh0bWxXZWJwYWNrUGx1Z2luXCIpXHJcbiAgICAgICAgICAuYWZ0ZXIoXCJodG1sXCIpXHJcbiAgICAgICAgICAudXNlKFwic2NyaXB0LWV4dC1odG1sLXdlYnBhY2stcGx1Z2luXCIsIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIC8vIGBydW50aW1lYCBtdXN0IHNhbWUgYXMgcnVudGltZUNodW5rIG5hbWUuIGRlZmF1bHQgaXMgYHJ1bnRpbWVgXHJcbiAgICAgICAgICAgICAgaW5saW5lOiAvcnVudGltZVxcLi4qXFwuanMkLyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0pXHJcbiAgICAgICAgICAuZW5kKCk7IFxyXG4gICAgICAgIGNvbmZpZy5vcHRpbWl6YXRpb24uc3BsaXRDaHVua3Moe1xyXG4gICAgICAgICAgY2h1bmtzOiBcImFsbFwiLFxyXG4gICAgICAgICAgY2FjaGVHcm91cHM6IHtcclxuICAgICAgICAgICAgbGliczoge1xyXG4gICAgICAgICAgICAgIG5hbWU6IFwiY2h1bmstbGlic1wiLFxyXG4gICAgICAgICAgICAgIHRlc3Q6IC9bXFxcXC9dbm9kZV9tb2R1bGVzW1xcXFwvXS8sXHJcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxyXG4gICAgICAgICAgICAgIGNodW5rczogXCJpbml0aWFsXCIsIC8vIG9ubHkgcGFja2FnZSB0aGlyZCBwYXJ0aWVzIHRoYXQgYXJlIGluaXRpYWxseSBkZXBlbmRlbnRcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZWxlbWVudFVJOiB7XHJcbiAgICAgICAgICAgICAgbmFtZTogXCJjaHVuay1lbGVtZW50VUlcIiwgLy8gc3BsaXQgZWxlbWVudFVJIGludG8gYSBzaW5nbGUgcGFja2FnZVxyXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAyMCwgLy8gdGhlIHdlaWdodCBuZWVkcyB0byBiZSBsYXJnZXIgdGhhbiBsaWJzIGFuZCBhcHAgb3IgaXQgd2lsbCBiZSBwYWNrYWdlZCBpbnRvIGxpYnMgb3IgYXBwXHJcbiAgICAgICAgICAgICAgdGVzdDogL1tcXFxcL11ub2RlX21vZHVsZXNbXFxcXC9dXz9lbGVtZW50LXVpKC4qKS8sIC8vIGluIG9yZGVyIHRvIGFkYXB0IHRvIGNucG1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgY29tbW9uczoge1xyXG4gICAgICAgICAgICAgIG5hbWU6IFwiY2h1bmstY29tbW9uc1wiLFxyXG4gICAgICAgICAgICAgIHRlc3Q6IHJlc29sdmUoXCJzcmMvY29tcG9uZW50c1wiKSwgLy8gY2FuIGN1c3RvbWl6ZSB5b3VyIHJ1bGVzXHJcbiAgICAgICAgICAgICAgbWluQ2h1bmtzOiAzLCAvLyAgbWluaW11bSBjb21tb24gbnVtYmVyXHJcbiAgICAgICAgICAgICAgcHJpb3JpdHk6IDUsXHJcbiAgICAgICAgICAgICAgcmV1c2VFeGlzdGluZ0NodW5rOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBodHRwczovLyB3ZWJwYWNrLmpzLm9yZy9jb25maWd1cmF0aW9uL29wdGltaXphdGlvbi8jb3B0aW1pemF0aW9ucnVudGltZWNodW5rXHJcbiAgICAgICAgY29uZmlnLm9wdGltaXphdGlvbi5ydW50aW1lQ2h1bmsoXCJzaW5nbGVcIik7XHJcbiAgICAgICAgY29uZmlnLm9wdGltaXphdGlvbi5taW5pbWl6ZXIoXCJ0ZXJzZXJcIikudGFwKChhcmdzKSA9PiB7XHJcbiAgICAgICAgICBhcmdzWzBdLnBhcmFsbGVsID0gNDtcclxuICAgICAgICAgIGFyZ3NbMF0udGVyc2VyT3B0aW9ucy5jb21wcmVzcy53YXJuaW5ncyA9IHRydWU7XHJcbiAgICAgICAgICBhcmdzWzBdLnRlcnNlck9wdGlvbnMuY29tcHJlc3MuZHJvcF9kZWJ1Z2dlciA9IHRydWU7XHJcbiAgICAgICAgICBhcmdzWzBdLnRlcnNlck9wdGlvbnMuY29tcHJlc3MuZHJvcF9jb25zb2xlID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybiBhcmdzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfVxyXG59KVxyXG5cclxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFzVSxTQUFTLGNBQWMsZUFBYztBQUMzVyxPQUFPLFNBQVM7QUFD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