vite.config.ts.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. // vite.config.ts
  2. import path from "path";
  3. import { defineConfig } from "vite";
  4. import vue from "@vitejs/plugin-vue";
  5. import WindiCss from "vite-plugin-windicss";
  6. import AutoImport from "unplugin-auto-import/vite";
  7. import Components from "unplugin-vue-components/vite";
  8. import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
  9. import Icons from "unplugin-icons/vite";
  10. import IconsResolver from "unplugin-icons/resolver";
  11. // plugins/vite-plugin-conditional-compile.ts
  12. import MagicString from "magic-string";
  13. import { createFilter } from "vite";
  14. var config = void 0;
  15. var replaceMatched = (code, id) => {
  16. const env = config.env;
  17. const source = new MagicString(code, {
  18. filename: id
  19. });
  20. source.replace(/^.*?#if(n?)def\s*(\S+).*[\r\n]{1,2}([\s\S]+?)\s*.*?#endif.*?$/gm, (_, $1, $2, $3) => {
  21. const isNot = !!$1;
  22. const isKeep = $2.split("||").some((v) => {
  23. let flag = false;
  24. const [key, value] = v.split("=");
  25. if (value === void 0)
  26. flag = !!env[key];
  27. else
  28. flag = String(env[key]) === value;
  29. flag = isNot ? !flag : flag;
  30. return flag;
  31. });
  32. return isKeep ? $3 : "";
  33. });
  34. if (source.hasChanged()) {
  35. return {
  36. code: source.toString(),
  37. map: source.generateMap({
  38. source: id,
  39. file: `${id}.map`,
  40. includeContent: true
  41. })
  42. };
  43. }
  44. };
  45. var resolveOptions = (userOptions) => {
  46. return {
  47. include: ["**/*"],
  48. exclude: [],
  49. ...userOptions
  50. };
  51. };
  52. var VitePluginConditionalCompile = (userOptions = {}) => {
  53. const options = resolveOptions(userOptions);
  54. return {
  55. name: "vite-plugin-conditional-compile",
  56. enforce: "pre",
  57. configResolved(_config) {
  58. config = _config;
  59. },
  60. transform(code, id) {
  61. const filter = createFilter(options.include, options.exclude);
  62. if (filter(id))
  63. return replaceMatched(code, id);
  64. }
  65. };
  66. };
  67. var vite_plugin_conditional_compile_default = VitePluginConditionalCompile;
  68. // vite.config.ts
  69. var vite_config_default = defineConfig({
  70. resolve: {
  71. alias: {
  72. "@": path.resolve("/Users/Alvis/BozeduStore/aiwen", "src"),
  73. "~": path.resolve("/Users/Alvis/BozeduStore/aiwen", "src")
  74. }
  75. },
  76. css: {
  77. preprocessorOptions: {
  78. scss: {}
  79. }
  80. },
  81. plugins: [
  82. vite_plugin_conditional_compile_default(),
  83. vue({
  84. reactivityTransform: true
  85. }),
  86. WindiCss(),
  87. AutoImport({
  88. imports: ["vue", "vue/macros", "vue-router"],
  89. dirs: [
  90. "src/composables",
  91. "src/utils"
  92. ],
  93. resolvers: [ElementPlusResolver()],
  94. vueTemplate: true,
  95. eslintrc: {
  96. enabled: true
  97. }
  98. }),
  99. Components({
  100. dirs: ["src/components/"],
  101. extensions: ["vue", "md"],
  102. include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
  103. resolvers: [ElementPlusResolver({ importStyle: "sass" }), IconsResolver()]
  104. }),
  105. Icons({
  106. compiler: "vue3",
  107. autoInstall: true
  108. })
  109. ],
  110. server: {
  111. host: true,
  112. port: 5230
  113. },
  114. build: {}
  115. });
  116. export {
  117. vite_config_default as default
  118. };
  119. //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAicGx1Z2lucy92aXRlLXBsdWdpbi1jb25kaXRpb25hbC1jb21waWxlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZSdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuaW1wb3J0IFdpbmRpQ3NzIGZyb20gJ3ZpdGUtcGx1Z2luLXdpbmRpY3NzJ1xuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSAndW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZSdcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnXG5pbXBvcnQgeyBFbGVtZW50UGx1c1Jlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJ1xuaW1wb3J0IEljb25zIGZyb20gJ3VucGx1Z2luLWljb25zL3ZpdGUnXG5pbXBvcnQgSWNvbnNSZXNvbHZlciBmcm9tICd1bnBsdWdpbi1pY29ucy9yZXNvbHZlcidcbmltcG9ydCBDb25kaXRpb25hbENvbXBpbGUgZnJvbSAnLi9wbHVnaW5zL3ZpdGUtcGx1Z2luLWNvbmRpdGlvbmFsLWNvbXBpbGUnXG5cbi8vIGh0dHBzOi8vdml0ZWpzLmRldi9jb25maWcvXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICByZXNvbHZlOiB7XG4gICAgYWxpYXM6IHtcbiAgICAgICdAJzogcGF0aC5yZXNvbHZlKFwiL1VzZXJzL0FsdmlzL0JvemVkdVN0b3JlL2Fpd2VuXCIsICdzcmMnKSxcbiAgICAgICd+JzogcGF0aC5yZXNvbHZlKFwiL1VzZXJzL0FsdmlzL0JvemVkdVN0b3JlL2Fpd2VuXCIsICdzcmMnKSxcbiAgICAgIC8vICd+Y29tcG9uZW50cyc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS9haXdlblwiLCAnc3JjL2NvbXBvbmVudHMnKSxcbiAgICAgIC8vICd+cGFnZXMnOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvYWl3ZW5cIiwgJ3NyYy9wYWdlcycpLFxuICAgICAgLy8gJ351dGlscyc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS9haXdlblwiLCAnc3JjL3V0aWxzJyksXG4gICAgICAvLyAnfmFzc2V0cyc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS9haXdlblwiLCAnc3JjL2Fzc2V0cycpLFxuICAgICAgLy8gJ35zdHlsZXMnOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvYWl3ZW5cIiwgJ3NyYy9zdHlsZXMnKSxcbiAgICAgIC8vICd+bGliJzogcGF0aC5yZXNvbHZlKFwiL1VzZXJzL0FsdmlzL0JvemVkdVN0b3JlL2Fpd2VuXCIsICdzcmMvbGliJyksXG4gICAgICAvLyAnfnBsdWdpbnMnOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvYWl3ZW5cIiwgJ3NyYy9wbHVnaW5zJyksXG4gICAgICAvLyAnfnJvdXRlcic6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS9haXdlblwiLCAnc3JjL3JvdXRlcicpLFxuICAgICAgLy8gJ35zdG9yZSc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS9haXdlblwiLCAnc3JjL3N0b3JlJyksXG4gICAgICAvLyAnfmNvbmZpZyc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS9haXdlblwiLCAnc3JjL2NvbmZpZycpLFxuICAgICAgLy8gJ35hcGknOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvYWl3ZW5cIiwgJ3NyYy9hcGknKSxcbiAgICAgIC8vICd+Y29uc3RhbnRzJzogcGF0aC5yZXNvbHZlKFwiL1VzZXJzL0FsdmlzL0JvemVkdVN0b3JlL2Fpd2VuXCIsICdzcmMvY29uc3RhbnRzJyksXG4gICAgICAvLyAnfmxvY2FsZXMnOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvYWl3ZW5cIiwgJ3NyYy9sb2NhbGVzJyksXG4gICAgfSxcbiAgfSxcbiAgY3NzOiB7XG4gICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAgICAgc2Nzczoge1xuICAgICAgICAvLyBhZGRpdGlvbmFsRGF0YTogJ0B1c2UgXCJ+L3N0eWxlcy9lbGVtZW50L2luZGV4LnNjc3NcIiBhcyAqOycsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIHBsdWdpbnM6IFtcbiAgICBDb25kaXRpb25hbENvbXBpbGUoKSxcbiAgICB2dWUoe1xuICAgICAgcmVhY3Rpdml0eVRyYW5zZm9ybTogdHJ1ZSxcbiAgICB9KSxcbiAgICBXaW5kaUNzcygpLFxuICAgIEF1dG9JbXBvcnQoe1xuICAgICAgLy8gZHRzOiAnc3JjL2F1dG8taW1wb3J0cy5kLnRzJyxcbiAgICAgIGltcG9ydHM6IFsndnVlJywgJ3Z1ZS9tYWNyb3MnLCAndnVlLXJvdXRlciddLFxuICAgICAgZGlyczogW1xuICAgICAgICAnc3JjL2NvbXBvc2FibGVzJyxcbiAgICAgICAgLy8gJ3NyYy9zdG9yZScsXG4gICAgICAgICdzcmMvdXRpbHMnLFxuICAgICAgXSxcbiAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sXG4gICAgICB2dWVUZW1wbGF0ZTogdHJ1ZSxcbiAgICAgIGVzbGludHJjOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIC8vIGVuYWJsZWQ6IGZhbHNlLCAvLyBEZWZhdWx0IGBmYWxzZWBcbiAgICAgICAgLy8gZmlsZXBhdGg6ICcuLy5lc2xpbnRyYy1hdXRvLWltcG9ydC5qc29uJywgLy8gRGVmYXVsdCBgLi8uZXNsaW50cmMtYXV0by1pbXBvcnQuanNvbmBcbiAgICAgICAgLy8gZ2xvYmFsc1Byb3BWYWx1ZTogdHJ1ZSwgLy8gRGVmYXVsdCBgdHJ1ZWAsICh0cnVlIHwgZmFsc2UgfCAncmVhZG9ubHknIHwgJ3JlYWRhYmxlJyB8ICd3cml0YWJsZScgfCAnd3JpdGVhYmxlJylcbiAgICAgIH0sXG4gICAgfSksXG4gICAgQ29tcG9uZW50cyh7XG4gICAgICAvLyBkdHM6ICdzcmMvY29tcG9uZW50cy5kLnRzJyxcbiAgICAgIGRpcnM6IFsnc3JjL2NvbXBvbmVudHMvJ10sXG4gICAgICAvLyBhbGxvdyBhdXRvIGxvYWQgbWFya2Rvd24gY29tcG9uZW50cyB1bmRlciBgLi9zcmMvY29tcG9uZW50cy9gXG4gICAgICBleHRlbnNpb25zOiBbJ3Z1ZScsICdtZCddLFxuICAgICAgLy8gYWxsb3cgYXV0byBpbXBvcnQgYW5kIHJlZ2lzdGVyIGNvbXBvbmVudHMgdXNlZCBpbiBtYXJrZG93blxuICAgICAgaW5jbHVkZTogWy9cXC52dWUkLywgL1xcLnZ1ZVxcP3Z1ZS8sIC9cXC5tZCQvXSxcbiAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoeyBpbXBvcnRTdHlsZTogJ3Nhc3MnIH0pLCBJY29uc1Jlc29sdmVyKCldLFxuICAgIH0pLFxuICAgIEljb25zKHtcbiAgICAgIGNvbXBpbGVyOiAndnVlMycsXG4gICAgICBhdXRvSW5zdGFsbDogdHJ1ZSxcbiAgICB9KSxcbiAgXSxcbiAgc2VydmVyOiB7XG4gICAgaG9zdDogdHJ1ZSxcbiAgICBwb3J0OiA1MjMwXG4gIH0sXG4gIGJ1aWxkOiB7XG4gICAgLy8gcm9sbHVwT3B0aW9uczoge1xuICAgIC8vICAgb3V0cHV0OiB7XG4gICAgLy8gICAgIG1hbnVhbENodW5rczoge1xuICAgIC8vICAgICAgIGF4aW9zOiBbJ2F4aW9zJ10sXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICB9LFxuICAgIC8vIH0sXG4gIH0sXG59KVxuIiwgImltcG9ydCB0eXBlIHsgRmlsdGVyUGF0dGVybiwgUGx1Z2luLCBSZXNvbHZlZENvbmZpZyB9IGZyb20gJ3ZpdGUnXG5cbmltcG9ydCBNYWdpY1N0cmluZyBmcm9tICdtYWdpYy1zdHJpbmcnXG5pbXBvcnQgeyBjcmVhdGVGaWx0ZXIgfSBmcm9tICd2aXRlJ1xuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBAZGVmYXVsdCBbXCIqKlxcLypcIl1cbiAgICovXG4gIGluY2x1ZGU6IEZpbHRlclBhdHRlcm5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICBleGNsdWRlOiBGaWx0ZXJQYXR0ZXJuXG59XG5cbnR5cGUgVXNlck9wdGlvbnMgPSBQYXJ0aWFsPE9wdGlvbnM+XG5cbnR5cGUgUmVzb2x2ZWRPcHRpb25zID0gT3B0aW9uc1xubGV0IGNvbmZpZzogUmVzb2x2ZWRDb25maWcgPSB1bmRlZmluZWQhXG5cbmNvbnN0IHJlcGxhY2VNYXRjaGVkID0gKGNvZGU6IHN0cmluZywgaWQ6IHN0cmluZykgPT4ge1xuICBjb25zdCBlbnYgPSBjb25maWcuZW52XG4gIGNvbnN0IHNvdXJjZSA9IG5ldyBNYWdpY1N0cmluZyhjb2RlLCB7XG4gICAgZmlsZW5hbWU6IGlkLFxuICB9KVxuXG4gIHNvdXJjZS5yZXBsYWNlKFxuICAgIC9eLio/I2lmKG4/KWRlZlxccyooXFxTKykuKltcXHJcXG5dezEsMn0oW1xcc1xcU10rPylcXHMqLio/I2VuZGlmLio/JC9nbSxcbiAgICAvKipcbiAgICAgKiBcdTY3NjFcdTRFRjZcdTY2RkZcdTYzNjJcbiAgICAgKiBAcGFyYW0gXyBcdTUzMzlcdTkxNERcdTc2ODRcdTVCNTdcdTdCMjZcdTRFMzJcbiAgICAgKiBAcGFyYW0gJDEgXHU2NjJGXHU1NDI2XHU0RTNBIG5vdCBcdTZBMjFcdTVGMEZcbiAgICAgKiBAcGFyYW0gJDIgXHU2NzYxXHU0RUY2XG4gICAgICogQHBhcmFtICQzIGNvZGVcbiAgICAgKi9cbiAgICAoXywgJDEsICQyLCAkMykgPT4ge1xuICAgICAgY29uc3QgaXNOb3QgPSAhISQxXG4gICAgICBjb25zdCBpc0tlZXAgPSAkMi5zcGxpdCgnfHwnKS5zb21lKCh2OiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IGZsYWcgPSBmYWxzZVxuICAgICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSB2LnNwbGl0KCc9JylcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgZmxhZyA9ICEhZW52W2tleV1cblxuICAgICAgICBlbHNlXG4gICAgICAgICAgZmxhZyA9IFN0cmluZyhlbnZba2V5XSkgPT09IHZhbHVlXG5cbiAgICAgICAgZmxhZyA9IGlzTm90ID8gIWZsYWcgOiBmbGFnXG4gICAgICAgIHJldHVybiBmbGFnXG4gICAgICB9KVxuICAgICAgcmV0dXJuIGlzS2VlcCA/ICQzIDogJydcbiAgICB9LFxuICApXG5cbiAgaWYgKHNvdXJjZS5oYXNDaGFuZ2VkKCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29kZTogc291cmNlLnRvU3RyaW5nKCksXG4gICAgICBtYXA6IHNvdXJjZS5nZW5lcmF0ZU1hcCh7XG4gICAgICAgIHNvdXJjZTogaWQsXG4gICAgICAgIGZpbGU6IGAke2lkfS5tYXBgLFxuICAgICAgICBpbmNsdWRlQ29udGVudDogdHJ1ZSxcbiAgICAgIH0pLFxuICAgIH1cbiAgfVxufVxuXG5jb25zdCByZXNvbHZlT3B0aW9ucyA9ICh1c2VyT3B0aW9uczogVXNlck9wdGlvbnMpOiBSZXNvbHZlZE9wdGlvbnMgPT4ge1xuICByZXR1cm4ge1xuICAgIGluY2x1ZGU6IFsnKiovKiddLFxuICAgIGV4Y2x1ZGU6IFtdLFxuICAgIC4uLnVzZXJPcHRpb25zLFxuICB9XG59XG5cbmNvbnN0IFZpdGVQbHVnaW5Db25kaXRpb25hbENvbXBpbGUgPSAoXG4gIHVzZXJPcHRpb25zOiBVc2VyT3B0aW9ucyA9IHt9LFxuKTogUGx1Z2luID0+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHJlc29sdmVPcHRpb25zKHVzZXJPcHRpb25zKVxuICByZXR1cm4ge1xuICAgIG5hbWU6ICd2aXRlLXBsdWdpbi1jb25kaXRpb25hbC1jb21waWxlJyxcbiAgICBlbmZvcmNlOiAncHJlJyxcbiAgICBjb25maWdSZXNvbHZlZChfY29uZmlnKSB7XG4gICAgICBjb25maWcgPSBfY29uZmlnXG4gICAgfSxcbiAgICB0cmFuc2Zvcm0oY29kZSwgaWQpIHtcbiAgICAgIGNvbnN0IGZpbHRlciA9IGNyZWF0ZUZpbHRlcihvcHRpb25zLmluY2x1ZGUsIG9wdGlvbnMuZXhjbHVkZSlcbiAgICAgIGlmIChmaWx0ZXIoaWQpKVxuICAgICAgICByZXR1cm4gcmVwbGFjZU1hdGNoZWQoY29kZSwgaWQpXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBWaXRlUGx1Z2luQ29uZGl0aW9uYWxDb21waWxlXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUNOQTtBQUNBO0FBZ0JBLElBQUksU0FBeUI7QUFFN0IsSUFBTSxpQkFBaUIsQ0FBQyxNQUFjLE9BQWU7QUFDbkQsUUFBTSxNQUFNLE9BQU87QUFDbkIsUUFBTSxTQUFTLElBQUksWUFBWSxNQUFNO0FBQUEsSUFDbkMsVUFBVTtBQUFBLEVBQ1osQ0FBQztBQUVELFNBQU8sUUFDTCxtRUFRQSxDQUFDLEdBQUcsSUFBSSxJQUFJLE9BQU87QUFDakIsVUFBTSxRQUFRLENBQUMsQ0FBQztBQUNoQixVQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksRUFBRSxLQUFLLENBQUMsTUFBYztBQUNoRCxVQUFJLE9BQU87QUFDWCxZQUFNLENBQUMsS0FBSyxTQUFTLEVBQUUsTUFBTSxHQUFHO0FBQ2hDLFVBQUksVUFBVTtBQUNaLGVBQU8sQ0FBQyxDQUFDLElBQUk7QUFBQTtBQUdiLGVBQU8sT0FBTyxJQUFJLElBQUksTUFBTTtBQUU5QixhQUFPLFFBQVEsQ0FBQyxPQUFPO0FBQ3ZCLGFBQU87QUFBQSxJQUNULENBQUM7QUFDRCxXQUFPLFNBQVMsS0FBSztBQUFBLEVBQ3ZCLENBQ0Y7QUFFQSxNQUFJLE9BQU8sV0FBVyxHQUFHO0FBQ3ZCLFdBQU87QUFBQSxNQUNMLE1BQU0sT0FBTyxTQUFTO0FBQUEsTUFDdEIsS0FBSyxPQUFPLFlBQVk7QUFBQSxRQUN0QixRQUFRO0FBQUEsUUFDUixNQUFNLEdBQUc7QUFBQSxRQUNULGdCQUFnQjtBQUFBLE1BQ2xCLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNGO0FBRUEsSUFBTSxpQkFBaUIsQ0FBQyxnQkFBOEM7QUFDcEUsU0FBTztBQUFBLElBQ0wsU0FBUyxDQUFDLE1BQU07QUFBQSxJQUNoQixTQUFTLENBQUM7QUFBQSxPQUNQO0FBQUEsRUFDTDtBQUNGO0FBRUEsSUFBTSwrQkFBK0IsQ0FDbkMsY0FBMkIsQ0FBQyxNQUNqQjtBQUNYLFFBQU0sVUFBVSxlQUFlLFdBQVc7QUFDMUMsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLElBQ1QsZUFBZSxTQUFTO0FBQ3RCLGVBQVM7QUFBQSxJQUNYO0FBQUEsSUFDQSxVQUFVLE1BQU0sSUFBSTtBQUNsQixZQUFNLFNBQVMsYUFBYSxRQUFRLFNBQVMsUUFBUSxPQUFPO0FBQzVELFVBQUksT0FBTyxFQUFFO0FBQ1gsZUFBTyxlQUFlLE1BQU0sRUFBRTtBQUFBLElBQ2xDO0FBQUEsRUFDRjtBQUNGO0FBRUEsSUFBTywwQ0FBUTs7O0FEaEZmLElBQU8sc0JBQVEsYUFBYTtBQUFBLEVBQzFCLFNBQVM7QUFBQSxJQUNQLE9BQU87QUFBQSxNQUNMLEtBQUssS0FBSyxRQUFRLGtDQUFrQyxLQUFLO0FBQUEsTUFDekQsS0FBSyxLQUFLLFFBQVEsa0NBQWtDLEtBQUs7QUFBQSxJQWMzRDtBQUFBLEVBQ0Y7QUFBQSxFQUNBLEtBQUs7QUFBQSxJQUNILHFCQUFxQjtBQUFBLE1BQ25CLE1BQU0sQ0FFTjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQSxTQUFTO0FBQUEsSUFDUCx3Q0FBbUI7QUFBQSxJQUNuQixJQUFJO0FBQUEsTUFDRixxQkFBcUI7QUFBQSxJQUN2QixDQUFDO0FBQUEsSUFDRCxTQUFTO0FBQUEsSUFDVCxXQUFXO0FBQUEsTUFFVCxTQUFTLENBQUMsT0FBTyxjQUFjLFlBQVk7QUFBQSxNQUMzQyxNQUFNO0FBQUEsUUFDSjtBQUFBLFFBRUE7QUFBQSxNQUNGO0FBQUEsTUFDQSxXQUFXLENBQUMsb0JBQW9CLENBQUM7QUFBQSxNQUNqQyxhQUFhO0FBQUEsTUFDYixVQUFVO0FBQUEsUUFDUixTQUFTO0FBQUEsTUFJWDtBQUFBLElBQ0YsQ0FBQztBQUFBLElBQ0QsV0FBVztBQUFBLE1BRVQsTUFBTSxDQUFDLGlCQUFpQjtBQUFBLE1BRXhCLFlBQVksQ0FBQyxPQUFPLElBQUk7QUFBQSxNQUV4QixTQUFTLENBQUMsVUFBVSxjQUFjLE9BQU87QUFBQSxNQUN6QyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxPQUFPLENBQUMsR0FBRyxjQUFjLENBQUM7QUFBQSxJQUMzRSxDQUFDO0FBQUEsSUFDRCxNQUFNO0FBQUEsTUFDSixVQUFVO0FBQUEsTUFDVixhQUFhO0FBQUEsSUFDZixDQUFDO0FBQUEsRUFDSDtBQUFBLEVBQ0EsUUFBUTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLEVBQ1I7QUFBQSxFQUNBLE9BQU8sQ0FRUDtBQUNGLENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg==