|
|
// vite.config.ts
|
|
|
import { defineConfig, loadEnv } from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/vite/dist/node/index.js";
|
|
|
import basicSsl from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/@vitejs/plugin-basic-ssl/dist/index.mjs";
|
|
|
import Icons2 from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-icons/dist/vite.js";
|
|
|
import IconsResolver3 from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-icons/dist/resolver.js";
|
|
|
import Components2 from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-vue-components/dist/vite.js";
|
|
|
|
|
|
// vite/plugins/index.ts
|
|
|
import vue from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/@vitejs/plugin-vue/dist/index.mjs";
|
|
|
|
|
|
// vite/plugins/unocss.ts
|
|
|
import UnoCss from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unocss/dist/vite.mjs";
|
|
|
var unocss_default = () => {
|
|
|
return UnoCss({
|
|
|
hmrTopLevelAwait: false
|
|
|
// unocss默认是true,低版本浏览器是不支持的,启动后会报错
|
|
|
});
|
|
|
};
|
|
|
|
|
|
// vite/plugins/auto-import.ts
|
|
|
import AutoImport from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-auto-import/dist/vite.js";
|
|
|
import { ElementPlusResolver } from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-vue-components/dist/resolvers.js";
|
|
|
import IconsResolver from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-icons/dist/resolver.js";
|
|
|
var __vite_injected_original_dirname = "/Users/ysg/Desktop/\u5F00\u53D1/mom\u5E73\u53F0/vite/plugins";
|
|
|
var auto_import_default = (path3) => {
|
|
|
return AutoImport({
|
|
|
// 自动导入 Vue 相关函数
|
|
|
imports: ["vue", "vue-router", "@vueuse/core", "pinia"],
|
|
|
eslintrc: {
|
|
|
enabled: false,
|
|
|
filepath: "./.eslintrc-auto-import.json",
|
|
|
globalsPropValue: true
|
|
|
},
|
|
|
resolvers: [
|
|
|
// 自动导入 Element Plus 相关函数ElMessage, ElMessageBox... (带样式)
|
|
|
ElementPlusResolver(),
|
|
|
IconsResolver({
|
|
|
prefix: "Icon"
|
|
|
})
|
|
|
],
|
|
|
vueTemplate: true,
|
|
|
// 是否在 vue 模板中自动导入
|
|
|
dts: path3.resolve(path3.resolve(__vite_injected_original_dirname, "../../src"), "types", "auto-imports.d.ts")
|
|
|
});
|
|
|
};
|
|
|
|
|
|
// vite/plugins/components.ts
|
|
|
import Components from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-vue-components/dist/vite.js";
|
|
|
import { ElementPlusResolver as ElementPlusResolver2 } from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-vue-components/dist/resolvers.js";
|
|
|
import IconsResolver2 from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-icons/dist/resolver.js";
|
|
|
var __vite_injected_original_dirname2 = "/Users/ysg/Desktop/\u5F00\u53D1/mom\u5E73\u53F0/vite/plugins";
|
|
|
var components_default = (path3) => {
|
|
|
return Components({
|
|
|
resolvers: [
|
|
|
// 自动导入 Element Plus 组件
|
|
|
ElementPlusResolver2(),
|
|
|
// 自动注册图标组件
|
|
|
IconsResolver2({
|
|
|
enabledCollections: ["ep"]
|
|
|
})
|
|
|
],
|
|
|
dts: path3.resolve(path3.resolve(__vite_injected_original_dirname2, "../../src"), "types", "components.d.ts")
|
|
|
});
|
|
|
};
|
|
|
|
|
|
// vite/plugins/icons.ts
|
|
|
import Icons from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-icons/dist/vite.js";
|
|
|
var icons_default = () => {
|
|
|
return Icons({
|
|
|
// 自动安装图标库
|
|
|
autoInstall: true
|
|
|
});
|
|
|
};
|
|
|
|
|
|
// vite/plugins/svg-icon.ts
|
|
|
import { createSvgIconsPlugin } from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/vite-plugin-svg-icons/dist/index.mjs";
|
|
|
var __vite_injected_original_dirname3 = "/Users/ysg/Desktop/\u5F00\u53D1/mom\u5E73\u53F0/vite/plugins";
|
|
|
var svg_icon_default = (path3, isBuild) => {
|
|
|
return createSvgIconsPlugin({
|
|
|
// 指定需要缓存的图标文件夹
|
|
|
iconDirs: [path3.resolve(path3.resolve(__vite_injected_original_dirname3, "../../src"), "assets/icons/svg")],
|
|
|
// 指定symbolId格式
|
|
|
symbolId: "icon-[dir]-[name]",
|
|
|
svgoOptions: isBuild
|
|
|
});
|
|
|
};
|
|
|
|
|
|
// vite/plugins/compression.ts
|
|
|
import compression from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/vite-plugin-compression/dist/index.mjs";
|
|
|
var compression_default = (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.ts
|
|
|
import setupExtend from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/unplugin-vue-setup-extend-plus/dist/vite.js";
|
|
|
var setup_extend_default = () => {
|
|
|
return setupExtend({});
|
|
|
};
|
|
|
|
|
|
// vite/plugins/i18n.ts
|
|
|
import VueI18nPlugin from "file:///Users/ysg/Desktop/%E5%BC%80%E5%8F%91/mom%E5%B9%B3%E5%8F%B0/node_modules/@intlify/unplugin-vue-i18n/lib/vite.mjs";
|
|
|
var __vite_injected_original_dirname4 = "/Users/ysg/Desktop/\u5F00\u53D1/mom\u5E73\u53F0/vite/plugins";
|
|
|
var i18n_default = (path3) => {
|
|
|
return VueI18nPlugin({
|
|
|
include: [path3.resolve(__vite_injected_original_dirname4, "../../src/lang/**.json")]
|
|
|
});
|
|
|
};
|
|
|
|
|
|
// vite/plugins/index.ts
|
|
|
import path from "path";
|
|
|
var plugins_default = (viteEnv, isBuild = false) => {
|
|
|
const vitePlugins = [];
|
|
|
vitePlugins.push(vue());
|
|
|
vitePlugins.push(unocss_default());
|
|
|
vitePlugins.push(auto_import_default(path));
|
|
|
vitePlugins.push(components_default(path));
|
|
|
vitePlugins.push(compression_default(viteEnv));
|
|
|
vitePlugins.push(icons_default());
|
|
|
vitePlugins.push(svg_icon_default(path, isBuild));
|
|
|
vitePlugins.push(setup_extend_default());
|
|
|
vitePlugins.push(i18n_default(path));
|
|
|
return vitePlugins;
|
|
|
};
|
|
|
|
|
|
// vite.config.ts
|
|
|
import path2 from "path";
|
|
|
var __vite_injected_original_dirname5 = "/Users/ysg/Desktop/\u5F00\u53D1/mom\u5E73\u53F0";
|
|
|
var vite_config_default = defineConfig(({ mode, command }) => {
|
|
|
const env = loadEnv(mode, process.cwd());
|
|
|
return {
|
|
|
// 部署生产环境和开发环境下的URL。
|
|
|
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
|
|
|
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
|
|
|
base: env.VITE_APP_CONTEXT_PATH,
|
|
|
resolve: {
|
|
|
alias: {
|
|
|
"~": path2.resolve(__vite_injected_original_dirname5, "./"),
|
|
|
"@": path2.resolve(__vite_injected_original_dirname5, "src")
|
|
|
},
|
|
|
extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"]
|
|
|
},
|
|
|
// https://cn.vitejs.dev/config/#resolve-extensions
|
|
|
plugins: [
|
|
|
plugins_default(env, command === "build"),
|
|
|
basicSsl(),
|
|
|
Components2({
|
|
|
resolvers: [
|
|
|
IconsResolver3({
|
|
|
compiler: "vue3"
|
|
|
})
|
|
|
]
|
|
|
}),
|
|
|
Icons2({
|
|
|
compiler: "vue3"
|
|
|
})
|
|
|
],
|
|
|
server: {
|
|
|
host: "0.0.0.0",
|
|
|
port: Number(env.VITE_APP_PORT),
|
|
|
// https: true,
|
|
|
open: true,
|
|
|
proxy: {
|
|
|
[env.VITE_APP_BASE_API]: {
|
|
|
// target: 'http://localhost:6080',
|
|
|
// target: 'https://frp-off.com:47543',
|
|
|
// target: 'http://192.168.100.102:6080',
|
|
|
// target: 'http://192.168.100.100:6080',
|
|
|
// target: 'http://1.13.177.47:6080',
|
|
|
target: "http://192.168.0.15:6080",
|
|
|
changeOrigin: true,
|
|
|
ws: true,
|
|
|
rewrite: (path3) => path3.replace(new RegExp("^" + env.VITE_APP_BASE_API), "")
|
|
|
},
|
|
|
"/dev-api2": {
|
|
|
target: "http://localhost:6082",
|
|
|
changeOrigin: true,
|
|
|
ws: true,
|
|
|
rewrite: (path3) => path3.replace(new RegExp("^" + env.VITE_APP_BASE_API), "")
|
|
|
},
|
|
|
"/dev-api3": {
|
|
|
target: "http://localhost:6083",
|
|
|
changeOrigin: true,
|
|
|
ws: true,
|
|
|
secure: false,
|
|
|
rewrite: (path3) => path3.replace(new RegExp("^" + env.VITE_APP_BASE_API), "")
|
|
|
},
|
|
|
"/deva-api": {
|
|
|
target: `http://175.27.215.92/prod-api`,
|
|
|
changeOrigin: true,
|
|
|
ws: true,
|
|
|
rewrite: (path3) => path3.replace(new RegExp("^/deva-api"), "")
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
css: {
|
|
|
preprocessorOptions: {
|
|
|
scss: {
|
|
|
javascriptEnabled: true
|
|
|
}
|
|
|
},
|
|
|
postcss: {
|
|
|
plugins: [
|
|
|
{
|
|
|
postcssPlugin: "internal:charset-removal",
|
|
|
AtRule: {
|
|
|
charset: (atRule) => {
|
|
|
if (atRule.name === "charset") {
|
|
|
atRule.remove();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
},
|
|
|
// 预编译
|
|
|
optimizeDeps: {
|
|
|
include: [
|
|
|
"vue",
|
|
|
"vue-router",
|
|
|
"pinia",
|
|
|
"axios",
|
|
|
"@vueuse/core",
|
|
|
"echarts",
|
|
|
"vue-i18n",
|
|
|
"@vueup/vue-quill",
|
|
|
"bpmn-js/lib/Viewer",
|
|
|
"bpmn-js/lib/Modeler.js",
|
|
|
"bpmn-js-properties-panel",
|
|
|
"min-dash",
|
|
|
"diagram-js/lib/navigation/movecanvas",
|
|
|
"diagram-js/lib/navigation/zoomscroll",
|
|
|
"bpmn-js/lib/features/palette/PaletteProvider",
|
|
|
"bpmn-js/lib/features/context-pad/ContextPadProvider",
|
|
|
"diagram-js/lib/draw/BaseRenderer",
|
|
|
"tiny-svg",
|
|
|
"image-conversion",
|
|
|
"element-plus/es/components/**/css"
|
|
|
]
|
|
|
}
|
|
|
};
|
|
|
});
|
|
|
export {
|
|
|
vite_config_default as default
|
|
|
};
|
|
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAidml0ZS9wbHVnaW5zL2luZGV4LnRzIiwgInZpdGUvcGx1Z2lucy91bm9jc3MudHMiLCAidml0ZS9wbHVnaW5zL2F1dG8taW1wb3J0LnRzIiwgInZpdGUvcGx1Z2lucy9jb21wb25lbnRzLnRzIiwgInZpdGUvcGx1Z2lucy9pY29ucy50cyIsICJ2aXRlL3BsdWdpbnMvc3ZnLWljb24udHMiLCAidml0ZS9wbHVnaW5zL2NvbXByZXNzaW9uLnRzIiwgInZpdGUvcGx1Z2lucy9zZXR1cC1leHRlbmQudHMiLCAidml0ZS9wbHVnaW5zL2kxOG4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMveXNnL0Rlc2t0b3AvXHU1RjAwXHU1M0QxL21vbVx1NUU3M1x1NTNGMFwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3lzZy9EZXNrdG9wL1x1NUYwMFx1NTNEMS9tb21cdTVFNzNcdTUzRjAvdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3lzZy9EZXNrdG9wLyVFNSVCQyU4MCVFNSU4RiU5MS9tb20lRTUlQjklQjMlRTUlOEYlQjAvdml0ZS5jb25maWcudHNcIjtpbXBvcnQgeyBDb25maWdFbnYsIGRlZmluZUNvbmZpZywgbG9hZEVudiwgVXNlckNvbmZpZyB9IGZyb20gJ3ZpdGUnO1xuaW1wb3J0IGJhc2ljU3NsIGZyb20gJ0B2aXRlanMvcGx1Z2luLWJhc2ljLXNzbCc7XG5pbXBvcnQgSWNvbnMgZnJvbSAndW5wbHVnaW4taWNvbnMvdml0ZSc7XG5pbXBvcnQgSWNvbnNSZXNvbHZlciBmcm9tICd1bnBsdWdpbi1pY29ucy9yZXNvbHZlcic7XG5pbXBvcnQgQ29tcG9uZW50cyBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy92aXRlJztcblxuaW1wb3J0IGNyZWF0ZVBsdWdpbnMgZnJvbSAnLi92aXRlL3BsdWdpbnMnO1xuXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoKHsgbW9kZSwgY29tbWFuZCB9OiBDb25maWdFbnYpOiBVc2VyQ29uZmlnID0+IHtcbiAgY29uc3QgZW52ID0gbG9hZEVudihtb2RlLCBwcm9jZXNzLmN3ZCgpKTtcbiAgcmV0dXJuIHtcbiAgICAvLyBcdTkwRThcdTdGNzJcdTc1MUZcdTRFQTdcdTczQUZcdTU4ODNcdTU0OENcdTVGMDBcdTUzRDFcdTczQUZcdTU4ODNcdTRFMEJcdTc2ODRVUkxcdTMwMDJcbiAgICAvLyBcdTlFRDhcdThCQTRcdTYwQzVcdTUxQjVcdTRFMEJcdUZGMEN2aXRlIFx1NEYxQVx1NTA0N1x1OEJCRVx1NEY2MFx1NzY4NFx1NUU5NFx1NzUyOFx1NjYyRlx1ODhBQlx1OTBFOFx1N0Y3Mlx1NTcyOFx1NEUwMFx1NEUyQVx1NTdERlx1NTQwRFx1NzY4NFx1NjgzOVx1OERFRlx1NUY4NFx1NEUwQVxuICAgIC8vIFx1NEY4Qlx1NTk4MiBodHRwczovL3d3dy5ydW95aS52aXAvXHUzMDAyXHU1OTgyXHU2NzlDXHU1RTk0XHU3NTI4XHU4OEFCXHU5MEU4XHU3RjcyXHU1NzI4XHU0RTAwXHU0RTJBXHU1QjUwXHU4REVGXHU1Rjg0XHU0RTBBXHVGRjBDXHU0RjYwXHU1QzMxXHU5NzAwXHU4OTgxXHU3NTI4XHU4RkQ5XHU0RTJBXHU5MDA5XHU5ODc5XHU2MzA3XHU1QjlBXHU4RkQ5XHU0RTJBXHU1QjUwXHU4REVGXHU1Rjg0XHUzMDAyXHU0RjhCXHU1OTgyXHVGRjBDXHU1OTgyXHU2NzlDXHU0RjYwXHU3Njg0XHU1RTk0XHU3NTI4XHU4OEFCXHU5MEU4XHU3RjcyXHU1NzI4IGh0dHBzOi8vd3d3LnJ1b3lpLnZpcC9hZG1pbi9cdUZGMENcdTUyMTlcdThCQkVcdTdGNkUgYmFzZVVybCBcdTRFM0EgL2FkbWluL1x1MzAwMlxuICAgIGJhc2U6IGVudi5WSVRFX0FQUF9DT05URVhUX1BBVEgsXG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgJ34nOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi8nKSxcbiAgICAgICAgJ0AnOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnc3JjJylcbiAgICAgIH0sXG4gICAgICBleHRlbnNpb25zOiBbJy5tanMnLCAnLmpzJywgJy50cycsICcuanN4JywgJy50c3gnLCAnLmpzb24nLCAnLnZ1ZSddXG4gICAgfSxcbiAgICAvLyBodHRwczovL2NuLnZpdGVqcy5kZXYvY29uZmlnLyNyZXNvbHZlLWV4dGVuc2lvbnNcbiAgICBwbHVnaW5zOiBbY3JlYXRlUGx1Z2lucyhlbnYsIGNvbW1hbmQgPT09ICdidWlsZCcpLCBiYXNpY1NzbCgpLFxuICAgICAgQ29tcG9uZW50cyh7XG4gICAgICAgIHJlc29sdmVyczogW1xuICAgICAgICAgIEljb25zUmVzb2x2ZXIoe1xuICAgICAgICAgICAgY29tcGlsZXI6ICd2dWUzJ1xuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH0pLFxuICAgICAgSWNvbnMoe1xuICAgICAgICBjb21waWxlcjogJ3Z1ZTMnXG4gICAgICB9KV0sXG4gICAgc2VydmVyOiB7XG4gICAgICBob3N0OiAnMC4wLjAuMCcsXG4gICAgICBwb3J0OiBOdW1iZXIoZW52LlZJVEVfQVBQX1BPUlQpLFxuICAgICAgLy8gaHR0cHM6IHRydWUsXG4gICAgICBvcGVuOiB0cnVlLFxuICAgICAgcHJveHk6IHtcbiAgICAgICAgW2Vudi5WSVRFX0FQUF9CQVNFX0FQSV06IHtcbiAgICAgICAgICAvLyB0YXJnZXQ6ICdodHRwOi8vbG9jYWxob3N0OjYwODAnLFxuICAgICAgICAgIC8vIHRhcmdldDogJ2h0dHBzOi8vZnJwLW9mZi5jb206NDc1NDMnLFxuICAgICAgICAgIC8vIHRhcmdldDogJ2h0dHA6Ly8xOTIuMTY4LjEwMC4xMDI6NjA4MCcsXG4gICAgICAgICAgLy8gdGFyZ2V0OiAnaHR0cDovLzE5Mi4xNjguMTAwLjEwMDo2MDgwJyxcbiAgICAgICAgICAvLyB0YXJnZXQ6ICdodHRwOi8vMS4xMy4xNzcuNDc6NjA4MCcsXG4gICAgICAgICAgdGFyZ2V0OiAnaHR0cDovLzE5Mi4xNjguMC4xNTo2MDgwJyxcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgICAgICAgd3M6IHRydWUsXG4gICAgICAgICAgcmV3cml0ZTogKHBhdGgpID0+IHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKCdeJyArIGVudi5WSVRFX0FQUF9CQVNFX0FQSSksICcnKVxuICAgICAgICB9LFxuICAgICAgICAnL2Rldi1hcGkyJzoge1xuICAgICAgICAgIHRhcmdldDogJ2h0dHA6Ly9sb2NhbGhvc3Q6NjA4MicsXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgICAgICAgIHdzOiB0cnVlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cCgnXicgKyBlbnYuVklURV9BUFBfQkFTRV9BUEkpLCAnJylcbiAgICAgICAgfSxcbiAgICAgICAgJy9kZXYtYXBpMyc6IHtcbiAgICAgICAgICB0YXJnZXQ6ICdodHRwOi8vbG9jYWxob3N0OjYwODMnLFxuICAgICAgICAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgICB3czogdHJ1ZSxcbiAgICAgICAgICBzZWN1cmU6IGZhbHNlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cCgnXicgKyBlbnYuVklURV9BUFBfQkFTRV9BUEkpLCAnJylcbiAgICAgICAgfSxcbiAgICAgICAgJy9kZXZhLWFwaSc6IHtcbiAgICAgICAgICB0YXJnZXQ6IGBodHRwOi8vMTc1LjI3LjIxNS45Mi9wcm9kLWFwaWAsXG4gICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgICAgICAgIHdzOiB0cnVlLFxuICAgICAgICAgIHJld3JpdGU6IChwYXRoKSA9PiBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cCgnXicgKyAnL2RldmEtYXBpJyksICcnKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBjc3M6IHtcbiAgICAgIHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcbiAgICAgICAgc2Nzczoge1xuICAgICAgICAgIGphdmFzY3JpcHRFbmFibGVkOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBwb3N0Y3NzOiB7XG4gICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwb3N0Y3NzUGx1Z2luOiAnaW50ZXJuYWw6Y2hhcnNldC1yZW1vdmFsJyxcbiAgICAgICAgICAgIEF0UnVsZToge1xuICAgICAgICAgICAgICBjaGFyc2V0OiAoYXRSdWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGF0UnVsZS5uYW1lID09PSAnY2hhcnNldCcpIHtcbiAgICAgICAgICAgICAgICAgIGF0UnVsZS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIFx1OTg4NFx1N0YxNlx1OEJEMVxuICAgIG9wdGltaXplRGVwczoge1xuICAgICAgaW5jbHVkZTogW1xuICAgICAgICAndnVlJyxcbiAgICAgICAgJ3Z1ZS1yb3V0ZXInLFxuICAgICAgICAncGluaWEnLFxuICAgICAgICAnYXhpb3MnLFxuICAgICAgICAnQHZ1ZXVzZS9jb3JlJyxcbiAgICAgICAgJ2VjaGFydHMnLFxuICAgICAgICAndnVlLWkxOG4nLFxuICAgICAgICAnQHZ1ZXVwL3Z1ZS1xdWlsbCcsXG4gICAgICAgICdicG1uLWpzL2xpYi9WaWV3ZXInLFxuICAgICAgICAnYnBtbi1qcy9saWIvTW9kZWxlci5qcycsXG4gICAgICAgICdicG1uLWpzLXByb3BlcnRpZXMtcGFuZWwnLFxuICAgICAgICAnbWluLWRhc2gnLFxuICAgICAgICAnZGlhZ3JhbS1qcy9saWIvbmF2aWdhdGlvbi9tb3ZlY2FudmFzJyxcbiAgICAgICAgJ2RpYWdyYW0tanMvbGliL25hdmlnYXRpb24vem9vbXNjcm9sbCcsXG4gICAgICAgICdicG1uLWpzL2xpYi9mZWF0dXJlcy9wYWxldHRlL1BhbGV0dGVQcm92aWRlcicsXG4gICAgICAgICdicG1uLWpzL2xpYi9mZWF0dXJlcy9jb250ZXh0LXBhZC9Db250ZXh0UGFkUHJvdmlkZXInLFxuICAgICAgICAnZGlhZ3JhbS1qcy9saWIvZHJhdy9CYXNlUmVuZGVyZXInLFxuICAgICAgICAndGlueS1zdmcnLFxuICAgICAgICAnaW1hZ2UtY29udmVyc2lvbicsXG4gICAgICAgICdlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy8qKi9jc3MnXG4gICAgICBdXG4gICAgfVxuICB9O1xufSk7XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy95c2cvRGVza3RvcC9cdTVGMDBcdTUzRDEvbW9tXHU1RTczXHU1M0YwL3ZpdGUvcGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3lzZy9EZXNrdG9wL1x1NUYwMFx1NTNEMS9tb21cdTVFNzNcdTUzRjAvdml0ZS9wbHVnaW5zL2luZGV4LnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9Vc2Vycy95c2cvRGVza3RvcC8lRTUlQkMlODAlRTUlOEYlOTEvbW9tJUU1JUI5JUIzJUU1JThGJUIwL3ZpdGUvcGx1Z2lucy9pbmRleC50c1wiO2ltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJztcbmltcG9ydCBjcmVhdGVVbm9Dc3MgZnJvbSAnLi91bm9jc3MnO1xuaW1wb3J0IGNyZWF0ZUF1dG9JbXBvcnQgZnJvbSAnLi9hdXRvLWltcG9ydCc7XG5pbXBvcnQgY3JlYXRlQ29tcG9uZW50cyBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IGNyZWF0ZUljb25zIGZyb20gJy4vaWNvbnMnO1xuaW1wb3J0IGNyZWF0ZVN2Z0ljb25zUGx1Z2luIGZyb20gJy4vc3ZnLWljb24nO1xuaW1wb3J0IGNyZWF0ZUNvbXByZXNzaW9uIGZyb20gJy4vY29tcHJlc3Npb24nO1xuaW1wb3J0IGNyZWF0ZVNldHVwRXh0ZW5kIGZyb20gJy4vc2V0dXAtZXh0ZW5kJztcbmltcG9ydCBjcmVhdGVJMThuIGZyb20gJy4vaTE4bic7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuZXhwb3J0IGRlZmF1bHQgKHZpdGVFbnY6IGFueSwgaXNCdWlsZCA9IGZhbHNlKTogW10gPT4ge1xuICBjb25zdCB2aXRlUGx1Z2luczogYW55ID0gW107XG4gIHZpdGVQbHVnaW5zLnB1c2godnVlKCkpO1xuICB2aXRlUGx1Z2lucy5wdXNoKGNyZWF0ZVVub0NzcygpKTtcbiAgdml0ZVBsdWdpbnMucHVzaChjcmVhdGVBdXRvSW1wb3J0KHBhdGgpKTtcbiAgdml0ZVBsdWdpbnMucHVzaChjcmVhdGVDb21wb25lbnRzKHBhdGgpKTtcbiAgdml0ZVBsdWdpbnMucHVzaChjcmVhdGVDb21wcmVzc2lvbih2aXRlRW52KSk7XG4gIHZpdGVQbHVnaW5zLnB1c2goY3JlYXRlSWNvbnMoKSk7XG4gIHZpdGVQbHVnaW5zLnB1c2goY3JlYXRlU3ZnSWNvbnNQbHVnaW4ocGF0aCwgaXNCdWlsZCkpO1xuICB2aXRlUGx1Z2lucy5wdXNoKGNyZWF0ZVNldHVwRXh0ZW5kKCkpO1xuICB2aXRlUGx1Z2lucy5wdXNoKGNyZWF0ZUkxOG4ocGF0aCkpO1xuICByZXR1cm4gdml0ZVBsdWdpbnM7XG59O1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMveXNnL0Rlc2t0b3AvXHU1RjAwXHU1M0QxL21vbVx1NUU3M1x1NTNGMC92aXRlL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy95c2cvRGVza3RvcC9cdTVGMDBcdTUzRDEvbW9tXHU1RTczXHU1M0YwL3ZpdGUvcGx1Z2lucy91bm9jc3MudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3lzZy9EZXNrdG9wLyVFNSVCQyU4MCVFNSU4RiU5MS9tb20lRTUlQjklQjMlRTUlOEYlQjAvdml0ZS9wbHVnaW5zL3Vub2Nzcy50c1wiO2ltcG9ydCBVbm9Dc3MgZnJvbSAndW5vY3NzL3ZpdGUnO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJldHVybiBVbm9Dc3Moe1xuICAgIGhtclRvcExldmVsQXdhaXQ6IGZhbHNlIC8vIHVub2Nzc1x1OUVEOFx1OEJBNFx1NjYyRnRydWVcdUZGMENcdTRGNEVcdTcyNDhcdTY3MkNcdTZENEZcdTg5QzhcdTU2NjhcdTY2MkZcdTRFMERcdTY1MkZcdTYzMDFcdTc2ODRcdUZGMENcdTU0MkZcdTUyQThcdTU0MEVcdTRGMUFcdTYyQTVcdTk1MTlcbiAgfSk7XG59O1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMveXNnL0Rlc2t0b3AvXHU1RjAwXHU1M0QxL21vbVx1NUU3M1x1NTNGMC92aXRlL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy95c2cvRGVza3RvcC9cdTVGMDBcdTUzRDEvbW9tXHU1RTczXHU1M0YwL3ZpdGUvcGx1Z2lucy9hdXRvLWltcG9ydC50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMveXNnL0Rlc2t0b3AvJUU1JUJDJTgwJUU1JThGJTkxL21vbSVFNSVCOSVCMyVFNSU4RiVCMC92aXRlL3BsdWdpbnMvYXV0by1pbXBvcnQudHNcIjtpbXBvcnQgQXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJztcbmltcG9ydCB7IEVsZW1lbnRQbHVzUmVzb2x2ZXIgfSBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy9yZXNvbHZlcnMnO1xuaW1wb3J0IEljb25zUmVzb2x2ZXIgZnJvbSAndW5wbHVnaW4taWNvbnMvcmVzb2x2ZXInO1xuXG5leHBvcnQgZGVmYXVsdCAocGF0aDogYW55KSA9PiB7XG4gIHJldHVybiBBdXRvSW1wb3J0KHtcbiAgICAvLyBcdTgxRUFcdTUyQThcdTVCRkNcdTUxNjUgVnVlIFx1NzZGOFx1NTE3M1x1NTFGRFx1NjU3MFxuICAgIGltcG9ydHM6IFsndnVlJywgJ3Z1ZS1yb3V0ZXInLCAnQHZ1ZXVzZS9jb3JlJywgJ3BpbmlhJ10sXG4gICAgZXNsaW50cmM6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZmlsZXBhdGg6ICcuLy5lc2xpbnRyYy1hdXRvLWltcG9ydC5qc29uJyxcbiAgICAgIGdsb2JhbHNQcm9wVmFsdWU6IHRydWVcbiAgICB9LFxuICAgIHJlc29sdmVyczogW1xuICAgICAgLy8gXHU4MUVBXHU1MkE4XHU1QkZDXHU1MTY1IEVsZW1lbnQgUGx1cyBcdTc2RjhcdTUxNzNcdTUxRkRcdTY1NzBFbE1lc3NhZ2UsIEVsTWVzc2FnZUJveC4uLiAoXHU1RTI2XHU2ODM3XHU1RjBGKVxuICAgICAgRWxlbWVudFBsdXNSZXNvbHZlcigpLFxuICAgICAgSWNvbnNSZXNvbHZlcih7XG4gICAgICAgIHByZWZpeDogJ0ljb24nXG4gICAgICB9KVxuICAgIF0sXG4gICAgdnVlVGVtcGxhdGU6IHRydWUsIC8vIFx1NjYyRlx1NTQyNlx1NTcyOCB2dWUgXHU2QTIxXHU2NzdGXHU0RTJEXHU4MUVBXHU1MkE4XHU1QkZDXHU1MTY1XG4gICAgZHRzOiBwYXRoLnJlc29sdmUocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uLy4uL3NyYycpLCAndHlwZXMnLCAnYXV0by1pbXBvcnRzLmQudHMnKVxuICB9KTtcbn07XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy95c2cvRGVza3RvcC9cdTVGMDBcdTUzRDEvbW9tXHU1RTczXHU1M0YwL3ZpdGUvcGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3lzZy9EZXNrdG9wL1x1NUYwMFx1NTNEMS9tb21cdTVFNzNcdTUzRjAvdml0ZS9wbHVnaW5zL2NvbXBvbmVudHMudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3lzZy9EZXNrdG9wLyVFNSVCQyU4MCVFNSU4RiU5MS9tb20lRTUlQjklQjMlRTUlOEYlQjAvdml0ZS9wbHVnaW5zL2NvbXBvbmVudHMudHNcIjtpbXBvcnQgQ29tcG9uZW50cyBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy92aXRlJztcbmltcG9ydCB7IEVsZW1lbnRQbHVzUmVzb2x2ZXIgfSBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy9yZXNvbHZlcnMnO1xuaW1wb3J0IEljb25zUmVzb2x2ZXIgZnJvbSAndW5wbHVnaW4taWNvbnMvcmVzb2x2ZXInO1xuXG5leHBvcnQgZGVmYXVsdCAocGF0aDogYW55KSA9PiB7XG4gIHJldHVybiBDb21wb25lbnRzKHtcbiAgICByZXNvbHZlcnM6IFtcbiAgICAgIC8vIFx1ODFFQVx1NTJBOFx1NUJGQ1x1NTE2NSBFbGVtZW50IFBsdXMgXHU3RUM0XHU0RUY2XG4gICAgICBFbGVtZW50UGx1c1Jlc29sdmVyKCksXG4gICAgICAvLyBcdTgxRUFcdTUyQThcdTZDRThcdTUxOENcdTU2RkVcdTY4MDdcdTdFQzRcdTRFRjZcbiAgICAgIEljb25zUmVzb2x2ZXIoe1xuICAgICAgICBlbmFibGVkQ29sbGVjdGlvbnM6IFsnZXAnXVxuICAgICAgfSlcbiAgICBdLFxuICAgIGR0czogcGF0aC5yZXNvbHZlKHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLi8uLi9zcmMnKSwgJ3R5cGVzJywgJ2NvbXBvbmVudHMuZC50cycpXG4gIH0pO1xufTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3lzZy9EZXNrdG9wL1x1NUYwMFx1NTNEMS9tb21cdTVFNzNcdTUzRjAvdml0ZS9wbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMveXNnL0Rlc2t0b3AvXHU1RjAwXHU1M0QxL21vbVx1NUU3M1x1NTNGMC92aXRlL3BsdWdpbnMvaWNvbnMudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3lzZy9EZXNrdG9wLyVFNSVCQyU4MCVFNSU4RiU5MS9tb20lRTUlQjklQjMlRTUlOEYlQjAvdml0ZS9wbHVnaW5zL2ljb25zLnRzXCI7aW1wb3J0IEljb25zIGZyb20gJ3VucGx1Z2luLWljb25zL3ZpdGUnO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJldHVybiBJY29ucyh7XG4gICAgLy8gXHU4MUVBXHU1MkE4XHU1Qjg5XHU4OEM1XHU1NkZFXHU2ODA3XHU1RTkzXG4gICAgYXV0b0luc3RhbGw6IHRydWVcbiAgfSk7XG59O1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMveXNnL0Rlc2t0b3AvXHU1RjAwXHU1M0QxL21vbVx1NUU3M1x1NTNGMC92aXRlL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy95c2cvRGVza3RvcC9cdTVGMDBcdTUzRDEvbW9tXHU1RTczXHU1M0YwL3ZpdGUvcGx1Z2lucy9zdmctaWNvbi50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vVXNlcnMveXNnL0Rlc2t0b3AvJUU1JUJDJTgwJUU1JThGJTkxL21vbSVFNSVCOSVCMyVFNSU4RiVCMC92aXRlL3BsdWdpbnMvc3ZnLWljb24udHNcIjtpbXBvcnQgeyBjcmVhdGVTdmdJY29uc1BsdWdpbiB9IGZyb20gJ3ZpdGUtcGx1Z2luLXN2Zy1pY29ucyc7XG5leHBvcnQgZGVmYXVsdCAocGF0aDogYW55LCBpc0J1aWxkOiBib29sZWFuKSA9PiB7XG4gIHJldHVybiBjcmVhdGVTdmdJY29uc1BsdWdpbih7XG4gICAgLy8gXHU2MzA3XHU1QjlBXHU5NzAwXHU4OTgxXHU3RjEzXHU1QjU4XHU3Njg0XHU1NkZFXHU2ODA3XHU2NTg3XHU0RUY2XHU1OTM5XG4gICAgaWNvbkRpcnM6IFtwYXRoLnJlc29sdmUocGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uLy4uL3NyYycpLCAnYXNzZXRzL2ljb25zL3N2ZycpXSxcbiAgICAvLyBcdTYzMDdcdTVCOUFzeW1ib2xJZFx1NjgzQ1x1NUYwRlxuICAgIHN5bWJvbElkOiAnaWNvbi1bZGlyXS1bbmFtZV0nLFxuICAgIHN2Z29PcHRpb25zOiBpc0J1aWxkXG4gIH0pO1xufTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL1VzZXJzL3lzZy9EZXNrdG9wL1x1NUYwMFx1NTNEMS9tb21cdTVFNzNcdTUzRjAvdml0ZS9wbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMveXNnL0Rlc2t0b3AvXHU1RjAwXHU1M0QxL21vbVx1NUU3M1x1NTNGMC92aXRlL3BsdWdpbnMvY29tcHJlc3Npb24udHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3lzZy9EZXNrdG9wLyVFNSVCQyU4MCVFNSU4RiU5MS9tb20lRTUlQjklQjMlRTUlOEYlQjAvdml0ZS9wbHVnaW5zL2NvbXByZXNzaW9uLnRzXCI7aW1wb3J0IGNvbXByZXNzaW9uIGZyb20gJ3ZpdGUtcGx1Z2luLWNvbXByZXNzaW9uJztcblxuZXhwb3J0IGRlZmF1bHQgKGVudjogYW55KSA9PiB7XG4gIGNvbnN0IHsgVklURV9CVUlMRF9DT01QUkVTUyB9ID0gZW52O1xuICBjb25zdCBwbHVnaW46IGFueVtdID0gW107XG4gIGlmIChWSVRFX0JVSUxEX0NPTVBSRVNTKSB7XG4gICAgY29uc3QgY29tcHJlc3NMaXN0ID0gVklURV9CVUlMRF9DT01QUkVTUy5zcGxpdCgnLCcpO1xuICAgIGlmIChjb21wcmVzc0xpc3QuaW5jbHVkZXMoJ2d6aXAnKSkge1xuICAgICAgLy8gaHR0cDovL2RvYy5ydW95aS52aXAvcnVveWktdnVlL290aGVyL2ZhcS5odG1sI1x1NEY3Rlx1NzUyOGd6aXBcdTg5RTNcdTUzOEJcdTdGMjlcdTk3NTlcdTYwMDFcdTY1ODdcdTRFRjZcbiAgICAgIHBsdWdpbi5wdXNoKFxuICAgICAgICBjb21wcmVzc2lvbih7XG4gICAgICAgICAgZXh0OiAnLmd6JyxcbiAgICAgICAgICBkZWxldGVPcmlnaW5GaWxlOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKGNvbXByZXNzTGlzdC5pbmNsdWRlcygnYnJvdGxpJykpIHtcbiAgICAgIHBsdWdpbi5wdXNoKFxuICAgICAgICBjb21wcmVzc2lvbih7XG4gICAgICAgICAgZXh0OiAnLmJyJyxcbiAgICAgICAgICBhbGdvcml0aG06ICdicm90bGlDb21wcmVzcycsXG4gICAgICAgICAgZGVsZXRlT3JpZ2luRmlsZTogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBwbHVnaW47XG59O1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMveXNnL0Rlc2t0b3AvXHU1RjAwXHU1M0QxL21vbVx1NUU3M1x1NTNGMC92aXRlL3BsdWdpbnNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9Vc2Vycy95c2cvRGVza3RvcC9cdTVGMDBcdTUzRDEvbW9tXHU1RTczXHU1M0YwL3ZpdGUvcGx1Z2lucy9zZXR1cC1leHRlbmQudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3lzZy9EZXNrdG9wLyVFNSVCQyU4MCVFNSU4RiU5MS9tb20lRTUlQjklQjMlRTUlOEYlQjAvdml0ZS9wbHVnaW5zL3NldHVwLWV4dGVuZC50c1wiO2ltcG9ydCBzZXR1cEV4dGVuZCBmcm9tICd1bnBsdWdpbi12dWUtc2V0dXAtZXh0ZW5kLXBsdXMvdml0ZSc7XG5cbmV4cG9ydCBkZWZhdWx0ICgpID0+IHtcbiAgcmV0dXJuIHNldHVwRXh0ZW5kKHt9KTtcbn07XG4iLCAiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy95c2cvRGVza3RvcC9cdTVGMDBcdTUzRDEvbW9tXHU1RTczXHU1M0YwL3ZpdGUvcGx1Z2luc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL1VzZXJzL3lzZy9EZXNrdG9wL1x1NUYwMFx1NTNEMS9tb21cdTVFNzNcdTUzRjAvdml0ZS9wbHVnaW5zL2kxOG4udHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL3lzZy9EZXNrdG9wLyVFNSVCQyU4MCVFNSU4RiU5MS9tb20lRTUlQjklQjMlRTUlOEYlQjAvdml0ZS9wbHVnaW5zL2kxOG4udHNcIjtpbXBvcnQgVnVlSTE4blBsdWdpbiBmcm9tICdAaW50bGlmeS91bnBsdWdpbi12dWUtaTE4bi92aXRlJztcbmV4cG9ydCBkZWZhdWx0IChwYXRoOiBhbnkpID0+IHtcbiAgcmV0dXJuIFZ1ZUkxOG5QbHVnaW4oe1xuICAgIGluY2x1ZGU6IFtwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vLi4vc3JjL2xhbmcvKiouanNvbicpXVxuICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQW1TLFNBQW9CLGNBQWMsZUFBMkI7QUFDaFcsT0FBTyxjQUFjO0FBQ3JCLE9BQU9BLFlBQVc7QUFDbEIsT0FBT0Msb0JBQW1CO0FBQzFCLE9BQU9DLGlCQUFnQjs7O0FDSnVTLE9BQU8sU0FBUzs7O0FDQWQsT0FBTyxZQUFZO0FBRW5WLElBQU8saUJBQVEsTUFBTTtBQUNuQixTQUFPLE9BQU87QUFBQSxJQUNaLGtCQUFrQjtBQUFBO0FBQUEsRUFDcEIsQ0FBQztBQUNIOzs7QUNOMFUsT0FBTyxnQkFBZ0I7QUFDalcsU0FBUywyQkFBMkI7QUFDcEMsT0FBTyxtQkFBbUI7QUFGMUIsSUFBTSxtQ0FBbUM7QUFJekMsSUFBTyxzQkFBUSxDQUFDQyxVQUFjO0FBQzVCLFNBQU8sV0FBVztBQUFBO0FBQUEsSUFFaEIsU0FBUyxDQUFDLE9BQU8sY0FBYyxnQkFBZ0IsT0FBTztBQUFBLElBQ3RELFVBQVU7QUFBQSxNQUNSLFNBQVM7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUNWLGtCQUFrQjtBQUFBLElBQ3BCO0FBQUEsSUFDQSxXQUFXO0FBQUE7QUFBQSxNQUVULG9CQUFvQjtBQUFBLE1BQ3BCLGNBQWM7QUFBQSxRQUNaLFFBQVE7QUFBQSxNQUNWLENBQUM7QUFBQSxJQUNIO0FBQUEsSUFDQSxhQUFhO0FBQUE7QUFBQSxJQUNiLEtBQUtBLE1BQUssUUFBUUEsTUFBSyxRQUFRLGtDQUFXLFdBQVcsR0FBRyxTQUFTLG1CQUFtQjtBQUFBLEVBQ3RGLENBQUM7QUFDSDs7O0FDdkJ3VSxPQUFPLGdCQUFnQjtBQUMvVixTQUFTLHVCQUFBQyw0QkFBMkI7QUFDcEMsT0FBT0Msb0JBQW1CO0FBRjFCLElBQU1DLG9DQUFtQztBQUl6QyxJQUFPLHFCQUFRLENBQUNDLFVBQWM7QUFDNUIsU0FBTyxXQUFXO0FBQUEsSUFDaEIsV0FBVztBQUFBO0FBQUEsTUFFVEMscUJBQW9CO0FBQUE7QUFB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WCxRQUFRO0FBQUEsVUFDUixjQUFjO0FBQUEsVUFDZCxJQUFJO0FBQUEsVUFDSixTQUFTLENBQUNBLFVBQVNBLE1BQUssUUFBUSxJQUFJLE9BQU8sWUFBaUIsR0FBRyxFQUFFO0FBQUEsUUFDbkU7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsS0FBSztBQUFBLE1BQ0gscUJBQXFCO0FBQUEsUUFDbkIsTUFBTTtBQUFBLFVBQ0osbUJBQW1CO0FBQUEsUUFDckI7QUFBQSxNQUNGO0FBQUEsTUFDQSxTQUFTO0FBQUEsUUFDUCxTQUFTO0FBQUEsVUFDUDtBQUFBLFlBQ0UsZUFBZTtBQUFBLFlBQ2YsUUFBUTtBQUFBLGNBQ04sU0FBUyxDQUFDLFdBQVc7QUFDbkIsb0JBQUksT0FBTyxTQUFTLFdBQVc7QUFDN0IseUJBQU8sT0FBTztBQUFBLGdCQUNoQjtBQUFBLGNBQ0Y7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBO0FBQUEsSUFFQSxjQUFjO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJJY29ucyIsICJJY29uc1Jlc29sdmVyIiwgIkNvbXBvbmVudHMiLCAicGF0aCIsICJFbGVtZW50UGx1c1Jlc29sdmVyIiwgIkljb25zUmVzb2x2ZXIiLCAiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiLCAicGF0aCIsICJFbGVtZW50UGx1c1Jlc29sdmVyIiwgIkljb25zUmVzb2x2ZXIiLCAiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiLCAiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiLCAicGF0aCIsICJfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSIsICJfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSIsICJwYXRoIiwgIl9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lIiwgInBhdGgiLCAiX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUiLCAicGF0aCIsICJfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSIsICJDb21wb25lbnRzIiwgIkljb25zUmVzb2x2ZXIiLCAiSWNvbnMiXQp9Cg==
|