@editframe/create 0.6.0-beta.14 → 0.6.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,9 +11,9 @@
11
11
  "author": "",
12
12
  "license": "ISC",
13
13
  "dependencies": {
14
- "@editframe/cli": "0.6.0-beta.14",
15
- "@editframe/elements": "0.6.0-beta.14",
16
- "@editframe/vite-plugin": "0.6.0-beta.14",
14
+ "@editframe/cli": "0.6.0-beta.15",
15
+ "@editframe/elements": "0.6.0-beta.15",
16
+ "@editframe/vite-plugin": "0.6.0-beta.15",
17
17
  "tailwindcss": "^3.4.3",
18
18
  "vite": "^5.2.11",
19
19
  "vite-plugin-singlefile": "^2.0.1"
@@ -0,0 +1,163 @@
1
+ @keyframes fadein {
2
+ 0% {
3
+ opacity: 0;
4
+ }
5
+ 50% {
6
+ opacity: 0.5;
7
+ }
8
+ 100% {
9
+ opacity: 1;
10
+ }
11
+ }
12
+ @keyframes fadeout {
13
+ from {
14
+ opacity: 1;
15
+ }
16
+ to {
17
+ opacity: 0;
18
+ }
19
+ }
20
+ @keyframes disco {
21
+ from {
22
+ filter: hue-rotate(0deg);
23
+ }
24
+ to {
25
+ filter: hue-rotate(360deg);
26
+ }
27
+ }
28
+ @keyframes slide-in-left {
29
+ from {
30
+ left: -100%;
31
+ }
32
+ to {
33
+ left: 0%;
34
+ }
35
+ }
36
+ @keyframes slide-in-right {
37
+ from {
38
+ transform: translateX(150%);
39
+ }
40
+ to {
41
+ transform: translateX(0%);
42
+ }
43
+ }
44
+ @keyframes slide-out-right {
45
+ from {
46
+ transform: translateX(0%);
47
+ }
48
+ to {
49
+ transform: translateX(150%);
50
+ }
51
+ }
52
+ @keyframes flip {
53
+ from {
54
+ transform: rotateY(0deg);
55
+ }
56
+ to {
57
+ transform: rotateY(180deg);
58
+ }
59
+ }
60
+
61
+ @keyframes rotate {
62
+ from {
63
+ transform: rotate(0deg);
64
+ }
65
+ to {
66
+ transform: rotate(360deg);
67
+ }
68
+ }
69
+
70
+ @keyframes bounce-in {
71
+ 0% {
72
+ transform: scale(0.8);
73
+ }
74
+ 80% {
75
+ transform: scale(1.3);
76
+ }
77
+ 100% {
78
+ transform: scale(1);
79
+ }
80
+ }
81
+
82
+ @keyframes zoom-in {
83
+ from {
84
+ transform: scale(0);
85
+ }
86
+ to {
87
+ transform: scale(1);
88
+ }
89
+ }
90
+
91
+ @keyframes slide-in-left {
92
+ from {
93
+ transform: translateX(-150%);
94
+ }
95
+ to {
96
+ transform: translateX(0%);
97
+ }
98
+ }
99
+
100
+ @keyframes slide-up {
101
+ from {
102
+ transform: translateY(0%);
103
+ opacity: 1;
104
+ }
105
+ to {
106
+ transform: translateY(-100%);
107
+ opacity: 0;
108
+ }
109
+ }
110
+
111
+ @keyframes jiggle {
112
+ 0% {
113
+ transform: rotate(0deg);
114
+ }
115
+ 25% {
116
+ transform: rotate(5deg);
117
+ }
118
+ 50% {
119
+ transform: rotate(-5deg);
120
+ }
121
+ 75% {
122
+ transform: rotate(5deg);
123
+ }
124
+ 100% {
125
+ transform: rotate(0deg);
126
+ }
127
+ }
128
+
129
+ @keyframes barrel {
130
+ 0% {
131
+ transform: translate3d(0px, 0px, 0px) rotate3d(1, 0, 0, 0deg);
132
+ }
133
+ 10% {
134
+ transform: translate3d(30px, 10px, -30px) rotate3d(1, 0, 0, 36deg);
135
+ }
136
+ 20% {
137
+ transform: translate3d(60px, 20px, -60px) rotate3d(1, 0, 0, 72deg);
138
+ }
139
+ 30% {
140
+ transform: translate3d(90px, 40px, -90px) rotate3d(1, 1, 0, 108deg);
141
+ }
142
+ 40% {
143
+ transform: translate3d(120px, 60px, -120px) rotate3d(1, 1, 0, 144deg);
144
+ }
145
+ 50% {
146
+ transform: translate3d(150px, 80px, -150px) rotate3d(1, 1, 1, 180deg);
147
+ }
148
+ 60% {
149
+ transform: translate3d(120px, 100px, -120px) rotate3d(1, 1, 1, 216deg);
150
+ }
151
+ 70% {
152
+ transform: translate3d(90px, 120px, -90px) rotate3d(1, 1, 1, 252deg);
153
+ }
154
+ 80% {
155
+ transform: translate3d(60px, 140px, -60px) rotate3d(1, 1, 0, 288deg);
156
+ }
157
+ 90% {
158
+ transform: translate3d(30px, 160px, -30px) rotate3d(1, 0, 0, 324deg);
159
+ }
160
+ 100% {
161
+ transform: translate3d(0px, 180px, 0px) rotate3d(1, 0, 0, 360deg);
162
+ }
163
+ }
@@ -11,9 +11,9 @@
11
11
  "author": "",
12
12
  "license": "ISC",
13
13
  "dependencies": {
14
- "@editframe/cli": "0.6.0-beta.14",
15
- "@editframe/elements": "0.6.0-beta.14",
16
- "@editframe/vite-plugin": "0.6.0-beta.14",
14
+ "@editframe/cli": "0.6.0-beta.15",
15
+ "@editframe/elements": "0.6.0-beta.15",
16
+ "@editframe/vite-plugin": "0.6.0-beta.15",
17
17
  "tailwindcss": "^3.4.3",
18
18
  "vite": "^5.2.11",
19
19
  "vite-plugin-singlefile": "^2.0.1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@editframe/create",
3
- "version": "0.6.0-beta.14",
3
+ "version": "0.6.0-beta.15",
4
4
  "description": "",
5
5
  "bin": {
6
6
  "create-editframe": "dist/index.js"
@@ -10,6 +10,7 @@
10
10
  "devDependencies": {
11
11
  "@types/dom-webcodecs": "^0.1.11",
12
12
  "@types/node": "^20.14.9",
13
+ "@types/prompts": "^2.4.9",
13
14
  "vite-plugin-dts": "^3.9.1",
14
15
  "vite-tsconfig-paths": "^4.3.2"
15
16
  },
@@ -0,0 +1,94 @@
1
+ // ../../lib/util/execPromise.ts
2
+ import { exec } from "node:child_process";
3
+ import { promisify } from "node:util";
4
+ var execPromise = promisify(exec);
5
+
6
+ // vite.config.ts
7
+ import path2 from "node:path";
8
+
9
+ // ../defineViteBuildConfig.ts
10
+ import path from "node:path";
11
+ import { defineConfig } from "file:///app/node_modules/vite/dist/node/index.js";
12
+ import tsconfigPaths from "file:///app/node_modules/vite-tsconfig-paths/dist/index.mjs";
13
+ import rollupTsConfigPaths from "file:///app/node_modules/rollup-plugin-tsconfig-paths/index.mjs";
14
+ import dts from "file:///app/node_modules/vite-plugin-dts/dist/index.mjs";
15
+ var defineViteBuildConfig = (config) => {
16
+ const outDir = config.outDirPrefix ? path.join(config.root, "dist", config.outDirPrefix) : path.join(config.root, "dist");
17
+ const extraEntries = config.extraEntries ?? [];
18
+ return defineConfig({
19
+ esbuild: {
20
+ target: "es2022",
21
+ platform: "browser",
22
+ include: /\.(m?[jt]s|[jt]sx)$/,
23
+ exclude: []
24
+ },
25
+ plugins: [tsconfigPaths(), dts(), ...config.plugins || []],
26
+ appType: "custom",
27
+ root: config.root,
28
+ build: {
29
+ ssr: true,
30
+ target: "es2022",
31
+ rollupOptions: {
32
+ treeshake: "recommended",
33
+ output: {
34
+ inlineDynamicImports: false,
35
+ preserveModules: true
36
+ },
37
+ external: [
38
+ "@editframe/assets",
39
+ "@editframe/vite-plugin",
40
+ "@editframe/elements"
41
+ ],
42
+ plugins: [rollupTsConfigPaths({})]
43
+ },
44
+ emptyOutDir: true,
45
+ outDir,
46
+ lib: {
47
+ entry: [...extraEntries, path.join(config.root, "./src/index.ts")],
48
+ name: config.name,
49
+ fileName: config.name,
50
+ formats: ["es", "cjs"]
51
+ }
52
+ }
53
+ });
54
+ };
55
+
56
+ // vite.config.ts
57
+ import { cp } from "node:fs/promises";
58
+ var __vite_injected_original_dirname = "/app/packages/create";
59
+ var __vite_injected_original_import_meta_url = "file:///app/packages/create/vite.config.ts";
60
+ var vite_config_default = defineViteBuildConfig({
61
+ root: path2.dirname(new URL(__vite_injected_original_import_meta_url).pathname),
62
+ name: "editframe-create",
63
+ plugins: [
64
+ {
65
+ name: "chmod-executables",
66
+ async closeBundle() {
67
+ const cliExecPath = path2.join(__vite_injected_original_dirname, "dist/index.js");
68
+ await execPromise(`chmod +x ${cliExecPath}`);
69
+ console.log("chmod +x", cliExecPath);
70
+ }
71
+ },
72
+ {
73
+ name: "watch-external",
74
+ async buildStart() {
75
+ this.addWatchFile(path2.join(__vite_injected_original_dirname, "src/templates"));
76
+ }
77
+ },
78
+ {
79
+ name: "copy template",
80
+ async closeBundle() {
81
+ await cp(
82
+ path2.join(__vite_injected_original_dirname, "src/templates"),
83
+ path2.join(__vite_injected_original_dirname, "dist/templates"),
84
+ { recursive: true }
85
+ );
86
+ console.log("Copied template into dist");
87
+ }
88
+ }
89
+ ]
90
+ });
91
+ export {
92
+ vite_config_default as default
93
+ };
94
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vbGliL3V0aWwvZXhlY1Byb21pc2UudHMiLCAidml0ZS5jb25maWcudHMiLCAiLi4vZGVmaW5lVml0ZUJ1aWxkQ29uZmlnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL2FwcC9saWIvdXRpbFwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL2FwcC9saWIvdXRpbC9leGVjUHJvbWlzZS50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vYXBwL2xpYi91dGlsL2V4ZWNQcm9taXNlLnRzXCI7aW1wb3J0IHsgZXhlYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gXCJub2RlOnV0aWxcIjtcblxuZXhwb3J0IGNvbnN0IGV4ZWNQcm9taXNlID0gcHJvbWlzaWZ5KGV4ZWMpO1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvYXBwL3BhY2thZ2VzL2NyZWF0ZVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL2FwcC9wYWNrYWdlcy9jcmVhdGUvdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL2FwcC9wYWNrYWdlcy9jcmVhdGUvdml0ZS5jb25maWcudHNcIjtpbXBvcnQgeyBleGVjUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9saWIvdXRpbC9leGVjUHJvbWlzZVwiO1xuXG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmltcG9ydCB7IGRlZmluZVZpdGVCdWlsZENvbmZpZyB9IGZyb20gXCIuLi9kZWZpbmVWaXRlQnVpbGRDb25maWdcIjtcbmltcG9ydCB7IGNwIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lVml0ZUJ1aWxkQ29uZmlnKHtcbiAgcm9vdDogcGF0aC5kaXJuYW1lKG5ldyBVUkwoaW1wb3J0Lm1ldGEudXJsKS5wYXRobmFtZSksXG4gIG5hbWU6IFwiZWRpdGZyYW1lLWNyZWF0ZVwiLFxuICBwbHVnaW5zOiBbXG4gICAge1xuICAgICAgbmFtZTogXCJjaG1vZC1leGVjdXRhYmxlc1wiLFxuICAgICAgYXN5bmMgY2xvc2VCdW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IGNsaUV4ZWNQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCJkaXN0L2luZGV4LmpzXCIpO1xuICAgICAgICBhd2FpdCBleGVjUHJvbWlzZShgY2htb2QgK3ggJHtjbGlFeGVjUGF0aH1gKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJjaG1vZCAreFwiLCBjbGlFeGVjUGF0aCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ3YXRjaC1leHRlcm5hbFwiLFxuICAgICAgYXN5bmMgYnVpbGRTdGFydCgpIHtcbiAgICAgICAgdGhpcy5hZGRXYXRjaEZpbGUocGF0aC5qb2luKF9fZGlybmFtZSwgXCJzcmMvdGVtcGxhdGVzXCIpKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImNvcHkgdGVtcGxhdGVcIixcbiAgICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgICBhd2FpdCBjcChcbiAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInNyYy90ZW1wbGF0ZXNcIiksXG4gICAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCJkaXN0L3RlbXBsYXRlc1wiKSxcbiAgICAgICAgICB7IHJlY3Vyc2l2ZTogdHJ1ZSB9LFxuICAgICAgICApO1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNvcGllZCB0ZW1wbGF0ZSBpbnRvIGRpc3RcIik7XG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG59KTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL2FwcC9wYWNrYWdlc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL2FwcC9wYWNrYWdlcy9kZWZpbmVWaXRlQnVpbGRDb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL2FwcC9wYWNrYWdlcy9kZWZpbmVWaXRlQnVpbGRDb25maWcudHNcIjtpbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmltcG9ydCB7IGRlZmluZUNvbmZpZywgdHlwZSBVc2VyQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0c2NvbmZpZ1BhdGhzIGZyb20gXCJ2aXRlLXRzY29uZmlnLXBhdGhzXCI7XG5pbXBvcnQgcm9sbHVwVHNDb25maWdQYXRocyBmcm9tIFwicm9sbHVwLXBsdWdpbi10c2NvbmZpZy1wYXRoc1wiO1xuaW1wb3J0IGR0cyBmcm9tIFwidml0ZS1wbHVnaW4tZHRzXCI7XG5cbmludGVyZmFjZSBWaXRlQnVpbGRDb25maWcge1xuICByb290OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3V0RGlyUHJlZml4Pzogc3RyaW5nO1xuICBwbHVnaW5zPzogVXNlckNvbmZpZ1tcInBsdWdpbnNcIl07XG4gIGV4dHJhRW50cmllcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgZGVmaW5lVml0ZUJ1aWxkQ29uZmlnID0gKGNvbmZpZzogVml0ZUJ1aWxkQ29uZmlnKSA9PiB7XG4gIGNvbnN0IG91dERpciA9IGNvbmZpZy5vdXREaXJQcmVmaXhcbiAgICA/IHBhdGguam9pbihjb25maWcucm9vdCwgXCJkaXN0XCIsIGNvbmZpZy5vdXREaXJQcmVmaXgpXG4gICAgOiBwYXRoLmpvaW4oY29uZmlnLnJvb3QsIFwiZGlzdFwiKTtcblxuICBjb25zdCBleHRyYUVudHJpZXMgPSBjb25maWcuZXh0cmFFbnRyaWVzID8/IFtdO1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKHtcbiAgICBlc2J1aWxkOiB7XG4gICAgICB0YXJnZXQ6IFwiZXMyMDIyXCIsXG4gICAgICBwbGF0Zm9ybTogXCJicm93c2VyXCIsXG4gICAgICBpbmNsdWRlOiAvXFwuKG0/W2p0XXN8W2p0XXN4KSQvLFxuICAgICAgZXhjbHVkZTogW10sXG4gICAgfSxcbiAgICBwbHVnaW5zOiBbdHNjb25maWdQYXRocygpLCBkdHMoKSwgLi4uKGNvbmZpZy5wbHVnaW5zIHx8IFtdKV0sXG4gICAgYXBwVHlwZTogXCJjdXN0b21cIixcbiAgICByb290OiBjb25maWcucm9vdCxcbiAgICBidWlsZDoge1xuICAgICAgc3NyOiB0cnVlLFxuICAgICAgdGFyZ2V0OiBcImVzMjAyMlwiLFxuICAgICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgICB0cmVlc2hha2U6IFwicmVjb21tZW5kZWRcIixcbiAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgaW5saW5lRHluYW1pY0ltcG9ydHM6IGZhbHNlLFxuICAgICAgICAgIHByZXNlcnZlTW9kdWxlczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZXh0ZXJuYWw6IFtcbiAgICAgICAgICBcIkBlZGl0ZnJhbWUvYXNzZXRzXCIsXG4gICAgICAgICAgXCJAZWRpdGZyYW1lL3ZpdGUtcGx1Z2luXCIsXG4gICAgICAgICAgXCJAZWRpdGZyYW1lL2VsZW1lbnRzXCIsXG4gICAgICAgIF0sXG4gICAgICAgIHBsdWdpbnM6IFtyb2xsdXBUc0NvbmZpZ1BhdGhzKHt9KV0sXG4gICAgICB9LFxuICAgICAgZW1wdHlPdXREaXI6IHRydWUsXG4gICAgICBvdXREaXI6IG91dERpcixcbiAgICAgIGxpYjoge1xuICAgICAgICBlbnRyeTogWy4uLmV4dHJhRW50cmllcywgcGF0aC5qb2luKGNvbmZpZy5yb290LCBcIi4vc3JjL2luZGV4LnRzXCIpXSxcbiAgICAgICAgbmFtZTogY29uZmlnLm5hbWUsXG4gICAgICAgIGZpbGVOYW1lOiBjb25maWcubmFtZSxcbiAgICAgICAgZm9ybWF0czogW1wiZXNcIiwgXCJjanNcIl0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBeU4sU0FBUyxZQUFZO0FBQzlPLFNBQVMsaUJBQWlCO0FBRW5CLElBQU0sY0FBYyxVQUFVLElBQUk7OztBQ0R6QyxPQUFPQSxXQUFVOzs7QUNGNE4sT0FBTyxVQUFVO0FBRTlQLFNBQVMsb0JBQXFDO0FBQzlDLE9BQU8sbUJBQW1CO0FBQzFCLE9BQU8seUJBQXlCO0FBQ2hDLE9BQU8sU0FBUztBQVVULElBQU0sd0JBQXdCLENBQUMsV0FBNEI7QUFDaEUsUUFBTSxTQUFTLE9BQU8sZUFDbEIsS0FBSyxLQUFLLE9BQU8sTUFBTSxRQUFRLE9BQU8sWUFBWSxJQUNsRCxLQUFLLEtBQUssT0FBTyxNQUFNLE1BQU07QUFFakMsUUFBTSxlQUFlLE9BQU8sZ0JBQWdCLENBQUM7QUFDN0MsU0FBTyxhQUFhO0FBQUEsSUFDbEIsU0FBUztBQUFBLE1BQ1AsUUFBUTtBQUFBLE1BQ1IsVUFBVTtBQUFBLE1BQ1YsU0FBUztBQUFBLE1BQ1QsU0FBUyxDQUFDO0FBQUEsSUFDWjtBQUFBLElBQ0EsU0FBUyxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsR0FBSSxPQUFPLFdBQVcsQ0FBQyxDQUFFO0FBQUEsSUFDM0QsU0FBUztBQUFBLElBQ1QsTUFBTSxPQUFPO0FBQUEsSUFDYixPQUFPO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxRQUFRO0FBQUEsTUFDUixlQUFlO0FBQUEsUUFDYixXQUFXO0FBQUEsUUFDWCxRQUFRO0FBQUEsVUFDTixzQkFBc0I7QUFBQSxVQUN0QixpQkFBaUI7QUFBQSxRQUNuQjtBQUFBLFFBQ0EsVUFBVTtBQUFBLFVBQ1I7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFBQSxRQUNBLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7QUFBQSxNQUNuQztBQUFBLE1BQ0EsYUFBYTtBQUFBLE1BQ2I7QUFBQSxNQUNBLEtBQUs7QUFBQSxRQUNILE9BQU8sQ0FBQyxHQUFHLGNBQWMsS0FBSyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUFBLFFBQ2pFLE1BQU0sT0FBTztBQUFBLFFBQ2IsVUFBVSxPQUFPO0FBQUEsUUFDakIsU0FBUyxDQUFDLE1BQU0sS0FBSztBQUFBLE1BQ3ZCO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIOzs7QURwREEsU0FBUyxVQUFVO0FBTG5CLElBQU0sbUNBQW1DO0FBQXVHLElBQU0sMkNBQTJDO0FBT2pNLElBQU8sc0JBQVEsc0JBQXNCO0FBQUEsRUFDbkMsTUFBTUMsTUFBSyxRQUFRLElBQUksSUFBSSx3Q0FBZSxFQUFFLFFBQVE7QUFBQSxFQUNwRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsSUFDUDtBQUFBLE1BQ0UsTUFBTTtBQUFBLE1BQ04sTUFBTSxjQUFjO0FBQ2xCLGNBQU0sY0FBY0EsTUFBSyxLQUFLLGtDQUFXLGVBQWU7QUFDeEQsY0FBTSxZQUFZLFlBQVksV0FBVyxFQUFFO0FBQzNDLGdCQUFRLElBQUksWUFBWSxXQUFXO0FBQUEsTUFDckM7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLE1BQ0UsTUFBTTtBQUFBLE1BQ04sTUFBTSxhQUFhO0FBQ2pCLGFBQUssYUFBYUEsTUFBSyxLQUFLLGtDQUFXLGVBQWUsQ0FBQztBQUFBLE1BQ3pEO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxNQUNFLE1BQU07QUFBQSxNQUNOLE1BQU0sY0FBYztBQUNsQixjQUFNO0FBQUEsVUFDSkEsTUFBSyxLQUFLLGtDQUFXLGVBQWU7QUFBQSxVQUNwQ0EsTUFBSyxLQUFLLGtDQUFXLGdCQUFnQjtBQUFBLFVBQ3JDLEVBQUUsV0FBVyxLQUFLO0FBQUEsUUFDcEI7QUFDQSxnQkFBUSxJQUFJLDJCQUEyQjtBQUFBLE1BQ3pDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJwYXRoIiwgInBhdGgiXQp9Cg==