161 lines
17 KiB
Plaintext
161 lines
17 KiB
Plaintext
import { graphql } from "/_nuxt/lib/common/generated/gql/index.ts";
|
|
import {
|
|
AutomateRunStatus
|
|
} from "/_nuxt/lib/common/generated/gql/graphql.ts";
|
|
import {
|
|
CheckCircleIcon,
|
|
EllipsisHorizontalCircleIcon,
|
|
EllipsisHorizontalIcon,
|
|
ExclamationCircleIcon,
|
|
ArrowPathIcon,
|
|
ClockIcon,
|
|
XCircleIcon
|
|
} from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_24_outline.js?v=e4f18c29";
|
|
|
|
import { computed, unref } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
graphql(`
|
|
fragment FunctionRunStatusForSummary on AutomateFunctionRun {
|
|
id
|
|
status
|
|
}
|
|
`);
|
|
graphql(`
|
|
fragment TriggeredAutomationsStatusSummary on TriggeredAutomationsStatus {
|
|
id
|
|
automationRuns {
|
|
id
|
|
functionRuns {
|
|
id
|
|
...FunctionRunStatusForSummary
|
|
}
|
|
}
|
|
}
|
|
`);
|
|
export const useFunctionRunsStatusSummary = (params) => {
|
|
const { runs } = params;
|
|
const summary = computed(() => {
|
|
const allFunctionRuns = unref(runs);
|
|
const result = {
|
|
failed: 0,
|
|
passed: 0,
|
|
inProgress: 0,
|
|
total: allFunctionRuns.length,
|
|
title: "All runs passed",
|
|
titleColor: "text-success",
|
|
longSummary: ""
|
|
};
|
|
for (const run of allFunctionRuns) {
|
|
switch (run.status) {
|
|
case AutomateRunStatus.Succeeded:
|
|
result.passed++;
|
|
break;
|
|
case AutomateRunStatus.Failed:
|
|
case AutomateRunStatus.Exception:
|
|
case AutomateRunStatus.Timeout:
|
|
case AutomateRunStatus.Canceled:
|
|
result.title = "Some runs failed";
|
|
result.titleColor = "text-danger";
|
|
result.failed++;
|
|
break;
|
|
default:
|
|
if (result.failed === 0) {
|
|
result.title = "Some runs are still in progress";
|
|
result.titleColor = "text-warning";
|
|
}
|
|
result.inProgress++;
|
|
break;
|
|
}
|
|
}
|
|
const longSummarySegments = [];
|
|
if (result.passed > 0) longSummarySegments.push(`${result.passed} passed`);
|
|
if (result.inProgress > 0)
|
|
longSummarySegments.push(`${result.inProgress} in progress`);
|
|
if (result.failed > 0) longSummarySegments.push(`${result.failed} failed`);
|
|
result.longSummary = (longSummarySegments.join(", ") + ` run${result.total > 1 ? "s" : ""}`).replace(/,(?=[^,]+$)/, ", and");
|
|
return result;
|
|
});
|
|
return { summary };
|
|
};
|
|
export const useAutomationsStatusRunsSummary = (params) => {
|
|
const { status } = params;
|
|
const allFunctionRuns = computed(() => {
|
|
const currentStatus = unref(status);
|
|
if (!currentStatus) return [];
|
|
return currentStatus.automationRuns.flatMap((run) => run.functionRuns);
|
|
});
|
|
return useFunctionRunsStatusSummary({ runs: allFunctionRuns });
|
|
};
|
|
export const useRunStatusMetadata = (params) => {
|
|
const { status } = params;
|
|
const metadata = computed(() => {
|
|
switch (unref(status)) {
|
|
case AutomateRunStatus.Canceled:
|
|
return {
|
|
icon: XCircleIcon,
|
|
xsIcon: XCircleIcon,
|
|
iconColor: "text-warning",
|
|
badgeColor: "bg-warning",
|
|
disclosureColor: "warning"
|
|
};
|
|
case AutomateRunStatus.Exception:
|
|
return {
|
|
icon: ExclamationCircleIcon,
|
|
xsIcon: ExclamationCircleIcon,
|
|
iconColor: "text-danger",
|
|
badgeColor: "bg-danger",
|
|
disclosureColor: "danger"
|
|
};
|
|
case AutomateRunStatus.Failed:
|
|
return {
|
|
icon: ExclamationCircleIcon,
|
|
xsIcon: ExclamationCircleIcon,
|
|
iconColor: "text-danger",
|
|
badgeColor: "bg-danger",
|
|
disclosureColor: "danger"
|
|
};
|
|
case AutomateRunStatus.Initializing:
|
|
return {
|
|
icon: EllipsisHorizontalCircleIcon,
|
|
xsIcon: EllipsisHorizontalIcon,
|
|
iconColor: "text-warning",
|
|
badgeColor: "bg-warning",
|
|
disclosureColor: "warning"
|
|
};
|
|
case AutomateRunStatus.Pending:
|
|
return {
|
|
icon: EllipsisHorizontalCircleIcon,
|
|
xsIcon: EllipsisHorizontalIcon,
|
|
iconColor: "text-primary",
|
|
badgeColor: "bg-primary",
|
|
disclosureColor: "default"
|
|
};
|
|
case AutomateRunStatus.Running:
|
|
return {
|
|
icon: ArrowPathIcon,
|
|
xsIcon: ArrowPathIcon,
|
|
iconColor: "text-primary animate-spin",
|
|
badgeColor: "bg-primary",
|
|
disclosureColor: "default"
|
|
};
|
|
case AutomateRunStatus.Succeeded:
|
|
return {
|
|
icon: CheckCircleIcon,
|
|
xsIcon: CheckCircleIcon,
|
|
iconColor: "text-success",
|
|
badgeColor: "bg-success",
|
|
disclosureColor: "success"
|
|
};
|
|
case AutomateRunStatus.Timeout:
|
|
return {
|
|
icon: ClockIcon,
|
|
xsIcon: ClockIcon,
|
|
iconColor: "text-danger",
|
|
badgeColor: "bg-danger",
|
|
disclosureColor: "danger"
|
|
};
|
|
}
|
|
});
|
|
return { metadata };
|
|
};
|
|
|
|
//# sourceMappingURL=data:application/json;base64,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a0JBQWtCO0FBQ3JCLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFFBQVE7QUFBQSxVQUNSLFdBQVc7QUFBQSxVQUNYLFlBQVk7QUFBQSxVQUNaLGlCQUFpQjtBQUFBLFFBQ25CO0FBQUEsTUFDRixLQUFLLGtCQUFrQjtBQUNyQixlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixRQUFRO0FBQUEsVUFDUixXQUFXO0FBQUEsVUFDWCxZQUFZO0FBQUEsVUFDWixpQkFBaUI7QUFBQSxRQUNuQjtBQUFBLE1BQ0YsS0FBSyxrQkFBa0I7QUFDckIsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sUUFBUTtBQUFBLFVBQ1IsV0FBVztBQUFBLFVBQ1gsWUFBWTtBQUFBLFVBQ1osaUJBQWlCO0FBQUEsUUFDbkI7QUFBQSxNQUNGLEtBQUssa0JBQWtCO0FBQ3JCLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFFBQVE7QUFBQSxVQUNSLFdBQVc7QUFBQSxVQUNYLFlBQVk7QUFBQSxVQUNaLGlCQUFpQjtBQUFBLFFBQ25CO0FBQUEsTUFDRixLQUFLLGtCQUFrQjtBQUNyQixlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixRQUFRO0FBQUEsVUFDUixXQUFXO0FBQUEsVUFDWCxZQUFZO0FBQUEsVUFDWixpQkFBaUI7QUFBQSxRQUNuQjtBQUFBLE1BQ0YsS0FBSyxrQkFBa0I7QUFDckIsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sUUFBUTtBQUFBLFVBQ1IsV0FBVztBQUFBLFVBQ1gsWUFBWTtBQUFBLFVBQ1osaUJBQWlCO0FBQUEsUUFDbkI7QUFBQSxJQUNKO0FBQUEsRUFDRixDQUFDO0FBRUQsU0FBTyxFQUFFLFNBQVM7QUFDcEIiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbInJ1blN0YXR1cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1heWJlTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNwZWNrbGUvc2hhcmVkJ1xyXG5pbXBvcnQgdHlwZSB7IFByb3BBbnlDb21wb25lbnQgfSBmcm9tICdAc3BlY2tsZS91aS1jb21wb25lbnRzJ1xyXG5pbXBvcnQgeyBncmFwaHFsIH0gZnJvbSAnfi9saWIvY29tbW9uL2dlbmVyYXRlZC9ncWwnXHJcbmltcG9ydCB7XHJcbiAgQXV0b21hdGVSdW5TdGF0dXMsXHJcbiAgdHlwZSBGdW5jdGlvblJ1blN0YXR1c0ZvclN1bW1hcnlGcmFnbWVudCxcclxuICB0eXBlIFRyaWdnZXJlZEF1dG9tYXRpb25zU3RhdHVzU3VtbWFyeUZyYWdtZW50XHJcbn0gZnJvbSAnfi9saWIvY29tbW9uL2dlbmVyYXRlZC9ncWwvZ3JhcGhxbCdcclxuaW1wb3J0IHtcclxuICBDaGVja0NpcmNsZUljb24sXHJcbiAgRWxsaXBzaXNIb3Jpem9udGFsQ2lyY2xlSWNvbixcclxuICBFbGxpcHNpc0hvcml6b250YWxJY29uLFxyXG4gIEV4Y2xhbWF0aW9uQ2lyY2xlSWNvbixcclxuICBBcnJvd1BhdGhJY29uLFxyXG4gIENsb2NrSWNvbixcclxuICBYQ2lyY2xlSWNvblxyXG59IGZyb20gJ0BoZXJvaWNvbnMvdnVlLzI0L291dGxpbmUnXHJcblxyXG5ncmFwaHFsKGBcclxuICBmcmFnbWVudCBGdW5jdGlvblJ1blN0YXR1c0ZvclN1bW1hcnkgb24gQXV0b21hdGVGdW5jdGlvblJ1biB7XHJcbiAgICBpZFxyXG4gICAgc3RhdHVzXHJcbiAgfVxyXG5gKVxyXG5cclxuZ3JhcGhxbChgXHJcbiAgZnJhZ21lbnQgVHJpZ2dlcmVkQXV0b21hdGlvbnNTdGF0dXNTdW1tYXJ5IG9uIFRyaWdnZXJlZEF1dG9tYXRpb25zU3RhdHVzIHtcclxuICAgIGlkXHJcbiAgICBhdXRvbWF0aW9uUnVucyB7XHJcbiAgICAgIGlkXHJcbiAgICAgIGZ1bmN0aW9uUnVucyB7XHJcbiAgICAgICAgaWRcclxuICAgICAgICAuLi5GdW5jdGlvblJ1blN0YXR1c0ZvclN1bW1hcnlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuYClcclxuXHJcbmV4cG9ydCB0eXBlIFJ1bnNTdGF0dXNTdW1tYXJ5ID0ge1xyXG4gIGZhaWxlZDogbnVtYmVyXHJcbiAgcGFzc2VkOiBudW1iZXJcclxuICBpblByb2dyZXNzOiBudW1iZXJcclxuICB0b3RhbDogbnVtYmVyXHJcbiAgdGl0bGU6IHN0cmluZ1xyXG4gIHRpdGxlQ29sb3I6IHN0cmluZ1xyXG4gIGxvbmdTdW1tYXJ5OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHVzZUZ1bmN0aW9uUnVuc1N0YXR1c1N1bW1hcnkgPSAocGFyYW1zOiB7XHJcbiAgcnVuczogTWF5YmVSZWY8RnVuY3Rpb25SdW5TdGF0dXNGb3JTdW1tYXJ5RnJhZ21lbnRbXT5cclxufSkgPT4ge1xyXG4gIGNvbnN0IHsgcnVucyB9ID0gcGFyYW1zXHJcblxyXG4gIGNvbnN0IHN1bW1hcnkgPSBjb21wdXRlZCgoKTogUnVuc1N0YXR1c1N1bW1hcnkgPT4ge1xyXG4gICAgY29uc3QgYWxsRnVuY3Rpb25SdW5zID0gdW5yZWYocnVucylcclxuICAgIGNvbnN0IHJlc3VsdDogUnVuc1N0YXR1c1N1bW1hcnkgPSB7XHJcbiAgICAgIGZhaWxlZDogMCxcclxuICAgICAgcGFzc2VkOiAwLFxyXG4gICAgICBpblByb2dyZXNzOiAwLFxyXG4gICAgICB0b3RhbDogYWxsRnVuY3Rpb25SdW5zLmxlbmd0aCxcclxuICAgICAgdGl0bGU6ICdBbGwgcnVucyBwYXNzZWQnLFxyXG4gICAgICB0aXRsZUNvbG9yOiAndGV4dC1zdWNjZXNzJyxcclxuICAgICAgbG9uZ1N1bW1hcnk6ICcnXHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBydW4gb2YgYWxsRnVuY3Rpb25SdW5zKSB7XHJcbiAgICAgIHN3aXRjaCAocnVuLnN0YXR1cykge1xyXG4gICAgICAgIGNhc2UgQXV0b21hdGVSdW5TdGF0dXMuU3VjY2VlZGVkOlxyXG4gICAgICAgICAgcmVzdWx0LnBhc3NlZCsrXHJcbiAgICAgICAgICBicmVha1xyXG4gICAgICAgIGNhc2UgQXV0b21hdGVSdW5TdGF0dXMuRmFpbGVkOlxyXG4gICAgICAgIGNhc2UgQXV0b21hdGVSdW5TdGF0dXMuRXhjZXB0aW9uOlxyXG4gICAgICAgIGNhc2UgQXV0b21hdGVSdW5TdGF0dXMuVGltZW91dDpcclxuICAgICAgICBjYXNlIEF1dG9tYXRlUnVuU3RhdHVzLkNhbmNlbGVkOlxyXG4gICAgICAgICAgcmVzdWx0LnRpdGxlID0gJ1NvbWUgcnVucyBmYWlsZWQnXHJcbiAgICAgICAgICByZXN1bHQudGl0bGVDb2xvciA9ICd0ZXh0LWRhbmdlcidcclxuICAgICAgICAgIHJlc3VsdC5mYWlsZWQrK1xyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgaWYgKHJlc3VsdC5mYWlsZWQgPT09IDApIHtcclxuICAgICAgICAgICAgcmVzdWx0LnRpdGxlID0gJ1NvbWUgcnVucyBhcmUgc3RpbGwgaW4gcHJvZ3Jlc3MnXHJcbiAgICAgICAgICAgIHJlc3VsdC50aXRsZUNvbG9yID0gJ3RleHQtd2FybmluZydcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc3VsdC5pblByb2dyZXNzKytcclxuICAgICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBmb3JtYXQ6XHJcbiAgICAvLyAyIGZhaWxlZCwgMSBwYXNzZWQgcnVuc1xyXG4gICAgLy8gMSBwYXNzZWQsIDIgaW4gcHJvZ3Jlc3MsIDEgZmFpbGVkIHJ1bnNcclxuICAgIC8vIDEgcGFzc2VkIHJ1blxyXG4gICAgY29uc3QgbG9uZ1N1bW1hcnlTZWdtZW50cyA9IFtdXHJcbiAgICBpZiAocmVzdWx0LnBhc3NlZCA+IDApIGxvbmdTdW1tYXJ5U2VnbWVudHMucHVzaChgJHtyZXN1bHQucGFzc2VkfSBwYXNzZWRgKVxyXG4gICAgaWYgKHJlc3VsdC5pblByb2dyZXNzID4gMClcclxuICAgICAgbG9uZ1N1bW1hcnlTZWdtZW50cy5wdXNoKGAke3Jlc3VsdC5pblByb2dyZXNzfSBpbiBwcm9ncmVzc2ApXHJcbiAgICBpZiAocmVzdWx0LmZhaWxlZCA+IDApIGxvbmdTdW1tYXJ5U2VnbWVudHMucHVzaChgJHtyZXN1bHQuZmFpbGVkfSBmYWlsZWRgKVxyXG5cclxuICAgIHJlc3VsdC5sb25nU3VtbWFyeSA9IChcclxuICAgICAgbG9uZ1N1bW1hcnlTZWdtZW50cy5qb2luKCcsICcpICsgYCBydW4ke3Jlc3VsdC50b3RhbCA+IDEgPyAncycgOiAnJ31gXHJcbiAgICApLnJlcGxhY2UoLywoPz1bXixdKyQpLywgJywgYW5kJylcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0XHJcbiAgfSlcclxuXHJcbiAgcmV0dXJuIHsgc3VtbWFyeSB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB1c2VBdXRvbWF0aW9uc1N0YXR1c1J1bnNTdW1tYXJ5ID0gKHBhcmFtczoge1xyXG4gIHN0YXR1czogTWF5YmVSZWY8TWF5YmVOdWxsT3JVbmRlZmluZWQ8VHJpZ2dlcmVkQXV0b21hdGlvbnNTdGF0dXNTdW1tYXJ5RnJhZ21lbnQ+PlxyXG59KSA9PiB7XHJcbiAgY29uc3QgeyBzdGF0dXMgfSA9IHBhcmFtc1xyXG5cclxuICBjb25zdCBhbGxGdW5jdGlvblJ1bnMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBjdXJyZW50U3RhdHVzID0gdW5yZWYoc3RhdHVzKVxyXG4gICAgaWYgKCFjdXJyZW50U3RhdHVzKSByZXR1cm4gW11cclxuXHJcbiAgICByZXR1cm4gY3VycmVudFN0YXR1cy5hdXRvbWF0aW9uUnVucy5mbGF0TWFwKChydW4pID0+IHJ1bi5mdW5jdGlvblJ1bnMpXHJcbiAgfSlcclxuXHJcbiAgcmV0dXJuIHVzZUZ1bmN0aW9uUnVuc1N0YXR1c1N1bW1hcnkoeyBydW5zOiBhbGxGdW5jdGlvblJ1bnMgfSlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQXV0b21hdGVSdW5TdGF0dXNNZXRhZGF0YSA9IHtcclxuICBpY29uOiBQcm9wQW55Q29tcG9uZW50XHJcbiAgeHNJY29uOiBQcm9wQW55Q29tcG9uZW50XHJcbiAgaWNvbkNvbG9yOiBzdHJpbmdcclxuICBiYWRnZUNvbG9yOiBzdHJpbmdcclxuICBkaXNjbG9zdXJlQ29sb3I6ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInIHwgJ2RlZmF1bHQnXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB1c2VSdW5TdGF0dXNNZXRhZGF0YSA9IChwYXJhbXM6IHtcclxuICBzdGF0dXM6IE1heWJlUmVmPEF1dG9tYXRlUnVuU3RhdHVzPlxyXG59KSA9PiB7XHJcbiAgY29uc3QgeyBzdGF0dXMgfSA9IHBhcmFtc1xyXG5cclxuICBjb25zdCBtZXRhZGF0YSA9IGNvbXB1dGVkKCgpOiBBdXRvbWF0ZVJ1blN0YXR1c01ldGFkYXRhID0+IHtcclxuICAgIHN3aXRjaCAodW5yZWYoc3RhdHVzKSkge1xyXG4gICAgICBjYXNlIEF1dG9tYXRlUnVuU3RhdHVzLkNhbmNlbGVkOlxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpY29uOiBYQ2lyY2xlSWNvbixcclxuICAgICAgICAgIHhzSWNvbjogWENpcmNsZUljb24sXHJcbiAgICAgICAgICBpY29uQ29sb3I6ICd0ZXh0LXdhcm5pbmcnLFxyXG4gICAgICAgICAgYmFkZ2VDb2xvcjogJ2JnLXdhcm5pbmcnLFxyXG4gICAgICAgICAgZGlzY2xvc3VyZUNvbG9yOiAnd2FybmluZydcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgQXV0b21hdGVSdW5TdGF0dXMuRXhjZXB0aW9uOlxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpY29uOiBFeGNsYW1hdGlvbkNpcmNsZUljb24sXHJcbiAgICAgICAgICB4c0ljb246IEV4Y2xhbWF0aW9uQ2lyY2xlSWNvbixcclxuICAgICAgICAgIGljb25Db2xvcjogJ3RleHQtZGFuZ2VyJyxcclxuICAgICAgICAgIGJhZGdlQ29sb3I6ICdiZy1kYW5nZXInLFxyXG4gICAgICAgICAgZGlzY2xvc3VyZUNvbG9yOiAnZGFuZ2VyJ1xyXG4gICAgICAgIH1cclxuICAgICAgY2FzZSBBdXRvbWF0ZVJ1blN0YXR1cy5GYWlsZWQ6XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGljb246IEV4Y2xhbWF0aW9uQ2lyY2xlSWNvbixcclxuICAgICAgICAgIHhzSWNvbjogRXhjbGFtYXRpb25DaXJjbGVJY29uLFxyXG4gICAgICAgICAgaWNvbkNvbG9yOiAndGV4dC1kYW5nZXInLFxyXG4gICAgICAgICAgYmFkZ2VDb2xvcjogJ2JnLWRhbmdlcicsXHJcbiAgICAgICAgICBkaXNjbG9zdXJlQ29sb3I6ICdkYW5nZXInXHJcbiAgICAgICAgfVxyXG4gICAgICBjYXNlIEF1dG9tYXRlUnVuU3RhdHVzLkluaXRpYWxpemluZzpcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaWNvbjogRWxsaXBzaXNIb3Jpem9udGFsQ2lyY2xlSWNvbixcclxuICAgICAgICAgIHhzSWNvbjogRWxsaXBzaXNIb3Jpem9udGFsSWNvbixcclxuICAgICAgICAgIGljb25Db2xvcjogJ3RleHQtd2FybmluZycsXHJcbiAgICAgICAgICBiYWRnZUNvbG9yOiAnYmctd2FybmluZycsXHJcbiAgICAgICAgICBkaXNjbG9zdXJlQ29sb3I6ICd3YXJuaW5nJ1xyXG4gICAgICAgIH1cclxuICAgICAgY2FzZSBBdXRvbWF0ZVJ1blN0YXR1cy5QZW5kaW5nOlxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBpY29uOiBFbGxpcHNpc0hvcml6b250YWxDaXJjbGVJY29uLFxyXG4gICAgICAgICAgeHNJY29uOiBFbGxpcHNpc0hvcml6b250YWxJY29uLFxyXG4gICAgICAgICAgaWNvbkNvbG9yOiAndGV4dC1wcmltYXJ5JyxcclxuICAgICAgICAgIGJhZGdlQ29sb3I6ICdiZy1wcmltYXJ5JyxcclxuICAgICAgICAgIGRpc2Nsb3N1cmVDb2xvcjogJ2RlZmF1bHQnXHJcbiAgICAgICAgfVxyXG4gICAgICBjYXNlIEF1dG9tYXRlUnVuU3RhdHVzLlJ1bm5pbmc6XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGljb246IEFycm93UGF0aEljb24sXHJcbiAgICAgICAgICB4c0ljb246IEFycm93UGF0aEljb24sXHJcbiAgICAgICAgICBpY29uQ29sb3I6ICd0ZXh0LXByaW1hcnkgYW5pbWF0ZS1zcGluJyxcclxuICAgICAgICAgIGJhZGdlQ29sb3I6ICdiZy1wcmltYXJ5JyxcclxuICAgICAgICAgIGRpc2Nsb3N1cmVDb2xvcjogJ2RlZmF1bHQnXHJcbiAgICAgICAgfVxyXG4gICAgICBjYXNlIEF1dG9tYXRlUnVuU3RhdHVzLlN1Y2NlZWRlZDpcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaWNvbjogQ2hlY2tDaXJjbGVJY29uLFxyXG4gICAgICAgICAgeHNJY29uOiBDaGVja0NpcmNsZUljb24sXHJcbiAgICAgICAgICBpY29uQ29sb3I6ICd0ZXh0LXN1Y2Nlc3MnLFxyXG4gICAgICAgICAgYmFkZ2VDb2xvcjogJ2JnLXN1Y2Nlc3MnLFxyXG4gICAgICAgICAgZGlzY2xvc3VyZUNvbG9yOiAnc3VjY2VzcydcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgQXV0b21hdGVSdW5TdGF0dXMuVGltZW91dDpcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgaWNvbjogQ2xvY2tJY29uLFxyXG4gICAgICAgICAgeHNJY29uOiBDbG9ja0ljb24sXHJcbiAgICAgICAgICBpY29uQ29sb3I6ICd0ZXh0LWRhbmdlcicsXHJcbiAgICAgICAgICBiYWRnZUNvbG9yOiAnYmctZGFuZ2VyJyxcclxuICAgICAgICAgIGRpc2Nsb3N1cmVDb2xvcjogJ2RhbmdlcidcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfSlcclxuXHJcbiAgcmV0dXJuIHsgbWV0YWRhdGEgfVxyXG59XHJcbiJdLCJmaWxlIjoiRDovc3BlY2tsZS1zZXJ2ZXIvcGFja2FnZXMvZnJvbnRlbmQtMi9saWIvYXV0b21hdGUvY29tcG9zYWJsZXMvcnVuU3RhdHVzLnRzIn0= |