vite-plugin-react-server 1.4.1 → 1.4.3
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/README.md +48 -313
- package/dist/package.json +123 -13
- package/dist/plugin/bundle/deferredStaticGeneration.js +14 -39
- package/dist/plugin/bundle/manifests.js +30 -48
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
- package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +4 -1
- package/dist/plugin/config/envPrefixFromConfig.js +12 -7
- package/dist/plugin/config/getCondition.d.ts.map +1 -1
- package/dist/plugin/config/getCondition.js +7 -5
- package/dist/plugin/dev-server/configureReactServer.server.d.ts.map +1 -1
- package/dist/plugin/dev-server/configureReactServer.server.js +5 -8
- package/dist/plugin/dev-server/plugin.client.d.ts.map +1 -1
- package/dist/plugin/dev-server/plugin.client.js +2 -1
- package/dist/plugin/dev-server/plugin.server.d.ts.map +1 -1
- package/dist/plugin/dev-server/plugin.server.js +2 -36
- package/dist/plugin/dev-server/virtualRscHmrPlugin.js +23 -23
- package/dist/plugin/environments/createBuildEventPlugin.js +88 -98
- package/dist/plugin/environments/createEnvironmentPlugin.js +222 -250
- package/dist/plugin/error/index.d.ts +1 -2
- package/dist/plugin/error/index.d.ts.map +1 -1
- package/dist/plugin/error/index.js +2 -3
- package/dist/plugin/error/panicThresholdHandler.js +14 -3
- package/dist/plugin/error/setupGlobalErrorHandler.d.ts.map +1 -1
- package/dist/plugin/error/setupGlobalErrorHandler.js +23 -16
- package/dist/plugin/helpers/createRscRenderHelpers.d.ts +0 -5
- package/dist/plugin/helpers/createRscRenderHelpers.d.ts.map +1 -1
- package/dist/plugin/helpers/createRscRenderHelpers.js +32 -55
- package/dist/plugin/helpers/createSharedLoader.d.ts.map +1 -1
- package/dist/plugin/helpers/createSharedLoader.js +4 -2
- package/dist/plugin/helpers/headlessStreamReuseHandler.js +30 -22
- package/dist/plugin/helpers/headlessStreamState.d.ts +0 -38
- package/dist/plugin/helpers/headlessStreamState.d.ts.map +1 -1
- package/dist/plugin/helpers/headlessStreamState.js +15 -76
- package/dist/plugin/helpers/index.d.ts +0 -3
- package/dist/plugin/helpers/index.d.ts.map +1 -1
- package/dist/plugin/helpers/index.js +1 -4
- package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
- package/dist/plugin/helpers/requestInfo.js +3 -3
- package/dist/plugin/helpers/resolveComponent.d.ts.map +1 -1
- package/dist/plugin/helpers/resolveComponent.js +4 -2
- package/dist/plugin/helpers/workerCleanup.d.ts +1 -12
- package/dist/plugin/helpers/workerCleanup.d.ts.map +1 -1
- package/dist/plugin/helpers/workerCleanup.js +1 -1
- package/dist/plugin/index.client.d.ts +5 -0
- package/dist/plugin/index.client.d.ts.map +1 -0
- package/dist/plugin/index.client.js +4 -0
- package/dist/plugin/index.d.ts +4 -3
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +10 -5
- package/dist/plugin/index.server.d.ts +5 -0
- package/dist/plugin/index.server.d.ts.map +1 -0
- package/dist/plugin/index.server.js +4 -0
- package/dist/plugin/loader/directives/index.d.ts +0 -1
- package/dist/plugin/loader/directives/index.d.ts.map +1 -1
- package/dist/plugin/loader/directives/index.js +1 -2
- package/dist/plugin/metrics/createWorkerStartupMetrics.js +31 -13
- package/dist/plugin/orchestrator/createPluginOrchestrator.client.js +41 -38
- package/dist/plugin/orchestrator/createPluginOrchestrator.server.js +43 -46
- package/dist/plugin/plugin.client.js +2 -2
- package/dist/plugin/plugin.server.js +2 -2
- package/dist/plugin/react-static/createBuildLoader.client.js +12 -6
- package/dist/plugin/react-static/createBuildLoader.server.js +255 -235
- package/dist/plugin/react-static/plugin.client.js +684 -770
- package/dist/plugin/react-static/plugin.server.js +517 -603
- package/dist/plugin/react-static/processCssFilesForPages.js +103 -88
- package/dist/plugin/react-static/renderPage.client.js +455 -529
- package/dist/plugin/react-static/renderPage.server.js +485 -508
- package/dist/plugin/react-static/renderPagesBatched.js +277 -275
- package/dist/plugin/react-static/rscToHtmlStream.client.js +48 -29
- package/dist/plugin/react-static/rscToHtmlStream.server.js +62 -37
- package/dist/plugin/react-static/temporaryReferences.server.js +11 -2
- package/dist/plugin/stream/createMainThreadHandlers.js +40 -31
- package/dist/plugin/stream/renderRscStream.server.d.ts.map +1 -1
- package/dist/plugin/stream/renderRscStream.server.js +127 -144
- package/dist/plugin/transformer/createTransformerPlugin.js +226 -265
- package/dist/plugin/utils/checkReactVersion.d.ts +7 -0
- package/dist/plugin/utils/checkReactVersion.d.ts.map +1 -0
- package/dist/plugin/utils/checkReactVersion.js +23 -0
- package/dist/plugin/utils/envUrls.node.js +12 -11
- package/dist/plugin/vendor/vendor-alias.js +84 -114
- package/dist/plugin/vendor/vendor.client.d.ts.map +1 -1
- package/dist/plugin/vendor/vendor.client.js +1 -3
- package/dist/plugin/worker/rsc/handleRscRender.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/handleRscRender.js +3 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +123 -13
- package/plugin/config/autoDiscover/resolveAutoDiscover.ts +4 -0
- package/plugin/config/getCondition.ts +6 -4
- package/plugin/dev-server/configureReactServer.server.ts +7 -10
- package/plugin/dev-server/plugin.client.ts +2 -0
- package/plugin/dev-server/plugin.server.ts +2 -49
- package/plugin/error/index.ts +1 -2
- package/plugin/error/setupGlobalErrorHandler.ts +24 -25
- package/plugin/helpers/createRscRenderHelpers.ts +0 -29
- package/plugin/helpers/createSharedLoader.ts +6 -1
- package/plugin/helpers/headlessStreamState.ts +0 -69
- package/plugin/helpers/index.ts +0 -3
- package/plugin/helpers/requestInfo.ts +1 -2
- package/plugin/helpers/resolveComponent.ts +6 -1
- package/plugin/helpers/workerCleanup.ts +1 -38
- package/plugin/index.client.ts +4 -0
- package/plugin/index.server.ts +4 -0
- package/plugin/index.ts +12 -5
- package/plugin/loader/directives/index.ts +0 -1
- package/plugin/plugin.client.ts +1 -1
- package/plugin/plugin.server.ts +1 -1
- package/plugin/stream/renderRscStream.server.ts +3 -0
- package/plugin/transformer/README.md +1 -1
- package/plugin/utils/checkReactVersion.ts +28 -0
- package/plugin/vendor/vendor.client.ts +0 -2
- package/plugin/worker/html/README.md +1 -1
- package/plugin/worker/rsc/README.md +1 -1
- package/plugin/worker/rsc/handleRscRender.ts +2 -0
- package/scripts/generate-toc.mjs +27 -294
- package/dist/plugin/error/assertPanic.d.ts +0 -2
- package/dist/plugin/error/assertPanic.d.ts.map +0 -1
- package/dist/plugin/error/assertPanic.js +0 -15
- package/dist/plugin/error/directiveError.d.ts +0 -13
- package/dist/plugin/error/directiveError.d.ts.map +0 -1
- package/dist/plugin/error/directiveError.js +0 -21
- package/dist/plugin/error/enhanceError.d.ts +0 -14
- package/dist/plugin/error/enhanceError.d.ts.map +0 -1
- package/dist/plugin/error/enhanceError.js +0 -24
- package/dist/plugin/helpers/createSafePageComponent.d.ts +0 -36
- package/dist/plugin/helpers/createSafePageComponent.d.ts.map +0 -1
- package/dist/plugin/helpers/createSafePageComponent.js +0 -50
- package/dist/plugin/helpers/moduleResolver.d.ts +0 -25
- package/dist/plugin/helpers/moduleResolver.d.ts.map +0 -1
- package/dist/plugin/helpers/moduleResolver.js +0 -64
- package/dist/plugin/helpers/stashReturnValue.d.ts +0 -3
- package/dist/plugin/helpers/stashReturnValue.d.ts.map +0 -1
- package/dist/plugin/helpers/stashReturnValue.js +0 -23
- package/dist/plugin/helpers/workerManager.d.ts +0 -5
- package/dist/plugin/helpers/workerManager.d.ts.map +0 -1
- package/dist/plugin/helpers/workerManager.js +0 -18
- package/dist/plugin/loader/directives/collectExportsFromModule.d.ts +0 -6
- package/dist/plugin/loader/directives/collectExportsFromModule.d.ts.map +0 -1
- package/dist/plugin/loader/directives/collectExportsFromModule.js +0 -24
- package/plugin/error/assertPanic.ts +0 -9
- package/plugin/error/directiveError.ts +0 -29
- package/plugin/error/enhanceError.ts +0 -41
- package/plugin/helpers/createSafePageComponent.ts +0 -64
- package/plugin/helpers/moduleResolver.ts +0 -91
- package/plugin/helpers/stashReturnValue.ts +0 -19
- package/plugin/helpers/workerManager.ts +0 -16
- package/plugin/loader/directives/collectExportsFromModule.ts +0 -25
|
@@ -1,54 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
return serverManifestPromise;
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { perEnvironmentState } from 'vite';
|
|
7
|
+
|
|
8
|
+
const signalServerManifestReady = (manifest) => {
|
|
12
9
|
};
|
|
13
|
-
export const signalServerManifestReady = (manifest) => {
|
|
14
|
-
if (serverManifestResolve) {
|
|
15
|
-
serverManifestResolve(manifest);
|
|
16
|
-
serverManifestResolve = null;
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
// Reset the wait mechanism (for test isolation)
|
|
20
|
-
export const resetServerManifestWait = () => {
|
|
21
|
-
serverManifestResolve = null;
|
|
22
|
-
serverManifestPromise = null;
|
|
23
|
-
};
|
|
24
|
-
// Shared state between environments using Vite's perEnvironmentState API
|
|
25
10
|
const createSharedManifestStore = perEnvironmentState(() => ({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
server: null,
|
|
12
|
+
client: null,
|
|
13
|
+
static: null
|
|
29
14
|
}));
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
static: null,
|
|
15
|
+
const manifests = {
|
|
16
|
+
server: null,
|
|
17
|
+
client: null,
|
|
18
|
+
static: null
|
|
35
19
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
manifests[name] = manifest;
|
|
20
|
+
const addManifest = (name) => (manifest) => {
|
|
21
|
+
manifests[name] = manifest;
|
|
39
22
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
console.warn(`[manifests] Could not update shared state for ${name}: ${error}`);
|
|
53
|
-
}
|
|
23
|
+
const addStaticManifest = addManifest("static");
|
|
24
|
+
const addServerManifest = addManifest("server");
|
|
25
|
+
const getSharedManifestStore = (context) => createSharedManifestStore(context);
|
|
26
|
+
const updateSharedManifest = (context, name, manifest) => {
|
|
27
|
+
try {
|
|
28
|
+
const sharedState = createSharedManifestStore(context);
|
|
29
|
+
sharedState[name] = manifest;
|
|
30
|
+
} catch (error) {
|
|
31
|
+
console.warn(`[manifests] Could not update shared state for ${name}: ${error}`);
|
|
32
|
+
}
|
|
54
33
|
};
|
|
34
|
+
|
|
35
|
+
export { addManifest, addServerManifest, addStaticManifest, getSharedManifestStore, manifests, signalServerManifestReady, updateSharedManifest };
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3RzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vYnVuZGxlL21hbmlmZXN0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1hbmlmZXN0IH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IHBlckVudmlyb25tZW50U3RhdGUgfSBmcm9tIFwidml0ZVwiO1xuXG4vLyBQcm9taXNlLWJhc2VkIHdhaXQgbWVjaGFuaXNtIGZvciBzZXJ2ZXIgbWFuaWZlc3RcbmxldCBzZXJ2ZXJNYW5pZmVzdFJlc29sdmU6ICgobWFuaWZlc3Q6IE1hbmlmZXN0KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xubGV0IHNlcnZlck1hbmlmZXN0UHJvbWlzZTogUHJvbWlzZTxNYW5pZmVzdD4gfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGNvbnN0IHdhaXRGb3JTZXJ2ZXJNYW5pZmVzdCA9ICgpOiBQcm9taXNlPE1hbmlmZXN0PiA9PiB7XG4gIGlmICghc2VydmVyTWFuaWZlc3RQcm9taXNlKSB7XG4gICAgc2VydmVyTWFuaWZlc3RQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIHNlcnZlck1hbmlmZXN0UmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIHNlcnZlck1hbmlmZXN0UHJvbWlzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaWduYWxTZXJ2ZXJNYW5pZmVzdFJlYWR5ID0gKG1hbmlmZXN0OiBNYW5pZmVzdCk6IHZvaWQgPT4ge1xuICBpZiAoc2VydmVyTWFuaWZlc3RSZXNvbHZlKSB7XG4gICAgc2VydmVyTWFuaWZlc3RSZXNvbHZlKG1hbmlmZXN0KTtcbiAgICBzZXJ2ZXJNYW5pZmVzdFJlc29sdmUgPSBudWxsO1xuICB9XG59O1xuXG4vLyBSZXNldCB0aGUgd2FpdCBtZWNoYW5pc20gKGZvciB0ZXN0IGlzb2xhdGlvbilcbmV4cG9ydCBjb25zdCByZXNldFNlcnZlck1hbmlmZXN0V2FpdCA9ICgpOiB2b2lkID0+IHtcbiAgc2VydmVyTWFuaWZlc3RSZXNvbHZlID0gbnVsbDtcbiAgc2VydmVyTWFuaWZlc3RQcm9taXNlID0gbnVsbDtcbn07XG5cbi8vIFNoYXJlZCBzdGF0ZSBiZXR3ZWVuIGVudmlyb25tZW50cyB1c2luZyBWaXRlJ3MgcGVyRW52aXJvbm1lbnRTdGF0ZSBBUElcbmNvbnN0IGNyZWF0ZVNoYXJlZE1hbmlmZXN0U3RvcmUgPSBwZXJFbnZpcm9ubWVudFN0YXRlPHtcbiAgc2VydmVyOiBNYW5pZmVzdCB8IG51bGw7XG4gIGNsaWVudDogTWFuaWZlc3QgfCBudWxsO1xuICBzdGF0aWM6IE1hbmlmZXN0IHwgbnVsbDtcbn0+KCgpID0+ICh7XG4gIHNlcnZlcjogbnVsbCxcbiAgY2xpZW50OiBudWxsLFxuICBzdGF0aWM6IG51bGwsXG59KSk7XG5cbi8vIExlZ2FjeSBleHBvcnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbmV4cG9ydCBjb25zdCBtYW5pZmVzdHMgPSB7XG4gIHNlcnZlcjogbnVsbCxcbiAgY2xpZW50OiBudWxsLFxuICBzdGF0aWM6IG51bGwsXG59IGFzIHtcbiAgc2VydmVyOiBNYW5pZmVzdCB8IG51bGw7XG4gIGNsaWVudDogTWFuaWZlc3QgfCBudWxsO1xuICBzdGF0aWM6IE1hbmlmZXN0IHwgbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRNYW5pZmVzdCA9XG4gIChuYW1lOiBcInNlcnZlclwiIHwgXCJjbGllbnRcIiB8IFwic3RhdGljXCIpID0+IChtYW5pZmVzdDogTWFuaWZlc3QpID0+IHtcbiAgICAvLyBVcGRhdGUgdGhlIGxlZ2FjeSBtYW5pZmVzdHNcbiAgICBtYW5pZmVzdHNbbmFtZV0gPSBtYW5pZmVzdDtcbiAgfTtcblxuZXhwb3J0IGNvbnN0IGFkZFN0YXRpY01hbmlmZXN0ID0gYWRkTWFuaWZlc3QoXCJzdGF0aWNcIik7XG5leHBvcnQgY29uc3QgYWRkQ2xpZW50TWFuaWZlc3QgPSBhZGRNYW5pZmVzdChcImNsaWVudFwiKTtcbmV4cG9ydCBjb25zdCBhZGRTZXJ2ZXJNYW5pZmVzdCA9IGFkZE1hbmlmZXN0KFwic2VydmVyXCIpO1xuXG4vLyBOZXcgZnVuY3Rpb24gdG8gZ2V0IHRoZSBzaGFyZWQgc3RhdGUgZGlyZWN0bHkgKHJlcXVpcmVzIHBsdWdpbiBjb250ZXh0KVxuZXhwb3J0IGNvbnN0IGdldFNoYXJlZE1hbmlmZXN0U3RvcmUgPSAoY29udGV4dDogYW55KSA9PiBjcmVhdGVTaGFyZWRNYW5pZmVzdFN0b3JlKGNvbnRleHQpO1xuXG4vLyBOZXcgZnVuY3Rpb24gdG8gdXBkYXRlIHNoYXJlZCBzdGF0ZSAocmVxdWlyZXMgcGx1Z2luIGNvbnRleHQpXG5leHBvcnQgY29uc3QgdXBkYXRlU2hhcmVkTWFuaWZlc3QgPSAoY29udGV4dDogYW55LCBuYW1lOiBcInNlcnZlclwiIHwgXCJjbGllbnRcIiB8IFwic3RhdGljXCIsIG1hbmlmZXN0OiBNYW5pZmVzdCkgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHNoYXJlZFN0YXRlID0gY3JlYXRlU2hhcmVkTWFuaWZlc3RTdG9yZShjb250ZXh0KTtcbiAgICBzaGFyZWRTdGF0ZVtuYW1lXSA9IG1hbmlmZXN0O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUud2FybihgW21hbmlmZXN0c10gQ291bGQgbm90IHVwZGF0ZSBzaGFyZWQgc3RhdGUgZm9yICR7bmFtZX06ICR7ZXJyb3J9YCk7XG4gIH1cbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQWdCYSxNQUFBLHlCQUFBLEdBQTRCLENBQUMsUUFBNkIsS0FBQTtBQUt2RTtBQVNBLE1BQU0seUJBQUEsR0FBNEIsb0JBSS9CLE9BQU87QUFBQSxFQUNSLE1BQVEsRUFBQSxJQUFBO0FBQUEsRUFDUixNQUFRLEVBQUEsSUFBQTtBQUFBLEVBQ1IsTUFBUSxFQUFBO0FBQ1YsQ0FBRSxDQUFBLENBQUE7QUFHSyxNQUFNLFNBQVksR0FBQTtBQUFBLEVBQ3ZCLE1BQVEsRUFBQSxJQUFBO0FBQUEsRUFDUixNQUFRLEVBQUEsSUFBQTtBQUFBLEVBQ1IsTUFBUSxFQUFBO0FBQ1Y7QUFNTyxNQUFNLFdBQ1gsR0FBQSxDQUFDLElBQXlDLEtBQUEsQ0FBQyxRQUF1QixLQUFBO0FBRWhFLEVBQUEsU0FBQSxDQUFVLElBQUksQ0FBSSxHQUFBLFFBQUE7QUFDcEI7QUFFVyxNQUFBLGlCQUFBLEdBQW9CLFlBQVksUUFBUTtBQUV4QyxNQUFBLGlCQUFBLEdBQW9CLFlBQVksUUFBUTtBQUc5QyxNQUFNLHNCQUF5QixHQUFBLENBQUMsT0FBaUIsS0FBQSx5QkFBQSxDQUEwQixPQUFPO0FBR2xGLE1BQU0sb0JBQXVCLEdBQUEsQ0FBQyxPQUFjLEVBQUEsSUFBQSxFQUFzQyxRQUF1QixLQUFBO0FBQzlHLEVBQUksSUFBQTtBQUNGLElBQU0sTUFBQSxXQUFBLEdBQWMsMEJBQTBCLE9BQU8sQ0FBQTtBQUNyRCxJQUFBLFdBQUEsQ0FBWSxJQUFJLENBQUksR0FBQSxRQUFBO0FBQUEsV0FDYixLQUFPLEVBQUE7QUFDZCxJQUFBLE9BQUEsQ0FBUSxJQUFLLENBQUEsQ0FBQSw4Q0FBQSxFQUFpRCxJQUFJLENBQUEsRUFBQSxFQUFLLEtBQUssQ0FBRSxDQUFBLENBQUE7QUFBQTtBQUVsRjs7OzsifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveAutoDiscover.d.ts","sourceRoot":"","sources":["../../../../plugin/config/autoDiscover/resolveAutoDiscover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG/E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAOnD,KAAK,wBAAwB,GAAG;IAC9B,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,IAAI,CACf,mBAAmB,EACjB,OAAO,GACP,YAAY,GACZ,aAAa,GACb,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,MAAM,GACN,OAAO,GACP,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,SAAS,GACT,gBAAgB,GAChB,cAAc,CACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,yBAAyB,GAC1B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B,CAAC;AAEN,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,wBAAwB,KAC5B,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExC,eAAO,MAAM,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"resolveAutoDiscover.d.ts","sourceRoot":"","sources":["../../../../plugin/config/autoDiscover/resolveAutoDiscover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG/E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAOnD,KAAK,wBAAwB,GAAG;IAC9B,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,IAAI,CACf,mBAAmB,EACjB,OAAO,GACP,YAAY,GACZ,aAAa,GACb,aAAa,GACb,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,MAAM,GACN,OAAO,GACP,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,SAAS,GACT,gBAAgB,GAChB,cAAc,CACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,yBAAyB,GAC1B;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B,CAAC;AAEN,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,wBAAwB,KAC5B,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAExC,eAAO,MAAM,mBAAmB,EAAE,qBA2J/B,CAAC"}
|
|
@@ -93,6 +93,9 @@ const resolveAutoDiscover = async function _resolveAutoDiscover({
|
|
|
93
93
|
...clientEntry,
|
|
94
94
|
...cssInputs
|
|
95
95
|
};
|
|
96
|
+
if (Object.keys(clientInputsCollection).length === 0) {
|
|
97
|
+
Object.assign(clientInputsCollection, indexHtmlInputs);
|
|
98
|
+
}
|
|
96
99
|
const serverInputsCollection = {
|
|
97
100
|
...clientInputsCollection,
|
|
98
101
|
...customWorkerInputs,
|
|
@@ -125,4 +128,4 @@ const resolveAutoDiscover = async function _resolveAutoDiscover({
|
|
|
125
128
|
};
|
|
126
129
|
|
|
127
130
|
export { resolveAutoDiscover };
|
|
128
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZUF1dG9EaXNjb3Zlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGx1Z2luL2NvbmZpZy9hdXRvRGlzY292ZXIvcmVzb2x2ZUF1dG9EaXNjb3Zlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENvbmZpZ0VudiwgdHlwZSBVc2VyQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0eXBlIHsgQXV0b0Rpc2NvdmVyZWRGaWxlcywgUmVzb2x2ZWRVc2VyT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUJ1aWxkUGFnZXMgfSBmcm9tIFwiLi9yZXNvbHZlQnVpbGRQYWdlcy5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVBhZ2VzIH0gZnJvbSBcIi4uL3Jlc29sdmVQYWdlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIsIFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IGNyZWF0ZUdsb2JBdXRvRGlzY292ZXIgfSBmcm9tIFwiLi9jcmVhdGVHbG9iQXV0b0Rpc2NvdmVyLmpzXCI7XG5pbXBvcnQgeyBjdXN0b21Xb3JrZXJGaWxlcyB9IGZyb20gXCIuL2N1c3RvbVdvcmtlckZpbGVzLmpzXCI7XG5pbXBvcnQgeyBwYWdlQW5kUHJvcEZpbGVzIH0gZnJvbSBcIi4vcGFnZUFuZFByb3BGaWxlcy5qc1wiO1xuXG5cblxudHlwZSBSZXNvbHZlQXV0b0Rpc2NvdmVyUHJvcHMgPSB7XG4gIGNvbmZpZzogVXNlckNvbmZpZyB8IFJlc29sdmVkQ29uZmlnO1xuICBjb25maWdFbnY6IENvbmZpZ0VudjtcbiAgdXNlck9wdGlvbnM6IFBpY2s8XG4gICAgUmVzb2x2ZWRVc2VyT3B0aW9ucyxcbiAgICB8IFwiYnVpbGRcIlxuICAgIHwgXCJub3JtYWxpemVyXCJcbiAgICB8IFwic2VydmVyRW50cnlcIlxuICAgIHwgXCJjbGllbnRFbnRyeVwiXG4gICAgfCBcInByb2plY3RSb290XCJcbiAgICB8IFwibW9kdWxlQmFzZVwiXG4gICAgfCBcIm1vZHVsZUJhc2VQYXRoXCJcbiAgICB8IFwiUGFnZVwiXG4gICAgfCBcInByb3BzXCJcbiAgICB8IFwiaHRtbFdvcmtlclBhdGhcIlxuICAgIHwgXCJyc2NXb3JrZXJQYXRoXCJcbiAgICB8IFwicGFnZUV4cG9ydE5hbWVcIlxuICAgIHwgXCJwcm9wc0V4cG9ydE5hbWVcIlxuICAgIHwgXCJodG1sRXhwb3J0TmFtZVwiXG4gICAgfCBcInJvb3RFeHBvcnROYW1lXCJcbiAgICB8IFwiUm9vdFwiXG4gICAgfCBcIkh0bWxcIlxuICAgIHwgXCJ2ZXJib3NlXCJcbiAgICB8IFwicGFuaWNUaHJlc2hvbGRcIlxuICAgIHwgXCJhdXRvRGlzY292ZXJcIlxuICA+O1xuICBsb2dnZXI6IExvZ2dlcjtcbn07XG5cbnR5cGUgUmVzb2x2ZUF1dG9EaXNjb3ZlclJldHVybiA9XG4gIHwge1xuICAgICAgdHlwZTogXCJzdWNjZXNzXCI7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlczogQXV0b0Rpc2NvdmVyZWRGaWxlcztcbiAgICAgIGVycm9yPzogbmV2ZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IFwiZXJyb3JcIjtcbiAgICAgIGVycm9yOiB1bmtub3duO1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGF1dG9EaXNjb3ZlcmVkRmlsZXM/OiBuZXZlcjtcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlQXV0b0Rpc2NvdmVyRm4gPSAoXG4gIHByb3BzOiBSZXNvbHZlQXV0b0Rpc2NvdmVyUHJvcHNcbikgPT4gUHJvbWlzZTxSZXNvbHZlQXV0b0Rpc2NvdmVyUmV0dXJuPjtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVBdXRvRGlzY292ZXI6IFJlc29sdmVBdXRvRGlzY292ZXJGbiA9XG4gIGFzeW5jIGZ1bmN0aW9uIF9yZXNvbHZlQXV0b0Rpc2NvdmVyKHtcbiAgICBjb25maWcsXG4gICAgY29uZmlnRW52LFxuICAgIHVzZXJPcHRpb25zLFxuICAgIGxvZ2dlcixcbiAgfSkge1xuICAgIGNvbnN0IGVudklkID0gYCR7Y29uZmlnRW52LmNvbW1hbmR9LSR7Y29uZmlnRW52Lm1vZGV9YDtcbiAgICBcblxuICAgIFxuICAgIFxuICAgIFxuXG4gICAgY29uc3QgY29uZmlnSW5wdXRSZWNvcmQgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGlmICh0eXBlb2YgY29uZmlnLmJ1aWxkPy5yb2xsdXBPcHRpb25zPy5pbnB1dCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uZmlnSW5wdXRSZWNvcmRbXG4gICAgICAgIHVzZXJPcHRpb25zLm5vcm1hbGl6ZXIoY29uZmlnLmJ1aWxkPy5yb2xsdXBPcHRpb25zPy5pbnB1dClbMF1cbiAgICAgIF0gPSBjb25maWcuYnVpbGQ/LnJvbGx1cE9wdGlvbnM/LmlucHV0O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5idWlsZD8ucm9sbHVwT3B0aW9ucz8uaW5wdXQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGZvciAoY29uc3QgWywgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKFxuICAgICAgICBjb25maWcuYnVpbGQ/LnJvbGx1cE9wdGlvbnM/LmlucHV0XG4gICAgICApKSB7XG4gICAgICAgIGNvbmZpZ0lucHV0UmVjb3JkW3VzZXJPcHRpb25zLm5vcm1hbGl6ZXIodmFsdWUpWzBdXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZlckVudHJ5ID1cbiAgICAgIHR5cGVvZiB1c2VyT3B0aW9ucy5zZXJ2ZXJFbnRyeSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IE9iamVjdC5mcm9tRW50cmllcyhbdXNlck9wdGlvbnMubm9ybWFsaXplcih1c2VyT3B0aW9ucy5zZXJ2ZXJFbnRyeSldKVxuICAgICAgICA6IG51bGw7XG5cbiAgICBjb25zdCBpbmRleEh0bWxJbnB1dHMgPSB7IGluZGV4OiBcImluZGV4Lmh0bWxcIiB9O1xuXG4gICAgY29uc3QgY2xpZW50RW50cnkgPVxuICAgICAgdHlwZW9mIHVzZXJPcHRpb25zLmNsaWVudEVudHJ5ID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gT2JqZWN0LmZyb21FbnRyaWVzKFt1c2VyT3B0aW9ucy5ub3JtYWxpemVyKHVzZXJPcHRpb25zLmNsaWVudEVudHJ5KV0pXG4gICAgICAgIDoge307XG5cbiAgICBjb25zdCB7IHR5cGUsIGVycm9yLCBwYWdlcyB9ID0gYXdhaXQgcmVzb2x2ZVBhZ2VzKHVzZXJPcHRpb25zLmJ1aWxkLnBhZ2VzKTtcblxuICAgIGlmICh0eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGlkOiBlbnZJZCxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGNsaWVudEZpbGVzID0gY3JlYXRlR2xvYkF1dG9EaXNjb3Zlcih1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuY2xpZW50RW50cnkpO1xuICAgIGNvbnN0IHNlcnZlckZpbGVzID0gY3JlYXRlR2xvYkF1dG9EaXNjb3Zlcih1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuc2VydmVyRW50cnkpO1xuICAgIGNvbnN0IGNzc0ZpbGVzID0gY3JlYXRlR2xvYkF1dG9EaXNjb3Zlcih1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuY3NzRW50cnkpO1xuICAgIGNvbnN0IGpzb25GaWxlcyA9IGNyZWF0ZUdsb2JBdXRvRGlzY292ZXIodXNlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLmpzb25FbnRyeSk7XG4gICAgY29uc3QgaHRtbEZpbGVzID0gY3JlYXRlR2xvYkF1dG9EaXNjb3Zlcih1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuaHRtbFBhdHRlcm4uc291cmNlKTtcblxuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgcmVzb2x2ZUJ1aWxkUGFnZXMoe1xuICAgICAgcGFnZXMsXG4gICAgICB1c2VyT3B0aW9ucyxcbiAgICAgIGxvZ2dlcixcbiAgICB9KTtcblxuIFxuXG4gICAgY29uc3QgY3VzdG9tV29ya2VySW5wdXRzID0gY3VzdG9tV29ya2VyRmlsZXMoe1xuICAgICAgaW5wdXRzOiB7fSxcbiAgICAgIHVzZXJPcHRpb25zLFxuICAgIH0pO1xuICAgIGNvbnN0IGNsaWVudElucHV0cyA9IGF3YWl0IGNsaWVudEZpbGVzKHtcbiAgICAgIGlucHV0czoge30sXG4gICAgICB1c2VyT3B0aW9ucyxcbiAgICB9KTtcbiAgICBjb25zdCBzZXJ2ZXJBY3Rpb25zID0gYXdhaXQgc2VydmVyRmlsZXMoe1xuICAgICAgaW5wdXRzOiB7fSxcbiAgICAgIHVzZXJPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGFnZUFuZFByb3BJbnB1dHMgPSBwYWdlQW5kUHJvcEZpbGVzKHtcbiAgICAgIGZpbGVzLFxuICAgICAgaW5wdXRzOiB7fSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNzc0lucHV0cyA9IGF3YWl0IGNzc0ZpbGVzKHtcbiAgICAgIGlucHV0czoge30sXG4gICAgICB1c2VyT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGpzb25JbnB1dHMgPSBhd2FpdCBqc29uRmlsZXMoe1xuICAgICAgaW5wdXRzOiB7fSxcbiAgICAgIHVzZXJPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaHRtbElucHV0cyA9IGF3YWl0IGh0bWxGaWxlcyh7XG4gICAgICBpbnB1dHM6IHt9LFxuICAgICAgdXNlck9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgY3VzdG9tIFJvb3QgYW5kIEh0bWwgY29tcG9uZW50cyB0byBpbnB1dHNcbiAgICBjb25zdCBjdXN0b21Db21wb25lbnRJbnB1dHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIC8vIEFkZCBSb290IGNvbXBvbmVudHMgZnJvbSByZXNvbHZlZCBidWlsZCBwYWdlc1xuICAgIGZvciAoY29uc3QgW3Jvb3RLZXksIHJvb3RWYWx1ZV0gb2YgZmlsZXMucm9vdE1hcCkge1xuICAgICAgaWYgKCFjdXN0b21Db21wb25lbnRJbnB1dHNbcm9vdEtleV0pIHtcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50SW5wdXRzW3Jvb3RLZXldID0gcm9vdFZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBIdG1sIGNvbXBvbmVudHMgZnJvbSByZXNvbHZlZCBidWlsZCBwYWdlc1xuICAgIGZvciAoY29uc3QgW2h0bWxLZXksIGh0bWxWYWx1ZV0gb2YgZmlsZXMuaHRtbE1hcCkge1xuICAgICAgaWYgKCFjdXN0b21Db21wb25lbnRJbnB1dHNbaHRtbEtleV0pIHtcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50SW5wdXRzW2h0bWxLZXldID0gaHRtbFZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgXG4gICAgLy8gU2VwYXJhdGUgY2xpZW50IGFuZCBzZXJ2ZXIgaW5wdXRzXG4gICAgY29uc3QgY2xpZW50SW5wdXRzQ29sbGVjdGlvbiA9IHtcbiAgICAgIC4uLmNvbmZpZ0lucHV0UmVjb3JkLFxuICAgICAgLi4uY2xpZW50SW5wdXRzLFxuICAgICAgLi4uY2xpZW50RW50cnksXG4gICAgICAuLi5jc3NJbnB1dHMsXG4gICAgfTtcbiAgICBcbiAgICBjb25zdCBzZXJ2ZXJJbnB1dHNDb2xsZWN0aW9uID0ge1xuICAgICAgLi4uY2xpZW50SW5wdXRzQ29sbGVjdGlvbixcbiAgICAgIC4uLmN1c3RvbVdvcmtlcklucHV0cyxcbiAgICAgIC4uLnBhZ2VBbmRQcm9wSW5wdXRzLFxuICAgICAgLi4uY3NzSW5wdXRzLFxuICAgICAgLi4uc2VydmVyQWN0aW9ucyxcbiAgICAgIC4uLnNlcnZlckVudHJ5LFxuICAgICAgLi4uanNvbklucHV0cyxcbiAgICAgIC4uLmN1c3RvbUNvbXBvbmVudElucHV0cywgLy8gQWRkIGN1c3RvbSBjb21wb25lbnRzIHRvIHNlcnZlciBidWlsZFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXG4gICAgICBpZDogZW52SWQsXG4gICAgICBhdXRvRGlzY292ZXJlZEZpbGVzOiB7XG4gICAgICAgIC4uLmZpbGVzLFxuICAgICAgICB3b3JrZXJQYXRoczogY3VzdG9tV29ya2VySW5wdXRzLFxuICAgICAgICBzZXJ2ZXJFbnRyeSxcbiAgICAgICAgY2xpZW50RW50cnksXG4gICAgICAgIHN0YXRpY0lucHV0czoge1xuICAgICAgICAgIC4uLmluZGV4SHRtbElucHV0cyxcbiAgICAgICAgICAuLi5odG1sSW5wdXRzLFxuICAgICAgICAgIC4uLmNsaWVudElucHV0c0NvbGxlY3Rpb25cbiAgICAgICAgfSxcbiAgICAgICAgY2xpZW50SW5wdXRzOiBjbGllbnRJbnB1dHNDb2xsZWN0aW9uLFxuICAgICAgICBzZXJ2ZXJJbnB1dHM6IHNlcnZlcklucHV0c0NvbGxlY3Rpb24sXG4gICAgICAgIHNlcnZlckFjdGlvbnMsXG4gICAgICB9LFxuICAgIH07XG4gIH07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBMERhLE1BQUEsbUJBQUEsR0FDWCxlQUFlLG9CQUFxQixDQUFBO0FBQUEsRUFDbEMsTUFBQTtBQUFBLEVBQ0EsU0FBQTtBQUFBLEVBQ0EsV0FBQTtBQUFBLEVBQ0E7QUFDRixDQUFHLEVBQUE7QUFDRCxFQUFBLE1BQU0sUUFBUSxDQUFHLEVBQUEsU0FBQSxDQUFVLE9BQU8sQ0FBQSxDQUFBLEVBQUksVUFBVSxJQUFJLENBQUEsQ0FBQTtBQU9wRCxFQUFBLE1BQU0sb0JBQW9CLEVBQUM7QUFDM0IsRUFBQSxJQUFJLE9BQU8sTUFBQSxDQUFPLEtBQU8sRUFBQSxhQUFBLEVBQWUsVUFBVSxRQUFVLEVBQUE7QUFDMUQsSUFBQSxpQkFBQSxDQUNFLFdBQVksQ0FBQSxVQUFBLENBQVcsTUFBTyxDQUFBLEtBQUEsRUFBTyxhQUFlLEVBQUEsS0FBSyxDQUFFLENBQUEsQ0FBQyxDQUM5RCxDQUFBLEdBQUksTUFBTyxDQUFBLEtBQUEsRUFBTyxh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
|
|
131
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZUF1dG9EaXNjb3Zlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGx1Z2luL2NvbmZpZy9hdXRvRGlzY292ZXIvcmVzb2x2ZUF1dG9EaXNjb3Zlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENvbmZpZ0VudiwgdHlwZSBVc2VyQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0eXBlIHsgQXV0b0Rpc2NvdmVyZWRGaWxlcywgUmVzb2x2ZWRVc2VyT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUJ1aWxkUGFnZXMgfSBmcm9tIFwiLi9yZXNvbHZlQnVpbGRQYWdlcy5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZVBhZ2VzIH0gZnJvbSBcIi4uL3Jlc29sdmVQYWdlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIsIFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IGNyZWF0ZUdsb2JBdXRvRGlzY292ZXIgfSBmcm9tIFwiLi9jcmVhdGVHbG9iQXV0b0Rpc2NvdmVyLmpzXCI7XG5pbXBvcnQgeyBjdXN0b21Xb3JrZXJGaWxlcyB9IGZyb20gXCIuL2N1c3RvbVdvcmtlckZpbGVzLmpzXCI7XG5pbXBvcnQgeyBwYWdlQW5kUHJvcEZpbGVzIH0gZnJvbSBcIi4vcGFnZUFuZFByb3BGaWxlcy5qc1wiO1xuXG5cblxudHlwZSBSZXNvbHZlQXV0b0Rpc2NvdmVyUHJvcHMgPSB7XG4gIGNvbmZpZzogVXNlckNvbmZpZyB8IFJlc29sdmVkQ29uZmlnO1xuICBjb25maWdFbnY6IENvbmZpZ0VudjtcbiAgdXNlck9wdGlvbnM6IFBpY2s8XG4gICAgUmVzb2x2ZWRVc2VyT3B0aW9ucyxcbiAgICB8IFwiYnVpbGRcIlxuICAgIHwgXCJub3JtYWxpemVyXCJcbiAgICB8IFwic2VydmVyRW50cnlcIlxuICAgIHwgXCJjbGllbnRFbnRyeVwiXG4gICAgfCBcInByb2plY3RSb290XCJcbiAgICB8IFwibW9kdWxlQmFzZVwiXG4gICAgfCBcIm1vZHVsZUJhc2VQYXRoXCJcbiAgICB8IFwiUGFnZVwiXG4gICAgfCBcInByb3BzXCJcbiAgICB8IFwiaHRtbFdvcmtlclBhdGhcIlxuICAgIHwgXCJyc2NXb3JrZXJQYXRoXCJcbiAgICB8IFwicGFnZUV4cG9ydE5hbWVcIlxuICAgIHwgXCJwcm9wc0V4cG9ydE5hbWVcIlxuICAgIHwgXCJodG1sRXhwb3J0TmFtZVwiXG4gICAgfCBcInJvb3RFeHBvcnROYW1lXCJcbiAgICB8IFwiUm9vdFwiXG4gICAgfCBcIkh0bWxcIlxuICAgIHwgXCJ2ZXJib3NlXCJcbiAgICB8IFwicGFuaWNUaHJlc2hvbGRcIlxuICAgIHwgXCJhdXRvRGlzY292ZXJcIlxuICA+O1xuICBsb2dnZXI6IExvZ2dlcjtcbn07XG5cbnR5cGUgUmVzb2x2ZUF1dG9EaXNjb3ZlclJldHVybiA9XG4gIHwge1xuICAgICAgdHlwZTogXCJzdWNjZXNzXCI7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgYXV0b0Rpc2NvdmVyZWRGaWxlczogQXV0b0Rpc2NvdmVyZWRGaWxlcztcbiAgICAgIGVycm9yPzogbmV2ZXI7XG4gICAgfVxuICB8IHtcbiAgICAgIHR5cGU6IFwiZXJyb3JcIjtcbiAgICAgIGVycm9yOiB1bmtub3duO1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGF1dG9EaXNjb3ZlcmVkRmlsZXM/OiBuZXZlcjtcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlQXV0b0Rpc2NvdmVyRm4gPSAoXG4gIHByb3BzOiBSZXNvbHZlQXV0b0Rpc2NvdmVyUHJvcHNcbikgPT4gUHJvbWlzZTxSZXNvbHZlQXV0b0Rpc2NvdmVyUmV0dXJuPjtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVBdXRvRGlzY292ZXI6IFJlc29sdmVBdXRvRGlzY292ZXJGbiA9XG4gIGFzeW5jIGZ1bmN0aW9uIF9yZXNvbHZlQXV0b0Rpc2NvdmVyKHtcbiAgICBjb25maWcsXG4gICAgY29uZmlnRW52LFxuICAgIHVzZXJPcHRpb25zLFxuICAgIGxvZ2dlcixcbiAgfSkge1xuICAgIGNvbnN0IGVudklkID0gYCR7Y29uZmlnRW52LmNvbW1hbmR9LSR7Y29uZmlnRW52Lm1vZGV9YDtcbiAgICBcblxuICAgIFxuICAgIFxuICAgIFxuXG4gICAgY29uc3QgY29uZmlnSW5wdXRSZWNvcmQgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGlmICh0eXBlb2YgY29uZmlnLmJ1aWxkPy5yb2xsdXBPcHRpb25zPy5pbnB1dCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uZmlnSW5wdXRSZWNvcmRbXG4gICAgICAgIHVzZXJPcHRpb25zLm5vcm1hbGl6ZXIoY29uZmlnLmJ1aWxkPy5yb2xsdXBPcHRpb25zPy5pbnB1dClbMF1cbiAgICAgIF0gPSBjb25maWcuYnVpbGQ/LnJvbGx1cE9wdGlvbnM/LmlucHV0O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbmZpZy5idWlsZD8ucm9sbHVwT3B0aW9ucz8uaW5wdXQgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIGZvciAoY29uc3QgWywgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKFxuICAgICAgICBjb25maWcuYnVpbGQ/LnJvbGx1cE9wdGlvbnM/LmlucHV0XG4gICAgICApKSB7XG4gICAgICAgIGNvbmZpZ0lucHV0UmVjb3JkW3VzZXJPcHRpb25zLm5vcm1hbGl6ZXIodmFsdWUpWzBdXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHNlcnZlckVudHJ5ID1cbiAgICAgIHR5cGVvZiB1c2VyT3B0aW9ucy5zZXJ2ZXJFbnRyeSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IE9iamVjdC5mcm9tRW50cmllcyhbdXNlck9wdGlvbnMubm9ybWFsaXplcih1c2VyT3B0aW9ucy5zZXJ2ZXJFbnRyeSldKVxuICAgICAgICA6IG51bGw7XG5cbiAgICBjb25zdCBpbmRleEh0bWxJbnB1dHMgPSB7IGluZGV4OiBcImluZGV4Lmh0bWxcIiB9O1xuXG4gICAgY29uc3QgY2xpZW50RW50cnkgPVxuICAgICAgdHlwZW9mIHVzZXJPcHRpb25zLmNsaWVudEVudHJ5ID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gT2JqZWN0LmZyb21FbnRyaWVzKFt1c2VyT3B0aW9ucy5ub3JtYWxpemVyKHVzZXJPcHRpb25zLmNsaWVudEVudHJ5KV0pXG4gICAgICAgIDoge307XG5cbiAgICBjb25zdCB7IHR5cGUsIGVycm9yLCBwYWdlcyB9ID0gYXdhaXQgcmVzb2x2ZVBhZ2VzKHVzZXJPcHRpb25zLmJ1aWxkLnBhZ2VzKTtcblxuICAgIGlmICh0eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGlkOiBlbnZJZCxcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGNsaWVudEZpbGVzID0gY3JlYXRlR2xvYkF1dG9EaXNjb3Zlcih1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuY2xpZW50RW50cnkpO1xuICAgIGNvbnN0IHNlcnZlckZpbGVzID0gY3JlYXRlR2xvYkF1dG9EaXNjb3Zlcih1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuc2VydmVyRW50cnkpO1xuICAgIGNvbnN0IGNzc0ZpbGVzID0gY3JlYXRlR2xvYkF1dG9EaXNjb3Zlcih1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuY3NzRW50cnkpO1xuICAgIGNvbnN0IGpzb25GaWxlcyA9IGNyZWF0ZUdsb2JBdXRvRGlzY292ZXIodXNlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLmpzb25FbnRyeSk7XG4gICAgY29uc3QgaHRtbEZpbGVzID0gY3JlYXRlR2xvYkF1dG9EaXNjb3Zlcih1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIuaHRtbFBhdHRlcm4uc291cmNlKTtcblxuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgcmVzb2x2ZUJ1aWxkUGFnZXMoe1xuICAgICAgcGFnZXMsXG4gICAgICB1c2VyT3B0aW9ucyxcbiAgICAgIGxvZ2dlcixcbiAgICB9KTtcblxuIFxuXG4gICAgY29uc3QgY3VzdG9tV29ya2VySW5wdXRzID0gY3VzdG9tV29ya2VyRmlsZXMoe1xuICAgICAgaW5wdXRzOiB7fSxcbiAgICAgIHVzZXJPcHRpb25zLFxuICAgIH0pO1xuICAgIGNvbnN0IGNsaWVudElucHV0cyA9IGF3YWl0IGNsaWVudEZpbGVzKHtcbiAgICAgIGlucHV0czoge30sXG4gICAgICB1c2VyT3B0aW9ucyxcbiAgICB9KTtcbiAgICBjb25zdCBzZXJ2ZXJBY3Rpb25zID0gYXdhaXQgc2VydmVyRmlsZXMoe1xuICAgICAgaW5wdXRzOiB7fSxcbiAgICAgIHVzZXJPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGFnZUFuZFByb3BJbnB1dHMgPSBwYWdlQW5kUHJvcEZpbGVzKHtcbiAgICAgIGZpbGVzLFxuICAgICAgaW5wdXRzOiB7fSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNzc0lucHV0cyA9IGF3YWl0IGNzc0ZpbGVzKHtcbiAgICAgIGlucHV0czoge30sXG4gICAgICB1c2VyT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGpzb25JbnB1dHMgPSBhd2FpdCBqc29uRmlsZXMoe1xuICAgICAgaW5wdXRzOiB7fSxcbiAgICAgIHVzZXJPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaHRtbElucHV0cyA9IGF3YWl0IGh0bWxGaWxlcyh7XG4gICAgICBpbnB1dHM6IHt9LFxuICAgICAgdXNlck9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgY3VzdG9tIFJvb3QgYW5kIEh0bWwgY29tcG9uZW50cyB0byBpbnB1dHNcbiAgICBjb25zdCBjdXN0b21Db21wb25lbnRJbnB1dHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIC8vIEFkZCBSb290IGNvbXBvbmVudHMgZnJvbSByZXNvbHZlZCBidWlsZCBwYWdlc1xuICAgIGZvciAoY29uc3QgW3Jvb3RLZXksIHJvb3RWYWx1ZV0gb2YgZmlsZXMucm9vdE1hcCkge1xuICAgICAgaWYgKCFjdXN0b21Db21wb25lbnRJbnB1dHNbcm9vdEtleV0pIHtcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50SW5wdXRzW3Jvb3RLZXldID0gcm9vdFZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBIdG1sIGNvbXBvbmVudHMgZnJvbSByZXNvbHZlZCBidWlsZCBwYWdlc1xuICAgIGZvciAoY29uc3QgW2h0bWxLZXksIGh0bWxWYWx1ZV0gb2YgZmlsZXMuaHRtbE1hcCkge1xuICAgICAgaWYgKCFjdXN0b21Db21wb25lbnRJbnB1dHNbaHRtbEtleV0pIHtcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50SW5wdXRzW2h0bWxLZXldID0gaHRtbFZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgXG4gICAgLy8gU2VwYXJhdGUgY2xpZW50IGFuZCBzZXJ2ZXIgaW5wdXRzXG4gICAgY29uc3QgY2xpZW50SW5wdXRzQ29sbGVjdGlvbiA9IHtcbiAgICAgIC4uLmNvbmZpZ0lucHV0UmVjb3JkLFxuICAgICAgLi4uY2xpZW50SW5wdXRzLFxuICAgICAgLi4uY2xpZW50RW50cnksXG4gICAgICAuLi5jc3NJbnB1dHMsXG4gICAgfTtcbiAgICAvLyBJZiBubyBjbGllbnQgZW50cmllcyBmb3VuZCwgZmFsbCBiYWNrIHRvIGluZGV4Lmh0bWwgc28gU1NSIGVudmlyb25tZW50IGhhcyBpbnB1dHNcbiAgICBpZiAoT2JqZWN0LmtleXMoY2xpZW50SW5wdXRzQ29sbGVjdGlvbikubGVuZ3RoID09PSAwKSB7XG4gICAgICBPYmplY3QuYXNzaWduKGNsaWVudElucHV0c0NvbGxlY3Rpb24sIGluZGV4SHRtbElucHV0cyk7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IHNlcnZlcklucHV0c0NvbGxlY3Rpb24gPSB7XG4gICAgICAuLi5jbGllbnRJbnB1dHNDb2xsZWN0aW9uLFxuICAgICAgLi4uY3VzdG9tV29ya2VySW5wdXRzLFxuICAgICAgLi4ucGFnZUFuZFByb3BJbnB1dHMsXG4gICAgICAuLi5jc3NJbnB1dHMsXG4gICAgICAuLi5zZXJ2ZXJBY3Rpb25zLFxuICAgICAgLi4uc2VydmVyRW50cnksXG4gICAgICAuLi5qc29uSW5wdXRzLFxuICAgICAgLi4uY3VzdG9tQ29tcG9uZW50SW5wdXRzLCAvLyBBZGQgY3VzdG9tIGNvbXBvbmVudHMgdG8gc2VydmVyIGJ1aWxkXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcbiAgICAgIGlkOiBlbnZJZCxcbiAgICAgIGF1dG9EaXNjb3ZlcmVkRmlsZXM6IHtcbiAgICAgICAgLi4uZmlsZXMsXG4gICAgICAgIHdvcmtlclBhdGhzOiBjdXN0b21Xb3JrZXJJbnB1dHMsXG4gICAgICAgIHNlcnZlckVudHJ5LFxuICAgICAgICBjbGllbnRFbnRyeSxcbiAgICAgICAgc3RhdGljSW5wdXRzOiB7XG4gICAgICAgICAgLi4uaW5kZXhIdG1sSW5wdXRzLFxuICAgICAgICAgIC4uLmh0bWxJbnB1dHMsXG4gICAgICAgICAgLi4uY2xpZW50SW5wdXRzQ29sbGVjdGlvblxuICAgICAgICB9LFxuICAgICAgICBjbGllbnRJbnB1dHM6IGNsaWVudElucHV0c0NvbGxlY3Rpb24sXG4gICAgICAgIHNlcnZlcklucHV0czogc2VydmVySW5wdXRzQ29sbGVjdGlvbixcbiAgICAgICAgc2VydmVyQWN0aW9ucyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUEwRGEsTUFBQSxtQkFBQSxHQUNYLGVBQWUsb0JBQXFCLENBQUE7QUFBQSxFQUNsQyxNQUFBO0FBQUEsRUFDQSxTQUFBO0FBQUEsRUFDQSxXQUFBO0FBQUEsRUFDQTtBQUNGLENBQUcsRUFBQTtBQUNELEVBQUEsTUFBTSxRQUFRLENBQUcsRUFBQSxTQUFBLENBQVUsT0FBTyxDQUFBLENBQUEsRUFBSSxVQUFVLElBQUksQ0FBQSxDQUFBO0FB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
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
/**
|
|
2
|
+
* vite-plugin-react-server
|
|
3
|
+
* Copyright (c) Nico Brinkkemper
|
|
4
|
+
* MIT License
|
|
5
|
+
*/
|
|
6
|
+
import { DEFAULT_CONFIG } from './defaults.js';
|
|
7
|
+
|
|
8
|
+
function envPrefixFromConfig(config) {
|
|
9
|
+
return typeof config.envPrefix === "string" ? config.envPrefix : Array.isArray(config.envPrefix) ? config.envPrefix[0] : DEFAULT_CONFIG.ENV_PREFIX;
|
|
8
10
|
}
|
|
11
|
+
|
|
12
|
+
export { envPrefixFromConfig };
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52UHJlZml4RnJvbUNvbmZpZy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2NvbmZpZy9lbnZQcmVmaXhGcm9tQ29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzb2x2ZWRDb25maWcgfSBmcm9tIFwidml0ZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9DT05GSUcgfSBmcm9tIFwiLi9kZWZhdWx0cy5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZW52UHJlZml4RnJvbUNvbmZpZyhjb25maWc6IFBpY2s8UmVzb2x2ZWRDb25maWcsIFwiZW52UHJlZml4XCI+KSB7XG4gIHJldHVybiB0eXBlb2YgY29uZmlnLmVudlByZWZpeCA9PT0gXCJzdHJpbmdcIlxuICAgID8gY29uZmlnLmVudlByZWZpeFxuICAgIDogQXJyYXkuaXNBcnJheShjb25maWcuZW52UHJlZml4KVxuICAgID8gY29uZmlnLmVudlByZWZpeFswXVxuICAgIDogREVGQVVMVF9DT05GSUcuRU5WX1BSRUZJWDtcbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdPLFNBQVMsb0JBQW9CLE1BQTJDLEVBQUE7QUFDN0UsRUFBQSxPQUFPLE9BQU8sTUFBQSxDQUFPLFNBQWMsS0FBQSxRQUFBLEdBQy9CLE9BQU8sU0FDUCxHQUFBLEtBQUEsQ0FBTSxPQUFRLENBQUEsTUFBQSxDQUFPLFNBQVMsQ0FDOUIsR0FBQSxNQUFBLENBQU8sU0FBVSxDQUFBLENBQUMsSUFDbEIsY0FBZSxDQUFBLFVBQUE7QUFDckI7Ozs7In0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCondition.d.ts","sourceRoot":"","sources":["../../../plugin/config/getCondition.ts"],"names":[],"mappings":"AAsGA;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,MAAM,EAUzC,CAAC;AASF,eAAO,MAAM,6BAA6B,QAAO,MAAM,EAKtD,CAAC;AAEF,eAAO,MAAM,8BAA8B,QAAO,IAwBjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAC5B,cAAc,GACd,cAAc,GACd,SAWH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,MAAM,GAAG,QAAQ,EAAE,gBAAgB,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,QAAQ,EAC9H,SAAQ,MAA2B,EACnC,gBACI,GAAG,MAAM,QAAQ,GACjB,GAAG,MAAM,QAAiD,KAC7D,GAAG,MAAM,QAAQ,GAAG,GAAG,MAAM,QAAQ,GAAG,gBAS1C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,IAAI,IAAI;IACnD,SAAS,EAAE,cAAc,CAAC;CAC3B,
|
|
1
|
+
{"version":3,"file":"getCondition.d.ts","sourceRoot":"","sources":["../../../plugin/config/getCondition.ts"],"names":[],"mappings":"AAsGA;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,MAAM,EAUzC,CAAC;AASF,eAAO,MAAM,6BAA6B,QAAO,MAAM,EAKtD,CAAC;AAEF,eAAO,MAAM,8BAA8B,QAAO,IAwBjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAC5B,cAAc,GACd,cAAc,GACd,SAWH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,MAAM,GAAG,QAAQ,EAAE,gBAAgB,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,GAAG,MAAM,QAAQ,EAC9H,SAAQ,MAA2B,EACnC,gBACI,GAAG,MAAM,QAAQ,GACjB,GAAG,MAAM,QAAiD,KAC7D,GAAG,MAAM,QAAQ,GAAG,GAAG,MAAM,QAAQ,GAAG,gBAS1C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,IAAI,IAAI;IACnD,SAAS,EAAE,cAAc,CAAC;CAC3B,CASA;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,IAAI,IAAI;IACtD,SAAS,EAAE,cAAc,CAAC;CAC3B,CASA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAO,OACA,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAO,OACA,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAO,OAG1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAO,OAG1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAO,MAAM,EAIjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,6CAAwB,CAAC"}
|
|
@@ -131,17 +131,19 @@ const getCondition = (prefix = "react-", defaultReturn = `${prefix}client`) => {
|
|
|
131
131
|
function assertReactServer() {
|
|
132
132
|
const currentCondition = getCurrentCondition();
|
|
133
133
|
if (currentCondition !== "react-server") {
|
|
134
|
-
|
|
135
|
-
`Condition mismatch
|
|
134
|
+
console.warn(
|
|
135
|
+
`[vite-plugin-react-server] Condition mismatch: expected react-server. Set NODE_OPTIONS="--conditions=react-server"`
|
|
136
136
|
);
|
|
137
|
+
return;
|
|
137
138
|
}
|
|
138
139
|
}
|
|
139
140
|
function assertNonReactServer() {
|
|
140
141
|
const currentCondition = getCurrentCondition();
|
|
141
142
|
if (currentCondition === "react-server") {
|
|
142
|
-
|
|
143
|
-
`Condition mismatch
|
|
143
|
+
console.warn(
|
|
144
|
+
`[vite-plugin-react-server] Condition mismatch: unexpected react-server condition on this module.`
|
|
144
145
|
);
|
|
146
|
+
return;
|
|
145
147
|
}
|
|
146
148
|
}
|
|
147
149
|
const isReactServerCondition = () => getCurrentCondition() === "react-server";
|
|
@@ -162,4 +164,4 @@ const getNodeOptionsConditions = () => {
|
|
|
162
164
|
const condition = getCurrentCondition();
|
|
163
165
|
|
|
164
166
|
export { assertNonReactServer, assertReactServer, condition, detectReactConditionAmbiguity, getAllConditions, getCondition, getCurrentCondition, getNodeOptionsConditions, hasReactClientCondition, hasReactServerCondition, isReactClientCondition, isReactServerCondition, warnIfAmbiguousReactConditions };
|
|
165
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZGl0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vY29uZmlnL2dldENvbmRpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBkbyBub3QgaW1wb3J0IE5vZGUtb25seSBtb2R1bGVzIGhlcmUgKGUuZy4sICdub2RlOndvcmtlcl90aHJlYWRzJykuXG4vLyBUaGlzIGZpbGUgaXMgY29uc3VtZWQgaW4gYm90aCBzZXJ2ZXIgYW5kIGNsaWVudCBwbHVnaW4gY29udGV4dHMuXG5cbi8qKlxuICogVG9rZW5pemVzIE5PREVfT1BUSU9OUyBzdHJpbmcgaW50byBpbmRpdmlkdWFsIGFyZ3VtZW50c1xuICogSGFuZGxlcyBxdW90ZWQgc3RyaW5ncywgc3BhY2VzLCBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzXG4gKi9cbmNvbnN0IHRva2VuaXplTm9kZU9wdGlvbnMgPSAoKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCBub2RlT3B0aW9ucyA9IHByb2Nlc3MuZW52W1wiTk9ERV9PUFRJT05TXCJdIHx8IFwiXCI7XG4gIGlmICghbm9kZU9wdGlvbnMudHJpbSgpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgdG9rZW5zOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgY3VycmVudCA9IFwiXCI7XG4gIGxldCBpblF1b3RlcyA9IGZhbHNlO1xuICBsZXQgcXVvdGVDaGFyID0gXCJcIjtcbiAgbGV0IGkgPSAwO1xuXG4gIHdoaWxlIChpIDwgbm9kZU9wdGlvbnMubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hhciA9IG5vZGVPcHRpb25zW2ldO1xuXG4gICAgaWYgKGluUXVvdGVzKSB7XG4gICAgICBpZiAoY2hhciA9PT0gcXVvdGVDaGFyKSB7XG4gICAgICAgIGluUXVvdGVzID0gZmFsc2U7XG4gICAgICAgIHF1b3RlQ2hhciA9IFwiXCI7XG4gICAgICAgIGlmIChjdXJyZW50LnRyaW0oKSkge1xuICAgICAgICAgIHRva2Vucy5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgICAgICAgICBjdXJyZW50ID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVudCArPSBjaGFyO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY2hhciA9PT0gJ1wiJyB8fCBjaGFyID09PSBcIidcIikge1xuICAgICAgICBpZiAoY3VycmVudC50cmltKCkpIHtcbiAgICAgICAgICB0b2tlbnMucHVzaChjdXJyZW50LnRyaW0oKSk7XG4gICAgICAgICAgY3VycmVudCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgaW5RdW90ZXMgPSB0cnVlO1xuICAgICAgICBxdW90ZUNoYXIgPSBjaGFyO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIiBcIiB8fCBjaGFyID09PSBcIlxcdFwiIHx8IGNoYXIgPT09IFwiXFxuXCIpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQudHJpbSgpKSB7XG4gICAgICAgICAgdG9rZW5zLnB1c2goY3VycmVudC50cmltKCkpO1xuICAgICAgICAgIGN1cnJlbnQgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50ICs9IGNoYXI7XG4gICAgICB9XG4gICAgfVxuICAgIGkrKztcbiAgfVxuXG4gIGlmIChjdXJyZW50LnRyaW0oKSkge1xuICAgIHRva2Vucy5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnMuZmlsdGVyKEJvb2xlYW4pO1xufTtcblxuLyoqXG4gKiBQYXJzZXMgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBmb3IgY29uZGl0aW9ucyBhbmQgb3RoZXIgZmxhZ3NcbiAqL1xuY29uc3QgcGFyc2VOb2RlQXJncyA9IChhcmdzOiBzdHJpbmdbXSkgPT4ge1xuICBjb25zdCBjb25kaXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBmbGFncyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGFyZyA9IGFyZ3NbaV07XG5cbiAgICBpZiAoYXJnID09PSBcIi0tY29uZGl0aW9uc1wiIHx8IGFyZyA9PT0gXCItQ1wiKSB7XG4gICAgICAvLyBOZXh0IGFyZ3VtZW50IGlzIHRoZSBjb25kaXRpb24gdmFsdWVcbiAgICAgIGlmIChpICsgMSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvblZhbHVlID0gYXJnc1tpICsgMV07XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChcbiAgICAgICAgICAuLi5jb25kaXRpb25WYWx1ZVxuICAgICAgICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgICAgICAgLm1hcCgoYykgPT4gYy50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICk7XG4gICAgICAgIGkrKzsgLy8gU2tpcCB0aGUgbmV4dCBhcmd1bWVudCBzaW5jZSB3ZSBjb25zdW1lZCBpdFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLWNvbmRpdGlvbnM9XCIpKSB7XG4gICAgICAvLyBDb25kaXRpb24gdmFsdWUgaXMgcGFydCBvZiB0aGUgc2FtZSBhcmd1bWVudFxuICAgICAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSBhcmcuc3Vic3RyaW5nKFwiLS1jb25kaXRpb25zPVwiLmxlbmd0aCk7XG4gICAgICBjb25kaXRpb25zLnB1c2goXG4gICAgICAgIC4uLmNvbmRpdGlvblZhbHVlXG4gICAgICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgICAgIC5tYXAoKGMpID0+IGMudHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChhcmcgPT09IFwiLS1uby1hZGRvbnNcIikge1xuICAgICAgZmxhZ3MuYWRkKFwibm8tYWRkb25zXCIpO1xuICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuICAgICAgLy8gT3RoZXIgZmxhZ3NcbiAgICAgIGZsYWdzLmFkZChhcmcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGNvbmRpdGlvbnMsIGZsYWdzIH07XG59O1xuXG4vKipcbiAqIEdldHMgYWxsIGNvbmRpdGlvbnMgZnJvbSBib3RoIE5PREVfT1BUSU9OUyBhbmQgY29tbWFuZC1saW5lIGFyZ3VtZW50c1xuICovXG5leHBvcnQgY29uc3QgZ2V0QWxsQ29uZGl0aW9ucyA9ICgpOiBzdHJpbmdbXSA9PiB7XG4gIC8vIFBhcnNlIE5PREVfT1BUSU9OU1xuICBjb25zdCBub2RlT3B0aW9uc1Rva2VucyA9IHRva2VuaXplTm9kZU9wdGlvbnMoKTtcbiAgY29uc3QgeyBjb25kaXRpb25zOiBlbnZDb25kaXRpb25zIH0gPSBwYXJzZU5vZGVBcmdzKG5vZGVPcHRpb25zVG9rZW5zKTtcblxuICAvLyBQYXJzZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzXG4gIGNvbnN0IHsgY29uZGl0aW9uczogY2xpQ29uZGl0aW9ucyB9ID0gcGFyc2VOb2RlQXJncyhwcm9jZXNzLmV4ZWNBcmd2KTtcblxuICAvLyBDb21iaW5lIGFsbCBjb25kaXRpb25zXG4gIHJldHVybiBbLi4uZW52Q29uZGl0aW9ucywgLi4uY2xpQ29uZGl0aW9uc107XG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBbWJpZ3VpdHkgZGV0ZWN0aW9uIGFuZCB3YXJuaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5sZXQgZGlkV2FybkFtYmlndW91c0NvbmRpdGlvbnMgPSBmYWxzZTtcbi8vIHJlYWN0LXN0YXRpYyBkb2VzIG5vdCBleGlzdHMsIGJlY2F1c2UgeW91IHN0aWxsIG5lZWQgY29uZGl0aW9uIHJlYWN0LXNlcnZlciBmb3IgdGhlIC5zdGF0aWMgaW1wb3J0cyB0byB3b3JrLlxuY29uc3QgcmVhY3RDb25kaXRpb25TZXQgPSBuZXcgU2V0KFtcInJlYWN0LXNlcnZlclwiLCBcInJlYWN0LWNsaWVudFwiXSk7XG5cbmV4cG9ydCBjb25zdCBkZXRlY3RSZWFjdENvbmRpdGlvbkFtYmlndWl0eSA9ICgpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGNvbmRpdGlvbnMgPSBnZXRBbGxDb25kaXRpb25zKCk7XG4gIGNvbnN0IGZvdW5kID0gY29uZGl0aW9ucy5maWx0ZXIoKGMpID0+IHJlYWN0Q29uZGl0aW9uU2V0LmhhcyhjKSk7XG4gIGNvbnN0IHVuaXF1ZSA9IEFycmF5LmZyb20obmV3IFNldChmb3VuZCkpO1xuICByZXR1cm4gdW5pcXVlO1xufTtcblxuZXhwb3J0IGNvbnN0IHdhcm5JZkFtYmlndW91c1JlYWN0Q29uZGl0aW9ucyA9ICgpOiB2b2lkID0+IHtcbiAgaWYgKGRpZFdhcm5BbWJpZ3VvdXNDb25kaXRpb25zKSByZXR1cm47XG4gIGNvbnN0IHVuaXF1ZSA9IGRldGVjdFJlYWN0Q29uZGl0aW9uQW1iaWd1aXR5KCk7XG4gIGlmICh1bmlxdWUuaW5jbHVkZXMoXCJyZWFjdC1zZXJ2ZXJcIikgJiYgdW5pcXVlLmluY2x1ZGVzKFwicmVhY3QtY2xpZW50XCIpKSB7XG4gICAgZGlkV2FybkFtYmlndW91c0NvbmRpdGlvbnMgPSB0cnVlO1xuICAgIGNvbnN0IG5vZGVPcHRpb25zID0gcHJvY2Vzcy5lbnZbXCJOT0RFX09QVElPTlNcIl0gfHwgXCJcIjtcbiAgICBjb25zdCBhcmd2ID0gcHJvY2Vzcy5leGVjQXJndi5qb2luKFwiIFwiKTtcbiAgICBjb25zdCBtc2cgPVxuICAgICAgYEJvdGggcmVhY3Qtc2VydmVyIGFuZCByZWFjdC1jbGllbnQgY29uZGl0aW9ucyBkZXRlY3RlZCBpbiBOT0RFX09QVElPTlMvZXhlY0FyZ3YuIGAgK1xuICAgICAgYFRoaXMgY2FuIGxlYWQgdG8gYW1iaWd1b3VzIHJlc29sdXRpb24uIEZvdW5kOiBbJHt1bmlxdWUuam9pbihcIiwgXCIpfV1cXG5gICtcbiAgICAgIGBOT0RFX09QVElPTlM9XCIke25vZGVPcHRpb25zfVwiXFxuZXhlY0FyZ3Y9XCIke2FyZ3Z9XCJcXG5gICtcbiAgICAgIGBUaXA6IHNldCBleGFjdGx5IG9uZSBjb25kaXRpb24gb3IgbGV0IHRoZSBwbHVnaW4gbWFuYWdlIHdvcmtlciBjb25kaXRpb25zLmA7XG4gICAgLy8gVXNlIHByb2Nlc3MuZW1pdFdhcm5pbmcgdG8gYXZvaWQgdGhyb3dpbmdcbiAgICB0cnkge1xuICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZyhtc2csIHtcbiAgICAgICAgY29kZTogXCJWUFJTX0NPTkRJVElPTl9BTUJJR1VJVFlcIixcbiAgICAgICAgZGV0YWlsOiBcInZpdGUtcGx1Z2luLXJlYWN0LXNlcnZlciBkZXRlY3RlZCBjb25mbGljdGluZyBjb25kaXRpb25zXCIsXG4gICAgICB9IGFzIGFueSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBGYWxsYmFja1xuXG4gICAgICBjb25zb2xlLndhcm4oYFt2aXRlLXBsdWdpbi1yZWFjdC1zZXJ2ZXJdICR7bXNnfWApO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBHZXRzIHRoZSBjdXJyZW50IGNvbmRpdGlvbiwgZGVmYXVsdGluZyB0byBcInJlYWN0LWNsaWVudFwiIGlmIG5vIGNvbmRpdGlvbnMgYXJlIHNldFxuICovXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudENvbmRpdGlvbiA9ICgpOlxuICB8IFwicmVhY3Qtc2VydmVyXCJcbiAgfCBcInJlYWN0LWNsaWVudFwiXG4gIHwgdW5kZWZpbmVkID0+IHtcbiAgLy8gV2FybiBpZiB3ZSBkZXRlY3QgYm90aCBjb25kaXRpb25zIHByZXNlbnRcbiAgd2FybklmQW1iaWd1b3VzUmVhY3RDb25kaXRpb25zKCk7XG5cbiAgLy8gQ2hlY2sgYm90aCBOT0RFX09QVElPTlMgYW5kIGV4ZWNBcmd2IGZvciBjb25kaXRpb25zXG4gIGNvbnN0IGNvbmRpdGlvbnMgPSBnZXRBbGxDb25kaXRpb25zKCk7XG4gIGlmIChjb25kaXRpb25zLmluY2x1ZGVzKFwicmVhY3Qtc2VydmVyXCIpKSByZXR1cm4gXCJyZWFjdC1zZXJ2ZXJcIjtcbiAgaWYgKGNvbmRpdGlvbnMuaW5jbHVkZXMoXCJyZWFjdC1jbGllbnRcIikpIHJldHVybiBcInJlYWN0LWNsaWVudFwiO1xuXG4gIC8vIERlZmF1bHQgdG8gcmVhY3QtY2xpZW50IHdoZW4gbm90aGluZyBpcyBzZXRcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgY29uZGl0aW9uIHdpdGggYSBjdXN0b20gcHJlZml4XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDb25kaXRpb24gPSA8UHJlZml4IGV4dGVuZHMgc3RyaW5nID0gXCJyZWFjdC1cIiwgRGVmYXVsdENvbmRpdGlvbiBleHRlbmRzIGAke1ByZWZpeH0ke3N0cmluZ31gID0gYCR7UHJlZml4fWNsaWVudGA+KFxuICBwcmVmaXg6IFByZWZpeCA9IFwicmVhY3QtXCIgYXMgUHJlZml4LFxuICBkZWZhdWx0UmV0dXJuOlxuICAgIHwgYCR7UHJlZml4fXNlcnZlcmBcbiAgICB8IGAke1ByZWZpeH1jbGllbnRgID0gYCR7cHJlZml4fWNsaWVudGAgYXMgYCR7UHJlZml4fWNsaWVudGBcbik6IGAke1ByZWZpeH1jbGllbnRgIHwgYCR7UHJlZml4fXNlcnZlcmAgfCBEZWZhdWx0Q29uZGl0aW9uID0+IHtcbiAgY29uc3QgY29uZGl0aW9uID0gZ2V0Q3VycmVudENvbmRpdGlvbigpO1xuICBpZiAoY29uZGl0aW9uID09PSBcInJlYWN0LXNlcnZlclwiKSB7XG4gICAgcmV0dXJuIGAke3ByZWZpeH1zZXJ2ZXJgIGFzIGAke1ByZWZpeH1zZXJ2ZXJgO1xuICB9XG4gIGlmIChjb25kaXRpb24gPT09IFwicmVhY3QtY2xpZW50XCIpIHtcbiAgICByZXR1cm4gYCR7cHJlZml4fWNsaWVudGAgYXMgYCR7UHJlZml4fWNsaWVudGA7XG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRSZXR1cm47XG59O1xuXG4vKipcbiAqIEFzc2VydHMgdGhhdCB0aGUgY3VycmVudCBjb25kaXRpb24gaXMgcmVhY3Qtc2VydmVyXG4gKiBUaHJvd3MgYW4gZXJyb3Igd2l0aCBhIGRlc2NyaXB0aXZlIG1lc3NhZ2UgaWYgbm90XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRSZWFjdFNlcnZlcigpOiBhc3NlcnRzIHRoaXMgaXMge1xuICBjb25kaXRpb246IFwicmVhY3Qtc2VydmVyXCI7XG59IHtcbiAgY29uc3QgY3VycmVudENvbmRpdGlvbiA9IGdldEN1cnJlbnRDb25kaXRpb24oKTtcbiAgaWYgKGN1cnJlbnRDb25kaXRpb24gIT09IFwicmVhY3Qtc2VydmVyXCIpIHtcbiAgICAvLyBEZWJ1Zy1vbmx5OiBhdm9pZCBOb2RlLW9ubHkgQVBJcyB0byBrZWVwIHRoaXMgZmlsZSBicm93c2VyLXNhZmVcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ29uZGl0aW9uIG1pc21hdGNoLCBzaG91bGQgYmUgcmVhY3Qtc2VydmVyLiBTZXQgTk9ERV9PUFRJT05TPVwiLS1jb25kaXRpb25zPXJlYWN0LXNlcnZlclwiIG9yIC0tY29uZGl0aW9ucz1yZWFjdC1zZXJ2ZXJgXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0Tm9uUmVhY3RTZXJ2ZXIoKTogYXNzZXJ0cyB0aGlzIGlzIHtcbiAgY29uZGl0aW9uOiBcInJlYWN0LWNsaWVudFwiO1xufSB7XG4gIGNvbnN0IGN1cnJlbnRDb25kaXRpb24gPSBnZXRDdXJyZW50Q29uZGl0aW9uKCk7XG4gIGlmIChjdXJyZW50Q29uZGl0aW9uID09PSBcInJlYWN0LXNlcnZlclwiKSB7XG4gICAgLy8gRGVidWctb25seTogYXZvaWQgTm9kZS1vbmx5IEFQSXMgdG8ga2VlcCB0aGlzIGZpbGUgYnJvd3Nlci1zYWZlXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENvbmRpdGlvbiBtaXNtYXRjaCwgc2hvdWxkIG5vdCBiZSByZWFjdC1zZXJ2ZXIuIFJlbW92ZSBOT0RFX09QVElPTlM9XCItLWNvbmRpdGlvbnM9cmVhY3Qtc2VydmVyXCIgb3IgLS1jb25kaXRpb25zPXJlYWN0LXNlcnZlcmBcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IGNvbmRpdGlvbiBpcyByZWFjdC1zZXJ2ZXIgKHN0cmljdCAtIHJlcXVpcmVzIGJvdGggTk9ERV9PUFRJT05TIGFuZCBleGVjQXJndilcbiAqIFVzZSB0aGlzIGZvciBSZWFjdCBTZXJ2ZXIgRE9NIGNvbXBhdGliaWxpdHkgY2hlY2tzXG4gKi9cbmV4cG9ydCBjb25zdCBpc1JlYWN0U2VydmVyQ29uZGl0aW9uID0gKCk6IGJvb2xlYW4gPT5cbiAgZ2V0Q3VycmVudENvbmRpdGlvbigpID09PSBcInJlYWN0LXNlcnZlclwiO1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBjb25kaXRpb24gaXMgcmVhY3QtY2xpZW50IChzdHJpY3QgLSByZXF1aXJlcyBib3RoIE5PREVfT1BUSU9OUyBhbmQgZXhlY0FyZ3YpXG4gKiBVc2UgdGhpcyBmb3IgUmVhY3QgU2VydmVyIERPTSBjb21wYXRpYmlsaXR5IGNoZWNrc1xuICovXG5leHBvcnQgY29uc3QgaXNSZWFjdENsaWVudENvbmRpdGlvbiA9ICgpOiBib29sZWFuID0+XG4gIGdldEN1cnJlbnRDb25kaXRpb24oKSA9PT0gXCJyZWFjdC1jbGllbnRcIjtcblxuLyoqXG4gKiBDaGVja3MgaWYgcmVhY3Qtc2VydmVyIGNvbmRpdGlvbiBpcyBwcmVzZW50IGluIGVpdGhlciBOT0RFX09QVElPTlMgT1IgZXhlY0FyZ3YgKGxlbmllbnQpXG4gKiBVc2UgdGhpcyBmb3IgcGx1Z2luIGludGVybmFsIGVudmlyb25tZW50IGdhdGluZ1xuICovXG5leHBvcnQgY29uc3QgaGFzUmVhY3RTZXJ2ZXJDb25kaXRpb24gPSAoKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGFsbENvbmRpdGlvbnMgPSBnZXRBbGxDb25kaXRpb25zKCk7XG4gIHJldHVybiBhbGxDb25kaXRpb25zLmluY2x1ZGVzKFwicmVhY3Qtc2VydmVyXCIpO1xufTtcblxuLyoqXG4gKiBDaGVja3MgaWYgcmVhY3QtY2xpZW50IGNvbmRpdGlvbiBpcyBwcmVzZW50IGluIGVpdGhlciBOT0RFX09QVElPTlMgT1IgZXhlY0FyZ3YgKGxlbmllbnQpXG4gKiBVc2UgdGhpcyBmb3IgcGx1Z2luIGludGVybmFsIGVudmlyb25tZW50IGdhdGluZyAgXG4gKi9cbmV4cG9ydCBjb25zdCBoYXNSZWFjdENsaWVudENvbmRpdGlvbiA9ICgpOiBib29sZWFuID0+IHtcbiAgY29uc3QgYWxsQ29uZGl0aW9ucyA9IGdldEFsbENvbmRpdGlvbnMoKTtcbiAgcmV0dXJuIGFsbENvbmRpdGlvbnMuaW5jbHVkZXMoXCJyZWFjdC1jbGllbnRcIik7XG59O1xuXG4vKipcbiAqIExlZ2FjeSBmdW5jdGlvbiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICogQGRlcHJlY2F0ZWQgVXNlIGdldEFsbENvbmRpdGlvbnMoKSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBnZXROb2RlT3B0aW9uc0NvbmRpdGlvbnMgPSAoKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCBub2RlT3B0aW9uc1Rva2VucyA9IHRva2VuaXplTm9kZU9wdGlvbnMoKTtcbiAgY29uc3QgeyBjb25kaXRpb25zIH0gPSBwYXJzZU5vZGVBcmdzKG5vZGVPcHRpb25zVG9rZW5zKTtcbiAgcmV0dXJuIGNvbmRpdGlvbnM7XG59O1xuXG4vKipcbiAqIExlZ2FjeSBleHBvcnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAqIEBkZXByZWNhdGVkIFVzZSBnZXRDdXJyZW50Q29uZGl0aW9uKCkgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgY29uZGl0aW9uID0gZ2V0Q3VycmVudENvbmRpdGlvbigpO1xuIl0sIm5hbWVzIjpbImNvbmRpdGlvbiJdLCJtYXBw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
|
|
167
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZGl0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vY29uZmlnL2dldENvbmRpdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBkbyBub3QgaW1wb3J0IE5vZGUtb25seSBtb2R1bGVzIGhlcmUgKGUuZy4sICdub2RlOndvcmtlcl90aHJlYWRzJykuXG4vLyBUaGlzIGZpbGUgaXMgY29uc3VtZWQgaW4gYm90aCBzZXJ2ZXIgYW5kIGNsaWVudCBwbHVnaW4gY29udGV4dHMuXG5cbi8qKlxuICogVG9rZW5pemVzIE5PREVfT1BUSU9OUyBzdHJpbmcgaW50byBpbmRpdmlkdWFsIGFyZ3VtZW50c1xuICogSGFuZGxlcyBxdW90ZWQgc3RyaW5ncywgc3BhY2VzLCBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzXG4gKi9cbmNvbnN0IHRva2VuaXplTm9kZU9wdGlvbnMgPSAoKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCBub2RlT3B0aW9ucyA9IHByb2Nlc3MuZW52W1wiTk9ERV9PUFRJT05TXCJdIHx8IFwiXCI7XG4gIGlmICghbm9kZU9wdGlvbnMudHJpbSgpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgdG9rZW5zOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgY3VycmVudCA9IFwiXCI7XG4gIGxldCBpblF1b3RlcyA9IGZhbHNlO1xuICBsZXQgcXVvdGVDaGFyID0gXCJcIjtcbiAgbGV0IGkgPSAwO1xuXG4gIHdoaWxlIChpIDwgbm9kZU9wdGlvbnMubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hhciA9IG5vZGVPcHRpb25zW2ldO1xuXG4gICAgaWYgKGluUXVvdGVzKSB7XG4gICAgICBpZiAoY2hhciA9PT0gcXVvdGVDaGFyKSB7XG4gICAgICAgIGluUXVvdGVzID0gZmFsc2U7XG4gICAgICAgIHF1b3RlQ2hhciA9IFwiXCI7XG4gICAgICAgIGlmIChjdXJyZW50LnRyaW0oKSkge1xuICAgICAgICAgIHRva2Vucy5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgICAgICAgICBjdXJyZW50ID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVudCArPSBjaGFyO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY2hhciA9PT0gJ1wiJyB8fCBjaGFyID09PSBcIidcIikge1xuICAgICAgICBpZiAoY3VycmVudC50cmltKCkpIHtcbiAgICAgICAgICB0b2tlbnMucHVzaChjdXJyZW50LnRyaW0oKSk7XG4gICAgICAgICAgY3VycmVudCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgaW5RdW90ZXMgPSB0cnVlO1xuICAgICAgICBxdW90ZUNoYXIgPSBjaGFyO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSBcIiBcIiB8fCBjaGFyID09PSBcIlxcdFwiIHx8IGNoYXIgPT09IFwiXFxuXCIpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQudHJpbSgpKSB7XG4gICAgICAgICAgdG9rZW5zLnB1c2goY3VycmVudC50cmltKCkpO1xuICAgICAgICAgIGN1cnJlbnQgPSBcIlwiO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50ICs9IGNoYXI7XG4gICAgICB9XG4gICAgfVxuICAgIGkrKztcbiAgfVxuXG4gIGlmIChjdXJyZW50LnRyaW0oKSkge1xuICAgIHRva2Vucy5wdXNoKGN1cnJlbnQudHJpbSgpKTtcbiAgfVxuXG4gIHJldHVybiB0b2tlbnMuZmlsdGVyKEJvb2xlYW4pO1xufTtcblxuLyoqXG4gKiBQYXJzZXMgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBmb3IgY29uZGl0aW9ucyBhbmQgb3RoZXIgZmxhZ3NcbiAqL1xuY29uc3QgcGFyc2VOb2RlQXJncyA9IChhcmdzOiBzdHJpbmdbXSkgPT4ge1xuICBjb25zdCBjb25kaXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBmbGFncyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGFyZyA9IGFyZ3NbaV07XG5cbiAgICBpZiAoYXJnID09PSBcIi0tY29uZGl0aW9uc1wiIHx8IGFyZyA9PT0gXCItQ1wiKSB7XG4gICAgICAvLyBOZXh0IGFyZ3VtZW50IGlzIHRoZSBjb25kaXRpb24gdmFsdWVcbiAgICAgIGlmIChpICsgMSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGNvbmRpdGlvblZhbHVlID0gYXJnc1tpICsgMV07XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChcbiAgICAgICAgICAuLi5jb25kaXRpb25WYWx1ZVxuICAgICAgICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgICAgICAgLm1hcCgoYykgPT4gYy50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICk7XG4gICAgICAgIGkrKzsgLy8gU2tpcCB0aGUgbmV4dCBhcmd1bWVudCBzaW5jZSB3ZSBjb25zdW1lZCBpdFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLWNvbmRpdGlvbnM9XCIpKSB7XG4gICAgICAvLyBDb25kaXRpb24gdmFsdWUgaXMgcGFydCBvZiB0aGUgc2FtZSBhcmd1bWVudFxuICAgICAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSBhcmcuc3Vic3RyaW5nKFwiLS1jb25kaXRpb25zPVwiLmxlbmd0aCk7XG4gICAgICBjb25kaXRpb25zLnB1c2goXG4gICAgICAgIC4uLmNvbmRpdGlvblZhbHVlXG4gICAgICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgICAgIC5tYXAoKGMpID0+IGMudHJpbSgpKVxuICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChhcmcgPT09IFwiLS1uby1hZGRvbnNcIikge1xuICAgICAgZmxhZ3MuYWRkKFwibm8tYWRkb25zXCIpO1xuICAgIH0gZWxzZSBpZiAoYXJnLnN0YXJ0c1dpdGgoXCItLVwiKSkge1xuICAgICAgLy8gT3RoZXIgZmxhZ3NcbiAgICAgIGZsYWdzLmFkZChhcmcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGNvbmRpdGlvbnMsIGZsYWdzIH07XG59O1xuXG4vKipcbiAqIEdldHMgYWxsIGNvbmRpdGlvbnMgZnJvbSBib3RoIE5PREVfT1BUSU9OUyBhbmQgY29tbWFuZC1saW5lIGFyZ3VtZW50c1xuICovXG5leHBvcnQgY29uc3QgZ2V0QWxsQ29uZGl0aW9ucyA9ICgpOiBzdHJpbmdbXSA9PiB7XG4gIC8vIFBhcnNlIE5PREVfT1BUSU9OU1xuICBjb25zdCBub2RlT3B0aW9uc1Rva2VucyA9IHRva2VuaXplTm9kZU9wdGlvbnMoKTtcbiAgY29uc3QgeyBjb25kaXRpb25zOiBlbnZDb25kaXRpb25zIH0gPSBwYXJzZU5vZGVBcmdzKG5vZGVPcHRpb25zVG9rZW5zKTtcblxuICAvLyBQYXJzZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzXG4gIGNvbnN0IHsgY29uZGl0aW9uczogY2xpQ29uZGl0aW9ucyB9ID0gcGFyc2VOb2RlQXJncyhwcm9jZXNzLmV4ZWNBcmd2KTtcblxuICAvLyBDb21iaW5lIGFsbCBjb25kaXRpb25zXG4gIHJldHVybiBbLi4uZW52Q29uZGl0aW9ucywgLi4uY2xpQ29uZGl0aW9uc107XG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBbWJpZ3VpdHkgZGV0ZWN0aW9uIGFuZCB3YXJuaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5sZXQgZGlkV2FybkFtYmlndW91c0NvbmRpdGlvbnMgPSBmYWxzZTtcbi8vIHJlYWN0LXN0YXRpYyBkb2VzIG5vdCBleGlzdHMsIGJlY2F1c2UgeW91IHN0aWxsIG5lZWQgY29uZGl0aW9uIHJlYWN0LXNlcnZlciBmb3IgdGhlIC5zdGF0aWMgaW1wb3J0cyB0byB3b3JrLlxuY29uc3QgcmVhY3RDb25kaXRpb25TZXQgPSBuZXcgU2V0KFtcInJlYWN0LXNlcnZlclwiLCBcInJlYWN0LWNsaWVudFwiXSk7XG5cbmV4cG9ydCBjb25zdCBkZXRlY3RSZWFjdENvbmRpdGlvbkFtYmlndWl0eSA9ICgpOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGNvbmRpdGlvbnMgPSBnZXRBbGxDb25kaXRpb25zKCk7XG4gIGNvbnN0IGZvdW5kID0gY29uZGl0aW9ucy5maWx0ZXIoKGMpID0+IHJlYWN0Q29uZGl0aW9uU2V0LmhhcyhjKSk7XG4gIGNvbnN0IHVuaXF1ZSA9IEFycmF5LmZyb20obmV3IFNldChmb3VuZCkpO1xuICByZXR1cm4gdW5pcXVlO1xufTtcblxuZXhwb3J0IGNvbnN0IHdhcm5JZkFtYmlndW91c1JlYWN0Q29uZGl0aW9ucyA9ICgpOiB2b2lkID0+IHtcbiAgaWYgKGRpZFdhcm5BbWJpZ3VvdXNDb25kaXRpb25zKSByZXR1cm47XG4gIGNvbnN0IHVuaXF1ZSA9IGRldGVjdFJlYWN0Q29uZGl0aW9uQW1iaWd1aXR5KCk7XG4gIGlmICh1bmlxdWUuaW5jbHVkZXMoXCJyZWFjdC1zZXJ2ZXJcIikgJiYgdW5pcXVlLmluY2x1ZGVzKFwicmVhY3QtY2xpZW50XCIpKSB7XG4gICAgZGlkV2FybkFtYmlndW91c0NvbmRpdGlvbnMgPSB0cnVlO1xuICAgIGNvbnN0IG5vZGVPcHRpb25zID0gcHJvY2Vzcy5lbnZbXCJOT0RFX09QVElPTlNcIl0gfHwgXCJcIjtcbiAgICBjb25zdCBhcmd2ID0gcHJvY2Vzcy5leGVjQXJndi5qb2luKFwiIFwiKTtcbiAgICBjb25zdCBtc2cgPVxuICAgICAgYEJvdGggcmVhY3Qtc2VydmVyIGFuZCByZWFjdC1jbGllbnQgY29uZGl0aW9ucyBkZXRlY3RlZCBpbiBOT0RFX09QVElPTlMvZXhlY0FyZ3YuIGAgK1xuICAgICAgYFRoaXMgY2FuIGxlYWQgdG8gYW1iaWd1b3VzIHJlc29sdXRpb24uIEZvdW5kOiBbJHt1bmlxdWUuam9pbihcIiwgXCIpfV1cXG5gICtcbiAgICAgIGBOT0RFX09QVElPTlM9XCIke25vZGVPcHRpb25zfVwiXFxuZXhlY0FyZ3Y9XCIke2FyZ3Z9XCJcXG5gICtcbiAgICAgIGBUaXA6IHNldCBleGFjdGx5IG9uZSBjb25kaXRpb24gb3IgbGV0IHRoZSBwbHVnaW4gbWFuYWdlIHdvcmtlciBjb25kaXRpb25zLmA7XG4gICAgLy8gVXNlIHByb2Nlc3MuZW1pdFdhcm5pbmcgdG8gYXZvaWQgdGhyb3dpbmdcbiAgICB0cnkge1xuICAgICAgcHJvY2Vzcy5lbWl0V2FybmluZyhtc2csIHtcbiAgICAgICAgY29kZTogXCJWUFJTX0NPTkRJVElPTl9BTUJJR1VJVFlcIixcbiAgICAgICAgZGV0YWlsOiBcInZpdGUtcGx1Z2luLXJlYWN0LXNlcnZlciBkZXRlY3RlZCBjb25mbGljdGluZyBjb25kaXRpb25zXCIsXG4gICAgICB9IGFzIGFueSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBGYWxsYmFja1xuXG4gICAgICBjb25zb2xlLndhcm4oYFt2aXRlLXBsdWdpbi1yZWFjdC1zZXJ2ZXJdICR7bXNnfWApO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBHZXRzIHRoZSBjdXJyZW50IGNvbmRpdGlvbiwgZGVmYXVsdGluZyB0byBcInJlYWN0LWNsaWVudFwiIGlmIG5vIGNvbmRpdGlvbnMgYXJlIHNldFxuICovXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudENvbmRpdGlvbiA9ICgpOlxuICB8IFwicmVhY3Qtc2VydmVyXCJcbiAgfCBcInJlYWN0LWNsaWVudFwiXG4gIHwgdW5kZWZpbmVkID0+IHtcbiAgLy8gV2FybiBpZiB3ZSBkZXRlY3QgYm90aCBjb25kaXRpb25zIHByZXNlbnRcbiAgd2FybklmQW1iaWd1b3VzUmVhY3RDb25kaXRpb25zKCk7XG5cbiAgLy8gQ2hlY2sgYm90aCBOT0RFX09QVElPTlMgYW5kIGV4ZWNBcmd2IGZvciBjb25kaXRpb25zXG4gIGNvbnN0IGNvbmRpdGlvbnMgPSBnZXRBbGxDb25kaXRpb25zKCk7XG4gIGlmIChjb25kaXRpb25zLmluY2x1ZGVzKFwicmVhY3Qtc2VydmVyXCIpKSByZXR1cm4gXCJyZWFjdC1zZXJ2ZXJcIjtcbiAgaWYgKGNvbmRpdGlvbnMuaW5jbHVkZXMoXCJyZWFjdC1jbGllbnRcIikpIHJldHVybiBcInJlYWN0LWNsaWVudFwiO1xuXG4gIC8vIERlZmF1bHQgdG8gcmVhY3QtY2xpZW50IHdoZW4gbm90aGluZyBpcyBzZXRcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgY29uZGl0aW9uIHdpdGggYSBjdXN0b20gcHJlZml4XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRDb25kaXRpb24gPSA8UHJlZml4IGV4dGVuZHMgc3RyaW5nID0gXCJyZWFjdC1cIiwgRGVmYXVsdENvbmRpdGlvbiBleHRlbmRzIGAke1ByZWZpeH0ke3N0cmluZ31gID0gYCR7UHJlZml4fWNsaWVudGA+KFxuICBwcmVmaXg6IFByZWZpeCA9IFwicmVhY3QtXCIgYXMgUHJlZml4LFxuICBkZWZhdWx0UmV0dXJuOlxuICAgIHwgYCR7UHJlZml4fXNlcnZlcmBcbiAgICB8IGAke1ByZWZpeH1jbGllbnRgID0gYCR7cHJlZml4fWNsaWVudGAgYXMgYCR7UHJlZml4fWNsaWVudGBcbik6IGAke1ByZWZpeH1jbGllbnRgIHwgYCR7UHJlZml4fXNlcnZlcmAgfCBEZWZhdWx0Q29uZGl0aW9uID0+IHtcbiAgY29uc3QgY29uZGl0aW9uID0gZ2V0Q3VycmVudENvbmRpdGlvbigpO1xuICBpZiAoY29uZGl0aW9uID09PSBcInJlYWN0LXNlcnZlclwiKSB7XG4gICAgcmV0dXJuIGAke3ByZWZpeH1zZXJ2ZXJgIGFzIGAke1ByZWZpeH1zZXJ2ZXJgO1xuICB9XG4gIGlmIChjb25kaXRpb24gPT09IFwicmVhY3QtY2xpZW50XCIpIHtcbiAgICByZXR1cm4gYCR7cHJlZml4fWNsaWVudGAgYXMgYCR7UHJlZml4fWNsaWVudGA7XG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRSZXR1cm47XG59O1xuXG4vKipcbiAqIEFzc2VydHMgdGhhdCB0aGUgY3VycmVudCBjb25kaXRpb24gaXMgcmVhY3Qtc2VydmVyXG4gKiBUaHJvd3MgYW4gZXJyb3Igd2l0aCBhIGRlc2NyaXB0aXZlIG1lc3NhZ2UgaWYgbm90XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRSZWFjdFNlcnZlcigpOiBhc3NlcnRzIHRoaXMgaXMge1xuICBjb25kaXRpb246IFwicmVhY3Qtc2VydmVyXCI7XG59IHtcbiAgY29uc3QgY3VycmVudENvbmRpdGlvbiA9IGdldEN1cnJlbnRDb25kaXRpb24oKTtcbiAgaWYgKGN1cnJlbnRDb25kaXRpb24gIT09IFwicmVhY3Qtc2VydmVyXCIpIHtcbiAgICAvLyBEZWJ1Zy1vbmx5OiBhdm9pZCBOb2RlLW9ubHkgQVBJcyB0byBrZWVwIHRoaXMgZmlsZSBicm93c2VyLXNhZmVcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgW3ZpdGUtcGx1Z2luLXJlYWN0LXNlcnZlcl0gQ29uZGl0aW9uIG1pc21hdGNoOiBleHBlY3RlZCByZWFjdC1zZXJ2ZXIuIFNldCBOT0RFX09QVElPTlM9XCItLWNvbmRpdGlvbnM9cmVhY3Qtc2VydmVyXCJgXG4gICAgKTtcbiAgICByZXR1cm47IC8vIERvbid0IHRocm93IOKAlCBWaXRlIDcgbWF5IGxvYWQgYm90aCBjb25kaXRpb24gdmFyaWFudHMgZHVyaW5nIGNvbmZpZyBidW5kbGluZ1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnROb25SZWFjdFNlcnZlcigpOiBhc3NlcnRzIHRoaXMgaXMge1xuICBjb25kaXRpb246IFwicmVhY3QtY2xpZW50XCI7XG59IHtcbiAgY29uc3QgY3VycmVudENvbmRpdGlvbiA9IGdldEN1cnJlbnRDb25kaXRpb24oKTtcbiAgaWYgKGN1cnJlbnRDb25kaXRpb24gPT09IFwicmVhY3Qtc2VydmVyXCIpIHtcbiAgICAvLyBEZWJ1Zy1vbmx5OiBhdm9pZCBOb2RlLW9ubHkgQVBJcyB0byBrZWVwIHRoaXMgZmlsZSBicm93c2VyLXNhZmVcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgW3ZpdGUtcGx1Z2luLXJlYWN0LXNlcnZlcl0gQ29uZGl0aW9uIG1pc21hdGNoOiB1bmV4cGVjdGVkIHJlYWN0LXNlcnZlciBjb25kaXRpb24gb24gdGhpcyBtb2R1bGUuYFxuICAgICk7XG4gICAgcmV0dXJuOyAvLyBEb24ndCB0aHJvdyDigJQgVml0ZSA3IG1heSBsb2FkIGJvdGggY29uZGl0aW9uIHZhcmlhbnRzIGR1cmluZyBjb25maWcgYnVuZGxpbmdcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBjb25kaXRpb24gaXMgcmVhY3Qtc2VydmVyIChzdHJpY3QgLSByZXF1aXJlcyBib3RoIE5PREVfT1BUSU9OUyBhbmQgZXhlY0FyZ3YpXG4gKiBVc2UgdGhpcyBmb3IgUmVhY3QgU2VydmVyIERPTSBjb21wYXRpYmlsaXR5IGNoZWNrc1xuICovXG5leHBvcnQgY29uc3QgaXNSZWFjdFNlcnZlckNvbmRpdGlvbiA9ICgpOiBib29sZWFuID0+XG4gIGdldEN1cnJlbnRDb25kaXRpb24oKSA9PT0gXCJyZWFjdC1zZXJ2ZXJcIjtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgY29uZGl0aW9uIGlzIHJlYWN0LWNsaWVudCAoc3RyaWN0IC0gcmVxdWlyZXMgYm90aCBOT0RFX09QVElPTlMgYW5kIGV4ZWNBcmd2KVxuICogVXNlIHRoaXMgZm9yIFJlYWN0IFNlcnZlciBET00gY29tcGF0aWJpbGl0eSBjaGVja3NcbiAqL1xuZXhwb3J0IGNvbnN0IGlzUmVhY3RDbGllbnRDb25kaXRpb24gPSAoKTogYm9vbGVhbiA9PlxuICBnZXRDdXJyZW50Q29uZGl0aW9uKCkgPT09IFwicmVhY3QtY2xpZW50XCI7XG5cbi8qKlxuICogQ2hlY2tzIGlmIHJlYWN0LXNlcnZlciBjb25kaXRpb24gaXMgcHJlc2VudCBpbiBlaXRoZXIgTk9ERV9PUFRJT05TIE9SIGV4ZWNBcmd2IChsZW5pZW50KVxuICogVXNlIHRoaXMgZm9yIHBsdWdpbiBpbnRlcm5hbCBlbnZpcm9ubWVudCBnYXRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGhhc1JlYWN0U2VydmVyQ29uZGl0aW9uID0gKCk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBhbGxDb25kaXRpb25zID0gZ2V0QWxsQ29uZGl0aW9ucygpO1xuICByZXR1cm4gYWxsQ29uZGl0aW9ucy5pbmNsdWRlcyhcInJlYWN0LXNlcnZlclwiKTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIHJlYWN0LWNsaWVudCBjb25kaXRpb24gaXMgcHJlc2VudCBpbiBlaXRoZXIgTk9ERV9PUFRJT05TIE9SIGV4ZWNBcmd2IChsZW5pZW50KVxuICogVXNlIHRoaXMgZm9yIHBsdWdpbiBpbnRlcm5hbCBlbnZpcm9ubWVudCBnYXRpbmcgIFxuICovXG5leHBvcnQgY29uc3QgaGFzUmVhY3RDbGllbnRDb25kaXRpb24gPSAoKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGFsbENvbmRpdGlvbnMgPSBnZXRBbGxDb25kaXRpb25zKCk7XG4gIHJldHVybiBhbGxDb25kaXRpb25zLmluY2x1ZGVzKFwicmVhY3QtY2xpZW50XCIpO1xufTtcblxuLyoqXG4gKiBMZWdhY3kgZnVuY3Rpb24gZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAqIEBkZXByZWNhdGVkIFVzZSBnZXRBbGxDb25kaXRpb25zKCkgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgZ2V0Tm9kZU9wdGlvbnNDb25kaXRpb25zID0gKCk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3Qgbm9kZU9wdGlvbnNUb2tlbnMgPSB0b2tlbml6ZU5vZGVPcHRpb25zKCk7XG4gIGNvbnN0IHsgY29uZGl0aW9ucyB9ID0gcGFyc2VOb2RlQXJncyhub2RlT3B0aW9uc1Rva2Vucyk7XG4gIHJldHVybiBjb25kaXRpb25zO1xufTtcblxuLyoqXG4gKiBMZWdhY3kgZXhwb3J0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gKiBAZGVwcmVjYXRlZCBVc2UgZ2V0Q3VycmVudENvbmRpdGlvbigpIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbmRpdGlvbiA9IGdldEN1cnJlbnRDb25kaXRpb24oKTtcbiJdLCJuYW1lcyI6WyJjb25kaXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsTUFBTSxzQkFBc0IsTUFBZ0I7QUFDMUMsRUFBQSxNQUFNLFdBQWMsR0FBQSxPQUFBLENBQVEsR0FBSSxDQUFBLGNBQWMsQ0FBSyxJQUFBLEVBQUE7QUFDbkQsRUFBSSxJQUFBLENBQUMsV0FBWSxDQUFBLElBQUEsRUFBUSxFQUFBO0FBQ3ZCLElBQUEsT0FBTyxFQUFDO0FBQUE7QUFHVixFQUFBLE1BQU0sU0FBbUIsRUFBQztBQUMxQixFQUFBLElBQUksT0FBVSxHQUFBLEVBQUE7QUFDZCxFQUFBLElBQUksUUFBVyxHQUFBLEtBQUE7QUFDZixFQUFBLElBQUksU0FBWSxHQUFBLEVBQUE7QUFDaEIsRUFBQSxJQUFJLENBQUksR0FBQSxDQUFBO0FBRVIsRUFBTyxPQUFBLENBQUEsR0FBSSxZQUFZLE1BQVEsRUFBQTtBQUM3QixJQUFNLE1BQUEsSUFBQSxHQUFPLFlBQVksQ0FBQyxDQUFBO0FBRTFCLElBQUEsSUFBSSxRQUFVLEVBQUE7QUFDWixNQUFBLElBQUksU0FBUyxTQUFXLEVBQUE7QUFDdEIsUUFBVyxRQUFBLEdBQUEsS0FBQTtBQUNYLFFBQVksU0FBQSxHQUFBLEVBQUE7QUFDWixRQUFJLElBQUEsT0FBQSxDQUFRLE1BQVEsRUFBQTtBQUNsQixVQUFPLE1BQUEsQ0FBQSxJQUFBLENBQUssT0FBUSxDQUFBLElBQUEsRUFBTSxDQUFBO0FBQzFCLFVBQVUsT0FBQSxHQUFBLEVBQUE7QUFBQTtBQUNaLE9BQ0ssTUFBQTtBQUNMLFFBQVcsT0FBQSxJQUFBLElBQUE7QUFBQTtBQUNiLEtBQ0ssTUFBQTtBQUNMLE1BQUksSUFBQSxJQUFBLEtBQVMsR0FBTyxJQUFBLElBQUEsS0FBUyxHQUFLLEVBQUE7QUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureReactServer.server.d.ts","sourceRoot":"","sources":["../../../plugin/dev-server/configureReactServer.server.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAOzD,eAAO,MAAM,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"configureReactServer.server.d.ts","sourceRoot":"","sources":["../../../plugin/dev-server/configureReactServer.server.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAOzD,eAAO,MAAM,oBAAoB,EAAE,sBAwhBhC,CAAC"}
|
|
@@ -65,12 +65,6 @@ const configureReactServer = function _configureReactServer({
|
|
|
65
65
|
}
|
|
66
66
|
activeStreams.clear();
|
|
67
67
|
activeControllers.clear();
|
|
68
|
-
});
|
|
69
|
-
server.ws.on("full-reload", () => {
|
|
70
|
-
isRestarting = false;
|
|
71
|
-
logger.info("[vite-plugin-react-server] ✅ Server restart completed");
|
|
72
|
-
});
|
|
73
|
-
server.ws.on("restart", () => {
|
|
74
68
|
setTimeout(() => {
|
|
75
69
|
if (isRestarting) {
|
|
76
70
|
isRestarting = false;
|
|
@@ -80,6 +74,10 @@ const configureReactServer = function _configureReactServer({
|
|
|
80
74
|
}
|
|
81
75
|
}, 5e3);
|
|
82
76
|
});
|
|
77
|
+
server.ws.on("full-reload", () => {
|
|
78
|
+
isRestarting = false;
|
|
79
|
+
logger.info("[vite-plugin-react-server] ✅ Server restart completed");
|
|
80
|
+
});
|
|
83
81
|
const loader = async (id) => {
|
|
84
82
|
const [moduleID, exportName] = id.split("#");
|
|
85
83
|
let fullModulePath;
|
|
@@ -435,10 +433,9 @@ const configureReactServer = function _configureReactServer({
|
|
|
435
433
|
}
|
|
436
434
|
res.statusCode = 500;
|
|
437
435
|
res.setHeader("Content-Type", "text/x-component; charset=utf-8");
|
|
438
|
-
res.setHeader("Content-Length", "0");
|
|
439
436
|
}
|
|
440
437
|
});
|
|
441
438
|
};
|
|
442
439
|
|
|
443
440
|
export { configureReactServer };
|
|
444
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlUmVhY3RTZXJ2ZXIuc2VydmVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vZGV2LXNlcnZlci9jb25maWd1cmVSZWFjdFNlcnZlci5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gXCJodHRwXCI7XG5pbXBvcnQgeyBSZWFjdCB9IGZyb20gXCIuLi92ZW5kb3IvdmVuZG9yLnNlcnZlci5qc1wiO1xuaW1wb3J0IHsgY29sbGVjdFZpdGVNb2R1bGVHcmFwaENzcyB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbGxlY3RWaXRlTW9kdWxlR3JhcGhDc3MuanNcIjtcbmltcG9ydCB7IGNyZWF0ZVJzY1N0cmVhbSB9IGZyb20gXCIuLi9zdHJlYW0vY3JlYXRlUnNjU3RyZWFtLnNlcnZlci5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlUmVuZGVyVG9QaXBlYWJsZVN0cmVhbUhhbmRsZXIgfSBmcm9tIFwiLi4vc3RyZWFtL2NyZWF0ZVJlbmRlclRvUGlwZWFibGVTdHJlYW1IYW5kbGVyLnNlcnZlci5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlV29ya2VyIH0gZnJvbSBcIi4uL3dvcmtlci9jcmVhdGVXb3JrZXIuanNcIjtcbmltcG9ydCB0eXBlIHsgV29ya2VyIH0gZnJvbSBcIm5vZGU6d29ya2VyX3RocmVhZHNcIjtcbmltcG9ydCB7IHNlcmlhbGl6ZWRPcHRpb25zIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VyaWFsaXplVXNlck9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHJlcXVlc3RJbmZvIH0gZnJvbSBcIi4uL2hlbHBlcnMvcmVxdWVzdEluZm8uanNcIjtcbmltcG9ydCB7IGdldFJvdXRlRmlsZXMgfSBmcm9tIFwiLi4vaGVscGVycy9nZXRSb3V0ZUZpbGVzLmpzXCI7XG5pbXBvcnQgeyBoYW5kbGVTZXJ2ZXJBY3Rpb24gfSBmcm9tIFwiLi9oYW5kbGVTZXJ2ZXJBY3Rpb24uanNcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJlUmVhY3RTZXJ2ZXJGbiB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBoYW5kbGVFcnJvciB9IGZyb20gXCIuLi9lcnJvci9oYW5kbGVFcnJvci5qc1wiO1xuaW1wb3J0IHsgY2xlYW51cFdvcmtlciB9IGZyb20gXCIuLi9oZWxwZXJzL3dvcmtlckNsZWFudXAuanNcIjtcbmltcG9ydCB7IG1lcmdlQ29uZmlnLCB0eXBlIFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IHJlc29sdmVQYWdlQW5kUHJvcHMgfSBmcm9tIFwiLi4vaGVscGVycy9yZXNvbHZlUGFnZUFuZFByb3BzLmpzXCI7XG5pbXBvcnQgeyBSb290IGFzIERlZmF1bHRSb290IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvcm9vdC5qc1wiO1xuXG5leHBvcnQgY29uc3QgY29uZmlndXJlUmVhY3RTZXJ2ZXI6IENvbmZpZ3VyZVJlYWN0U2VydmVyRm4gPVxuICBmdW5jdGlvbiBfY29uZmlndXJlUmVhY3RTZXJ2ZXIoe1xuICAgIHNlcnZlcixcbiAgICBhdXRvRGlzY292ZXJlZEZpbGVzLFxuICAgIHVzZXJPcHRpb25zOiBfdXNlck9wdGlvbnMsXG4gICAgc2VydmVyTWFuaWZlc3QsXG4gICAgcmVzb2x2ZWRDb25maWcsXG4gIH0pIHtcbiAgICBjb25zdCBhY3RpdmVTdHJlYW1zID0gbmV3IFNldDxTZXJ2ZXJSZXNwb25zZT4oKTtcbiAgICBjb25zdCBhY3RpdmVDb250cm9sbGVycyA9IG5ldyBNYXA8XG4gICAgICBTZXJ2ZXJSZXNwb25zZSxcbiAgICAgIHsgYWJvcnQ6IChyZWFzb24/OiB1bmtub3duKSA9PiB2b2lkIH1cbiAgICA+KCk7XG4gICAgbGV0IGlzUmVzdGFydGluZyA9IGZhbHNlO1xuICAgIFxuICAgIFxuICAgIGNvbnN0IGxvZ2dlciA9IHNlcnZlci5jb25maWcuY3VzdG9tTG9nZ2VyIHx8IHNlcnZlci5jb25maWcubG9nZ2VyO1xuICAgIGNvbnN0IHtcbiAgICAgIEh0bWw6IF9Vc2VySHRtbENvbXBvbmVudCxcbiAgICAgIC8vIGxvYWRlciBjb25maWcgaXNuJ3QgaW1wb3J0YW50IGhlcmUsIHNpbmNlIHRoYXQncyB1c2VkIGJ5IHRoZSB0cmFuc2Zvcm1lclxuICAgICAgbG9hZGVyOiBfbG9hZGVyQ29uZmlnLFxuICAgICAgdmVyYm9zZSxcbiAgICAgIC8vIHdlIGNhbiB1c2UgdGhlc2UgZGlyZWN0bHkgdG8gY3JlYXRlIHRoZSBoYW5kbGVyXG4gICAgICAuLi51c2VySGFuZGxlck9wdGlvbnNcbiAgICB9ID0gX3VzZXJPcHRpb25zO1xuXG4gICAgc2VydmVyLmNvbmZpZyA9IG1lcmdlQ29uZmlnKFxuICAgICAgc2VydmVyLmNvbmZpZyxcbiAgICAgIHJlc29sdmVkQ29uZmlnXG4gICAgKSBhcyBSZXNvbHZlZENvbmZpZztcblxuXG4gICAgLy8gSGFuZGxlIFZpdGUgc2VydmVyIHJlc3RhcnRzXG4gICAgc2VydmVyLndzLm9uKFwicmVzdGFydFwiLCAocGF0aCkgPT4ge1xuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgIFwiW3ZpdGUtcGx1Z2luLXJlYWN0LXNlcnZlcl0g8J+UpyBQbHVnaW4gY2hhbmdlZCwgcHJlcGFyaW5nIGZvciByZXN0YXJ0OlwiLFxuICAgICAgICBwYXRoXG4gICAgICApO1xuXG4gICAgICBpc1Jlc3RhcnRpbmcgPSB0cnVlO1xuXG4gICAgICAvLyBBYm9ydCBhbGwgYWN0aXZlIHN0cmVhbXMgZmlyc3QsIHRoZW4gY2xvc2UgcmVzcG9uc2VzXG4gICAgICBmb3IgKGNvbnN0IHJlcyBvZiBhY3RpdmVTdHJlYW1zKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhY3RpdmVDb250cm9sbGVycy5nZXQocmVzKTtcbiAgICAgICAgaWYgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29udHJvbGxlci5hYm9ydChcIlNlcnZlciByZXN0YXJ0aW5nXCIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBhYm9ydCBlcnJvcnNcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXMud3JpdGVIZWFkKDUwMywge1xuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwidGV4dC94LWNvbXBvbmVudDsgY2hhcnNldD11dGYtOFwiLFxuICAgICAgICAgIFwiUmV0cnktQWZ0ZXJcIjogXCIxXCIsXG4gICAgICAgIH0pO1xuICAgICAgICByZXMuZW5kKFxuICAgICAgICAgIGAwOkV7XCJkaWdlc3RcIjpcIlwiLFwibmFtZVwiOlwiRXJyb3JcIixcIm1lc3NhZ2VcIjpcIlNlcnZlciByZXN0YXJ0aW5nLi4uXCIsXCJzdGFja1wiOlwiXCIsXCJlbnZcIjpcIlNlcnZlclwifWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGFjdGl2ZVN0cmVhbXMuY2xlYXIoKTtcbiAgICAgIGFjdGl2ZUNvbnRyb2xsZXJzLmNsZWFyKCk7XG4gICAgfSk7XG5cbiAgICAvLyBIYW5kbGUgcmVzdGFydCBjb21wbGV0aW9uXG4gICAgc2VydmVyLndzLm9uKFwiZnVsbC1yZWxvYWRcIiwgKCkgPT4ge1xuICAgICAgaXNSZXN0YXJ0aW5nID0gZmFsc2U7XG4gICAgICBsb2dnZXIuaW5mbyhcIlt2aXRlLXBsdWdpbi1yZWFjdC1zZXJ2ZXJdIOKchSBTZXJ2ZXIgcmVzdGFydCBjb21wbGV0ZWRcIik7XG4gICAgfSk7XG5cbiAgICAvLyBGYWxsYmFjazogcmVzZXQgcmVzdGFydCBmbGFnIGFmdGVyIGEgdGltZW91dFxuICAgIHNlcnZlci53cy5vbihcInJlc3RhcnRcIiwgKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChpc1Jlc3RhcnRpbmcpIHtcbiAgICAgICAgICBpc1Jlc3RhcnRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIFwiW3ZpdGUtcGx1Z2luLXJlYWN0LXNlcnZlcl0g4o+wIFJlc3RhcnQgdGltZW91dCwgcmVzdW1pbmcgbm9ybWFsIG9wZXJhdGlvblwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSwgNTAwMCk7IC8vIDUgc2Vjb25kIHRpbWVvdXRcbiAgICB9KTtcblxuICAgIGNvbnN0IGxvYWRlciA9IGFzeW5jIChpZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBbbW9kdWxlSUQsIGV4cG9ydE5hbWVdID0gaWQuc3BsaXQoXCIjXCIpO1xuICAgICAgXG4gICAgICAvLyBEZXRlcm1pbmUgdGhlIGZ1bGwgbW9kdWxlIHBhdGhcbiAgICAgIGxldCBmdWxsTW9kdWxlUGF0aDogc3RyaW5nO1xuICAgICAgXG4gICAgICAvLyBDaGVjayBpZiBhbHJlYWR5IGFuIGFic29sdXRlIHBhdGggKGZyb20gc2VydmVyIGVudmlyb25tZW50IG1vZHVsZSBncmFwaClcbiAgICAgIGlmIChtb2R1bGVJRC5zdGFydHNXaXRoKF91c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCkpIHtcbiAgICAgICAgZnVsbE1vZHVsZVBhdGggPSBtb2R1bGVJRDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlc29sdmUgcmVsYXRpdmUgcGF0aCBhZ2FpbnN0IHByb2plY3Qgcm9vdFxuICAgICAgICBjb25zdCByZXNvbHZlZE1vZHVsZUlEID0gbW9kdWxlSUQuc3RhcnRzV2l0aChcIi9cIikgXG4gICAgICAgICAgPyBtb2R1bGVJRC5zbGljZSgxKSBcbiAgICAgICAgICA6IG1vZHVsZUlEO1xuICAgICAgICBmdWxsTW9kdWxlUGF0aCA9IGAke191c2VyT3B0aW9ucy5wcm9qZWN0Um9vdH0vJHtyZXNvbHZlZE1vZHVsZUlEfWA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFVzZSBzZXJ2ZXIgZW52aXJvbm1lbnQgcnVubmVyIGZvciBwcm9wZXIgcmVhY3Qtc2VydmVyIGNvbmRpdGlvbiBoYW5kbGluZ1xuICAgICAgLy8gVGhpcyBlbnN1cmVzIGNsaWVudCBjb21wb25lbnRzIGFyZSB0cmFuc2Zvcm1lZCB0byByZWdpc3RlckNsaWVudFJlZmVyZW5jZVxuICAgICAgY29uc3Qgc2VydmVyRW52ID0gc2VydmVyLmVudmlyb25tZW50c1snc2VydmVyJ107XG4gICAgICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgIFxuICAgICAgaWYgKHNlcnZlckVudiAmJiAncnVubmVyJyBpbiBzZXJ2ZXJFbnYgJiYgc2VydmVyRW52LnJ1bm5lcikge1xuICAgICAgICAvLyBWaXRlIDYgRW52aXJvbm1lbnQgQVBJOiB1c2Ugc2VydmVyIGVudmlyb25tZW50IHJ1bm5lciBmb3IgUlNDXG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IChzZXJ2ZXJFbnYucnVubmVyIGFzIHsgaW1wb3J0OiAodXJsOiBzdHJpbmcpID0+IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IH0pLmltcG9ydChmdWxsTW9kdWxlUGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGYWxsYmFjayB0byBzc3JMb2FkTW9kdWxlIChzaG91bGQgbm90IGhhcHBlbiBpbiBWaXRlIDYrKVxuICAgICAgICByZXN1bHQgPSBhd2FpdCBzZXJ2ZXIuc3NyTG9hZE1vZHVsZShmdWxsTW9kdWxlUGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0ID09IG51bGwpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIFxcXCIke21vZHVsZUlEfVxcXCIgZG9lcyBub3QgaGF2ZSBhbnkgZXhwb3J0c2ApO1xuXG4gICAgICBpZiAoIU9iamVjdC5rZXlzKHJlc3VsdCkubGVuZ3RoICYmIGV4cG9ydE5hbWUubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYE1vZHVsZSBcXFwiJHttb2R1bGVJRH1cXFwiIGlzIGEgbW9kdWxlLCBidXQgZG9lcyBub3QgaGF2ZSBhbnkgZXhwb3J0cyBzbyBpdCBjYW4ndCBmaW5kICR7ZXhwb3J0TmFtZX1gXG4gICAgICAgICk7XG5cbiAgICAgIC8vIEFsd2F5cyByZXR1cm4gdGhlIGZ1bGwgbW9kdWxlIC0gY2FsbGVycyB3aWxsIGV4dHJhY3QgdGhlIHNwZWNpZmljIGV4cG9ydCBpZiBuZWVkZWRcbiAgICAgIC8vIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIGhvdyByZXNvbHZlUGFnZSBhbmQgcmVzb2x2ZVByb3BzIHdvcmtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBzZXJ2ZXIubWlkZGxld2FyZXMudXNlKGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgaWYgKCFyZXEudXJsKSB7XG4gICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICB9XG4gICAgICBjb25zdCBoYW5kbGVyT3B0aW9ucyA9IHtcbiAgICAgICAgLi4udXNlckhhbmRsZXJPcHRpb25zLFxuICAgICAgICBtb2R1bGVCYXNlVVJMOiBzZXJ2ZXIuY29uZmlnLmJhc2UsXG4gICAgICAgIG1vZHVsZUJhc2VQYXRoOiB1c2VySGFuZGxlck9wdGlvbnMubW9kdWxlQmFzZVBhdGgsXG4gICAgICAgIHByb2plY3RSb290OiBfdXNlck9wdGlvbnMucHJvamVjdFJvb3QsXG4gICAgICAgIGNzczogdXNlckhhbmRsZXJPcHRpb25zLmNzcyxcbiAgICAgICAgbG9hZGVyOiBsb2FkZXIsXG4gICAgICAgIHZlcmJvc2UsXG4gICAgICAgIGxvZ2dlcixcbiAgICAgICAgcnNjU3RyZWFtOiByZXNcbiAgICAgIH07XG4gICAgICBjb25zdCBpbmZvID0gcmVxdWVzdEluZm8ocmVxLCBoYW5kbGVyT3B0aW9ucywgXCJcIik7XG5cbiAgICAgIC8vIEhhbmRsZSBzZXJ2ZXIgYWN0aW9uc1xuICAgICAgaWYgKGluZm8uaXNTZXJ2ZXJBY3Rpb25SZXF1ZXN0KSB7XG4gICAgICAgIHJldHVybiBoYW5kbGVTZXJ2ZXJBY3Rpb24ocmVxLCByZXMsIHNlcnZlciwgaGFuZGxlck9wdGlvbnMpO1xuICAgICAgfVxuICAgICAgaWYgKCFpbmZvLmlzUnNjUmVxdWVzdCkge1xuICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiBzZXJ2ZXIgaXMgcmVzdGFydGluZywgcmV0dXJuIDUwMyBpbW1lZGlhdGVseVxuICAgICAgaWYgKGlzUmVzdGFydGluZykge1xuICAgICAgICByZXMud3JpdGVIZWFkKDUwMywge1xuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwidGV4dC94LWNvbXBvbmVudDsgY2hhcnNldD11dGYtOFwiLFxuICAgICAgICAgIFwiUmV0cnktQWZ0ZXJcIjogXCIxXCIsXG4gICAgICAgIH0pO1xuICAgICAgICByZXMuZW5kKFxuICAgICAgICAgIGAwOkV7XCJkaWdlc3RcIjpcIlwiLFwibmFtZVwiOlwiRXJyb3JcIixcIm1lc3NhZ2VcIjpcIlNlcnZlciByZXN0YXJ0aW5nLi4uXCIsXCJzdGFja1wiOlwiXCIsXCJlbnZcIjpcIlNlcnZlclwifWBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBDcmVhdGUgUlNDIHdvcmtlciBmb3IgY29uc2lzdGVudCBSU0Mgc3RyZWFtIGZvcm1hdHNcbiAgICAgIGxldCByc2NXb3JrZXI6IFdvcmtlciB8IHVuZGVmaW5lZDtcbiAgICAgIFxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgcm91dGVGaWxlcyA9IGF3YWl0IGdldFJvdXRlRmlsZXMoXG4gICAgICAgICAgaW5mby5yb3V0ZSxcbiAgICAgICAgICBhdXRvRGlzY292ZXJlZEZpbGVzLFxuICAgICAgICAgIF91c2VyT3B0aW9ucyxcbiAgICAgICAgICBsb2dnZXJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHJvdXRlRmlsZXMudHlwZSA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgY29uc3QgcGFuaWNFcnJvciA9IGhhbmRsZUVycm9yKHtcbiAgICAgICAgICAgIGVycm9yOiByb3V0ZUZpbGVzLmVycm9yLFxuICAgICAgICAgICAgbG9nZ2VyOiBsb2dnZXIsXG4gICAgICAgICAgICBwYW5pY1RocmVzaG9sZDogdXNlckhhbmRsZXJPcHRpb25zLnBhbmljVGhyZXNob2xkLFxuICAgICAgICAgICAgY3JpdGljYWw6IGZhbHNlLFxuICAgICAgICAgICAgY29udGV4dDogXCJjb25maWd1cmVSZWFjdFNlcnZlclwiLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChwYW5pY0Vycm9yICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KHBhbmljRXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhZ2VQYXRoID0gcm91dGVGaWxlcy5wYWdlO1xuICAgICAgICBjb25zdCBwcm9wc1BhdGggPSByb3V0ZUZpbGVzLnByb3BzO1xuICAgICAgICBjb25zdCByb290UGF0aCA9IHJvdXRlRmlsZXMucm9vdDtcblxuICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGEgcGFnZSBwYXRoIC0gaWYgbm90LCBza2lwIHRoaXMgcm91dGVcbiAgICAgICAgaWYgKCFwYWdlUGF0aCkge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgTm8gcGFnZSBmb3VuZCBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX0sIHNraXBwaW5nYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYENvbXBvbmVudHMgcmVzb2x2ZWQgc3VjY2Vzc2Z1bGx5IGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIGBQYWdlQ29tcG9uZW50IGlzIHZhbGlkLCBjcmVhdGluZyBoYW5kbGVyIG9wdGlvbnMgZm9yIHJvdXRlOiAke2luZm8ucm91dGV9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBoYW5kbGVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAuLi51c2VySGFuZGxlck9wdGlvbnMsXG4gICAgICAgICAgcm91dGU6IGluZm8ucm91dGUsXG4gICAgICAgICAgcGFnZVBhdGgsXG4gICAgICAgICAgcHJvcHNQYXRoLFxuICAgICAgICAgIGxvZ2dlcjogbG9nZ2VyLFxuICAgICAgICAgIG1hbmlmZXN0OiBzZXJ2ZXJNYW5pZmVzdCxcbiAgICAgICAgICBzZXJ2ZXIsXG4gICAgICAgICAgbW9kdWxlQmFzZVVSTDogc2VydmVyLmNvbmZpZy5iYXNlLFxuICAgICAgICAgIHByb2plY3RSb290OiBfdXNlck9wdGlvbnMucHJvamVjdFJvb3QsXG4gICAgICAgICAgbG9hZGVyOiBsb2FkZXIsXG4gICAgICAgICAgdmVyYm9zZTogdmVyYm9zZSxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBMb2FkIGFjdHVhbCBjb21wb25lbnRzIGZpcnN0IC0gdGhpcyByZWdpc3RlcnMgdGhlbSBpbiB0aGUgbW9kdWxlIGdyYXBoXG4gICAgICAgIC8vIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBDU1MgY29sbGVjdGlvbiB0byB3b3JrXG4gICAgICAgIGxldCBQYWdlQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT4gPSBSZWFjdC5GcmFnbWVudDtcbiAgICAgICAgbGV0IFJvb3RDb21wb25lbnQ6IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PiA9IERlZmF1bHRSb290O1xuICAgICAgICBsZXQgcGFnZVByb3BzOiBhbnkgPSB7fTtcbiAgICAgICAgXG4gICAgICAgIC8vIExvYWQgdGhlIFJvb3QgY29tcG9uZW50XG4gICAgICAgIGlmIChyb290UGF0aCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByb290RXhwb3J0TmFtZSA9IHVzZXJIYW5kbGVyT3B0aW9ucy5yb290RXhwb3J0TmFtZSB8fCBcIlJvb3RcIjtcbiAgICAgICAgICAgIGNvbnN0IHJvb3RNb2R1bGUgPSBhd2FpdCBsb2FkZXIocm9vdFBhdGgpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAocm9vdE1vZHVsZSAmJiByb290TW9kdWxlW3Jvb3RFeHBvcnROYW1lXSAmJiB0eXBlb2Ygcm9vdE1vZHVsZVtyb290RXhwb3J0TmFtZV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgUm9vdENvbXBvbmVudCA9IHJvb3RNb2R1bGVbcm9vdEV4cG9ydE5hbWVdIGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PjtcbiAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgTG9hZGVkIFJvb3QgY29tcG9uZW50IGZvciByb3V0ZSAke2luZm8ucm91dGV9IGZyb20gJHtyb290UGF0aH0jJHtyb290RXhwb3J0TmFtZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChyb290TW9kdWxlICYmIHJvb3RNb2R1bGVbJ2RlZmF1bHQnXSAmJiB0eXBlb2Ygcm9vdE1vZHVsZVsnZGVmYXVsdCddID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIFJvb3RDb21wb25lbnQgPSByb290TW9kdWxlWydkZWZhdWx0J10gYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+O1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBMb2FkZWQgZGVmYXVsdCBleHBvcnQgYXMgUm9vdCBjb21wb25lbnQgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIud2FybihgUm9vdCBjb21wb25lbnQgbm90IGZvdW5kIGluICR7cm9vdFBhdGh9LCB1c2luZyBSZWFjdC5GcmFnbWVudGApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci53YXJuKGBGYWlsZWQgdG8gbG9hZCBSb290IGNvbXBvbmVudCBmcm9tICR7cm9vdFBhdGh9OiAke2Vycm9yfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvYWQgdGhlIHBhZ2UgY29tcG9uZW50IChyZWdpc3RlcnMgaXQgaW4gbW9kdWxlIGdyYXBoIGZvciBDU1MgY29sbGVjdGlvbilcbiAgICAgICAgaWYgKHBhZ2VQYXRoKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VFeHBvcnROYW1lID0gdXNlckhhbmRsZXJPcHRpb25zLnBhZ2VFeHBvcnROYW1lIHx8IFwiUGFnZVwiO1xuICAgICAgICAgICAgY29uc3QgcGFnZU1vZHVsZSA9IGF3YWl0IGxvYWRlcihwYWdlUGF0aCk7XG4gICAgICAgICAgICBpZiAocGFnZU1vZHVsZSAmJiBwYWdlTW9kdWxlW3BhZ2VFeHBvcnROYW1lXSAmJiB0eXBlb2YgcGFnZU1vZHVsZVtwYWdlRXhwb3J0TmFtZV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgUGFnZUNvbXBvbmVudCA9IHBhZ2VNb2R1bGVbcGFnZUV4cG9ydE5hbWVdIGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PjtcbiAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgTG9hZGVkIFBhZ2UgY29tcG9uZW50IGZvciByb3V0ZSAke2luZm8ucm91dGV9IGZyb20gJHtwYWdlUGF0aH0jJHtwYWdlRXhwb3J0TmFtZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwYWdlTW9kdWxlICYmIHBhZ2VNb2R1bGVbJ2RlZmF1bHQnXSAmJiB0eXBlb2YgcGFnZU1vZHVsZVsnZGVmYXVsdCddID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIFBhZ2VDb21wb25lbnQgPSBwYWdlTW9kdWxlWydkZWZhdWx0J10gYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+O1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBMb2FkZWQgZGVmYXVsdCBleHBvcnQgYXMgUGFnZSBjb21wb25lbnQgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwYWdlTW9kdWxlICYmIHR5cGVvZiBwYWdlTW9kdWxlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIFBhZ2VDb21wb25lbnQgPSBwYWdlTW9kdWxlIGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PjtcbiAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgTG9hZGVkIG1vZHVsZSBhcyBQYWdlIGNvbXBvbmVudCBmb3Igcm91dGUgJHtpbmZvLnJvdXRlfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuKGBQYWdlIGNvbXBvbmVudCBub3QgZm91bmQgaW4gJHtwYWdlUGF0aH0sIHVzaW5nIFJlYWN0LkZyYWdtZW50YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oYEZhaWxlZCB0byBsb2FkIHBhZ2UgY29tcG9uZW50IGZyb20gJHtwYWdlUGF0aH06ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTk9XIGNvbGxlY3QgQ1NTIC0gcGFnZSBpcyByZWdpc3RlcmVkIGluIG1vZHVsZSBncmFwaFxuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKGBDb2xsZWN0aW5nIENTUyBmaWxlcyBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlcnZlckVudiA9IHNlcnZlci5lbnZpcm9ubWVudHNbJ3NlcnZlciddO1xuICAgICAgICBjb25zdCBtb2R1bGVHcmFwaEZvckNzcyA9IHNlcnZlckVudj8ubW9kdWxlR3JhcGggPz8gc2VydmVyLm1vZHVsZUdyYXBoO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgY3NzRmlsZXNSZXN1bHQgPSBhd2FpdCBjb2xsZWN0Vml0ZU1vZHVsZUdyYXBoQ3NzKHtcbiAgICAgICAgICBtb2R1bGVHcmFwaDogbW9kdWxlR3JhcGhGb3JDc3MsXG4gICAgICAgICAgcGFyZW50VXJsOiBwYWdlUGF0aCxcbiAgICAgICAgICBoYW5kbGVyT3B0aW9uczogaGFuZGxlck9wdGlvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oYENTUyBjb2xsZWN0aW9uIGNvbXBsZXRlZCBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjc3NGaWxlc1Jlc3VsdC50eXBlID09PSBcInNraXBcIikge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgQ1NTIGNvbGxlY3Rpb24gc2tpcHBlZCBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX0sIGNvbnRpbnVpbmcgd2l0aCBSU0MgcmVuZGVyaW5nYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChjc3NGaWxlc1Jlc3VsdC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dChjc3NGaWxlc1Jlc3VsdC5lcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2xsZWN0ZWRDc3NGaWxlcyA9IGNzc0ZpbGVzUmVzdWx0LnR5cGUgPT09IFwic3VjY2Vzc1wiID8gY3NzRmlsZXNSZXN1bHQuY3NzRmlsZXMgOiBuZXcgTWFwKCk7XG5cbiAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhgQ3JlYXRpbmcgUlNDIGhhbmRsZXIgZm9yIHJvdXRlOiAke2luZm8ucm91dGV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb2FkIHByb3BzIHVzaW5nIHRoZSByZXNvbHZlUGFnZUFuZFByb3BzIGhlbHBlclxuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2NvbmZpZ3VyZVJlYWN0U2VydmVyXSBMb2FkaW5nIHByb3BzIGZvciByb3V0ZSAke2luZm8ucm91dGV9LCBwYWdlUGF0aDogJHtwYWdlUGF0aH0sIHByb3BzUGF0aDogJHtwcm9wc1BhdGh9LCB1cmw6ICR7aW5mby51cmx9YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIGNvbnN0IHByb3BzUmVzdWx0ID0gYXdhaXQgcmVzb2x2ZVBhZ2VBbmRQcm9wcyh7XG4gICAgICAgICAgICBwYWdlUGF0aCxcbiAgICAgICAgICAgIHByb3BzUGF0aCxcbiAgICAgICAgICAgIHBhZ2VFeHBvcnROYW1lOiB1c2VySGFuZGxlck9wdGlvbnMucGFnZUV4cG9ydE5hbWUsXG4gICAgICAgICAgICBwcm9wc0V4cG9ydE5hbWU6IHVzZXJIYW5kbGVyT3B0aW9ucy5wcm9wc0V4cG9ydE5hbWUsXG4gICAgICAgICAgICB1cmw6IGluZm8udXJsLFxuICAgICAgICAgICAgcm91dGU6IGluZm8ucm91dGUsXG4gICAgICAgICAgICBtb2R1bGVCYXNlVVJMOiBzZXJ2ZXIuY29uZmlnLmJhc2UsXG4gICAgICAgICAgICBsb2FkZXIsXG4gICAgICAgICAgICB2ZXJib3NlLFxuICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgcnNjT3V0cHV0UGF0aDogdXNlckhhbmRsZXJPcHRpb25zLmJ1aWxkPy5yc2NPdXRwdXRQYXRoIHx8IFwiLnJzY1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2NvbmZpZ3VyZVJlYWN0U2VydmVyXSBQcm9wcyByZXNvbHV0aW9uIHJlc3VsdCB0eXBlOiAke3Byb3BzUmVzdWx0LnR5cGV9YCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHByb3BzUmVzdWx0LnR5cGUgPT09IFwic3VjY2Vzc1wiKSB7XG4gICAgICAgICAgICBwYWdlUHJvcHMgPSBwcm9wc1Jlc3VsdC5wYWdlUHJvcHMgfHwge307XG4gICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2NvbmZpZ3VyZVJlYWN0U2VydmVyXSBMb2FkZWQgcHJvcHMgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX06ICR7SlNPTi5zdHJpbmdpZnkocGFnZVByb3BzLCBudWxsLCAyKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzUmVzdWx0LnR5cGUgPT09IFwic2tpcFwiKSB7XG4gICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2NvbmZpZ3VyZVJlYWN0U2VydmVyXSBQcm9wcyByZXNvbHV0aW9uIHNraXBwZWQgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX0sIHVzaW5nIGVtcHR5IHByb3BzYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYWdlUHJvcHMgPSB7fTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oYFtjb25maWd1cmVSZWFjdFNlcnZlcl0gRmFpbGVkIHRvIGxvYWQgcHJvcHMgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX06ICR7cHJvcHNSZXN1bHQuZXJyb3J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYWdlUHJvcHMgPSB7fTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgIGxvZ2dlci53YXJuKGBbY29uZmlndXJlUmVhY3RTZXJ2ZXJdIEVycm9yIGxvYWRpbmcgcHJvcHMgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX06ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgICBsb2dnZXIud2FybihgW2NvbmZpZ3VyZVJlYWN0U2VydmVyXSBFcnJvciBzdGFjazogJHtlcnJvci5zdGFja31gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQ29udGludWUgd2l0aCBlbXB0eSBwcm9wcyBpZiBsb2FkaW5nIGZhaWxzXG4gICAgICAgICAgcGFnZVByb3BzID0ge307XG4gICAgICAgIH1cblxuICAgICAgICAvLyBERVYgTU9ERSBPUFRJTUlaQVRJT046IFNraXAgd29ya2VyLCB1c2UgZGlyZWN0IHJlbmRlcmluZyBvbiBtYWluIHRocmVhZFxuICAgICAgICAvLyBcbiAgICAgICAgLy8gV2h5OiBJbiBkZXY6cnNjIG1vZGUsIHRoZSBtYWluIHRocmVhZCBhbHJlYWR5IGhhcyByZWFjdC1zZXJ2ZXIgY29uZGl0aW9uIGFuZCBcbiAgICAgICAgLy8gbG9hZHMgbW9kdWxlcyB2aWEgVml0ZSdzIGVudmlyb25tZW50IHJ1bm5lciB3aGljaCBoYW5kbGVzIEhNUiBhdXRvbWF0aWNhbGx5LlxuICAgICAgICAvLyBUaGUgd29ya2VyIHVzZXMgcmF3IGltcG9ydCgpIHdoaWNoIGJ5cGFzc2VzIFZpdGUncyBtb2R1bGUgZ3JhcGggYW5kIEhNUi5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQmVuZWZpdHMgb2YgZGlyZWN0IHJlbmRlcmluZyBpbiBkZXY6XG4gICAgICAgIC8vIC0gUHJvcGVyIEhNUjogZmlsZSBjaGFuZ2VzIGFyZSBwaWNrZWQgdXAgaW1tZWRpYXRlbHkgdmlhIFZpdGUncyBtb2R1bGUgZ3JhcGhcbiAgICAgICAgLy8gLSBObyBtb2R1bGUgY2FjaGluZyBpc3N1ZXM6IGVudmlyb25tZW50IHJ1bm5lciBoYW5kbGVzIGNhY2hlIGludmFsaWRhdGlvblxuICAgICAgICAvLyAtIFNpbXBsZXIgZGVidWdnaW5nOiBhbGwgY29kZSBydW5zIGluIG1haW4gdGhyZWFkXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoZSB3b3JrZXIgaXMgc3RpbGwgdmFsdWFibGUgZm9yOlxuICAgICAgICAvLyAtIFByb2R1Y3Rpb24gYnVpbGRzIChpc29sYXRpb24sIGNvbnNpc3RlbnQgYmVoYXZpb3IpXG4gICAgICAgIC8vIC0gRnV0dXJlOiBSdW5uaW5nIFJTQyBpbiBkaWZmZXJlbnQgcnVudGltZXMgKHdvcmtlcmQsIGV0Yy4pXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFVzZXJzIGNhbiBvcHQtaW4gdG8gd29ya2VyIGluIGRldiB2aWEgY29uZmlnIGlmIG5lZWRlZCBmb3IgdGVzdGluZyBwcm9kdWN0aW9uIGJlaGF2aW9yLlxuICAgICAgICBjb25zdCB1c2VXb3JrZXJJbkRldiA9IF91c2VyT3B0aW9ucy5kZXY/LnVzZVJzY1dvcmtlciA9PT0gdHJ1ZTtcbiAgICAgICAgXG4gICAgICAgIGlmICh1c2VXb3JrZXJJbkRldikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgQ3JlYXRpbmcgUlNDIHdvcmtlciBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX0gKHVzZVJzY1dvcmtlcj10cnVlKWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBjb25zdCB3b3JrZXJSZXN1bHQgPSBhd2FpdCBjcmVhdGVXb3JrZXIoe1xuICAgICAgICAgICAgICBwcm9qZWN0Um9vdDogX3VzZXJPcHRpb25zLnByb2plY3RSb290IHx8IHNlcnZlci5jb25maWcucm9vdCxcbiAgICAgICAgICAgICAgd29ya2VyRGF0YToge1xuICAgICAgICAgICAgICAgIHVzZXJPcHRpb25zOiBzZXJpYWxpemVkT3B0aW9ucyhfdXNlck9wdGlvbnMsIGF1dG9EaXNjb3ZlcmVkRmlsZXMpLFxuICAgICAgICAgICAgICAgIHJlc29sdmVkQ29uZmlnOiBzZXJ2ZXIuY29uZmlnLFxuICAgICAgICAgICAgICAgIGNvbmZpZ0VudjogeyBjb21tYW5kOiBcInNlcnZlXCIsIG1vZGU6IFwiZGV2ZWxvcG1lbnRcIiB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB2ZXJib3NlLFxuICAgICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKHdvcmtlclJlc3VsdC50eXBlID09PSBcInN1Y2Nlc3NcIikge1xuICAgICAgICAgICAgICByc2NXb3JrZXIgPSB3b3JrZXJSZXN1bHQud29ya2VyO1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBSU0Mgd29ya2VyIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5IGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuKGBSU0Mgd29ya2VyIGNyZWF0aW9uIHNraXBwZWQgZm9yIHJvdXRlOiAke2luZm8ucm91dGV9OiAke3dvcmtlclJlc3VsdC5yZWFzb259YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oYEZhaWxlZCB0byBjcmVhdGUgUlNDIHdvcmtlciBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX06ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgW2Rldjpyc2NdIFVzaW5nIGRpcmVjdCByZW5kZXJpbmcgKG5vIHdvcmtlcikgZm9yIHByb3BlciBITVIgc3VwcG9ydGApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVzZSB3b3JrZXItYmFzZWQgUlNDIHN0cmVhbSBpZiB3b3JrZXIgaXMgYXZhaWxhYmxlLCBvdGhlcndpc2UgZmFsbCBiYWNrIHRvIGRpcmVjdCByZW5kZXJpbmdcbiAgICAgICAgLy8gQ1JJVElDQUw6IEZvciBSU0MgcmVxdWVzdHMsIHVzZSBodG1sUGF0aDogXCJcIiBmb3IgaGVhZGxlc3MgbW9kZSAobm8gSHRtbCB3cmFwcGVyKVxuICAgICAgICAvLyBUaGlzIHByZXZlbnRzIGh5ZHJhdGlvbiBlcnJvcnMgd2hlcmUgPGh0bWw+IHdvdWxkIGJlIHJlbmRlcmVkIGluc2lkZSAjcm9vdCBkaXZcbiAgICAgICAgY29uc3QgcnNjUmVzdWx0ID0gcnNjV29ya2VyIFxuICAgICAgICAgID8gY3JlYXRlUnNjU3RyZWFtKHtcbiAgICAgICAgICAgICAgLi4uaGFuZGxlck9wdGlvbnMsXG4gICAgICAgICAgICAgIHVybDogaW5mby51cmwsXG4gICAgICAgICAgICAgIHBhZ2VQYXRoLFxuICAgICAgICAgICAgICBwcm9wc1BhdGgsXG4gICAgICAgICAgICAgIHJvb3RQYXRoLCAgLy8gUGFzcyB0aGUgcm9vdCBwYXRoIGZvciB3b3JrZXIgdG8gbG9hZFxuICAgICAgICAgICAgICBodG1sUGF0aDogXCJcIiwgIC8vIEVtcHR5IHN0cmluZyA9IGhlYWRsZXNzIFJTQyAobm8gSHRtbCB3cmFwcGVyKVxuICAgICAgICAgICAgICByc2NXb3JrZXIsXG4gICAgICAgICAgICAgIGNzc0ZpbGVzOiBjb2xsZWN0ZWRDc3NGaWxlcyxcbiAgICAgICAgICAgICAgZ2xvYmFsQ3NzOiBuZXcgTWFwKCksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogY3JlYXRlUmVuZGVyVG9QaXBlYWJsZVN0cmVhbUhhbmRsZXIoe1xuICAgICAgICAgICAgICAuLi5oYW5kbGVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgdXJsOiBpbmZvLnVybCxcbiAgICAgICAgICAgICAgUGFnZUNvbXBvbmVudDogUGFnZUNvbXBvbmVudCBhcyBhbnksXG4gICAgICAgICAgICAgIFJvb3RDb21wb25lbnQ6IFJvb3RDb21wb25lbnQgYXMgYW55LFxuICAgICAgICAgICAgICBIdG1sQ29tcG9uZW50OiBSZWFjdC5GcmFnbWVudCwgIC8vIEhlYWRsZXNzIHN0cmVhbSAtIG5vIEh0bWwgd3JhcHBlclxuICAgICAgICAgICAgICBwYWdlUHJvcHM6IHBhZ2VQcm9wcywgIC8vIFBhc3MgdGhlIGxvYWRlZCBwcm9wc1xuICAgICAgICAgICAgICBjc3NGaWxlczogY29sbGVjdGVkQ3NzRmlsZXMsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFJTQyBoYW5kbGVyIGNyZWF0ZWQgZm9yIHJvdXRlOiAke1xuICAgICAgICAgICAgICBpbmZvLnJvdXRlXG4gICAgICAgICAgICB9LCByZXN1bHQgdHlwZTogJHt0eXBlb2YgcnNjUmVzdWx0fSwgaGFzIHBpcGU6ICR7dHlwZW9mIHJzY1Jlc3VsdD8ucGlwZX0sIGhhcyBhYm9ydDogJHt0eXBlb2YgcnNjUmVzdWx0Py5hYm9ydH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyc2NSZXN1bHQgJiYgdHlwZW9mIHJzY1Jlc3VsdC5waXBlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgbG9nZ2VyLmluZm8oYFNldHRpbmcgdXAgUlNDIHN0cmVhbSBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX1gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBzZXQgaGVhZGVyc1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJ0ZXh0L3gtY29tcG9uZW50OyBjaGFyc2V0PXV0Zi04XCIpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENSSVRJQ0FMOiBEaXNhYmxlIGNhY2hpbmcgaW4gZGV2ZWxvcG1lbnQgbW9kZVxuICAgICAgICAgIC8vIFdpdGhvdXQgdGhpcywgYnJvd3NlcnMgY2FjaGUgUlNDIHN0cmVhbXMgYW5kIGRvbid0IHNob3cgdXBkYXRlc1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDYWNoZS1Db250cm9sXCIsIFwibm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGVcIik7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIlByYWdtYVwiLCBcIm5vLWNhY2hlXCIpO1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJFeHBpcmVzXCIsIFwiMFwiKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBBZGQgQ09SUyBoZWFkZXJzIGZvciBSU0MgZmlsZXNcbiAgICAgICAgICBjb25zdCBvcmlnaW4gPSByZXEuaGVhZGVycy5vcmlnaW47XG4gICAgICAgICAgaWYgKG9yaWdpbiAmJiAob3JpZ2luLmluY2x1ZGVzKCdsb2NhbGhvc3QnKSB8fCBvcmlnaW4uaW5jbHVkZXMoJzEyNy4wLjAuMScpKSkge1xuICAgICAgICAgICAgcmVzLnNldEhlYWRlcihcIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblwiLCBvcmlnaW4pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCIsIFwiKlwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHNcIiwgXCJHRVQsIE9QVElPTlNcIik7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnNcIiwgXCJBY2NlcHQsIENvbnRlbnQtVHlwZVwiKTtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQWNjZXNzLUNvbnRyb2wtTWF4LUFnZVwiLCBcIjg2NDAwXCIpO1xuICAgICAgICAgIHJzY1Jlc3VsdC5waXBlKHJlcyk7XG5cbiAgICAgICAgICAvLyBTdG9yZSB0aGUgY29udHJvbGxlciBmb3IgcG90ZW50aWFsIGFib3J0IGR1cmluZyByZXN0YXJ0XG4gICAgICAgICAgYWN0aXZlQ29udHJvbGxlcnMuc2V0KHJlcywgcnNjUmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICBgUlNDIGhhbmRsZXIgZmFpbGVkIGZvciByb3V0ZTogJHtcbiAgICAgICAgICAgICAgICBpbmZvLnJvdXRlXG4gICAgICAgICAgICAgIH0sIGludmFsaWQgcmVzdWx0OiAke3R5cGVvZiByc2NSZXN1bHR9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gSGFuZGxlIHRoZSBlcnJvciBjYXNlXG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgcmVzLmVuZChcIkludGVybmFsIFNlcnZlciBFcnJvclwiKTtcbiAgICAgICAgfVxuICAgICAgICBhY3RpdmVTdHJlYW1zLmFkZChyZXMpO1xuICAgICAgICByZXMub24oXCJjbG9zZVwiLCAoKSA9PiB7XG4gICAgICAgICAgYWN0aXZlU3RyZWFtcy5kZWxldGUocmVzKTtcbiAgICAgICAgICBcbiAgICAgICAgICAvLyBBYm9ydCB0aGUgUlNDIHN0cmVhbSB0byBjbGVhbiB1cCBNZXNzYWdlUG9ydHNcbiAgICAgICAgICBjb25zdCBjb250cm9sbGVyID0gYWN0aXZlQ29udHJvbGxlcnMuZ2V0KHJlcyk7XG4gICAgICAgICAgaWYgKGNvbnRyb2xsZXIgJiYgdHlwZW9mIGNvbnRyb2xsZXIuYWJvcnQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gSWdub3JlIGNsZWFudXAgZXJyb3JzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdGl2ZUNvbnRyb2xsZXJzLmRlbGV0ZShyZXMpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENsZWFuIHVwIHdvcmtlciB3aGVuIHJlcXVlc3QgY29tcGxldGVzXG4gICAgICAgICAgY2xlYW51cFdvcmtlcihyc2NXb3JrZXIpO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IHBhbmljRXJyb3IgPSBoYW5kbGVFcnJvcih7XG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgIHBhbmljVGhyZXNob2xkOiBoYW5kbGVyT3B0aW9ucy5wYW5pY1RocmVzaG9sZCxcbiAgICAgICAgICBjcml0aWNhbDogZmFsc2UsXG4gICAgICAgICAgY29udGV4dDogXCJjb25maWd1cmVSZWFjdFNlcnZlclwiLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHBhbmljRXJyb3IgIT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBuZXh0KHBhbmljRXJyb3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoXCJDb250ZW50LVR5cGVcIiwgXCJ0ZXh0L3gtY29tcG9uZW50OyBjaGFyc2V0PXV0Zi04XCIpO1xuICAgICAgICByZXMuc2V0SGVhZGVyKFwiQ29udGVudC1MZW5ndGhcIiwgXCIwXCIpOyAvLyBXaWxsIGJlIHVwZGF0ZWQgYWZ0ZXIgc3RyZWFtaW5nXG4gICAgICAgIFxuICAgICAgICAvLyBOb3RlOiBXb3JrZXIgY2xlYW51cCBpcyBoYW5kbGVkIGJ5IHRoZSByZXNwb25zZSBjbG9zZSBoYW5kbGVyXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4iXSwibmFtZXMiOlsiaGFuZGxlck9wdGlvbnMiLCJEZWZhdWx0Um9vdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQmEsTUFBQSxvQkFBQSxHQUNYLFNBQVMscUJBQXNCLENBQUE7QUFBQSxFQUM3QixNQUFBO0FBQUEsRUFDQSxtQkFBQTtBQUFBLEVBQ0EsV0FBYSxFQUFBLFlBQUE7QUFBQSxFQUNiLGNBQUE7QUFBQSxFQUNBO0FBQ0YsQ0FBRyxFQUFBO0FBQ0QsRUFBTSxNQUFBLGFBQUEsdUJBQW9CLEdBQW9CLEVBQUE7QUFDOUMsRUFBTSxNQUFBLGlCQUFBLHVCQUF3QixHQUc1QixFQUFBO0FBQ0YsRUFBQSxJQUFJLFlBQWUsR0FBQSxLQUFBO0FBR25CLEVBQUEsTUFBTSxNQUFTLEdBQUEsTUFBQSxDQUFPLE1BQU8sQ0FBQSxZQUFBLElBQWdCLE9BQU8sTUFBTyxDQUFBLE1BQUE7QUFDM0QsRUFBTSxNQUFBO0FBQUEsSUFDSixJQUFNLEVBQUEsa0JBQUE7QUFBQTtBQUFBLElBRU4sTUFBUSxFQUFBLGFBQUE7QUFBQSxJQUNS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
|
|
441
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlUmVhY3RTZXJ2ZXIuc2VydmVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vZGV2LXNlcnZlci9jb25maWd1cmVSZWFjdFNlcnZlci5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gXCJodHRwXCI7XG5pbXBvcnQgeyBSZWFjdCB9IGZyb20gXCIuLi92ZW5kb3IvdmVuZG9yLnNlcnZlci5qc1wiO1xuaW1wb3J0IHsgY29sbGVjdFZpdGVNb2R1bGVHcmFwaENzcyB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbGxlY3RWaXRlTW9kdWxlR3JhcGhDc3MuanNcIjtcbmltcG9ydCB7IGNyZWF0ZVJzY1N0cmVhbSB9IGZyb20gXCIuLi9zdHJlYW0vY3JlYXRlUnNjU3RyZWFtLnNlcnZlci5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlUmVuZGVyVG9QaXBlYWJsZVN0cmVhbUhhbmRsZXIgfSBmcm9tIFwiLi4vc3RyZWFtL2NyZWF0ZVJlbmRlclRvUGlwZWFibGVTdHJlYW1IYW5kbGVyLnNlcnZlci5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlV29ya2VyIH0gZnJvbSBcIi4uL3dvcmtlci9jcmVhdGVXb3JrZXIuanNcIjtcbmltcG9ydCB0eXBlIHsgV29ya2VyIH0gZnJvbSBcIm5vZGU6d29ya2VyX3RocmVhZHNcIjtcbmltcG9ydCB7IHNlcmlhbGl6ZWRPcHRpb25zIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2VyaWFsaXplVXNlck9wdGlvbnMuanNcIjtcbmltcG9ydCB7IHJlcXVlc3RJbmZvIH0gZnJvbSBcIi4uL2hlbHBlcnMvcmVxdWVzdEluZm8uanNcIjtcbmltcG9ydCB7IGdldFJvdXRlRmlsZXMgfSBmcm9tIFwiLi4vaGVscGVycy9nZXRSb3V0ZUZpbGVzLmpzXCI7XG5pbXBvcnQgeyBoYW5kbGVTZXJ2ZXJBY3Rpb24gfSBmcm9tIFwiLi9oYW5kbGVTZXJ2ZXJBY3Rpb24uanNcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJlUmVhY3RTZXJ2ZXJGbiB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBoYW5kbGVFcnJvciB9IGZyb20gXCIuLi9lcnJvci9oYW5kbGVFcnJvci5qc1wiO1xuaW1wb3J0IHsgY2xlYW51cFdvcmtlciB9IGZyb20gXCIuLi9oZWxwZXJzL3dvcmtlckNsZWFudXAuanNcIjtcbmltcG9ydCB7IG1lcmdlQ29uZmlnLCB0eXBlIFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IHJlc29sdmVQYWdlQW5kUHJvcHMgfSBmcm9tIFwiLi4vaGVscGVycy9yZXNvbHZlUGFnZUFuZFByb3BzLmpzXCI7XG5pbXBvcnQgeyBSb290IGFzIERlZmF1bHRSb290IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvcm9vdC5qc1wiO1xuXG5leHBvcnQgY29uc3QgY29uZmlndXJlUmVhY3RTZXJ2ZXI6IENvbmZpZ3VyZVJlYWN0U2VydmVyRm4gPVxuICBmdW5jdGlvbiBfY29uZmlndXJlUmVhY3RTZXJ2ZXIoe1xuICAgIHNlcnZlcixcbiAgICBhdXRvRGlzY292ZXJlZEZpbGVzLFxuICAgIHVzZXJPcHRpb25zOiBfdXNlck9wdGlvbnMsXG4gICAgc2VydmVyTWFuaWZlc3QsXG4gICAgcmVzb2x2ZWRDb25maWcsXG4gIH0pIHtcbiAgICBjb25zdCBhY3RpdmVTdHJlYW1zID0gbmV3IFNldDxTZXJ2ZXJSZXNwb25zZT4oKTtcbiAgICBjb25zdCBhY3RpdmVDb250cm9sbGVycyA9IG5ldyBNYXA8XG4gICAgICBTZXJ2ZXJSZXNwb25zZSxcbiAgICAgIHsgYWJvcnQ6IChyZWFzb24/OiB1bmtub3duKSA9PiB2b2lkIH1cbiAgICA+KCk7XG4gICAgbGV0IGlzUmVzdGFydGluZyA9IGZhbHNlO1xuICAgIFxuICAgIFxuICAgIGNvbnN0IGxvZ2dlciA9IHNlcnZlci5jb25maWcuY3VzdG9tTG9nZ2VyIHx8IHNlcnZlci5jb25maWcubG9nZ2VyO1xuICAgIGNvbnN0IHtcbiAgICAgIEh0bWw6IF9Vc2VySHRtbENvbXBvbmVudCxcbiAgICAgIC8vIGxvYWRlciBjb25maWcgaXNuJ3QgaW1wb3J0YW50IGhlcmUsIHNpbmNlIHRoYXQncyB1c2VkIGJ5IHRoZSB0cmFuc2Zvcm1lclxuICAgICAgbG9hZGVyOiBfbG9hZGVyQ29uZmlnLFxuICAgICAgdmVyYm9zZSxcbiAgICAgIC8vIHdlIGNhbiB1c2UgdGhlc2UgZGlyZWN0bHkgdG8gY3JlYXRlIHRoZSBoYW5kbGVyXG4gICAgICAuLi51c2VySGFuZGxlck9wdGlvbnNcbiAgICB9ID0gX3VzZXJPcHRpb25zO1xuXG4gICAgc2VydmVyLmNvbmZpZyA9IG1lcmdlQ29uZmlnKFxuICAgICAgc2VydmVyLmNvbmZpZyxcbiAgICAgIHJlc29sdmVkQ29uZmlnXG4gICAgKSBhcyBSZXNvbHZlZENvbmZpZztcblxuXG4gICAgLy8gSGFuZGxlIFZpdGUgc2VydmVyIHJlc3RhcnRzXG4gICAgc2VydmVyLndzLm9uKFwicmVzdGFydFwiLCAocGF0aCkgPT4ge1xuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgIFwiW3ZpdGUtcGx1Z2luLXJlYWN0LXNlcnZlcl0g8J+UpyBQbHVnaW4gY2hhbmdlZCwgcHJlcGFyaW5nIGZvciByZXN0YXJ0OlwiLFxuICAgICAgICBwYXRoXG4gICAgICApO1xuXG4gICAgICBpc1Jlc3RhcnRpbmcgPSB0cnVlO1xuXG4gICAgICAvLyBBYm9ydCBhbGwgYWN0aXZlIHN0cmVhbXMgZmlyc3QsIHRoZW4gY2xvc2UgcmVzcG9uc2VzXG4gICAgICBmb3IgKGNvbnN0IHJlcyBvZiBhY3RpdmVTdHJlYW1zKSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhY3RpdmVDb250cm9sbGVycy5nZXQocmVzKTtcbiAgICAgICAgaWYgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29udHJvbGxlci5hYm9ydChcIlNlcnZlciByZXN0YXJ0aW5nXCIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIElnbm9yZSBhYm9ydCBlcnJvcnNcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXMud3JpdGVIZWFkKDUwMywge1xuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwidGV4dC94LWNvbXBvbmVudDsgY2hhcnNldD11dGYtOFwiLFxuICAgICAgICAgIFwiUmV0cnktQWZ0ZXJcIjogXCIxXCIsXG4gICAgICAgIH0pO1xuICAgICAgICByZXMuZW5kKFxuICAgICAgICAgIGAwOkV7XCJkaWdlc3RcIjpcIlwiLFwibmFtZVwiOlwiRXJyb3JcIixcIm1lc3NhZ2VcIjpcIlNlcnZlciByZXN0YXJ0aW5nLi4uXCIsXCJzdGFja1wiOlwiXCIsXCJlbnZcIjpcIlNlcnZlclwifWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGFjdGl2ZVN0cmVhbXMuY2xlYXIoKTtcbiAgICAgIGFjdGl2ZUNvbnRyb2xsZXJzLmNsZWFyKCk7XG5cbiAgICAgIC8vIEZhbGxiYWNrOiByZXNldCByZXN0YXJ0IGZsYWcgYWZ0ZXIgYSB0aW1lb3V0XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKGlzUmVzdGFydGluZykge1xuICAgICAgICAgIGlzUmVzdGFydGluZyA9IGZhbHNlO1xuICAgICAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgXCJbdml0ZS1wbHVnaW4tcmVhY3Qtc2VydmVyXSDij7AgUmVzdGFydCB0aW1lb3V0LCByZXN1bWluZyBub3JtYWwgb3BlcmF0aW9uXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LCA1MDAwKTsgLy8gNSBzZWNvbmQgdGltZW91dFxuICAgIH0pO1xuXG4gICAgLy8gSGFuZGxlIHJlc3RhcnQgY29tcGxldGlvblxuICAgIHNlcnZlci53cy5vbihcImZ1bGwtcmVsb2FkXCIsICgpID0+IHtcbiAgICAgIGlzUmVzdGFydGluZyA9IGZhbHNlO1xuICAgICAgbG9nZ2VyLmluZm8oXCJbdml0ZS1wbHVnaW4tcmVhY3Qtc2VydmVyXSDinIUgU2VydmVyIHJlc3RhcnQgY29tcGxldGVkXCIpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgbG9hZGVyID0gYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IFttb2R1bGVJRCwgZXhwb3J0TmFtZV0gPSBpZC5zcGxpdChcIiNcIik7XG4gICAgICBcbiAgICAgIC8vIERldGVybWluZSB0aGUgZnVsbCBtb2R1bGUgcGF0aFxuICAgICAgbGV0IGZ1bGxNb2R1bGVQYXRoOiBzdHJpbmc7XG4gICAgICBcbiAgICAgIC8vIENoZWNrIGlmIGFscmVhZHkgYW4gYWJzb2x1dGUgcGF0aCAoZnJvbSBzZXJ2ZXIgZW52aXJvbm1lbnQgbW9kdWxlIGdyYXBoKVxuICAgICAgaWYgKG1vZHVsZUlELnN0YXJ0c1dpdGgoX3VzZXJPcHRpb25zLnByb2plY3RSb290KSkge1xuICAgICAgICBmdWxsTW9kdWxlUGF0aCA9IG1vZHVsZUlEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVzb2x2ZSByZWxhdGl2ZSBwYXRoIGFnYWluc3QgcHJvamVjdCByb290XG4gICAgICAgIGNvbnN0IHJlc29sdmVkTW9kdWxlSUQgPSBtb2R1bGVJRC5zdGFydHNXaXRoKFwiL1wiKSBcbiAgICAgICAgICA/IG1vZHVsZUlELnNsaWNlKDEpIFxuICAgICAgICAgIDogbW9kdWxlSUQ7XG4gICAgICAgIGZ1bGxNb2R1bGVQYXRoID0gYCR7X3VzZXJPcHRpb25zLnByb2plY3RSb290fS8ke3Jlc29sdmVkTW9kdWxlSUR9YDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgLy8gVXNlIHNlcnZlciBlbnZpcm9ubWVudCBydW5uZXIgZm9yIHByb3BlciByZWFjdC1zZXJ2ZXIgY29uZGl0aW9uIGhhbmRsaW5nXG4gICAgICAvLyBUaGlzIGVuc3VyZXMgY2xpZW50IGNvbXBvbmVudHMgYXJlIHRyYW5zZm9ybWVkIHRvIHJlZ2lzdGVyQ2xpZW50UmVmZXJlbmNlXG4gICAgICBjb25zdCBzZXJ2ZXJFbnYgPSBzZXJ2ZXIuZW52aXJvbm1lbnRzWydzZXJ2ZXInXTtcbiAgICAgIGxldCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgXG4gICAgICBpZiAoc2VydmVyRW52ICYmICdydW5uZXInIGluIHNlcnZlckVudiAmJiBzZXJ2ZXJFbnYucnVubmVyKSB7XG4gICAgICAgIC8vIFZpdGUgNiBFbnZpcm9ubWVudCBBUEk6IHVzZSBzZXJ2ZXIgZW52aXJvbm1lbnQgcnVubmVyIGZvciBSU0NcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgKHNlcnZlckVudi5ydW5uZXIgYXMgeyBpbXBvcnQ6ICh1cmw6IHN0cmluZykgPT4gUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gfSkuaW1wb3J0KGZ1bGxNb2R1bGVQYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZhbGxiYWNrIHRvIHNzckxvYWRNb2R1bGUgKHNob3VsZCBub3QgaGFwcGVuIGluIFZpdGUgNispXG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IHNlcnZlci5zc3JMb2FkTW9kdWxlKGZ1bGxNb2R1bGVQYXRoKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHQgPT0gbnVsbClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgXFxcIiR7bW9kdWxlSUR9XFxcIiBkb2VzIG5vdCBoYXZlIGFueSBleHBvcnRzYCk7XG5cbiAgICAgIGlmICghT2JqZWN0LmtleXMocmVzdWx0KS5sZW5ndGggJiYgZXhwb3J0TmFtZS5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgTW9kdWxlIFxcXCIke21vZHVsZUlEfVxcXCIgaXMgYSBtb2R1bGUsIGJ1dCBkb2VzIG5vdCBoYXZlIGFueSBleHBvcnRzIHNvIGl0IGNhbid0IGZpbmQgJHtleHBvcnROYW1lfWBcbiAgICAgICAgKTtcblxuICAgICAgLy8gQWx3YXlzIHJldHVybiB0aGUgZnVsbCBtb2R1bGUgLSBjYWxsZXJzIHdpbGwgZXh0cmFjdCB0aGUgc3BlY2lmaWMgZXhwb3J0IGlmIG5lZWRlZFxuICAgICAgLy8gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggaG93IHJlc29sdmVQYWdlIGFuZCByZXNvbHZlUHJvcHMgd29ya1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIHNlcnZlci5taWRkbGV3YXJlcy51c2UoYXN5bmMgKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgICBpZiAoIXJlcS51cmwpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhbmRsZXJPcHRpb25zID0ge1xuICAgICAgICAuLi51c2VySGFuZGxlck9wdGlvbnMsXG4gICAgICAgIG1vZHVsZUJhc2VVUkw6IHNlcnZlci5jb25maWcuYmFzZSxcbiAgICAgICAgbW9kdWxlQmFzZVBhdGg6IHVzZXJIYW5kbGVyT3B0aW9ucy5tb2R1bGVCYXNlUGF0aCxcbiAgICAgICAgcHJvamVjdFJvb3Q6IF91c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgY3NzOiB1c2VySGFuZGxlck9wdGlvbnMuY3NzLFxuICAgICAgICBsb2FkZXI6IGxvYWRlcixcbiAgICAgICAgdmVyYm9zZSxcbiAgICAgICAgbG9nZ2VyLFxuICAgICAgICByc2NTdHJlYW06IHJlc1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGluZm8gPSByZXF1ZXN0SW5mbyhyZXEsIGhhbmRsZXJPcHRpb25zLCBcIlwiKTtcblxuICAgICAgLy8gSGFuZGxlIHNlcnZlciBhY3Rpb25zXG4gICAgICBpZiAoaW5mby5pc1NlcnZlckFjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVNlcnZlckFjdGlvbihyZXEsIHJlcywgc2VydmVyLCBoYW5kbGVyT3B0aW9ucyk7XG4gICAgICB9XG4gICAgICBpZiAoIWluZm8uaXNSc2NSZXF1ZXN0KSB7XG4gICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHNlcnZlciBpcyByZXN0YXJ0aW5nLCByZXR1cm4gNTAzIGltbWVkaWF0ZWx5XG4gICAgICBpZiAoaXNSZXN0YXJ0aW5nKSB7XG4gICAgICAgIHJlcy53cml0ZUhlYWQoNTAzLCB7XG4gICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJ0ZXh0L3gtY29tcG9uZW50OyBjaGFyc2V0PXV0Zi04XCIsXG4gICAgICAgICAgXCJSZXRyeS1BZnRlclwiOiBcIjFcIixcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcy5lbmQoXG4gICAgICAgICAgYDA6RXtcImRpZ2VzdFwiOlwiXCIsXCJuYW1lXCI6XCJFcnJvclwiLFwibWVzc2FnZVwiOlwiU2VydmVyIHJlc3RhcnRpbmcuLi5cIixcInN0YWNrXCI6XCJcIixcImVudlwiOlwiU2VydmVyXCJ9YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIENyZWF0ZSBSU0Mgd29ya2VyIGZvciBjb25zaXN0ZW50IFJTQyBzdHJlYW0gZm9ybWF0c1xuICAgICAgbGV0IHJzY1dvcmtlcjogV29ya2VyIHwgdW5kZWZpbmVkO1xuICAgICAgXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByb3V0ZUZpbGVzID0gYXdhaXQgZ2V0Um91dGVGaWxlcyhcbiAgICAgICAgICBpbmZvLnJvdXRlLFxuICAgICAgICAgIGF1dG9EaXNjb3ZlcmVkRmlsZXMsXG4gICAgICAgICAgX3VzZXJPcHRpb25zLFxuICAgICAgICAgIGxvZ2dlclxuICAgICAgICApO1xuICAgICAgICBpZiAocm91dGVGaWxlcy50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICBjb25zdCBwYW5pY0Vycm9yID0gaGFuZGxlRXJyb3Ioe1xuICAgICAgICAgICAgZXJyb3I6IHJvdXRlRmlsZXMuZXJyb3IsXG4gICAgICAgICAgICBsb2dnZXI6IGxvZ2dlcixcbiAgICAgICAgICAgIHBhbmljVGhyZXNob2xkOiB1c2VySGFuZGxlck9wdGlvbnMucGFuaWNUaHJlc2hvbGQsXG4gICAgICAgICAgICBjcml0aWNhbDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZXh0OiBcImNvbmZpZ3VyZVJlYWN0U2VydmVyXCIsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHBhbmljRXJyb3IgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5leHQocGFuaWNFcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXh0KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFnZVBhdGggPSByb3V0ZUZpbGVzLnBhZ2U7XG4gICAgICAgIGNvbnN0IHByb3BzUGF0aCA9IHJvdXRlRmlsZXMucHJvcHM7XG4gICAgICAgIGNvbnN0IHJvb3RQYXRoID0gcm91dGVGaWxlcy5yb290O1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgYSBwYWdlIHBhdGggLSBpZiBub3QsIHNraXAgdGhpcyByb3V0ZVxuICAgICAgICBpZiAoIXBhZ2VQYXRoKSB7XG4gICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBObyBwYWdlIGZvdW5kIGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfSwgc2tpcHBpbmdgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgQ29tcG9uZW50cyByZXNvbHZlZCBzdWNjZXNzZnVsbHkgZm9yIHJvdXRlOiAke2luZm8ucm91dGV9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFBhZ2VDb21wb25lbnQgaXMgdmFsaWQsIGNyZWF0aW5nIGhhbmRsZXIgb3B0aW9ucyBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhbmRsZXJPcHRpb25zID0ge1xuICAgICAgICAgIC4uLnVzZXJIYW5kbGVyT3B0aW9ucyxcbiAgICAgICAgICByb3V0ZTogaW5mby5yb3V0ZSxcbiAgICAgICAgICBwYWdlUGF0aCxcbiAgICAgICAgICBwcm9wc1BhdGgsXG4gICAgICAgICAgbG9nZ2VyOiBsb2dnZXIsXG4gICAgICAgICAgbWFuaWZlc3Q6IHNlcnZlck1hbmlmZXN0LFxuICAgICAgICAgIHNlcnZlcixcbiAgICAgICAgICBtb2R1bGVCYXNlVVJMOiBzZXJ2ZXIuY29uZmlnLmJhc2UsXG4gICAgICAgICAgcHJvamVjdFJvb3Q6IF91c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgICAgICBsb2FkZXI6IGxvYWRlcixcbiAgICAgICAgICB2ZXJib3NlOiB2ZXJib3NlLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIExvYWQgYWN0dWFsIGNvbXBvbmVudHMgZmlyc3QgLSB0aGlzIHJlZ2lzdGVycyB0aGVtIGluIHRoZSBtb2R1bGUgZ3JhcGhcbiAgICAgICAgLy8gd2hpY2ggaXMgcmVxdWlyZWQgZm9yIENTUyBjb2xsZWN0aW9uIHRvIHdvcmtcbiAgICAgICAgbGV0IFBhZ2VDb21wb25lbnQ6IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PiA9IFJlYWN0LkZyYWdtZW50O1xuICAgICAgICBsZXQgUm9vdENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+ID0gRGVmYXVsdFJvb3Q7XG4gICAgICAgIGxldCBwYWdlUHJvcHM6IGFueSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgLy8gTG9hZCB0aGUgUm9vdCBjb21wb25lbnRcbiAgICAgICAgaWYgKHJvb3RQYXRoKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3RFeHBvcnROYW1lID0gdXNlckhhbmRsZXJPcHRpb25zLnJvb3RFeHBvcnROYW1lIHx8IFwiUm9vdFwiO1xuICAgICAgICAgICAgY29uc3Qgcm9vdE1vZHVsZSA9IGF3YWl0IGxvYWRlcihyb290UGF0aCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChyb290TW9kdWxlICYmIHJvb3RNb2R1bGVbcm9vdEV4cG9ydE5hbWVdICYmIHR5cGVvZiByb290TW9kdWxlW3Jvb3RFeHBvcnROYW1lXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBSb290Q29tcG9uZW50ID0gcm9vdE1vZHVsZVtyb290RXhwb3J0TmFtZV0gYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+O1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBMb2FkZWQgUm9vdCBjb21wb25lbnQgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX0gZnJvbSAke3Jvb3RQYXRofSMke3Jvb3RFeHBvcnROYW1lfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJvb3RNb2R1bGUgJiYgcm9vdE1vZHVsZVsnZGVmYXVsdCddICYmIHR5cGVvZiByb290TW9kdWxlWydkZWZhdWx0J10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgUm9vdENvbXBvbmVudCA9IHJvb3RNb2R1bGVbJ2RlZmF1bHQnXSBhcyBSZWFjdC5Db21wb25lbnRUeXBlPGFueT47XG4gICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYExvYWRlZCBkZWZhdWx0IGV4cG9ydCBhcyBSb290IGNvbXBvbmVudCBmb3Igcm91dGUgJHtpbmZvLnJvdXRlfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuKGBSb290IGNvbXBvbmVudCBub3QgZm91bmQgaW4gJHtyb290UGF0aH0sIHVzaW5nIFJlYWN0LkZyYWdtZW50YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oYEZhaWxlZCB0byBsb2FkIFJvb3QgY29tcG9uZW50IGZyb20gJHtyb290UGF0aH06ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gTG9hZCB0aGUgcGFnZSBjb21wb25lbnQgKHJlZ2lzdGVycyBpdCBpbiBtb2R1bGUgZ3JhcGggZm9yIENTUyBjb2xsZWN0aW9uKVxuICAgICAgICBpZiAocGFnZVBhdGgpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGFnZUV4cG9ydE5hbWUgPSB1c2VySGFuZGxlck9wdGlvbnMucGFnZUV4cG9ydE5hbWUgfHwgXCJQYWdlXCI7XG4gICAgICAgICAgICBjb25zdCBwYWdlTW9kdWxlID0gYXdhaXQgbG9hZGVyKHBhZ2VQYXRoKTtcbiAgICAgICAgICAgIGlmIChwYWdlTW9kdWxlICYmIHBhZ2VNb2R1bGVbcGFnZUV4cG9ydE5hbWVdICYmIHR5cGVvZiBwYWdlTW9kdWxlW3BhZ2VFeHBvcnROYW1lXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBQYWdlQ29tcG9uZW50ID0gcGFnZU1vZHVsZVtwYWdlRXhwb3J0TmFtZV0gYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+O1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBMb2FkZWQgUGFnZSBjb21wb25lbnQgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX0gZnJvbSAke3BhZ2VQYXRofSMke3BhZ2VFeHBvcnROYW1lfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhZ2VNb2R1bGUgJiYgcGFnZU1vZHVsZVsnZGVmYXVsdCddICYmIHR5cGVvZiBwYWdlTW9kdWxlWydkZWZhdWx0J10gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgUGFnZUNvbXBvbmVudCA9IHBhZ2VNb2R1bGVbJ2RlZmF1bHQnXSBhcyBSZWFjdC5Db21wb25lbnRUeXBlPGFueT47XG4gICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYExvYWRlZCBkZWZhdWx0IGV4cG9ydCBhcyBQYWdlIGNvbXBvbmVudCBmb3Igcm91dGUgJHtpbmZvLnJvdXRlfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhZ2VNb2R1bGUgJiYgdHlwZW9mIHBhZ2VNb2R1bGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgUGFnZUNvbXBvbmVudCA9IHBhZ2VNb2R1bGUgYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+O1xuICAgICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBMb2FkZWQgbW9kdWxlIGFzIFBhZ2UgY29tcG9uZW50IGZvciByb3V0ZSAke2luZm8ucm91dGV9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oYFBhZ2UgY29tcG9uZW50IG5vdCBmb3VuZCBpbiAke3BhZ2VQYXRofSwgdXNpbmcgUmVhY3QuRnJhZ21lbnRgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICBsb2dnZXIud2FybihgRmFpbGVkIHRvIGxvYWQgcGFnZSBjb21wb25lbnQgZnJvbSAke3BhZ2VQYXRofTogJHtlcnJvcn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOT1cgY29sbGVjdCBDU1MgLSBwYWdlIGlzIHJlZ2lzdGVyZWQgaW4gbW9kdWxlIGdyYXBoXG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oYENvbGxlY3RpbmcgQ1NTIGZpbGVzIGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VydmVyRW52ID0gc2VydmVyLmVudmlyb25tZW50c1snc2VydmVyJ107XG4gICAgICAgIGNvbnN0IG1vZHVsZUdyYXBoRm9yQ3NzID0gc2VydmVyRW52Py5tb2R1bGVHcmFwaCA/PyBzZXJ2ZXIubW9kdWxlR3JhcGg7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBjc3NGaWxlc1Jlc3VsdCA9IGF3YWl0IGNvbGxlY3RWaXRlTW9kdWxlR3JhcGhDc3Moe1xuICAgICAgICAgIG1vZHVsZUdyYXBoOiBtb2R1bGVHcmFwaEZvckNzcyxcbiAgICAgICAgICBwYXJlbnRVcmw6IHBhZ2VQYXRoLFxuICAgICAgICAgIGhhbmRsZXJPcHRpb25zOiBoYW5kbGVyT3B0aW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhgQ1NTIGNvbGxlY3Rpb24gY29tcGxldGVkIGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNzc0ZpbGVzUmVzdWx0LnR5cGUgPT09IFwic2tpcFwiKSB7XG4gICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBDU1MgY29sbGVjdGlvbiBza2lwcGVkIGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfSwgY29udGludWluZyB3aXRoIFJTQyByZW5kZXJpbmdgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNzc0ZpbGVzUmVzdWx0LnR5cGUgPT09IFwiZXJyb3JcIikge1xuICAgICAgICAgIHJldHVybiBuZXh0KGNzc0ZpbGVzUmVzdWx0LmVycm9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbGxlY3RlZENzc0ZpbGVzID0gY3NzRmlsZXNSZXN1bHQudHlwZSA9PT0gXCJzdWNjZXNzXCIgPyBjc3NGaWxlc1Jlc3VsdC5jc3NGaWxlcyA6IG5ldyBNYXAoKTtcblxuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKGBDcmVhdGluZyBSU0MgaGFuZGxlciBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvYWQgcHJvcHMgdXNpbmcgdGhlIHJlc29sdmVQYWdlQW5kUHJvcHMgaGVscGVyXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBbY29uZmlndXJlUmVhY3RTZXJ2ZXJdIExvYWRpbmcgcHJvcHMgZm9yIHJvdXRlICR7aW5mby5yb3V0ZX0sIHBhZ2VQYXRoOiAke3BhZ2VQYXRofSwgcHJvcHNQYXRoOiAke3Byb3BzUGF0aH0sIHVybDogJHtpbmZvLnVybH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgY29uc3QgcHJvcHNSZXN1bHQgPSBhd2FpdCByZXNvbHZlUGFnZUFuZFByb3BzKHtcbiAgICAgICAgICAgIHBhZ2VQYXRoLFxuICAgICAgICAgICAgcHJvcHNQYXRoLFxuICAgICAgICAgICAgcGFnZUV4cG9ydE5hbWU6IHVzZXJIYW5kbGVyT3B0aW9ucy5wYWdlRXhwb3J0TmFtZSxcbiAgICAgICAgICAgIHByb3BzRXhwb3J0TmFtZTogdXNlckhhbmRsZXJPcHRpb25zLnByb3BzRXhwb3J0TmFtZSxcbiAgICAgICAgICAgIHVybDogaW5mby51cmwsXG4gICAgICAgICAgICByb3V0ZTogaW5mby5yb3V0ZSxcbiAgICAgICAgICAgIG1vZHVsZUJhc2VVUkw6IHNlcnZlci5jb25maWcuYmFzZSxcbiAgICAgICAgICAgIGxvYWRlcixcbiAgICAgICAgICAgIHZlcmJvc2UsXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICByc2NPdXRwdXRQYXRoOiB1c2VySGFuZGxlck9wdGlvbnMuYnVpbGQ/LnJzY091dHB1dFBhdGggfHwgXCIucnNjXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBbY29uZmlndXJlUmVhY3RTZXJ2ZXJdIFByb3BzIHJlc29sdXRpb24gcmVzdWx0IHR5cGU6ICR7cHJvcHNSZXN1bHQudHlwZX1gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocHJvcHNSZXN1bHQudHlwZSA9PT0gXCJzdWNjZXNzXCIpIHtcbiAgICAgICAgICAgIHBhZ2VQcm9wcyA9IHByb3BzUmVzdWx0LnBhZ2VQcm9wcyB8fCB7fTtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBbY29uZmlndXJlUmVhY3RTZXJ2ZXJdIExvYWRlZCBwcm9wcyBmb3Igcm91dGUgJHtpbmZvLnJvdXRlfTogJHtKU09OLnN0cmluZ2lmeShwYWdlUHJvcHMsIG51bGwsIDIpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocHJvcHNSZXN1bHQudHlwZSA9PT0gXCJza2lwXCIpIHtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBbY29uZmlndXJlUmVhY3RTZXJ2ZXJdIFByb3BzIHJlc29sdXRpb24gc2tpcHBlZCBmb3Igcm91dGUgJHtpbmZvLnJvdXRlfSwgdXNpbmcgZW1wdHkgcHJvcHNgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhZ2VQcm9wcyA9IHt9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICBsb2dnZXIud2FybihgW2NvbmZpZ3VyZVJlYWN0U2VydmVyXSBGYWlsZWQgdG8gbG9hZCBwcm9wcyBmb3Igcm91dGUgJHtpbmZvLnJvdXRlfTogJHtwcm9wc1Jlc3VsdC5lcnJvcn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhZ2VQcm9wcyA9IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgbG9nZ2VyLndhcm4oYFtjb25maWd1cmVSZWFjdFNlcnZlcl0gRXJyb3IgbG9hZGluZyBwcm9wcyBmb3Igcm91dGUgJHtpbmZvLnJvdXRlfTogJHtlcnJvcn1gKTtcbiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci53YXJuKGBbY29uZmlndXJlUmVhY3RTZXJ2ZXJdIEVycm9yIHN0YWNrOiAke2Vycm9yLnN0YWNrfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBDb250aW51ZSB3aXRoIGVtcHR5IHByb3BzIGlmIGxvYWRpbmcgZmFpbHNcbiAgICAgICAgICBwYWdlUHJvcHMgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERFViBNT0RFIE9QVElNSVpBVElPTjogU2tpcCB3b3JrZXIsIHVzZSBkaXJlY3QgcmVuZGVyaW5nIG9uIG1haW4gdGhyZWFkXG4gICAgICAgIC8vIFxuICAgICAgICAvLyBXaHk6IEluIGRldjpyc2MgbW9kZSwgdGhlIG1haW4gdGhyZWFkIGFscmVhZHkgaGFzIHJlYWN0LXNlcnZlciBjb25kaXRpb24gYW5kIFxuICAgICAgICAvLyBsb2FkcyBtb2R1bGVzIHZpYSBWaXRlJ3MgZW52aXJvbm1lbnQgcnVubmVyIHdoaWNoIGhhbmRsZXMgSE1SIGF1dG9tYXRpY2FsbHkuXG4gICAgICAgIC8vIFRoZSB3b3JrZXIgdXNlcyByYXcgaW1wb3J0KCkgd2hpY2ggYnlwYXNzZXMgVml0ZSdzIG1vZHVsZSBncmFwaCBhbmQgSE1SLlxuICAgICAgICAvL1xuICAgICAgICAvLyBCZW5lZml0cyBvZiBkaXJlY3QgcmVuZGVyaW5nIGluIGRldjpcbiAgICAgICAgLy8gLSBQcm9wZXIgSE1SOiBmaWxlIGNoYW5nZXMgYXJlIHBpY2tlZCB1cCBpbW1lZGlhdGVseSB2aWEgVml0ZSdzIG1vZHVsZSBncmFwaFxuICAgICAgICAvLyAtIE5vIG1vZHVsZSBjYWNoaW5nIGlzc3VlczogZW52aXJvbm1lbnQgcnVubmVyIGhhbmRsZXMgY2FjaGUgaW52YWxpZGF0aW9uXG4gICAgICAgIC8vIC0gU2ltcGxlciBkZWJ1Z2dpbmc6IGFsbCBjb2RlIHJ1bnMgaW4gbWFpbiB0aHJlYWRcbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhlIHdvcmtlciBpcyBzdGlsbCB2YWx1YWJsZSBmb3I6XG4gICAgICAgIC8vIC0gUHJvZHVjdGlvbiBidWlsZHMgKGlzb2xhdGlvbiwgY29uc2lzdGVudCBiZWhhdmlvcilcbiAgICAgICAgLy8gLSBGdXR1cmU6IFJ1bm5pbmcgUlNDIGluIGRpZmZlcmVudCBydW50aW1lcyAod29ya2VyZCwgZXRjLilcbiAgICAgICAgLy9cbiAgICAgICAgLy8gVXNlcnMgY2FuIG9wdC1pbiB0byB3b3JrZXIgaW4gZGV2IHZpYSBjb25maWcgaWYgbmVlZGVkIGZvciB0ZXN0aW5nIHByb2R1Y3Rpb24gYmVoYXZpb3IuXG4gICAgICAgIGNvbnN0IHVzZVdvcmtlckluRGV2ID0gX3VzZXJPcHRpb25zLmRldj8udXNlUnNjV29ya2VyID09PSB0cnVlO1xuICAgICAgICBcbiAgICAgICAgaWYgKHVzZVdvcmtlckluRGV2KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBDcmVhdGluZyBSU0Mgd29ya2VyIGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfSAodXNlUnNjV29ya2VyPXRydWUpYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IHdvcmtlclJlc3VsdCA9IGF3YWl0IGNyZWF0ZVdvcmtlcih7XG4gICAgICAgICAgICAgIHByb2plY3RSb290OiBfdXNlck9wdGlvbnMucHJvamVjdFJvb3QgfHwgc2VydmVyLmNvbmZpZy5yb290LFxuICAgICAgICAgICAgICB3b3JrZXJEYXRhOiB7XG4gICAgICAgICAgICAgICAgdXNlck9wdGlvbnM6IHNlcmlhbGl6ZWRPcHRpb25zKF91c2VyT3B0aW9ucywgYXV0b0Rpc2NvdmVyZWRGaWxlcyksXG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRDb25maWc6IHNlcnZlci5jb25maWcsXG4gICAgICAgICAgICAgICAgY29uZmlnRW52OiB7IGNvbW1hbmQ6IFwic2VydmVcIiwgbW9kZTogXCJkZXZlbG9wbWVudFwiIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHZlcmJvc2UsXG4gICAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAod29ya2VyUmVzdWx0LnR5cGUgPT09IFwic3VjY2Vzc1wiKSB7XG4gICAgICAgICAgICAgIHJzY1dvcmtlciA9IHdvcmtlclJlc3VsdC53b3JrZXI7XG4gICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYFJTQyB3b3JrZXIgY3JlYXRlZCBzdWNjZXNzZnVsbHkgZm9yIHJvdXRlOiAke2luZm8ucm91dGV9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLndhcm4oYFJTQyB3b3JrZXIgY3JlYXRpb24gc2tpcHBlZCBmb3Igcm91dGU6ICR7aW5mby5yb3V0ZX06ICR7d29ya2VyUmVzdWx0LnJlYXNvbn1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgICAgICBsb2dnZXIud2FybihgRmFpbGVkIHRvIGNyZWF0ZSBSU0Mgd29ya2VyIGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfTogJHtlcnJvcn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBbZGV2OnJzY10gVXNpbmcgZGlyZWN0IHJlbmRlcmluZyAobm8gd29ya2VyKSBmb3IgcHJvcGVyIEhNUiBzdXBwb3J0YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlIHdvcmtlci1iYXNlZCBSU0Mgc3RyZWFtIGlmIHdvcmtlciBpcyBhdmFpbGFibGUsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gZGlyZWN0IHJlbmRlcmluZ1xuICAgICAgICAvLyBDUklUSUNBTDogRm9yIFJTQyByZXF1ZXN0cywgdXNlIGh0bWxQYXRoOiBcIlwiIGZvciBoZWFkbGVzcyBtb2RlIChubyBIdG1sIHdyYXBwZXIpXG4gICAgICAgIC8vIFRoaXMgcHJldmVudHMgaHlkcmF0aW9uIGVycm9ycyB3aGVyZSA8aHRtbD4gd291bGQgYmUgcmVuZGVyZWQgaW5zaWRlICNyb290IGRpdlxuICAgICAgICBjb25zdCByc2NSZXN1bHQgPSByc2NXb3JrZXIgXG4gICAgICAgICAgPyBjcmVhdGVSc2NTdHJlYW0oe1xuICAgICAgICAgICAgICAuLi5oYW5kbGVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgdXJsOiBpbmZvLnVybCxcbiAgICAgICAgICAgICAgcGFnZVBhdGgsXG4gICAgICAgICAgICAgIHByb3BzUGF0aCxcbiAgICAgICAgICAgICAgcm9vdFBhdGgsICAvLyBQYXNzIHRoZSByb290IHBhdGggZm9yIHdvcmtlciB0byBsb2FkXG4gICAgICAgICAgICAgIGh0bWxQYXRoOiBcIlwiLCAgLy8gRW1wdHkgc3RyaW5nID0gaGVhZGxlc3MgUlNDIChubyBIdG1sIHdyYXBwZXIpXG4gICAgICAgICAgICAgIHJzY1dvcmtlcixcbiAgICAgICAgICAgICAgY3NzRmlsZXM6IGNvbGxlY3RlZENzc0ZpbGVzLFxuICAgICAgICAgICAgICBnbG9iYWxDc3M6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBjcmVhdGVSZW5kZXJUb1BpcGVhYmxlU3RyZWFtSGFuZGxlcih7XG4gICAgICAgICAgICAgIC4uLmhhbmRsZXJPcHRpb25zLFxuICAgICAgICAgICAgICB1cmw6IGluZm8udXJsLFxuICAgICAgICAgICAgICBQYWdlQ29tcG9uZW50OiBQYWdlQ29tcG9uZW50IGFzIGFueSxcbiAgICAgICAgICAgICAgUm9vdENvbXBvbmVudDogUm9vdENvbXBvbmVudCBhcyBhbnksXG4gICAgICAgICAgICAgIEh0bWxDb21wb25lbnQ6IFJlYWN0LkZyYWdtZW50LCAgLy8gSGVhZGxlc3Mgc3RyZWFtIC0gbm8gSHRtbCB3cmFwcGVyXG4gICAgICAgICAgICAgIHBhZ2VQcm9wczogcGFnZVByb3BzLCAgLy8gUGFzcyB0aGUgbG9hZGVkIHByb3BzXG4gICAgICAgICAgICAgIGNzc0ZpbGVzOiBjb2xsZWN0ZWRDc3NGaWxlcyxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgUlNDIGhhbmRsZXIgY3JlYXRlZCBmb3Igcm91dGU6ICR7XG4gICAgICAgICAgICAgIGluZm8ucm91dGVcbiAgICAgICAgICAgIH0sIHJlc3VsdCB0eXBlOiAke3R5cGVvZiByc2NSZXN1bHR9LCBoYXMgcGlwZTogJHt0eXBlb2YgcnNjUmVzdWx0Py5waXBlfSwgaGFzIGFib3J0OiAke3R5cGVvZiByc2NSZXN1bHQ/LmFib3J0fWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJzY1Jlc3VsdCAmJiB0eXBlb2YgcnNjUmVzdWx0LnBpcGUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgU2V0dGluZyB1cCBSU0Mgc3RyZWFtIGZvciByb3V0ZTogJHtpbmZvLnJvdXRlfWApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIHNldCBoZWFkZXJzXG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQveC1jb21wb25lbnQ7IGNoYXJzZXQ9dXRmLThcIik7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gQ1JJVElDQUw6IERpc2FibGUgY2FjaGluZyBpbiBkZXZlbG9wbWVudCBtb2RlXG4gICAgICAgICAgLy8gV2l0aG91dCB0aGlzLCBicm93c2VycyBjYWNoZSBSU0Mgc3RyZWFtcyBhbmQgZG9uJ3Qgc2hvdyB1cGRhdGVzXG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIkNhY2hlLUNvbnRyb2xcIiwgXCJuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZVwiKTtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiUHJhZ21hXCIsIFwibm8tY2FjaGVcIik7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihcIkV4cGlyZXNcIiwgXCIwXCIpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEFkZCBDT1JTIGhlYWRlcnMgZm9yIFJTQyBmaWxlc1xuICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IHJlcS5oZWFkZXJzLm9yaWdpbjtcbiAgICAgICAgICBpZiAob3JpZ2luICYmIChvcmlnaW4uaW5jbHVkZXMoJ2xvY2FsaG9zdCcpIHx8IG9yaWdpbi5pbmNsdWRlcygnMTI3LjAuMC4xJykpKSB7XG4gICAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCIsIG9yaWdpbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5cIiwgXCIqXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kc1wiLCBcIkdFVCwgT1BUSU9OU1wiKTtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyc1wiLCBcIkFjY2VwdCwgQ29udGVudC1UeXBlXCIpO1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoXCJBY2Nlc3MtQ29udHJvbC1NYXgtQWdlXCIsIFwiODY0MDBcIik7XG4gICAgICAgICAgcnNjUmVzdWx0LnBpcGUocmVzKTtcblxuICAgICAgICAgIC8vIFN0b3JlIHRoZSBjb250cm9sbGVyIGZvciBwb3RlbnRpYWwgYWJvcnQgZHVyaW5nIHJlc3RhcnRcbiAgICAgICAgICBhY3RpdmVDb250cm9sbGVycy5zZXQocmVzLCByc2NSZXN1bHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgIGBSU0MgaGFuZGxlciBmYWlsZWQgZm9yIHJvdXRlOiAke1xuICAgICAgICAgICAgICAgIGluZm8ucm91dGVcbiAgICAgICAgICAgICAgfSwgaW52YWxpZCByZXN1bHQ6ICR7dHlwZW9mIHJzY1Jlc3VsdH1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBIYW5kbGUgdGhlIGVycm9yIGNhc2VcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgICByZXMuZW5kKFwiSW50ZXJuYWwgU2VydmVyIEVycm9yXCIpO1xuICAgICAgICB9XG4gICAgICAgIGFjdGl2ZVN0cmVhbXMuYWRkKHJlcyk7XG4gICAgICAgIHJlcy5vbihcImNsb3NlXCIsICgpID0+IHtcbiAgICAgICAgICBhY3RpdmVTdHJlYW1zLmRlbGV0ZShyZXMpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIEFib3J0IHRoZSBSU0Mgc3RyZWFtIHRvIGNsZWFuIHVwIE1lc3NhZ2VQb3J0c1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBhY3RpdmVDb250cm9sbGVycy5nZXQocmVzKTtcbiAgICAgICAgICBpZiAoY29udHJvbGxlciAmJiB0eXBlb2YgY29udHJvbGxlci5hYm9ydCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAvLyBJZ25vcmUgY2xlYW51cCBlcnJvcnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYWN0aXZlQ29udHJvbGxlcnMuZGVsZXRlKHJlcyk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gQ2xlYW4gdXAgd29ya2VyIHdoZW4gcmVxdWVzdCBjb21wbGV0ZXNcbiAgICAgICAgICBjbGVhbnVwV29ya2VyKHJzY1dvcmtlcik7XG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgcGFuaWNFcnJvciA9IGhhbmRsZUVycm9yKHtcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgcGFuaWNUaHJlc2hvbGQ6IGhhbmRsZXJPcHRpb25zLnBhbmljVGhyZXNob2xkLFxuICAgICAgICAgIGNyaXRpY2FsOiBmYWxzZSxcbiAgICAgICAgICBjb250ZXh0OiBcImNvbmZpZ3VyZVJlYWN0U2VydmVyXCIsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocGFuaWNFcnJvciAhPSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQocGFuaWNFcnJvcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgcmVzLnNldEhlYWRlcihcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQveC1jb21wb25lbnQ7IGNoYXJzZXQ9dXRmLThcIik7XG4gICAgICAgIFxuICAgICAgICAvLyBOb3RlOiBXb3JrZXIgY2xlYW51cCBpcyBoYW5kbGVkIGJ5IHRoZSByZXNwb25zZSBjbG9zZSBoYW5kbGVyXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG4iXSwibmFtZXMiOlsiaGFuZGxlck9wdGlvbnMiLCJEZWZhdWx0Um9vdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQmEsTUFBQSxvQkFBQSxHQUNYLFNBQVMscUJBQXNCLENBQUE7QUFBQSxFQUM3QixNQUFBO0FBQUEsRUFDQSxtQkFBQTtBQUFBLEVBQ0EsV0FBYSxFQUFBLFlBQUE7QUFBQSxFQUNiLGNBQUE7QUFBQSxFQUNBO0FBQ0YsQ0FBRyxFQUFBO0FBQ0QsRUFBTSxNQUFBLGFBQUEsdUJBQW9CLEdBQW9CLEVBQUE7QUFDOUMsRUFBTSxNQUFBLGlCQUFBLHVCQUF3QixHQUc1QixFQUFBO0FBQ0YsRUFBQSxJQUFJLFlBQWUsR0FBQSxLQUFBO0FBR25CLEVBQUEsTUFBTSxNQUFTLEdBQUEsTUFBQSxDQUFPLE1BQU8sQ0FBQSxZQUFBLElBQWdCLE9BQU8sTUFBTyxDQUFBLE1BQUE7QUFDM0QsRUFBTSxNQUFBO0FBQUEsSUFDSixJQUFNLEVBQUEsa0JBQUE7QUFBQTtBQUFBLElBRU4sTUFBUSxFQUFBLGFBQUE7QUFBQSxJQUNSLE9BQUE7QUFBQTtBQUFBLElBRUEsR0FBRztBQUFBLEdBQ0QsR0FBQSxZQUFBO0FBRUosRUFBQSxNQUFBLENBQU8sTUFBUyxHQUFBLFdBQUE7QUFBQSxJQUNkLE1BQU8sQ0FBQSxNQUFBO0FBQUEsSUFDUDtBQUFBLEdBQ0Y7QUFJQSxF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.client.d.ts","sourceRoot":"","sources":["../../../plugin/dev-server/plugin.client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.client.d.ts","sourceRoot":"","sources":["../../../plugin/dev-server/plugin.client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAMnD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,YAyJtC,CAAC"}
|