cdk-local-lambda 0.0.3 → 0.0.5
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 +8 -8
- package/lib/cli/commands/local.js +8 -10
- package/lib/cli/docker/container.d.ts +5 -5
- package/lib/cli/docker/container.js +1 -1
- package/lib/cli/docker/types.d.ts +2 -2
- package/lib/cli/docker/types.js +1 -1
- package/lib/cli/runtime-api/types.d.ts +2 -2
- package/lib/cli/runtime-api/types.js +1 -1
- package/lib/shared/types.d.ts +1 -1
- package/lib/shared/types.js +1 -1
- package/package.json +2 -2
|
@@ -84,13 +84,13 @@ export declare const makeLambdaContainerConfig: (options: {
|
|
|
84
84
|
functionVersion: string;
|
|
85
85
|
memoryMB: number;
|
|
86
86
|
timeoutSeconds: number;
|
|
87
|
-
handler?: string;
|
|
88
|
-
awsRegion?: string;
|
|
89
|
-
platform?: string;
|
|
90
|
-
additionalEnv?: Record<string, string
|
|
87
|
+
handler?: string | undefined;
|
|
88
|
+
awsRegion?: string | undefined;
|
|
89
|
+
platform?: string | undefined;
|
|
90
|
+
additionalEnv?: Record<string, string> | undefined;
|
|
91
91
|
invocationContexts?: Map<string, {
|
|
92
92
|
num: number;
|
|
93
|
-
}
|
|
93
|
+
}> | undefined;
|
|
94
94
|
}) => DockerRunConfig;
|
|
95
95
|
/**
|
|
96
96
|
* Stream output from a Docker container.
|
|
@@ -411,4 +411,4 @@ export const buildExtensionWrapperCommand = (originalEntrypoint, originalCmd) =>
|
|
|
411
411
|
command: ["-c", fullCommand],
|
|
412
412
|
};
|
|
413
413
|
};
|
|
414
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9kb2NrZXIvY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxJQUFJLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRTlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYyxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFRbkU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUdqQyxFQUFFLENBQ0YsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNULEdBQUcsRUFBRSxHQUFHLEVBQUU7UUFDUixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDOUIsTUFBTSxPQUFPLEdBQUcsUUFBUSxLQUFLLE9BQU8sQ0FBQTtRQUNwQyxNQUFNLEtBQUssR0FDVCxPQUFPO1lBQ1AsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsS0FBSyxTQUFTO2dCQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQTtRQUUxQywwREFBMEQ7UUFDMUQsMkRBQTJEO1FBQzNELE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQTtRQUV6QyxNQUFNLFdBQVcsR0FBRyxlQUFlO1lBQ2pDLENBQUMsQ0FBQyxzQkFBc0I7WUFDeEIsQ0FBQyxDQUFDLFlBQVksQ0FBQSxDQUFDLGdDQUFnQztRQUVqRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLFFBQVE7WUFDcEIsT0FBTztZQUNQLEtBQUs7WUFDTCxlQUFlO1lBQ2YsV0FBVztTQUNaLENBQUE7SUFDSCxDQUFDO0lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxF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QyxXQUE0QixFQUNpQixFQUFFO0lBQy9DLDBEQUEwRDtJQUMxRCxxREFBcUQ7SUFDckQsTUFBTSxlQUFlLEdBQUc7UUFDdEIsR0FBRyxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztRQUM3QixHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztLQUN2QixDQUFBO0lBRUQsbUZBQW1GO0lBQ25GLE1BQU0sZ0JBQWdCLEdBQ3BCLGlFQUFpRSxDQUFBO0lBRW5FLGlDQUFpQztJQUNqQyxJQUFJLFdBQW1CLENBQUE7SUFDdkIsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9CLDJDQUEyQztRQUMzQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNoRSxtREFBbUQ7UUFDbkQsV0FBVyxHQUFHLEdBQUcsZ0JBQWdCLFVBQVUsY0FBYyxFQUFFLENBQUE7SUFDN0QsQ0FBQztTQUFNLENBQUM7UUFDTixzRUFBc0U7UUFDdEUsV0FBVyxHQUFHLGdCQUFnQixDQUFBO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUM7S0FDN0IsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRG9ja2VyIGNvbnRhaW5lciBtYW5hZ2VtZW50IHV0aWxpdGllcy5cbiAqXG4gKiBIYW5kbGVzIHJ1bm5pbmcgRG9ja2VyIGNvbnRhaW5lcnMgd2l0aCB0aGUgTGFtYmRhIFJ1bnRpbWUgQVBJXG4gKiBlbnZpcm9ubWVudCBjb25maWd1cmVkLiBVc2VzIEBlZmZlY3QvcGxhdGZvcm0gQ29tbWFuZCBmb3JcbiAqIHByb3BlciBFZmZlY3QtYmFzZWQgcHJvY2VzcyBtYW5hZ2VtZW50LlxuICovXG5cbmltcG9ydCAqIGFzIG9zIGZyb20gXCJub2RlOm9zXCJcbmltcG9ydCB7IENvbW1hbmRFeGVjdXRvciwgQ29tbWFuZCBhcyBQbGF0Zm9ybUNvbW1hbmQgfSBmcm9tIFwiQGVmZmVjdC9wbGF0Zm9ybVwiXG5pbXBvcnQgdHlwZSB7IFByb2Nlc3MgYXMgRWZmZWN0UHJvY2VzcyB9IGZyb20gXCJAZWZmZWN0L3BsYXRmb3JtL0NvbW1hbmRFeGVjdXRvclwiXG5pbXBvcnQgeyBDb250ZXh0LCBFZmZlY3QsIExheWVyLCB0eXBlIFNjb3BlLCBTdHJlYW0gfSBmcm9tIFwiZWZmZWN0XCJcbmltcG9ydCB0eXBlIHtcbiAgRG9ja2VySW1hZ2VDb25maWcsXG4gIERvY2tlclJ1bkNvbmZpZyxcbiAgRG9ja2VyUnVuUmVzdWx0LFxuICBEb2NrZXJSdW50aW1lSW5mbyxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIlxuXG4vKipcbiAqIERldGVjdCB0aGUgRG9ja2VyIHJ1bnRpbWUgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBkZXRlY3REb2NrZXJSdW50aW1lID0gKCk6IEVmZmVjdC5FZmZlY3Q8XG4gIERvY2tlclJ1bnRpbWVJbmZvLFxuICBFcnJvclxuPiA9PlxuICBFZmZlY3QudHJ5KHtcbiAgICB0cnk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHBsYXRmb3JtID0gb3MucGxhdGZvcm0oKVxuICAgICAgY29uc3QgaXNMaW51eCA9IHBsYXRmb3JtID09PSBcImxpbnV4XCJcbiAgICAgIGNvbnN0IGlzV3NsID1cbiAgICAgICAgaXNMaW51eCAmJlxuICAgICAgICAocHJvY2Vzcy5lbnYuV1NMX0RJU1RST19OQU1FICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICBwcm9jZXNzLmVudi5XU0xfSU5URVJPUCAhPT0gdW5kZWZpbmVkKVxuXG4gICAgICAvLyBPbiBNYWMvV2luZG93cyBEb2NrZXIgRGVza3RvcCwgdXNlIGhvc3QuZG9ja2VyLmludGVybmFsXG4gICAgICAvLyBPbiBMaW51eCwgd2UgbmVlZCB0byB1c2UgdGhlIGhvc3QncyBJUCBvciAtLW5ldHdvcms9aG9zdFxuICAgICAgY29uc3QgaXNEb2NrZXJEZXNrdG9wID0gIWlzTGludXggfHwgaXNXc2xcblxuICAgICAgY29uc3QgaG9zdEFkZHJlc3MgPSBpc0RvY2tlckRlc2t0b3BcbiAgICAgICAgPyBcImhvc3QuZG9ja2VyLmludGVybmFsXCJcbiAgICAgICAgOiBcIjE3Mi4xNy4wLjFcIiAvLyBEZWZhdWx0IERvY2tlciBicmlkZ2UgZ2F0ZXdheVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb2NrZXJQYXRoOiBcImRvY2tlclwiLFxuICAgICAgICBpc0xpbnV4LFxuICAgICAgICBpc1dzbCxcbiAgICAgICAgaXNEb2NrZXJEZXNrdG9wLFxuICAgICAgICBob3N0QWRkcmVzcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNhdGNoOiAoZXJyb3IpID0+XG4gICAgICBuZXcgRXJyb3IoYEZhaWxlZCB0byBkZXRlY3QgRG9ja2VyIHJ1bnRpbWU6ICR7U3RyaW5nKGVycm9yKX1gKSxcbiAgfSlcblxuLyoqXG4gKiBCdWlsZCBEb2NrZXIgcnVuIGFyZ3VtZW50cyBmcm9tIGNvbmZpZy5cbiAqL1xuY29uc3QgYnVpbGREb2NrZXJSdW5BcmdzID0gKFxuICBjb25maWc6IERvY2tlclJ1bkNvbmZpZyxcbiAgcnVudGltZTogRG9ja2VyUnVudGltZUluZm8sXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGFyZ3M6IHN0cmluZ1tdID0gW1wicnVuXCIsIFwiLS1ybVwiXVxuXG4gIC8vIENvbnRhaW5lciBuYW1lIChhZGQgdGltZXN0YW1wIGZvciB1bmlxdWVuZXNzKVxuICBpZiAoY29uZmlnLmNvbnRhaW5lck5hbWUpIHtcbiAgICBhcmdzLnB1c2goXCItLW5hbWVcIiwgYCR7Y29uZmlnLmNvbnRhaW5lck5hbWV9LSR7RGF0ZS5ub3coKX1gKVxuICB9XG5cbiAgLy8gUGxhdGZvcm0gLSBhbGxvdyBydW5uaW5nIEFSTTY0IGltYWdlcyBvbiB4ODZfNjQgdmlhIFFFTVVcbiAgaWYgKGNvbmZpZy5wbGF0Zm9ybSkge1xuICAgIGFyZ3MucHVzaChcIi0tcGxhdGZvcm1cIiwgY29uZmlnLnBsYXRmb3JtKVxuICB9XG5cbiAgLy8gTWVtb3J5IGxpbWl0XG4gIGFyZ3MucHVzaChcIi0tbWVtb3J5XCIsIGAke2NvbmZpZy5tZW1vcnlNQn1tYClcblxuICAvLyBOZXR3b3JrIG1vZGVcbiAgaWYgKGNvbmZpZy5uZXR3b3JrTW9kZSA9PT0gXCJob3N0XCIpIHtcbiAgICBhcmdzLnB1c2goXCItLW5ldHdvcmtcIiwgXCJob3N0XCIpXG4gIH0gZWxzZSBpZiAoY29uZmlnLm5ldHdvcmtNb2RlICE9PSBcIm5vbmVcIikge1xuICAgIC8vIEZvciBicmlkZ2UgbW9kZSwgYWRkIGhvc3QgbWFwcGluZyBmb3Igbm9uLUxpbnV4XG4gICAgaWYgKHJ1bnRpbWUuaXNEb2NrZXJEZXNrdG9wKSB7XG4gICAgICAvLyBob3N0LmRvY2tlci5pbnRlcm5hbCBpcyBhdXRvbWF0aWNhbGx5IGF2YWlsYWJsZSBvbiBEb2NrZXIgRGVza3RvcFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPbiBMaW51eCwgYWRkIGV4cGxpY2l0IGhvc3QgbWFwcGluZyBhbmQgaGVscGVyIGFkZHJlc3NcbiAgICAgIGFyZ3MucHVzaChcIi0tYWRkLWhvc3RcIiwgYGhvc3QuZG9ja2VyLmludGVybmFsOiR7cnVudGltZS5ob3N0QWRkcmVzc31gKVxuICAgICAgYXJncy5wdXNoKFwiLS1hZGQtaG9zdFwiLCBgaG9zdC5jb250YWluZXJzLmludGVybmFsOiR7cnVudGltZS5ob3N0QWRkcmVzc31gKVxuICAgICAgYXJncy5wdXNoKFwiLS1hZGQtaG9zdFwiLCBgcnVudGltZS5hcGk6JHtydW50aW1lLmhvc3RBZGRyZXNzfWApXG4gICAgfVxuICB9XG5cbiAgLy8gRXh0cmEgaG9zdHNcbiAgaWYgKGNvbmZpZy5leHRyYUhvc3RzKSB7XG4gICAgZm9yIChjb25zdCBob3N0IG9mIGNvbmZpZy5leHRyYUhvc3RzKSB7XG4gICAgICBhcmdzLnB1c2goXCItLWFkZC1ob3N0XCIsIGhvc3QpXG4gICAgfVxuICB9XG5cbiAgLy8gRW52aXJvbm1lbnQgdmFyaWFibGVzXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5lbnZpcm9ubWVudCkpIHtcbiAgICBhcmdzLnB1c2goXCItZVwiLCBgJHtrZXl9PSR7dmFsdWV9YClcbiAgfVxuXG4gIC8vIFdvcmtpbmcgZGlyZWN0b3J5XG4gIGlmIChjb25maWcud29ya2Rpcikge1xuICAgIGFyZ3MucHVzaChcIi13XCIsIGNvbmZpZy53b3JrZGlyKVxuICB9XG5cbiAgLy8gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgaWYgKGNvbmZpZy5hZGRpdGlvbmFsQXJncykge1xuICAgIGFyZ3MucHVzaCguLi5jb25maWcuYWRkaXRpb25hbEFyZ3MpXG4gIH1cblxuICAvLyBFbnRyeXBvaW50IG92ZXJyaWRlXG4gIGlmIChjb25maWcuZW50cnlwb2ludCAmJiBjb25maWcuZW50cnlwb2ludC5sZW5ndGggPiAwKSB7XG4gICAgYXJncy5wdXNoKFwiLS1lbnRyeXBvaW50XCIsIGNvbmZpZy5lbnRyeXBvaW50WzBdKVxuICB9XG5cbiAgLy8gSW1hZ2VcbiAgYXJncy5wdXNoKGNvbmZpZy5pbWFnZVVyaSlcblxuICAvLyBFbnRyeXBvaW50IGFkZGl0aW9uYWwgYXJncyAoYWZ0ZXIgaW1hZ2UpXG4gIGlmIChjb25maWcuZW50cnlwb2ludCAmJiBjb25maWcuZW50cnlwb2ludC5sZW5ndGggPiAxKSB7XG4gICAgYXJncy5wdXNoKC4uLmNvbmZpZy5lbnRyeXBvaW50LnNsaWNlKDEpKVxuICB9XG5cbiAgLy8gQ29tbWFuZCBvdmVycmlkZSAoYWZ0ZXIgaW1hZ2UgYW5kIGVudHJ5cG9pbnQgYXJncylcbiAgaWYgKGNvbmZpZy5jb21tYW5kKSB7XG4gICAgYXJncy5wdXNoKC4uLmNvbmZpZy5jb21tYW5kKVxuICB9XG5cbiAgcmV0dXJuIGFyZ3Ncbn1cblxuLyoqXG4gKiBEb2NrZXIgU2VydmljZSBpbnRlcmZhY2UgZm9yIEVmZmVjdC1iYXNlZCBEb2NrZXIgb3BlcmF0aW9ucy5cbiAqIEFsbCBzY29wZWQgb3BlcmF0aW9ucyByZXF1aXJlIGJvdGggU2NvcGUgYW5kIENvbW1hbmRFeGVjdXRvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFJ1biBhIERvY2tlciBjb250YWluZXIgYW5kIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlLlxuICAgKiBPdXRwdXQgaXMgc3RyZWFtZWQgdG8gc3Rkb3V0L3N0ZGVyci5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bjogKFxuICAgIGNvbmZpZzogRG9ja2VyUnVuQ29uZmlnLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRG9ja2VyUnVuUmVzdWx0LFxuICAgIEVycm9yLFxuICAgIFNjb3BlLlNjb3BlIHwgQ29tbWFuZEV4ZWN1dG9yLkNvbW1hbmRFeGVjdXRvclxuICA+XG5cbiAgLyoqXG4gICAqIFJ1biBhIERvY2tlciBjb250YWluZXIgd2l0aCBzY29wZWQgbGlmZWN5Y2xlIG1hbmFnZW1lbnQuXG4gICAqIFJldHVybnMgdGhlIHJ1bm5pbmcgcHJvY2VzcyB3aGljaCBjYW4gYmUgaW50ZXJydXB0ZWQgdmlhIHNjb3BlLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVuU2NvcGVkOiAoXG4gICAgY29uZmlnOiBEb2NrZXJSdW5Db25maWcsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBFZmZlY3RQcm9jZXNzLFxuICAgIEVycm9yLFxuICAgIFNjb3BlLlNjb3BlIHwgQ29tbWFuZEV4ZWN1dG9yLkNvbW1hbmRFeGVjdXRvclxuICA+XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgRG9ja2VyIGltYWdlIGZyb20gYSBsb2NhbCBjb250ZXh0IGRpcmVjdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkOiAob3B0aW9uczoge1xuICAgIGNvbnRleHRQYXRoOiBzdHJpbmdcbiAgICBpbWFnZU5hbWU6IHN0cmluZ1xuICAgIHBsYXRmb3JtPzogc3RyaW5nXG4gIH0pID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgdm9pZCxcbiAgICBFcnJvcixcbiAgICBTY29wZS5TY29wZSB8IENvbW1hbmRFeGVjdXRvci5Db21tYW5kRXhlY3V0b3JcbiAgPlxuXG4gIC8qKlxuICAgKiBQdWxsIGEgRG9ja2VyIGltYWdlIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuXG4gICAqL1xuICByZWFkb25seSBwdWxsOiAoXG4gICAgaW1hZ2VVcmk6IHN0cmluZyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PHZvaWQsIEVycm9yLCBTY29wZS5TY29wZSB8IENvbW1hbmRFeGVjdXRvci5Db21tYW5kRXhlY3V0b3I+XG5cbiAgLyoqXG4gICAqIFN0b3AgRG9ja2VyIGNvbnRhaW5lcnMgbWF0Y2hpbmcgYSBuYW1lIGZpbHRlci5cbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbnRhaW5lcnMgc3RvcHBlZC5cbiAgICogQHBhcmFtIGNvbnRhaW5lck5hbWVGaWx0ZXIgLSBGaWx0ZXIgdG8gbWF0Y2ggY29udGFpbmVyIG5hbWVzXG4gICAqIEBwYXJhbSB0aW1lb3V0U2Vjb25kcyAtIFNlY29uZHMgdG8gd2FpdCBiZWZvcmUgU0lHS0lMTCAoZGVmYXVsdDogMTApXG4gICAqL1xuICByZWFkb25seSBzdG9wOiAoXG4gICAgY29udGFpbmVyTmFtZUZpbHRlcjogc3RyaW5nLFxuICAgIHRpbWVvdXRTZWNvbmRzPzogbnVtYmVyLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbnVtYmVyLFxuICAgIEVycm9yLFxuICAgIFNjb3BlLlNjb3BlIHwgQ29tbWFuZEV4ZWN1dG9yLkNvbW1hbmRFeGVjdXRvclxuICA+XG5cbiAgLyoqXG4gICAqIExpc3QgRG9ja2VyIGNvbnRhaW5lciBJRHMgbWF0Y2hpbmcgYSBuYW1lIGZpbHRlci5cbiAgICovXG4gIHJlYWRvbmx5IGxpc3Q6IChcbiAgICBjb250YWluZXJOYW1lRmlsdGVyOiBzdHJpbmcsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBzdHJpbmdbXSxcbiAgICBFcnJvcixcbiAgICBTY29wZS5TY29wZSB8IENvbW1hbmRFeGVjdXRvci5Db21tYW5kRXhlY3V0b3JcbiAgPlxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRldGVjdGVkIERvY2tlciBydW50aW1lIGluZm8uXG4gICAqL1xuICByZWFkb25seSBnZXRSdW50aW1lSW5mbzogKCkgPT4gRWZmZWN0LkVmZmVjdDxEb2NrZXJSdW50aW1lSW5mbywgRXJyb3I+XG5cbiAgLyoqXG4gICAqIEluc3BlY3QgYSBEb2NrZXIgaW1hZ2UgdG8gZ2V0IGl0cyBjb25maWd1cmF0aW9uLlxuICAgKiBSZXR1cm5zIHRoZSBFTlRSWVBPSU5UIGFuZCBDTUQgZnJvbSB0aGUgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBpbnNwZWN0OiAoXG4gICAgaW1hZ2VVcmk6IHN0cmluZyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERvY2tlckltYWdlQ29uZmlnLFxuICAgIEVycm9yLFxuICAgIFNjb3BlLlNjb3BlIHwgQ29tbWFuZEV4ZWN1dG9yLkNvbW1hbmRFeGVjdXRvclxuICA+XG59XG5cbi8qKlxuICogRG9ja2VyIFNlcnZpY2UgdGFnIGZvciBkZXBlbmRlbmN5IGluamVjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIERvY2tlciBleHRlbmRzIENvbnRleHQuVGFnKFwiRG9ja2VyXCIpPERvY2tlciwgRG9ja2VyU2VydmljZT4oKSB7fVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgbGl2ZSBEb2NrZXIgc2VydmljZSBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuY29uc3QgbWFrZURvY2tlclNlcnZpY2U6IEVmZmVjdC5FZmZlY3Q8RG9ja2VyU2VydmljZSwgRXJyb3I+ID0gRWZmZWN0LmdlbihcbiAgZnVuY3Rpb24qICgpIHtcbiAgICBjb25zdCBydW50aW1lID0geWllbGQqIGRldGVjdERvY2tlclJ1bnRpbWUoKVxuXG4gICAgY29uc3QgZ2V0UnVudGltZUluZm86IERvY2tlclNlcnZpY2VbXCJnZXRSdW50aW1lSW5mb1wiXSA9ICgpID0+XG4gICAgICBFZmZlY3Quc3VjY2VlZChydW50aW1lKVxuXG4gICAgY29uc3QgcnVuOiBEb2NrZXJTZXJ2aWNlW1wicnVuXCJdID0gKGNvbmZpZykgPT5cbiAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgYXJncyA9IGJ1aWxkRG9ja2VyUnVuQXJncyhjb25maWcsIHJ1bnRpbWUpXG5cbiAgICAgICAgeWllbGQqIEVmZmVjdC5sb2dEZWJ1ZyhgUnVubmluZzogZG9ja2VyICR7YXJncy5qb2luKFwiIFwiKX1gKVxuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBQbGF0Zm9ybUNvbW1hbmQubWFrZShydW50aW1lLmRvY2tlclBhdGgsIC4uLmFyZ3MpXG5cbiAgICAgICAgY29uc3Qgc3Rkb3V0OiBzdHJpbmdbXSA9IFtdXG4gICAgICAgIGNvbnN0IHN0ZGVycjogc3RyaW5nW10gPSBbXVxuXG4gICAgICAgIC8vIFJ1biB0aGUgY29tbWFuZCBhbmQgY29sbGVjdCBvdXRwdXRcbiAgICAgICAgY29uc3QgcHJvYyA9IHlpZWxkKiBQbGF0Zm9ybUNvbW1hbmQuc3RhcnQoY29tbWFuZClcblxuICAgICAgICAvLyBMYW1iZGEgUklDIGVycm9yL291dHB1dCBwYXR0ZXJucyB0aGF0IGFyZSBleHBlY3RlZCBkdXJpbmcgcG9sbCB0aW1lb3V0XG4gICAgICAgIC8vIFRoZXNlIGFyZSBzdXBwcmVzc2VkIGZyb20gb3V0cHV0IHRvIGF2b2lkIHNjYXJ5IGVycm9yIG1lc3NhZ2VzXG4gICAgICAgIGNvbnN0IGlzRXhwZWN0ZWRSaWNPdXRwdXQgPSAobGluZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICAgICAgICAgIGxpbmUuaW5jbHVkZXMoXCJMQU1CREFfUlVOVElNRSBGYWlsZWQgdG8gZ2V0IG5leHQgaW52b2NhdGlvblwiKSB8fFxuICAgICAgICAgIGxpbmUuaW5jbHVkZXMoXCJGYWlsZWQgdG8gZ2V0IG5leHQgaW52b2NhdGlvbiwgZXJyb3IgNTAzXCIpIHx8XG4gICAgICAgICAgLy8gRmlsdGVyIG91dCB0aGUgTm9kZS5qcyBzdGFjayB0cmFjZSBmcm9tIExhbWJkYSBSSUMgZXhpdFxuICAgICAgICAgIGxpbmUuaW5jbHVkZXMoXCJ0cmlnZ2VyVW5jYXVnaHRFeGNlcHRpb25cIikgfHxcbiAgICAgICAgICBsaW5lLmluY2x1ZGVzKFwiW0Vycm9yOiBGYWlsZWQgdG8gZ2V0IG5leHQgaW52b2NhdGlvblwiKSB8fFxuICAgICAgICAgIC8vIFwiTm9kZS5qcyB2XCIgdmVyc2lvbiBsaW5lIGFmdGVyIGVycm9yXG4gICAgICAgICAgbGluZS5zdGFydHNXaXRoKFwiTm9kZS5qcyB2XCIpIHx8XG4gICAgICAgICAgbGluZS5pbmNsdWRlcyhcIm5vZGU6aW50ZXJuYWwvcHJvY2Vzcy9wcm9taXNlc1wiKSB8fFxuICAgICAgICAgIC8vIFN0YWNrIHRyYWNlIGNhcmV0IGxpbmUgKGp1c3Qgd2hpdGVzcGFjZSBhbmQgXilcbiAgICAgICAgICAvXlxccypcXF4/XFxzKiQvLnRlc3QobGluZSlcblxuICAgICAgICAvLyBQYXR0ZXJuIHRvIHBhcnNlIExhbWJkYSBsb2cgZm9ybWF0OiBUSU1FU1RBTVBcXHRSRVFVRVNUX0lEXFx0TEVWRUxcXHRNRVNTQUdFXG4gICAgICAgIC8vIExhbWJkYSB1c2VzIHRhYnMgYmV0d2VlbiBmaWVsZHMuIENhcHR1cmVzOiBbMV0gPSByZXF1ZXN0IElELCBbMl0gPSBsZXZlbCArIG1lc3NhZ2VcbiAgICAgICAgY29uc3QgbGFtYmRhTG9nUGF0dGVybiA9XG4gICAgICAgICAgL14oXFxkezR9LVxcZHsyfS1cXGR7Mn1UW1xcZDouXStaKVtcXHRcXHNdKyhbMC05YS1mLV17MzZ9KVtcXHRcXHNdKyguKikkL2lcblxuICAgICAgICAvLyBIZWxwZXIgdG8gZm9ybWF0IGxvZyBsaW5lIHdpdGggaW52b2NhdGlvbiBwcmVmaXhcbiAgICAgICAgY29uc3QgZm9ybWF0TGluZSA9IChcbiAgICAgICAgICByYXdMaW5lOiBzdHJpbmcsXG4gICAgICAgICk6IHsgcHJlZml4OiBzdHJpbmc7IGNvbnRlbnQ6IHN0cmluZyB9ID0+IHtcbiAgICAgICAgICAvLyBTdHJpcCBjYXJyaWFnZSByZXR1cm5zIHRoYXQgY2FuIGNhdXNlIHRlcm1pbmFsIGNvcnJ1cHRpb25cbiAgICAgICAgICBjb25zdCBsaW5lID0gcmF3TGluZS5yZXBsYWNlKC9cXHIvZywgXCJcIilcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IGxhbWJkYUxvZ1BhdHRlcm4uZXhlYyhsaW5lKVxuICAgICAgICAgIGlmIChtYXRjaCAmJiBjb25maWcuaW52b2NhdGlvbkNvbnRleHRzKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0SWQgPSBtYXRjaFsyXVxuICAgICAgICAgICAgY29uc3QgY3R4ID0gY29uZmlnLmludm9jYXRpb25Db250ZXh0cy5nZXQocmVxdWVzdElkKVxuICAgICAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgICAvLyBTdHJpcCB0aW1lc3RhbXAgYW5kIHJlcXVlc3QgSUQsIGtlZXAganVzdCBMRVZFTCBNRVNTQUdFXG4gICAgICAgICAgICAgIHJldHVybiB7IHByZWZpeDogYFske2N0eC5udW19XWAsIGNvbnRlbnQ6IG1hdGNoWzNdIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgcHJlZml4OiBcIltDb250YWluZXJdXCIsIGNvbnRlbnQ6IGxpbmUgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJvY2VzcyBzdGRvdXQgLSBmaWx0ZXIgZXhwZWN0ZWQgZXJyb3JzLCBmb3J3YXJkIHRoZSByZXN0XG4gICAgICAgIGNvbnN0IHN0ZG91dEZpYmVyID0geWllbGQqIHByb2Muc3Rkb3V0LnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgocmF3TGluZSkgPT5cbiAgICAgICAgICAgIEVmZmVjdC5zeW5jKCgpID0+IHtcbiAgICAgICAgICAgICAgc3Rkb3V0LnB1c2gocmF3TGluZSlcbiAgICAgICAgICAgICAgLy8gU3VwcHJlc3MgZXhwZWN0ZWQgUklDIG91dHB1dCAocG9sbCB0aW1lb3V0IGVycm9ycylcbiAgICAgICAgICAgICAgaWYgKCFpc0V4cGVjdGVkUmljT3V0cHV0KHJhd0xpbmUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcmVmaXgsIGNvbnRlbnQgfSA9IGZvcm1hdExpbmUocmF3TGluZSlcbiAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHtwcmVmaXh9ICR7Y29udGVudH1cXG5gKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gUHJvY2VzcyBzdGRlcnIgLSBmaWx0ZXIgZXhwZWN0ZWQgZXJyb3JzLCBmb3J3YXJkIHRoZSByZXN0XG4gICAgICAgIGNvbnN0IHN0ZGVyckZpYmVyID0geWllbGQqIHByb2Muc3RkZXJyLnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgocmF3TGluZSkgPT5cbiAgICAgICAgICAgIEVmZmVjdC5zeW5jKCgpID0+IHtcbiAgICAgICAgICAgICAgc3RkZXJyLnB1c2gocmF3TGluZSlcbiAgICAgICAgICAgICAgLy8gU3VwcHJlc3MgZXhwZWN0ZWQgUklDIG91dHB1dCAocG9sbCB0aW1lb3V0IGVycm9ycylcbiAgICAgICAgICAgICAgaWYgKCFpc0V4cGVjdGVkUmljT3V0cHV0KHJhd0xpbmUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcmVmaXgsIGNvbnRlbnQgfSA9IGZvcm1hdExpbmUocmF3TGluZSlcbiAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtwcmVmaXh9ICR7Y29udGVudH1cXG5gKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gV2FpdCBmb3IgYm90aCBzdHJlYW1zIGFuZCBleGl0IGNvZGVcbiAgICAgICAgeWllbGQqIEVmZmVjdC5hbGwoW1xuICAgICAgICAgIEVmZmVjdC5mcm9tRmliZXIoc3Rkb3V0RmliZXIpLFxuICAgICAgICAgIEVmZmVjdC5mcm9tRmliZXIoc3RkZXJyRmliZXIpLFxuICAgICAgICBdKVxuXG4gICAgICAgIGNvbnN0IGV4aXRDb2RlID0geWllbGQqIHByb2MuZXhpdENvZGVcblxuICAgICAgICAvLyBPbmx5IHN1cHByZXNzIHdhcm5pbmdzIGZvciBleHBlY3RlZCBleGl0IGNvZGVzOlxuICAgICAgICAvLyAtIDA6IENsZWFuIGV4aXRcbiAgICAgICAgLy8gLSAxOiBMYW1iZGEgUklDIGV4aXQgYWZ0ZXIgNTAzIHBvbGwgdGltZW91dCAoZXhwZWN0ZWQpXG4gICAgICAgIC8vIC0gMTQzICgxMjgrMTUpOiBTSUdURVJNIGZyb20gZG9ja2VyIHN0b3BcbiAgICAgICAgLy8gLSAxMzcgKDEyOCs5KTogU0lHS0lMTCBmcm9tIGRvY2tlciBzdG9wIHRpbWVvdXRcbiAgICAgICAgY29uc3QgZXhwZWN0ZWRFeGl0Q29kZXMgPSBbMCwgMSwgMTQzLCAxMzddXG4gICAgICAgIGlmICghZXhwZWN0ZWRFeGl0Q29kZXMuaW5jbHVkZXMoZXhpdENvZGUpKSB7XG4gICAgICAgICAgeWllbGQqIEVmZmVjdC5sb2dXYXJuaW5nKGBDb250YWluZXIgZXhpdGVkIHdpdGggY29kZSAke2V4aXRDb2RlfWApXG4gICAgICAgIH0gZWxzZSBpZiAoZXhpdENvZGUgIT09IDApIHtcbiAgICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0RlYnVnKGBDb250YWluZXIgZXhpdGVkIHdpdGggY29kZSAke2V4aXRDb2RlfWApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGV4aXRDb2RlLFxuICAgICAgICAgIHN0ZG91dDogc3Rkb3V0LmpvaW4oXCJcXG5cIiksXG4gICAgICAgICAgc3RkZXJyOiBzdGRlcnIuam9pbihcIlxcblwiKSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgIGNvbnN0IHJ1blNjb3BlZDogRG9ja2VyU2VydmljZVtcInJ1blNjb3BlZFwiXSA9IChjb25maWcpID0+XG4gICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBidWlsZERvY2tlclJ1bkFyZ3MoY29uZmlnLCBydW50aW1lKVxuXG4gICAgICAgIHlpZWxkKiBFZmZlY3QubG9nSW5mbyhgUnVubmluZyAoc2NvcGVkKTogZG9ja2VyICR7YXJncy5qb2luKFwiIFwiKX1gKVxuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBQbGF0Zm9ybUNvbW1hbmQubWFrZShydW50aW1lLmRvY2tlclBhdGgsIC4uLmFyZ3MpXG5cbiAgICAgICAgY29uc3QgcHJvYyA9IHlpZWxkKiBQbGF0Zm9ybUNvbW1hbmQuc3RhcnQoY29tbWFuZClcblxuICAgICAgICAvLyBGb3JrIG91dHB1dCBwcm9jZXNzaW5nIGluIGJhY2tncm91bmQgKHdpbGwgYmUgaW50ZXJydXB0ZWQgd2hlbiBzY29wZSBjbG9zZXMpXG4gICAgICAgIHlpZWxkKiBwcm9jLnN0ZG91dC5waXBlKFxuICAgICAgICAgIFN0cmVhbS5kZWNvZGVUZXh0KCksXG4gICAgICAgICAgU3RyZWFtLnNwbGl0TGluZXMsXG4gICAgICAgICAgU3RyZWFtLnJ1bkZvckVhY2goKGxpbmUpID0+XG4gICAgICAgICAgICBFZmZlY3Quc3luYygoKSA9PiB7XG4gICAgICAgICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBbQ29udGFpbmVyXSAke2xpbmV9XFxuYClcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICAgRWZmZWN0LmZvcmssXG4gICAgICAgIClcblxuICAgICAgICB5aWVsZCogcHJvYy5zdGRlcnIucGlwZShcbiAgICAgICAgICBTdHJlYW0uZGVjb2RlVGV4dCgpLFxuICAgICAgICAgIFN0cmVhbS5zcGxpdExpbmVzLFxuICAgICAgICAgIFN0cmVhbS5ydW5Gb3JFYWNoKChsaW5lKSA9PlxuICAgICAgICAgICAgRWZmZWN0LnN5bmMoKCkgPT4ge1xuICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgW0NvbnRhaW5lcl0gJHtsaW5lfVxcbmApXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgcmV0dXJuIHByb2NcbiAgICAgIH0pXG5cbiAgICBjb25zdCBidWlsZDogRG9ja2VyU2VydmljZVtcImJ1aWxkXCJdID0gKG9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICAgICAgXCJidWlsZFwiLFxuICAgICAgICAgIFwiLXRcIixcbiAgICAgICAgICBvcHRpb25zLmltYWdlTmFtZSxcbiAgICAgICAgICBcIi0tcGxhdGZvcm1cIixcbiAgICAgICAgICBvcHRpb25zLnBsYXRmb3JtID8/IFwibGludXgvYXJtNjRcIixcbiAgICAgICAgICBvcHRpb25zLmNvbnRleHRQYXRoLFxuICAgICAgICBdXG5cbiAgICAgICAgeWllbGQqIEVmZmVjdC5sb2dJbmZvKGBCdWlsZGluZyBpbWFnZTogJHtvcHRpb25zLmltYWdlTmFtZX1gKVxuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0RlYnVnKGBDb250ZXh0OiAke29wdGlvbnMuY29udGV4dFBhdGh9YClcblxuICAgICAgICBjb25zdCBjb21tYW5kID0gUGxhdGZvcm1Db21tYW5kLm1ha2UocnVudGltZS5kb2NrZXJQYXRoLCAuLi5hcmdzKVxuXG4gICAgICAgIGNvbnN0IHByb2MgPSB5aWVsZCogUGxhdGZvcm1Db21tYW5kLnN0YXJ0KGNvbW1hbmQpXG5cbiAgICAgICAgLy8gUHJvY2VzcyBzdGRvdXQgKGRlYnVnIG9ubHkpXG4gICAgICAgIGNvbnN0IHN0ZG91dEZpYmVyID0geWllbGQqIHByb2Muc3Rkb3V0LnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgobGluZSkgPT4gRWZmZWN0LmxvZ0RlYnVnKGBbRG9ja2VyXSAke2xpbmV9YCkpLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gUHJvY2VzcyBzdGRlcnIgKGRlYnVnIG9ubHkpXG4gICAgICAgIGNvbnN0IHN0ZGVyckZpYmVyID0geWllbGQqIHByb2Muc3RkZXJyLnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgobGluZSkgPT4gRWZmZWN0LmxvZ0RlYnVnKGBbRG9ja2VyXSAke2xpbmV9YCkpLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gV2FpdCBmb3Igc3RyZWFtcyBhbmQgZXhpdCBjb2RlXG4gICAgICAgIHlpZWxkKiBFZmZlY3QuYWxsKFtcbiAgICAgICAgICBFZmZlY3QuZnJvbUZpYmVyKHN0ZG91dEZpYmVyKSxcbiAgICAgICAgICBFZmZlY3QuZnJvbUZpYmVyKHN0ZGVyckZpYmVyKSxcbiAgICAgICAgXSlcblxuICAgICAgICBjb25zdCBleGl0Q29kZSA9IHlpZWxkKiBwcm9jLmV4aXRDb2RlXG5cbiAgICAgICAgaWYgKGV4aXRDb2RlICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHlpZWxkKiBFZmZlY3QuZmFpbChcbiAgICAgICAgICAgIG5ldyBFcnJvcihgRG9ja2VyIGJ1aWxkIGZhaWxlZCB3aXRoIGNvZGUgJHtleGl0Q29kZX1gKSxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0luZm8oYEJ1aWx0IGltYWdlOiAke29wdGlvbnMuaW1hZ2VOYW1lfWApXG4gICAgICB9KVxuXG4gICAgY29uc3QgcHVsbDogRG9ja2VyU2VydmljZVtcInB1bGxcIl0gPSAoaW1hZ2VVcmkpID0+XG4gICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHlpZWxkKiBFZmZlY3QubG9nSW5mbyhgUHVsbGluZyBpbWFnZTogJHtpbWFnZVVyaX1gKVxuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBQbGF0Zm9ybUNvbW1hbmQubWFrZShcbiAgICAgICAgICBydW50aW1lLmRvY2tlclBhdGgsXG4gICAgICAgICAgXCJwdWxsXCIsXG4gICAgICAgICAgaW1hZ2VVcmksXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBwcm9jID0geWllbGQqIFBsYXRmb3JtQ29tbWFuZC5zdGFydChjb21tYW5kKVxuXG4gICAgICAgIC8vIFByb2Nlc3Mgc3Rkb3V0IChkZWJ1ZyBvbmx5KVxuICAgICAgICBjb25zdCBzdGRvdXRGaWJlciA9IHlpZWxkKiBwcm9jLnN0ZG91dC5waXBlKFxuICAgICAgICAgIFN0cmVhbS5kZWNvZGVUZXh0KCksXG4gICAgICAgICAgU3RyZWFtLnNwbGl0TGluZXMsXG4gICAgICAgICAgU3RyZWFtLnJ1bkZvckVhY2goKGxpbmUpID0+IEVmZmVjdC5sb2dEZWJ1ZyhgW0RvY2tlcl0gJHtsaW5lfWApKSxcbiAgICAgICAgICBFZmZlY3QuZm9yayxcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIFByb2Nlc3Mgc3RkZXJyIChkZWJ1ZyBvbmx5KVxuICAgICAgICBjb25zdCBzdGRlcnJGaWJlciA9IHlpZWxkKiBwcm9jLnN0ZGVyci5waXBlKFxuICAgICAgICAgIFN0cmVhbS5kZWNvZGVUZXh0KCksXG4gICAgICAgICAgU3RyZWFtLnNwbGl0TGluZXMsXG4gICAgICAgICAgU3RyZWFtLnJ1bkZvckVhY2goKGxpbmUpID0+IEVmZmVjdC5sb2dEZWJ1ZyhgW0RvY2tlcl0gJHtsaW5lfWApKSxcbiAgICAgICAgICBFZmZlY3QuZm9yayxcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIFdhaXQgZm9yIHN0cmVhbXMgYW5kIGV4aXQgY29kZVxuICAgICAgICB5aWVsZCogRWZmZWN0LmFsbChbXG4gICAgICAgICAgRWZmZWN0LmZyb21GaWJlcihzdGRvdXRGaWJlciksXG4gICAgICAgICAgRWZmZWN0LmZyb21GaWJlcihzdGRlcnJGaWJlciksXG4gICAgICAgIF0pXG5cbiAgICAgICAgY29uc3QgZXhpdENvZGUgPSB5aWVsZCogcHJvYy5leGl0Q29kZVxuXG4gICAgICAgIGlmIChleGl0Q29kZSAhPT0gMCkge1xuICAgICAgICAgIHJldHVybiB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICBuZXcgRXJyb3IoYERvY2tlciBwdWxsIGZhaWxlZCB3aXRoIGNvZGUgJHtleGl0Q29kZX1gKSxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0luZm8oYFB1bGxlZCBpbWFnZTogJHtpbWFnZVVyaX1gKVxuICAgICAgfSlcblxuICAgIGNvbnN0IGxpc3Q6IERvY2tlclNlcnZpY2VbXCJsaXN0XCJdID0gKGNvbnRhaW5lck5hbWVGaWx0ZXIpID0+XG4gICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBQbGF0Zm9ybUNvbW1hbmQubWFrZShcbiAgICAgICAgICBydW50aW1lLmRvY2tlclBhdGgsXG4gICAgICAgICAgXCJwc1wiLFxuICAgICAgICAgIFwiLXFcIixcbiAgICAgICAgICBcIi0tZmlsdGVyXCIsXG4gICAgICAgICAgYG5hbWU9JHtjb250YWluZXJOYW1lRmlsdGVyfWAsXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBwcm9jID0geWllbGQqIFBsYXRmb3JtQ29tbWFuZC5zdGFydChjb21tYW5kKVxuXG4gICAgICAgIC8vIENvbGxlY3Qgc3Rkb3V0XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcklkczogc3RyaW5nW10gPSBbXVxuICAgICAgICB5aWVsZCogcHJvYy5zdGRvdXQucGlwZShcbiAgICAgICAgICBTdHJlYW0uZGVjb2RlVGV4dCgpLFxuICAgICAgICAgIFN0cmVhbS5zcGxpdExpbmVzLFxuICAgICAgICAgIFN0cmVhbS5ydW5Gb3JFYWNoKChsaW5lKSA9PlxuICAgICAgICAgICAgRWZmZWN0LnN5bmMoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0cmltbWVkID0gbGluZS50cmltKClcbiAgICAgICAgICAgICAgaWYgKHRyaW1tZWQpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJJZHMucHVzaCh0cmltbWVkKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICApXG5cbiAgICAgICAgY29uc3QgZXhpdENvZGUgPSB5aWVsZCogcHJvYy5leGl0Q29kZVxuXG4gICAgICAgIGlmIChleGl0Q29kZSAhPT0gMCkge1xuICAgICAgICAgIHJldHVybiB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICBuZXcgRXJyb3IoYERvY2tlciBwcyBmYWlsZWQgd2l0aCBjb2RlICR7ZXhpdENvZGV9YCksXG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lcklkc1xuICAgICAgfSlcblxuICAgIGNvbnN0IHN0b3A6IERvY2tlclNlcnZpY2VbXCJzdG9wXCJdID0gKGNvbnRhaW5lck5hbWVGaWx0ZXIsIHRpbWVvdXRTZWNvbmRzKSA9PlxuICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBGaXJzdCBsaXN0IG1hdGNoaW5nIGNvbnRhaW5lcnNcbiAgICAgICAgY29uc3QgY29udGFpbmVySWRzID0geWllbGQqIGxpc3QoY29udGFpbmVyTmFtZUZpbHRlcilcblxuICAgICAgICBpZiAoY29udGFpbmVySWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHlpZWxkKiBFZmZlY3QubG9nRGVidWcoXG4gICAgICAgICAgICBgTm8gY29udGFpbmVycyBmb3VuZCBtYXRjaGluZzogJHtjb250YWluZXJOYW1lRmlsdGVyfWAsXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAwXG4gICAgICAgIH1cblxuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0luZm8oYFN0b3BwaW5nIGNvbnRhaW5lcnM6ICR7Y29udGFpbmVySWRzLmpvaW4oXCIsIFwiKX1gKVxuXG4gICAgICAgIC8vIEJ1aWxkIHN0b3AgY29tbWFuZCB3aXRoIG9wdGlvbmFsIHRpbWVvdXRcbiAgICAgICAgLy8gLXQgMCBzZW5kcyBTSUdLSUxMIGltbWVkaWF0ZWx5LCB1c2VmdWwgZm9yIGZhc3QgcmVzdGFydHNcbiAgICAgICAgY29uc3QgdGltZW91dEFyZyA9XG4gICAgICAgICAgdGltZW91dFNlY29uZHMgIT09IHVuZGVmaW5lZCA/IFtcIi10XCIsIFN0cmluZyh0aW1lb3V0U2Vjb25kcyldIDogW11cbiAgICAgICAgY29uc3QgY29tbWFuZCA9IFBsYXRmb3JtQ29tbWFuZC5tYWtlKFxuICAgICAgICAgIHJ1bnRpbWUuZG9ja2VyUGF0aCxcbiAgICAgICAgICBcInN0b3BcIixcbiAgICAgICAgICAuLi50aW1lb3V0QXJnLFxuICAgICAgICAgIC4uLmNvbnRhaW5lcklkcyxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHByb2MgPSB5aWVsZCogUGxhdGZvcm1Db21tYW5kLnN0YXJ0KGNvbW1hbmQpXG5cbiAgICAgICAgLy8gUHJvY2VzcyBvdXRwdXQgZm9yIGxvZ2dpbmdcbiAgICAgICAgeWllbGQqIHByb2Muc3Rkb3V0LnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgobGluZSkgPT5cbiAgICAgICAgICAgIEVmZmVjdC5sb2dEZWJ1ZyhgW0RvY2tlciBzdG9wXSAke2xpbmUudHJpbSgpfWApLFxuICAgICAgICAgICksXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBleGl0Q29kZSA9IHlpZWxkKiBwcm9jLmV4aXRDb2RlXG5cbiAgICAgICAgaWYgKGV4aXRDb2RlICE9PSAwKSB7XG4gICAgICAgICAgeWllbGQqIEVmZmVjdC5sb2dXYXJuaW5nKFxuICAgICAgICAgICAgYERvY2tlciBzdG9wIGV4aXRlZCB3aXRoIGNvZGUgJHtleGl0Q29kZX0gKHNvbWUgY29udGFpbmVycyBtYXkgaGF2ZSBhbHJlYWR5IHN0b3BwZWQpYCxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGFpbmVySWRzLmxlbmd0aFxuICAgICAgfSlcblxuICAgIGNvbnN0IGluc3BlY3Q6IERvY2tlclNlcnZpY2VbXCJpbnNwZWN0XCJdID0gKGltYWdlVXJpKSA9PlxuICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBleGVjdXRvciA9IHlpZWxkKiBDb21tYW5kRXhlY3V0b3IuQ29tbWFuZEV4ZWN1dG9yXG5cbiAgICAgICAgLy8gR2V0IGVudHJ5cG9pbnRcbiAgICAgICAgY29uc3QgZW50cnlwb2ludENtZCA9IFBsYXRmb3JtQ29tbWFuZC5tYWtlKFxuICAgICAgICAgIHJ1bnRpbWUuZG9ja2VyUGF0aCxcbiAgICAgICAgICBcImluc3BlY3RcIixcbiAgICAgICAgICBcIi0tZm9ybWF0XCIsXG4gICAgICAgICAgXCJ7e2pzb24gLkNvbmZpZy5FbnRyeXBvaW50fX1cIixcbiAgICAgICAgICBpbWFnZVVyaSxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBlbnRyeXBvaW50UHJvYyA9IHlpZWxkKiBleGVjdXRvci5zdGFydChlbnRyeXBvaW50Q21kKVxuICAgICAgICBjb25zdCBlbnRyeXBvaW50T3V0cHV0ID0geWllbGQqIFN0cmVhbS5ydW5Db2xsZWN0KFxuICAgICAgICAgIFN0cmVhbS5kZWNvZGVUZXh0KGVudHJ5cG9pbnRQcm9jLnN0ZG91dCksXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgZW50cnlwb2ludEV4aXRDb2RlID0geWllbGQqIGVudHJ5cG9pbnRQcm9jLmV4aXRDb2RlXG4gICAgICAgIGlmIChlbnRyeXBvaW50RXhpdENvZGUgIT09IDApIHtcbiAgICAgICAgICB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICBuZXcgRXJyb3IoYEZhaWxlZCB0byBpbnNwZWN0IGltYWdlIGVudHJ5cG9pbnQ6ICR7aW1hZ2VVcml9YCksXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudHJ5cG9pbnRKc29uID0gQXJyYXkuZnJvbShlbnRyeXBvaW50T3V0cHV0KS5qb2luKFwiXCIpLnRyaW0oKVxuXG4gICAgICAgIC8vIEdldCBjbWRcbiAgICAgICAgY29uc3QgY21kQ21kID0gUGxhdGZvcm1Db21tYW5kLm1ha2UoXG4gICAgICAgICAgcnVudGltZS5kb2NrZXJQYXRoLFxuICAgICAgICAgIFwiaW5zcGVjdFwiLFxuICAgICAgICAgIFwiLS1mb3JtYXRcIixcbiAgICAgICAgICBcInt7anNvbiAuQ29uZmlnLkNtZH19XCIsXG4gICAgICAgICAgaW1hZ2VVcmksXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgY21kUHJvYyA9IHlpZWxkKiBleGVjdXRvci5zdGFydChjbWRDbWQpXG4gICAgICAgIGNvbnN0IGNtZE91dHB1dCA9IHlpZWxkKiBTdHJlYW0ucnVuQ29sbGVjdChcbiAgICAgICAgICBTdHJlYW0uZGVjb2RlVGV4dChjbWRQcm9jLnN0ZG91dCksXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgY21kRXhpdENvZGUgPSB5aWVsZCogY21kUHJvYy5leGl0Q29kZVxuICAgICAgICBpZiAoY21kRXhpdENvZGUgIT09IDApIHtcbiAgICAgICAgICB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICBuZXcgRXJyb3IoYEZhaWxlZCB0byBpbnNwZWN0IGltYWdlIGNtZDogJHtpbWFnZVVyaX1gKSxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY21kSnNvbiA9IEFycmF5LmZyb20oY21kT3V0cHV0KS5qb2luKFwiXCIpLnRyaW0oKVxuXG4gICAgICAgIC8vIFBhcnNlIEpTT04gLSBudWxsIGlzIHZhbGlkLCBzbyBoYW5kbGUgdGhhdFxuICAgICAgICBjb25zdCBwYXJzZUpzb25BcnJheSA9IChqc29uOiBzdHJpbmcpOiBzdHJpbmdbXSB8IG51bGwgPT4ge1xuICAgICAgICAgIGlmIChqc29uID09PSBcIm51bGxcIiB8fCBqc29uID09PSBcIlwiKSByZXR1cm4gbnVsbFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGpzb24pXG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkIDogbnVsbFxuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVudHJ5cG9pbnQ6IHBhcnNlSnNvbkFycmF5KGVudHJ5cG9pbnRKc29uKSxcbiAgICAgICAgICBjbWQ6IHBhcnNlSnNvbkFycmF5KGNtZEpzb24pLFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bixcbiAgICAgIHJ1blNjb3BlZCxcbiAgICAgIGJ1aWxkLFxuICAgICAgcHVsbCxcbiAgICAgIHN0b3AsXG4gICAgICBsaXN0LFxuICAgICAgZ2V0UnVudGltZUluZm8sXG4gICAgICBpbnNwZWN0LFxuICAgIH0gc2F0aXNmaWVzIERvY2tlclNlcnZpY2VcbiAgfSxcbilcblxuLyoqXG4gKiBMaXZlIERvY2tlciBzZXJ2aWNlIGxheWVyLlxuICogTm90ZTogRG9lcyBub3QgcmVxdWlyZSBDb21tYW5kRXhlY3V0b3IgaW4gdGhlIGxheWVyIC0gaXQncyByZXF1aXJlZFxuICogd2hlbiB0aGUgc2VydmljZSBtZXRob2RzIGFyZSBjYWxsZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBEb2NrZXJMaXZlOiBMYXllci5MYXllcjxEb2NrZXIsIEVycm9yPiA9IExheWVyLmVmZmVjdChcbiAgRG9ja2VyLFxuICBtYWtlRG9ja2VyU2VydmljZSxcbilcblxuLyoqXG4gKiBDcmVhdGUgYSBjb250YWluZXIgY29uZmlnIGZvciBydW5uaW5nIGEgTGFtYmRhIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VMYW1iZGFDb250YWluZXJDb25maWcgPSAob3B0aW9uczoge1xuICBpbWFnZVVyaTogc3RyaW5nXG4gIHJ1bnRpbWVBcGlIb3N0OiBzdHJpbmdcbiAgcnVudGltZUFwaVBvcnQ6IG51bWJlclxuICBmdW5jdGlvbk5hbWU6IHN0cmluZ1xuICBmdW5jdGlvblZlcnNpb246IHN0cmluZ1xuICBtZW1vcnlNQjogbnVtYmVyXG4gIHRpbWVvdXRTZWNvbmRzOiBudW1iZXJcbiAgaGFuZGxlcj86IHN0cmluZ1xuICBhd3NSZWdpb24/OiBzdHJpbmdcbiAgcGxhdGZvcm0/OiBzdHJpbmdcbiAgYWRkaXRpb25hbEVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgaW52b2NhdGlvbkNvbnRleHRzPzogTWFwPHN0cmluZywgeyBudW06IG51bWJlciB9PlxufSk6IERvY2tlclJ1bkNvbmZpZyA9PiAoe1xuICBpbWFnZVVyaTogb3B0aW9ucy5pbWFnZVVyaSxcbiAgY29udGFpbmVyTmFtZTogYGxhbWJkYS0ke29wdGlvbnMuZnVuY3Rpb25OYW1lLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCBcIi1cIil9YCxcbiAgcGxhdGZvcm06IG9wdGlvbnMucGxhdGZvcm0sXG4gIGVudmlyb25tZW50OiB7XG4gICAgQVdTX0xBTUJEQV9SVU5USU1FX0FQSTogYCR7b3B0aW9ucy5ydW50aW1lQXBpSG9zdH06JHtvcHRpb25zLnJ1bnRpbWVBcGlQb3J0fWAsXG4gICAgQVdTX0xBTUJEQV9GVU5DVElPTl9OQU1FOiBvcHRpb25zLmZ1bmN0aW9uTmFtZSxcbiAgICBBV1NfTEFNQkRBX0ZVTkNUSU9OX1ZFUlNJT046IG9wdGlvbnMuZnVuY3Rpb25WZXJzaW9uLFxuICAgIEFXU19MQU1CREFfRlVOQ1RJT05fTUVNT1JZX1NJWkU6IFN0cmluZyhvcHRpb25zLm1lbW9yeU1CKSxcbiAgICBBV1NfUkVHSU9OOiBvcHRpb25zLmF3c1JlZ2lvbiA/PyBcInVzLWVhc3QtMVwiLFxuICAgIEFXU19ERUZBVUxUX1JFR0lPTjogb3B0aW9ucy5hd3NSZWdpb24gPz8gXCJ1cy1lYXN0LTFcIixcbiAgICBBV1NfTEFNQkRBX0xPR19HUk9VUF9OQU1FOiBgL2F3cy9sYW1iZGEvJHtvcHRpb25zLmZ1bmN0aW9uTmFtZX1gLFxuICAgIEFXU19MQU1CREFfTE9HX1NUUkVBTV9OQU1FOiBcImxvY2FsXCIsXG4gICAgX0hBTkRMRVI6IG9wdGlvbnMuaGFuZGxlciA/PyBcImluZGV4LmhhbmRsZXJcIixcbiAgICAuLi5vcHRpb25zLmFkZGl0aW9uYWxFbnYsXG4gIH0sXG4gIG1lbW9yeU1COiBvcHRpb25zLm1lbW9yeU1CLFxuICB0aW1lb3V0U2Vjb25kczogb3B0aW9ucy50aW1lb3V0U2Vjb25kcyxcbiAgbmV0d29ya01vZGU6IFwiYnJpZGdlXCIsXG4gIGludm9jYXRpb25Db250ZXh0czogb3B0aW9ucy5pbnZvY2F0aW9uQ29udGV4dHMsXG59KVxuXG4vKipcbiAqIFN0cmVhbSBvdXRwdXQgZnJvbSBhIERvY2tlciBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVyT3V0cHV0IHtcbiAgdHlwZTogXCJzdGRvdXRcIiB8IFwic3RkZXJyXCJcbiAgZGF0YTogc3RyaW5nXG59XG5cbi8qKlxuICogU2hlbGwtcXVvdGUgYSBzdHJpbmcgZm9yIHNhZmUgaW5jbHVzaW9uIGluIGEgc2hlbGwgY29tbWFuZC5cbiAqIFVzZXMgc2luZ2xlIHF1b3RlcyBhbmQgZXNjYXBlcyBhbnkgZW1iZWRkZWQgc2luZ2xlIHF1b3Rlcy5cbiAqL1xuY29uc3Qgc2hlbGxRdW90ZSA9IChzOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAvLyBTaW5nbGUgcXVvdGVzIGFyZSBzYWZlc3QgLSBlc2NhcGUgYW55IGVtYmVkZGVkIHNpbmdsZSBxdW90ZXNcbiAgcmV0dXJuIGAnJHtzLnJlcGxhY2UoLycvZywgXCInXFxcXCcnXCIpfSdgXG59XG5cbi8qKlxuICogQnVpbGQgYSB3cmFwcGVyIGNvbW1hbmQgdGhhdCBzdGFydHMgTGFtYmRhIGV4dGVuc2lvbnMgYmVmb3JlIHRoZSBtYWluIGFwcC5cbiAqXG4gKiBUaGlzIG1pbWljcyBBV1MgTGFtYmRhJ3MgYmVoYXZpb3Igb2YgYXV0b21hdGljYWxseSBzdGFydGluZyBhbGwgZXhlY3V0YWJsZXNcbiAqIGluIC9vcHQvZXh0ZW5zaW9ucy8gYXMgYmFja2dyb3VuZCBwcm9jZXNzZXMgYmVmb3JlIHJ1bm5pbmcgdGhlIG1haW4gY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gb3JpZ2luYWxFbnRyeXBvaW50IC0gVGhlIGltYWdlJ3Mgb3JpZ2luYWwgRU5UUllQT0lOVFxuICogQHBhcmFtIG9yaWdpbmFsQ21kIC0gVGhlIGltYWdlJ3Mgb3JpZ2luYWwgQ01EXG4gKiBAcmV0dXJucyBFbnRyeXBvaW50IGFuZCBjb21tYW5kIGFycmF5cyB0byBwYXNzIHRvIERvY2tlclxuICovXG5leHBvcnQgY29uc3QgYnVpbGRFeHRlbnNpb25XcmFwcGVyQ29tbWFuZCA9IChcbiAgb3JpZ2luYWxFbnRyeXBvaW50OiBzdHJpbmdbXSB8IG51bGwsXG4gIG9yaWdpbmFsQ21kOiBzdHJpbmdbXSB8IG51bGwsXG4pOiB7IGVudHJ5cG9pbnQ6IHN0cmluZ1tdOyBjb21tYW5kOiBzdHJpbmdbXSB9ID0+IHtcbiAgLy8gQ29tYmluZSBvcmlnaW5hbCBlbnRyeXBvaW50ICsgY21kIGludG8gdGhlIGZ1bGwgY29tbWFuZFxuICAvLyBEb2NrZXIgYmVoYXZpb3I6IEVOVFJZUE9JTlQgKyBDTUQgYXJlIGNvbmNhdGVuYXRlZFxuICBjb25zdCBvcmlnaW5hbENvbW1hbmQgPSBbXG4gICAgLi4uKG9yaWdpbmFsRW50cnlwb2ludCA/PyBbXSksXG4gICAgLi4uKG9yaWdpbmFsQ21kID8/IFtdKSxcbiAgXVxuXG4gIC8vIFNjcmlwdCB0byBzdGFydCBhbGwgZXhlY3V0YWJsZSBmaWxlcyBpbiAvb3B0L2V4dGVuc2lvbnMvIGFzIGJhY2tncm91bmQgcHJvY2Vzc2VzXG4gIGNvbnN0IGV4dGVuc2lvblN0YXJ0ZXIgPVxuICAgICdmb3IgZXh0IGluIC9vcHQvZXh0ZW5zaW9ucy8qOyBkbyBbIC14IFwiJGV4dFwiIF0gJiYgXCIkZXh0XCIgJiBkb25lJ1xuXG4gIC8vIEJ1aWxkIHRoZSBmdWxsIHdyYXBwZXIgY29tbWFuZFxuICBsZXQgZnVsbENvbW1hbmQ6IHN0cmluZ1xuICBpZiAob3JpZ2luYWxDb21tYW5kLmxlbmd0aCA+IDApIHtcbiAgICAvLyBRdW90ZSBlYWNoIGFyZ3VtZW50IGFuZCBqb2luIHdpdGggc3BhY2VzXG4gICAgY29uc3QgcXVvdGVkT3JpZ2luYWwgPSBvcmlnaW5hbENvbW1hbmQubWFwKHNoZWxsUXVvdGUpLmpvaW4oXCIgXCIpXG4gICAgLy8gU3RhcnQgZXh0ZW5zaW9ucywgdGhlbiBleGVjIHRoZSBvcmlnaW5hbCBjb21tYW5kXG4gICAgZnVsbENvbW1hbmQgPSBgJHtleHRlbnNpb25TdGFydGVyfTsgZXhlYyAke3F1b3RlZE9yaWdpbmFsfWBcbiAgfSBlbHNlIHtcbiAgICAvLyBObyBvcmlnaW5hbCBjb21tYW5kIC0ganVzdCBzdGFydCBleHRlbnNpb25zICh1bnVzdWFsIGJ1dCBoYW5kbGUgaXQpXG4gICAgZnVsbENvbW1hbmQgPSBleHRlbnNpb25TdGFydGVyXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGVudHJ5cG9pbnQ6IFtcIi9iaW4vc2hcIl0sXG4gICAgY29tbWFuZDogW1wiLWNcIiwgZnVsbENvbW1hbmRdLFxuICB9XG59XG4iXX0=
|
|
414
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9kb2NrZXIvY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxJQUFJLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRTlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYyxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFRbkU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUdqQyxFQUFFLENBQ0YsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNULEdBQUcsRUFBRSxHQUFHLEVBQUU7UUFDUixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDOUIsTUFBTSxPQUFPLEdBQUcsUUFBUSxLQUFLLE9BQU8sQ0FBQTtRQUNwQyxNQUFNLEtBQUssR0FDVCxPQUFPO1lBQ1AsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsS0FBSyxTQUFTO2dCQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQTtRQUUxQywwREFBMEQ7UUFDMUQsMkRBQTJEO1FBQzNELE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQTtRQUV6QyxNQUFNLFdBQVcsR0FBRyxlQUFlO1lBQ2pDLENBQUMsQ0FBQyxzQkFBc0I7WUFDeEIsQ0FBQyxDQUFDLFlBQVksQ0FBQSxDQUFDLGdDQUFnQztRQUVqRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLFFBQVE7WUFDcEIsT0FBTztZQUNQLEtBQUs7WUFDTCxlQUFlO1lBQ2YsV0FBVztTQUNaLENBQUE7SUFDSCxDQUFDO0lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxF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QyxXQUE0QixFQUNpQixFQUFFO0lBQy9DLDBEQUEwRDtJQUMxRCxxREFBcUQ7SUFDckQsTUFBTSxlQUFlLEdBQUc7UUFDdEIsR0FBRyxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztRQUM3QixHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztLQUN2QixDQUFBO0lBRUQsbUZBQW1GO0lBQ25GLE1BQU0sZ0JBQWdCLEdBQ3BCLGlFQUFpRSxDQUFBO0lBRW5FLGlDQUFpQztJQUNqQyxJQUFJLFdBQW1CLENBQUE7SUFDdkIsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9CLDJDQUEyQztRQUMzQyxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNoRSxtREFBbUQ7UUFDbkQsV0FBVyxHQUFHLEdBQUcsZ0JBQWdCLFVBQVUsY0FBYyxFQUFFLENBQUE7SUFDN0QsQ0FBQztTQUFNLENBQUM7UUFDTixzRUFBc0U7UUFDdEUsV0FBVyxHQUFHLGdCQUFnQixDQUFBO0lBQ2hDLENBQUM7SUFFRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUM7S0FDN0IsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRG9ja2VyIGNvbnRhaW5lciBtYW5hZ2VtZW50IHV0aWxpdGllcy5cbiAqXG4gKiBIYW5kbGVzIHJ1bm5pbmcgRG9ja2VyIGNvbnRhaW5lcnMgd2l0aCB0aGUgTGFtYmRhIFJ1bnRpbWUgQVBJXG4gKiBlbnZpcm9ubWVudCBjb25maWd1cmVkLiBVc2VzIEBlZmZlY3QvcGxhdGZvcm0gQ29tbWFuZCBmb3JcbiAqIHByb3BlciBFZmZlY3QtYmFzZWQgcHJvY2VzcyBtYW5hZ2VtZW50LlxuICovXG5cbmltcG9ydCAqIGFzIG9zIGZyb20gXCJub2RlOm9zXCJcbmltcG9ydCB7IENvbW1hbmRFeGVjdXRvciwgQ29tbWFuZCBhcyBQbGF0Zm9ybUNvbW1hbmQgfSBmcm9tIFwiQGVmZmVjdC9wbGF0Zm9ybVwiXG5pbXBvcnQgdHlwZSB7IFByb2Nlc3MgYXMgRWZmZWN0UHJvY2VzcyB9IGZyb20gXCJAZWZmZWN0L3BsYXRmb3JtL0NvbW1hbmRFeGVjdXRvclwiXG5pbXBvcnQgeyBDb250ZXh0LCBFZmZlY3QsIExheWVyLCB0eXBlIFNjb3BlLCBTdHJlYW0gfSBmcm9tIFwiZWZmZWN0XCJcbmltcG9ydCB0eXBlIHtcbiAgRG9ja2VySW1hZ2VDb25maWcsXG4gIERvY2tlclJ1bkNvbmZpZyxcbiAgRG9ja2VyUnVuUmVzdWx0LFxuICBEb2NrZXJSdW50aW1lSW5mbyxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIlxuXG4vKipcbiAqIERldGVjdCB0aGUgRG9ja2VyIHJ1bnRpbWUgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBkZXRlY3REb2NrZXJSdW50aW1lID0gKCk6IEVmZmVjdC5FZmZlY3Q8XG4gIERvY2tlclJ1bnRpbWVJbmZvLFxuICBFcnJvclxuPiA9PlxuICBFZmZlY3QudHJ5KHtcbiAgICB0cnk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHBsYXRmb3JtID0gb3MucGxhdGZvcm0oKVxuICAgICAgY29uc3QgaXNMaW51eCA9IHBsYXRmb3JtID09PSBcImxpbnV4XCJcbiAgICAgIGNvbnN0IGlzV3NsID1cbiAgICAgICAgaXNMaW51eCAmJlxuICAgICAgICAocHJvY2Vzcy5lbnYuV1NMX0RJU1RST19OQU1FICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICBwcm9jZXNzLmVudi5XU0xfSU5URVJPUCAhPT0gdW5kZWZpbmVkKVxuXG4gICAgICAvLyBPbiBNYWMvV2luZG93cyBEb2NrZXIgRGVza3RvcCwgdXNlIGhvc3QuZG9ja2VyLmludGVybmFsXG4gICAgICAvLyBPbiBMaW51eCwgd2UgbmVlZCB0byB1c2UgdGhlIGhvc3QncyBJUCBvciAtLW5ldHdvcms9aG9zdFxuICAgICAgY29uc3QgaXNEb2NrZXJEZXNrdG9wID0gIWlzTGludXggfHwgaXNXc2xcblxuICAgICAgY29uc3QgaG9zdEFkZHJlc3MgPSBpc0RvY2tlckRlc2t0b3BcbiAgICAgICAgPyBcImhvc3QuZG9ja2VyLmludGVybmFsXCJcbiAgICAgICAgOiBcIjE3Mi4xNy4wLjFcIiAvLyBEZWZhdWx0IERvY2tlciBicmlkZ2UgZ2F0ZXdheVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb2NrZXJQYXRoOiBcImRvY2tlclwiLFxuICAgICAgICBpc0xpbnV4LFxuICAgICAgICBpc1dzbCxcbiAgICAgICAgaXNEb2NrZXJEZXNrdG9wLFxuICAgICAgICBob3N0QWRkcmVzcyxcbiAgICAgIH1cbiAgICB9LFxuICAgIGNhdGNoOiAoZXJyb3IpID0+XG4gICAgICBuZXcgRXJyb3IoYEZhaWxlZCB0byBkZXRlY3QgRG9ja2VyIHJ1bnRpbWU6ICR7U3RyaW5nKGVycm9yKX1gKSxcbiAgfSlcblxuLyoqXG4gKiBCdWlsZCBEb2NrZXIgcnVuIGFyZ3VtZW50cyBmcm9tIGNvbmZpZy5cbiAqL1xuY29uc3QgYnVpbGREb2NrZXJSdW5BcmdzID0gKFxuICBjb25maWc6IERvY2tlclJ1bkNvbmZpZyxcbiAgcnVudGltZTogRG9ja2VyUnVudGltZUluZm8sXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGFyZ3M6IHN0cmluZ1tdID0gW1wicnVuXCIsIFwiLS1ybVwiXVxuXG4gIC8vIENvbnRhaW5lciBuYW1lIChhZGQgdGltZXN0YW1wIGZvciB1bmlxdWVuZXNzKVxuICBpZiAoY29uZmlnLmNvbnRhaW5lck5hbWUpIHtcbiAgICBhcmdzLnB1c2goXCItLW5hbWVcIiwgYCR7Y29uZmlnLmNvbnRhaW5lck5hbWV9LSR7RGF0ZS5ub3coKX1gKVxuICB9XG5cbiAgLy8gUGxhdGZvcm0gLSBhbGxvdyBydW5uaW5nIEFSTTY0IGltYWdlcyBvbiB4ODZfNjQgdmlhIFFFTVVcbiAgaWYgKGNvbmZpZy5wbGF0Zm9ybSkge1xuICAgIGFyZ3MucHVzaChcIi0tcGxhdGZvcm1cIiwgY29uZmlnLnBsYXRmb3JtKVxuICB9XG5cbiAgLy8gTWVtb3J5IGxpbWl0XG4gIGFyZ3MucHVzaChcIi0tbWVtb3J5XCIsIGAke2NvbmZpZy5tZW1vcnlNQn1tYClcblxuICAvLyBOZXR3b3JrIG1vZGVcbiAgaWYgKGNvbmZpZy5uZXR3b3JrTW9kZSA9PT0gXCJob3N0XCIpIHtcbiAgICBhcmdzLnB1c2goXCItLW5ldHdvcmtcIiwgXCJob3N0XCIpXG4gIH0gZWxzZSBpZiAoY29uZmlnLm5ldHdvcmtNb2RlICE9PSBcIm5vbmVcIikge1xuICAgIC8vIEZvciBicmlkZ2UgbW9kZSwgYWRkIGhvc3QgbWFwcGluZyBmb3Igbm9uLUxpbnV4XG4gICAgaWYgKHJ1bnRpbWUuaXNEb2NrZXJEZXNrdG9wKSB7XG4gICAgICAvLyBob3N0LmRvY2tlci5pbnRlcm5hbCBpcyBhdXRvbWF0aWNhbGx5IGF2YWlsYWJsZSBvbiBEb2NrZXIgRGVza3RvcFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPbiBMaW51eCwgYWRkIGV4cGxpY2l0IGhvc3QgbWFwcGluZyBhbmQgaGVscGVyIGFkZHJlc3NcbiAgICAgIGFyZ3MucHVzaChcIi0tYWRkLWhvc3RcIiwgYGhvc3QuZG9ja2VyLmludGVybmFsOiR7cnVudGltZS5ob3N0QWRkcmVzc31gKVxuICAgICAgYXJncy5wdXNoKFwiLS1hZGQtaG9zdFwiLCBgaG9zdC5jb250YWluZXJzLmludGVybmFsOiR7cnVudGltZS5ob3N0QWRkcmVzc31gKVxuICAgICAgYXJncy5wdXNoKFwiLS1hZGQtaG9zdFwiLCBgcnVudGltZS5hcGk6JHtydW50aW1lLmhvc3RBZGRyZXNzfWApXG4gICAgfVxuICB9XG5cbiAgLy8gRXh0cmEgaG9zdHNcbiAgaWYgKGNvbmZpZy5leHRyYUhvc3RzKSB7XG4gICAgZm9yIChjb25zdCBob3N0IG9mIGNvbmZpZy5leHRyYUhvc3RzKSB7XG4gICAgICBhcmdzLnB1c2goXCItLWFkZC1ob3N0XCIsIGhvc3QpXG4gICAgfVxuICB9XG5cbiAgLy8gRW52aXJvbm1lbnQgdmFyaWFibGVzXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5lbnZpcm9ubWVudCkpIHtcbiAgICBhcmdzLnB1c2goXCItZVwiLCBgJHtrZXl9PSR7dmFsdWV9YClcbiAgfVxuXG4gIC8vIFdvcmtpbmcgZGlyZWN0b3J5XG4gIGlmIChjb25maWcud29ya2Rpcikge1xuICAgIGFyZ3MucHVzaChcIi13XCIsIGNvbmZpZy53b3JrZGlyKVxuICB9XG5cbiAgLy8gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgaWYgKGNvbmZpZy5hZGRpdGlvbmFsQXJncykge1xuICAgIGFyZ3MucHVzaCguLi5jb25maWcuYWRkaXRpb25hbEFyZ3MpXG4gIH1cblxuICAvLyBFbnRyeXBvaW50IG92ZXJyaWRlXG4gIGlmIChjb25maWcuZW50cnlwb2ludCAmJiBjb25maWcuZW50cnlwb2ludC5sZW5ndGggPiAwKSB7XG4gICAgYXJncy5wdXNoKFwiLS1lbnRyeXBvaW50XCIsIGNvbmZpZy5lbnRyeXBvaW50WzBdKVxuICB9XG5cbiAgLy8gSW1hZ2VcbiAgYXJncy5wdXNoKGNvbmZpZy5pbWFnZVVyaSlcblxuICAvLyBFbnRyeXBvaW50IGFkZGl0aW9uYWwgYXJncyAoYWZ0ZXIgaW1hZ2UpXG4gIGlmIChjb25maWcuZW50cnlwb2ludCAmJiBjb25maWcuZW50cnlwb2ludC5sZW5ndGggPiAxKSB7XG4gICAgYXJncy5wdXNoKC4uLmNvbmZpZy5lbnRyeXBvaW50LnNsaWNlKDEpKVxuICB9XG5cbiAgLy8gQ29tbWFuZCBvdmVycmlkZSAoYWZ0ZXIgaW1hZ2UgYW5kIGVudHJ5cG9pbnQgYXJncylcbiAgaWYgKGNvbmZpZy5jb21tYW5kKSB7XG4gICAgYXJncy5wdXNoKC4uLmNvbmZpZy5jb21tYW5kKVxuICB9XG5cbiAgcmV0dXJuIGFyZ3Ncbn1cblxuLyoqXG4gKiBEb2NrZXIgU2VydmljZSBpbnRlcmZhY2UgZm9yIEVmZmVjdC1iYXNlZCBEb2NrZXIgb3BlcmF0aW9ucy5cbiAqIEFsbCBzY29wZWQgb3BlcmF0aW9ucyByZXF1aXJlIGJvdGggU2NvcGUgYW5kIENvbW1hbmRFeGVjdXRvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFJ1biBhIERvY2tlciBjb250YWluZXIgYW5kIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlLlxuICAgKiBPdXRwdXQgaXMgc3RyZWFtZWQgdG8gc3Rkb3V0L3N0ZGVyci5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bjogKFxuICAgIGNvbmZpZzogRG9ja2VyUnVuQ29uZmlnLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgRG9ja2VyUnVuUmVzdWx0LFxuICAgIEVycm9yLFxuICAgIFNjb3BlLlNjb3BlIHwgQ29tbWFuZEV4ZWN1dG9yLkNvbW1hbmRFeGVjdXRvclxuICA+XG5cbiAgLyoqXG4gICAqIFJ1biBhIERvY2tlciBjb250YWluZXIgd2l0aCBzY29wZWQgbGlmZWN5Y2xlIG1hbmFnZW1lbnQuXG4gICAqIFJldHVybnMgdGhlIHJ1bm5pbmcgcHJvY2VzcyB3aGljaCBjYW4gYmUgaW50ZXJydXB0ZWQgdmlhIHNjb3BlLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVuU2NvcGVkOiAoXG4gICAgY29uZmlnOiBEb2NrZXJSdW5Db25maWcsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBFZmZlY3RQcm9jZXNzLFxuICAgIEVycm9yLFxuICAgIFNjb3BlLlNjb3BlIHwgQ29tbWFuZEV4ZWN1dG9yLkNvbW1hbmRFeGVjdXRvclxuICA+XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgRG9ja2VyIGltYWdlIGZyb20gYSBsb2NhbCBjb250ZXh0IGRpcmVjdG9yeS5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkOiAob3B0aW9uczoge1xuICAgIGNvbnRleHRQYXRoOiBzdHJpbmdcbiAgICBpbWFnZU5hbWU6IHN0cmluZ1xuICAgIHBsYXRmb3JtPzogc3RyaW5nXG4gIH0pID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgdm9pZCxcbiAgICBFcnJvcixcbiAgICBTY29wZS5TY29wZSB8IENvbW1hbmRFeGVjdXRvci5Db21tYW5kRXhlY3V0b3JcbiAgPlxuXG4gIC8qKlxuICAgKiBQdWxsIGEgRG9ja2VyIGltYWdlIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuXG4gICAqL1xuICByZWFkb25seSBwdWxsOiAoXG4gICAgaW1hZ2VVcmk6IHN0cmluZyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PHZvaWQsIEVycm9yLCBTY29wZS5TY29wZSB8IENvbW1hbmRFeGVjdXRvci5Db21tYW5kRXhlY3V0b3I+XG5cbiAgLyoqXG4gICAqIFN0b3AgRG9ja2VyIGNvbnRhaW5lcnMgbWF0Y2hpbmcgYSBuYW1lIGZpbHRlci5cbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbnRhaW5lcnMgc3RvcHBlZC5cbiAgICogQHBhcmFtIGNvbnRhaW5lck5hbWVGaWx0ZXIgLSBGaWx0ZXIgdG8gbWF0Y2ggY29udGFpbmVyIG5hbWVzXG4gICAqIEBwYXJhbSB0aW1lb3V0U2Vjb25kcyAtIFNlY29uZHMgdG8gd2FpdCBiZWZvcmUgU0lHS0lMTCAoZGVmYXVsdDogMTApXG4gICAqL1xuICByZWFkb25seSBzdG9wOiAoXG4gICAgY29udGFpbmVyTmFtZUZpbHRlcjogc3RyaW5nLFxuICAgIHRpbWVvdXRTZWNvbmRzPzogbnVtYmVyLFxuICApID0+IEVmZmVjdC5FZmZlY3Q8XG4gICAgbnVtYmVyLFxuICAgIEVycm9yLFxuICAgIFNjb3BlLlNjb3BlIHwgQ29tbWFuZEV4ZWN1dG9yLkNvbW1hbmRFeGVjdXRvclxuICA+XG5cbiAgLyoqXG4gICAqIExpc3QgRG9ja2VyIGNvbnRhaW5lciBJRHMgbWF0Y2hpbmcgYSBuYW1lIGZpbHRlci5cbiAgICovXG4gIHJlYWRvbmx5IGxpc3Q6IChcbiAgICBjb250YWluZXJOYW1lRmlsdGVyOiBzdHJpbmcsXG4gICkgPT4gRWZmZWN0LkVmZmVjdDxcbiAgICBzdHJpbmdbXSxcbiAgICBFcnJvcixcbiAgICBTY29wZS5TY29wZSB8IENvbW1hbmRFeGVjdXRvci5Db21tYW5kRXhlY3V0b3JcbiAgPlxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRldGVjdGVkIERvY2tlciBydW50aW1lIGluZm8uXG4gICAqL1xuICByZWFkb25seSBnZXRSdW50aW1lSW5mbzogKCkgPT4gRWZmZWN0LkVmZmVjdDxEb2NrZXJSdW50aW1lSW5mbywgRXJyb3I+XG5cbiAgLyoqXG4gICAqIEluc3BlY3QgYSBEb2NrZXIgaW1hZ2UgdG8gZ2V0IGl0cyBjb25maWd1cmF0aW9uLlxuICAgKiBSZXR1cm5zIHRoZSBFTlRSWVBPSU5UIGFuZCBDTUQgZnJvbSB0aGUgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBpbnNwZWN0OiAoXG4gICAgaW1hZ2VVcmk6IHN0cmluZyxcbiAgKSA9PiBFZmZlY3QuRWZmZWN0PFxuICAgIERvY2tlckltYWdlQ29uZmlnLFxuICAgIEVycm9yLFxuICAgIFNjb3BlLlNjb3BlIHwgQ29tbWFuZEV4ZWN1dG9yLkNvbW1hbmRFeGVjdXRvclxuICA+XG59XG5cbi8qKlxuICogRG9ja2VyIFNlcnZpY2UgdGFnIGZvciBkZXBlbmRlbmN5IGluamVjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIERvY2tlciBleHRlbmRzIENvbnRleHQuVGFnKFwiRG9ja2VyXCIpPERvY2tlciwgRG9ja2VyU2VydmljZT4oKSB7fVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgbGl2ZSBEb2NrZXIgc2VydmljZSBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuY29uc3QgbWFrZURvY2tlclNlcnZpY2U6IEVmZmVjdC5FZmZlY3Q8RG9ja2VyU2VydmljZSwgRXJyb3I+ID0gRWZmZWN0LmdlbihcbiAgZnVuY3Rpb24qICgpIHtcbiAgICBjb25zdCBydW50aW1lID0geWllbGQqIGRldGVjdERvY2tlclJ1bnRpbWUoKVxuXG4gICAgY29uc3QgZ2V0UnVudGltZUluZm86IERvY2tlclNlcnZpY2VbXCJnZXRSdW50aW1lSW5mb1wiXSA9ICgpID0+XG4gICAgICBFZmZlY3Quc3VjY2VlZChydW50aW1lKVxuXG4gICAgY29uc3QgcnVuOiBEb2NrZXJTZXJ2aWNlW1wicnVuXCJdID0gKGNvbmZpZykgPT5cbiAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgYXJncyA9IGJ1aWxkRG9ja2VyUnVuQXJncyhjb25maWcsIHJ1bnRpbWUpXG5cbiAgICAgICAgeWllbGQqIEVmZmVjdC5sb2dEZWJ1ZyhgUnVubmluZzogZG9ja2VyICR7YXJncy5qb2luKFwiIFwiKX1gKVxuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBQbGF0Zm9ybUNvbW1hbmQubWFrZShydW50aW1lLmRvY2tlclBhdGgsIC4uLmFyZ3MpXG5cbiAgICAgICAgY29uc3Qgc3Rkb3V0OiBzdHJpbmdbXSA9IFtdXG4gICAgICAgIGNvbnN0IHN0ZGVycjogc3RyaW5nW10gPSBbXVxuXG4gICAgICAgIC8vIFJ1biB0aGUgY29tbWFuZCBhbmQgY29sbGVjdCBvdXRwdXRcbiAgICAgICAgY29uc3QgcHJvYyA9IHlpZWxkKiBQbGF0Zm9ybUNvbW1hbmQuc3RhcnQoY29tbWFuZClcblxuICAgICAgICAvLyBMYW1iZGEgUklDIGVycm9yL291dHB1dCBwYXR0ZXJucyB0aGF0IGFyZSBleHBlY3RlZCBkdXJpbmcgcG9sbCB0aW1lb3V0XG4gICAgICAgIC8vIFRoZXNlIGFyZSBzdXBwcmVzc2VkIGZyb20gb3V0cHV0IHRvIGF2b2lkIHNjYXJ5IGVycm9yIG1lc3NhZ2VzXG4gICAgICAgIGNvbnN0IGlzRXhwZWN0ZWRSaWNPdXRwdXQgPSAobGluZTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICAgICAgICAgIGxpbmUuaW5jbHVkZXMoXCJMQU1CREFfUlVOVElNRSBGYWlsZWQgdG8gZ2V0IG5leHQgaW52b2NhdGlvblwiKSB8fFxuICAgICAgICAgIGxpbmUuaW5jbHVkZXMoXCJGYWlsZWQgdG8gZ2V0IG5leHQgaW52b2NhdGlvbiwgZXJyb3IgNTAzXCIpIHx8XG4gICAgICAgICAgLy8gRmlsdGVyIG91dCB0aGUgTm9kZS5qcyBzdGFjayB0cmFjZSBmcm9tIExhbWJkYSBSSUMgZXhpdFxuICAgICAgICAgIGxpbmUuaW5jbHVkZXMoXCJ0cmlnZ2VyVW5jYXVnaHRFeGNlcHRpb25cIikgfHxcbiAgICAgICAgICBsaW5lLmluY2x1ZGVzKFwiW0Vycm9yOiBGYWlsZWQgdG8gZ2V0IG5leHQgaW52b2NhdGlvblwiKSB8fFxuICAgICAgICAgIC8vIFwiTm9kZS5qcyB2XCIgdmVyc2lvbiBsaW5lIGFmdGVyIGVycm9yXG4gICAgICAgICAgbGluZS5zdGFydHNXaXRoKFwiTm9kZS5qcyB2XCIpIHx8XG4gICAgICAgICAgbGluZS5pbmNsdWRlcyhcIm5vZGU6aW50ZXJuYWwvcHJvY2Vzcy9wcm9taXNlc1wiKSB8fFxuICAgICAgICAgIC8vIFN0YWNrIHRyYWNlIGNhcmV0IGxpbmUgKGp1c3Qgd2hpdGVzcGFjZSBhbmQgXilcbiAgICAgICAgICAvXlxccypcXF4/XFxzKiQvLnRlc3QobGluZSlcblxuICAgICAgICAvLyBQYXR0ZXJuIHRvIHBhcnNlIExhbWJkYSBsb2cgZm9ybWF0OiBUSU1FU1RBTVBcXHRSRVFVRVNUX0lEXFx0TEVWRUxcXHRNRVNTQUdFXG4gICAgICAgIC8vIExhbWJkYSB1c2VzIHRhYnMgYmV0d2VlbiBmaWVsZHMuIENhcHR1cmVzOiBbMV0gPSByZXF1ZXN0IElELCBbMl0gPSBsZXZlbCArIG1lc3NhZ2VcbiAgICAgICAgY29uc3QgbGFtYmRhTG9nUGF0dGVybiA9XG4gICAgICAgICAgL14oXFxkezR9LVxcZHsyfS1cXGR7Mn1UW1xcZDouXStaKVtcXHRcXHNdKyhbMC05YS1mLV17MzZ9KVtcXHRcXHNdKyguKikkL2lcblxuICAgICAgICAvLyBIZWxwZXIgdG8gZm9ybWF0IGxvZyBsaW5lIHdpdGggaW52b2NhdGlvbiBwcmVmaXhcbiAgICAgICAgY29uc3QgZm9ybWF0TGluZSA9IChcbiAgICAgICAgICByYXdMaW5lOiBzdHJpbmcsXG4gICAgICAgICk6IHsgcHJlZml4OiBzdHJpbmc7IGNvbnRlbnQ6IHN0cmluZyB9ID0+IHtcbiAgICAgICAgICAvLyBTdHJpcCBjYXJyaWFnZSByZXR1cm5zIHRoYXQgY2FuIGNhdXNlIHRlcm1pbmFsIGNvcnJ1cHRpb25cbiAgICAgICAgICBjb25zdCBsaW5lID0gcmF3TGluZS5yZXBsYWNlKC9cXHIvZywgXCJcIilcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IGxhbWJkYUxvZ1BhdHRlcm4uZXhlYyhsaW5lKVxuICAgICAgICAgIGlmIChtYXRjaCAmJiBjb25maWcuaW52b2NhdGlvbkNvbnRleHRzKSB7XG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0SWQgPSBtYXRjaFsyXVxuICAgICAgICAgICAgY29uc3QgY3R4ID0gY29uZmlnLmludm9jYXRpb25Db250ZXh0cy5nZXQocmVxdWVzdElkKVxuICAgICAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgICAvLyBTdHJpcCB0aW1lc3RhbXAgYW5kIHJlcXVlc3QgSUQsIGtlZXAganVzdCBMRVZFTCBNRVNTQUdFXG4gICAgICAgICAgICAgIHJldHVybiB7IHByZWZpeDogYFske2N0eC5udW19XWAsIGNvbnRlbnQ6IG1hdGNoWzNdIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgcHJlZml4OiBcIltDb250YWluZXJdXCIsIGNvbnRlbnQ6IGxpbmUgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJvY2VzcyBzdGRvdXQgLSBmaWx0ZXIgZXhwZWN0ZWQgZXJyb3JzLCBmb3J3YXJkIHRoZSByZXN0XG4gICAgICAgIGNvbnN0IHN0ZG91dEZpYmVyID0geWllbGQqIHByb2Muc3Rkb3V0LnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgocmF3TGluZSkgPT5cbiAgICAgICAgICAgIEVmZmVjdC5zeW5jKCgpID0+IHtcbiAgICAgICAgICAgICAgc3Rkb3V0LnB1c2gocmF3TGluZSlcbiAgICAgICAgICAgICAgLy8gU3VwcHJlc3MgZXhwZWN0ZWQgUklDIG91dHB1dCAocG9sbCB0aW1lb3V0IGVycm9ycylcbiAgICAgICAgICAgICAgaWYgKCFpc0V4cGVjdGVkUmljT3V0cHV0KHJhd0xpbmUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcmVmaXgsIGNvbnRlbnQgfSA9IGZvcm1hdExpbmUocmF3TGluZSlcbiAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHtwcmVmaXh9ICR7Y29udGVudH1cXG5gKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gUHJvY2VzcyBzdGRlcnIgLSBmaWx0ZXIgZXhwZWN0ZWQgZXJyb3JzLCBmb3J3YXJkIHRoZSByZXN0XG4gICAgICAgIGNvbnN0IHN0ZGVyckZpYmVyID0geWllbGQqIHByb2Muc3RkZXJyLnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgocmF3TGluZSkgPT5cbiAgICAgICAgICAgIEVmZmVjdC5zeW5jKCgpID0+IHtcbiAgICAgICAgICAgICAgc3RkZXJyLnB1c2gocmF3TGluZSlcbiAgICAgICAgICAgICAgLy8gU3VwcHJlc3MgZXhwZWN0ZWQgUklDIG91dHB1dCAocG9sbCB0aW1lb3V0IGVycm9ycylcbiAgICAgICAgICAgICAgaWYgKCFpc0V4cGVjdGVkUmljT3V0cHV0KHJhd0xpbmUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwcmVmaXgsIGNvbnRlbnQgfSA9IGZvcm1hdExpbmUocmF3TGluZSlcbiAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtwcmVmaXh9ICR7Y29udGVudH1cXG5gKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gV2FpdCBmb3IgYm90aCBzdHJlYW1zIGFuZCBleGl0IGNvZGVcbiAgICAgICAgeWllbGQqIEVmZmVjdC5hbGwoW1xuICAgICAgICAgIEVmZmVjdC5mcm9tRmliZXIoc3Rkb3V0RmliZXIpLFxuICAgICAgICAgIEVmZmVjdC5mcm9tRmliZXIoc3RkZXJyRmliZXIpLFxuICAgICAgICBdKVxuXG4gICAgICAgIGNvbnN0IGV4aXRDb2RlID0geWllbGQqIHByb2MuZXhpdENvZGVcblxuICAgICAgICAvLyBPbmx5IHN1cHByZXNzIHdhcm5pbmdzIGZvciBleHBlY3RlZCBleGl0IGNvZGVzOlxuICAgICAgICAvLyAtIDA6IENsZWFuIGV4aXRcbiAgICAgICAgLy8gLSAxOiBMYW1iZGEgUklDIGV4aXQgYWZ0ZXIgNTAzIHBvbGwgdGltZW91dCAoZXhwZWN0ZWQpXG4gICAgICAgIC8vIC0gMTQzICgxMjgrMTUpOiBTSUdURVJNIGZyb20gZG9ja2VyIHN0b3BcbiAgICAgICAgLy8gLSAxMzcgKDEyOCs5KTogU0lHS0lMTCBmcm9tIGRvY2tlciBzdG9wIHRpbWVvdXRcbiAgICAgICAgY29uc3QgZXhwZWN0ZWRFeGl0Q29kZXMgPSBbMCwgMSwgMTQzLCAxMzddXG4gICAgICAgIGlmICghZXhwZWN0ZWRFeGl0Q29kZXMuaW5jbHVkZXMoZXhpdENvZGUpKSB7XG4gICAgICAgICAgeWllbGQqIEVmZmVjdC5sb2dXYXJuaW5nKGBDb250YWluZXIgZXhpdGVkIHdpdGggY29kZSAke2V4aXRDb2RlfWApXG4gICAgICAgIH0gZWxzZSBpZiAoZXhpdENvZGUgIT09IDApIHtcbiAgICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0RlYnVnKGBDb250YWluZXIgZXhpdGVkIHdpdGggY29kZSAke2V4aXRDb2RlfWApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGV4aXRDb2RlLFxuICAgICAgICAgIHN0ZG91dDogc3Rkb3V0LmpvaW4oXCJcXG5cIiksXG4gICAgICAgICAgc3RkZXJyOiBzdGRlcnIuam9pbihcIlxcblwiKSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgIGNvbnN0IHJ1blNjb3BlZDogRG9ja2VyU2VydmljZVtcInJ1blNjb3BlZFwiXSA9IChjb25maWcpID0+XG4gICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBidWlsZERvY2tlclJ1bkFyZ3MoY29uZmlnLCBydW50aW1lKVxuXG4gICAgICAgIHlpZWxkKiBFZmZlY3QubG9nSW5mbyhgUnVubmluZyAoc2NvcGVkKTogZG9ja2VyICR7YXJncy5qb2luKFwiIFwiKX1gKVxuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBQbGF0Zm9ybUNvbW1hbmQubWFrZShydW50aW1lLmRvY2tlclBhdGgsIC4uLmFyZ3MpXG5cbiAgICAgICAgY29uc3QgcHJvYyA9IHlpZWxkKiBQbGF0Zm9ybUNvbW1hbmQuc3RhcnQoY29tbWFuZClcblxuICAgICAgICAvLyBGb3JrIG91dHB1dCBwcm9jZXNzaW5nIGluIGJhY2tncm91bmQgKHdpbGwgYmUgaW50ZXJydXB0ZWQgd2hlbiBzY29wZSBjbG9zZXMpXG4gICAgICAgIHlpZWxkKiBwcm9jLnN0ZG91dC5waXBlKFxuICAgICAgICAgIFN0cmVhbS5kZWNvZGVUZXh0KCksXG4gICAgICAgICAgU3RyZWFtLnNwbGl0TGluZXMsXG4gICAgICAgICAgU3RyZWFtLnJ1bkZvckVhY2goKGxpbmUpID0+XG4gICAgICAgICAgICBFZmZlY3Quc3luYygoKSA9PiB7XG4gICAgICAgICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBbQ29udGFpbmVyXSAke2xpbmV9XFxuYClcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICAgRWZmZWN0LmZvcmssXG4gICAgICAgIClcblxuICAgICAgICB5aWVsZCogcHJvYy5zdGRlcnIucGlwZShcbiAgICAgICAgICBTdHJlYW0uZGVjb2RlVGV4dCgpLFxuICAgICAgICAgIFN0cmVhbS5zcGxpdExpbmVzLFxuICAgICAgICAgIFN0cmVhbS5ydW5Gb3JFYWNoKChsaW5lKSA9PlxuICAgICAgICAgICAgRWZmZWN0LnN5bmMoKCkgPT4ge1xuICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgW0NvbnRhaW5lcl0gJHtsaW5lfVxcbmApXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgcmV0dXJuIHByb2NcbiAgICAgIH0pXG5cbiAgICBjb25zdCBidWlsZDogRG9ja2VyU2VydmljZVtcImJ1aWxkXCJdID0gKG9wdGlvbnMpID0+XG4gICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBbXG4gICAgICAgICAgXCJidWlsZFwiLFxuICAgICAgICAgIFwiLXRcIixcbiAgICAgICAgICBvcHRpb25zLmltYWdlTmFtZSxcbiAgICAgICAgICBcIi0tcGxhdGZvcm1cIixcbiAgICAgICAgICBvcHRpb25zLnBsYXRmb3JtID8/IFwibGludXgvYXJtNjRcIixcbiAgICAgICAgICBvcHRpb25zLmNvbnRleHRQYXRoLFxuICAgICAgICBdXG5cbiAgICAgICAgeWllbGQqIEVmZmVjdC5sb2dJbmZvKGBCdWlsZGluZyBpbWFnZTogJHtvcHRpb25zLmltYWdlTmFtZX1gKVxuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0RlYnVnKGBDb250ZXh0OiAke29wdGlvbnMuY29udGV4dFBhdGh9YClcblxuICAgICAgICBjb25zdCBjb21tYW5kID0gUGxhdGZvcm1Db21tYW5kLm1ha2UocnVudGltZS5kb2NrZXJQYXRoLCAuLi5hcmdzKVxuXG4gICAgICAgIGNvbnN0IHByb2MgPSB5aWVsZCogUGxhdGZvcm1Db21tYW5kLnN0YXJ0KGNvbW1hbmQpXG5cbiAgICAgICAgLy8gUHJvY2VzcyBzdGRvdXQgKGRlYnVnIG9ubHkpXG4gICAgICAgIGNvbnN0IHN0ZG91dEZpYmVyID0geWllbGQqIHByb2Muc3Rkb3V0LnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgobGluZSkgPT4gRWZmZWN0LmxvZ0RlYnVnKGBbRG9ja2VyXSAke2xpbmV9YCkpLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gUHJvY2VzcyBzdGRlcnIgKGRlYnVnIG9ubHkpXG4gICAgICAgIGNvbnN0IHN0ZGVyckZpYmVyID0geWllbGQqIHByb2Muc3RkZXJyLnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgobGluZSkgPT4gRWZmZWN0LmxvZ0RlYnVnKGBbRG9ja2VyXSAke2xpbmV9YCkpLFxuICAgICAgICAgIEVmZmVjdC5mb3JrLFxuICAgICAgICApXG5cbiAgICAgICAgLy8gV2FpdCBmb3Igc3RyZWFtcyBhbmQgZXhpdCBjb2RlXG4gICAgICAgIHlpZWxkKiBFZmZlY3QuYWxsKFtcbiAgICAgICAgICBFZmZlY3QuZnJvbUZpYmVyKHN0ZG91dEZpYmVyKSxcbiAgICAgICAgICBFZmZlY3QuZnJvbUZpYmVyKHN0ZGVyckZpYmVyKSxcbiAgICAgICAgXSlcblxuICAgICAgICBjb25zdCBleGl0Q29kZSA9IHlpZWxkKiBwcm9jLmV4aXRDb2RlXG5cbiAgICAgICAgaWYgKGV4aXRDb2RlICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHlpZWxkKiBFZmZlY3QuZmFpbChcbiAgICAgICAgICAgIG5ldyBFcnJvcihgRG9ja2VyIGJ1aWxkIGZhaWxlZCB3aXRoIGNvZGUgJHtleGl0Q29kZX1gKSxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0luZm8oYEJ1aWx0IGltYWdlOiAke29wdGlvbnMuaW1hZ2VOYW1lfWApXG4gICAgICB9KVxuXG4gICAgY29uc3QgcHVsbDogRG9ja2VyU2VydmljZVtcInB1bGxcIl0gPSAoaW1hZ2VVcmkpID0+XG4gICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHlpZWxkKiBFZmZlY3QubG9nSW5mbyhgUHVsbGluZyBpbWFnZTogJHtpbWFnZVVyaX1gKVxuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBQbGF0Zm9ybUNvbW1hbmQubWFrZShcbiAgICAgICAgICBydW50aW1lLmRvY2tlclBhdGgsXG4gICAgICAgICAgXCJwdWxsXCIsXG4gICAgICAgICAgaW1hZ2VVcmksXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBwcm9jID0geWllbGQqIFBsYXRmb3JtQ29tbWFuZC5zdGFydChjb21tYW5kKVxuXG4gICAgICAgIC8vIFByb2Nlc3Mgc3Rkb3V0IChkZWJ1ZyBvbmx5KVxuICAgICAgICBjb25zdCBzdGRvdXRGaWJlciA9IHlpZWxkKiBwcm9jLnN0ZG91dC5waXBlKFxuICAgICAgICAgIFN0cmVhbS5kZWNvZGVUZXh0KCksXG4gICAgICAgICAgU3RyZWFtLnNwbGl0TGluZXMsXG4gICAgICAgICAgU3RyZWFtLnJ1bkZvckVhY2goKGxpbmUpID0+IEVmZmVjdC5sb2dEZWJ1ZyhgW0RvY2tlcl0gJHtsaW5lfWApKSxcbiAgICAgICAgICBFZmZlY3QuZm9yayxcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIFByb2Nlc3Mgc3RkZXJyIChkZWJ1ZyBvbmx5KVxuICAgICAgICBjb25zdCBzdGRlcnJGaWJlciA9IHlpZWxkKiBwcm9jLnN0ZGVyci5waXBlKFxuICAgICAgICAgIFN0cmVhbS5kZWNvZGVUZXh0KCksXG4gICAgICAgICAgU3RyZWFtLnNwbGl0TGluZXMsXG4gICAgICAgICAgU3RyZWFtLnJ1bkZvckVhY2goKGxpbmUpID0+IEVmZmVjdC5sb2dEZWJ1ZyhgW0RvY2tlcl0gJHtsaW5lfWApKSxcbiAgICAgICAgICBFZmZlY3QuZm9yayxcbiAgICAgICAgKVxuXG4gICAgICAgIC8vIFdhaXQgZm9yIHN0cmVhbXMgYW5kIGV4aXQgY29kZVxuICAgICAgICB5aWVsZCogRWZmZWN0LmFsbChbXG4gICAgICAgICAgRWZmZWN0LmZyb21GaWJlcihzdGRvdXRGaWJlciksXG4gICAgICAgICAgRWZmZWN0LmZyb21GaWJlcihzdGRlcnJGaWJlciksXG4gICAgICAgIF0pXG5cbiAgICAgICAgY29uc3QgZXhpdENvZGUgPSB5aWVsZCogcHJvYy5leGl0Q29kZVxuXG4gICAgICAgIGlmIChleGl0Q29kZSAhPT0gMCkge1xuICAgICAgICAgIHJldHVybiB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICBuZXcgRXJyb3IoYERvY2tlciBwdWxsIGZhaWxlZCB3aXRoIGNvZGUgJHtleGl0Q29kZX1gKSxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0luZm8oYFB1bGxlZCBpbWFnZTogJHtpbWFnZVVyaX1gKVxuICAgICAgfSlcblxuICAgIGNvbnN0IGxpc3Q6IERvY2tlclNlcnZpY2VbXCJsaXN0XCJdID0gKGNvbnRhaW5lck5hbWVGaWx0ZXIpID0+XG4gICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBQbGF0Zm9ybUNvbW1hbmQubWFrZShcbiAgICAgICAgICBydW50aW1lLmRvY2tlclBhdGgsXG4gICAgICAgICAgXCJwc1wiLFxuICAgICAgICAgIFwiLXFcIixcbiAgICAgICAgICBcIi0tZmlsdGVyXCIsXG4gICAgICAgICAgYG5hbWU9JHtjb250YWluZXJOYW1lRmlsdGVyfWAsXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBwcm9jID0geWllbGQqIFBsYXRmb3JtQ29tbWFuZC5zdGFydChjb21tYW5kKVxuXG4gICAgICAgIC8vIENvbGxlY3Qgc3Rkb3V0XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcklkczogc3RyaW5nW10gPSBbXVxuICAgICAgICB5aWVsZCogcHJvYy5zdGRvdXQucGlwZShcbiAgICAgICAgICBTdHJlYW0uZGVjb2RlVGV4dCgpLFxuICAgICAgICAgIFN0cmVhbS5zcGxpdExpbmVzLFxuICAgICAgICAgIFN0cmVhbS5ydW5Gb3JFYWNoKChsaW5lKSA9PlxuICAgICAgICAgICAgRWZmZWN0LnN5bmMoKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0cmltbWVkID0gbGluZS50cmltKClcbiAgICAgICAgICAgICAgaWYgKHRyaW1tZWQpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXJJZHMucHVzaCh0cmltbWVkKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICApXG5cbiAgICAgICAgY29uc3QgZXhpdENvZGUgPSB5aWVsZCogcHJvYy5leGl0Q29kZVxuXG4gICAgICAgIGlmIChleGl0Q29kZSAhPT0gMCkge1xuICAgICAgICAgIHJldHVybiB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICBuZXcgRXJyb3IoYERvY2tlciBwcyBmYWlsZWQgd2l0aCBjb2RlICR7ZXhpdENvZGV9YCksXG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lcklkc1xuICAgICAgfSlcblxuICAgIGNvbnN0IHN0b3A6IERvY2tlclNlcnZpY2VbXCJzdG9wXCJdID0gKGNvbnRhaW5lck5hbWVGaWx0ZXIsIHRpbWVvdXRTZWNvbmRzKSA9PlxuICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBGaXJzdCBsaXN0IG1hdGNoaW5nIGNvbnRhaW5lcnNcbiAgICAgICAgY29uc3QgY29udGFpbmVySWRzID0geWllbGQqIGxpc3QoY29udGFpbmVyTmFtZUZpbHRlcilcblxuICAgICAgICBpZiAoY29udGFpbmVySWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHlpZWxkKiBFZmZlY3QubG9nRGVidWcoXG4gICAgICAgICAgICBgTm8gY29udGFpbmVycyBmb3VuZCBtYXRjaGluZzogJHtjb250YWluZXJOYW1lRmlsdGVyfWAsXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAwXG4gICAgICAgIH1cblxuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0luZm8oYFN0b3BwaW5nIGNvbnRhaW5lcnM6ICR7Y29udGFpbmVySWRzLmpvaW4oXCIsIFwiKX1gKVxuXG4gICAgICAgIC8vIEJ1aWxkIHN0b3AgY29tbWFuZCB3aXRoIG9wdGlvbmFsIHRpbWVvdXRcbiAgICAgICAgLy8gLXQgMCBzZW5kcyBTSUdLSUxMIGltbWVkaWF0ZWx5LCB1c2VmdWwgZm9yIGZhc3QgcmVzdGFydHNcbiAgICAgICAgY29uc3QgdGltZW91dEFyZyA9XG4gICAgICAgICAgdGltZW91dFNlY29uZHMgIT09IHVuZGVmaW5lZCA/IFtcIi10XCIsIFN0cmluZyh0aW1lb3V0U2Vjb25kcyldIDogW11cbiAgICAgICAgY29uc3QgY29tbWFuZCA9IFBsYXRmb3JtQ29tbWFuZC5tYWtlKFxuICAgICAgICAgIHJ1bnRpbWUuZG9ja2VyUGF0aCxcbiAgICAgICAgICBcInN0b3BcIixcbiAgICAgICAgICAuLi50aW1lb3V0QXJnLFxuICAgICAgICAgIC4uLmNvbnRhaW5lcklkcyxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHByb2MgPSB5aWVsZCogUGxhdGZvcm1Db21tYW5kLnN0YXJ0KGNvbW1hbmQpXG5cbiAgICAgICAgLy8gUHJvY2VzcyBvdXRwdXQgZm9yIGxvZ2dpbmdcbiAgICAgICAgeWllbGQqIHByb2Muc3Rkb3V0LnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmRlY29kZVRleHQoKSxcbiAgICAgICAgICBTdHJlYW0uc3BsaXRMaW5lcyxcbiAgICAgICAgICBTdHJlYW0ucnVuRm9yRWFjaCgobGluZSkgPT5cbiAgICAgICAgICAgIEVmZmVjdC5sb2dEZWJ1ZyhgW0RvY2tlciBzdG9wXSAke2xpbmUudHJpbSgpfWApLFxuICAgICAgICAgICksXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBleGl0Q29kZSA9IHlpZWxkKiBwcm9jLmV4aXRDb2RlXG5cbiAgICAgICAgaWYgKGV4aXRDb2RlICE9PSAwKSB7XG4gICAgICAgICAgeWllbGQqIEVmZmVjdC5sb2dXYXJuaW5nKFxuICAgICAgICAgICAgYERvY2tlciBzdG9wIGV4aXRlZCB3aXRoIGNvZGUgJHtleGl0Q29kZX0gKHNvbWUgY29udGFpbmVycyBtYXkgaGF2ZSBhbHJlYWR5IHN0b3BwZWQpYCxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGFpbmVySWRzLmxlbmd0aFxuICAgICAgfSlcblxuICAgIGNvbnN0IGluc3BlY3Q6IERvY2tlclNlcnZpY2VbXCJpbnNwZWN0XCJdID0gKGltYWdlVXJpKSA9PlxuICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBleGVjdXRvciA9IHlpZWxkKiBDb21tYW5kRXhlY3V0b3IuQ29tbWFuZEV4ZWN1dG9yXG5cbiAgICAgICAgLy8gR2V0IGVudHJ5cG9pbnRcbiAgICAgICAgY29uc3QgZW50cnlwb2ludENtZCA9IFBsYXRmb3JtQ29tbWFuZC5tYWtlKFxuICAgICAgICAgIHJ1bnRpbWUuZG9ja2VyUGF0aCxcbiAgICAgICAgICBcImluc3BlY3RcIixcbiAgICAgICAgICBcIi0tZm9ybWF0XCIsXG4gICAgICAgICAgXCJ7e2pzb24gLkNvbmZpZy5FbnRyeXBvaW50fX1cIixcbiAgICAgICAgICBpbWFnZVVyaSxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBlbnRyeXBvaW50UHJvYyA9IHlpZWxkKiBleGVjdXRvci5zdGFydChlbnRyeXBvaW50Q21kKVxuICAgICAgICBjb25zdCBlbnRyeXBvaW50T3V0cHV0ID0geWllbGQqIFN0cmVhbS5ydW5Db2xsZWN0KFxuICAgICAgICAgIFN0cmVhbS5kZWNvZGVUZXh0KGVudHJ5cG9pbnRQcm9jLnN0ZG91dCksXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgZW50cnlwb2ludEV4aXRDb2RlID0geWllbGQqIGVudHJ5cG9pbnRQcm9jLmV4aXRDb2RlXG4gICAgICAgIGlmIChlbnRyeXBvaW50RXhpdENvZGUgIT09IDApIHtcbiAgICAgICAgICB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICBuZXcgRXJyb3IoYEZhaWxlZCB0byBpbnNwZWN0IGltYWdlIGVudHJ5cG9pbnQ6ICR7aW1hZ2VVcml9YCksXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVudHJ5cG9pbnRKc29uID0gQXJyYXkuZnJvbShlbnRyeXBvaW50T3V0cHV0KS5qb2luKFwiXCIpLnRyaW0oKVxuXG4gICAgICAgIC8vIEdldCBjbWRcbiAgICAgICAgY29uc3QgY21kQ21kID0gUGxhdGZvcm1Db21tYW5kLm1ha2UoXG4gICAgICAgICAgcnVudGltZS5kb2NrZXJQYXRoLFxuICAgICAgICAgIFwiaW5zcGVjdFwiLFxuICAgICAgICAgIFwiLS1mb3JtYXRcIixcbiAgICAgICAgICBcInt7anNvbiAuQ29uZmlnLkNtZH19XCIsXG4gICAgICAgICAgaW1hZ2VVcmksXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgY21kUHJvYyA9IHlpZWxkKiBleGVjdXRvci5zdGFydChjbWRDbWQpXG4gICAgICAgIGNvbnN0IGNtZE91dHB1dCA9IHlpZWxkKiBTdHJlYW0ucnVuQ29sbGVjdChcbiAgICAgICAgICBTdHJlYW0uZGVjb2RlVGV4dChjbWRQcm9jLnN0ZG91dCksXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgY21kRXhpdENvZGUgPSB5aWVsZCogY21kUHJvYy5leGl0Q29kZVxuICAgICAgICBpZiAoY21kRXhpdENvZGUgIT09IDApIHtcbiAgICAgICAgICB5aWVsZCogRWZmZWN0LmZhaWwoXG4gICAgICAgICAgICBuZXcgRXJyb3IoYEZhaWxlZCB0byBpbnNwZWN0IGltYWdlIGNtZDogJHtpbWFnZVVyaX1gKSxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY21kSnNvbiA9IEFycmF5LmZyb20oY21kT3V0cHV0KS5qb2luKFwiXCIpLnRyaW0oKVxuXG4gICAgICAgIC8vIFBhcnNlIEpTT04gLSBudWxsIGlzIHZhbGlkLCBzbyBoYW5kbGUgdGhhdFxuICAgICAgICBjb25zdCBwYXJzZUpzb25BcnJheSA9IChqc29uOiBzdHJpbmcpOiBzdHJpbmdbXSB8IG51bGwgPT4ge1xuICAgICAgICAgIGlmIChqc29uID09PSBcIm51bGxcIiB8fCBqc29uID09PSBcIlwiKSByZXR1cm4gbnVsbFxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGpzb24pXG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkIDogbnVsbFxuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVudHJ5cG9pbnQ6IHBhcnNlSnNvbkFycmF5KGVudHJ5cG9pbnRKc29uKSxcbiAgICAgICAgICBjbWQ6IHBhcnNlSnNvbkFycmF5KGNtZEpzb24pLFxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJ1bixcbiAgICAgIHJ1blNjb3BlZCxcbiAgICAgIGJ1aWxkLFxuICAgICAgcHVsbCxcbiAgICAgIHN0b3AsXG4gICAgICBsaXN0LFxuICAgICAgZ2V0UnVudGltZUluZm8sXG4gICAgICBpbnNwZWN0LFxuICAgIH0gc2F0aXNmaWVzIERvY2tlclNlcnZpY2VcbiAgfSxcbilcblxuLyoqXG4gKiBMaXZlIERvY2tlciBzZXJ2aWNlIGxheWVyLlxuICogTm90ZTogRG9lcyBub3QgcmVxdWlyZSBDb21tYW5kRXhlY3V0b3IgaW4gdGhlIGxheWVyIC0gaXQncyByZXF1aXJlZFxuICogd2hlbiB0aGUgc2VydmljZSBtZXRob2RzIGFyZSBjYWxsZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBEb2NrZXJMaXZlOiBMYXllci5MYXllcjxEb2NrZXIsIEVycm9yPiA9IExheWVyLmVmZmVjdChcbiAgRG9ja2VyLFxuICBtYWtlRG9ja2VyU2VydmljZSxcbilcblxuLyoqXG4gKiBDcmVhdGUgYSBjb250YWluZXIgY29uZmlnIGZvciBydW5uaW5nIGEgTGFtYmRhIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGNvbnN0IG1ha2VMYW1iZGFDb250YWluZXJDb25maWcgPSAob3B0aW9uczoge1xuICBpbWFnZVVyaTogc3RyaW5nXG4gIHJ1bnRpbWVBcGlIb3N0OiBzdHJpbmdcbiAgcnVudGltZUFwaVBvcnQ6IG51bWJlclxuICBmdW5jdGlvbk5hbWU6IHN0cmluZ1xuICBmdW5jdGlvblZlcnNpb246IHN0cmluZ1xuICBtZW1vcnlNQjogbnVtYmVyXG4gIHRpbWVvdXRTZWNvbmRzOiBudW1iZXJcbiAgaGFuZGxlcj86IHN0cmluZyB8IHVuZGVmaW5lZFxuICBhd3NSZWdpb24/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgcGxhdGZvcm0/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgYWRkaXRpb25hbEVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWRcbiAgaW52b2NhdGlvbkNvbnRleHRzPzogTWFwPHN0cmluZywgeyBudW06IG51bWJlciB9PiB8IHVuZGVmaW5lZFxufSk6IERvY2tlclJ1bkNvbmZpZyA9PiAoe1xuICBpbWFnZVVyaTogb3B0aW9ucy5pbWFnZVVyaSxcbiAgY29udGFpbmVyTmFtZTogYGxhbWJkYS0ke29wdGlvbnMuZnVuY3Rpb25OYW1lLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCBcIi1cIil9YCxcbiAgcGxhdGZvcm06IG9wdGlvbnMucGxhdGZvcm0sXG4gIGVudmlyb25tZW50OiB7XG4gICAgQVdTX0xBTUJEQV9SVU5USU1FX0FQSTogYCR7b3B0aW9ucy5ydW50aW1lQXBpSG9zdH06JHtvcHRpb25zLnJ1bnRpbWVBcGlQb3J0fWAsXG4gICAgQVdTX0xBTUJEQV9GVU5DVElPTl9OQU1FOiBvcHRpb25zLmZ1bmN0aW9uTmFtZSxcbiAgICBBV1NfTEFNQkRBX0ZVTkNUSU9OX1ZFUlNJT046IG9wdGlvbnMuZnVuY3Rpb25WZXJzaW9uLFxuICAgIEFXU19MQU1CREFfRlVOQ1RJT05fTUVNT1JZX1NJWkU6IFN0cmluZyhvcHRpb25zLm1lbW9yeU1CKSxcbiAgICBBV1NfUkVHSU9OOiBvcHRpb25zLmF3c1JlZ2lvbiA/PyBcInVzLWVhc3QtMVwiLFxuICAgIEFXU19ERUZBVUxUX1JFR0lPTjogb3B0aW9ucy5hd3NSZWdpb24gPz8gXCJ1cy1lYXN0LTFcIixcbiAgICBBV1NfTEFNQkRBX0xPR19HUk9VUF9OQU1FOiBgL2F3cy9sYW1iZGEvJHtvcHRpb25zLmZ1bmN0aW9uTmFtZX1gLFxuICAgIEFXU19MQU1CREFfTE9HX1NUUkVBTV9OQU1FOiBcImxvY2FsXCIsXG4gICAgX0hBTkRMRVI6IG9wdGlvbnMuaGFuZGxlciA/PyBcImluZGV4LmhhbmRsZXJcIixcbiAgICAuLi5vcHRpb25zLmFkZGl0aW9uYWxFbnYsXG4gIH0sXG4gIG1lbW9yeU1COiBvcHRpb25zLm1lbW9yeU1CLFxuICB0aW1lb3V0U2Vjb25kczogb3B0aW9ucy50aW1lb3V0U2Vjb25kcyxcbiAgbmV0d29ya01vZGU6IFwiYnJpZGdlXCIsXG4gIGludm9jYXRpb25Db250ZXh0czogb3B0aW9ucy5pbnZvY2F0aW9uQ29udGV4dHMsXG59KVxuXG4vKipcbiAqIFN0cmVhbSBvdXRwdXQgZnJvbSBhIERvY2tlciBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVyT3V0cHV0IHtcbiAgdHlwZTogXCJzdGRvdXRcIiB8IFwic3RkZXJyXCJcbiAgZGF0YTogc3RyaW5nXG59XG5cbi8qKlxuICogU2hlbGwtcXVvdGUgYSBzdHJpbmcgZm9yIHNhZmUgaW5jbHVzaW9uIGluIGEgc2hlbGwgY29tbWFuZC5cbiAqIFVzZXMgc2luZ2xlIHF1b3RlcyBhbmQgZXNjYXBlcyBhbnkgZW1iZWRkZWQgc2luZ2xlIHF1b3Rlcy5cbiAqL1xuY29uc3Qgc2hlbGxRdW90ZSA9IChzOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAvLyBTaW5nbGUgcXVvdGVzIGFyZSBzYWZlc3QgLSBlc2NhcGUgYW55IGVtYmVkZGVkIHNpbmdsZSBxdW90ZXNcbiAgcmV0dXJuIGAnJHtzLnJlcGxhY2UoLycvZywgXCInXFxcXCcnXCIpfSdgXG59XG5cbi8qKlxuICogQnVpbGQgYSB3cmFwcGVyIGNvbW1hbmQgdGhhdCBzdGFydHMgTGFtYmRhIGV4dGVuc2lvbnMgYmVmb3JlIHRoZSBtYWluIGFwcC5cbiAqXG4gKiBUaGlzIG1pbWljcyBBV1MgTGFtYmRhJ3MgYmVoYXZpb3Igb2YgYXV0b21hdGljYWxseSBzdGFydGluZyBhbGwgZXhlY3V0YWJsZXNcbiAqIGluIC9vcHQvZXh0ZW5zaW9ucy8gYXMgYmFja2dyb3VuZCBwcm9jZXNzZXMgYmVmb3JlIHJ1bm5pbmcgdGhlIG1haW4gY29tbWFuZC5cbiAqXG4gKiBAcGFyYW0gb3JpZ2luYWxFbnRyeXBvaW50IC0gVGhlIGltYWdlJ3Mgb3JpZ2luYWwgRU5UUllQT0lOVFxuICogQHBhcmFtIG9yaWdpbmFsQ21kIC0gVGhlIGltYWdlJ3Mgb3JpZ2luYWwgQ01EXG4gKiBAcmV0dXJucyBFbnRyeXBvaW50IGFuZCBjb21tYW5kIGFycmF5cyB0byBwYXNzIHRvIERvY2tlclxuICovXG5leHBvcnQgY29uc3QgYnVpbGRFeHRlbnNpb25XcmFwcGVyQ29tbWFuZCA9IChcbiAgb3JpZ2luYWxFbnRyeXBvaW50OiBzdHJpbmdbXSB8IG51bGwsXG4gIG9yaWdpbmFsQ21kOiBzdHJpbmdbXSB8IG51bGwsXG4pOiB7IGVudHJ5cG9pbnQ6IHN0cmluZ1tdOyBjb21tYW5kOiBzdHJpbmdbXSB9ID0+IHtcbiAgLy8gQ29tYmluZSBvcmlnaW5hbCBlbnRyeXBvaW50ICsgY21kIGludG8gdGhlIGZ1bGwgY29tbWFuZFxuICAvLyBEb2NrZXIgYmVoYXZpb3I6IEVOVFJZUE9JTlQgKyBDTUQgYXJlIGNvbmNhdGVuYXRlZFxuICBjb25zdCBvcmlnaW5hbENvbW1hbmQgPSBbXG4gICAgLi4uKG9yaWdpbmFsRW50cnlwb2ludCA/PyBbXSksXG4gICAgLi4uKG9yaWdpbmFsQ21kID8/IFtdKSxcbiAgXVxuXG4gIC8vIFNjcmlwdCB0byBzdGFydCBhbGwgZXhlY3V0YWJsZSBmaWxlcyBpbiAvb3B0L2V4dGVuc2lvbnMvIGFzIGJhY2tncm91bmQgcHJvY2Vzc2VzXG4gIGNvbnN0IGV4dGVuc2lvblN0YXJ0ZXIgPVxuICAgICdmb3IgZXh0IGluIC9vcHQvZXh0ZW5zaW9ucy8qOyBkbyBbIC14IFwiJGV4dFwiIF0gJiYgXCIkZXh0XCIgJiBkb25lJ1xuXG4gIC8vIEJ1aWxkIHRoZSBmdWxsIHdyYXBwZXIgY29tbWFuZFxuICBsZXQgZnVsbENvbW1hbmQ6IHN0cmluZ1xuICBpZiAob3JpZ2luYWxDb21tYW5kLmxlbmd0aCA+IDApIHtcbiAgICAvLyBRdW90ZSBlYWNoIGFyZ3VtZW50IGFuZCBqb2luIHdpdGggc3BhY2VzXG4gICAgY29uc3QgcXVvdGVkT3JpZ2luYWwgPSBvcmlnaW5hbENvbW1hbmQubWFwKHNoZWxsUXVvdGUpLmpvaW4oXCIgXCIpXG4gICAgLy8gU3RhcnQgZXh0ZW5zaW9ucywgdGhlbiBleGVjIHRoZSBvcmlnaW5hbCBjb21tYW5kXG4gICAgZnVsbENvbW1hbmQgPSBgJHtleHRlbnNpb25TdGFydGVyfTsgZXhlYyAke3F1b3RlZE9yaWdpbmFsfWBcbiAgfSBlbHNlIHtcbiAgICAvLyBObyBvcmlnaW5hbCBjb21tYW5kIC0ganVzdCBzdGFydCBleHRlbnNpb25zICh1bnVzdWFsIGJ1dCBoYW5kbGUgaXQpXG4gICAgZnVsbENvbW1hbmQgPSBleHRlbnNpb25TdGFydGVyXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGVudHJ5cG9pbnQ6IFtcIi9iaW4vc2hcIl0sXG4gICAgY29tbWFuZDogW1wiLWNcIiwgZnVsbENvbW1hbmRdLFxuICB9XG59XG4iXX0=
|
|
@@ -10,7 +10,7 @@ export interface DockerRunConfig {
|
|
|
10
10
|
/** Container name (optional) */
|
|
11
11
|
containerName?: string;
|
|
12
12
|
/** Platform (e.g., linux/arm64, linux/amd64) for cross-platform execution */
|
|
13
|
-
platform?: string;
|
|
13
|
+
platform?: string | undefined;
|
|
14
14
|
/** Environment variables to pass to the container */
|
|
15
15
|
environment: Record<string, string>;
|
|
16
16
|
/** Memory limit in MB */
|
|
@@ -28,7 +28,7 @@ export interface DockerRunConfig {
|
|
|
28
28
|
/** Optional invocation context map for log prefixing (requestId -> { num }) */
|
|
29
29
|
invocationContexts?: Map<string, {
|
|
30
30
|
num: number;
|
|
31
|
-
}
|
|
31
|
+
}> | undefined;
|
|
32
32
|
/** Override the container's entrypoint */
|
|
33
33
|
entrypoint?: string[];
|
|
34
34
|
/** Override the container's command (arguments after the image) */
|
package/lib/cli/docker/types.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Types for Docker container management.
|
|
3
3
|
*/
|
|
4
4
|
export {};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2RvY2tlci90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVHlwZXMgZm9yIERvY2tlciBjb250YWluZXIgbWFuYWdlbWVudC5cbiAqL1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHJ1bm5pbmcgYSBEb2NrZXIgY29udGFpbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY2tlclJ1bkNvbmZpZyB7XG4gIC8qKiBUaGUgRG9ja2VyIGltYWdlIFVSSSB0byBydW4gKi9cbiAgaW1hZ2VVcmk6IHN0cmluZ1xuICAvKiogQ29udGFpbmVyIG5hbWUgKG9wdGlvbmFsKSAqL1xuICBjb250YWluZXJOYW1lPzogc3RyaW5nXG4gIC8qKiBQbGF0Zm9ybSAoZS5nLiwgbGludXgvYXJtNjQsIGxpbnV4L2FtZDY0KSBmb3IgY3Jvc3MtcGxhdGZvcm0gZXhlY3V0aW9uICovXG4gIHBsYXRmb3JtPzogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIC8qKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyICovXG4gIGVudmlyb25tZW50OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIC8qKiBNZW1vcnkgbGltaXQgaW4gTUIgKi9cbiAgbWVtb3J5TUI6IG51bWJlclxuICAvKiogVGltZW91dCBpbiBzZWNvbmRzICovXG4gIHRpbWVvdXRTZWNvbmRzOiBudW1iZXJcbiAgLyoqIE5ldHdvcmsgbW9kZSAoYnJpZGdlLCBob3N0LCBub25lKSAqL1xuICBuZXR3b3JrTW9kZTogXCJicmlkZ2VcIiB8IFwiaG9zdFwiIHwgXCJub25lXCJcbiAgLyoqIEV4dHJhIGhvc3QgZW50cmllcyAoLS1hZGQtaG9zdCkgKi9cbiAgZXh0cmFIb3N0cz86IHN0cmluZ1tdXG4gIC8qKiBXb3JraW5nIGRpcmVjdG9yeSBpbnNpZGUgdGhlIGNvbnRhaW5lciAqL1xuICB3b3JrZGlyPzogc3RyaW5nXG4gIC8qKiBBZGRpdGlvbmFsIERvY2tlciBydW4gYXJndW1lbnRzICovXG4gIGFkZGl0aW9uYWxBcmdzPzogc3RyaW5nW11cbiAgLyoqIE9wdGlvbmFsIGludm9jYXRpb24gY29udGV4dCBtYXAgZm9yIGxvZyBwcmVmaXhpbmcgKHJlcXVlc3RJZCAtPiB7IG51bSB9KSAqL1xuICBpbnZvY2F0aW9uQ29udGV4dHM/OiBNYXA8c3RyaW5nLCB7IG51bTogbnVtYmVyIH0+IHwgdW5kZWZpbmVkXG4gIC8qKiBPdmVycmlkZSB0aGUgY29udGFpbmVyJ3MgZW50cnlwb2ludCAqL1xuICBlbnRyeXBvaW50Pzogc3RyaW5nW11cbiAgLyoqIE92ZXJyaWRlIHRoZSBjb250YWluZXIncyBjb21tYW5kIChhcmd1bWVudHMgYWZ0ZXIgdGhlIGltYWdlKSAqL1xuICBjb21tYW5kPzogc3RyaW5nW11cbn1cblxuLyoqXG4gKiBEb2NrZXIgaW1hZ2UgY29uZmlndXJhdGlvbiBmcm9tIGluc3BlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VySW1hZ2VDb25maWcge1xuICAvKiogVGhlIGltYWdlJ3MgRU5UUllQT0lOVCAqL1xuICBlbnRyeXBvaW50OiBzdHJpbmdbXSB8IG51bGxcbiAgLyoqIFRoZSBpbWFnZSdzIENNRCAqL1xuICBjbWQ6IHN0cmluZ1tdIHwgbnVsbFxufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBydW5uaW5nIGEgRG9ja2VyIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2NrZXJSdW5SZXN1bHQge1xuICAvKiogRXhpdCBjb2RlIG9mIHRoZSBjb250YWluZXIgKi9cbiAgZXhpdENvZGU6IG51bWJlclxuICAvKiogU3Rkb3V0IGZyb20gdGhlIGNvbnRhaW5lciAqL1xuICBzdGRvdXQ6IHN0cmluZ1xuICAvKiogU3RkZXJyIGZyb20gdGhlIGNvbnRhaW5lciAqL1xuICBzdGRlcnI6IHN0cmluZ1xufVxuXG4vKipcbiAqIERvY2tlciBydW50aW1lIGRldGVjdGlvbiByZXN1bHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyUnVudGltZUluZm8ge1xuICAvKiogUGF0aCB0byBEb2NrZXIgZXhlY3V0YWJsZSAqL1xuICBkb2NrZXJQYXRoOiBzdHJpbmdcbiAgLyoqIFdoZXRoZXIgcnVubmluZyBvbiBMaW51eCAqL1xuICBpc0xpbnV4OiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHJ1bm5pbmcgaW4gV1NMICovXG4gIGlzV3NsOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIERvY2tlciBEZXNrdG9wIGlzIGRldGVjdGVkICovXG4gIGlzRG9ja2VyRGVza3RvcDogYm9vbGVhblxuICAvKiogSG9zdCBhZGRyZXNzIHRvIHVzZSBmb3IgY29udGFpbmVyLXRvLWhvc3QgY29tbXVuaWNhdGlvbiAqL1xuICBob3N0QWRkcmVzczogc3RyaW5nXG59XG4iXX0=
|
|
@@ -49,7 +49,7 @@ export interface LambdaError {
|
|
|
49
49
|
/** Error message */
|
|
50
50
|
errorMessage: string;
|
|
51
51
|
/** Stack trace lines */
|
|
52
|
-
stackTrace?: string[];
|
|
52
|
+
stackTrace?: string[] | undefined;
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
55
|
* Init error (error during handler initialization)
|
|
@@ -60,7 +60,7 @@ export interface LambdaInitError {
|
|
|
60
60
|
/** Error message */
|
|
61
61
|
errorMessage: string;
|
|
62
62
|
/** Stack trace lines */
|
|
63
|
-
stackTrace?: string[];
|
|
63
|
+
stackTrace?: string[] | undefined;
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* Runtime API server configuration
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* @see https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html
|
|
8
8
|
*/
|
|
9
9
|
export {};
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL3J1bnRpbWUtYXBpL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGVzIGZvciBMYW1iZGEgUnVudGltZSBBUEkgaW1wbGVtZW50YXRpb24uXG4gKlxuICogVGhpcyBpbXBsZW1lbnRzIHRoZSBBV1MgTGFtYmRhIFJ1bnRpbWUgQVBJIHRoYXQgRG9ja2VyIGNvbnRhaW5lcnMgdXNlXG4gKiB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBMYW1iZGEgcnVudGltZSBlbnZpcm9ubWVudC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3J1bnRpbWVzLWFwaS5odG1sXG4gKi9cblxuLyoqXG4gKiBMYW1iZGEgaW52b2NhdGlvbiBjb250ZXh0IHBhc3NlZCB2aWEgaGVhZGVycyBhbmQgYm9keVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUludm9jYXRpb24ge1xuICAvKiogVW5pcXVlIHJlcXVlc3QgSUQgZm9yIHRoaXMgaW52b2NhdGlvbiAqL1xuICByZXF1ZXN0SWQ6IHN0cmluZ1xuICAvKiogRXZlbnQgcGF5bG9hZCAqL1xuICBldmVudDogdW5rbm93blxuICAvKiogRnVuY3Rpb24gQVJOICovXG4gIGludm9rZWRGdW5jdGlvbkFybjogc3RyaW5nXG4gIC8qKiBEZWFkbGluZSB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzIHNpbmNlIGVwb2NoICovXG4gIGRlYWRsaW5lTXM6IG51bWJlclxuICAvKiogRnVuY3Rpb24gbmFtZSAqL1xuICBmdW5jdGlvbk5hbWU6IHN0cmluZ1xuICAvKiogRnVuY3Rpb24gdmVyc2lvbiAqL1xuICBmdW5jdGlvblZlcnNpb246IHN0cmluZ1xuICAvKiogTWVtb3J5IGxpbWl0IGluIE1CICovXG4gIG1lbW9yeUxpbWl0TUI6IG51bWJlclxuICAvKiogTG9nIGdyb3VwIG5hbWUgKi9cbiAgbG9nR3JvdXBOYW1lOiBzdHJpbmdcbiAgLyoqIExvZyBzdHJlYW0gbmFtZSAqL1xuICBsb2dTdHJlYW1OYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBmcm9tIHRoZSBMYW1iZGEgaGFuZGxlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVJlc3BvbnNlIHtcbiAgLyoqIFJlcXVlc3QgSUQgdGhpcyByZXNwb25zZSBpcyBmb3IgKi9cbiAgcmVxdWVzdElkOiBzdHJpbmdcbiAgLyoqIFJlc3BvbnNlIGJvZHkgKEpTT04pICovXG4gIGJvZHk6IHVua25vd25cbn1cblxuLyoqXG4gKiBFcnJvciByZXNwb25zZSBmcm9tIHRoZSBMYW1iZGEgaGFuZGxlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUVycm9yIHtcbiAgLyoqIFJlcXVlc3QgSUQgdGhpcyBlcnJvciBpcyBmb3IgKi9cbiAgcmVxdWVzdElkOiBzdHJpbmdcbiAgLyoqIEVycm9yIHR5cGUgKGUuZy4sIFwiUnVudGltZS5VbmhhbmRsZWRQcm9taXNlUmVqZWN0aW9uXCIpICovXG4gIGVycm9yVHlwZTogc3RyaW5nXG4gIC8qKiBFcnJvciBtZXNzYWdlICovXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4gIC8qKiBTdGFjayB0cmFjZSBsaW5lcyAqL1xuICBzdGFja1RyYWNlPzogc3RyaW5nW10gfCB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBJbml0IGVycm9yIChlcnJvciBkdXJpbmcgaGFuZGxlciBpbml0aWFsaXphdGlvbilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFJbml0RXJyb3Ige1xuICAvKiogRXJyb3IgdHlwZSAqL1xuICBlcnJvclR5cGU6IHN0cmluZ1xuICAvKiogRXJyb3IgbWVzc2FnZSAqL1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZ1xuICAvKiogU3RhY2sgdHJhY2UgbGluZXMgKi9cbiAgc3RhY2tUcmFjZT86IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG59XG5cbi8qKlxuICogUnVudGltZSBBUEkgc2VydmVyIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lQXBpQ29uZmlnIHtcbiAgLyoqIFBvcnQgdG8gbGlzdGVuIG9uICgwIGZvciBlcGhlbWVyYWwpICovXG4gIHBvcnQ6IG51bWJlclxuICAvKiogSG9zdCB0byBiaW5kIHRvICovXG4gIGhvc3Q6IHN0cmluZ1xufVxuXG4vKipcbiAqIFN0YXRlIG9mIGEgcGVuZGluZyBpbnZvY2F0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEludm9jYXRpb25TdGF0ZSA9XG4gIHwgeyB0eXBlOiBcInBlbmRpbmdcIjsgaW52b2NhdGlvbjogTGFtYmRhSW52b2NhdGlvbiB9XG4gIHwgeyB0eXBlOiBcImNvbXBsZXRlZFwiOyByZXNwb25zZTogTGFtYmRhUmVzcG9uc2UgfVxuICB8IHsgdHlwZTogXCJlcnJvclwiOyBlcnJvcjogTGFtYmRhRXJyb3IgfVxuICB8IHsgdHlwZTogXCJpbml0LWVycm9yXCI7IGVycm9yOiBMYW1iZGFJbml0RXJyb3IgfVxuXG4vKipcbiAqIEhlYWRlcnMgcmV0dXJuZWQgYnkgR0VUIC9pbnZvY2F0aW9uL25leHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnZvY2F0aW9uTmV4dEhlYWRlcnMge1xuICBcIkxhbWJkYS1SdW50aW1lLUF3cy1SZXF1ZXN0LUlkXCI6IHN0cmluZ1xuICBcIkxhbWJkYS1SdW50aW1lLURlYWRsaW5lLU1zXCI6IHN0cmluZ1xuICBcIkxhbWJkYS1SdW50aW1lLUludm9rZWQtRnVuY3Rpb24tQXJuXCI6IHN0cmluZ1xuICBcIkxhbWJkYS1SdW50aW1lLUxvZy1Hcm91cC1OYW1lXCI/OiBzdHJpbmdcbiAgXCJMYW1iZGEtUnVudGltZS1Mb2ctU3RyZWFtLU5hbWVcIj86IHN0cmluZ1xuICBcIkxhbWJkYS1SdW50aW1lLVRyYWNlLUlkXCI/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBFdmVudCB0eXBlcyB0aGF0IGV4dGVuc2lvbnMgY2FuIHJlZ2lzdGVyIGZvci5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcnVudGltZXMtZXh0ZW5zaW9ucy1hcGkuaHRtbFxuICovXG5leHBvcnQgdHlwZSBFeHRlbnNpb25FdmVudFR5cGUgPSBcIklOVk9LRVwiIHwgXCJTSFVURE9XTlwiXG5cbi8qKlxuICogUmVnaXN0ZXJlZCBleHRlbnNpb24gaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJlZEV4dGVuc2lvbiB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGV4dGVuc2lvbiAoVVVJRCkgKi9cbiAgZXh0ZW5zaW9uSWQ6IHN0cmluZ1xuICAvKiogTmFtZSBvZiB0aGUgZXh0ZW5zaW9uIChmcm9tIExhbWJkYS1FeHRlbnNpb24tTmFtZSBoZWFkZXIpICovXG4gIG5hbWU6IHN0cmluZ1xuICAvKiogRXZlbnRzIHRoaXMgZXh0ZW5zaW9uIGlzIHJlZ2lzdGVyZWQgZm9yICovXG4gIGV2ZW50czogRXh0ZW5zaW9uRXZlbnRUeXBlW11cbn1cblxuLyoqXG4gKiBFeHRlbnNpb24gSU5WT0tFIGV2ZW50IHBheWxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uSW52b2tlRXZlbnQge1xuICBldmVudFR5cGU6IFwiSU5WT0tFXCJcbiAgZGVhZGxpbmVNczogbnVtYmVyXG4gIHJlcXVlc3RJZDogc3RyaW5nXG4gIGludm9rZWRGdW5jdGlvbkFybjogc3RyaW5nXG4gIHRyYWNpbmc/OiB7XG4gICAgdHlwZTogc3RyaW5nXG4gICAgdmFsdWU6IHN0cmluZ1xuICB9XG59XG5cbi8qKlxuICogRXh0ZW5zaW9uIFNIVVRET1dOIGV2ZW50IHBheWxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uU2h1dGRvd25FdmVudCB7XG4gIGV2ZW50VHlwZTogXCJTSFVURE9XTlwiXG4gIHNodXRkb3duUmVhc29uOiBcIlNQSU5ET1dOXCIgfCBcIlRJTUVPVVRcIiB8IFwiRkFJTFVSRVwiXG4gIGRlYWRsaW5lTXM6IG51bWJlclxufVxuXG4vKipcbiAqIEV4dGVuc2lvbiBldmVudCAoZWl0aGVyIElOVk9LRSBvciBTSFVURE9XTikuXG4gKi9cbmV4cG9ydCB0eXBlIEV4dGVuc2lvbkV2ZW50ID0gRXh0ZW5zaW9uSW52b2tlRXZlbnQgfCBFeHRlbnNpb25TaHV0ZG93bkV2ZW50XG5cbi8qKlxuICogUmVzcG9uc2UgYm9keSBmb3IgZXh0ZW5zaW9uIHJlZ2lzdHJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25SZWdpc3RlclJlc3BvbnNlIHtcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmdcbiAgZnVuY3Rpb25WZXJzaW9uOiBzdHJpbmdcbiAgaGFuZGxlcjogc3RyaW5nXG59XG4iXX0=
|
package/lib/shared/types.d.ts
CHANGED
package/lib/shared/types.js
CHANGED
|
@@ -122,4 +122,4 @@ export const buildChannelName = {
|
|
|
122
122
|
*/
|
|
123
123
|
response: (functionName) => `/live/${hashFunctionName(functionName)}/out`,
|
|
124
124
|
};
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhcmVkL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV4Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUE7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcscUJBQXFCLENBQUE7QUFFcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsNEJBQTRCLENBQUE7QUFFbEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyw4QkFBOEIsQ0FBQTtBQUVsRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsYUFBYSxFQUFFLHVCQUF1QjtJQUN0QyxpQkFBaUIsRUFBRSwyQkFBMkI7Q0FDdEMsQ0FBQTtBQWNWOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDN0MscURBQXFEO0lBQ3JELHdCQUF3QjtJQUN4Qix1REFBdUQ7SUFDdkQsVUFBVTtJQUNWLHFCQUFxQjtJQUNyQixrQkFBa0I7Q0FDbkIsQ0FBQyxDQUFBO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdkMsNEJBQTRCO0lBQzVCLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsMkJBQTJCO0lBQzNCLHdCQUF3QjtJQUN4QixnQ0FBZ0M7SUFDaEMsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLDJCQUEyQjtJQUMzQixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5Qix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLGtCQUFrQjtJQUNsQixpQ0FBaUM7SUFDakMsTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sTUFBTTtJQUNOLE9BQU87SUFDUCxPQUFPO0lBQ1AsTUFBTTtJQUNOLE1BQU07SUFDTixRQUFRO0lBQ1IsaUJBQWlCO0lBQ2pCLElBQUk7Q0FDTCxDQUFDLENBQUE7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQXNCO0lBQ2xELE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUE7SUFDekMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDO0FBMEJEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxZQUFvQjtJQUNuRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDeEIsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2IsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5Qjs7O09BR0c7SUFDSCxVQUFVLEVBQUUsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FDbkMsU0FBUyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSztJQUU5Qzs7O09BR0c7SUFDSCxRQUFRLEVBQUUsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FDakMsU0FBUyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTTtDQUN2QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgY29uc3RhbnRzIGFuZCB0eXBlcyB1c2VkIGJ5IGJvb3RzdHJhcCBzdGFjaywgYXNwZWN0LCBhbmQgQ0xJLlxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwibm9kZTpjcnlwdG9cIlxuXG4vKipcbiAqIFNTTSBwYXJhbWV0ZXIgcGF0aHMgZm9yIExpdmUgTGFtYmRhIGluZnJhc3RydWN0dXJlXG4gKiBCYXNlIHBhdGggZm9yIGFsbCBMaXZlIExhbWJkYSBTU00gcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgU1NNX0JBU0VfUEFUSCA9IFwiL2Nkay1sb2NhbC1sYW1iZGFcIlxuXG4vKipcbiAqIFRhZyBrZXkgdXNlZCB0byBzdG9yZSB0aGUgbG9jYWwgaGFuZGxlciBwYXRoIG9uIExhbWJkYSBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IExJVkVfTEFNQkRBX1RBRyA9IFwibGl2ZS1sYW1iZGE6aGFuZGxlclwiXG5cbi8qKlxuICogVGFnIGtleSB1c2VkIHRvIHN0b3JlIHRoZSBsb2NhbCBEb2NrZXIgY29udGV4dCBwYXRoIG9uIERvY2tlckltYWdlRnVuY3Rpb24uXG4gKiBUaGUgZGFlbW9uIHVzZXMgdGhpcyB0byBidWlsZCBhbmQgcnVuIHRoZSBjb250YWluZXIgbG9jYWxseS5cbiAqL1xuZXhwb3J0IGNvbnN0IExJVkVfTEFNQkRBX0RPQ0tFUl9UQUcgPSBcImxpdmUtbGFtYmRhOmRvY2tlci1jb250ZXh0XCJcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBDREsgYm9vdHN0cmFwIHN0YWNrXG4gKi9cbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfU1RBQ0tfTkFNRSA9IFwiQ2RrTG9jYWxMYW1iZGFCb290c3RyYXBTdGFja1wiXG5cbi8qKlxuICogQ3VycmVudCB2ZXJzaW9uIG9mIHRoZSBib290c3RyYXAgc3RhY2suXG4gKiBJbmNyZW1lbnQgdGhpcyB3aGVuIG1ha2luZyBicmVha2luZyBjaGFuZ2VzIHRvIHRoZSBib290c3RyYXAgaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfVkVSU0lPTiA9IFwiMVwiXG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZXMgdXNlZCBieSB0aGUgYnJpZGdlIGhhbmRsZXJcbiAqL1xuZXhwb3J0IGNvbnN0IEVOVl9WQVJTID0ge1xuICBIVFRQX0VORFBPSU5UOiBcIkFQUFNZTkNfSFRUUF9FTkRQT0lOVFwiLFxuICBSRUFMVElNRV9FTkRQT0lOVDogXCJBUFBTWU5DX1JFQUxUSU1FX0VORFBPSU5UXCIsXG59IGFzIGNvbnN0XG5cbi8qKlxuICogTWVzc2FnZSB0eXBlcyBmb3IgQXBwU3luYyBFdmVudHMgY29tbXVuaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludm9jYXRpb25NZXNzYWdlIHtcbiAgdHlwZTogXCJpbnZvY2F0aW9uXCJcbiAgcmVxdWVzdElkOiBzdHJpbmdcbiAgZXZlbnQ6IHVua25vd25cbiAgY29udGV4dDogTGFtYmRhQ29udGV4dFxuICAvKiogTGFtYmRhIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZm9yd2FyZGVkIGZyb20gYnJpZGdlIG9uIGZpcnN0IGludm9jYXRpb24pICovXG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuLyoqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhcmUgc2V0IGxvY2FsbHkgYnkgdGhlIGRhZW1vbi5cbiAqIFRoZXNlIG92ZXJyaWRlIGFueSB2YWx1ZXMgZnJvbSB0aGUgYnJpZGdlIExhbWJkYSBhbmQgYXJlIGV4Y2x1ZGVkIGZyb20gZm9yd2FyZGluZy5cbiAqIE5vdGU6IEFXU19MQU1CREFfRlVOQ1RJT05fTUVNT1JZX1NJWkUgaXMgYWxzbyBzZXQgbG9jYWxseSBidXQgaXNuJ3QgaW4gRVhDTFVERURfRU5WX1ZBUlNcbiAqIGJlY2F1c2UgaXQgZG9lc24ndCBjb21lIGZyb20gdGhlIGJyaWRnZSBMYW1iZGEncyBwcm9jZXNzLmVudiAoaXQncyBpbiB0aGUgY29udGV4dCkuXG4gKi9cbmV4cG9ydCBjb25zdCBMT0NBTF9PVkVSUklERV9FTlZfVkFSUyA9IG5ldyBTZXQoW1xuICAvLyBTZXQgYnkgZGFlbW9uIHRvIHBvaW50IHRvIGxvY2FsIFJ1bnRpbWUgQVBJIHNlcnZlclxuICBcIkFXU19MQU1CREFfUlVOVElNRV9BUElcIixcbiAgLy8gTG9jYWwgaGFuZGxlciBwYXRoIChkaWZmZXJlbnQgZnJvbSBkZXBsb3llZCBoYW5kbGVyKVxuICBcIl9IQU5ETEVSXCIsXG4gIC8vIExvY2FsIHByb2plY3Qgcm9vdFxuICBcIkxBTUJEQV9UQVNLX1JPT1RcIixcbl0pXG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGV4Y2x1ZGUgd2hlbiBmb3J3YXJkaW5nIGZyb20gTGFtYmRhLlxuICogVGhlc2UgYXJlIGVpdGhlciBMYW1iZGEgaW50ZXJuYWxzIG9yIHNob3VsZCB1c2UgbG9jYWwgdmFsdWVzIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBFWENMVURFRF9FTlZfVkFSUyA9IG5ldyBTZXQoW1xuICAvLyBTZXQgbG9jYWxseSBieSB0aGUgZGFlbW9uXG4gIFwiX0hBTkRMRVJcIixcbiAgXCJMQU1CREFfVEFTS19ST09UXCIsXG4gIC8vIExhbWJkYSBydW50aW1lIGludGVybmFsc1xuICBcIkFXU19MQU1CREFfUlVOVElNRV9BUElcIixcbiAgXCJBV1NfTEFNQkRBX0lOSVRJQUxJWkFUSU9OX1RZUEVcIixcbiAgXCJBV1NfRVhFQ1VUSU9OX0VOVlwiLFxuICBcIkxBTUJEQV9SVU5USU1FX0RJUlwiLFxuICAvLyBJbnRlcm5hbCBzb2NrZXRzXG4gIFwiX0xBTUJEQV9DT05TT0xFX1NPQ0tFVFwiLFxuICBcIl9MQU1CREFfQ09OVFJPTF9TT0NLRVRcIixcbiAgXCJfTEFNQkRBX0xPR19GRFwiLFxuICBcIl9MQU1CREFfU0hBUkVEX01FTV9GRFwiLFxuICBcIl9MQU1CREFfUlVOVElNRV9MT0FEX1RJTUVcIixcbiAgXCJfTEFNQkRBX1NCX0lEXCIsXG4gIFwiX0xBTUJEQV9TRVJWRVJfUE9SVFwiLFxuICAvLyBYLVJheSBub3QgYXZhaWxhYmxlIGxvY2FsbHlcbiAgXCJBV1NfWFJBWV9EQUVNT05fQUREUkVTU1wiLFxuICBcIkFXU19YUkFZX0NPTlRFWFRfTUlTU0lOR1wiLFxuICBcIl9YX0FNWk5fVFJBQ0VfSURcIixcbiAgLy8gU3lzdGVtIHZhcnMgLSB1c2UgbG9jYWwgdmFsdWVzXG4gIFwiUEFUSFwiLFxuICBcIlBXRFwiLFxuICBcIkhPTUVcIixcbiAgXCJVU0VSXCIsXG4gIFwiU0hFTExcIixcbiAgXCJTSExWTFwiLFxuICBcIlRFUk1cIixcbiAgXCJMQU5HXCIsXG4gIFwiTENfQUxMXCIsXG4gIFwiTERfTElCUkFSWV9QQVRIXCIsXG4gIFwiVFpcIixcbl0pXG5cbi8qKlxuICogRmlsdGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgZm9yd2FyZGluZyB0byBsb2NhbCBleGVjdXRpb24uXG4gKiBSZW1vdmVzIExhbWJkYSBpbnRlcm5hbHMgYW5kIHN5c3RlbSB2YXJpYWJsZXMgdGhhdCBzaG91bGQgdXNlIGxvY2FsIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckVudlZhcnMoZW52OiBOb2RlSlMuUHJvY2Vzc0Vudik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhlbnYpKSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIUVYQ0xVREVEX0VOVl9WQVJTLmhhcyhrZXkpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbHVlXG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZU1lc3NhZ2Uge1xuICB0eXBlOiBcInJlc3BvbnNlXCJcbiAgcmVxdWVzdElkOiBzdHJpbmdcbiAgcmVzdWx0PzogdW5rbm93blxuICBlcnJvcj86IEVycm9yUGF5bG9hZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yUGF5bG9hZCB7XG4gIGVycm9yVHlwZTogc3RyaW5nXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4gIHN0YWNrVHJhY2U/
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhcmVkL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV4Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUE7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcscUJBQXFCLENBQUE7QUFFcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsNEJBQTRCLENBQUE7QUFFbEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyw4QkFBOEIsQ0FBQTtBQUVsRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsYUFBYSxFQUFFLHVCQUF1QjtJQUN0QyxpQkFBaUIsRUFBRSwyQkFBMkI7Q0FDdEMsQ0FBQTtBQWNWOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDN0MscURBQXFEO0lBQ3JELHdCQUF3QjtJQUN4Qix1REFBdUQ7SUFDdkQsVUFBVTtJQUNWLHFCQUFxQjtJQUNyQixrQkFBa0I7Q0FDbkIsQ0FBQyxDQUFBO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdkMsNEJBQTRCO0lBQzVCLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsMkJBQTJCO0lBQzNCLHdCQUF3QjtJQUN4QixnQ0FBZ0M7SUFDaEMsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLDJCQUEyQjtJQUMzQixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5Qix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLGtCQUFrQjtJQUNsQixpQ0FBaUM7SUFDakMsTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sTUFBTTtJQUNOLE9BQU87SUFDUCxPQUFPO0lBQ1AsTUFBTTtJQUNOLE1BQU07SUFDTixRQUFRO0lBQ1IsaUJBQWlCO0lBQ2pCLElBQUk7Q0FDTCxDQUFDLENBQUE7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQXNCO0lBQ2xELE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUE7SUFDekMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDO0FBMEJEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxZQUFvQjtJQUNuRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDeEIsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2IsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5Qjs7O09BR0c7SUFDSCxVQUFVLEVBQUUsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FDbkMsU0FBUyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSztJQUU5Qzs7O09BR0c7SUFDSCxRQUFRLEVBQUUsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FDakMsU0FBUyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTTtDQUN2QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgY29uc3RhbnRzIGFuZCB0eXBlcyB1c2VkIGJ5IGJvb3RzdHJhcCBzdGFjaywgYXNwZWN0LCBhbmQgQ0xJLlxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwibm9kZTpjcnlwdG9cIlxuXG4vKipcbiAqIFNTTSBwYXJhbWV0ZXIgcGF0aHMgZm9yIExpdmUgTGFtYmRhIGluZnJhc3RydWN0dXJlXG4gKiBCYXNlIHBhdGggZm9yIGFsbCBMaXZlIExhbWJkYSBTU00gcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgU1NNX0JBU0VfUEFUSCA9IFwiL2Nkay1sb2NhbC1sYW1iZGFcIlxuXG4vKipcbiAqIFRhZyBrZXkgdXNlZCB0byBzdG9yZSB0aGUgbG9jYWwgaGFuZGxlciBwYXRoIG9uIExhbWJkYSBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IExJVkVfTEFNQkRBX1RBRyA9IFwibGl2ZS1sYW1iZGE6aGFuZGxlclwiXG5cbi8qKlxuICogVGFnIGtleSB1c2VkIHRvIHN0b3JlIHRoZSBsb2NhbCBEb2NrZXIgY29udGV4dCBwYXRoIG9uIERvY2tlckltYWdlRnVuY3Rpb24uXG4gKiBUaGUgZGFlbW9uIHVzZXMgdGhpcyB0byBidWlsZCBhbmQgcnVuIHRoZSBjb250YWluZXIgbG9jYWxseS5cbiAqL1xuZXhwb3J0IGNvbnN0IExJVkVfTEFNQkRBX0RPQ0tFUl9UQUcgPSBcImxpdmUtbGFtYmRhOmRvY2tlci1jb250ZXh0XCJcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBDREsgYm9vdHN0cmFwIHN0YWNrXG4gKi9cbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfU1RBQ0tfTkFNRSA9IFwiQ2RrTG9jYWxMYW1iZGFCb290c3RyYXBTdGFja1wiXG5cbi8qKlxuICogQ3VycmVudCB2ZXJzaW9uIG9mIHRoZSBib290c3RyYXAgc3RhY2suXG4gKiBJbmNyZW1lbnQgdGhpcyB3aGVuIG1ha2luZyBicmVha2luZyBjaGFuZ2VzIHRvIHRoZSBib290c3RyYXAgaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfVkVSU0lPTiA9IFwiMVwiXG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZXMgdXNlZCBieSB0aGUgYnJpZGdlIGhhbmRsZXJcbiAqL1xuZXhwb3J0IGNvbnN0IEVOVl9WQVJTID0ge1xuICBIVFRQX0VORFBPSU5UOiBcIkFQUFNZTkNfSFRUUF9FTkRQT0lOVFwiLFxuICBSRUFMVElNRV9FTkRQT0lOVDogXCJBUFBTWU5DX1JFQUxUSU1FX0VORFBPSU5UXCIsXG59IGFzIGNvbnN0XG5cbi8qKlxuICogTWVzc2FnZSB0eXBlcyBmb3IgQXBwU3luYyBFdmVudHMgY29tbXVuaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludm9jYXRpb25NZXNzYWdlIHtcbiAgdHlwZTogXCJpbnZvY2F0aW9uXCJcbiAgcmVxdWVzdElkOiBzdHJpbmdcbiAgZXZlbnQ6IHVua25vd25cbiAgY29udGV4dDogTGFtYmRhQ29udGV4dFxuICAvKiogTGFtYmRhIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZm9yd2FyZGVkIGZyb20gYnJpZGdlIG9uIGZpcnN0IGludm9jYXRpb24pICovXG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuLyoqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhcmUgc2V0IGxvY2FsbHkgYnkgdGhlIGRhZW1vbi5cbiAqIFRoZXNlIG92ZXJyaWRlIGFueSB2YWx1ZXMgZnJvbSB0aGUgYnJpZGdlIExhbWJkYSBhbmQgYXJlIGV4Y2x1ZGVkIGZyb20gZm9yd2FyZGluZy5cbiAqIE5vdGU6IEFXU19MQU1CREFfRlVOQ1RJT05fTUVNT1JZX1NJWkUgaXMgYWxzbyBzZXQgbG9jYWxseSBidXQgaXNuJ3QgaW4gRVhDTFVERURfRU5WX1ZBUlNcbiAqIGJlY2F1c2UgaXQgZG9lc24ndCBjb21lIGZyb20gdGhlIGJyaWRnZSBMYW1iZGEncyBwcm9jZXNzLmVudiAoaXQncyBpbiB0aGUgY29udGV4dCkuXG4gKi9cbmV4cG9ydCBjb25zdCBMT0NBTF9PVkVSUklERV9FTlZfVkFSUyA9IG5ldyBTZXQoW1xuICAvLyBTZXQgYnkgZGFlbW9uIHRvIHBvaW50IHRvIGxvY2FsIFJ1bnRpbWUgQVBJIHNlcnZlclxuICBcIkFXU19MQU1CREFfUlVOVElNRV9BUElcIixcbiAgLy8gTG9jYWwgaGFuZGxlciBwYXRoIChkaWZmZXJlbnQgZnJvbSBkZXBsb3llZCBoYW5kbGVyKVxuICBcIl9IQU5ETEVSXCIsXG4gIC8vIExvY2FsIHByb2plY3Qgcm9vdFxuICBcIkxBTUJEQV9UQVNLX1JPT1RcIixcbl0pXG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGV4Y2x1ZGUgd2hlbiBmb3J3YXJkaW5nIGZyb20gTGFtYmRhLlxuICogVGhlc2UgYXJlIGVpdGhlciBMYW1iZGEgaW50ZXJuYWxzIG9yIHNob3VsZCB1c2UgbG9jYWwgdmFsdWVzIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBFWENMVURFRF9FTlZfVkFSUyA9IG5ldyBTZXQoW1xuICAvLyBTZXQgbG9jYWxseSBieSB0aGUgZGFlbW9uXG4gIFwiX0hBTkRMRVJcIixcbiAgXCJMQU1CREFfVEFTS19ST09UXCIsXG4gIC8vIExhbWJkYSBydW50aW1lIGludGVybmFsc1xuICBcIkFXU19MQU1CREFfUlVOVElNRV9BUElcIixcbiAgXCJBV1NfTEFNQkRBX0lOSVRJQUxJWkFUSU9OX1RZUEVcIixcbiAgXCJBV1NfRVhFQ1VUSU9OX0VOVlwiLFxuICBcIkxBTUJEQV9SVU5USU1FX0RJUlwiLFxuICAvLyBJbnRlcm5hbCBzb2NrZXRzXG4gIFwiX0xBTUJEQV9DT05TT0xFX1NPQ0tFVFwiLFxuICBcIl9MQU1CREFfQ09OVFJPTF9TT0NLRVRcIixcbiAgXCJfTEFNQkRBX0xPR19GRFwiLFxuICBcIl9MQU1CREFfU0hBUkVEX01FTV9GRFwiLFxuICBcIl9MQU1CREFfUlVOVElNRV9MT0FEX1RJTUVcIixcbiAgXCJfTEFNQkRBX1NCX0lEXCIsXG4gIFwiX0xBTUJEQV9TRVJWRVJfUE9SVFwiLFxuICAvLyBYLVJheSBub3QgYXZhaWxhYmxlIGxvY2FsbHlcbiAgXCJBV1NfWFJBWV9EQUVNT05fQUREUkVTU1wiLFxuICBcIkFXU19YUkFZX0NPTlRFWFRfTUlTU0lOR1wiLFxuICBcIl9YX0FNWk5fVFJBQ0VfSURcIixcbiAgLy8gU3lzdGVtIHZhcnMgLSB1c2UgbG9jYWwgdmFsdWVzXG4gIFwiUEFUSFwiLFxuICBcIlBXRFwiLFxuICBcIkhPTUVcIixcbiAgXCJVU0VSXCIsXG4gIFwiU0hFTExcIixcbiAgXCJTSExWTFwiLFxuICBcIlRFUk1cIixcbiAgXCJMQU5HXCIsXG4gIFwiTENfQUxMXCIsXG4gIFwiTERfTElCUkFSWV9QQVRIXCIsXG4gIFwiVFpcIixcbl0pXG5cbi8qKlxuICogRmlsdGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgZm9yd2FyZGluZyB0byBsb2NhbCBleGVjdXRpb24uXG4gKiBSZW1vdmVzIExhbWJkYSBpbnRlcm5hbHMgYW5kIHN5c3RlbSB2YXJpYWJsZXMgdGhhdCBzaG91bGQgdXNlIGxvY2FsIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckVudlZhcnMoZW52OiBOb2RlSlMuUHJvY2Vzc0Vudik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhlbnYpKSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIUVYQ0xVREVEX0VOVl9WQVJTLmhhcyhrZXkpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbHVlXG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZU1lc3NhZ2Uge1xuICB0eXBlOiBcInJlc3BvbnNlXCJcbiAgcmVxdWVzdElkOiBzdHJpbmdcbiAgcmVzdWx0PzogdW5rbm93blxuICBlcnJvcj86IEVycm9yUGF5bG9hZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yUGF5bG9hZCB7XG4gIGVycm9yVHlwZTogc3RyaW5nXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4gIHN0YWNrVHJhY2U/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUNvbnRleHQge1xuICBmdW5jdGlvbk5hbWU6IHN0cmluZ1xuICBmdW5jdGlvblZlcnNpb246IHN0cmluZ1xuICBpbnZva2VkRnVuY3Rpb25Bcm46IHN0cmluZ1xuICBtZW1vcnlMaW1pdEluTUI6IHN0cmluZ1xuICBhd3NSZXF1ZXN0SWQ6IHN0cmluZ1xuICBsb2dHcm91cE5hbWU6IHN0cmluZ1xuICBsb2dTdHJlYW1OYW1lOiBzdHJpbmdcbiAgZ2V0UmVtYWluaW5nVGltZUluTWlsbGlzOiBudW1iZXJcbn1cblxuLyoqXG4gKiBIYXNoIGEgZnVuY3Rpb24gbmFtZSBmb3IgdXNlIGluIGNoYW5uZWwgcGF0aHMuXG4gKiBVc2VzIGZpcnN0IDE2IGhleCBjaGFycyBvZiBTSEEyNTYgdG8gc3RheSB3aXRoaW4gQXBwU3luYyBsaW1pdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goXCJzaGEyNTZcIilcbiAgICAudXBkYXRlKGZ1bmN0aW9uTmFtZSlcbiAgICAuZGlnZXN0KFwiaGV4XCIpXG4gICAgLnN1YnN0cmluZygwLCAxNilcbn1cblxuLyoqXG4gKiBDaGFubmVsIG5hbWUgYnVpbGRlcnMgZm9yIEFwcFN5bmMgRXZlbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZENoYW5uZWxOYW1lID0ge1xuICAvKipcbiAgICogQ2hhbm5lbCBmb3Igc2VuZGluZyBpbnZvY2F0aW9ucyB0byB0aGUgZGFlbW9uXG4gICAqIEJyaWRnZSAtPiBEYWVtb25cbiAgICovXG4gIGludm9jYXRpb246IChmdW5jdGlvbk5hbWU6IHN0cmluZykgPT5cbiAgICBgL2xpdmUvJHtoYXNoRnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZSl9L2luYCxcblxuICAvKipcbiAgICogQ2hhbm5lbCBmb3IgcmVjZWl2aW5nIHJlc3BvbnNlcyBmcm9tIHRoZSBkYWVtb25cbiAgICogRGFlbW9uIC0+IEJyaWRnZVxuICAgKi9cbiAgcmVzcG9uc2U6IChmdW5jdGlvbk5hbWU6IHN0cmluZykgPT5cbiAgICBgL2xpdmUvJHtoYXNoRnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZSl9L291dGAsXG59IGFzIGNvbnN0XG4iXX0=
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "https://github.com/processfocus/cdk-local-lambda.git"
|
|
7
7
|
},
|
|
8
8
|
"bin": {
|
|
9
|
-
"
|
|
9
|
+
"cll": "lib/cli/index.js"
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "npx projen build",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"publishConfig": {
|
|
86
86
|
"access": "public"
|
|
87
87
|
},
|
|
88
|
-
"version": "0.0.
|
|
88
|
+
"version": "0.0.5",
|
|
89
89
|
"bugs": {
|
|
90
90
|
"url": "https://github.com/processfocus/cdk-local-lambda/issues"
|
|
91
91
|
},
|