@workflow/builders 5.0.0-beta.43 → 5.0.0-beta.44
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 +1 -1
- package/dist/base-builder.d.ts +15 -1
- package/dist/base-builder.d.ts.map +1 -1
- package/dist/base-builder.js +61 -15
- package/dist/constants.d.ts +2 -2
- package/dist/constants.js +3 -3
- package/dist/fast-discovery.d.ts +1 -1
- package/dist/fast-discovery.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/module-specifier.d.ts +1 -1
- package/dist/module-specifier.js +2 -2
- package/dist/node-module-esbuild-plugin.js +3 -3
- package/dist/optional-otel-api.d.ts +1 -1
- package/dist/optional-otel-api.js +2 -2
- package/dist/optional-typescript.js +2 -2
- package/dist/optional-ws-native.d.ts +1 -1
- package/dist/optional-ws-native.js +2 -2
- package/dist/swc-esbuild-plugin.d.ts +1 -1
- package/dist/swc-esbuild-plugin.js +5 -5
- package/dist/types.d.ts +3 -3
- package/dist/types.js +1 -1
- package/dist/vercel-build-output-api.js +2 -2
- package/dist/write-if-changed.d.ts +20 -0
- package/dist/write-if-changed.d.ts.map +1 -0
- package/dist/write-if-changed.js +44 -0
- package/dist/write-if-changed.test.d.ts +2 -0
- package/dist/write-if-changed.test.d.ts.map +1 -0
- package/dist/write-if-changed.test.js +186 -0
- package/package.json +4 -4
|
@@ -116,7 +116,7 @@ export function createSwcPlugin(options) {
|
|
|
116
116
|
return null;
|
|
117
117
|
}
|
|
118
118
|
// When only sideEffectEntries is set (no entriesToBundle), we only
|
|
119
|
-
// need to override sideEffects for top-level bare imports
|
|
119
|
+
// need to override sideEffects for top-level bare imports, typically
|
|
120
120
|
// from the virtual entry. Skip resolution for transitive imports
|
|
121
121
|
// (dynamic imports, requires, etc.) to avoid unnecessary overhead.
|
|
122
122
|
if (!options.entriesToBundle && args.kind !== 'import-statement') {
|
|
@@ -266,7 +266,7 @@ export function createSwcPlugin(options) {
|
|
|
266
266
|
sideEffects: hasSideEffects || undefined,
|
|
267
267
|
};
|
|
268
268
|
}
|
|
269
|
-
// No entriesToBundle
|
|
269
|
+
// No entriesToBundle, so only override sideEffects when needed.
|
|
270
270
|
// We must return the resolved `path` alongside `sideEffects` because
|
|
271
271
|
// returning only `{ sideEffects: true }` without a path causes esbuild
|
|
272
272
|
// to fall through to its own resolver, which re-reads the package.json
|
|
@@ -323,7 +323,7 @@ export function createSwcPlugin(options) {
|
|
|
323
323
|
// File is outside working directory - use relative() and strip ../ prefixes if needed
|
|
324
324
|
relativeFilepath = relative(normalizedWorkingDir, normalizedPath).replace(/\\/g, '/');
|
|
325
325
|
// Handle files discovered outside the working directory
|
|
326
|
-
// These come back as ../path/to/file, but we want
|
|
326
|
+
// These come back as ../path/to/file, but we want path/to/file
|
|
327
327
|
if (relativeFilepath.startsWith('../')) {
|
|
328
328
|
const aliasedRelativePath = await resolveWorkflowAliasRelativePath(args.path, workingDir);
|
|
329
329
|
if (aliasedRelativePath) {
|
|
@@ -340,7 +340,7 @@ export function createSwcPlugin(options) {
|
|
|
340
340
|
// Final safety check - ensure we never pass an absolute path to SWC
|
|
341
341
|
if (relativeFilepath.includes(':') ||
|
|
342
342
|
relativeFilepath.startsWith('/')) {
|
|
343
|
-
// This should never happen, but if it does, use
|
|
343
|
+
// This should never happen, but if it does, use the filename as a last resort
|
|
344
344
|
console.error(`[ERROR] relativeFilepath is still absolute: ${relativeFilepath}`);
|
|
345
345
|
relativeFilepath = normalizedPath.split('/').pop() || 'unknown.ts';
|
|
346
346
|
}
|
|
@@ -385,4 +385,4 @@ function isProjectLocalFile(filePath, projectRoot) {
|
|
|
385
385
|
}
|
|
386
386
|
return (resolveModuleSpecifier(filePath, projectRoot).moduleSpecifier === undefined);
|
|
387
387
|
}
|
|
388
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3djLWVzYnVpbGQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N3Yy1lc2J1aWxkLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sbUJBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUE4RHZFLE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsY0FBYyxFQUFFLFVBQVU7SUFDMUIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQztJQUMxQixhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFDMUIsY0FBYyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztJQUNuQyxnQkFBZ0IsRUFBRSxDQUFDLGNBQWMsQ0FBQztJQUNsQyxVQUFVLEVBQUU7UUFDVixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07UUFDTixNQUFNO1FBQ04sTUFBTTtRQUNOLE1BQU07UUFDTixLQUFLO1FBQ0wsTUFBTTtRQUNOLE9BQU87UUFDUCxPQUFPO0tBQ1I7SUFDRCxpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLFFBQVEsRUFBRSxJQUFJO0lBQ2QsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ3BCLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQztJQUNwQixLQUFLLEVBQUUsRUFBRTtJQUNULGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLFlBQVksRUFBRSxFQUFFO0NBQ2pCLENBQUM7QUFFRixNQUFNLHdCQUF3QixHQUFHO0lBQy9CLEdBQUcsb0JBQW9CO0lBQ3ZCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGNBQWMsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7Q0FDbkMsQ0FBQztBQUVGLFNBQVMsYUFBYSxDQUFDLElBQVk7SUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBT0QsU0FBUyxnQkFBZ0IsQ0FBQyxRQUFvQjtJQUM1QyxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQzlCLGFBQXdFLEVBQ3hFLEdBQTRCLEVBQzVCLEtBQW9FLEVBQ3BFLEtBQTBCO0lBRTFCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUUzRCxDQUFDO0lBQ0YsS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDcEQsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QixNQUFNLE9BQU8sR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNuQyxJQUNFLFFBQVE7Z0JBQ1IsQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxRQUFRO29CQUNyQyxRQUFRLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDakMsQ0FBQztnQkFDRCxNQUFNLE1BQU0sR0FBRyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUNyRSxNQUFNLFlBQVksR0FBRyxHQUFHLEtBQUssV0FBVyxDQUFDO2dCQUN6QyxNQUFNLGdCQUFnQixHQUFHLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2dCQUNoRSxNQUFNLElBQUksa0JBQWtCLENBQzFCLGFBQWEsTUFBTSxLQUFLLEVBQUUsbUJBQW1CLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxRQUFRLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQzNHO29CQUNFLElBQUksRUFDRixHQUFHLGdCQUFnQixzQ0FBc0M7d0JBQ3pELHFEQUFxRCxZQUFZLGFBQWE7d0JBQzlFLDhFQUE4RTt3QkFDOUUsMkVBQTJFO3dCQUMzRSw0Q0FBNEM7aUJBQy9DLENBQ0YsQ0FBQztZQUNKLENBQUM7WUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUM1QixNQUF3QixFQUN4QixRQUEwQixFQUMxQixPQUFnQyxFQUNoQyxXQUFvQztJQUVwQyx1QkFBdUIsQ0FDckIsUUFBUSxDQUFDLEtBQUssRUFDZCxPQUFPLEVBQ1AsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFFLElBQTJCLENBQUMsTUFBTSxFQUM3QyxNQUFNLENBQ1AsQ0FBQztJQUNGLHVCQUF1QixDQUNyQixRQUFRLENBQUMsU0FBUyxFQUNsQixXQUFXLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFFLElBQStCLENBQUMsVUFBVSxFQUNyRCxVQUFVLENBQ1gsQ0FBQztJQUVGLE1BQU0sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0UsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQXlCO0lBQ3ZELE9BQU87UUFDTCxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLEtBQUssQ0FBQyxLQUFLO1lBQ1QsSUFBSSxzQkFBc0IsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztZQUMzRCxJQUFJLDBCQUEwQixHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO1lBRS9ELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNqQixzQkFBc0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNuQywwQkFBMEIsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUM3QixPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7b0JBQ3RDLE9BQU8sT0FBTyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztvQkFDMUMsT0FBTyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxzREFBc0Q7WUFDdEQsZ0JBQWdCO1lBQ2hCLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FDM0IsbUJBQW1CLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQ2pELENBQUM7WUFDRixNQUFNLFdBQVcsR0FBRyxTQUFTLENBQzNCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUNyRCxDQUFDO1lBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUFFLE9BQWUsRUFBRSxJQUFZLEVBQUUsRUFBRTtnQkFDOUQsSUFBSSxDQUFDO29CQUNILE9BQU8sTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsT0FBTyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDO1lBRUYsdUVBQXVFO1lBQ3ZFLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxHQUFHLENBQ3pDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQzdELENBQUM7WUFFRixLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWE7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBRWhELElBQ0UsQ0FBQyxPQUFPLENBQUMsZUFBZTtvQkFDeEIsMkJBQTJCLENBQUMsSUFBSSxLQUFLLENBQUMsRUFDdEMsQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUVELG1FQUFtRTtnQkFDbkUsc0VBQXNFO2dCQUN0RSxpRUFBaUU7Z0JBQ2pFLG1FQUFtRTtnQkFDbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxrQkFBa0IsRUFBRSxDQUFDO29CQUNqRSxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUVELElBQUksQ0FBQztvQkFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUM1QixNQUFNLGVBQWUsR0FDbkIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUV6RCxJQUFJLFlBQXdDLENBQUM7b0JBQzdDLGtFQUFrRTtvQkFDbEUsK0RBQStEO29CQUMvRCx5REFBeUQ7b0JBQ3pELE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUFDO29CQUUzQyxJQUFJLGVBQWUsRUFBRSxDQUFDO3dCQUNwQixZQUFZLEdBQUcsTUFBTSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDbkUsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLCtEQUErRDt3QkFDL0QsWUFBWSxHQUFHLE1BQU0sZUFBZSxDQUNsQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQ25ELFNBQVMsQ0FDVixDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLDRDQUE0Qzt3QkFFdEUsbURBQW1EO3dCQUNuRCxFQUFFO3dCQUNGLDJEQUEyRDt3QkFDM0QsOERBQThEO3dCQUM5RCw2REFBNkQ7d0JBQzdELDhDQUE4Qzt3QkFDOUMsRUFBRTt3QkFDRiwyREFBMkQ7d0JBQzNELDZEQUE2RDt3QkFDN0QsK0RBQStEO3dCQUMvRCw4REFBOEQ7d0JBQzlELDBEQUEwRDt3QkFDMUQscURBQXFEO3dCQUNyRCxFQUFFO3dCQUNGLDhEQUE4RDt3QkFDOUQsNERBQTREO3dCQUM1RCx3Q0FBd0M7d0JBQ3hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzs0QkFDbEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtnQ0FDbkQsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dDQUMzQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0NBQ2YsVUFBVSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRTs2QkFDcEMsQ0FBQyxDQUFDOzRCQUNILE1BQU0sVUFBVSxHQUNkLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7NEJBQ3ZELE1BQU0sa0JBQWtCLEdBQ3RCLFVBQVU7Z0NBQ1YsQ0FBQyxhQUFhLENBQUMsUUFBUTtnQ0FDdkIsQ0FBQyxhQUFhLENBQUMsSUFBSTtxQ0FDaEIsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7cUNBQ25CLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOzRCQUNoQyxJQUFJLGtCQUFrQixFQUFFLENBQUM7Z0NBQ3ZCLDREQUE0RDtnQ0FDNUQsMkRBQTJEO2dDQUMzRCw4Q0FBOEM7Z0NBQzlDLE9BQU8sSUFBSSxDQUFDOzRCQUNkLENBQUM7aUNBQU0sSUFDTCxPQUFPLENBQUMsZUFBZTtnQ0FDdkIsYUFBYSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQ3JDLENBQUM7Z0NBQ0QsT0FBTztvQ0FDTCxRQUFRLEVBQUUsSUFBSTtvQ0FDZCxJQUFJLEVBQUUsU0FBUztpQ0FDaEIsQ0FBQzs0QkFDSixDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQztvQkFFRCxJQUFJLENBQUMsWUFBWTt3QkFBRSxPQUFPLElBQUksQ0FBQztvQkFFL0IsNkRBQTZEO29CQUM3RCxNQUFNLHNCQUFzQixHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDM0QsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUN0RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQztvQkFDdEQsTUFBTSxtQkFBbUIsR0FDdkIsT0FBTyxDQUFDLG1CQUFtQixJQUFJLFdBQVcsQ0FBQztvQkFFN0MsSUFDRSxPQUFPLENBQUMsZUFBZTt3QkFDdkIsc0JBQXNCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUN4QyxDQUFDO3dCQUNELE9BQU87NEJBQ0wsUUFBUSxFQUFFLElBQUk7NEJBQ2QsSUFBSSxFQUFFLFNBQVM7eUJBQ2hCLENBQUM7b0JBQ0osQ0FBQztvQkFFRCxtRUFBbUU7b0JBQ25FLGlFQUFpRTtvQkFDakUscUVBQXFFO29CQUNyRSxzQ0FBc0M7b0JBQ3RDLE1BQU0sY0FBYyxHQUFHLDJCQUEyQixDQUFDLEdBQUcsQ0FDcEQsc0JBQXNCLENBQ3ZCLENBQUM7b0JBRUYsSUFBSSxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQzVCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQzt3QkFDekIsS0FBSyxNQUFNLGFBQWEsSUFBSSxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7NEJBQ3BELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDOzRCQUUxRCxJQUFJLHNCQUFzQixLQUFLLGVBQWUsRUFBRSxDQUFDO2dDQUMvQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dDQUNwQixNQUFNOzRCQUNSLENBQUM7NEJBRUQsa0RBQWtEOzRCQUNsRCxvREFBb0Q7NEJBQ3BELGdEQUFnRDs0QkFDaEQsSUFBSSxjQUFjLENBQUMsc0JBQXNCLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQ0FDNUQsWUFBWSxHQUFHLElBQUksQ0FBQztnQ0FDcEIsTUFBTTs0QkFDUixDQUFDOzRCQUVELDJEQUEyRDs0QkFDM0QsK0RBQStEOzRCQUMvRCw0REFBNEQ7NEJBQzVELCtEQUErRDs0QkFDL0QsZ0VBQWdFOzRCQUNoRSxJQUNFLE9BQU8sQ0FBQyxxQ0FBcUM7Z0NBQzdDLGtCQUFrQixDQUNoQixzQkFBc0IsRUFDdEIsbUJBQW1CLENBQ3BCO2dDQUNELGNBQWMsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUMsRUFDdkQsQ0FBQztnQ0FDRCxZQUFZLEdBQUcsSUFBSSxDQUFDO2dDQUNwQixNQUFNOzRCQUNSLENBQUM7d0JBQ0gsQ0FBQzt3QkFFRCxJQUFJLFlBQVksRUFBRSxDQUFDOzRCQUNqQixxRUFBcUU7NEJBQ3JFLHFFQUFxRTs0QkFDckUsdUVBQXVFOzRCQUN2RSx1RUFBdUU7NEJBQ3ZFLGlEQUFpRDs0QkFDakQsT0FBTyxjQUFjO2dDQUNuQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0NBQzNDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ1gsQ0FBQzt3QkFFRCxJQUFJLFlBQW9CLENBQUM7d0JBQ3pCLElBQUksa0JBQWtCLEVBQUUsQ0FBQzs0QkFDdkIsd0RBQXdEOzRCQUN4RCw0REFBNEQ7NEJBQzVELDBEQUEwRDs0QkFDMUQsNERBQTREOzRCQUM1RCw2REFBNkQ7NEJBQzdELHlDQUF5Qzs0QkFDekMsSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dDQUN0RCxPQUFPLElBQUksQ0FBQyxDQUFDLHdCQUF3Qjs0QkFDdkMsQ0FBQzs0QkFFRCxZQUFZLEdBQUcsUUFBUSxDQUNyQixPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFDL0IsWUFBWSxDQUNiLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQzs0QkFFdEIsSUFBSSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDaEMsK0RBQStEO2dDQUMvRCwrREFBK0Q7Z0NBQy9ELFlBQVksR0FBRyxZQUFZO3FDQUN4QixPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQztxQ0FDekIsT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7cUNBQ3pCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7NEJBQy9CLENBQUM7d0JBQ0gsQ0FBQzs2QkFBTSxDQUFDOzRCQUNOLFlBQVksR0FBRyxTQUFTLENBQUM7d0JBQzNCLENBQUM7d0JBRUQsT0FBTzs0QkFDTCxRQUFRLEVBQUUsSUFBSTs0QkFDZCxJQUFJLEVBQUUsWUFBWTs0QkFDbEIsV0FBVyxFQUFFLGNBQWMsSUFBSSxTQUFTO3lCQUN6QyxDQUFDO29CQUNKLENBQUM7b0JBRUQsOERBQThEO29CQUM5RCxxRUFBcUU7b0JBQ3JFLHVFQUF1RTtvQkFDdkUsdUVBQXVFO29CQUN2RSxpREFBaUQ7b0JBQ2pELE9BQU8sY0FBYzt3QkFDbkIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO3dCQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNYLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7Z0JBQ2QsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztZQUVILHlDQUF5QztZQUN6QyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDakQseUNBQXlDO2dCQUN6QyxJQUFJLENBQUM7b0JBQ0gsMkNBQTJDO29CQUMzQyxJQUFJLE1BQU0sR0FBeUIsSUFBSSxDQUFDO29CQUN4QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7d0JBQy9CLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ2pCLENBQUM7eUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO3dCQUN0QyxNQUFNLEdBQUcsS0FBSyxDQUFDO29CQUNqQixDQUFDO29CQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ2pELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTTt5QkFDNUIsT0FBTyxDQUFDLHVDQUF1QyxFQUFFLFFBQVEsQ0FBQzt5QkFDMUQsT0FBTyxDQUFDLHVDQUF1QyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUU5RCx5Q0FBeUM7b0JBQ3pDLHVGQUF1RjtvQkFDdkYsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUN0RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQztvQkFDdEQsTUFBTSxtQkFBbUIsR0FDdkIsT0FBTyxDQUFDLG1CQUFtQixJQUFJLFdBQVcsQ0FBQztvQkFDN0Msc0ZBQXNGO29CQUN0RixNQUFNLG9CQUFvQixHQUFHLFVBQVU7eUJBQ3BDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO3lCQUNuQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBRXJELCtFQUErRTtvQkFDL0UsaUZBQWlGO29CQUNqRiwyREFBMkQ7b0JBQzNELE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNuRCxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBRS9DLElBQUksZ0JBQXdCLENBQUM7b0JBQzdCLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDeEMscUVBQXFFO3dCQUNyRSwyRUFBMkU7d0JBQzNFLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQ3pDLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ2hDLENBQUM7b0JBQ0osQ0FBQzt5QkFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FBQzt3QkFDakMsZ0NBQWdDO3dCQUNoQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7b0JBQ3pCLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixzRkFBc0Y7d0JBQ3RGLGdCQUFnQixHQUFHLFFBQVEsQ0FDekIsb0JBQW9CLEVBQ3BCLGNBQWMsQ0FDZixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBRXRCLHdEQUF3RDt3QkFDeEQsb0VBQW9FO3dCQUNwRSxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDOzRCQUN2QyxNQUFNLG1CQUFtQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7NEJBQ2hFLElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQ0FDeEIsZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUM7NEJBQ3pDLENBQUM7aUNBQU0sQ0FBQztnQ0FDTixnQkFBZ0IsR0FBRyxnQkFBZ0I7cUNBQ2hDLEtBQUssQ0FBQyxHQUFHLENBQUM7cUNBQ1YsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO3FDQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7NEJBQ2YsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7b0JBRUQsb0VBQW9FO29CQUNwRSxJQUNFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7d0JBQzlCLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFDaEMsQ0FBQzt3QkFDRCxpRkFBaUY7d0JBQ2pGLE9BQU8sQ0FBQyxLQUFLLENBQ1gsK0NBQStDLGdCQUFnQixFQUFFLENBQ2xFLENBQUM7d0JBQ0YsZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxZQUFZLENBQUM7b0JBQ3JFLENBQUM7b0JBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsR0FDL0MsTUFBTSxpQkFBaUIsQ0FDckIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixPQUFPLENBQUMsSUFBSSxFQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUscURBQXFEO29CQUNoRSxXQUFXLEVBQ1gsbUJBQW1CLENBQ3BCLENBQUM7b0JBRUosSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO3dCQUM5QixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO29CQUNoQyxDQUFDO29CQUVELHFCQUFxQixDQUNuQixPQUFPLENBQUMsZ0JBQWdCLEVBQ3hCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsMEJBQTBCLENBQzNCLENBQUM7b0JBRUYsTUFBTSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDL0IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO3dCQUNsQixRQUFRLEVBQUUsZ0JBQWdCO3dCQUMxQixZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUk7d0JBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0I7d0JBQ3hCLElBQUksRUFBRSxlQUFlO3dCQUNyQixnQkFBZ0I7cUJBQ2pCLENBQUMsQ0FBQztvQkFFSCxPQUFPO3dCQUNMLFFBQVEsRUFBRSxlQUFlO3dCQUN6QixNQUFNO3FCQUNQLENBQUM7Z0JBQ0osQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE1BQU0sWUFBWSxHQUNoQixLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3pELE9BQU8sQ0FBQyxLQUFLLENBQ1gsNEJBQTRCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFDeEMsWUFBWSxDQUNiLENBQUM7b0JBQ0YsT0FBTzt3QkFDTCxNQUFNLEVBQUU7NEJBQ047Z0NBQ0UsSUFBSSxFQUFFLHlCQUF5QixZQUFZLEVBQUU7Z0NBQzdDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTs2QkFDbEQ7eUJBQ0Y7cUJBQ0YsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsV0FBbUI7SUFDL0QsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPLENBQ0wsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQzVFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IHJlbGF0aXZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgeyBXb3JrZmxvd0J1aWxkRXJyb3IgfSBmcm9tICdAd29ya2Zsb3cvZXJyb3JzJztcbmltcG9ydCBlbmhhbmNlZFJlc29sdmVPcmlnIGZyb20gJ2VuaGFuY2VkLXJlc29sdmUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7XG4gIGFwcGx5U3djVHJhbnNmb3JtLFxuICB0eXBlIFdvcmtmbG93TWFuaWZlc3QsXG59IGZyb20gJy4vYXBwbHktc3djLXRyYW5zZm9ybS5qcyc7XG5pbXBvcnQge1xuICBqc1RzUmVnZXgsXG4gIHBhcmVudEhhc0NoaWxkLFxufSBmcm9tICcuL2Rpc2NvdmVyLWVudHJpZXMtZXNidWlsZC1wbHVnaW4uanMnO1xuaW1wb3J0IHsgcmVzb2x2ZU1vZHVsZVNwZWNpZmllciB9IGZyb20gJy4vbW9kdWxlLXNwZWNpZmllci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlV29ya2Zsb3dBbGlhc1JlbGF0aXZlUGF0aCB9IGZyb20gJy4vd29ya2Zsb3ctYWxpYXMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93VHJhbnNmb3JtUmVzdWx0IHtcbiAgcmVhZG9ubHkgbW9kZTogJ3N0ZXAnIHwgJ3dvcmtmbG93JztcbiAgcmVhZG9ubHkgZmlsZW5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWJzb2x1dGVQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICByZWFkb25seSBjb2RlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdvcmtmbG93TWFuaWZlc3Q6IFdvcmtmbG93TWFuaWZlc3Q7XG59XG5cbmV4cG9ydCB0eXBlIFdvcmtmbG93QWZ0ZXJUcmFuc2Zvcm1Ib29rID0gKFxuICByZXN1bHQ6IFdvcmtmbG93VHJhbnNmb3JtUmVzdWx0XG4pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN3Y1BsdWdpbk9wdGlvbnMge1xuICBtb2RlOiAnc3RlcCcgfCAnd29ya2Zsb3cnO1xuICBlbnRyaWVzVG9CdW5kbGU/OiBzdHJpbmdbXTtcbiAgb3V0ZGlyPzogc3RyaW5nO1xuICBwcm9qZWN0Um9vdD86IHN0cmluZztcbiAgbW9kdWxlU3BlY2lmaWVyUm9vdD86IHN0cmluZztcbiAgd29ya2Zsb3dNYW5pZmVzdD86IFdvcmtmbG93TWFuaWZlc3Q7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBvYnNlcnZlciBpbnZva2VkIGFmdGVyIGEgdHJhbnNmb3JtJ3MgbWFuaWZlc3QgZW50cmllcyBoYXZlIGJlZW5cbiAgICogYWNjZXB0ZWQuIEEgZmlsZSBtYXkgYmUgb2JzZXJ2ZWQgbXVsdGlwbGUgdGltZXMgYWNyb3NzIG1vZGVzLCBidW5kbGVzLCBhbmRcbiAgICogd2F0Y2ggcmVidWlsZHMuIFRoZSBvYnNlcnZlciBpcyBhd2FpdGVkLCBjYW5ub3QgcmVwbGFjZSB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4gICAqIGFuZCBhYm9ydHMgdGhlIGJ1aWxkIGlmIGl0IHRocm93cy5cbiAgICovXG4gIG9uQWZ0ZXJUcmFuc2Zvcm0/OiBXb3JrZmxvd0FmdGVyVHJhbnNmb3JtSG9vaztcbiAgLyoqXG4gICAqIFJld3JpdGUgVHlwZVNjcmlwdCBleHRlbnNpb25zICgudHMsIC50c3gsIC5tdHMsIC5jdHMpIHRvIHRoZWlyIEpTXG4gICAqIGVxdWl2YWxlbnRzICguanMsIC5tanMsIC5janMpIGluIGV4dGVybmFsaXplZCBpbXBvcnQgcGF0aHMuXG4gICAqXG4gICAqIEVuYWJsZSB0aGlzIHdoZW4gdGhlIG91dHB1dCBidW5kbGUgaXMgY29uc3VtZWQgZGlyZWN0bHkgYnkgTm9kZSdzIG5hdGl2ZVxuICAgKiBFU00gbG9hZGVyIChlLmcuIHZpdGVzdCksIHdoaWNoIGNhbm5vdCByZXNvbHZlIC50cyBleHRlbnNpb25zLlxuICAgKlxuICAgKiBMZWF2ZSBkaXNhYmxlZCAoZGVmYXVsdCkgd2hlbiBhIGRvd25zdHJlYW0gYnVuZGxlciAod2VicGFjaywgVml0ZSwgZXRjLilcbiAgICogaGFuZGxlcyByZXNvbHV0aW9uIOKAlCB0aG9zZSB0b29scyByZXNvbHZlIC50cyBuYXRpdmVseSBhbmQgcmV3cml0aW5nXG4gICAqIGJyZWFrcyB0aGVtIGJlY2F1c2UgdGhlIC5qcyBmaWxlIGRvZXNuJ3QgZXhpc3Qgb24gZGlzay5cbiAgICovXG4gIHJld3JpdGVUc0V4dGVuc2lvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogQnVuZGxlIHByb2plY3QtbG9jYWwgZmlsZXMgdGhhdCBhcmUgdHJhbnNpdGl2ZWx5IGltcG9ydGVkIGJ5IHN0ZXAgZW50cmllcy5cbiAgICpcbiAgICogS2VlcCB0aGlzIGRpc2FibGVkIHdoZW4gYSBkb3duc3RyZWFtIGJ1bmRsZXIgY29uc3VtZXMgdGhlIGdlbmVyYXRlZCBzdGVwXG4gICAqIGJ1bmRsZSBiZWNhdXNlIHRoYXQgYnVuZGxlciBjYW4gcmVzb2x2ZSB0aGUgZXh0ZXJuYWxpemVkIGxvY2FsIGltcG9ydHMuXG4gICAqIEVuYWJsZSBpdCBmb3IgZGlyZWN0IHJ1bnRpbWUgbG9hZGluZywgd2hlcmUgTm9kZSBpbXBvcnRzIHRoZSBnZW5lcmF0ZWQgc3RlcFxuICAgKiBidW5kbGUgZnJvbSBkaXNrIHdpdGhvdXQgYSBsYXRlciBidW5kbGluZyBwYXNzLlxuICAgKi9cbiAgYnVuZGxlVHJhbnNpdGl2ZUxvY2FsU3RlcERlcGVuZGVuY2llcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBmaWxlIHBhdGhzIG9mIGRpc2NvdmVyZWQgd29ya2Zsb3cvc3RlcC9zZXJkZSBlbnRyaWVzIHdob3NlXG4gICAqIGltcG9ydHMgbXVzdCBiZSB0cmVhdGVkIGFzIHNpZGUtZWZmZWN0ZnVsLlxuICAgKlxuICAgKiBUaGUgU1dDIGNvbXBpbGVyIHRyYW5zZm9ybSBpbmplY3RzIHJlZ2lzdHJhdGlvbiBjYWxscyAod29ya2Zsb3cgSURzLFxuICAgKiBzdGVwIElEcywgY2xhc3Mgc2VyaWFsaXphdGlvbiwgZXRjLikgaW50byB0aGVzZSBmaWxlcy4gV2l0aG91dCB0aGlzXG4gICAqIG92ZXJyaWRlLCBlc2J1aWxkIGhvbm91cnMgYFwic2lkZUVmZmVjdHNcIjogZmFsc2VgIGZyb20gdGhlIHBhY2thZ2Unc1xuICAgKiBgcGFja2FnZS5qc29uYCBhbmQgc2lsZW50bHkgZHJvcHMgYmFyZSBpbXBvcnRzIG9mIHRoZXNlIG1vZHVsZXMuXG4gICAqL1xuICBzaWRlRWZmZWN0RW50cmllcz86IHN0cmluZ1tdO1xufVxuXG5jb25zdCBOT0RFX1JFU09MVkVfT1BUSU9OUyA9IHtcbiAgZGVwZW5kZW5jeVR5cGU6ICdjb21tb25qcycsXG4gIG1vZHVsZXM6IFsnbm9kZV9tb2R1bGVzJ10sXG4gIGV4cG9ydHNGaWVsZHM6IFsnZXhwb3J0cyddLFxuICBpbXBvcnRzRmllbGRzOiBbJ2ltcG9ydHMnXSxcbiAgY29uZGl0aW9uTmFtZXM6IFsnbm9kZScsICdyZXF1aXJlJ10sXG4gIGRlc2NyaXB0aW9uRmlsZXM6IFsncGFja2FnZS5qc29uJ10sXG4gIGV4dGVuc2lvbnM6IFtcbiAgICAnLnRzJyxcbiAgICAnLnRzeCcsXG4gICAgJy5tdHMnLFxuICAgICcuY3RzJyxcbiAgICAnLmNqcycsXG4gICAgJy5tanMnLFxuICAgICcuanMnLFxuICAgICcuanN4JyxcbiAgICAnLmpzb24nLFxuICAgICcubm9kZScsXG4gIF0sXG4gIGVuZm9yY2VFeHRlbnNpb25zOiBmYWxzZSxcbiAgc3ltbGlua3M6IHRydWUsXG4gIG1haW5GaWVsZHM6IFsnbWFpbiddLFxuICBtYWluRmlsZXM6IFsnaW5kZXgnXSxcbiAgcm9vdHM6IFtdLFxuICBmdWxseVNwZWNpZmllZDogZmFsc2UsXG4gIHByZWZlclJlbGF0aXZlOiBmYWxzZSxcbiAgcHJlZmVyQWJzb2x1dGU6IGZhbHNlLFxuICByZXN0cmljdGlvbnM6IFtdLFxufTtcblxuY29uc3QgTk9ERV9FU01fUkVTT0xWRV9PUFRJT05TID0ge1xuICAuLi5OT0RFX1JFU09MVkVfT1BUSU9OUyxcbiAgZGVwZW5kZW5jeVR5cGU6ICdlc20nLFxuICBjb25kaXRpb25OYW1lczogWydub2RlJywgJ2ltcG9ydCddLFxufTtcblxuZnVuY3Rpb24gbm9ybWFsaXplUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5cbnR5cGUgSWRMb2NhdGlvbiA9IHtcbiAgZmlsZVBhdGg6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gZm9ybWF0SWRMb2NhdGlvbihsb2NhdGlvbjogSWRMb2NhdGlvbik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtsb2NhdGlvbi5maWxlUGF0aH0jJHtsb2NhdGlvbi5uYW1lfWA7XG59XG5cbmZ1bmN0aW9uIGFzc2VydFVuaXF1ZU1hbmlmZXN0SWRzKFxuICBlbnRyaWVzQnlGaWxlOiBXb3JrZmxvd01hbmlmZXN0WydzdGVwcyddIHwgV29ya2Zsb3dNYW5pZmVzdFsnd29ya2Zsb3dzJ10sXG4gIGlkczogTWFwPHN0cmluZywgSWRMb2NhdGlvbj4sXG4gIGdldElkOiAoZGF0YTogeyBzdGVwSWQ6IHN0cmluZyB9IHwgeyB3b3JrZmxvd0lkOiBzdHJpbmcgfSkgPT4gc3RyaW5nLFxuICBsYWJlbDogJ3N0ZXAnIHwgJ3dvcmtmbG93J1xuKTogdm9pZCB7XG4gIGNvbnN0IGVudHJpZXNCeUZpbGVMaXN0ID0gT2JqZWN0LmVudHJpZXMoZW50cmllc0J5RmlsZSB8fCB7fSkgYXMgQXJyYXk8XG4gICAgW3N0cmluZywgUmVjb3JkPHN0cmluZywgeyBzdGVwSWQ6IHN0cmluZyB9IHwgeyB3b3JrZmxvd0lkOiBzdHJpbmcgfT5dXG4gID47XG4gIGZvciAoY29uc3QgW2ZpbGVQYXRoLCBlbnRyaWVzXSBvZiBlbnRyaWVzQnlGaWxlTGlzdCkge1xuICAgIGZvciAoY29uc3QgW25hbWUsIGRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKGVudHJpZXMpKSB7XG4gICAgICBjb25zdCBpZCA9IGdldElkKGRhdGEpO1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBpZHMuZ2V0KGlkKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB7IGZpbGVQYXRoLCBuYW1lIH07XG4gICAgICBpZiAoXG4gICAgICAgIGV4aXN0aW5nICYmXG4gICAgICAgIChleGlzdGluZy5maWxlUGF0aCAhPT0gY3VycmVudC5maWxlUGF0aCB8fFxuICAgICAgICAgIGV4aXN0aW5nLm5hbWUgIT09IGN1cnJlbnQubmFtZSlcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpZE5hbWUgPSBsYWJlbCA9PT0gJ3N0ZXAnID8gJ3dvcmtmbG93IHN0ZXAgSUQnIDogJ3dvcmtmbG93IElEJztcbiAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7bGFiZWx9IGZ1bmN0aW9uYDtcbiAgICAgICAgY29uc3QgY2FwaXRhbGl6ZWRMYWJlbCA9IGxhYmVsID09PSAnc3RlcCcgPyAnU3RlcCcgOiAnV29ya2Zsb3cnO1xuICAgICAgICB0aHJvdyBuZXcgV29ya2Zsb3dCdWlsZEVycm9yKFxuICAgICAgICAgIGBEdXBsaWNhdGUgJHtpZE5hbWV9IFwiJHtpZH1cIiBnZW5lcmF0ZWQgZm9yICR7Zm9ybWF0SWRMb2NhdGlvbihleGlzdGluZyl9IGFuZCAke2Zvcm1hdElkTG9jYXRpb24oY3VycmVudCl9LmAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGludDpcbiAgICAgICAgICAgICAgYCR7Y2FwaXRhbGl6ZWRMYWJlbH0gSURzIG11c3QgYmUgdW5pcXVlIGFjcm9zcyBhIGJ1aWxkLiBgICtcbiAgICAgICAgICAgICAgYElmIHlvdSBvd24gb25lIG9mIHRoZSBjb2xsaWRpbmcgZmlsZXMsIHJlbmFtZSB0aGUgJHtmdW5jdGlvbk5hbWV9IG9yIGV4cG9ydCBgICtcbiAgICAgICAgICAgICAgYHRoZSBwYWNrYWdlIGZpbGUgdGhyb3VnaCBhIHVuaXF1ZSBwYWNrYWdlIHN1YnBhdGguIElmIHRoZSBjb2xsaXNpb24gaXMgaW4gYSBgICtcbiAgICAgICAgICAgICAgYHRyYW5zaXRpdmUgZGVwZW5kZW5jeSB5b3UgZG9uJ3QgY29udHJvbCwgZmlsZSBhbiBpc3N1ZSB3aXRoIHRoZSB1cHN0cmVhbSBgICtcbiAgICAgICAgICAgICAgYHBhY2thZ2Ugb3IgcGluIHRvIGEgbm9uLWNvbGxpZGluZyB2ZXJzaW9uLmAsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWRzLnNldChpZCwgY3VycmVudCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlV29ya2Zsb3dNYW5pZmVzdChcbiAgdGFyZ2V0OiBXb3JrZmxvd01hbmlmZXN0LFxuICBpbmNvbWluZzogV29ya2Zsb3dNYW5pZmVzdCxcbiAgc3RlcElkczogTWFwPHN0cmluZywgSWRMb2NhdGlvbj4sXG4gIHdvcmtmbG93SWRzOiBNYXA8c3RyaW5nLCBJZExvY2F0aW9uPlxuKTogdm9pZCB7XG4gIGFzc2VydFVuaXF1ZU1hbmlmZXN0SWRzKFxuICAgIGluY29taW5nLnN0ZXBzLFxuICAgIHN0ZXBJZHMsXG4gICAgKGRhdGEpID0+IChkYXRhIGFzIHsgc3RlcElkOiBzdHJpbmcgfSkuc3RlcElkLFxuICAgICdzdGVwJ1xuICApO1xuICBhc3NlcnRVbmlxdWVNYW5pZmVzdElkcyhcbiAgICBpbmNvbWluZy53b3JrZmxvd3MsXG4gICAgd29ya2Zsb3dJZHMsXG4gICAgKGRhdGEpID0+IChkYXRhIGFzIHsgd29ya2Zsb3dJZDogc3RyaW5nIH0pLndvcmtmbG93SWQsXG4gICAgJ3dvcmtmbG93J1xuICApO1xuXG4gIHRhcmdldC53b3JrZmxvd3MgPSBPYmplY3QuYXNzaWduKHRhcmdldC53b3JrZmxvd3MgfHwge30sIGluY29taW5nLndvcmtmbG93cyk7XG4gIHRhcmdldC5zdGVwcyA9IE9iamVjdC5hc3NpZ24odGFyZ2V0LnN0ZXBzIHx8IHt9LCBpbmNvbWluZy5zdGVwcyk7XG4gIHRhcmdldC5jbGFzc2VzID0gT2JqZWN0LmFzc2lnbih0YXJnZXQuY2xhc3NlcyB8fCB7fSwgaW5jb21pbmcuY2xhc3Nlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTd2NQbHVnaW4ob3B0aW9uczogU3djUGx1Z2luT3B0aW9ucyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3N3Yy13b3JrZmxvdy1wbHVnaW4nLFxuICAgIHNldHVwKGJ1aWxkKSB7XG4gICAgICBsZXQgc3RlcElkc0ZvckN1cnJlbnRCdWlsZCA9IG5ldyBNYXA8c3RyaW5nLCBJZExvY2F0aW9uPigpO1xuICAgICAgbGV0IHdvcmtmbG93SWRzRm9yQ3VycmVudEJ1aWxkID0gbmV3IE1hcDxzdHJpbmcsIElkTG9jYXRpb24+KCk7XG5cbiAgICAgIGJ1aWxkLm9uU3RhcnQoKCkgPT4ge1xuICAgICAgICBzdGVwSWRzRm9yQ3VycmVudEJ1aWxkID0gbmV3IE1hcCgpO1xuICAgICAgICB3b3JrZmxvd0lkc0ZvckN1cnJlbnRCdWlsZCA9IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKG9wdGlvbnMud29ya2Zsb3dNYW5pZmVzdCkge1xuICAgICAgICAgIGRlbGV0ZSBvcHRpb25zLndvcmtmbG93TWFuaWZlc3Quc3RlcHM7XG4gICAgICAgICAgZGVsZXRlIG9wdGlvbnMud29ya2Zsb3dNYW5pZmVzdC53b3JrZmxvd3M7XG4gICAgICAgICAgZGVsZXRlIG9wdGlvbnMud29ya2Zsb3dNYW5pZmVzdC5jbGFzc2VzO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gZXZlcnl0aGluZyBpcyBleHRlcm5hbCB1bmxlc3MgZXhwbGljaXRseSBjb25maWd1cmVkXG4gICAgICAvLyB0byBiZSBidW5kbGVkXG4gICAgICBjb25zdCBjanNSZXNvbHZlciA9IHByb21pc2lmeShcbiAgICAgICAgZW5oYW5jZWRSZXNvbHZlT3JpZy5jcmVhdGUoTk9ERV9SRVNPTFZFX09QVElPTlMpXG4gICAgICApO1xuICAgICAgY29uc3QgZXNtUmVzb2x2ZXIgPSBwcm9taXNpZnkoXG4gICAgICAgIGVuaGFuY2VkUmVzb2x2ZU9yaWcuY3JlYXRlKE5PREVfRVNNX1JFU09MVkVfT1BUSU9OUylcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGVuaGFuY2VkUmVzb2x2ZSA9IGFzeW5jIChjb250ZXh0OiBzdHJpbmcsIHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBlc21SZXNvbHZlcihjb250ZXh0LCBwYXRoKTtcbiAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgIHJldHVybiBjanNSZXNvbHZlcihjb250ZXh0LCBwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgLy8gUHJlLWNvbXB1dGUgdGhlIG5vcm1hbGl6ZWQgc2lkZS1lZmZlY3QgZW50cmllcyBzZXQgZm9yIE8oMSkgbG9va3Vwcy5cbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTaWRlRWZmZWN0RW50cmllcyA9IG5ldyBTZXQoXG4gICAgICAgIG9wdGlvbnMuc2lkZUVmZmVjdEVudHJpZXM/Lm1hcCgoZSkgPT4gZS5yZXBsYWNlKC9cXFxcL2csICcvJykpXG4gICAgICApO1xuXG4gICAgICBidWlsZC5vblJlc29sdmUoeyBmaWx0ZXI6IC8uKi8gfSwgYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgaWYgKGFyZ3MucGx1Z2luRGF0YT8uc2tpcFN3Y1BsdWdpbikgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFvcHRpb25zLmVudHJpZXNUb0J1bmRsZSAmJlxuICAgICAgICAgIG5vcm1hbGl6ZWRTaWRlRWZmZWN0RW50cmllcy5zaXplID09PSAwXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hlbiBvbmx5IHNpZGVFZmZlY3RFbnRyaWVzIGlzIHNldCAobm8gZW50cmllc1RvQnVuZGxlKSwgd2Ugb25seVxuICAgICAgICAvLyBuZWVkIHRvIG92ZXJyaWRlIHNpZGVFZmZlY3RzIGZvciB0b3AtbGV2ZWwgYmFyZSBpbXBvcnRzIOKAlCB0eXBpY2FsbHlcbiAgICAgICAgLy8gZnJvbSB0aGUgdmlydHVhbCBlbnRyeS4gU2tpcCByZXNvbHV0aW9uIGZvciB0cmFuc2l0aXZlIGltcG9ydHNcbiAgICAgICAgLy8gKGR5bmFtaWMgaW1wb3J0cywgcmVxdWlyZXMsIGV0Yy4pIHRvIGF2b2lkIHVubmVjZXNzYXJ5IG92ZXJoZWFkLlxuICAgICAgICBpZiAoIW9wdGlvbnMuZW50cmllc1RvQnVuZGxlICYmIGFyZ3Mua2luZCAhPT0gJ2ltcG9ydC1zdGF0ZW1lbnQnKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHNwZWNpZmllciA9IGFyZ3MucGF0aDtcbiAgICAgICAgICBjb25zdCBzcGVjaWZpZXJJc1BhdGggPVxuICAgICAgICAgICAgc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy4nKSB8fCBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpO1xuXG4gICAgICAgICAgbGV0IHJlc29sdmVkUGF0aDogc3RyaW5nIHwgZmFsc2UgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgLy8gUGF0aC1zdHlsZSBzcGVjaWZpZXJzICguL2ZvbywgLi4vZm9vLCAvYWJzL3BhdGgpIGV4dGVybmFsaXplIGFzXG4gICAgICAgICAgLy8gcmVsYXRpdmUgcGF0aHMgZnJvbSBgb3V0ZGlyYC4gQmFyZSBzcGVjaWZpZXJzIChucG0gcGFja2FnZXMpXG4gICAgICAgICAgLy8gZXh0ZXJuYWxpemUgYXMtaXMgc28gTm9kZSBjYW4gcmVzb2x2ZSB0aGVtIGF0IHJ1bnRpbWUuXG4gICAgICAgICAgY29uc3Qgc2hvdWxkTWFrZVJlbGF0aXZlID0gc3BlY2lmaWVySXNQYXRoO1xuXG4gICAgICAgICAgaWYgKHNwZWNpZmllcklzUGF0aCkge1xuICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gYXdhaXQgZW5oYW5jZWRSZXNvbHZlKGFyZ3MucmVzb2x2ZURpciwgc3BlY2lmaWVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gUmVzb2x2ZSBmcm9tIHByb2plY3Qgcm9vdCBzbyBuZXN0ZWQgZGVwcyBhcmVuJ3QgZXh0ZXJuYWxpemVkXG4gICAgICAgICAgICByZXNvbHZlZFBhdGggPSBhd2FpdCBlbmhhbmNlZFJlc29sdmUoXG4gICAgICAgICAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmFic1dvcmtpbmdEaXIgfHwgcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICAgICAgc3BlY2lmaWVyXG4gICAgICAgICAgICApLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7IC8vIHN3YWxsb3cgc28gZXNidWlsZCBmYWxsYmFjayBiZWxvdyBjYW4gdHJ5XG5cbiAgICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBlc2J1aWxkIGZvciBhbGlhc2VzL3RzY29uZmlnIHBhdGhzLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIElmIHRoZSBzcGVjaWZpZXIgcmVzb2x2ZXMgdG8gYSBwcm9qZWN0LWxvY2FsIGZpbGUgdmlhIGFuXG4gICAgICAgICAgICAvLyBhbGlhcy9wYXRoIG1hcHBpbmcgKGUuZy4gdHNjb25maWcgYHBhdGhzYCwgZXNidWlsZCBgYWxpYXNgLFxuICAgICAgICAgICAgLy8gc2VsZi1yZWZlcmVuY2luZyBwYWNrYWdlIG5hbWVzIGxpa2UgYEBteS1wa2cvbGliL2Zvb2ApLCB3ZVxuICAgICAgICAgICAgLy8gYnVuZGxlIGl0IGlubGluZSByYXRoZXIgdGhhbiBleHRlcm5hbGl6aW5nLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEV4dGVybmFsaXppbmcgc3VjaCBmaWxlcyBpcyB1bnNhZmU6IHdlJ2QgZW1pdCBhIHJlbGF0aXZlXG4gICAgICAgICAgICAvLyBpbXBvcnQgdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBvbiBkaXNrLCBidXQgdGhhdCBzb3VyY2UgY2FuXG4gICAgICAgICAgICAvLyBjb250YWluIGZ1cnRoZXIgYWxpYXMgaW1wb3J0cy4gQXQgcnVudGltZSwgTm9kZSdzIEVTTSBsb2FkZXJcbiAgICAgICAgICAgIC8vIGRvZXNuJ3Qga25vdyBhYm91dCB0c2NvbmZpZyBwYXRocyBvciBidWlsZC10aW1lIGFsaWFzZXMsIHNvXG4gICAgICAgICAgICAvLyB0aG9zZSB0cmFuc2l0aXZlIGltcG9ydHMgdGhyb3cgYEVSUl9NT0RVTEVfTk9UX0ZPVU5EYCAvXG4gICAgICAgICAgICAvLyBgUGFja2FnZSBzdWJwYXRoIC4uLiBpcyBub3QgZGVmaW5lZCBieSBcImV4cG9ydHNcImAuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gQnVuZGxpbmcgaW5saW5lIGVuc3VyZXMgYWxpYXMtYmFzZWQgaW1wb3J0cyBhcmUgcmVzb2x2ZWQgYXRcbiAgICAgICAgICAgIC8vIGJ1aWxkIHRpbWUgKHdoZXJlIHRoZSBhbGlhcyBtYXAgaXMga25vd24pIGFuZCB0aGUgcnVudGltZVxuICAgICAgICAgICAgLy8gbmV2ZXIgc2VlcyBhbiB1bnJlc29sdmFibGUgc3BlY2lmaWVyLlxuICAgICAgICAgICAgaWYgKCFyZXNvbHZlZFBhdGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgZXNidWlsZFJlc3VsdCA9IGF3YWl0IGJ1aWxkLnJlc29sdmUoc3BlY2lmaWVyLCB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZURpcjogYXJncy5yZXNvbHZlRGlyLFxuICAgICAgICAgICAgICAgIGtpbmQ6IGFyZ3Mua2luZCxcbiAgICAgICAgICAgICAgICBwbHVnaW5EYXRhOiB7IHNraXBTd2NQbHVnaW46IHRydWUgfSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNvbnN0IGRpZFJlc29sdmUgPVxuICAgICAgICAgICAgICAgICEhZXNidWlsZFJlc3VsdC5wYXRoICYmICFlc2J1aWxkUmVzdWx0LmVycm9ycy5sZW5ndGg7XG4gICAgICAgICAgICAgIGNvbnN0IGlzUHJvamVjdExvY2FsRmlsZSA9XG4gICAgICAgICAgICAgICAgZGlkUmVzb2x2ZSAmJlxuICAgICAgICAgICAgICAgICFlc2J1aWxkUmVzdWx0LmV4dGVybmFsICYmXG4gICAgICAgICAgICAgICAgIWVzYnVpbGRSZXN1bHQucGF0aFxuICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpO1xuICAgICAgICAgICAgICBpZiAoaXNQcm9qZWN0TG9jYWxGaWxlKSB7XG4gICAgICAgICAgICAgICAgLy8gTGV0IGVzYnVpbGQgYnVuZGxlIHRoaXMgYWxpYXNlZCBwcm9qZWN0LWxvY2FsIGZpbGUgaW5saW5lXG4gICAgICAgICAgICAgICAgLy8gKHJldHVybiBudWxsIHRvIGRlZmVyIHRvIGVzYnVpbGQncyBub3JtYWwgcGlwZWxpbmUpLiBUaGVcbiAgICAgICAgICAgICAgICAvLyBTV0MgYG9uTG9hZGAgaGFuZGxlciB3aWxsIHN0aWxsIHByb2Nlc3MgaXQuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5lbnRyaWVzVG9CdW5kbGUgJiZcbiAgICAgICAgICAgICAgICBlc2J1aWxkUmVzdWx0LnBhdGg/LmVuZHNXaXRoKCcubm9kZScpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBleHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHBhdGg6IHNwZWNpZmllcixcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFyZXNvbHZlZFBhdGgpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgLy8gTm9ybWFsaXplIHRvIGZvcndhcmQgc2xhc2hlcyBmb3IgY3Jvc3MtcGxhdGZvcm0gY29tcGFyaXNvblxuICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSZXNvbHZlZFBhdGggPSBub3JtYWxpemVQYXRoKHJlc29sdmVkUGF0aCk7XG4gICAgICAgICAgY29uc3Qgd29ya2luZ0RpciA9XG4gICAgICAgICAgICBidWlsZC5pbml0aWFsT3B0aW9ucy5hYnNXb3JraW5nRGlyIHx8IHByb2Nlc3MuY3dkKCk7XG4gICAgICAgICAgY29uc3QgcHJvamVjdFJvb3QgPSBvcHRpb25zLnByb2plY3RSb290IHx8IHdvcmtpbmdEaXI7XG4gICAgICAgICAgY29uc3QgbW9kdWxlU3BlY2lmaWVyUm9vdCA9XG4gICAgICAgICAgICBvcHRpb25zLm1vZHVsZVNwZWNpZmllclJvb3QgfHwgcHJvamVjdFJvb3Q7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBvcHRpb25zLmVudHJpZXNUb0J1bmRsZSAmJlxuICAgICAgICAgICAgbm9ybWFsaXplZFJlc29sdmVkUGF0aC5lbmRzV2l0aCgnLm5vZGUnKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXh0ZXJuYWw6IHRydWUsXG4gICAgICAgICAgICAgIHBhdGg6IHNwZWNpZmllcixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBtb2R1bGUgaXMgYSBkaXNjb3ZlcmVkIGVudHJ5IHdob3NlIFNXQy10cmFuc2Zvcm1lZFxuICAgICAgICAgIC8vIGNvZGUgY29udGFpbnMgc2lkZSBlZmZlY3RzICh3b3JrZmxvdy9zdGVwL2NsYXNzIHJlZ2lzdHJhdGlvbikuXG4gICAgICAgICAgLy8gT3ZlcnJpZGUgdGhlIHBhY2thZ2UuanNvbiBcInNpZGVFZmZlY3RzXCI6IGZhbHNlIHNvIGVzYnVpbGQgZG9lcyBub3RcbiAgICAgICAgICAvLyBkcm9wIGJhcmUgaW1wb3J0cyBvZiB0aGVzZSBtb2R1bGVzLlxuICAgICAgICAgIGNvbnN0IGhhc1NpZGVFZmZlY3RzID0gbm9ybWFsaXplZFNpZGVFZmZlY3RFbnRyaWVzLmhhcyhcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRSZXNvbHZlZFBhdGhcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKG9wdGlvbnMuZW50cmllc1RvQnVuZGxlKSB7XG4gICAgICAgICAgICBsZXQgc2hvdWxkQnVuZGxlID0gZmFsc2U7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5VG9CdW5kbGUgb2Ygb3B0aW9ucy5lbnRyaWVzVG9CdW5kbGUpIHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEVudHJ5ID0gZW50cnlUb0J1bmRsZS5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRSZXNvbHZlZFBhdGggPT09IG5vcm1hbGl6ZWRFbnRyeSkge1xuICAgICAgICAgICAgICAgIHNob3VsZEJ1bmRsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBpZiB0aGUgY3VycmVudCBlbnRyeSBpbXBvcnRzIGEgY2hpbGQgdGhhdCBuZWVkc1xuICAgICAgICAgICAgICAvLyB0byBiZSBidW5kbGVkIHRoZW4gaXQgbmVlZHMgdG8gYWxzbyBiZSBidW5kbGVkIHNvXG4gICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGNoaWxkIGNhbiBoYXZlIG91ciB0cmFuc2Zvcm0gYXBwbGllZFxuICAgICAgICAgICAgICBpZiAocGFyZW50SGFzQ2hpbGQobm9ybWFsaXplZFJlc29sdmVkUGF0aCwgbm9ybWFsaXplZEVudHJ5KSkge1xuICAgICAgICAgICAgICAgIHNob3VsZEJ1bmRsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBCdW5kbGUgcHJvamVjdC1sb2NhbCBzb3VyY2UgZmlsZXMgdGhhdCBhcmUgaW1wb3J0ZWQgYnkgYVxuICAgICAgICAgICAgICAvLyBzdGVwL3NlcmRlIGVudHJ5IHNvIGRpcmVjdCBydW50aW1lIGxvYWRlcnMgZG8gbm90IHNlZSByYXcgVFNcbiAgICAgICAgICAgICAgLy8gZXh0ZW5zaW9ubGVzcyBpbXBvcnRzLiBLZWVwIHBhY2thZ2UgZGVwZW5kZW5jaWVzIGV4dGVybmFsXG4gICAgICAgICAgICAgIC8vIHVubGVzcyB0aGV5IGFyZSB0aGVtc2VsdmVzIGluIGVudHJpZXNUb0J1bmRsZSBvciBhcmUgcGFyZW50c1xuICAgICAgICAgICAgICAvLyBvZiBhIGRpc2NvdmVyZWQgd29ya2Zsb3cvc3RlcC9zZXJkZSBmaWxlIHZpYSB0aGUgY2hlY2sgYWJvdmUuXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBvcHRpb25zLmJ1bmRsZVRyYW5zaXRpdmVMb2NhbFN0ZXBEZXBlbmRlbmNpZXMgJiZcbiAgICAgICAgICAgICAgICBpc1Byb2plY3RMb2NhbEZpbGUoXG4gICAgICAgICAgICAgICAgICBub3JtYWxpemVkUmVzb2x2ZWRQYXRoLFxuICAgICAgICAgICAgICAgICAgbW9kdWxlU3BlY2lmaWVyUm9vdFxuICAgICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgICBwYXJlbnRIYXNDaGlsZChub3JtYWxpemVkRW50cnksIG5vcm1hbGl6ZWRSZXNvbHZlZFBhdGgpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHNob3VsZEJ1bmRsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNob3VsZEJ1bmRsZSkge1xuICAgICAgICAgICAgICAvLyBMZXQgZXNidWlsZCBidW5kbGUgdGhpcyBlbnRyeSwgYnV0IG92ZXJyaWRlIHNpZGVFZmZlY3RzIGlmIG5lZWRlZC5cbiAgICAgICAgICAgICAgLy8gV2UgbXVzdCByZXR1cm4gdGhlIHJlc29sdmVkIGBwYXRoYCBhbG9uZ3NpZGUgYHNpZGVFZmZlY3RzYCBiZWNhdXNlXG4gICAgICAgICAgICAgIC8vIHJldHVybmluZyBvbmx5IGB7IHNpZGVFZmZlY3RzOiB0cnVlIH1gIHdpdGhvdXQgYSBwYXRoIGNhdXNlcyBlc2J1aWxkXG4gICAgICAgICAgICAgIC8vIHRvIGZhbGwgdGhyb3VnaCB0byBpdHMgb3duIHJlc29sdmVyLCB3aGljaCByZS1yZWFkcyB0aGUgcGFja2FnZS5qc29uXG4gICAgICAgICAgICAgIC8vIGFuZCBhcHBsaWVzIGBcInNpZGVFZmZlY3RzXCI6IGZhbHNlYCBmcm9tIHRoZXJlLlxuICAgICAgICAgICAgICByZXR1cm4gaGFzU2lkZUVmZmVjdHNcbiAgICAgICAgICAgICAgICA/IHsgcGF0aDogcmVzb2x2ZWRQYXRoLCBzaWRlRWZmZWN0czogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgZXh0ZXJuYWxQYXRoOiBzdHJpbmc7XG4gICAgICAgICAgICBpZiAoc2hvdWxkTWFrZVJlbGF0aXZlKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gdGhlIHJlc29sdmVkIGZpbGUgbGl2ZXMgaW5zaWRlIG5vZGVfbW9kdWxlcywgbGV0XG4gICAgICAgICAgICAgIC8vIGVzYnVpbGQgYnVuZGxlIGl0IHJhdGhlciB0aGFuIGV4dGVybmFsaXppbmcgd2l0aCBhIGRlZXBseVxuICAgICAgICAgICAgICAvLyBuZXN0ZWQgcmVsYXRpdmUgcGF0aC4gRG93bnN0cmVhbSBidW5kbGVycyAoUm9sbHVwL1ZpdGUpXG4gICAgICAgICAgICAgIC8vIGNhbid0IHJld3JpdGUgb3BhcXVlIGBfX3JlcXVpcmUoKWAgY2FsbHMgaW4gQ0pTIHNoaW1zLCBzb1xuICAgICAgICAgICAgICAvLyByZWxhdGl2ZSBwYXRocyBjb21wdXRlZCBmb3IgYG91dGRpcmAgYnJlYWsgb25jZSB0aGUgb3V0cHV0XG4gICAgICAgICAgICAgIC8vIGlzIHJlYnVuZGxlZCB0byBhIGRpZmZlcmVudCBkaXJlY3RvcnkuXG4gICAgICAgICAgICAgIGlmIChub3JtYWxpemVkUmVzb2x2ZWRQYXRoLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIGxldCBlc2J1aWxkIGJ1bmRsZSBpdFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZXh0ZXJuYWxQYXRoID0gcmVsYXRpdmUoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5vdXRkaXIgfHwgcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICAgICAgICByZXNvbHZlZFBhdGhcbiAgICAgICAgICAgICAgKS5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucmV3cml0ZVRzRXh0ZW5zaW9ucykge1xuICAgICAgICAgICAgICAgIC8vIFJld3JpdGUgVHlwZVNjcmlwdCBleHRlbnNpb25zIHRvIHRoZWlyIEpTIGVxdWl2YWxlbnRzIHNvIHRoZVxuICAgICAgICAgICAgICAgIC8vIGV4dGVybmFsaXplZCBpbXBvcnQgaXMgbG9hZGFibGUgYnkgTm9kZSdzIG5hdGl2ZSBFU00gbG9hZGVyLlxuICAgICAgICAgICAgICAgIGV4dGVybmFsUGF0aCA9IGV4dGVybmFsUGF0aFxuICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcLnRzeD8kLywgJy5qcycpXG4gICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFwubXRzJC8sICcubWpzJylcbiAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC5jdHMkLywgJy5janMnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZXh0ZXJuYWxQYXRoID0gc3BlY2lmaWVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBleHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgcGF0aDogZXh0ZXJuYWxQYXRoLFxuICAgICAgICAgICAgICBzaWRlRWZmZWN0czogaGFzU2lkZUVmZmVjdHMgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBObyBlbnRyaWVzVG9CdW5kbGUg4oCUIG9ubHkgb3ZlcnJpZGUgc2lkZUVmZmVjdHMgd2hlbiBuZWVkZWQuXG4gICAgICAgICAgLy8gV2UgbXVzdCByZXR1cm4gdGhlIHJlc29sdmVkIGBwYXRoYCBhbG9uZ3NpZGUgYHNpZGVFZmZlY3RzYCBiZWNhdXNlXG4gICAgICAgICAgLy8gcmV0dXJuaW5nIG9ubHkgYHsgc2lkZUVmZmVjdHM6IHRydWUgfWAgd2l0aG91dCBhIHBhdGggY2F1c2VzIGVzYnVpbGRcbiAgICAgICAgICAvLyB0byBmYWxsIHRocm91Z2ggdG8gaXRzIG93biByZXNvbHZlciwgd2hpY2ggcmUtcmVhZHMgdGhlIHBhY2thZ2UuanNvblxuICAgICAgICAgIC8vIGFuZCBhcHBsaWVzIGBcInNpZGVFZmZlY3RzXCI6IGZhbHNlYCBmcm9tIHRoZXJlLlxuICAgICAgICAgIHJldHVybiBoYXNTaWRlRWZmZWN0c1xuICAgICAgICAgICAgPyB7IHBhdGg6IHJlc29sdmVkUGF0aCwgc2lkZUVmZmVjdHM6IHRydWUgfVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBIYW5kbGUgVHlwZVNjcmlwdCBhbmQgSmF2YVNjcmlwdCBmaWxlc1xuICAgICAgYnVpbGQub25Mb2FkKHsgZmlsdGVyOiBqc1RzUmVnZXggfSwgYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBUeXBlU2NyaXB0IGZpbGVcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIGxvYWRlciBiYXNlZCBvbiB0aGUgb3V0cHV0XG4gICAgICAgICAgbGV0IGxvYWRlcjogJ2pzJyB8ICdqc3gnIHwgJ3RzeCcgPSAnanMnO1xuICAgICAgICAgIGlmIChhcmdzLnBhdGguZW5kc1dpdGgoJy5qc3gnKSkge1xuICAgICAgICAgICAgbG9hZGVyID0gJ2pzeCc7XG4gICAgICAgICAgfSBlbHNlIGlmIChhcmdzLnBhdGguZW5kc1dpdGgoJy50c3gnKSkge1xuICAgICAgICAgICAgbG9hZGVyID0gJ3RzeCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGF3YWl0IHJlYWRGaWxlKGFyZ3MucGF0aCwgJ3V0ZjgnKTtcbiAgICAgICAgICBjb25zdCBub3JtYWxpemVkU291cmNlID0gc291cmNlXG4gICAgICAgICAgICAucmVwbGFjZSgvcmVxdWlyZVxcKFxccyooWydcIl0pc2VydmVyLW9ubHlcXDFcXHMqXFwpL2csICd2b2lkIDAnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL3JlcXVpcmVcXChcXHMqKFsnXCJdKWNsaWVudC1vbmx5XFwxXFxzKlxcKS9nLCAndm9pZCAwJyk7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgcmVsYXRpdmUgcGF0aCBmb3IgU1dDIHBsdWdpblxuICAgICAgICAgIC8vIFRoZSBmaWxlbmFtZSBwYXJhbWV0ZXIgaXMgdXNlZCB0byBnZW5lcmF0ZSB3b3JrZmxvd0lkL3N0ZXBJZCwgc28gaXQgbXVzdCBiZSByZWxhdGl2ZVxuICAgICAgICAgIGNvbnN0IHdvcmtpbmdEaXIgPVxuICAgICAgICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuYWJzV29ya2luZ0RpciB8fCBwcm9jZXNzLmN3ZCgpO1xuICAgICAgICAgIGNvbnN0IHByb2plY3RSb290ID0gb3B0aW9ucy5wcm9qZWN0Um9vdCB8fCB3b3JraW5nRGlyO1xuICAgICAgICAgIGNvbnN0IG1vZHVsZVNwZWNpZmllclJvb3QgPVxuICAgICAgICAgICAgb3B0aW9ucy5tb2R1bGVTcGVjaWZpZXJSb290IHx8IHByb2plY3RSb290O1xuICAgICAgICAgIC8vIE5vcm1hbGl6ZSBwYXRoczogY29udmVydCBiYWNrc2xhc2hlcyB0byBmb3J3YXJkIHNsYXNoZXMgYW5kIHJlbW92ZSB0cmFpbGluZyBzbGFzaGVzXG4gICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFdvcmtpbmdEaXIgPSB3b3JraW5nRGlyXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgICAgICAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGFyZ3MucGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgICAgICAvLyBXaW5kb3dzIGZpeDogQWx3YXlzIGRvIGNhc2UtaW5zZW5zaXRpdmUgcGF0aCBjb21wYXJpc29uIGFzIHRoZSBQUklNQVJZIGxvZ2ljXG4gICAgICAgICAgLy8gdG8gd29yayBhcm91bmQgbm9kZTpwYXRoLnJlbGF0aXZlKCkgbm90IHJlY29nbml6aW5nIHBhdGhzIHdpdGggZGlmZmVyZW50IGRyaXZlXG4gICAgICAgICAgLy8gbGV0dGVyIGNhc2luZyAoZS5nLiwgRDogdnMgZDopIGFzIGJlaW5nIGluIHRoZSBzYW1lIHRyZWVcbiAgICAgICAgICBjb25zdCBsb3dlcldkID0gbm9ybWFsaXplZFdvcmtpbmdEaXIudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBjb25zdCBsb3dlclBhdGggPSBub3JtYWxpemVkUGF0aC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgbGV0IHJlbGF0aXZlRmlsZXBhdGg6IHN0cmluZztcbiAgICAgICAgICBpZiAobG93ZXJQYXRoLnN0YXJ0c1dpdGgoYCR7bG93ZXJXZH0vYCkpIHtcbiAgICAgICAgICAgIC8vIEZpbGUgaXMgdW5kZXIgd29ya2luZyBkaXJlY3RvcnkgLSBtYW51YWxseSBjYWxjdWxhdGUgcmVsYXRpdmUgcGF0aFxuICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHdlIGdldCBhIHJlbGF0aXZlIHBhdGggZXZlbiB3aXRoIGRyaXZlIGxldHRlciBjYXNpbmcgaXNzdWVzXG4gICAgICAgICAgICByZWxhdGl2ZUZpbGVwYXRoID0gbm9ybWFsaXplZFBhdGguc3Vic3RyaW5nKFxuICAgICAgICAgICAgICBub3JtYWxpemVkV29ya2luZ0Rpci5sZW5ndGggKyAxXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAobG93ZXJQYXRoID09PSBsb3dlcldkKSB7XG4gICAgICAgICAgICAvLyBGaWxlIElTIHRoZSB3b3JraW5nIGRpcmVjdG9yeVxuICAgICAgICAgICAgcmVsYXRpdmVGaWxlcGF0aCA9ICcuJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRmlsZSBpcyBvdXRzaWRlIHdvcmtpbmcgZGlyZWN0b3J5IC0gdXNlIHJlbGF0aXZlKCkgYW5kIHN0cmlwIC4uLyBwcmVmaXhlcyBpZiBuZWVkZWRcbiAgICAgICAgICAgIHJlbGF0aXZlRmlsZXBhdGggPSByZWxhdGl2ZShcbiAgICAgICAgICAgICAgbm9ybWFsaXplZFdvcmtpbmdEaXIsXG4gICAgICAgICAgICAgIG5vcm1hbGl6ZWRQYXRoXG4gICAgICAgICAgICApLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICAgICAgICAgICAgLy8gSGFuZGxlIGZpbGVzIGRpc2NvdmVyZWQgb3V0c2lkZSB0aGUgd29ya2luZyBkaXJlY3RvcnlcbiAgICAgICAgICAgIC8vIFRoZXNlIGNvbWUgYmFjayBhcyAuLi9wYXRoL3RvL2ZpbGUsIGJ1dCB3ZSB3YW50IGp1c3QgcGF0aC90by9maWxlXG4gICAgICAgICAgICBpZiAocmVsYXRpdmVGaWxlcGF0aC5zdGFydHNXaXRoKCcuLi8nKSkge1xuICAgICAgICAgICAgICBjb25zdCBhbGlhc2VkUmVsYXRpdmVQYXRoID1cbiAgICAgICAgICAgICAgICBhd2FpdCByZXNvbHZlV29ya2Zsb3dBbGlhc1JlbGF0aXZlUGF0aChhcmdzLnBhdGgsIHdvcmtpbmdEaXIpO1xuICAgICAgICAgICAgICBpZiAoYWxpYXNlZFJlbGF0aXZlUGF0aCkge1xuICAgICAgICAgICAgICAgIHJlbGF0aXZlRmlsZXBhdGggPSBhbGlhc2VkUmVsYXRpdmVQYXRoO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlbGF0aXZlRmlsZXBhdGggPSByZWxhdGl2ZUZpbGVwYXRoXG4gICAgICAgICAgICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAgICAgICAgICAgLmZpbHRlcigocGFydCkgPT4gcGFydCAhPT0gJy4uJylcbiAgICAgICAgICAgICAgICAgIC5qb2luKCcvJyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBGaW5hbCBzYWZldHkgY2hlY2sgLSBlbnN1cmUgd2UgbmV2ZXIgcGFzcyBhbiBhYnNvbHV0ZSBwYXRoIHRvIFNXQ1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlbGF0aXZlRmlsZXBhdGguaW5jbHVkZXMoJzonKSB8fFxuICAgICAgICAgICAgcmVsYXRpdmVGaWxlcGF0aC5zdGFydHNXaXRoKCcvJylcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0IGlmIGl0IGRvZXMsIHVzZSBqdXN0IHRoZSBmaWxlbmFtZSBhcyBsYXN0IHJlc29ydFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYFtFUlJPUl0gcmVsYXRpdmVGaWxlcGF0aCBpcyBzdGlsbCBhYnNvbHV0ZTogJHtyZWxhdGl2ZUZpbGVwYXRofWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZWxhdGl2ZUZpbGVwYXRoID0gbm9ybWFsaXplZFBhdGguc3BsaXQoJy8nKS5wb3AoKSB8fCAndW5rbm93bi50cyc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgeyBjb2RlOiB0cmFuc2Zvcm1lZENvZGUsIHdvcmtmbG93TWFuaWZlc3QgfSA9XG4gICAgICAgICAgICBhd2FpdCBhcHBseVN3Y1RyYW5zZm9ybShcbiAgICAgICAgICAgICAgcmVsYXRpdmVGaWxlcGF0aCxcbiAgICAgICAgICAgICAgbm9ybWFsaXplZFNvdXJjZSxcbiAgICAgICAgICAgICAgb3B0aW9ucy5tb2RlLFxuICAgICAgICAgICAgICBhcmdzLnBhdGgsIC8vIFBhc3MgYWJzb2x1dGUgcGF0aCBmb3IgbW9kdWxlIHNwZWNpZmllciByZXNvbHV0aW9uXG4gICAgICAgICAgICAgIHByb2plY3RSb290LFxuICAgICAgICAgICAgICBtb2R1bGVTcGVjaWZpZXJSb290XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKCFvcHRpb25zLndvcmtmbG93TWFuaWZlc3QpIHtcbiAgICAgICAgICAgIG9wdGlvbnMud29ya2Zsb3dNYW5pZmVzdCA9IHt9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lcmdlV29ya2Zsb3dNYW5pZmVzdChcbiAgICAgICAgICAgIG9wdGlvbnMud29ya2Zsb3dNYW5pZmVzdCxcbiAgICAgICAgICAgIHdvcmtmbG93TWFuaWZlc3QsXG4gICAgICAgICAgICBzdGVwSWRzRm9yQ3VycmVudEJ1aWxkLFxuICAgICAgICAgICAgd29ya2Zsb3dJZHNGb3JDdXJyZW50QnVpbGRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgYXdhaXQgb3B0aW9ucy5vbkFmdGVyVHJhbnNmb3JtPy4oe1xuICAgICAgICAgICAgbW9kZTogb3B0aW9ucy5tb2RlLFxuICAgICAgICAgICAgZmlsZW5hbWU6IHJlbGF0aXZlRmlsZXBhdGgsXG4gICAgICAgICAgICBhYnNvbHV0ZVBhdGg6IGFyZ3MucGF0aCxcbiAgICAgICAgICAgIHNvdXJjZTogbm9ybWFsaXplZFNvdXJjZSxcbiAgICAgICAgICAgIGNvZGU6IHRyYW5zZm9ybWVkQ29kZSxcbiAgICAgICAgICAgIHdvcmtmbG93TWFuaWZlc3QsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGVudHM6IHRyYW5zZm9ybWVkQ29kZSxcbiAgICAgICAgICAgIGxvYWRlcixcbiAgICAgICAgICB9O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9XG4gICAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIGDinYwgU1dDIHRyYW5zZm9ybSBlcnJvciBpbiAke2FyZ3MucGF0aH06YCxcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogYFNXQyB0cmFuc2Zvcm0gZmFpbGVkOiAke2Vycm9yTWVzc2FnZX1gLFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiB7IGZpbGU6IGFyZ3MucGF0aCwgbGluZTogMCwgY29sdW1uOiAwIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzUHJvamVjdExvY2FsRmlsZShmaWxlUGF0aDogc3RyaW5nLCBwcm9qZWN0Um9vdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChub3JtYWxpemVQYXRoKGZpbGVQYXRoKS5pbmNsdWRlcygnL25vZGVfbW9kdWxlcy8nKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihmaWxlUGF0aCwgcHJvamVjdFJvb3QpLm1vZHVsZVNwZWNpZmllciA9PT0gdW5kZWZpbmVkXG4gICk7XG59XG4iXX0=
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3djLWVzYnVpbGQtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N3Yy1lc2J1aWxkLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sbUJBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUE4RHZFLE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsY0FBYyxFQUFFLFVBQVU7SUFDMUIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQztJQUMxQixhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUM7SUFDMUIsY0FBYyxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztJQUNuQyxnQkFBZ0IsRUFBRSxDQUFDLGNBQWMsQ0FBQztJQUNsQyxVQUFVLEVBQUU7UUFDVixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07UUFDTixNQUFNO1FBQ04sTUFBTTtRQUNOLE1BQU07UUFDTixLQUFLO1FBQ0wsTUFBTTtRQUNOLE9BQU87UUFDUCxPQUFPO0tBQ1I7SUFDRCxpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLFFBQVEsRUFBRSxJQUFJO0lBQ2Qs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bEQ7eUJBQ0Y7cUJBQ0YsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsV0FBbUI7SUFDL0QsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUN2RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxPQUFPLENBQ0wsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQzVFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IHJlbGF0aXZlIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgeyBXb3JrZmxvd0J1aWxkRXJyb3IgfSBmcm9tICdAd29ya2Zsb3cvZXJyb3JzJztcbmltcG9ydCBlbmhhbmNlZFJlc29sdmVPcmlnIGZyb20gJ2VuaGFuY2VkLXJlc29sdmUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7XG4gIGFwcGx5U3djVHJhbnNmb3JtLFxuICB0eXBlIFdvcmtmbG93TWFuaWZlc3QsXG59IGZyb20gJy4vYXBwbHktc3djLXRyYW5zZm9ybS5qcyc7XG5pbXBvcnQge1xuICBqc1RzUmVnZXgsXG4gIHBhcmVudEhhc0NoaWxkLFxufSBmcm9tICcuL2Rpc2NvdmVyLWVudHJpZXMtZXNidWlsZC1wbHVnaW4uanMnO1xuaW1wb3J0IHsgcmVzb2x2ZU1vZHVsZVNwZWNpZmllciB9IGZyb20gJy4vbW9kdWxlLXNwZWNpZmllci5qcyc7XG5pbXBvcnQgeyByZXNvbHZlV29ya2Zsb3dBbGlhc1JlbGF0aXZlUGF0aCB9IGZyb20gJy4vd29ya2Zsb3ctYWxpYXMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93VHJhbnNmb3JtUmVzdWx0IHtcbiAgcmVhZG9ubHkgbW9kZTogJ3N0ZXAnIHwgJ3dvcmtmbG93JztcbiAgcmVhZG9ubHkgZmlsZW5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYWJzb2x1dGVQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICByZWFkb25seSBjb2RlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdvcmtmbG93TWFuaWZlc3Q6IFdvcmtmbG93TWFuaWZlc3Q7XG59XG5cbmV4cG9ydCB0eXBlIFdvcmtmbG93QWZ0ZXJUcmFuc2Zvcm1Ib29rID0gKFxuICByZXN1bHQ6IFdvcmtmbG93VHJhbnNmb3JtUmVzdWx0XG4pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFN3Y1BsdWdpbk9wdGlvbnMge1xuICBtb2RlOiAnc3RlcCcgfCAnd29ya2Zsb3cnO1xuICBlbnRyaWVzVG9CdW5kbGU/OiBzdHJpbmdbXTtcbiAgb3V0ZGlyPzogc3RyaW5nO1xuICBwcm9qZWN0Um9vdD86IHN0cmluZztcbiAgbW9kdWxlU3BlY2lmaWVyUm9vdD86IHN0cmluZztcbiAgd29ya2Zsb3dNYW5pZmVzdD86IFdvcmtmbG93TWFuaWZlc3Q7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBvYnNlcnZlciBpbnZva2VkIGFmdGVyIGEgdHJhbnNmb3JtJ3MgbWFuaWZlc3QgZW50cmllcyBoYXZlIGJlZW5cbiAgICogYWNjZXB0ZWQuIEEgZmlsZSBtYXkgYmUgb2JzZXJ2ZWQgbXVsdGlwbGUgdGltZXMgYWNyb3NzIG1vZGVzLCBidW5kbGVzLCBhbmRcbiAgICogd2F0Y2ggcmVidWlsZHMuIFRoZSBvYnNlcnZlciBpcyBhd2FpdGVkLCBjYW5ub3QgcmVwbGFjZSB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4gICAqIGFuZCBhYm9ydHMgdGhlIGJ1aWxkIGlmIGl0IHRocm93cy5cbiAgICovXG4gIG9uQWZ0ZXJUcmFuc2Zvcm0/OiBXb3JrZmxvd0FmdGVyVHJhbnNmb3JtSG9vaztcbiAgLyoqXG4gICAqIFJld3JpdGUgVHlwZVNjcmlwdCBleHRlbnNpb25zICgudHMsIC50c3gsIC5tdHMsIC5jdHMpIHRvIHRoZWlyIEpTXG4gICAqIGVxdWl2YWxlbnRzICguanMsIC5tanMsIC5janMpIGluIGV4dGVybmFsaXplZCBpbXBvcnQgcGF0aHMuXG4gICAqXG4gICAqIEVuYWJsZSB0aGlzIHdoZW4gdGhlIG91dHB1dCBidW5kbGUgaXMgY29uc3VtZWQgZGlyZWN0bHkgYnkgTm9kZSdzIG5hdGl2ZVxuICAgKiBFU00gbG9hZGVyIChlLmcuIHZpdGVzdCksIHdoaWNoIGNhbm5vdCByZXNvbHZlIC50cyBleHRlbnNpb25zLlxuICAgKlxuICAgKiBMZWF2ZSBkaXNhYmxlZCAoZGVmYXVsdCkgd2hlbiBhIGRvd25zdHJlYW0gYnVuZGxlciAod2VicGFjaywgVml0ZSwgZXRjLilcbiAgICogaGFuZGxlcyByZXNvbHV0aW9uOiB0aG9zZSB0b29scyByZXNvbHZlIC50cyBuYXRpdmVseSBhbmQgcmV3cml0aW5nXG4gICAqIGJyZWFrcyB0aGVtIGJlY2F1c2UgdGhlIC5qcyBmaWxlIGRvZXNuJ3QgZXhpc3Qgb24gZGlzay5cbiAgICovXG4gIHJld3JpdGVUc0V4dGVuc2lvbnM/OiBib29sZWFuO1xuICAvKipcbiAgICogQnVuZGxlIHByb2plY3QtbG9jYWwgZmlsZXMgdGhhdCBhcmUgdHJhbnNpdGl2ZWx5IGltcG9ydGVkIGJ5IHN0ZXAgZW50cmllcy5cbiAgICpcbiAgICogS2VlcCB0aGlzIGRpc2FibGVkIHdoZW4gYSBkb3duc3RyZWFtIGJ1bmRsZXIgY29uc3VtZXMgdGhlIGdlbmVyYXRlZCBzdGVwXG4gICAqIGJ1bmRsZSBiZWNhdXNlIHRoYXQgYnVuZGxlciBjYW4gcmVzb2x2ZSB0aGUgZXh0ZXJuYWxpemVkIGxvY2FsIGltcG9ydHMuXG4gICAqIEVuYWJsZSBpdCBmb3IgZGlyZWN0IHJ1bnRpbWUgbG9hZGluZywgd2hlcmUgTm9kZSBpbXBvcnRzIHRoZSBnZW5lcmF0ZWQgc3RlcFxuICAgKiBidW5kbGUgZnJvbSBkaXNrIHdpdGhvdXQgYSBsYXRlciBidW5kbGluZyBwYXNzLlxuICAgKi9cbiAgYnVuZGxlVHJhbnNpdGl2ZUxvY2FsU3RlcERlcGVuZGVuY2llcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBYnNvbHV0ZSBmaWxlIHBhdGhzIG9mIGRpc2NvdmVyZWQgd29ya2Zsb3cvc3RlcC9zZXJkZSBlbnRyaWVzIHdob3NlXG4gICAqIGltcG9ydHMgbXVzdCBiZSB0cmVhdGVkIGFzIHNpZGUtZWZmZWN0ZnVsLlxuICAgKlxuICAgKiBUaGUgU1dDIGNvbXBpbGVyIHRyYW5zZm9ybSBpbmplY3RzIHJlZ2lzdHJhdGlvbiBjYWxscyAod29ya2Zsb3cgSURzLFxuICAgKiBzdGVwIElEcywgY2xhc3Mgc2VyaWFsaXphdGlvbiwgZXRjLikgaW50byB0aGVzZSBmaWxlcy4gV2l0aG91dCB0aGlzXG4gICAqIG92ZXJyaWRlLCBlc2J1aWxkIGhvbm91cnMgYFwic2lkZUVmZmVjdHNcIjogZmFsc2VgIGZyb20gdGhlIHBhY2thZ2Unc1xuICAgKiBgcGFja2FnZS5qc29uYCBhbmQgc2lsZW50bHkgZHJvcHMgYmFyZSBpbXBvcnRzIG9mIHRoZXNlIG1vZHVsZXMuXG4gICAqL1xuICBzaWRlRWZmZWN0RW50cmllcz86IHN0cmluZ1tdO1xufVxuXG5jb25zdCBOT0RFX1JFU09MVkVfT1BUSU9OUyA9IHtcbiAgZGVwZW5kZW5jeVR5cGU6ICdjb21tb25qcycsXG4gIG1vZHVsZXM6IFsnbm9kZV9tb2R1bGVzJ10sXG4gIGV4cG9ydHNGaWVsZHM6IFsnZXhwb3J0cyddLFxuICBpbXBvcnRzRmllbGRzOiBbJ2ltcG9ydHMnXSxcbiAgY29uZGl0aW9uTmFtZXM6IFsnbm9kZScsICdyZXF1aXJlJ10sXG4gIGRlc2NyaXB0aW9uRmlsZXM6IFsncGFja2FnZS5qc29uJ10sXG4gIGV4dGVuc2lvbnM6IFtcbiAgICAnLnRzJyxcbiAgICAnLnRzeCcsXG4gICAgJy5tdHMnLFxuICAgICcuY3RzJyxcbiAgICAnLmNqcycsXG4gICAgJy5tanMnLFxuICAgICcuanMnLFxuICAgICcuanN4JyxcbiAgICAnLmpzb24nLFxuICAgICcubm9kZScsXG4gIF0sXG4gIGVuZm9yY2VFeHRlbnNpb25zOiBmYWxzZSxcbiAgc3ltbGlua3M6IHRydWUsXG4gIG1haW5GaWVsZHM6IFsnbWFpbiddLFxuICBtYWluRmlsZXM6IFsnaW5kZXgnXSxcbiAgcm9vdHM6IFtdLFxuICBmdWxseVNwZWNpZmllZDogZmFsc2UsXG4gIHByZWZlclJlbGF0aXZlOiBmYWxzZSxcbiAgcHJlZmVyQWJzb2x1dGU6IGZhbHNlLFxuICByZXN0cmljdGlvbnM6IFtdLFxufTtcblxuY29uc3QgTk9ERV9FU01fUkVTT0xWRV9PUFRJT05TID0ge1xuICAuLi5OT0RFX1JFU09MVkVfT1BUSU9OUyxcbiAgZGVwZW5kZW5jeVR5cGU6ICdlc20nLFxuICBjb25kaXRpb25OYW1lczogWydub2RlJywgJ2ltcG9ydCddLFxufTtcblxuZnVuY3Rpb24gbm9ybWFsaXplUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5cbnR5cGUgSWRMb2NhdGlvbiA9IHtcbiAgZmlsZVBhdGg6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufTtcblxuZnVuY3Rpb24gZm9ybWF0SWRMb2NhdGlvbihsb2NhdGlvbjogSWRMb2NhdGlvbik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtsb2NhdGlvbi5maWxlUGF0aH0jJHtsb2NhdGlvbi5uYW1lfWA7XG59XG5cbmZ1bmN0aW9uIGFzc2VydFVuaXF1ZU1hbmlmZXN0SWRzKFxuICBlbnRyaWVzQnlGaWxlOiBXb3JrZmxvd01hbmlmZXN0WydzdGVwcyddIHwgV29ya2Zsb3dNYW5pZmVzdFsnd29ya2Zsb3dzJ10sXG4gIGlkczogTWFwPHN0cmluZywgSWRMb2NhdGlvbj4sXG4gIGdldElkOiAoZGF0YTogeyBzdGVwSWQ6IHN0cmluZyB9IHwgeyB3b3JrZmxvd0lkOiBzdHJpbmcgfSkgPT4gc3RyaW5nLFxuICBsYWJlbDogJ3N0ZXAnIHwgJ3dvcmtmbG93J1xuKTogdm9pZCB7XG4gIGNvbnN0IGVudHJpZXNCeUZpbGVMaXN0ID0gT2JqZWN0LmVudHJpZXMoZW50cmllc0J5RmlsZSB8fCB7fSkgYXMgQXJyYXk8XG4gICAgW3N0cmluZywgUmVjb3JkPHN0cmluZywgeyBzdGVwSWQ6IHN0cmluZyB9IHwgeyB3b3JrZmxvd0lkOiBzdHJpbmcgfT5dXG4gID47XG4gIGZvciAoY29uc3QgW2ZpbGVQYXRoLCBlbnRyaWVzXSBvZiBlbnRyaWVzQnlGaWxlTGlzdCkge1xuICAgIGZvciAoY29uc3QgW25hbWUsIGRhdGFdIG9mIE9iamVjdC5lbnRyaWVzKGVudHJpZXMpKSB7XG4gICAgICBjb25zdCBpZCA9IGdldElkKGRhdGEpO1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBpZHMuZ2V0KGlkKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB7IGZpbGVQYXRoLCBuYW1lIH07XG4gICAgICBpZiAoXG4gICAgICAgIGV4aXN0aW5nICYmXG4gICAgICAgIChleGlzdGluZy5maWxlUGF0aCAhPT0gY3VycmVudC5maWxlUGF0aCB8fFxuICAgICAgICAgIGV4aXN0aW5nLm5hbWUgIT09IGN1cnJlbnQubmFtZSlcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpZE5hbWUgPSBsYWJlbCA9PT0gJ3N0ZXAnID8gJ3dvcmtmbG93IHN0ZXAgSUQnIDogJ3dvcmtmbG93IElEJztcbiAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7bGFiZWx9IGZ1bmN0aW9uYDtcbiAgICAgICAgY29uc3QgY2FwaXRhbGl6ZWRMYWJlbCA9IGxhYmVsID09PSAnc3RlcCcgPyAnU3RlcCcgOiAnV29ya2Zsb3cnO1xuICAgICAgICB0aHJvdyBuZXcgV29ya2Zsb3dCdWlsZEVycm9yKFxuICAgICAgICAgIGBEdXBsaWNhdGUgJHtpZE5hbWV9IFwiJHtpZH1cIiBnZW5lcmF0ZWQgZm9yICR7Zm9ybWF0SWRMb2NhdGlvbihleGlzdGluZyl9IGFuZCAke2Zvcm1hdElkTG9jYXRpb24oY3VycmVudCl9LmAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGludDpcbiAgICAgICAgICAgICAgYCR7Y2FwaXRhbGl6ZWRMYWJlbH0gSURzIG11c3QgYmUgdW5pcXVlIGFjcm9zcyBhIGJ1aWxkLiBgICtcbiAgICAgICAgICAgICAgYElmIHlvdSBvd24gb25lIG9mIHRoZSBjb2xsaWRpbmcgZmlsZXMsIHJlbmFtZSB0aGUgJHtmdW5jdGlvbk5hbWV9IG9yIGV4cG9ydCBgICtcbiAgICAgICAgICAgICAgYHRoZSBwYWNrYWdlIGZpbGUgdGhyb3VnaCBhIHVuaXF1ZSBwYWNrYWdlIHN1YnBhdGguIElmIHRoZSBjb2xsaXNpb24gaXMgaW4gYSBgICtcbiAgICAgICAgICAgICAgYHRyYW5zaXRpdmUgZGVwZW5kZW5jeSB5b3UgZG9uJ3QgY29udHJvbCwgZmlsZSBhbiBpc3N1ZSB3aXRoIHRoZSB1cHN0cmVhbSBgICtcbiAgICAgICAgICAgICAgYHBhY2thZ2Ugb3IgcGluIHRvIGEgbm9uLWNvbGxpZGluZyB2ZXJzaW9uLmAsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWRzLnNldChpZCwgY3VycmVudCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlV29ya2Zsb3dNYW5pZmVzdChcbiAgdGFyZ2V0OiBXb3JrZmxvd01hbmlmZXN0LFxuICBpbmNvbWluZzogV29ya2Zsb3dNYW5pZmVzdCxcbiAgc3RlcElkczogTWFwPHN0cmluZywgSWRMb2NhdGlvbj4sXG4gIHdvcmtmbG93SWRzOiBNYXA8c3RyaW5nLCBJZExvY2F0aW9uPlxuKTogdm9pZCB7XG4gIGFzc2VydFVuaXF1ZU1hbmlmZXN0SWRzKFxuICAgIGluY29taW5nLnN0ZXBzLFxuICAgIHN0ZXBJZHMsXG4gICAgKGRhdGEpID0+IChkYXRhIGFzIHsgc3RlcElkOiBzdHJpbmcgfSkuc3RlcElkLFxuICAgICdzdGVwJ1xuICApO1xuICBhc3NlcnRVbmlxdWVNYW5pZmVzdElkcyhcbiAgICBpbmNvbWluZy53b3JrZmxvd3MsXG4gICAgd29ya2Zsb3dJZHMsXG4gICAgKGRhdGEpID0+IChkYXRhIGFzIHsgd29ya2Zsb3dJZDogc3RyaW5nIH0pLndvcmtmbG93SWQsXG4gICAgJ3dvcmtmbG93J1xuICApO1xuXG4gIHRhcmdldC53b3JrZmxvd3MgPSBPYmplY3QuYXNzaWduKHRhcmdldC53b3JrZmxvd3MgfHwge30sIGluY29taW5nLndvcmtmbG93cyk7XG4gIHRhcmdldC5zdGVwcyA9IE9iamVjdC5hc3NpZ24odGFyZ2V0LnN0ZXBzIHx8IHt9LCBpbmNvbWluZy5zdGVwcyk7XG4gIHRhcmdldC5jbGFzc2VzID0gT2JqZWN0LmFzc2lnbih0YXJnZXQuY2xhc3NlcyB8fCB7fSwgaW5jb21pbmcuY2xhc3Nlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTd2NQbHVnaW4ob3B0aW9uczogU3djUGx1Z2luT3B0aW9ucyk6IFBsdWdpbiB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3N3Yy13b3JrZmxvdy1wbHVnaW4nLFxuICAgIHNldHVwKGJ1aWxkKSB7XG4gICAgICBsZXQgc3RlcElkc0ZvckN1cnJlbnRCdWlsZCA9IG5ldyBNYXA8c3RyaW5nLCBJZExvY2F0aW9uPigpO1xuICAgICAgbGV0IHdvcmtmbG93SWRzRm9yQ3VycmVudEJ1aWxkID0gbmV3IE1hcDxzdHJpbmcsIElkTG9jYXRpb24+KCk7XG5cbiAgICAgIGJ1aWxkLm9uU3RhcnQoKCkgPT4ge1xuICAgICAgICBzdGVwSWRzRm9yQ3VycmVudEJ1aWxkID0gbmV3IE1hcCgpO1xuICAgICAgICB3b3JrZmxvd0lkc0ZvckN1cnJlbnRCdWlsZCA9IG5ldyBNYXAoKTtcbiAgICAgICAgaWYgKG9wdGlvbnMud29ya2Zsb3dNYW5pZmVzdCkge1xuICAgICAgICAgIGRlbGV0ZSBvcHRpb25zLndvcmtmbG93TWFuaWZlc3Quc3RlcHM7XG4gICAgICAgICAgZGVsZXRlIG9wdGlvbnMud29ya2Zsb3dNYW5pZmVzdC53b3JrZmxvd3M7XG4gICAgICAgICAgZGVsZXRlIG9wdGlvbnMud29ya2Zsb3dNYW5pZmVzdC5jbGFzc2VzO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gZXZlcnl0aGluZyBpcyBleHRlcm5hbCB1bmxlc3MgZXhwbGljaXRseSBjb25maWd1cmVkXG4gICAgICAvLyB0byBiZSBidW5kbGVkXG4gICAgICBjb25zdCBjanNSZXNvbHZlciA9IHByb21pc2lmeShcbiAgICAgICAgZW5oYW5jZWRSZXNvbHZlT3JpZy5jcmVhdGUoTk9ERV9SRVNPTFZFX09QVElPTlMpXG4gICAgICApO1xuICAgICAgY29uc3QgZXNtUmVzb2x2ZXIgPSBwcm9taXNpZnkoXG4gICAgICAgIGVuaGFuY2VkUmVzb2x2ZU9yaWcuY3JlYXRlKE5PREVfRVNNX1JFU09MVkVfT1BUSU9OUylcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGVuaGFuY2VkUmVzb2x2ZSA9IGFzeW5jIChjb250ZXh0OiBzdHJpbmcsIHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBlc21SZXNvbHZlcihjb250ZXh0LCBwYXRoKTtcbiAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgIHJldHVybiBjanNSZXNvbHZlcihjb250ZXh0LCBwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgLy8gUHJlLWNvbXB1dGUgdGhlIG5vcm1hbGl6ZWQgc2lkZS1lZmZlY3QgZW50cmllcyBzZXQgZm9yIE8oMSkgbG9va3Vwcy5cbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTaWRlRWZmZWN0RW50cmllcyA9IG5ldyBTZXQoXG4gICAgICAgIG9wdGlvbnMuc2lkZUVmZmVjdEVudHJpZXM/Lm1hcCgoZSkgPT4gZS5yZXBsYWNlKC9cXFxcL2csICcvJykpXG4gICAgICApO1xuXG4gICAgICBidWlsZC5vblJlc29sdmUoeyBmaWx0ZXI6IC8uKi8gfSwgYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgaWYgKGFyZ3MucGx1Z2luRGF0YT8uc2tpcFN3Y1BsdWdpbikgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFvcHRpb25zLmVudHJpZXNUb0J1bmRsZSAmJlxuICAgICAgICAgIG5vcm1hbGl6ZWRTaWRlRWZmZWN0RW50cmllcy5zaXplID09PSAwXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hlbiBvbmx5IHNpZGVFZmZlY3RFbnRyaWVzIGlzIHNldCAobm8gZW50cmllc1RvQnVuZGxlKSwgd2Ugb25seVxuICAgICAgICAvLyBuZWVkIHRvIG92ZXJyaWRlIHNpZGVFZmZlY3RzIGZvciB0b3AtbGV2ZWwgYmFyZSBpbXBvcnRzLCB0eXBpY2FsbHlcbiAgICAgICAgLy8gZnJvbSB0aGUgdmlydHVhbCBlbnRyeS4gU2tpcCByZXNvbHV0aW9uIGZvciB0cmFuc2l0aXZlIGltcG9ydHNcbiAgICAgICAgLy8gKGR5bmFtaWMgaW1wb3J0cywgcmVxdWlyZXMsIGV0Yy4pIHRvIGF2b2lkIHVubmVjZXNzYXJ5IG92ZXJoZWFkLlxuICAgICAgICBpZiAoIW9wdGlvbnMuZW50cmllc1RvQnVuZGxlICYmIGFyZ3Mua2luZCAhPT0gJ2ltcG9ydC1zdGF0ZW1lbnQnKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHNwZWNpZmllciA9IGFyZ3MucGF0aDtcbiAgICAgICAgICBjb25zdCBzcGVjaWZpZXJJc1BhdGggPVxuICAgICAgICAgICAgc3BlY2lmaWVyLnN0YXJ0c1dpdGgoJy4nKSB8fCBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpO1xuXG4gICAgICAgICAgbGV0IHJlc29sdmVkUGF0aDogc3RyaW5nIHwgZmFsc2UgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgLy8gUGF0aC1zdHlsZSBzcGVjaWZpZXJzICguL2ZvbywgLi4vZm9vLCAvYWJzL3BhdGgpIGV4dGVybmFsaXplIGFzXG4gICAgICAgICAgLy8gcmVsYXRpdmUgcGF0aHMgZnJvbSBgb3V0ZGlyYC4gQmFyZSBzcGVjaWZpZXJzIChucG0gcGFja2FnZXMpXG4gICAgICAgICAgLy8gZXh0ZXJuYWxpemUgYXMtaXMgc28gTm9kZSBjYW4gcmVzb2x2ZSB0aGVtIGF0IHJ1bnRpbWUuXG4gICAgICAgICAgY29uc3Qgc2hvdWxkTWFrZVJlbGF0aXZlID0gc3BlY2lmaWVySXNQYXRoO1xuXG4gICAgICAgICAgaWYgKHNwZWNpZmllcklzUGF0aCkge1xuICAgICAgICAgICAgcmVzb2x2ZWRQYXRoID0gYXdhaXQgZW5oYW5jZWRSZXNvbHZlKGFyZ3MucmVzb2x2ZURpciwgc3BlY2lmaWVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gUmVzb2x2ZSBmcm9tIHByb2plY3Qgcm9vdCBzbyBuZXN0ZWQgZGVwcyBhcmVuJ3QgZXh0ZXJuYWxpemVkXG4gICAgICAgICAgICByZXNvbHZlZFBhdGggPSBhd2FpdCBlbmhhbmNlZFJlc29sdmUoXG4gICAgICAgICAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmFic1dvcmtpbmdEaXIgfHwgcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICAgICAgc3BlY2lmaWVyXG4gICAgICAgICAgICApLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7IC8vIHN3YWxsb3cgc28gZXNidWlsZCBmYWxsYmFjayBiZWxvdyBjYW4gdHJ5XG5cbiAgICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBlc2J1aWxkIGZvciBhbGlhc2VzL3RzY29uZmlnIHBhdGhzLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIElmIHRoZSBzcGVjaWZpZXIgcmVzb2x2ZXMgdG8gYSBwcm9qZWN0LWxvY2FsIGZpbGUgdmlhIGFuXG4gICAgICAgICAgICAvLyBhbGlhcy9wYXRoIG1hcHBpbmcgKGUuZy4gdHNjb25maWcgYHBhdGhzYCwgZXNidWlsZCBgYWxpYXNgLFxuICAgICAgICAgICAgLy8gc2VsZi1yZWZlcmVuY2luZyBwYWNrYWdlIG5hbWVzIGxpa2UgYEBteS1wa2cvbGliL2Zvb2ApLCB3ZVxuICAgICAgICAgICAgLy8gYnVuZGxlIGl0IGlubGluZSByYXRoZXIgdGhhbiBleHRlcm5hbGl6aW5nLlxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEV4dGVybmFsaXppbmcgc3VjaCBmaWxlcyBpcyB1bnNhZmU6IHdlJ2QgZW1pdCBhIHJlbGF0aXZlXG4gICAgICAgICAgICAvLyBpbXBvcnQgdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBvbiBkaXNrLCBidXQgdGhhdCBzb3VyY2UgY2FuXG4gICAgICAgICAgICAvLyBjb250YWluIGZ1cnRoZXIgYWxpYXMgaW1wb3J0cy4gQXQgcnVudGltZSwgTm9kZSdzIEVTTSBsb2FkZXJcbiAgICAgICAgICAgIC8vIGRvZXNuJ3Qga25vdyBhYm91dCB0c2NvbmZpZyBwYXRocyBvciBidWlsZC10aW1lIGFsaWFzZXMsIHNvXG4gICAgICAgICAgICAvLyB0aG9zZSB0cmFuc2l0aXZlIGltcG9ydHMgdGhyb3cgYEVSUl9NT0RVTEVfTk9UX0ZPVU5EYCAvXG4gICAgICAgICAgICAvLyBgUGFja2FnZSBzdWJwYXRoIC4uLiBpcyBub3QgZGVmaW5lZCBieSBcImV4cG9ydHNcImAuXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gQnVuZGxpbmcgaW5saW5lIGVuc3VyZXMgYWxpYXMtYmFzZWQgaW1wb3J0cyBhcmUgcmVzb2x2ZWQgYXRcbiAgICAgICAgICAgIC8vIGJ1aWxkIHRpbWUgKHdoZXJlIHRoZSBhbGlhcyBtYXAgaXMga25vd24pIGFuZCB0aGUgcnVudGltZVxuICAgICAgICAgICAgLy8gbmV2ZXIgc2VlcyBhbiB1bnJlc29sdmFibGUgc3BlY2lmaWVyLlxuICAgICAgICAgICAgaWYgKCFyZXNvbHZlZFBhdGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgZXNidWlsZFJlc3VsdCA9IGF3YWl0IGJ1aWxkLnJlc29sdmUoc3BlY2lmaWVyLCB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZURpcjogYXJncy5yZXNvbHZlRGlyLFxuICAgICAgICAgICAgICAgIGtpbmQ6IGFyZ3Mua2luZCxcbiAgICAgICAgICAgICAgICBwbHVnaW5EYXRhOiB7IHNraXBTd2NQbHVnaW46IHRydWUgfSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGNvbnN0IGRpZFJlc29sdmUgPVxuICAgICAgICAgICAgICAgICEhZXNidWlsZFJlc3VsdC5wYXRoICYmICFlc2J1aWxkUmVzdWx0LmVycm9ycy5sZW5ndGg7XG4gICAgICAgICAgICAgIGNvbnN0IGlzUHJvamVjdExvY2FsRmlsZSA9XG4gICAgICAgICAgICAgICAgZGlkUmVzb2x2ZSAmJlxuICAgICAgICAgICAgICAgICFlc2J1aWxkUmVzdWx0LmV4dGVybmFsICYmXG4gICAgICAgICAgICAgICAgIWVzYnVpbGRSZXN1bHQucGF0aFxuICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICAgICAgICAgICAgICAgICAgLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpO1xuICAgICAgICAgICAgICBpZiAoaXNQcm9qZWN0TG9jYWxGaWxlKSB7XG4gICAgICAgICAgICAgICAgLy8gTGV0IGVzYnVpbGQgYnVuZGxlIHRoaXMgYWxpYXNlZCBwcm9qZWN0LWxvY2FsIGZpbGUgaW5saW5lXG4gICAgICAgICAgICAgICAgLy8gKHJldHVybiBudWxsIHRvIGRlZmVyIHRvIGVzYnVpbGQncyBub3JtYWwgcGlwZWxpbmUpLiBUaGVcbiAgICAgICAgICAgICAgICAvLyBTV0MgYG9uTG9hZGAgaGFuZGxlciB3aWxsIHN0aWxsIHByb2Nlc3MgaXQuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5lbnRyaWVzVG9CdW5kbGUgJiZcbiAgICAgICAgICAgICAgICBlc2J1aWxkUmVzdWx0LnBhdGg/LmVuZHNXaXRoKCcubm9kZScpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBleHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHBhdGg6IHNwZWNpZmllcixcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFyZXNvbHZlZFBhdGgpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgLy8gTm9ybWFsaXplIHRvIGZvcndhcmQgc2xhc2hlcyBmb3IgY3Jvc3MtcGxhdGZvcm0gY29tcGFyaXNvblxuICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSZXNvbHZlZFBhdGggPSBub3JtYWxpemVQYXRoKHJlc29sdmVkUGF0aCk7XG4gICAgICAgICAgY29uc3Qgd29ya2luZ0RpciA9XG4gICAgICAgICAgICBidWlsZC5pbml0aWFsT3B0aW9ucy5hYnNXb3JraW5nRGlyIHx8IHByb2Nlc3MuY3dkKCk7XG4gICAgICAgICAgY29uc3QgcHJvamVjdFJvb3QgPSBvcHRpb25zLnByb2plY3RSb290IHx8IHdvcmtpbmdEaXI7XG4gICAgICAgICAgY29uc3QgbW9kdWxlU3BlY2lmaWVyUm9vdCA9XG4gICAgICAgICAgICBvcHRpb25zLm1vZHVsZVNwZWNpZmllclJvb3QgfHwgcHJvamVjdFJvb3Q7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBvcHRpb25zLmVudHJpZXNUb0J1bmRsZSAmJlxuICAgICAgICAgICAgbm9ybWFsaXplZFJlc29sdmVkUGF0aC5lbmRzV2l0aCgnLm5vZGUnKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXh0ZXJuYWw6IHRydWUsXG4gICAgICAgICAgICAgIHBhdGg6IHNwZWNpZmllcixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBtb2R1bGUgaXMgYSBkaXNjb3ZlcmVkIGVudHJ5IHdob3NlIFNXQy10cmFuc2Zvcm1lZFxuICAgICAgICAgIC8vIGNvZGUgY29udGFpbnMgc2lkZSBlZmZlY3RzICh3b3JrZmxvdy9zdGVwL2NsYXNzIHJlZ2lzdHJhdGlvbikuXG4gICAgICAgICAgLy8gT3ZlcnJpZGUgdGhlIHBhY2thZ2UuanNvbiBcInNpZGVFZmZlY3RzXCI6IGZhbHNlIHNvIGVzYnVpbGQgZG9lcyBub3RcbiAgICAgICAgICAvLyBkcm9wIGJhcmUgaW1wb3J0cyBvZiB0aGVzZSBtb2R1bGVzLlxuICAgICAgICAgIGNvbnN0IGhhc1NpZGVFZmZlY3RzID0gbm9ybWFsaXplZFNpZGVFZmZlY3RFbnRyaWVzLmhhcyhcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRSZXNvbHZlZFBhdGhcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKG9wdGlvbnMuZW50cmllc1RvQnVuZGxlKSB7XG4gICAgICAgICAgICBsZXQgc2hvdWxkQnVuZGxlID0gZmFsc2U7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5VG9CdW5kbGUgb2Ygb3B0aW9ucy5lbnRyaWVzVG9CdW5kbGUpIHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEVudHJ5ID0gZW50cnlUb0J1bmRsZS5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRSZXNvbHZlZFBhdGggPT09IG5vcm1hbGl6ZWRFbnRyeSkge1xuICAgICAgICAgICAgICAgIHNob3VsZEJ1bmRsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBpZiB0aGUgY3VycmVudCBlbnRyeSBpbXBvcnRzIGEgY2hpbGQgdGhhdCBuZWVkc1xuICAgICAgICAgICAgICAvLyB0byBiZSBidW5kbGVkIHRoZW4gaXQgbmVlZHMgdG8gYWxzbyBiZSBidW5kbGVkIHNvXG4gICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGNoaWxkIGNhbiBoYXZlIG91ciB0cmFuc2Zvcm0gYXBwbGllZFxuICAgICAgICAgICAgICBpZiAocGFyZW50SGFzQ2hpbGQobm9ybWFsaXplZFJlc29sdmVkUGF0aCwgbm9ybWFsaXplZEVudHJ5KSkge1xuICAgICAgICAgICAgICAgIHNob3VsZEJ1bmRsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBCdW5kbGUgcHJvamVjdC1sb2NhbCBzb3VyY2UgZmlsZXMgdGhhdCBhcmUgaW1wb3J0ZWQgYnkgYVxuICAgICAgICAgICAgICAvLyBzdGVwL3NlcmRlIGVudHJ5IHNvIGRpcmVjdCBydW50aW1lIGxvYWRlcnMgZG8gbm90IHNlZSByYXcgVFNcbiAgICAgICAgICAgICAgLy8gZXh0ZW5zaW9ubGVzcyBpbXBvcnRzLiBLZWVwIHBhY2thZ2UgZGVwZW5kZW5jaWVzIGV4dGVybmFsXG4gICAgICAgICAgICAgIC8vIHVubGVzcyB0aGV5IGFyZSB0aGVtc2VsdmVzIGluIGVudHJpZXNUb0J1bmRsZSBvciBhcmUgcGFyZW50c1xuICAgICAgICAgICAgICAvLyBvZiBhIGRpc2NvdmVyZWQgd29ya2Zsb3cvc3RlcC9zZXJkZSBmaWxlIHZpYSB0aGUgY2hlY2sgYWJvdmUuXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBvcHRpb25zLmJ1bmRsZVRyYW5zaXRpdmVMb2NhbFN0ZXBEZXBlbmRlbmNpZXMgJiZcbiAgICAgICAgICAgICAgICBpc1Byb2plY3RMb2NhbEZpbGUoXG4gICAgICAgICAgICAgICAgICBub3JtYWxpemVkUmVzb2x2ZWRQYXRoLFxuICAgICAgICAgICAgICAgICAgbW9kdWxlU3BlY2lmaWVyUm9vdFxuICAgICAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgICAgICBwYXJlbnRIYXNDaGlsZChub3JtYWxpemVkRW50cnksIG5vcm1hbGl6ZWRSZXNvbHZlZFBhdGgpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHNob3VsZEJ1bmRsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNob3VsZEJ1bmRsZSkge1xuICAgICAgICAgICAgICAvLyBMZXQgZXNidWlsZCBidW5kbGUgdGhpcyBlbnRyeSwgYnV0IG92ZXJyaWRlIHNpZGVFZmZlY3RzIGlmIG5lZWRlZC5cbiAgICAgICAgICAgICAgLy8gV2UgbXVzdCByZXR1cm4gdGhlIHJlc29sdmVkIGBwYXRoYCBhbG9uZ3NpZGUgYHNpZGVFZmZlY3RzYCBiZWNhdXNlXG4gICAgICAgICAgICAgIC8vIHJldHVybmluZyBvbmx5IGB7IHNpZGVFZmZlY3RzOiB0cnVlIH1gIHdpdGhvdXQgYSBwYXRoIGNhdXNlcyBlc2J1aWxkXG4gICAgICAgICAgICAgIC8vIHRvIGZhbGwgdGhyb3VnaCB0byBpdHMgb3duIHJlc29sdmVyLCB3aGljaCByZS1yZWFkcyB0aGUgcGFja2FnZS5qc29uXG4gICAgICAgICAgICAgIC8vIGFuZCBhcHBsaWVzIGBcInNpZGVFZmZlY3RzXCI6IGZhbHNlYCBmcm9tIHRoZXJlLlxuICAgICAgICAgICAgICByZXR1cm4gaGFzU2lkZUVmZmVjdHNcbiAgICAgICAgICAgICAgICA/IHsgcGF0aDogcmVzb2x2ZWRQYXRoLCBzaWRlRWZmZWN0czogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgZXh0ZXJuYWxQYXRoOiBzdHJpbmc7XG4gICAgICAgICAgICBpZiAoc2hvdWxkTWFrZVJlbGF0aXZlKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gdGhlIHJlc29sdmVkIGZpbGUgbGl2ZXMgaW5zaWRlIG5vZGVfbW9kdWxlcywgbGV0XG4gICAgICAgICAgICAgIC8vIGVzYnVpbGQgYnVuZGxlIGl0IHJhdGhlciB0aGFuIGV4dGVybmFsaXppbmcgd2l0aCBhIGRlZXBseVxuICAgICAgICAgICAgICAvLyBuZXN0ZWQgcmVsYXRpdmUgcGF0aC4gRG93bnN0cmVhbSBidW5kbGVycyAoUm9sbHVwL1ZpdGUpXG4gICAgICAgICAgICAgIC8vIGNhbid0IHJld3JpdGUgb3BhcXVlIGBfX3JlcXVpcmUoKWAgY2FsbHMgaW4gQ0pTIHNoaW1zLCBzb1xuICAgICAgICAgICAgICAvLyByZWxhdGl2ZSBwYXRocyBjb21wdXRlZCBmb3IgYG91dGRpcmAgYnJlYWsgb25jZSB0aGUgb3V0cHV0XG4gICAgICAgICAgICAgIC8vIGlzIHJlYnVuZGxlZCB0byBhIGRpZmZlcmVudCBkaXJlY3RvcnkuXG4gICAgICAgICAgICAgIGlmIChub3JtYWxpemVkUmVzb2x2ZWRQYXRoLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIGxldCBlc2J1aWxkIGJ1bmRsZSBpdFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZXh0ZXJuYWxQYXRoID0gcmVsYXRpdmUoXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5vdXRkaXIgfHwgcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICAgICAgICByZXNvbHZlZFBhdGhcbiAgICAgICAgICAgICAgKS5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucmV3cml0ZVRzRXh0ZW5zaW9ucykge1xuICAgICAgICAgICAgICAgIC8vIFJld3JpdGUgVHlwZVNjcmlwdCBleHRlbnNpb25zIHRvIHRoZWlyIEpTIGVxdWl2YWxlbnRzIHNvIHRoZVxuICAgICAgICAgICAgICAgIC8vIGV4dGVybmFsaXplZCBpbXBvcnQgaXMgbG9hZGFibGUgYnkgTm9kZSdzIG5hdGl2ZSBFU00gbG9hZGVyLlxuICAgICAgICAgICAgICAgIGV4dGVybmFsUGF0aCA9IGV4dGVybmFsUGF0aFxuICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcLnRzeD8kLywgJy5qcycpXG4gICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFwubXRzJC8sICcubWpzJylcbiAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC5jdHMkLywgJy5janMnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZXh0ZXJuYWxQYXRoID0gc3BlY2lmaWVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBleHRlcm5hbDogdHJ1ZSxcbiAgICAgICAgICAgICAgcGF0aDogZXh0ZXJuYWxQYXRoLFxuICAgICAgICAgICAgICBzaWRlRWZmZWN0czogaGFzU2lkZUVmZmVjdHMgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBObyBlbnRyaWVzVG9CdW5kbGUsIHNvIG9ubHkgb3ZlcnJpZGUgc2lkZUVmZmVjdHMgd2hlbiBuZWVkZWQuXG4gICAgICAgICAgLy8gV2UgbXVzdCByZXR1cm4gdGhlIHJlc29sdmVkIGBwYXRoYCBhbG9uZ3NpZGUgYHNpZGVFZmZlY3RzYCBiZWNhdXNlXG4gICAgICAgICAgLy8gcmV0dXJuaW5nIG9ubHkgYHsgc2lkZUVmZmVjdHM6IHRydWUgfWAgd2l0aG91dCBhIHBhdGggY2F1c2VzIGVzYnVpbGRcbiAgICAgICAgICAvLyB0byBmYWxsIHRocm91Z2ggdG8gaXRzIG93biByZXNvbHZlciwgd2hpY2ggcmUtcmVhZHMgdGhlIHBhY2thZ2UuanNvblxuICAgICAgICAgIC8vIGFuZCBhcHBsaWVzIGBcInNpZGVFZmZlY3RzXCI6IGZhbHNlYCBmcm9tIHRoZXJlLlxuICAgICAgICAgIHJldHVybiBoYXNTaWRlRWZmZWN0c1xuICAgICAgICAgICAgPyB7IHBhdGg6IHJlc29sdmVkUGF0aCwgc2lkZUVmZmVjdHM6IHRydWUgfVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBIYW5kbGUgVHlwZVNjcmlwdCBhbmQgSmF2YVNjcmlwdCBmaWxlc1xuICAgICAgYnVpbGQub25Mb2FkKHsgZmlsdGVyOiBqc1RzUmVnZXggfSwgYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgICAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBUeXBlU2NyaXB0IGZpbGVcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIGxvYWRlciBiYXNlZCBvbiB0aGUgb3V0cHV0XG4gICAgICAgICAgbGV0IGxvYWRlcjogJ2pzJyB8ICdqc3gnIHwgJ3RzeCcgPSAnanMnO1xuICAgICAgICAgIGlmIChhcmdzLnBhdGguZW5kc1dpdGgoJy5qc3gnKSkge1xuICAgICAgICAgICAgbG9hZGVyID0gJ2pzeCc7XG4gICAgICAgICAgfSBlbHNlIGlmIChhcmdzLnBhdGguZW5kc1dpdGgoJy50c3gnKSkge1xuICAgICAgICAgICAgbG9hZGVyID0gJ3RzeCc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGF3YWl0IHJlYWRGaWxlKGFyZ3MucGF0aCwgJ3V0ZjgnKTtcbiAgICAgICAgICBjb25zdCBub3JtYWxpemVkU291cmNlID0gc291cmNlXG4gICAgICAgICAgICAucmVwbGFjZSgvcmVxdWlyZVxcKFxccyooWydcIl0pc2VydmVyLW9ubHlcXDFcXHMqXFwpL2csICd2b2lkIDAnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL3JlcXVpcmVcXChcXHMqKFsnXCJdKWNsaWVudC1vbmx5XFwxXFxzKlxcKS9nLCAndm9pZCAwJyk7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgcmVsYXRpdmUgcGF0aCBmb3IgU1dDIHBsdWdpblxuICAgICAgICAgIC8vIFRoZSBmaWxlbmFtZSBwYXJhbWV0ZXIgaXMgdXNlZCB0byBnZW5lcmF0ZSB3b3JrZmxvd0lkL3N0ZXBJZCwgc28gaXQgbXVzdCBiZSByZWxhdGl2ZVxuICAgICAgICAgIGNvbnN0IHdvcmtpbmdEaXIgPVxuICAgICAgICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuYWJzV29ya2luZ0RpciB8fCBwcm9jZXNzLmN3ZCgpO1xuICAgICAgICAgIGNvbnN0IHByb2plY3RSb290ID0gb3B0aW9ucy5wcm9qZWN0Um9vdCB8fCB3b3JraW5nRGlyO1xuICAgICAgICAgIGNvbnN0IG1vZHVsZVNwZWNpZmllclJvb3QgPVxuICAgICAgICAgICAgb3B0aW9ucy5tb2R1bGVTcGVjaWZpZXJSb290IHx8IHByb2plY3RSb290O1xuICAgICAgICAgIC8vIE5vcm1hbGl6ZSBwYXRoczogY29udmVydCBiYWNrc2xhc2hlcyB0byBmb3J3YXJkIHNsYXNoZXMgYW5kIHJlbW92ZSB0cmFpbGluZyBzbGFzaGVzXG4gICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFdvcmtpbmdEaXIgPSB3b3JraW5nRGlyXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgICAgICAgICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGFyZ3MucGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG5cbiAgICAgICAgICAvLyBXaW5kb3dzIGZpeDogQWx3YXlzIGRvIGNhc2UtaW5zZW5zaXRpdmUgcGF0aCBjb21wYXJpc29uIGFzIHRoZSBQUklNQVJZIGxvZ2ljXG4gICAgICAgICAgLy8gdG8gd29yayBhcm91bmQgbm9kZTpwYXRoLnJlbGF0aXZlKCkgbm90IHJlY29nbml6aW5nIHBhdGhzIHdpdGggZGlmZmVyZW50IGRyaXZlXG4gICAgICAgICAgLy8gbGV0dGVyIGNhc2luZyAoZS5nLiwgRDogdnMgZDopIGFzIGJlaW5nIGluIHRoZSBzYW1lIHRyZWVcbiAgICAgICAgICBjb25zdCBsb3dlcldkID0gbm9ybWFsaXplZFdvcmtpbmdEaXIudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBjb25zdCBsb3dlclBhdGggPSBub3JtYWxpemVkUGF0aC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgbGV0IHJlbGF0aXZlRmlsZXBhdGg6IHN0cmluZztcbiAgICAgICAgICBpZiAobG93ZXJQYXRoLnN0YXJ0c1dpdGgoYCR7bG93ZXJXZH0vYCkpIHtcbiAgICAgICAgICAgIC8vIEZpbGUgaXMgdW5kZXIgd29ya2luZyBkaXJlY3RvcnkgLSBtYW51YWxseSBjYWxjdWxhdGUgcmVsYXRpdmUgcGF0aFxuICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHdlIGdldCBhIHJlbGF0aXZlIHBhdGggZXZlbiB3aXRoIGRyaXZlIGxldHRlciBjYXNpbmcgaXNzdWVzXG4gICAgICAgICAgICByZWxhdGl2ZUZpbGVwYXRoID0gbm9ybWFsaXplZFBhdGguc3Vic3RyaW5nKFxuICAgICAgICAgICAgICBub3JtYWxpemVkV29ya2luZ0Rpci5sZW5ndGggKyAxXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAobG93ZXJQYXRoID09PSBsb3dlcldkKSB7XG4gICAgICAgICAgICAvLyBGaWxlIElTIHRoZSB3b3JraW5nIGRpcmVjdG9yeVxuICAgICAgICAgICAgcmVsYXRpdmVGaWxlcGF0aCA9ICcuJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRmlsZSBpcyBvdXRzaWRlIHdvcmtpbmcgZGlyZWN0b3J5IC0gdXNlIHJlbGF0aXZlKCkgYW5kIHN0cmlwIC4uLyBwcmVmaXhlcyBpZiBuZWVkZWRcbiAgICAgICAgICAgIHJlbGF0aXZlRmlsZXBhdGggPSByZWxhdGl2ZShcbiAgICAgICAgICAgICAgbm9ybWFsaXplZFdvcmtpbmdEaXIsXG4gICAgICAgICAgICAgIG5vcm1hbGl6ZWRQYXRoXG4gICAgICAgICAgICApLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICAgICAgICAgICAgLy8gSGFuZGxlIGZpbGVzIGRpc2NvdmVyZWQgb3V0c2lkZSB0aGUgd29ya2luZyBkaXJlY3RvcnlcbiAgICAgICAgICAgIC8vIFRoZXNlIGNvbWUgYmFjayBhcyAuLi9wYXRoL3RvL2ZpbGUsIGJ1dCB3ZSB3YW50IHBhdGgvdG8vZmlsZVxuICAgICAgICAgICAgaWYgKHJlbGF0aXZlRmlsZXBhdGguc3RhcnRzV2l0aCgnLi4vJykpIHtcbiAgICAgICAgICAgICAgY29uc3QgYWxpYXNlZFJlbGF0aXZlUGF0aCA9XG4gICAgICAgICAgICAgICAgYXdhaXQgcmVzb2x2ZVdvcmtmbG93QWxpYXNSZWxhdGl2ZVBhdGgoYXJncy5wYXRoLCB3b3JraW5nRGlyKTtcbiAgICAgICAgICAgICAgaWYgKGFsaWFzZWRSZWxhdGl2ZVBhdGgpIHtcbiAgICAgICAgICAgICAgICByZWxhdGl2ZUZpbGVwYXRoID0gYWxpYXNlZFJlbGF0aXZlUGF0aDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWxhdGl2ZUZpbGVwYXRoID0gcmVsYXRpdmVGaWxlcGF0aFxuICAgICAgICAgICAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHBhcnQpID0+IHBhcnQgIT09ICcuLicpXG4gICAgICAgICAgICAgICAgICAuam9pbignLycpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRmluYWwgc2FmZXR5IGNoZWNrIC0gZW5zdXJlIHdlIG5ldmVyIHBhc3MgYW4gYWJzb2x1dGUgcGF0aCB0byBTV0NcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICByZWxhdGl2ZUZpbGVwYXRoLmluY2x1ZGVzKCc6JykgfHxcbiAgICAgICAgICAgIHJlbGF0aXZlRmlsZXBhdGguc3RhcnRzV2l0aCgnLycpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dCBpZiBpdCBkb2VzLCB1c2UgdGhlIGZpbGVuYW1lIGFzIGEgbGFzdCByZXNvcnRcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIGBbRVJST1JdIHJlbGF0aXZlRmlsZXBhdGggaXMgc3RpbGwgYWJzb2x1dGU6ICR7cmVsYXRpdmVGaWxlcGF0aH1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVsYXRpdmVGaWxlcGF0aCA9IG5vcm1hbGl6ZWRQYXRoLnNwbGl0KCcvJykucG9wKCkgfHwgJ3Vua25vd24udHMnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHsgY29kZTogdHJhbnNmb3JtZWRDb2RlLCB3b3JrZmxvd01hbmlmZXN0IH0gPVxuICAgICAgICAgICAgYXdhaXQgYXBwbHlTd2NUcmFuc2Zvcm0oXG4gICAgICAgICAgICAgIHJlbGF0aXZlRmlsZXBhdGgsXG4gICAgICAgICAgICAgIG5vcm1hbGl6ZWRTb3VyY2UsXG4gICAgICAgICAgICAgIG9wdGlvbnMubW9kZSxcbiAgICAgICAgICAgICAgYXJncy5wYXRoLCAvLyBQYXNzIGFic29sdXRlIHBhdGggZm9yIG1vZHVsZSBzcGVjaWZpZXIgcmVzb2x1dGlvblxuICAgICAgICAgICAgICBwcm9qZWN0Um9vdCxcbiAgICAgICAgICAgICAgbW9kdWxlU3BlY2lmaWVyUm9vdFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICghb3B0aW9ucy53b3JrZmxvd01hbmlmZXN0KSB7XG4gICAgICAgICAgICBvcHRpb25zLndvcmtmbG93TWFuaWZlc3QgPSB7fTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXJnZVdvcmtmbG93TWFuaWZlc3QoXG4gICAgICAgICAgICBvcHRpb25zLndvcmtmbG93TWFuaWZlc3QsXG4gICAgICAgICAgICB3b3JrZmxvd01hbmlmZXN0LFxuICAgICAgICAgICAgc3RlcElkc0ZvckN1cnJlbnRCdWlsZCxcbiAgICAgICAgICAgIHdvcmtmbG93SWRzRm9yQ3VycmVudEJ1aWxkXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGF3YWl0IG9wdGlvbnMub25BZnRlclRyYW5zZm9ybT8uKHtcbiAgICAgICAgICAgIG1vZGU6IG9wdGlvbnMubW9kZSxcbiAgICAgICAgICAgIGZpbGVuYW1lOiByZWxhdGl2ZUZpbGVwYXRoLFxuICAgICAgICAgICAgYWJzb2x1dGVQYXRoOiBhcmdzLnBhdGgsXG4gICAgICAgICAgICBzb3VyY2U6IG5vcm1hbGl6ZWRTb3VyY2UsXG4gICAgICAgICAgICBjb2RlOiB0cmFuc2Zvcm1lZENvZGUsXG4gICAgICAgICAgICB3b3JrZmxvd01hbmlmZXN0LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbnRlbnRzOiB0cmFuc2Zvcm1lZENvZGUsXG4gICAgICAgICAgICBsb2FkZXIsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICAgICAgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBg4p2MIFNXQyB0cmFuc2Zvcm0gZXJyb3IgaW4gJHthcmdzLnBhdGh9OmAsXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2VcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlcnJvcnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IGBTV0MgdHJhbnNmb3JtIGZhaWxlZDogJHtlcnJvck1lc3NhZ2V9YCxcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogeyBmaWxlOiBhcmdzLnBhdGgsIGxpbmU6IDAsIGNvbHVtbjogMCB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBpc1Byb2plY3RMb2NhbEZpbGUoZmlsZVBhdGg6IHN0cmluZywgcHJvamVjdFJvb3Q6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAobm9ybWFsaXplUGF0aChmaWxlUGF0aCkuaW5jbHVkZXMoJy9ub2RlX21vZHVsZXMvJykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoZmlsZVBhdGgsIHByb2plY3RSb290KS5tb2R1bGVTcGVjaWZpZXIgPT09IHVuZGVmaW5lZFxuICApO1xufVxuIl19
|
package/dist/types.d.ts
CHANGED
|
@@ -60,8 +60,8 @@ interface BaseWorkflowConfig {
|
|
|
60
60
|
* Default is `'inline'` for the step bundle and intermediate workflow
|
|
61
61
|
* bundle (gives readable stack traces for step errors and workflow VM
|
|
62
62
|
* errors). Setting `false` omits source maps entirely, which produces
|
|
63
|
-
* smaller bundles
|
|
64
|
-
* limit
|
|
63
|
+
* smaller bundles (useful for staying under the Vercel 250MB function
|
|
64
|
+
* limit) at the cost of stack traces that reference generated code.
|
|
65
65
|
*
|
|
66
66
|
* `'external'` and `'linked'` write a separate `.map` file; use these
|
|
67
67
|
* when you want to ship source maps to observability tooling but keep
|
|
@@ -77,7 +77,7 @@ interface BaseWorkflowConfig {
|
|
|
77
77
|
* `workflow`/`@workflow/*` dependency are discovered and compiled into the
|
|
78
78
|
* app's bundles.
|
|
79
79
|
*
|
|
80
|
-
* Set to `false` to opt out
|
|
80
|
+
* Set to `false` to opt out: imports from your application code that resolve
|
|
81
81
|
* into `node_modules` are not followed, so the build never reads, scans, or
|
|
82
82
|
* descends into dependency file graphs. This skips the cost of scanning
|
|
83
83
|
* `node_modules` and stops third-party workflow/step/serde code from being
|
package/dist/types.js
CHANGED
|
@@ -9,4 +9,4 @@ export const validBuildTargets = [
|
|
|
9
9
|
export function isValidBuildTarget(target) {
|
|
10
10
|
return !!target && validBuildTargets.includes(target);
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsWUFBWTtJQUNaLHlCQUF5QjtJQUN6QixNQUFNO0lBQ04sTUFBTTtJQUNOLFdBQVc7SUFDWCxPQUFPO0NBQ0MsQ0FBQztBQTZNWCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE1BQTBCO0lBRTFCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBcUIsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdvcmtmbG93QWZ0ZXJUcmFuc2Zvcm1Ib29rIH0gZnJvbSAnLi9zd2MtZXNidWlsZC1wbHVnaW4uanMnO1xuXG5leHBvcnQgY29uc3QgdmFsaWRCdWlsZFRhcmdldHMgPSBbXG4gICdzdGFuZGFsb25lJyxcbiAgJ3ZlcmNlbC1idWlsZC1vdXRwdXQtYXBpJyxcbiAgJ25leHQnLFxuICAnbmVzdCcsXG4gICdzdmVsdGVraXQnLFxuICAnYXN0cm8nLFxuXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJ1aWxkVGFyZ2V0ID0gKHR5cGVvZiB2YWxpZEJ1aWxkVGFyZ2V0cylbbnVtYmVyXTtcblxuLyoqXG4gKiBTb3VyY2UgbWFwIGVtaXNzaW9uIG1vZGUgZm9yIGdlbmVyYXRlZCB3b3JrZmxvdyBidW5kbGVzLiBNYXRjaGVzIGVzYnVpbGQnc1xuICogYHNvdXJjZW1hcGAgb3B0aW9uIHZvY2FidWxhcnk6XG4gKlxuICogLSBgdHJ1ZWAgLyBgJ2xpbmtlZCdgOiB3cml0ZSBhIHNlcGFyYXRlIGAubWFwYCBmaWxlIGFuZCBhZGQgYSBgc291cmNlTWFwcGluZ1VSTGAgY29tbWVudFxuICogLSBgJ2lubGluZSdgOiBlbWl0IGEgYmFzZTY0LWVuY29kZWQgc291cmNlIG1hcCBhdCB0aGUgZW5kIG9mIHRoZSBidW5kbGVcbiAqIC0gYCdleHRlcm5hbCdgOiB3cml0ZSBhIHNlcGFyYXRlIGAubWFwYCBmaWxlIHdpdGhvdXQgdGhlIGNvbW1lbnRcbiAqIC0gYCdib3RoJ2A6IGVtaXQgYm90aCBpbmxpbmUgYW5kIGV4dGVybmFsIHNvdXJjZSBtYXBzXG4gKiAtIGBmYWxzZWA6IG9taXQgc291cmNlIG1hcHMgZW50aXJlbHlcbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlbWFwTW9kZSA9IGJvb2xlYW4gfCAnaW5saW5lJyB8ICdsaW5rZWQnIHwgJ2V4dGVybmFsJyB8ICdib3RoJztcblxuLyoqXG4gKiBDb21tb24gY29uZmlndXJhdGlvbiBvcHRpb25zIHNoYXJlZCBhY3Jvc3MgYWxsIGJ1aWxkZXIgdHlwZXMuXG4gKi9cbmludGVyZmFjZSBCYXNlV29ya2Zsb3dDb25maWcge1xuICB3YXRjaD86IGJvb2xlYW47XG4gIGRpcnM6IHN0cmluZ1tdO1xuICB3b3JraW5nRGlyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQcm9qZWN0IHJvb3QgdXNlZCBmb3IgdHJhY2luZywgZGlzY292ZXJ5LCBhbmQgdHNjb25maWcgbG9va3VwIGR1cmluZyBTV0NcbiAgICogdHJhbnNmb3Jtcy4gRGVmYXVsdHMgdG8gYHdvcmtpbmdEaXJgLlxuICAgKi9cbiAgcHJvamVjdFJvb3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb2plY3Qgcm9vdCB1c2VkIGZvciBwYWNrYWdlIGFuZCB3b3Jrc3BhY2UgbW9kdWxlLXNwZWNpZmllciByZXNvbHV0aW9uXG4gICAqIGR1cmluZyBTV0MgdHJhbnNmb3Jtcy4gRGVmYXVsdHMgdG8gYHByb2plY3RSb290YCB3aGVuIHNldCwgb3RoZXJ3aXNlXG4gICAqIGB3b3JraW5nRGlyYC5cbiAgICovXG4gIG1vZHVsZVNwZWNpZmllclJvb3Q/OiBzdHJpbmc7XG5cbiAgLy8gT3B0aW9uYWxseSBnZW5lcmF0ZSBhIGNsaWVudCBsaWJyYXJ5IGZvciB3b3JrZmxvdyBleGVjdXRpb24uIFRoZSBwcmVmZXJyZWRcbiAgLy8gbWV0aG9kIG9mIHVzaW5nIHdvcmtmbG93IGlzIHRvIHVzZSBhIGxvYWRlciB3aXRoaW4gYSBmcmFtZXdvcmsgKGxpa2VcbiAgLy8gTmV4dEpTKSB0aGF0IHJlc29sdmVzIGNsaWVudCBiaW5kaW5ncyBvbiB0aGUgZmx5LlxuICBjbGllbnRCdW5kbGVQYXRoPzogc3RyaW5nO1xuXG4gIGV4dGVybmFsUGFja2FnZXM/OiBzdHJpbmdbXTtcblxuICB3b3JrZmxvd01hbmlmZXN0UGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgb2JzZXJ2ZXIgaW52b2tlZCBhZnRlciBlYWNoIGF1dGhvcml0YXRpdmUgU1dDIHRyYW5zZm9ybSBoYXMgYmVlblxuICAgKiBhY2NlcHRlZCBpbnRvIGEgd29ya2Zsb3cgYnVuZGxlJ3MgbWFuaWZlc3QuXG4gICAqXG4gICAqIEEgc291cmNlIGZpbGUgbWF5IGJlIG9ic2VydmVkIG11bHRpcGxlIHRpbWVzIGFjcm9zcyB0cmFuc2Zvcm0gbW9kZXMsXG4gICAqIGJ1bmRsZXMsIGFuZCB3YXRjaCByZWJ1aWxkcy4gVGhlIG9ic2VydmVyIGlzIGF3YWl0ZWQgYW5kIGNhbm5vdCByZXBsYWNlIHRoZVxuICAgKiB0cmFuc2Zvcm1lZCBjb2RlLiBUaHJvd2luZyByZWplY3RzIHRoZSBidWlsZCwgYWxsb3dpbmcgaW50ZWdyYXRpb25zIHRvXG4gICAqIHJlcXVpcmUgdGhlaXIgZGVyaXZlZCBhcnRpZmFjdHMgdG8gcmVtYWluIGNvbnNpc3RlbnQgd2l0aCB0aGUgZW1pdHRlZFxuICAgKiB3b3JrZmxvdyBidW5kbGVzLlxuICAgKi9cbiAgb25BZnRlclRyYW5zZm9ybT86IFdvcmtmbG93QWZ0ZXJUcmFuc2Zvcm1Ib29rO1xuXG4gIC8vIE9wdGlvbmFsIHByZWZpeCBmb3IgZGVidWcgZmlsZXMgKGUuZy4sIFwiX1wiIGZvciBBc3RybyB0byBpZ25vcmUgdGhlbSlcbiAgZGVidWdGaWxlUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8vIE9wdGlvbmFsIGRpcmVjdG9yeSB3aGVyZSBkaWFnbm9zdGljcyBhcnRpZmFjdHMgc2hvdWxkIGJlIHdyaXR0ZW4uXG4gIC8vIFRoZSB3b3JrZmxvdyBtYW5pZmVzdCBpcyB3cml0dGVuIHRvIHdvcmtmbG93cy1tYW5pZmVzdC5qc29uIGluc2lkZSB0aGlzIGRpci5cbiAgZGlhZ25vc3RpY3NEaXI/OiBzdHJpbmc7XG5cbiAgLy8gT3B0aW9uYWwgZnJhbWV3b3JrIG91dHB1dCBkaXJlY3RvcnksIHVzZWQgYnkgYnVpbGRlcnMgdGhhdCBtaXJyb3IgZnJhbWV3b3JrXG4gIC8vIGFydGlmYWN0IGxvY2F0aW9ucy5cbiAgZGlzdERpcj86IHN0cmluZztcblxuICAvLyBPcHRpb25hbCByb3V0ZSBwcmVmaXggZm9yIGFwcHMgZGVwbG95ZWQgYmVsb3cgdGhlIG9yaWdpbiByb290LlxuICBiYXNlUGF0aD86IHN0cmluZztcblxuICAvLyBTdXBwcmVzcyBpbmZvcm1hdGlvbmFsIGxvZ3MgZW1pdHRlZCBieSBjcmVhdGVXb3JrZmxvd3NCdW5kbGUoKVxuICAvLyAoZS5nLiBpbnRlcm1lZGlhdGUvZmluYWwgd29ya2Zsb3cgYnVuZGxlIHRpbWluZyBsb2dzKS5cbiAgc3VwcHJlc3NDcmVhdGVXb3JrZmxvd3NCdW5kbGVMb2dzPzogYm9vbGVhbjtcblxuICAvLyBTdXBwcmVzcyBlc2J1aWxkIHdhcm5pbmdzIGVtaXR0ZWQgYnkgY3JlYXRlV29ya2Zsb3dzQnVuZGxlKCkuXG4gIHN1cHByZXNzQ3JlYXRlV29ya2Zsb3dzQnVuZGxlV2FybmluZ3M/OiBib29sZWFuO1xuXG4gIC8vIFN1cHByZXNzIGluZm9ybWF0aW9uYWwgbG9ncyBlbWl0dGVkIGJ5IGNyZWF0ZVdlYmhvb2tCdW5kbGUoKS5cbiAgc3VwcHJlc3NDcmVhdGVXZWJob29rQnVuZGxlTG9ncz86IGJvb2xlYW47XG5cbiAgLy8gU3VwcHJlc3MgaW5mb3JtYXRpb25hbCBsb2dzIGVtaXR0ZWQgYnkgY3JlYXRlTWFuaWZlc3QoKS5cbiAgc3VwcHJlc3NDcmVhdGVNYW5pZmVzdExvZ3M/OiBib29sZWFuO1xuXG4gIC8vIE5vZGUuanMgcnVudGltZSB2ZXJzaW9uIGZvciBWZXJjZWwgRnVuY3Rpb25zIChlLmcuLCBcIm5vZGVqczIyLnhcIiwgXCJub2RlanMyNC54XCIpXG4gIHJ1bnRpbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIGhvdyBzb3VyY2UgbWFwcyBhcmUgZW1pdHRlZCBmb3Igd29ya2Zsb3cgYnVuZGxlcy4gQWNjZXB0cyB0aGVcbiAgICogc2FtZSB2YWx1ZXMgYXMgZXNidWlsZCdzIGBzb3VyY2VtYXBgIG9wdGlvbi5cbiAgICpcbiAgICogRGVmYXVsdCBpcyBgJ2lubGluZSdgIGZvciB0aGUgc3RlcCBidW5kbGUgYW5kIGludGVybWVkaWF0ZSB3b3JrZmxvd1xuICAgKiBidW5kbGUgKGdpdmVzIHJlYWRhYmxlIHN0YWNrIHRyYWNlcyBmb3Igc3RlcCBlcnJvcnMgYW5kIHdvcmtmbG93IFZNXG4gICAqIGVycm9ycykuIFNldHRpbmcgYGZhbHNlYCBvbWl0cyBzb3VyY2UgbWFwcyBlbnRpcmVseSwgd2hpY2ggcHJvZHVjZXNcbiAgICogc21hbGxlciBidW5kbGVzIOKAlCB1c2VmdWwgZm9yIHN0YXlpbmcgdW5kZXIgdGhlIFZlcmNlbCAyNTBNQiBmdW5jdGlvblxuICAgKiBsaW1pdCDigJQgYXQgdGhlIGNvc3Qgb2Ygc3RhY2sgdHJhY2VzIHRoYXQgcmVmZXJlbmNlIGdlbmVyYXRlZCBjb2RlLlxuICAgKlxuICAgKiBgJ2V4dGVybmFsJ2AgYW5kIGAnbGlua2VkJ2Agd3JpdGUgYSBzZXBhcmF0ZSBgLm1hcGAgZmlsZTsgdXNlIHRoZXNlXG4gICAqIHdoZW4geW91IHdhbnQgdG8gc2hpcCBzb3VyY2UgbWFwcyB0byBvYnNlcnZhYmlsaXR5IHRvb2xpbmcgYnV0IGtlZXBcbiAgICogdGhlbSBvdXQgb2YgdGhlIGZ1bmN0aW9uIGJ1bmRsZS5cbiAgICpcbiAgICogQ2FuIGFsc28gYmUgc2V0IHZpYSB0aGUgYFdPUktGTE9XX1NPVVJDRU1BUGAgZW52aXJvbm1lbnQgdmFyaWFibGU7XG4gICAqIGNvbmZpZyB3aW5zIG92ZXIgZW52IHZhciwgZW52IHZhciB3aW5zIG92ZXIgdGhlIGRlZmF1bHQuXG4gICAqL1xuICBzb3VyY2VtYXA/OiBTb3VyY2VtYXBNb2RlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHdvcmtmbG93IGRpc2NvdmVyeSBkZXNjZW5kcyBpbnRvIGBub2RlX21vZHVsZXNgLiBEZWZhdWx0cyB0b1xuICAgKiBgdHJ1ZWA6IHdvcmtmbG93L3N0ZXAvc2VyZGUgZmlsZXMgc2hpcHBlZCBieSBkZXBlbmRlbmNpZXMgdGhhdCBkZWNsYXJlIGFcbiAgICogYHdvcmtmbG93YC9gQHdvcmtmbG93LypgIGRlcGVuZGVuY3kgYXJlIGRpc2NvdmVyZWQgYW5kIGNvbXBpbGVkIGludG8gdGhlXG4gICAqIGFwcCdzIGJ1bmRsZXMuXG4gICAqXG4gICAqIFNldCB0byBgZmFsc2VgIHRvIG9wdCBvdXQg4oCUIGltcG9ydHMgZnJvbSB5b3VyIGFwcGxpY2F0aW9uIGNvZGUgdGhhdCByZXNvbHZlXG4gICAqIGludG8gYG5vZGVfbW9kdWxlc2AgYXJlIG5vdCBmb2xsb3dlZCwgc28gdGhlIGJ1aWxkIG5ldmVyIHJlYWRzLCBzY2Fucywgb3JcbiAgICogZGVzY2VuZHMgaW50byBkZXBlbmRlbmN5IGZpbGUgZ3JhcGhzLiBUaGlzIHNraXBzIHRoZSBjb3N0IG9mIHNjYW5uaW5nXG4gICAqIGBub2RlX21vZHVsZXNgIGFuZCBzdG9wcyB0aGlyZC1wYXJ0eSB3b3JrZmxvdy9zdGVwL3NlcmRlIGNvZGUgZnJvbSBiZWluZ1xuICAgKiBkaXNjb3ZlcmVkLiBVc2VmdWwgd2hlbiBhIGRlcGVuZGVuY3kgc2hpcHMgd29ya2Zsb3cgY29kZSB5b3UgZG9uJ3Qgd2FudFxuICAgKiBjb21waWxlZCBpbnRvIHlvdXIgYXBwLCBvciB0cmlwcyBkaXNjb3Zlcnkgd2l0aCBgXCJ1c2Ugd29ya2Zsb3dcImAvYFwidXNlXG4gICAqIHN0ZXBcImAgc3RyaW5ncyB5b3UgZG9uJ3QgaW50ZW5kIHRvIHJ1bi5cbiAgICpcbiAgICogVGhlIFNESydzIG93biBydW50aW1lIHNlcmRlIGNsYXNzZXMgKGUuZy4gYFJ1bmApIHN0YXkgcmVnaXN0ZXJlZDogdGhleSBhcmVcbiAgICogcmVhY2hlZCB0aHJvdWdoIGEgc2VlZGVkIGVudHJ5IHBvaW50IHRoYXQgbGl2ZXMgdW5kZXIgYG5vZGVfbW9kdWxlc2AsIGFuZFxuICAgKiBpbXBvcnRzICp3aXRoaW4qIGBub2RlX21vZHVsZXNgIGFyZSBzdGlsbCBmb2xsb3dlZC5cbiAgICpcbiAgICogQ2FuIGFsc28gYmUgc2V0IHZpYSB0aGUgYFdPUktGTE9XX0RJU0NPVkVSX05PREVfTU9EVUxFU2AgZW52aXJvbm1lbnRcbiAgICogdmFyaWFibGUgKGAwYC9gZmFsc2VgIHRvIGRpc2FibGUpOyBjb25maWcgd2lucyBvdmVyIGVudiB2YXIsIGVudiB2YXIgd2luc1xuICAgKiBvdmVyIHRoZSBkZWZhdWx0LlxuICAgKi9cbiAgZGlzY292ZXJXb3JrZmxvd3NJbk5vZGVNb2R1bGVzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBzdGFuZGFsb25lIChDTEktYmFzZWQpIGJ1aWxkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFsb25lQ29uZmlnIGV4dGVuZHMgQmFzZVdvcmtmbG93Q29uZmlnIHtcbiAgYnVpbGRUYXJnZXQ6ICdzdGFuZGFsb25lJztcbiAgc3RlcHNCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdvcmtmbG93c0J1bmRsZVBhdGg6IHN0cmluZztcbiAgd2ViaG9va0J1bmRsZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBWZXJjZWwgQnVpbGQgT3V0cHV0IEFQSSBidWlsZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmVyY2VsQnVpbGRPdXRwdXRDb25maWcgZXh0ZW5kcyBCYXNlV29ya2Zsb3dDb25maWcge1xuICBidWlsZFRhcmdldDogJ3ZlcmNlbC1idWlsZC1vdXRwdXQtYXBpJztcbiAgc3RlcHNCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdvcmtmbG93c0J1bmRsZVBhdGg6IHN0cmluZztcbiAgd2ViaG9va0J1bmRsZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBOZXh0LmpzIGJ1aWxkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0Q29uZmlnIGV4dGVuZHMgQmFzZVdvcmtmbG93Q29uZmlnIHtcbiAgYnVpbGRUYXJnZXQ6ICduZXh0JztcbiAgLy8gTmV4dC5qcyBidWlsZGVyIGNvbXB1dGVzIHBhdGhzIGR5bmFtaWNhbGx5LCBzbyB0aGVzZSBhcmUgbm90IHVzZWRcbiAgc3RlcHNCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdvcmtmbG93c0J1bmRsZVBhdGg6IHN0cmluZztcbiAgd2ViaG9va0J1bmRsZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBTdmVsdGVLaXQgYnVpbGRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN2ZWx0ZUtpdENvbmZpZyBleHRlbmRzIEJhc2VXb3JrZmxvd0NvbmZpZyB7XG4gIGJ1aWxkVGFyZ2V0OiAnc3ZlbHRla2l0JztcbiAgLy8gU3ZlbHRlS2l0IGJ1aWxkZXIgY29tcHV0ZXMgcGF0aHMgZHluYW1pY2FsbHksIHNvIHRoZXNlIGFyZSBub3QgdXNlZFxuICBzdGVwc0J1bmRsZVBhdGg6IHN0cmluZztcbiAgd29ya2Zsb3dzQnVuZGxlUGF0aDogc3RyaW5nO1xuICB3ZWJob29rQnVuZGxlUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIEFzdHJvIGJ1aWxkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3Ryb0NvbmZpZyBleHRlbmRzIEJhc2VXb3JrZmxvd0NvbmZpZyB7XG4gIGJ1aWxkVGFyZ2V0OiAnYXN0cm8nO1xuICAvLyBBc3RybyBidWlsZGVyIGNvbXB1dGVzIHBhdGhzIGR5bmFtaWNhbGx5LCBzbyB0aGVzZSBhcmUgbm90IHVzZWRcbiAgc3RlcHNCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdvcmtmbG93c0J1bmRsZVBhdGg6IHN0cmluZztcbiAgd2ViaG9va0J1bmRsZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBOZXN0SlMgYnVpbGRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5lc3RDb25maWcgZXh0ZW5kcyBCYXNlV29ya2Zsb3dDb25maWcge1xuICBidWlsZFRhcmdldDogJ25lc3QnO1xuICAvLyBOZXN0SlMgYnVpbGRlciBjb21wdXRlcyBwYXRocyBkeW5hbWljYWxseSwgc28gdGhlc2UgYXJlIG5vdCB1c2VkXG4gIHN0ZXBzQnVuZGxlUGF0aDogc3RyaW5nO1xuICB3b3JrZmxvd3NCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdlYmhvb2tCdW5kbGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGlzY3JpbWluYXRlZCB1bmlvbiBvZiBhbGwgYnVpbGRlciBjb25maWd1cmF0aW9uIHR5cGVzLlxuICovXG5leHBvcnQgdHlwZSBXb3JrZmxvd0NvbmZpZyA9XG4gIHwgU3RhbmRhbG9uZUNvbmZpZ1xuICB8IFZlcmNlbEJ1aWxkT3V0cHV0Q29uZmlnXG4gIHwgTmV4dENvbmZpZ1xuICB8IE5lc3RDb25maWdcbiAgfCBTdmVsdGVLaXRDb25maWdcbiAgfCBBc3Ryb0NvbmZpZztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRCdWlsZFRhcmdldChcbiAgdGFyZ2V0OiBzdHJpbmcgfCB1bmRlZmluZWRcbik6IHRhcmdldCBpcyBCdWlsZFRhcmdldCB7XG4gIHJldHVybiAhIXRhcmdldCAmJiB2YWxpZEJ1aWxkVGFyZ2V0cy5pbmNsdWRlcyh0YXJnZXQgYXMgQnVpbGRUYXJnZXQpO1xufVxuIl19
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsWUFBWTtJQUNaLHlCQUF5QjtJQUN6QixNQUFNO0lBQ04sTUFBTTtJQUNOLFdBQVc7SUFDWCxPQUFPO0NBQ0MsQ0FBQztBQTZNWCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE1BQTBCO0lBRTFCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBcUIsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdvcmtmbG93QWZ0ZXJUcmFuc2Zvcm1Ib29rIH0gZnJvbSAnLi9zd2MtZXNidWlsZC1wbHVnaW4uanMnO1xuXG5leHBvcnQgY29uc3QgdmFsaWRCdWlsZFRhcmdldHMgPSBbXG4gICdzdGFuZGFsb25lJyxcbiAgJ3ZlcmNlbC1idWlsZC1vdXRwdXQtYXBpJyxcbiAgJ25leHQnLFxuICAnbmVzdCcsXG4gICdzdmVsdGVraXQnLFxuICAnYXN0cm8nLFxuXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIEJ1aWxkVGFyZ2V0ID0gKHR5cGVvZiB2YWxpZEJ1aWxkVGFyZ2V0cylbbnVtYmVyXTtcblxuLyoqXG4gKiBTb3VyY2UgbWFwIGVtaXNzaW9uIG1vZGUgZm9yIGdlbmVyYXRlZCB3b3JrZmxvdyBidW5kbGVzLiBNYXRjaGVzIGVzYnVpbGQnc1xuICogYHNvdXJjZW1hcGAgb3B0aW9uIHZvY2FidWxhcnk6XG4gKlxuICogLSBgdHJ1ZWAgLyBgJ2xpbmtlZCdgOiB3cml0ZSBhIHNlcGFyYXRlIGAubWFwYCBmaWxlIGFuZCBhZGQgYSBgc291cmNlTWFwcGluZ1VSTGAgY29tbWVudFxuICogLSBgJ2lubGluZSdgOiBlbWl0IGEgYmFzZTY0LWVuY29kZWQgc291cmNlIG1hcCBhdCB0aGUgZW5kIG9mIHRoZSBidW5kbGVcbiAqIC0gYCdleHRlcm5hbCdgOiB3cml0ZSBhIHNlcGFyYXRlIGAubWFwYCBmaWxlIHdpdGhvdXQgdGhlIGNvbW1lbnRcbiAqIC0gYCdib3RoJ2A6IGVtaXQgYm90aCBpbmxpbmUgYW5kIGV4dGVybmFsIHNvdXJjZSBtYXBzXG4gKiAtIGBmYWxzZWA6IG9taXQgc291cmNlIG1hcHMgZW50aXJlbHlcbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlbWFwTW9kZSA9IGJvb2xlYW4gfCAnaW5saW5lJyB8ICdsaW5rZWQnIHwgJ2V4dGVybmFsJyB8ICdib3RoJztcblxuLyoqXG4gKiBDb21tb24gY29uZmlndXJhdGlvbiBvcHRpb25zIHNoYXJlZCBhY3Jvc3MgYWxsIGJ1aWxkZXIgdHlwZXMuXG4gKi9cbmludGVyZmFjZSBCYXNlV29ya2Zsb3dDb25maWcge1xuICB3YXRjaD86IGJvb2xlYW47XG4gIGRpcnM6IHN0cmluZ1tdO1xuICB3b3JraW5nRGlyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQcm9qZWN0IHJvb3QgdXNlZCBmb3IgdHJhY2luZywgZGlzY292ZXJ5LCBhbmQgdHNjb25maWcgbG9va3VwIGR1cmluZyBTV0NcbiAgICogdHJhbnNmb3Jtcy4gRGVmYXVsdHMgdG8gYHdvcmtpbmdEaXJgLlxuICAgKi9cbiAgcHJvamVjdFJvb3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb2plY3Qgcm9vdCB1c2VkIGZvciBwYWNrYWdlIGFuZCB3b3Jrc3BhY2UgbW9kdWxlLXNwZWNpZmllciByZXNvbHV0aW9uXG4gICAqIGR1cmluZyBTV0MgdHJhbnNmb3Jtcy4gRGVmYXVsdHMgdG8gYHByb2plY3RSb290YCB3aGVuIHNldCwgb3RoZXJ3aXNlXG4gICAqIGB3b3JraW5nRGlyYC5cbiAgICovXG4gIG1vZHVsZVNwZWNpZmllclJvb3Q/OiBzdHJpbmc7XG5cbiAgLy8gT3B0aW9uYWxseSBnZW5lcmF0ZSBhIGNsaWVudCBsaWJyYXJ5IGZvciB3b3JrZmxvdyBleGVjdXRpb24uIFRoZSBwcmVmZXJyZWRcbiAgLy8gbWV0aG9kIG9mIHVzaW5nIHdvcmtmbG93IGlzIHRvIHVzZSBhIGxvYWRlciB3aXRoaW4gYSBmcmFtZXdvcmsgKGxpa2VcbiAgLy8gTmV4dC5qcykgdGhhdCByZXNvbHZlcyBjbGllbnQgYmluZGluZ3Mgb24gdGhlIGZseS5cbiAgY2xpZW50QnVuZGxlUGF0aD86IHN0cmluZztcblxuICBleHRlcm5hbFBhY2thZ2VzPzogc3RyaW5nW107XG5cbiAgd29ya2Zsb3dNYW5pZmVzdFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG9ic2VydmVyIGludm9rZWQgYWZ0ZXIgZWFjaCBhdXRob3JpdGF0aXZlIFNXQyB0cmFuc2Zvcm0gaGFzIGJlZW5cbiAgICogYWNjZXB0ZWQgaW50byBhIHdvcmtmbG93IGJ1bmRsZSdzIG1hbmlmZXN0LlxuICAgKlxuICAgKiBBIHNvdXJjZSBmaWxlIG1heSBiZSBvYnNlcnZlZCBtdWx0aXBsZSB0aW1lcyBhY3Jvc3MgdHJhbnNmb3JtIG1vZGVzLFxuICAgKiBidW5kbGVzLCBhbmQgd2F0Y2ggcmVidWlsZHMuIFRoZSBvYnNlcnZlciBpcyBhd2FpdGVkIGFuZCBjYW5ub3QgcmVwbGFjZSB0aGVcbiAgICogdHJhbnNmb3JtZWQgY29kZS4gVGhyb3dpbmcgcmVqZWN0cyB0aGUgYnVpbGQsIGFsbG93aW5nIGludGVncmF0aW9ucyB0b1xuICAgKiByZXF1aXJlIHRoZWlyIGRlcml2ZWQgYXJ0aWZhY3RzIHRvIHJlbWFpbiBjb25zaXN0ZW50IHdpdGggdGhlIGVtaXR0ZWRcbiAgICogd29ya2Zsb3cgYnVuZGxlcy5cbiAgICovXG4gIG9uQWZ0ZXJUcmFuc2Zvcm0/OiBXb3JrZmxvd0FmdGVyVHJhbnNmb3JtSG9vaztcblxuICAvLyBPcHRpb25hbCBwcmVmaXggZm9yIGRlYnVnIGZpbGVzIChlLmcuLCBcIl9cIiBmb3IgQXN0cm8gdG8gaWdub3JlIHRoZW0pXG4gIGRlYnVnRmlsZVByZWZpeD86IHN0cmluZztcblxuICAvLyBPcHRpb25hbCBkaXJlY3Rvcnkgd2hlcmUgZGlhZ25vc3RpY3MgYXJ0aWZhY3RzIHNob3VsZCBiZSB3cml0dGVuLlxuICAvLyBUaGUgd29ya2Zsb3cgbWFuaWZlc3QgaXMgd3JpdHRlbiB0byB3b3JrZmxvd3MtbWFuaWZlc3QuanNvbiBpbnNpZGUgdGhpcyBkaXIuXG4gIGRpYWdub3N0aWNzRGlyPzogc3RyaW5nO1xuXG4gIC8vIE9wdGlvbmFsIGZyYW1ld29yayBvdXRwdXQgZGlyZWN0b3J5LCB1c2VkIGJ5IGJ1aWxkZXJzIHRoYXQgbWlycm9yIGZyYW1ld29ya1xuICAvLyBhcnRpZmFjdCBsb2NhdGlvbnMuXG4gIGRpc3REaXI/OiBzdHJpbmc7XG5cbiAgLy8gT3B0aW9uYWwgcm91dGUgcHJlZml4IGZvciBhcHBzIGRlcGxveWVkIGJlbG93IHRoZSBvcmlnaW4gcm9vdC5cbiAgYmFzZVBhdGg/OiBzdHJpbmc7XG5cbiAgLy8gU3VwcHJlc3MgaW5mb3JtYXRpb25hbCBsb2dzIGVtaXR0ZWQgYnkgY3JlYXRlV29ya2Zsb3dzQnVuZGxlKClcbiAgLy8gKGUuZy4gaW50ZXJtZWRpYXRlL2ZpbmFsIHdvcmtmbG93IGJ1bmRsZSB0aW1pbmcgbG9ncykuXG4gIHN1cHByZXNzQ3JlYXRlV29ya2Zsb3dzQnVuZGxlTG9ncz86IGJvb2xlYW47XG5cbiAgLy8gU3VwcHJlc3MgZXNidWlsZCB3YXJuaW5ncyBlbWl0dGVkIGJ5IGNyZWF0ZVdvcmtmbG93c0J1bmRsZSgpLlxuICBzdXBwcmVzc0NyZWF0ZVdvcmtmbG93c0J1bmRsZVdhcm5pbmdzPzogYm9vbGVhbjtcblxuICAvLyBTdXBwcmVzcyBpbmZvcm1hdGlvbmFsIGxvZ3MgZW1pdHRlZCBieSBjcmVhdGVXZWJob29rQnVuZGxlKCkuXG4gIHN1cHByZXNzQ3JlYXRlV2ViaG9va0J1bmRsZUxvZ3M/OiBib29sZWFuO1xuXG4gIC8vIFN1cHByZXNzIGluZm9ybWF0aW9uYWwgbG9ncyBlbWl0dGVkIGJ5IGNyZWF0ZU1hbmlmZXN0KCkuXG4gIHN1cHByZXNzQ3JlYXRlTWFuaWZlc3RMb2dzPzogYm9vbGVhbjtcblxuICAvLyBOb2RlLmpzIHJ1bnRpbWUgdmVyc2lvbiBmb3IgVmVyY2VsIEZ1bmN0aW9ucyAoZS5nLiwgXCJub2RlanMyMi54XCIsIFwibm9kZWpzMjQueFwiKVxuICBydW50aW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyBob3cgc291cmNlIG1hcHMgYXJlIGVtaXR0ZWQgZm9yIHdvcmtmbG93IGJ1bmRsZXMuIEFjY2VwdHMgdGhlXG4gICAqIHNhbWUgdmFsdWVzIGFzIGVzYnVpbGQncyBgc291cmNlbWFwYCBvcHRpb24uXG4gICAqXG4gICAqIERlZmF1bHQgaXMgYCdpbmxpbmUnYCBmb3IgdGhlIHN0ZXAgYnVuZGxlIGFuZCBpbnRlcm1lZGlhdGUgd29ya2Zsb3dcbiAgICogYnVuZGxlIChnaXZlcyByZWFkYWJsZSBzdGFjayB0cmFjZXMgZm9yIHN0ZXAgZXJyb3JzIGFuZCB3b3JrZmxvdyBWTVxuICAgKiBlcnJvcnMpLiBTZXR0aW5nIGBmYWxzZWAgb21pdHMgc291cmNlIG1hcHMgZW50aXJlbHksIHdoaWNoIHByb2R1Y2VzXG4gICAqIHNtYWxsZXIgYnVuZGxlcyAodXNlZnVsIGZvciBzdGF5aW5nIHVuZGVyIHRoZSBWZXJjZWwgMjUwTUIgZnVuY3Rpb25cbiAgICogbGltaXQpIGF0IHRoZSBjb3N0IG9mIHN0YWNrIHRyYWNlcyB0aGF0IHJlZmVyZW5jZSBnZW5lcmF0ZWQgY29kZS5cbiAgICpcbiAgICogYCdleHRlcm5hbCdgIGFuZCBgJ2xpbmtlZCdgIHdyaXRlIGEgc2VwYXJhdGUgYC5tYXBgIGZpbGU7IHVzZSB0aGVzZVxuICAgKiB3aGVuIHlvdSB3YW50IHRvIHNoaXAgc291cmNlIG1hcHMgdG8gb2JzZXJ2YWJpbGl0eSB0b29saW5nIGJ1dCBrZWVwXG4gICAqIHRoZW0gb3V0IG9mIHRoZSBmdW5jdGlvbiBidW5kbGUuXG4gICAqXG4gICAqIENhbiBhbHNvIGJlIHNldCB2aWEgdGhlIGBXT1JLRkxPV19TT1VSQ0VNQVBgIGVudmlyb25tZW50IHZhcmlhYmxlO1xuICAgKiBjb25maWcgd2lucyBvdmVyIGVudiB2YXIsIGVudiB2YXIgd2lucyBvdmVyIHRoZSBkZWZhdWx0LlxuICAgKi9cbiAgc291cmNlbWFwPzogU291cmNlbWFwTW9kZTtcblxuICAvKipcbiAgICogV2hldGhlciB3b3JrZmxvdyBkaXNjb3ZlcnkgZGVzY2VuZHMgaW50byBgbm9kZV9tb2R1bGVzYC4gRGVmYXVsdHMgdG9cbiAgICogYHRydWVgOiB3b3JrZmxvdy9zdGVwL3NlcmRlIGZpbGVzIHNoaXBwZWQgYnkgZGVwZW5kZW5jaWVzIHRoYXQgZGVjbGFyZSBhXG4gICAqIGB3b3JrZmxvd2AvYEB3b3JrZmxvdy8qYCBkZXBlbmRlbmN5IGFyZSBkaXNjb3ZlcmVkIGFuZCBjb21waWxlZCBpbnRvIHRoZVxuICAgKiBhcHAncyBidW5kbGVzLlxuICAgKlxuICAgKiBTZXQgdG8gYGZhbHNlYCB0byBvcHQgb3V0OiBpbXBvcnRzIGZyb20geW91ciBhcHBsaWNhdGlvbiBjb2RlIHRoYXQgcmVzb2x2ZVxuICAgKiBpbnRvIGBub2RlX21vZHVsZXNgIGFyZSBub3QgZm9sbG93ZWQsIHNvIHRoZSBidWlsZCBuZXZlciByZWFkcywgc2NhbnMsIG9yXG4gICAqIGRlc2NlbmRzIGludG8gZGVwZW5kZW5jeSBmaWxlIGdyYXBocy4gVGhpcyBza2lwcyB0aGUgY29zdCBvZiBzY2FubmluZ1xuICAgKiBgbm9kZV9tb2R1bGVzYCBhbmQgc3RvcHMgdGhpcmQtcGFydHkgd29ya2Zsb3cvc3RlcC9zZXJkZSBjb2RlIGZyb20gYmVpbmdcbiAgICogZGlzY292ZXJlZC4gVXNlZnVsIHdoZW4gYSBkZXBlbmRlbmN5IHNoaXBzIHdvcmtmbG93IGNvZGUgeW91IGRvbid0IHdhbnRcbiAgICogY29tcGlsZWQgaW50byB5b3VyIGFwcCwgb3IgdHJpcHMgZGlzY292ZXJ5IHdpdGggYFwidXNlIHdvcmtmbG93XCJgL2BcInVzZVxuICAgKiBzdGVwXCJgIHN0cmluZ3MgeW91IGRvbid0IGludGVuZCB0byBydW4uXG4gICAqXG4gICAqIFRoZSBTREsncyBvd24gcnVudGltZSBzZXJkZSBjbGFzc2VzIChlLmcuIGBSdW5gKSBzdGF5IHJlZ2lzdGVyZWQ6IHRoZXkgYXJlXG4gICAqIHJlYWNoZWQgdGhyb3VnaCBhIHNlZWRlZCBlbnRyeSBwb2ludCB0aGF0IGxpdmVzIHVuZGVyIGBub2RlX21vZHVsZXNgLCBhbmRcbiAgICogaW1wb3J0cyAqd2l0aGluKiBgbm9kZV9tb2R1bGVzYCBhcmUgc3RpbGwgZm9sbG93ZWQuXG4gICAqXG4gICAqIENhbiBhbHNvIGJlIHNldCB2aWEgdGhlIGBXT1JLRkxPV19ESVNDT1ZFUl9OT0RFX01PRFVMRVNgIGVudmlyb25tZW50XG4gICAqIHZhcmlhYmxlIChgMGAvYGZhbHNlYCB0byBkaXNhYmxlKTsgY29uZmlnIHdpbnMgb3ZlciBlbnYgdmFyLCBlbnYgdmFyIHdpbnNcbiAgICogb3ZlciB0aGUgZGVmYXVsdC5cbiAgICovXG4gIGRpc2NvdmVyV29ya2Zsb3dzSW5Ob2RlTW9kdWxlcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3Igc3RhbmRhbG9uZSAoQ0xJLWJhc2VkKSBidWlsZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhbG9uZUNvbmZpZyBleHRlbmRzIEJhc2VXb3JrZmxvd0NvbmZpZyB7XG4gIGJ1aWxkVGFyZ2V0OiAnc3RhbmRhbG9uZSc7XG4gIHN0ZXBzQnVuZGxlUGF0aDogc3RyaW5nO1xuICB3b3JrZmxvd3NCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdlYmhvb2tCdW5kbGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgVmVyY2VsIEJ1aWxkIE91dHB1dCBBUEkgYnVpbGRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZlcmNlbEJ1aWxkT3V0cHV0Q29uZmlnIGV4dGVuZHMgQmFzZVdvcmtmbG93Q29uZmlnIHtcbiAgYnVpbGRUYXJnZXQ6ICd2ZXJjZWwtYnVpbGQtb3V0cHV0LWFwaSc7XG4gIHN0ZXBzQnVuZGxlUGF0aDogc3RyaW5nO1xuICB3b3JrZmxvd3NCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdlYmhvb2tCdW5kbGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgTmV4dC5qcyBidWlsZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dENvbmZpZyBleHRlbmRzIEJhc2VXb3JrZmxvd0NvbmZpZyB7XG4gIGJ1aWxkVGFyZ2V0OiAnbmV4dCc7XG4gIC8vIE5leHQuanMgYnVpbGRlciBjb21wdXRlcyBwYXRocyBkeW5hbWljYWxseSwgc28gdGhlc2UgYXJlIG5vdCB1c2VkXG4gIHN0ZXBzQnVuZGxlUGF0aDogc3RyaW5nO1xuICB3b3JrZmxvd3NCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdlYmhvb2tCdW5kbGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgU3ZlbHRlS2l0IGJ1aWxkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdmVsdGVLaXRDb25maWcgZXh0ZW5kcyBCYXNlV29ya2Zsb3dDb25maWcge1xuICBidWlsZFRhcmdldDogJ3N2ZWx0ZWtpdCc7XG4gIC8vIFN2ZWx0ZUtpdCBidWlsZGVyIGNvbXB1dGVzIHBhdGhzIGR5bmFtaWNhbGx5LCBzbyB0aGVzZSBhcmUgbm90IHVzZWRcbiAgc3RlcHNCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdvcmtmbG93c0J1bmRsZVBhdGg6IHN0cmluZztcbiAgd2ViaG9va0J1bmRsZVBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBBc3RybyBidWlsZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXN0cm9Db25maWcgZXh0ZW5kcyBCYXNlV29ya2Zsb3dDb25maWcge1xuICBidWlsZFRhcmdldDogJ2FzdHJvJztcbiAgLy8gQXN0cm8gYnVpbGRlciBjb21wdXRlcyBwYXRocyBkeW5hbWljYWxseSwgc28gdGhlc2UgYXJlIG5vdCB1c2VkXG4gIHN0ZXBzQnVuZGxlUGF0aDogc3RyaW5nO1xuICB3b3JrZmxvd3NCdW5kbGVQYXRoOiBzdHJpbmc7XG4gIHdlYmhvb2tCdW5kbGVQYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgTmVzdEpTIGJ1aWxkcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXN0Q29uZmlnIGV4dGVuZHMgQmFzZVdvcmtmbG93Q29uZmlnIHtcbiAgYnVpbGRUYXJnZXQ6ICduZXN0JztcbiAgLy8gTmVzdEpTIGJ1aWxkZXIgY29tcHV0ZXMgcGF0aHMgZHluYW1pY2FsbHksIHNvIHRoZXNlIGFyZSBub3QgdXNlZFxuICBzdGVwc0J1bmRsZVBhdGg6IHN0cmluZztcbiAgd29ya2Zsb3dzQnVuZGxlUGF0aDogc3RyaW5nO1xuICB3ZWJob29rQnVuZGxlUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERpc2NyaW1pbmF0ZWQgdW5pb24gb2YgYWxsIGJ1aWxkZXIgY29uZmlndXJhdGlvbiB0eXBlcy5cbiAqL1xuZXhwb3J0IHR5cGUgV29ya2Zsb3dDb25maWcgPVxuICB8IFN0YW5kYWxvbmVDb25maWdcbiAgfCBWZXJjZWxCdWlsZE91dHB1dENvbmZpZ1xuICB8IE5leHRDb25maWdcbiAgfCBOZXN0Q29uZmlnXG4gIHwgU3ZlbHRlS2l0Q29uZmlnXG4gIHwgQXN0cm9Db25maWc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQnVpbGRUYXJnZXQoXG4gIHRhcmdldDogc3RyaW5nIHwgdW5kZWZpbmVkXG4pOiB0YXJnZXQgaXMgQnVpbGRUYXJnZXQge1xuICByZXR1cm4gISF0YXJnZXQgJiYgdmFsaWRCdWlsZFRhcmdldHMuaW5jbHVkZXModGFyZ2V0IGFzIEJ1aWxkVGFyZ2V0KTtcbn1cbiJdfQ==
|
|
@@ -32,7 +32,7 @@ export class VercelBuildOutputAPIBuilder extends BaseBuilder {
|
|
|
32
32
|
await this.createVcConfig(workflowsFuncDir, {
|
|
33
33
|
handler: 'index.mjs',
|
|
34
34
|
// Skip the source-map-support runtime shim when sourcemaps are
|
|
35
|
-
// disabled
|
|
35
|
+
// disabled: it's a meaningful chunk of the function bundle and
|
|
36
36
|
// serves no purpose without maps.
|
|
37
37
|
shouldAddSourcemapSupport: this.sourcemapsEnabled,
|
|
38
38
|
maxDuration: 'max',
|
|
@@ -93,4 +93,4 @@ export class VercelBuildOutputAPIBuilder extends BaseBuilder {
|
|
|
93
93
|
this.logBaseBuilderInfo('Webhook function available at /.well-known/workflow/v1/webhook/[token]');
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyY2VsLWJ1aWxkLW91dHB1dC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdmVyY2VsLWJ1aWxkLW91dHB1dC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsV0FBVztJQUMxRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbEQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFFM0Usa0NBQWtDO1FBQ2xDLE1BQU0sS0FBSyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkQsdUVBQXVFO1FBQ3ZFLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsRUFBRTtZQUNoRCxTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUs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TUFBTSxFQUFFLG9EQUFvRDtTQUM3RCxDQUFDLENBQUM7UUFFSCwrREFBK0Q7UUFDL0QsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUU7WUFDeEMsT0FBTyxFQUFFLFdBQVc7WUFDcEIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsdUJBQXVCLENBQUMsU0FBaUI7UUFDckQsMENBQTBDO1FBQzFDLE1BQU0saUJBQWlCLEdBQUc7WUFDeEIsT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsR0FBRyxFQUFFLDBEQUEwRDtvQkFDL0QsSUFBSSxFQUFFLDBDQUEwQztpQkFDakQ7YUFDRjtTQUNGLENBQUM7UUFFRixNQUFNLFNBQVMsQ0FDYixJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxFQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDM0MsQ0FBQztRQUVGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywrQkFBK0IsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQ3JCLDhEQUE4RCxDQUMvRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUNyQix3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvcHlGaWxlLCBta2Rpciwgcm0sIHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgam9pbiwgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBCYXNlQnVpbGRlciB9IGZyb20gJy4vYmFzZS1idWlsZGVyLmpzJztcbmltcG9ydCB7IGdldFdvcmtmbG93UXVldWVUcmlnZ2VyIH0gZnJvbSAnLi9jb25zdGFudHMuanMnO1xuXG5leHBvcnQgY2xhc3MgVmVyY2VsQnVpbGRPdXRwdXRBUElCdWlsZGVyIGV4dGVuZHMgQmFzZUJ1aWxkZXIge1xuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvdXRwdXREaXIgPSByZXNvbHZlKHRoaXMuY29uZmlnLndvcmtpbmdEaXIsICcudmVyY2VsL291dHB1dCcpO1xuICAgIGNvbnN0IGZ1bmN0aW9uc0RpciA9IGpvaW4ob3V0cHV0RGlyLCAnZnVuY3Rpb25zJyk7XG4gICAgY29uc3Qgd29ya2Zsb3dHZW5lcmF0ZWREaXIgPSBqb2luKGZ1bmN0aW9uc0RpciwgJy53ZWxsLWtub3duL3dvcmtmbG93L3YxJyk7XG5cbiAgICAvLyBFbnN1cmUgb3V0cHV0IGRpcmVjdG9yaWVzIGV4aXN0XG4gICAgYXdhaXQgbWtkaXIod29ya2Zsb3dHZW5lcmF0ZWREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIC8vIEJ1aWxkIGNhY2hlcyBtYXkgc3RpbGwgY29udGFpbiB0aGUgcmV0aXJlZCBzdGFuZGFsb25lIHN0ZXAgZnVuY3Rpb24uXG4gICAgYXdhaXQgcm0oam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJ3N0ZXAuZnVuYycpLCB7XG4gICAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgICBmb3JjZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlucHV0RmlsZXMgPSBhd2FpdCB0aGlzLmdldElucHV0RmlsZXMoKTtcbiAgICBjb25zdCB0c2NvbmZpZ1BhdGggPSBhd2FpdCB0aGlzLmZpbmRUc0NvbmZpZ1BhdGgoKTtcbiAgICAvLyBDcmVhdGUgY29tYmluZWQgYnVuZGxlIGluIGZsb3cuZnVuYy9cbiAgICB0aGlzLmxvZ0Jhc2VCdWlsZGVySW5mbyhcbiAgICAgICdDcmVhdGluZyBWZXJjZWwgQnVpbGQgT3V0cHV0IEFQSSBjb21iaW5lZCBmdW5jdGlvbidcbiAgICApO1xuICAgIGNvbnN0IHdvcmtmbG93c0Z1bmNEaXIgPSBqb2luKHdvcmtmbG93R2VuZXJhdGVkRGlyLCAnZmxvdy5mdW5jJyk7XG4gICAgYXdhaXQgbWtkaXIod29ya2Zsb3dzRnVuY0RpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICBjb25zdCB7IG1hbmlmZXN0IH0gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbWJpbmVkQnVuZGxlKHtcbiAgICAgIGlucHV0RmlsZXMsXG4gICAgICBzdGVwc091dGZpbGU6IGpvaW4od29ya2Zsb3dzRnVuY0RpciwgJ19fc3RlcF9yZWdpc3RyYXRpb25zLm1qcycpLFxuICAgICAgZmxvd091dGZpbGU6IGpvaW4od29ya2Zsb3dzRnVuY0RpciwgJ2luZGV4Lm1qcycpLFxuICAgICAgdHNjb25maWdQYXRoLFxuICAgICAgYnVuZGxlRmluYWxPdXRwdXQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgcGFja2FnZS5qc29uIGFuZCAudmMtY29uZmlnLmpzb24gZm9yIGNvbWJpbmVkIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVQYWNrYWdlSnNvbih3b3JrZmxvd3NGdW5jRGlyLCAnbW9kdWxlJyk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVWY0NvbmZpZyh3b3JrZmxvd3NGdW5jRGlyLCB7XG4gICAgICBoYW5kbGVyOiAnaW5kZXgubWpzJyxcbiAgICAgIC8vIFNraXAgdGhlIHNvdXJjZS1tYXAtc3VwcG9ydCBydW50aW1lIHNoaW0gd2hlbiBzb3VyY2VtYXBzIGFyZVxuICAgICAgLy8gZGlzYWJsZWQg4oCUIGl0J3MgYSBtZWFuaW5nZnVsIGNodW5rIG9mIHRoZSBmdW5jdGlvbiBidW5kbGUgYW5kXG4gICAgICAvLyBzZXJ2ZXMgbm8gcHVycG9zZSB3aXRob3V0IG1hcHMuXG4gICAgICBzaG91bGRBZGRTb3VyY2VtYXBTdXBwb3J0OiB0aGlzLnNvdXJjZW1hcHNFbmFibGVkLFxuICAgICAgbWF4RHVyYXRpb246ICdtYXgnLFxuICAgICAgZXhwZXJpbWVudGFsVHJpZ2dlcnM6IFtnZXRXb3JrZmxvd1F1ZXVlVHJpZ2dlcigpXSxcbiAgICAgIHJ1bnRpbWU6IHRoaXMuY29uZmlnLnJ1bnRpbWUsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLmJ1aWxkV2ViaG9va0Z1bmN0aW9uKHsgd29ya2Zsb3dHZW5lcmF0ZWREaXIgfSk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVCdWlsZE91dHB1dENvbmZpZyhvdXRwdXREaXIpO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pZmllZCBtYW5pZmVzdFxuICAgIGNvbnN0IHdvcmtmbG93QnVuZGxlUGF0aCA9IGpvaW4oXG4gICAgICB3b3JrZmxvd0dlbmVyYXRlZERpcixcbiAgICAgICdmbG93LmZ1bmMvaW5kZXgubWpzJ1xuICAgICk7XG4gICAgY29uc3QgbWFuaWZlc3RKc29uID0gYXdhaXQgdGhpcy5jcmVhdGVNYW5pZmVzdCh7XG4gICAgICB3b3JrZmxvd0J1bmRsZVBhdGgsXG4gICAgICBtYW5pZmVzdERpcjogd29ya2Zsb3dHZW5lcmF0ZWREaXIsXG4gICAgICBtYW5pZmVzdCxcbiAgICB9KTtcblxuICAgIC8vIEV4cG9zZSBtYW5pZmVzdCBhcyBhIHN0YXRpYyBmaWxlIHdoZW4gV09SS0ZMT1dfUFVCTElDX01BTklGRVNUPTEuXG4gICAgLy8gVmVyY2VsIEJ1aWxkIE91dHB1dCBBUEkgc2VydmVzIHN0YXRpYyBmaWxlcyBmcm9tIC52ZXJjZWwvb3V0cHV0L3N0YXRpYy9cbiAgICBpZiAodGhpcy5zaG91bGRFeHBvc2VQdWJsaWNNYW5pZmVzdCAmJiBtYW5pZmVzdEpzb24pIHtcbiAgICAgIGNvbnN0IHN0YXRpY01hbmlmZXN0RGlyID0gam9pbihcbiAgICAgICAgb3V0cHV0RGlyLFxuICAgICAgICAnc3RhdGljLy53ZWxsLWtub3duL3dvcmtmbG93L3YxJ1xuICAgICAgKTtcbiAgICAgIGF3YWl0IG1rZGlyKHN0YXRpY01hbmlmZXN0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5WRVJDRUxfREVQTE9ZTUVOVF9JRCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShqb2luKHN0YXRpY01hbmlmZXN0RGlyLCAnLmdpdGlnbm9yZScpLCAnKicpO1xuICAgICAgfVxuICAgICAgYXdhaXQgY29weUZpbGUoXG4gICAgICAgIGpvaW4od29ya2Zsb3dHZW5lcmF0ZWREaXIsICdtYW5pZmVzdC5qc29uJyksXG4gICAgICAgIGpvaW4oc3RhdGljTWFuaWZlc3REaXIsICdtYW5pZmVzdC5qc29uJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVDbGllbnRMaWJyYXJ5KCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGJ1aWxkV2ViaG9va0Z1bmN0aW9uKHtcbiAgICB3b3JrZmxvd0dlbmVyYXRlZERpcixcbiAgICBidW5kbGUgPSB0cnVlLFxuICB9OiB7XG4gICAgd29ya2Zsb3dHZW5lcmF0ZWREaXI6IHN0cmluZztcbiAgICBidW5kbGU/OiBib29sZWFuO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2dCYXNlQnVpbGRlckluZm8oXG4gICAgICAnQ3JlYXRpbmcgVmVyY2VsIEJ1aWxkIE91dHB1dCBBUEkgd2ViaG9vayBmdW5jdGlvbidcbiAgICApO1xuICAgIGNvbnN0IHdlYmhvb2tGdW5jRGlyID0gam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJ3dlYmhvb2svW3Rva2VuXS5mdW5jJyk7XG5cbiAgICAvLyBCdW5kbGUgdGhlIHdlYmhvb2sgcm91dGUgd2l0aCBkZXBlbmRlbmNpZXMgcmVzb2x2ZWRcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVdlYmhvb2tCdW5kbGUoe1xuICAgICAgb3V0ZmlsZTogam9pbih3ZWJob29rRnVuY0RpciwgJ2luZGV4Lm1qcycpLFxuICAgICAgYnVuZGxlLCAvLyBCdWlsZCBPdXRwdXQgQVBJIG5lZWRzIGJ1bmRsaW5nIChleGNlcHQgaW4gdGVzdHMpXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgcGFja2FnZS5qc29uIGFuZCAudmMtY29uZmlnLmpzb24gZm9yIHdlYmhvb2sgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVBhY2thZ2VKc29uKHdlYmhvb2tGdW5jRGlyLCAnbW9kdWxlJyk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVWY0NvbmZpZyh3ZWJob29rRnVuY0Rpciwge1xuICAgICAgaGFuZGxlcjogJ2luZGV4Lm1qcycsXG4gICAgICBzaG91bGRBZGRIZWxwZXJzOiBmYWxzZSxcbiAgICAgIHJ1bnRpbWU6IHRoaXMuY29uZmlnLnJ1bnRpbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUJ1aWxkT3V0cHV0Q29uZmlnKG91dHB1dERpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gQ3JlYXRlIGNvbmZpZy5qc29uIGZvciBCdWlsZCBPdXRwdXQgQVBJXG4gICAgY29uc3QgYnVpbGRPdXRwdXRDb25maWcgPSB7XG4gICAgICB2ZXJzaW9uOiAzLFxuICAgICAgcm91dGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzcmM6ICdeXFxcXC9cXFxcLndlbGwta25vd25cXFxcL3dvcmtmbG93XFxcXC92MVxcXFwvd2ViaG9va1xcXFwvKFteXFxcXC9dKykkJyxcbiAgICAgICAgICBkZXN0OiAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3dlYmhvb2svW3Rva2VuXScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgICBqb2luKG91dHB1dERpciwgJ2NvbmZpZy5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeShidWlsZE91dHB1dENvbmZpZywgbnVsbCwgMilcbiAgICApO1xuXG4gICAgdGhpcy5sb2dCYXNlQnVpbGRlckluZm8oYEJ1aWxkIE91dHB1dCBBUEkgY3JlYXRlZCBhdCAke291dHB1dERpcn1gKTtcbiAgICB0aGlzLmxvZ0Jhc2VCdWlsZGVySW5mbyhcbiAgICAgICdDb21iaW5lZCBmdW5jdGlvbiBhdmFpbGFibGUgYXQgLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnXG4gICAgKTtcbiAgICB0aGlzLmxvZ0Jhc2VCdWlsZGVySW5mbyhcbiAgICAgICdXZWJob29rIGZ1bmN0aW9uIGF2YWlsYWJsZSBhdCAvLndlbGwta25vd24vd29ya2Zsb3cvdjEvd2ViaG9vay9bdG9rZW5dJ1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyY2VsLWJ1aWxkLW91dHB1dC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdmVyY2VsLWJ1aWxkLW91dHB1dC1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsV0FBVztJQUMxRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbEQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFFM0Usa0NBQWtDO1FBQ2xDLE1BQU0sS0FBSyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkQsdUVBQXVFO1FBQ3ZFLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLENBQUMsRUFBRTtZQUNoRCxTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUs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TUFBTSxFQUFFLG9EQUFvRDtTQUM3RCxDQUFDLENBQUM7UUFFSCwrREFBK0Q7UUFDL0QsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUU7WUFDeEMsT0FBTyxFQUFFLFdBQVc7WUFDcEIsZ0JBQWdCLEVBQUUsS0FBSztZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsdUJBQXVCLENBQUMsU0FBaUI7UUFDckQsMENBQTBDO1FBQzFDLE1BQU0saUJBQWlCLEdBQUc7WUFDeEIsT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUU7Z0JBQ047b0JBQ0UsR0FBRyxFQUFFLDBEQUEwRDtvQkFDL0QsSUFBSSxFQUFFLDBDQUEwQztpQkFDakQ7YUFDRjtTQUNGLENBQUM7UUFFRixNQUFNLFNBQVMsQ0FDYixJQUFJLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxFQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDM0MsQ0FBQztRQUVGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywrQkFBK0IsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQ3JCLDhEQUE4RCxDQUMvRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUNyQix3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvcHlGaWxlLCBta2Rpciwgcm0sIHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgam9pbiwgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBCYXNlQnVpbGRlciB9IGZyb20gJy4vYmFzZS1idWlsZGVyLmpzJztcbmltcG9ydCB7IGdldFdvcmtmbG93UXVldWVUcmlnZ2VyIH0gZnJvbSAnLi9jb25zdGFudHMuanMnO1xuXG5leHBvcnQgY2xhc3MgVmVyY2VsQnVpbGRPdXRwdXRBUElCdWlsZGVyIGV4dGVuZHMgQmFzZUJ1aWxkZXIge1xuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvdXRwdXREaXIgPSByZXNvbHZlKHRoaXMuY29uZmlnLndvcmtpbmdEaXIsICcudmVyY2VsL291dHB1dCcpO1xuICAgIGNvbnN0IGZ1bmN0aW9uc0RpciA9IGpvaW4ob3V0cHV0RGlyLCAnZnVuY3Rpb25zJyk7XG4gICAgY29uc3Qgd29ya2Zsb3dHZW5lcmF0ZWREaXIgPSBqb2luKGZ1bmN0aW9uc0RpciwgJy53ZWxsLWtub3duL3dvcmtmbG93L3YxJyk7XG5cbiAgICAvLyBFbnN1cmUgb3V0cHV0IGRpcmVjdG9yaWVzIGV4aXN0XG4gICAgYXdhaXQgbWtkaXIod29ya2Zsb3dHZW5lcmF0ZWREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIC8vIEJ1aWxkIGNhY2hlcyBtYXkgc3RpbGwgY29udGFpbiB0aGUgcmV0aXJlZCBzdGFuZGFsb25lIHN0ZXAgZnVuY3Rpb24uXG4gICAgYXdhaXQgcm0oam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJ3N0ZXAuZnVuYycpLCB7XG4gICAgICByZWN1cnNpdmU6IHRydWUsXG4gICAgICBmb3JjZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlucHV0RmlsZXMgPSBhd2FpdCB0aGlzLmdldElucHV0RmlsZXMoKTtcbiAgICBjb25zdCB0c2NvbmZpZ1BhdGggPSBhd2FpdCB0aGlzLmZpbmRUc0NvbmZpZ1BhdGgoKTtcbiAgICAvLyBDcmVhdGUgY29tYmluZWQgYnVuZGxlIGluIGZsb3cuZnVuYy9cbiAgICB0aGlzLmxvZ0Jhc2VCdWlsZGVySW5mbyhcbiAgICAgICdDcmVhdGluZyBWZXJjZWwgQnVpbGQgT3V0cHV0IEFQSSBjb21iaW5lZCBmdW5jdGlvbidcbiAgICApO1xuICAgIGNvbnN0IHdvcmtmbG93c0Z1bmNEaXIgPSBqb2luKHdvcmtmbG93R2VuZXJhdGVkRGlyLCAnZmxvdy5mdW5jJyk7XG4gICAgYXdhaXQgbWtkaXIod29ya2Zsb3dzRnVuY0RpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICBjb25zdCB7IG1hbmlmZXN0IH0gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbWJpbmVkQnVuZGxlKHtcbiAgICAgIGlucHV0RmlsZXMsXG4gICAgICBzdGVwc091dGZpbGU6IGpvaW4od29ya2Zsb3dzRnVuY0RpciwgJ19fc3RlcF9yZWdpc3RyYXRpb25zLm1qcycpLFxuICAgICAgZmxvd091dGZpbGU6IGpvaW4od29ya2Zsb3dzRnVuY0RpciwgJ2luZGV4Lm1qcycpLFxuICAgICAgdHNjb25maWdQYXRoLFxuICAgICAgYnVuZGxlRmluYWxPdXRwdXQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgcGFja2FnZS5qc29uIGFuZCAudmMtY29uZmlnLmpzb24gZm9yIGNvbWJpbmVkIGZ1bmN0aW9uXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVQYWNrYWdlSnNvbih3b3JrZmxvd3NGdW5jRGlyLCAnbW9kdWxlJyk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVWY0NvbmZpZyh3b3JrZmxvd3NGdW5jRGlyLCB7XG4gICAgICBoYW5kbGVyOiAnaW5kZXgubWpzJyxcbiAgICAgIC8vIFNraXAgdGhlIHNvdXJjZS1tYXAtc3VwcG9ydCBydW50aW1lIHNoaW0gd2hlbiBzb3VyY2VtYXBzIGFyZVxuICAgICAgLy8gZGlzYWJsZWQ6IGl0J3MgYSBtZWFuaW5nZnVsIGNodW5rIG9mIHRoZSBmdW5jdGlvbiBidW5kbGUgYW5kXG4gICAgICAvLyBzZXJ2ZXMgbm8gcHVycG9zZSB3aXRob3V0IG1hcHMuXG4gICAgICBzaG91bGRBZGRTb3VyY2VtYXBTdXBwb3J0OiB0aGlzLnNvdXJjZW1hcHNFbmFibGVkLFxuICAgICAgbWF4RHVyYXRpb246ICdtYXgnLFxuICAgICAgZXhwZXJpbWVudGFsVHJpZ2dlcnM6IFtnZXRXb3JrZmxvd1F1ZXVlVHJpZ2dlcigpXSxcbiAgICAgIHJ1bnRpbWU6IHRoaXMuY29uZmlnLnJ1bnRpbWUsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLmJ1aWxkV2ViaG9va0Z1bmN0aW9uKHsgd29ya2Zsb3dHZW5lcmF0ZWREaXIgfSk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVCdWlsZE91dHB1dENvbmZpZyhvdXRwdXREaXIpO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pZmllZCBtYW5pZmVzdFxuICAgIGNvbnN0IHdvcmtmbG93QnVuZGxlUGF0aCA9IGpvaW4oXG4gICAgICB3b3JrZmxvd0dlbmVyYXRlZERpcixcbiAgICAgICdmbG93LmZ1bmMvaW5kZXgubWpzJ1xuICAgICk7XG4gICAgY29uc3QgbWFuaWZlc3RKc29uID0gYXdhaXQgdGhpcy5jcmVhdGVNYW5pZmVzdCh7XG4gICAgICB3b3JrZmxvd0J1bmRsZVBhdGgsXG4gICAgICBtYW5pZmVzdERpcjogd29ya2Zsb3dHZW5lcmF0ZWREaXIsXG4gICAgICBtYW5pZmVzdCxcbiAgICB9KTtcblxuICAgIC8vIEV4cG9zZSBtYW5pZmVzdCBhcyBhIHN0YXRpYyBmaWxlIHdoZW4gV09SS0ZMT1dfUFVCTElDX01BTklGRVNUPTEuXG4gICAgLy8gVmVyY2VsIEJ1aWxkIE91dHB1dCBBUEkgc2VydmVzIHN0YXRpYyBmaWxlcyBmcm9tIC52ZXJjZWwvb3V0cHV0L3N0YXRpYy9cbiAgICBpZiAodGhpcy5zaG91bGRFeHBvc2VQdWJsaWNNYW5pZmVzdCAmJiBtYW5pZmVzdEpzb24pIHtcbiAgICAgIGNvbnN0IHN0YXRpY01hbmlmZXN0RGlyID0gam9pbihcbiAgICAgICAgb3V0cHV0RGlyLFxuICAgICAgICAnc3RhdGljLy53ZWxsLWtub3duL3dvcmtmbG93L3YxJ1xuICAgICAgKTtcbiAgICAgIGF3YWl0IG1rZGlyKHN0YXRpY01hbmlmZXN0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5WRVJDRUxfREVQTE9ZTUVOVF9JRCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShqb2luKHN0YXRpY01hbmlmZXN0RGlyLCAnLmdpdGlnbm9yZScpLCAnKicpO1xuICAgICAgfVxuICAgICAgYXdhaXQgY29weUZpbGUoXG4gICAgICAgIGpvaW4od29ya2Zsb3dHZW5lcmF0ZWREaXIsICdtYW5pZmVzdC5qc29uJyksXG4gICAgICAgIGpvaW4oc3RhdGljTWFuaWZlc3REaXIsICdtYW5pZmVzdC5qc29uJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVDbGllbnRMaWJyYXJ5KCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGJ1aWxkV2ViaG9va0Z1bmN0aW9uKHtcbiAgICB3b3JrZmxvd0dlbmVyYXRlZERpcixcbiAgICBidW5kbGUgPSB0cnVlLFxuICB9OiB7XG4gICAgd29ya2Zsb3dHZW5lcmF0ZWREaXI6IHN0cmluZztcbiAgICBidW5kbGU/OiBib29sZWFuO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2dCYXNlQnVpbGRlckluZm8oXG4gICAgICAnQ3JlYXRpbmcgVmVyY2VsIEJ1aWxkIE91dHB1dCBBUEkgd2ViaG9vayBmdW5jdGlvbidcbiAgICApO1xuICAgIGNvbnN0IHdlYmhvb2tGdW5jRGlyID0gam9pbih3b3JrZmxvd0dlbmVyYXRlZERpciwgJ3dlYmhvb2svW3Rva2VuXS5mdW5jJyk7XG5cbiAgICAvLyBCdW5kbGUgdGhlIHdlYmhvb2sgcm91dGUgd2l0aCBkZXBlbmRlbmNpZXMgcmVzb2x2ZWRcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVdlYmhvb2tCdW5kbGUoe1xuICAgICAgb3V0ZmlsZTogam9pbih3ZWJob29rRnVuY0RpciwgJ2luZGV4Lm1qcycpLFxuICAgICAgYnVuZGxlLCAvLyBCdWlsZCBPdXRwdXQgQVBJIG5lZWRzIGJ1bmRsaW5nIChleGNlcHQgaW4gdGVzdHMpXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgcGFja2FnZS5qc29uIGFuZCAudmMtY29uZmlnLmpzb24gZm9yIHdlYmhvb2sgZnVuY3Rpb25cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVBhY2thZ2VKc29uKHdlYmhvb2tGdW5jRGlyLCAnbW9kdWxlJyk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVWY0NvbmZpZyh3ZWJob29rRnVuY0Rpciwge1xuICAgICAgaGFuZGxlcjogJ2luZGV4Lm1qcycsXG4gICAgICBzaG91bGRBZGRIZWxwZXJzOiBmYWxzZSxcbiAgICAgIHJ1bnRpbWU6IHRoaXMuY29uZmlnLnJ1bnRpbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUJ1aWxkT3V0cHV0Q29uZmlnKG91dHB1dERpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gQ3JlYXRlIGNvbmZpZy5qc29uIGZvciBCdWlsZCBPdXRwdXQgQVBJXG4gICAgY29uc3QgYnVpbGRPdXRwdXRDb25maWcgPSB7XG4gICAgICB2ZXJzaW9uOiAzLFxuICAgICAgcm91dGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzcmM6ICdeXFxcXC9cXFxcLndlbGwta25vd25cXFxcL3dvcmtmbG93XFxcXC92MVxcXFwvd2ViaG9va1xcXFwvKFteXFxcXC9dKykkJyxcbiAgICAgICAgICBkZXN0OiAnLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3dlYmhvb2svW3Rva2VuXScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgICBqb2luKG91dHB1dERpciwgJ2NvbmZpZy5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeShidWlsZE91dHB1dENvbmZpZywgbnVsbCwgMilcbiAgICApO1xuXG4gICAgdGhpcy5sb2dCYXNlQnVpbGRlckluZm8oYEJ1aWxkIE91dHB1dCBBUEkgY3JlYXRlZCBhdCAke291dHB1dERpcn1gKTtcbiAgICB0aGlzLmxvZ0Jhc2VCdWlsZGVySW5mbyhcbiAgICAgICdDb21iaW5lZCBmdW5jdGlvbiBhdmFpbGFibGUgYXQgLy53ZWxsLWtub3duL3dvcmtmbG93L3YxL2Zsb3cnXG4gICAgKTtcbiAgICB0aGlzLmxvZ0Jhc2VCdWlsZGVySW5mbyhcbiAgICAgICdXZWJob29rIGZ1bmN0aW9uIGF2YWlsYWJsZSBhdCAvLndlbGwta25vd24vd29ya2Zsb3cvdjEvd2ViaG9vay9bdG9rZW5dJ1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reports whether `targetPath` already holds exactly `content`.
|
|
3
|
+
*
|
|
4
|
+
* Generated files are rewritten on every rebuild, and in dev most rebuilds
|
|
5
|
+
* produce byte-identical output. Rewriting anyway bumps the mtime (and, for
|
|
6
|
+
* the rename-based atomic write, the inode) of a file that lives inside the
|
|
7
|
+
* app directory the dev server watches, so the bundler sees a change and
|
|
8
|
+
* recompiles. Comparing first lets the caller skip the write entirely.
|
|
9
|
+
*
|
|
10
|
+
* Any read failure (missing file, permissions) reports `false`, so the caller
|
|
11
|
+
* falls back to writing.
|
|
12
|
+
*/
|
|
13
|
+
export declare function hasSameContent(targetPath: string, content: string): Promise<boolean>;
|
|
14
|
+
/**
|
|
15
|
+
* `writeFile`, skipped when the file already holds `content`.
|
|
16
|
+
*
|
|
17
|
+
* Returns whether the file was actually written.
|
|
18
|
+
*/
|
|
19
|
+
export declare function writeFileIfChanged(targetPath: string, content: string): Promise<boolean>;
|
|
20
|
+
//# sourceMappingURL=write-if-changed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-if-changed.d.ts","sourceRoot":"","sources":["../src/write-if-changed.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAMlB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { readFile, stat, writeFile } from 'node:fs/promises';
|
|
2
|
+
/**
|
|
3
|
+
* Reports whether `targetPath` already holds exactly `content`.
|
|
4
|
+
*
|
|
5
|
+
* Generated files are rewritten on every rebuild, and in dev most rebuilds
|
|
6
|
+
* produce byte-identical output. Rewriting anyway bumps the mtime (and, for
|
|
7
|
+
* the rename-based atomic write, the inode) of a file that lives inside the
|
|
8
|
+
* app directory the dev server watches, so the bundler sees a change and
|
|
9
|
+
* recompiles. Comparing first lets the caller skip the write entirely.
|
|
10
|
+
*
|
|
11
|
+
* Any read failure (missing file, permissions) reports `false`, so the caller
|
|
12
|
+
* falls back to writing.
|
|
13
|
+
*/
|
|
14
|
+
export async function hasSameContent(targetPath, content) {
|
|
15
|
+
try {
|
|
16
|
+
// Compare bytes rather than decoded strings: utf-8 decoding is lossy, so
|
|
17
|
+
// two different byte sequences can decode to the same string and a real
|
|
18
|
+
// change would be skipped.
|
|
19
|
+
const expected = Buffer.from(content, 'utf8');
|
|
20
|
+
// Reject on size before reading the file, which for the generated bundle
|
|
21
|
+
// is the expensive half.
|
|
22
|
+
const { size } = await stat(targetPath);
|
|
23
|
+
if (size !== expected.byteLength) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return Buffer.compare(await readFile(targetPath), expected) === 0;
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* `writeFile`, skipped when the file already holds `content`.
|
|
34
|
+
*
|
|
35
|
+
* Returns whether the file was actually written.
|
|
36
|
+
*/
|
|
37
|
+
export async function writeFileIfChanged(targetPath, content) {
|
|
38
|
+
if (await hasSameContent(targetPath, content)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
await writeFile(targetPath, content);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtaWYtY2hhbmdlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy93cml0ZS1pZi1jaGFuZ2VkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTdEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLFVBQWtCLEVBQ2xCLE9BQWU7SUFFZixJQUFJLENBQUM7UUFDSCx5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLDJCQUEyQjtRQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5Qyx5RUFBeUU7UUFDekUseUJBQXlCO1FBQ3pCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxJQUFJLElBQUksS0FBSyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGtCQUFrQixDQUN0QyxVQUFrQixFQUNsQixPQUFlO0lBRWYsSUFBSSxNQUFNLGNBQWMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLFNBQVMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGUsIHN0YXQsIHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG4vKipcbiAqIFJlcG9ydHMgd2hldGhlciBgdGFyZ2V0UGF0aGAgYWxyZWFkeSBob2xkcyBleGFjdGx5IGBjb250ZW50YC5cbiAqXG4gKiBHZW5lcmF0ZWQgZmlsZXMgYXJlIHJld3JpdHRlbiBvbiBldmVyeSByZWJ1aWxkLCBhbmQgaW4gZGV2IG1vc3QgcmVidWlsZHNcbiAqIHByb2R1Y2UgYnl0ZS1pZGVudGljYWwgb3V0cHV0LiBSZXdyaXRpbmcgYW55d2F5IGJ1bXBzIHRoZSBtdGltZSAoYW5kLCBmb3JcbiAqIHRoZSByZW5hbWUtYmFzZWQgYXRvbWljIHdyaXRlLCB0aGUgaW5vZGUpIG9mIGEgZmlsZSB0aGF0IGxpdmVzIGluc2lkZSB0aGVcbiAqIGFwcCBkaXJlY3RvcnkgdGhlIGRldiBzZXJ2ZXIgd2F0Y2hlcywgc28gdGhlIGJ1bmRsZXIgc2VlcyBhIGNoYW5nZSBhbmRcbiAqIHJlY29tcGlsZXMuIENvbXBhcmluZyBmaXJzdCBsZXRzIHRoZSBjYWxsZXIgc2tpcCB0aGUgd3JpdGUgZW50aXJlbHkuXG4gKlxuICogQW55IHJlYWQgZmFpbHVyZSAobWlzc2luZyBmaWxlLCBwZXJtaXNzaW9ucykgcmVwb3J0cyBgZmFsc2VgLCBzbyB0aGUgY2FsbGVyXG4gKiBmYWxscyBiYWNrIHRvIHdyaXRpbmcuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYXNTYW1lQ29udGVudChcbiAgdGFyZ2V0UGF0aDogc3RyaW5nLFxuICBjb250ZW50OiBzdHJpbmdcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIC8vIENvbXBhcmUgYnl0ZXMgcmF0aGVyIHRoYW4gZGVjb2RlZCBzdHJpbmdzOiB1dGYtOCBkZWNvZGluZyBpcyBsb3NzeSwgc29cbiAgICAvLyB0d28gZGlmZmVyZW50IGJ5dGUgc2VxdWVuY2VzIGNhbiBkZWNvZGUgdG8gdGhlIHNhbWUgc3RyaW5nIGFuZCBhIHJlYWxcbiAgICAvLyBjaGFuZ2Ugd291bGQgYmUgc2tpcHBlZC5cbiAgICBjb25zdCBleHBlY3RlZCA9IEJ1ZmZlci5mcm9tKGNvbnRlbnQsICd1dGY4Jyk7XG4gICAgLy8gUmVqZWN0IG9uIHNpemUgYmVmb3JlIHJlYWRpbmcgdGhlIGZpbGUsIHdoaWNoIGZvciB0aGUgZ2VuZXJhdGVkIGJ1bmRsZVxuICAgIC8vIGlzIHRoZSBleHBlbnNpdmUgaGFsZi5cbiAgICBjb25zdCB7IHNpemUgfSA9IGF3YWl0IHN0YXQodGFyZ2V0UGF0aCk7XG4gICAgaWYgKHNpemUgIT09IGV4cGVjdGVkLmJ5dGVMZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKGF3YWl0IHJlYWRGaWxlKHRhcmdldFBhdGgpLCBleHBlY3RlZCkgPT09IDA7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIGB3cml0ZUZpbGVgLCBza2lwcGVkIHdoZW4gdGhlIGZpbGUgYWxyZWFkeSBob2xkcyBgY29udGVudGAuXG4gKlxuICogUmV0dXJucyB3aGV0aGVyIHRoZSBmaWxlIHdhcyBhY3R1YWxseSB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVGaWxlSWZDaGFuZ2VkKFxuICB0YXJnZXRQYXRoOiBzdHJpbmcsXG4gIGNvbnRlbnQ6IHN0cmluZ1xuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmIChhd2FpdCBoYXNTYW1lQ29udGVudCh0YXJnZXRQYXRoLCBjb250ZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBhd2FpdCB3cml0ZUZpbGUodGFyZ2V0UGF0aCwgY29udGVudCk7XG4gIHJldHVybiB0cnVlO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-if-changed.test.d.ts","sourceRoot":"","sources":["../src/write-if-changed.test.ts"],"names":[],"mappings":""}
|