livemark 0.10.2 → 0.10.4

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livemark",
3
- "version": "0.10.2",
3
+ "version": "0.10.4",
4
4
  "description": "Livemark description",
5
5
  "license": "MIT",
6
6
  "author": "Evgeny Karev",
@@ -51,6 +51,26 @@ export default defineConfig({
51
51
  define: {
52
52
  "import.meta.env.CONFIG": JSON.stringify(WebsiteConfig.parse(config)),
53
53
  },
54
+ // dedupe: collapse multiple resolutions of the same React-family package
55
+ // to a single physical module, so livemark's source, the consumer's
56
+ // .livemark/ overrides, and any transitive package that re-resolves React
57
+ // through its own peer-dep chain all share one instance. Without this,
58
+ // pnpm's isolated layout can land different importers on different copies
59
+ // of React, breaking single-instance invariants (useSyncExternalStore
60
+ // returns null, hooks see wrong stores).
61
+ resolve: {
62
+ dedupe: ["react", "react-dom"],
63
+ },
64
+ // Force React + ReactDOM external in SSR so they're resolved at Node
65
+ // runtime — paired with `dedupe` at build time, both bundle environments
66
+ // (server + client) collapse onto the same physical module rather than
67
+ // splitting React across multiple inlined chunks. Without this pair,
68
+ // pnpm's isolated layout can land react and react-dom on opposite sides
69
+ // of the bundle/external boundary and produce React 19's
70
+ // ReactSharedInternals.H-is-null failure (useSyncExternalStore throws).
71
+ ssr: {
72
+ external: ["react", "react-dom"],
73
+ },
54
74
  plugins: [
55
75
  livemark({
56
76
  defaultsRoot: sourceDir,
@@ -40,6 +40,26 @@ export default defineConfig({
40
40
  define: {
41
41
  "import.meta.env.CONFIG": JSON.stringify(WebsiteConfig.parse(config)),
42
42
  },
43
+ // dedupe: collapse multiple resolutions of the same React-family package
44
+ // to a single physical module, so livemark's source, the consumer's
45
+ // .livemark/ overrides, and any transitive package that re-resolves React
46
+ // through its own peer-dep chain all share one instance. Without this,
47
+ // pnpm's isolated layout can land different importers on different copies
48
+ // of React, breaking single-instance invariants (useSyncExternalStore
49
+ // returns null, hooks see wrong stores).
50
+ resolve: {
51
+ dedupe: ["react", "react-dom"],
52
+ },
53
+ // Force React + ReactDOM external in SSR so they're resolved at Node
54
+ // runtime — paired with `dedupe` at build time, both bundle environments
55
+ // (server + client) collapse onto the same physical module rather than
56
+ // splitting React across multiple inlined chunks. Without this pair,
57
+ // pnpm's isolated layout can land react and react-dom on opposite sides
58
+ // of the bundle/external boundary and produce React 19's
59
+ // ReactSharedInternals.H-is-null failure (useSyncExternalStore throws).
60
+ ssr: {
61
+ external: ["react", "react-dom"],
62
+ },
43
63
  plugins: [
44
64
  livemark({
45
65
  defaultsRoot: sourceDir,
@@ -67,4 +87,4 @@ export default defineConfig({
67
87
  svgr(),
68
88
  ],
69
89
  });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2Uvdml0ZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sa0JBQWtCLE1BQU0sMkJBQTJCLENBQUE7QUFDMUQsT0FBTyxRQUFRLE1BQU0sbUJBQW1CLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEtBQUssTUFBTSxzQkFBc0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFBO0FBQ2pDLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUVwRCwyRUFBMkU7QUFDM0UsbUNBQW1DO0FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7QUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQy9CLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM3QyxhQUFhLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUNoRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxnRUFBZ0U7SUFDaEUscUVBQXFFO0lBQ3JFLG9FQUFvRTtJQUNwRSxvRUFBb0U7SUFDcEUsMERBQTBEO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDM0MsYUFBYSxDQUFDLElBQUksQ0FDaEIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQzdELENBQUE7QUFDSCxDQUFDO0FBRUQsZUFBZSxZQUFZLENBQUM7SUFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDO0lBQ25ELEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtJQUNwQyxNQUFNLEVBQUU7UUFDTix3QkFBd0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDdEU7SUFDRCxPQUFPLEVBQUU7UUFDUCxRQUFRLENBQUM7WUFDUCxZQUFZLEVBQUUsU0FBUztZQUN2QixhQUFhO1lBQ2IsT0FBTyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztZQUM5QixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7U0FDOUIsQ0FBQztRQUNGLFFBQVEsRUFBRTtRQUNWLFFBQVEsRUFBRTtRQUNWLGtCQUFrQixDQUFDO1lBQ2pCLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLHdCQUF3QixDQUFDO1NBQzNELENBQUM7UUFDRixhQUFhLENBQUM7WUFDWixZQUFZLEVBQUUsY0FBYztZQUM1QixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUN0QixTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDOUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNsQixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUN0QyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQ3RCLE1BQU0sRUFBRTtnQkFDTixrQkFBa0IsRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQzthQUMzRDtTQUNGLENBQUM7UUFDRixLQUFLLEVBQUU7UUFDUCxJQUFJLEVBQUU7S0FDUDtDQUNGLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMsIG1rZGlyU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gXCJub2RlOmZzXCJcbmltcG9ydCB7IGpvaW4sIHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgY29udGVudENvbGxlY3Rpb25zIGZyb20gXCJAY29udGVudC1jb2xsZWN0aW9ucy92aXRlXCJcbmltcG9ydCB0YWlsd2luZCBmcm9tIFwiQHRhaWx3aW5kY3NzL3ZpdGVcIlxuaW1wb3J0IHsgZGV2dG9vbHMgfSBmcm9tIFwiQHRhbnN0YWNrL2RldnRvb2xzLXZpdGVcIlxuaW1wb3J0IHsgdGFuc3RhY2tTdGFydCB9IGZyb20gXCJAdGFuc3RhY2svcmVhY3Qtc3RhcnQvcGx1Z2luL3ZpdGVcIlxuaW1wb3J0IHtcbiAgcGh5c2ljYWwsXG4gIHJvb3RSb3V0ZSxcbiAgcm91dGUsXG4gIHR5cGUgVmlydHVhbFJvdXRlTm9kZSxcbn0gZnJvbSBcIkB0YW5zdGFjay92aXJ0dWFsLWZpbGUtcm91dGVzXCJcbmltcG9ydCByZWFjdCBmcm9tIFwiQHZpdGVqcy9wbHVnaW4tcmVhY3RcIlxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIlxuaW1wb3J0IHN2Z3IgZnJvbSBcInZpdGUtcGx1Z2luLXN2Z3JcIlxuaW1wb3J0IHsgbG9hZENvbmZpZyB9IGZyb20gXCIuL2FjdGlvbnMvY29uZmlnL2xvYWQudHNcIlxuaW1wb3J0IHsgV2Vic2l0ZUNvbmZpZyB9IGZyb20gXCIuL21vZGVscy9jb25maWcudHNcIlxuaW1wb3J0IHsgT1ZFUlJJREVfU1VCRElSUyB9IGZyb20gXCIuL3NldHRpbmdzLnRzXCJcbmltcG9ydCB7IGxpdmVtYXJrIH0gZnJvbSBcIi4vcGx1Z2lucy92aXRlLWxpdmVtYXJrLnRzXCJcblxuY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZygpXG5jb25zdCBzb3VyY2VEaXIgPSBpbXBvcnQubWV0YS5kaXJuYW1lXG5jb25zdCBzb3VyY2VSZWxhdGl2ZSA9IHJlbGF0aXZlKGNvbmZpZy5yb290LCBzb3VyY2VEaXIpXG5jb25zdCBvdmVycmlkZXNSb290ID0gam9pbihjb25maWcucm9vdCwgXCIubGl2ZW1hcmtcIilcblxuLy8gU2VlZCBgLmxpdmVtYXJrLy5naXRpZ25vcmVgIG9uIGZpcnN0IHJ1biBzbyBWaXRlJ3MgYnVpbGQvY2FjaGUgYXJ0aWZhY3RzXG4vLyBuZXZlciBnZXQgY29tbWl0dGVkIGJ5IGFjY2lkZW50LlxuY29uc3QgZ2l0aWdub3JlUGF0aCA9IGpvaW4ob3ZlcnJpZGVzUm9vdCwgXCIuZ2l0aWdub3JlXCIpXG5pZiAoIWV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgbWtkaXJTeW5jKG92ZXJyaWRlc1Jvb3QsIHsgcmVjdXJzaXZlOiB0cnVlIH0pXG4gIHdyaXRlRmlsZVN5bmMoZ2l0aWdub3JlUGF0aCwgXCIvYnVpbGRcXG4vY2FjaGVcXG5cIilcbn1cblxuY29uc3Qgcm91dGVDaGlsZHJlbjogVmlydHVhbFJvdXRlTm9kZVtdID0gW3JvdXRlKFwiLyRcIiwgXCIkLnRzeFwiKV1cbmlmIChleGlzdHNTeW5jKGpvaW4ob3ZlcnJpZGVzUm9vdCwgXCJyb3V0ZXNcIikpKSB7XG4gIC8vIHBoeXNpY2FsKGRpcikgcmVzb2x2ZXMgYGRpcmAgcmVsYXRpdmUgdG8gdGhlIHJvdXRlcyBkaXJlY3RvcnlcbiAgLy8gKGBzcmNEaXJlY3Rvcnkvcm91dGVzYCkuIEEgaGFyZGNvZGVkIFwiLi4vLi4vLmxpdmVtYXJrL3JvdXRlc1wiIG9ubHlcbiAgLy8gd29ya3Mgd2hlbiBzb3VyY2UvIHNpdHMgb25lIGxldmVsIHVuZGVyIGNvbmZpZy5yb290IOKAlCBpdCBsYW5kcyBhdFxuICAvLyBub2RlX21vZHVsZXMvLmxpdmVtYXJrL3JvdXRlcyBvbmNlIGxpdmVtYXJrIGlzIGluc3RhbGxlZC4gQ29tcHV0ZVxuICAvLyB0aGUgcGF0aCBkeW5hbWljYWxseSBmcm9tIHRoZSBjb25zdW1lcidzIGFjdHVhbCBsYXlvdXQuXG4gIGNvbnN0IHJvdXRlc0RpciA9IGpvaW4oc291cmNlRGlyLCBcInJvdXRlc1wiKVxuICByb3V0ZUNoaWxkcmVuLnB1c2goXG4gICAgcGh5c2ljYWwocmVsYXRpdmUocm91dGVzRGlyLCBqb2luKG92ZXJyaWRlc1Jvb3QsIFwicm91dGVzXCIpKSksXG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcbiAgcm9vdDogY29uZmlnLnJvb3QsXG4gIHB1YmxpY0Rpcjogam9pbihjb25maWcucm9vdCwgXCIubGl2ZW1hcmtcIiwgXCJwdWJsaWNcIiksXG4gIGJ1aWxkOiB7IG91dERpcjogXCIubGl2ZW1hcmsvYnVpbGRcIiB9LFxuICBkZWZpbmU6IHtcbiAgICBcImltcG9ydC5tZXRhLmVudi5DT05GSUdcIjogSlNPTi5zdHJpbmdpZnkoV2Vic2l0ZUNvbmZpZy5wYXJzZShjb25maWcpKSxcbiAgfSxcbiAgcGx1Z2luczogW1xuICAgIGxpdmVtYXJrKHtcbiAgICAgIGRlZmF1bHRzUm9vdDogc291cmNlRGlyLFxuICAgICAgb3ZlcnJpZGVzUm9vdCxcbiAgICAgIHN1YmRpcnM6IFsuLi5PVkVSUklERV9TVUJESVJTXSxcbiAgICAgIGNvbmZpZ1BhdGg6IGNvbmZpZy5jb25maWdQYXRoLFxuICAgIH0pLFxuICAgIGRldnRvb2xzKCksXG4gICAgdGFpbHdpbmQoKSxcbiAgICBjb250ZW50Q29sbGVjdGlvbnMoe1xuICAgICAgY29uZmlnUGF0aDogam9pbihzb3VyY2VSZWxhdGl2ZSwgXCJjb250ZW50LWNvbGxlY3Rpb25zLnRzXCIpLFxuICAgIH0pLFxuICAgIHRhbnN0YWNrU3RhcnQoe1xuICAgICAgc3JjRGlyZWN0b3J5OiBzb3VyY2VSZWxhdGl2ZSxcbiAgICAgIHBhZ2VzOiBbeyBwYXRoOiBcIi9cIiB9XSxcbiAgICAgIHByZXJlbmRlcjogeyBlbmFibGVkOiB0cnVlLCBjcmF3bExpbmtzOiB0cnVlIH0sXG4gICAgICBzaXRlbWFwOiBjb25maWcuc2l0ZVxuICAgICAgICA/IHsgZW5hYmxlZDogdHJ1ZSwgaG9zdDogY29uZmlnLnNpdGUgfVxuICAgICAgICA6IHsgZW5hYmxlZDogZmFsc2UgfSxcbiAgICAgIHJvdXRlcjoge1xuICAgICAgICB2aXJ0dWFsUm91dGVDb25maWc6IHJvb3RSb3V0ZShcIl9fcm9vdC50c3hcIiwgcm91dGVDaGlsZHJlbiksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJlYWN0KCksXG4gICAgc3ZncigpLFxuICBdLFxufSlcbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zb3VyY2Uvdml0ZS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sa0JBQWtCLE1BQU0sMkJBQTJCLENBQUE7QUFDMUQsT0FBTyxRQUFRLE1BQU0sbUJBQW1CLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSwrQkFBK0IsQ0FBQTtBQUN0QyxPQUFPLEtBQUssTUFBTSxzQkFBc0IsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25DLE9BQU8sSUFBSSxNQUFNLGtCQUFrQixDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsRUFBRSxDQUFBO0FBQ2pDLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUN2RCxNQUFNLGFBQWEsR0FBRyxJQUFJ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RUFBRSxhQUFhLENBQUM7YUFDM0Q7U0FDRixDQUFDO1FBQ0YsS0FBSyxFQUFFO1FBQ1AsSUFBSSxFQUFFO0tBQ1A7Q0FDRixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCBta2RpclN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBqb2luLCByZWxhdGl2ZSB9IGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IGNvbnRlbnRDb2xsZWN0aW9ucyBmcm9tIFwiQGNvbnRlbnQtY29sbGVjdGlvbnMvdml0ZVwiXG5pbXBvcnQgdGFpbHdpbmQgZnJvbSBcIkB0YWlsd2luZGNzcy92aXRlXCJcbmltcG9ydCB7IGRldnRvb2xzIH0gZnJvbSBcIkB0YW5zdGFjay9kZXZ0b29scy12aXRlXCJcbmltcG9ydCB7IHRhbnN0YWNrU3RhcnQgfSBmcm9tIFwiQHRhbnN0YWNrL3JlYWN0LXN0YXJ0L3BsdWdpbi92aXRlXCJcbmltcG9ydCB7XG4gIHBoeXNpY2FsLFxuICByb290Um91dGUsXG4gIHJvdXRlLFxuICB0eXBlIFZpcnR1YWxSb3V0ZU5vZGUsXG59IGZyb20gXCJAdGFuc3RhY2svdmlydHVhbC1maWxlLXJvdXRlc1wiXG5pbXBvcnQgcmVhY3QgZnJvbSBcIkB2aXRlanMvcGx1Z2luLXJlYWN0XCJcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJ2aXRlXCJcbmltcG9ydCBzdmdyIGZyb20gXCJ2aXRlLXBsdWdpbi1zdmdyXCJcbmltcG9ydCB7IGxvYWRDb25maWcgfSBmcm9tIFwiLi9hY3Rpb25zL2NvbmZpZy9sb2FkLnRzXCJcbmltcG9ydCB7IFdlYnNpdGVDb25maWcgfSBmcm9tIFwiLi9tb2RlbHMvY29uZmlnLnRzXCJcbmltcG9ydCB7IE9WRVJSSURFX1NVQkRJUlMgfSBmcm9tIFwiLi9zZXR0aW5ncy50c1wiXG5pbXBvcnQgeyBsaXZlbWFyayB9IGZyb20gXCIuL3BsdWdpbnMvdml0ZS1saXZlbWFyay50c1wiXG5cbmNvbnN0IGNvbmZpZyA9IGF3YWl0IGxvYWRDb25maWcoKVxuY29uc3Qgc291cmNlRGlyID0gaW1wb3J0Lm1ldGEuZGlybmFtZVxuY29uc3Qgc291cmNlUmVsYXRpdmUgPSByZWxhdGl2ZShjb25maWcucm9vdCwgc291cmNlRGlyKVxuY29uc3Qgb3ZlcnJpZGVzUm9vdCA9IGpvaW4oY29uZmlnLnJvb3QsIFwiLmxpdmVtYXJrXCIpXG5cbi8vIFNlZWQgYC5saXZlbWFyay8uZ2l0aWdub3JlYCBvbiBmaXJzdCBydW4gc28gVml0ZSdzIGJ1aWxkL2NhY2hlIGFydGlmYWN0c1xuLy8gbmV2ZXIgZ2V0IGNvbW1pdHRlZCBieSBhY2NpZGVudC5cbmNvbnN0IGdpdGlnbm9yZVBhdGggPSBqb2luKG92ZXJyaWRlc1Jvb3QsIFwiLmdpdGlnbm9yZVwiKVxuaWYgKCFleGlzdHNTeW5jKGdpdGlnbm9yZVBhdGgpKSB7XG4gIG1rZGlyU3luYyhvdmVycmlkZXNSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KVxuICB3cml0ZUZpbGVTeW5jKGdpdGlnbm9yZVBhdGgsIFwiL2J1aWxkXFxuL2NhY2hlXFxuXCIpXG59XG5cbmNvbnN0IHJvdXRlQ2hpbGRyZW46IFZpcnR1YWxSb3V0ZU5vZGVbXSA9IFtyb3V0ZShcIi8kXCIsIFwiJC50c3hcIildXG5pZiAoZXhpc3RzU3luYyhqb2luKG92ZXJyaWRlc1Jvb3QsIFwicm91dGVzXCIpKSkge1xuICAvLyBwaHlzaWNhbChkaXIpIHJlc29sdmVzIGBkaXJgIHJlbGF0aXZlIHRvIHRoZSByb3V0ZXMgZGlyZWN0b3J5XG4gIC8vIChgc3JjRGlyZWN0b3J5L3JvdXRlc2ApLiBBIGhhcmRjb2RlZCBcIi4uLy4uLy5saXZlbWFyay9yb3V0ZXNcIiBvbmx5XG4gIC8vIHdvcmtzIHdoZW4gc291cmNlLyBzaXRzIG9uZSBsZXZlbCB1bmRlciBjb25maWcucm9vdCDigJQgaXQgbGFuZHMgYXRcbiAgLy8gbm9kZV9tb2R1bGVzLy5saXZlbWFyay9yb3V0ZXMgb25jZSBsaXZlbWFyayBpcyBpbnN0YWxsZWQuIENvbXB1dGVcbiAgLy8gdGhlIHBhdGggZHluYW1pY2FsbHkgZnJvbSB0aGUgY29uc3VtZXIncyBhY3R1YWwgbGF5b3V0LlxuICBjb25zdCByb3V0ZXNEaXIgPSBqb2luKHNvdXJjZURpciwgXCJyb3V0ZXNcIilcbiAgcm91dGVDaGlsZHJlbi5wdXNoKFxuICAgIHBoeXNpY2FsKHJlbGF0aXZlKHJvdXRlc0Rpciwgam9pbihvdmVycmlkZXNSb290LCBcInJvdXRlc1wiKSkpLFxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZyh7XG4gIHJvb3Q6IGNvbmZpZy5yb290LFxuICBwdWJsaWNEaXI6IGpvaW4oY29uZmlnLnJvb3QsIFwiLmxpdmVtYXJrXCIsIFwicHVibGljXCIpLFxuICBidWlsZDogeyBvdXREaXI6IFwiLmxpdmVtYXJrL2J1aWxkXCIgfSxcbiAgZGVmaW5lOiB7XG4gICAgXCJpbXBvcnQubWV0YS5lbnYuQ09ORklHXCI6IEpTT04uc3RyaW5naWZ5KFdlYnNpdGVDb25maWcucGFyc2UoY29uZmlnKSksXG4gIH0sXG4gIC8vIGRlZHVwZTogY29sbGFwc2UgbXVsdGlwbGUgcmVzb2x1dGlvbnMgb2YgdGhlIHNhbWUgUmVhY3QtZmFtaWx5IHBhY2thZ2VcbiAgLy8gdG8gYSBzaW5nbGUgcGh5c2ljYWwgbW9kdWxlLCBzbyBsaXZlbWFyaydzIHNvdXJjZSwgdGhlIGNvbnN1bWVyJ3NcbiAgLy8gLmxpdmVtYXJrLyBvdmVycmlkZXMsIGFuZCBhbnkgdHJhbnNpdGl2ZSBwYWNrYWdlIHRoYXQgcmUtcmVzb2x2ZXMgUmVhY3RcbiAgLy8gdGhyb3VnaCBpdHMgb3duIHBlZXItZGVwIGNoYWluIGFsbCBzaGFyZSBvbmUgaW5zdGFuY2UuIFdpdGhvdXQgdGhpcyxcbiAgLy8gcG5wbSdzIGlzb2xhdGVkIGxheW91dCBjYW4gbGFuZCBkaWZmZXJlbnQgaW1wb3J0ZXJzIG9uIGRpZmZlcmVudCBjb3BpZXNcbiAgLy8gb2YgUmVhY3QsIGJyZWFraW5nIHNpbmdsZS1pbnN0YW5jZSBpbnZhcmlhbnRzICh1c2VTeW5jRXh0ZXJuYWxTdG9yZVxuICAvLyByZXR1cm5zIG51bGwsIGhvb2tzIHNlZSB3cm9uZyBzdG9yZXMpLlxuICByZXNvbHZlOiB7XG4gICAgZGVkdXBlOiBbXCJyZWFjdFwiLCBcInJlYWN0LWRvbVwiXSxcbiAgfSxcbiAgLy8gRm9yY2UgUmVhY3QgKyBSZWFjdERPTSBleHRlcm5hbCBpbiBTU1Igc28gdGhleSdyZSByZXNvbHZlZCBhdCBOb2RlXG4gIC8vIHJ1bnRpbWUg4oCUIHBhaXJlZCB3aXRoIGBkZWR1cGVgIGF0IGJ1aWxkIHRpbWUsIGJvdGggYnVuZGxlIGVudmlyb25tZW50c1xuICAvLyAoc2VydmVyICsgY2xpZW50KSBjb2xsYXBzZSBvbnRvIHRoZSBzYW1lIHBoeXNpY2FsIG1vZHVsZSByYXRoZXIgdGhhblxuICAvLyBzcGxpdHRpbmcgUmVhY3QgYWNyb3NzIG11bHRpcGxlIGlubGluZWQgY2h1bmtzLiBXaXRob3V0IHRoaXMgcGFpcixcbiAgLy8gcG5wbSdzIGlzb2xhdGVkIGxheW91dCBjYW4gbGFuZCByZWFjdCBhbmQgcmVhY3QtZG9tIG9uIG9wcG9zaXRlIHNpZGVzXG4gIC8vIG9mIHRoZSBidW5kbGUvZXh0ZXJuYWwgYm91bmRhcnkgYW5kIHByb2R1Y2UgUmVhY3QgMTknc1xuICAvLyBSZWFjdFNoYXJlZEludGVybmFscy5ILWlzLW51bGwgZmFpbHVyZSAodXNlU3luY0V4dGVybmFsU3RvcmUgdGhyb3dzKS5cbiAgc3NyOiB7XG4gICAgZXh0ZXJuYWw6IFtcInJlYWN0XCIsIFwicmVhY3QtZG9tXCJdLFxuICB9LFxuICBwbHVnaW5zOiBbXG4gICAgbGl2ZW1hcmsoe1xuICAgICAgZGVmYXVsdHNSb290OiBzb3VyY2VEaXIsXG4gICAgICBvdmVycmlkZXNSb290LFxuICAgICAgc3ViZGlyczogWy4uLk9WRVJSSURFX1NVQkRJUlNdLFxuICAgICAgY29uZmlnUGF0aDogY29uZmlnLmNvbmZpZ1BhdGgsXG4gICAgfSksXG4gICAgZGV2dG9vbHMoKSxcbiAgICB0YWlsd2luZCgpLFxuICAgIGNvbnRlbnRDb2xsZWN0aW9ucyh7XG4gICAgICBjb25maWdQYXRoOiBqb2luKHNvdXJjZVJlbGF0aXZlLCBcImNvbnRlbnQtY29sbGVjdGlvbnMudHNcIiksXG4gICAgfSksXG4gICAgdGFuc3RhY2tTdGFydCh7XG4gICAgICBzcmNEaXJlY3Rvcnk6IHNvdXJjZVJlbGF0aXZlLFxuICAgICAgcGFnZXM6IFt7IHBhdGg6IFwiL1wiIH1dLFxuICAgICAgcHJlcmVuZGVyOiB7IGVuYWJsZWQ6IHRydWUsIGNyYXdsTGlua3M6IHRydWUgfSxcbiAgICAgIHNpdGVtYXA6IGNvbmZpZy5zaXRlXG4gICAgICAgID8geyBlbmFibGVkOiB0cnVlLCBob3N0OiBjb25maWcuc2l0ZSB9XG4gICAgICAgIDogeyBlbmFibGVkOiBmYWxzZSB9LFxuICAgICAgcm91dGVyOiB7XG4gICAgICAgIHZpcnR1YWxSb3V0ZUNvbmZpZzogcm9vdFJvdXRlKFwiX19yb290LnRzeFwiLCByb3V0ZUNoaWxkcmVuKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcmVhY3QoKSxcbiAgICBzdmdyKCksXG4gIF0sXG59KVxuIl19