@hestia-earth/ui-components 0.24.2 → 0.25.0
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/common/utils.d.ts +1 -0
- package/cycles/cycles-nodes/cycles-nodes.component.d.ts +1 -0
- package/esm2022/common/utils.mjs +2 -1
- package/esm2022/cycles/cycles-nodes/cycles-nodes.component.mjs +8 -6
- package/esm2022/engine/aggregation-engine.service.mjs +2 -2
- package/esm2022/engine/engine.service.mjs +3 -3
- package/esm2022/files/files-error-summary.model.mjs +1 -1
- package/esm2022/files/files-error.model.mjs +5 -3
- package/esm2022/files/files-form/files-form.component.mjs +1 -1
- package/esm2022/files/files-form.model.mjs +1 -1
- package/esm2022/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.mjs +141 -122
- package/esm2022/impact-assessments/impact-assessments-products/impact-assessments-products.component.mjs +38 -13
- package/esm2022/node/node-logs-models/node-logs-models.component.mjs +8 -4
- package/esm2022/node/node-value-details/node-value-details.component.mjs +2 -1
- package/esm2022/schema/index.mjs +2 -1
- package/esm2022/schema/schema-validation.model.mjs +2 -0
- package/esm2022/sites/index.mjs +2 -2
- package/esm2022/sites/sites-nodes/sites-nodes.component.mjs +129 -0
- package/esm2022/sites/sites.module.mjs +4 -4
- package/fesm2022/hestia-earth-ui-components.mjs +1504 -1425
- package/fesm2022/hestia-earth-ui-components.mjs.map +1 -1
- package/files/files-error-summary.model.d.ts +2 -1
- package/files/files-error.model.d.ts +2 -20
- package/files/files-form.model.d.ts +1 -1
- package/impact-assessments/impact-assessments-indicator-breakdown-chart/impact-assessments-indicator-breakdown-chart.component.d.ts +35 -17
- package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +16 -6
- package/node/node-logs-models/node-logs-models.component.d.ts +3 -0
- package/package.json +1 -1
- package/schema/index.d.ts +1 -0
- package/schema/schema-validation.model.d.ts +30 -0
- package/sites/index.d.ts +1 -1
- package/sites/{sites-measurements/sites-measurements.component.d.ts → sites-nodes/sites-nodes.component.d.ts} +24 -11
- package/sites/sites.module.d.ts +2 -2
- package/esm2022/sites/sites-measurements/sites-measurements.component.mjs +0 -101
package/common/utils.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ export declare enum Template {
|
|
|
43
43
|
feature = "feature"
|
|
44
44
|
}
|
|
45
45
|
export declare const reportIssueUrl: (repository: Repository, template?: Template) => string;
|
|
46
|
+
export declare const changelogUrl: (repository: Repository) => string;
|
|
46
47
|
export declare const contactUsEmail = "community@hestia.earth";
|
|
47
48
|
export declare const externalLink: (href: string, text: string) => string;
|
|
48
49
|
export declare const glossaryLink: (text: string) => string;
|
|
@@ -160,6 +160,7 @@ export declare class CyclesNodesComponent {
|
|
|
160
160
|
}>;
|
|
161
161
|
private isOriginal;
|
|
162
162
|
private originalValues;
|
|
163
|
+
private hasRecalculatedNodes;
|
|
163
164
|
protected showSwitchToRecalculated: import("@angular/core").Signal<boolean>;
|
|
164
165
|
protected timelineValues: import("@angular/core").Signal<blankNode[]>;
|
|
165
166
|
private enableTimeline;
|
package/esm2022/common/utils.mjs
CHANGED
|
@@ -104,6 +104,7 @@ export var Template;
|
|
|
104
104
|
Template["feature"] = "feature";
|
|
105
105
|
})(Template || (Template = {}));
|
|
106
106
|
export const reportIssueUrl = (repository, template) => `${gitHome}/${repository}/-/issues/new${template ? `?issuable_template=${template}` : null}`;
|
|
107
|
+
export const changelogUrl = (repository) => `${gitHome}/${repository}/-/blob/master/CHANGELOG.md`;
|
|
107
108
|
export const contactUsEmail = 'community@hestia.earth';
|
|
108
109
|
export const externalLink = (href, text) => `<a href="${href}" target="_blank">${text}</a>`;
|
|
109
110
|
export const glossaryLink = (text) => externalLink(`${baseUrl()}/glossary`, text);
|
|
@@ -116,4 +117,4 @@ export const reportIssueLink = (repository, template, text = 'here') => external
|
|
|
116
117
|
* Url to fetch raw content from Gitlab, bypassing CORS issues.
|
|
117
118
|
*/
|
|
118
119
|
export const gitlabRawUrl = ({ repository, path, apiUrl, branch }) => `${apiUrl || baseApiUrl()}/gitlab/raw?repository=${repository}&branch=${branch || gitBranch()}&path=${encodeURIComponent(path)}`;
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUM3QixPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVoSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTVFLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDLENBQUMsOEJBQThCO0lBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07UUFDeEIsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxN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QUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFvQixFQUFFLEVBQUUsQ0FDckYsR0FBRyxNQUFNLElBQUksVUFBVSxFQUFFLDBCQUEwQixVQUFVLFdBQzNELE1BQU0sSUFBSSxTQUFTLEVBQ3JCLFNBQVMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5pbXBvcnQgeyBJU2l0ZUpTT05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIFNjaGVtYVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmV4cG9ydCBjb25zdCBnaXRIb21lID0gJ2h0dHBzOi8vZ2l0bGFiLmNvbS9oZXN0aWEtZWFydGgnO1xuZXhwb3J0IGNvbnN0IGdpdEJyYW5jaCA9ICgpID0+IChbJ2RldicsICdzdGFnaW5nJ10uc29tZShlbnYgPT4gYmFzZVVybCgpLmluY2x1ZGVzKGVudikpID8gJ2RldmVsb3AnIDogJ21hc3RlcicpO1xuXG5leHBvcnQgY29uc3QgaXNDaHJvbWUgPSAoKSA9PiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJyk7XG5cbmV4cG9ydCBjb25zdCBiYXNlVXJsID0gKCkgPT5cbiAgd2luZG93LmxvY2F0aW9uLm9yaWdpbj8uaW5jbHVkZXMoJ2xvY2FsaG9zdCcpXG4gICAgPyAnaHR0cHM6Ly93d3ctZGV2Lmhlc3RpYS5lYXJ0aCdcbiAgICA6IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4/LmluY2x1ZGVzKCdoZXN0aWEuZWFydGgnKVxuICAgID8gd2luZG93LmxvY2F0aW9uLm9yaWdpblxuICAgIDogJ2h0dHBzOi8vd3d3Lmhlc3RpYS5lYXJ0aCc7XG5cbmV4cG9ydCBjb25zdCBiYXNlQXBpVXJsID0gKCkgPT4gYmFzZVVybCgpLnJlcGxhY2UoJ3d3dycsICdhcGknKTtcblxuZXhwb3J0IGNvbnN0IGlzRXh0ZXJuYWwgPSAoKSA9PiBiYXNlVXJsKCkgIT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG5cbmNvbnN0IHBhcnNlRXJyb3JTdGF0dXMgPSAoZXJyb3I6IGFueSkgPT4gKGVycm9yPy5zdGF0dXNUZXh0IHx8ICcnKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccy9nLCAnLScpO1xuXG5jb25zdCBwYXJzZUVycm9yTWVzc2FnZSA9IChlcnJvcjogYW55KSA9PlxuICBnZXQoZXJyb3IsICdlcnJvci5lcnJvcicsIGdldChlcnJvciwgJ2Vycm9yLm1lc3NhZ2UnLCBnZXQoZXJyb3IsICdlcnJvcicsIGdldChlcnJvciwgJ21lc3NhZ2UnLCBlcnJvcikpKSk7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVBUElFcnJvciA9IChlcnJvcjogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgZXJyb3IgPSBwYXJzZUVycm9yTWVzc2FnZShlcnJvcik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIGlnbm9yZSBlcnJvclxuICB9XG4gIHRocm93IGVycm9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGVycm9yVGV4dCA9IChlcnJvcjogYW55KTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cbiAgY29uc3QgZXJyID0gcGFyc2VFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICByZXR1cm4gcGFyc2VFcnJvclN0YXR1cyhlcnIpIHx8IGVycjtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJQYXJhbXMgPSAob2JqOiBhbnkpID0+IHtcbiAgY29uc3QgcmVzOiB7XG4gICAgW3g6IHN0cmluZ106IHN0cmluZztcbiAgfSA9IHt9O1xuICBPYmplY3Qua2V5cyhvYmopXG4gICAgLnNvcnQoKVxuICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG9ialtrZXldO1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXNba2V5XSA9IGAke3ZhbHVlfWA7XG4gICAgICB9XG4gICAgfSk7XG4gIHJldHVybiByZXM7XG59O1xuXG5leHBvcnQgY29uc3Qgd2FpdEZvciA9ICh2YXJpYWJsZTogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCkgPT5cbiAgZ2V0KHdpbmRvdywgdmFyaWFibGUsIGZhbHNlKSA/IGNhbGxiYWNrKCkgOiBzZXRUaW1lb3V0KCgpID0+IHdhaXRGb3IodmFyaWFibGUsIGNhbGxiYWNrKSwgMTAwKTtcblxuZXhwb3J0IGNvbnN0IGJvdHRvbSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuZXhwb3J0IGNvbnN0IGlzU2Nyb2xsZWRCZWxvdyA9IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gKGVsZW1lbnQgPyB3aW5kb3cuc2Nyb2xsWSA+IGJvdHRvbShlbGVtZW50KSA6IGZhbHNlKTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvRWwgPSAoaWQ6IHN0cmluZywgcmV0cmllcyA9IDApID0+IHtcbiAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gIHNldFRpbWVvdXQoKCkgPT4gKGVsID8gZWwuc2Nyb2xsSW50b1ZpZXcoKSA6IHJldHJpZXMgPCAxMCA/IHNjcm9sbFRvRWwoaWQsIHJldHJpZXMgKyAxKSA6IG51bGwpLCAxMDApO1xufTtcblxuZXhwb3J0IGNvbnN0IHNjcm9sbFRvcCA9ICgpID0+IHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OUGFyc2UgPSA8VD4odmFsdWU6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyAoSlNPTi5wYXJzZSh2YWx1ZSkgYXMgVCkgOiB2YWx1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNhZmVKU09OU3RyaW5naWZ5ID0gKHZhbHVlOiBzdHJpbmcpID0+ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuXG5leHBvcnQgY29uc3QgYXJyYXlWYWx1ZSA9ICh2YWx1ZXM6IGFueVtdLCBpc0F2ZXJhZ2U6IGJvb2xlYW4pID0+XG4gICh2YWx1ZXMgfHwgW10pLnJlZHVjZSgocHJldjogbnVtYmVyLCBjdXJyKSA9PiBwcmV2ICsgcGFyc2VGbG9hdChgJHtjdXJyfWApLCAwKSAvIChpc0F2ZXJhZ2UgPyB2YWx1ZXMubGVuZ3RoIDogMSk7XG5cbmV4cG9ydCBjb25zdCBlbGxpcHNpcyA9ICh0ZXh0ID0gJycsIG1heGxlbmd0aCA9IDIwKSA9PlxuICB0ZXh0Lmxlbmd0aCA+IG1heGxlbmd0aCA/IGAke3RleHQuc3Vic3RyaW5nKDAsIG1heGxlbmd0aCl9Li4uYCA6IHRleHQ7XG5cbmNvbnN0IG1hcHNRdWVyeSA9ICdodHRwOi8vbWFwcy5nb29nbGUuY29tLz9xPSc7XG5cbmV4cG9ydCBjb25zdCBtYXBzVXJsID0gKGxvY2F0aW9uPzogeyBsYXQ/OiBudW1iZXI7IGxuZz86IG51bWJlcjsgbmFtZT86IHN0cmluZyB9KSA9PlxuICBsb2NhdGlvblxuICAgID8gbG9jYXRpb24ubGF0ICYmIGxvY2F0aW9uLmxuZ1xuICAgICAgPyBgJHttYXBzUXVlcnl9JHtsb2NhdGlvbi5sYXR9LCR7bG9jYXRpb24ubG5nfWBcbiAgICAgIDogbG9jYXRpb24ubmFtZVxuICAgICAgPyBgJHttYXBzUXVlcnl9JHtlbmNvZGVVUkkobG9jYXRpb24ubmFtZSl9YFxuICAgICAgOiB1bmRlZmluZWRcbiAgICA6IHVuZGVmaW5lZDtcblxuY29uc3Qgbm9kZURlZmF1bHRMYWJlbDoge1xuICBbdHlwZSBpbiBTY2hlbWFUeXBlXT86IChkYXRhOiBhbnkpID0+IHN0cmluZztcbn0gPSB7XG4gIFtTY2hlbWFUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiAoeyBuYW1lLCBjb3VudHJ5LCBlbmREYXRlLCBwcm9kdWN0IH06IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEKSA9PlxuICAgIG5hbWVcbiAgICAgID8gbmFtZS5yZXBsYWNlKGAke3Byb2R1Y3Q/LnRlcm0/Lm5hbWV9LCBgLCAnJylcbiAgICAgIDogW3Byb2R1Y3Q/LnRlcm0/Lm5hbWUsIGNvdW50cnk/Lm5hbWUsIGVuZERhdGVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcsICcpLFxuICBbU2NoZW1hVHlwZS5TaXRlXTogKHsgbmFtZSwgZGVzY3JpcHRpb24gfTogSVNpdGVKU09OTEQpID0+IG5hbWUgfHwgZGVzY3JpcHRpb24hLFxuICBbU2NoZW1hVHlwZS5UcmFuc2Zvcm1hdGlvbl06ICh7IG5hbWUsIHRlcm0gfTogYW55KSA9PiBuYW1lIHx8IHRlcm0/Lm5hbWVcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TGFiZWwgPSAobm9kZT86IGFueSkgPT5cbiAgbm9kZVxuICAgID8gKG5vZGVbJ0B0eXBlJ10gaW4gbm9kZURlZmF1bHRMYWJlbCA/IG5vZGVEZWZhdWx0TGFiZWxbbm9kZVsnQHR5cGUnXV0obm9kZSkgOiBub2RlLm5hbWUpIHx8IG5vZGVbJ0BpZCddIHx8IG5vZGUuaWRcbiAgICA6ICcnO1xuXG5leHBvcnQgY29uc3QgcmVwZWF0ID0gKHRpbWVzID0gMCkgPT4gQXJyYXkuZnJvbShBcnJheSh0aW1lcyksIE1hdGgucmFuZG9tKTtcblxuZXhwb3J0IGNvbnN0IGNvcHlPYmplY3QgPSAoZGF0YT86IGFueSkgPT4gKGRhdGEgPyBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEpKSA6IG51bGwpO1xuXG5leHBvcnQgY29uc3QgaXNFcXVhbCA9IChhOiBhbnksIGI6IGFueSkgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGIpO1xuXG5leHBvcnQgY29uc3QgdHlwZWFoZWFkRm9jdXMgPSAoZTogRXZlbnQpID0+IHtcbiAgaWYgKGUuYnViYmxlcykge1xuICAgIHJldHVybjtcbiAgfVxuICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICBzZXRUaW1lb3V0KCgpID0+IGUudGFyZ2V0Py5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnKSksIDApO1xufTtcblxuZXhwb3J0IGVudW0gUmVwb3NpdG9yeSB7XG4gIGdsb3NzYXJ5ID0gJ2hlc3RpYS1nbG9zc2FyeScsXG4gIG1vZGVscyA9ICdoZXN0aWEtZW5naW5lLW1vZGVscycsXG4gIG9yY2hlc3RyYXRvciA9ICdoZXN0aWEtZW5naW5lLW9yY2hlc3RyYXRvcicsXG4gIGFnZ3JlZ2F0aW9uID0gJ2hlc3RpYS1hZ2dyZWdhdGlvbi1lbmdpbmUnLFxuICBjb21tdW5pdHkgPSAnaGVzdGlhLWNvbW11bml0eS1lZGl0aW9uJyxcbiAgcG9vcmVuZW1lY2sgPSAnaGVzdGlhLWNvbnZlcnQtcG9vcmUtbmVtZWNlaycsXG4gIGZyb250ZW5kID0gJ2hlc3RpYS1mcm9udC1lbmQnLFxuICBzY2hlbWEgPSAnaGVzdGlhLXNjaGVtYSdcbn1cblxuZXhwb3J0IGVudW0gVGVtcGxhdGUge1xuICBidWcgPSAnYnVnJyxcbiAgZmVhdHVyZSA9ICdmZWF0dXJlJ1xufVxuXG5leHBvcnQgY29uc3QgcmVwb3J0SXNzdWVVcmwgPSAocmVwb3NpdG9yeTogUmVwb3NpdG9yeSwgdGVtcGxhdGU/OiBUZW1wbGF0ZSkgPT5cbiAgYCR7Z2l0SG9tZX0vJHtyZXBvc2l0b3J5fS8tL2lzc3Vlcy9uZXcke3RlbXBsYXRlID8gYD9pc3N1YWJsZV90ZW1wbGF0ZT0ke3RlbXBsYXRlfWAgOiBudWxsfWA7XG5cbmV4cG9ydCBjb25zdCBjb250YWN0VXNFbWFpbCA9ICdjb21tdW5pdHlAaGVzdGlhLmVhcnRoJztcbmV4cG9ydCBjb25zdCBleHRlcm5hbExpbmsgPSAoaHJlZjogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpID0+IGA8YSBocmVmPVwiJHtocmVmfVwiIHRhcmdldD1cIl9ibGFua1wiPiR7dGV4dH08L2E+YDtcbmV4cG9ydCBjb25zdCBnbG9zc2FyeUxpbmsgPSAodGV4dDogc3RyaW5nKSA9PiBleHRlcm5hbExpbmsoYCR7YmFzZVVybCgpfS9nbG9zc2FyeWAsIHRleHQpO1xuZXhwb3J0IGNvbnN0IG5vZGVMaW5rID0gKHsgJ0B0eXBlJzogdHlwZSwgJ0BpZCc6IGlkLCBuYW1lIH06IHsgJ0B0eXBlJzogc3RyaW5nOyAnQGlkJzogc3RyaW5nOyBuYW1lPzogc3RyaW5nIH0pID0+XG4gIHR5cGUgJiYgaWQgPyBgPGEgaHJlZj1cIi8ke3R5cGUudG9Mb3dlckNhc2UoKX0vJHtpZH1cIiB0YXJnZXQ9XCJfYmxhbmtcIj4ke25hbWUgfHwgaWR9PC9hPmAgOiBudWxsO1xuZXhwb3J0IGNvbnN0IHNjaGVtYUxpbmsgPSAodHlwZTogc3RyaW5nLCB0aXRsZSA9IHR5cGUpID0+XG4gIGA8YSBocmVmPVwiJHtiYXNlVXJsKCl9L3NjaGVtYS8ke3R5cGV9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+JHt0aXRsZX08L2E+YDtcbmV4cG9ydCBjb25zdCBjb2RlID0gKHRleHQ6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pID0+IGA8Y29kZT4ke3RleHR9PC9jb2RlPmA7XG5leHBvcnQgY29uc3QgY29udGFjdFVzTGluayA9ICh0ZXh0ID0gJ2NvbnRhY3QgdXMnKSA9PiBgPGEgaHJlZj1cIm1haWx0bzoke2NvbnRhY3RVc0VtYWlsfVwiPiR7dGV4dH08L2E+YDtcbmV4cG9ydCBjb25zdCByZXBvcnRJc3N1ZUxpbmsgPSAocmVwb3NpdG9yeTogUmVwb3NpdG9yeSwgdGVtcGxhdGU/OiBUZW1wbGF0ZSwgdGV4dCA9ICdoZXJlJykgPT5cbiAgZXh0ZXJuYWxMaW5rKHJlcG9ydElzc3VlVXJsKHJlcG9zaXRvcnksIHRlbXBsYXRlKSwgdGV4dCk7XG5cbmludGVyZmFjZSBJR2l0bGFiUmF3UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IHdoZXJlIHRoZSBmaWxlIGlzIGxvY2F0ZWQuXG4gICAqL1xuICByZXBvc2l0b3J5OiBSZXBvc2l0b3J5O1xuICAvKipcbiAgICogVGhlIHBhdGggb2YgdGhlIGZpbGUsIGZyb20gdGhlIHJvb3Qgb2YgdGhlIHJlcG9zaXRvcnkuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSB1cmwgb2YgdGhlIEhlc3RpYSBBUEkuXG4gICAqL1xuICBhcGlVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYnJhbmNoLCB1c2luZyB0aGUgZGVmYXVsdCBicmFuY2ggYmFzZWQgb24gdGhlIGVudmlyb25tZW50LlxuICAgKi9cbiAgYnJhbmNoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVybCB0byBmZXRjaCByYXcgY29udGVudCBmcm9tIEdpdGxhYiwgYnlwYXNzaW5nIENPUlMgaXNzdWVzLlxuICovXG5leHBvcnQgY29uc3QgZ2l0bGFiUmF3VXJsID0gKHsgcmVwb3NpdG9yeSwgcGF0aCwgYXBpVXJsLCBicmFuY2ggfTogSUdpdGxhYlJhd1BhcmFtcykgPT5cbiAgYCR7YXBpVXJsIHx8IGJhc2VBcGlVcmwoKX0vZ2l0bGFiL3Jhdz9yZXBvc2l0b3J5PSR7cmVwb3NpdG9yeX0mYnJhbmNoPSR7XG4gICAgYnJhbmNoIHx8IGdpdEJyYW5jaCgpXG4gIH0mcGF0aD0ke2VuY29kZVVSSUNvbXBvbmVudChwYXRoKX1gO1xuIl19
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUM3QixPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxpQ0FBaUMsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVoSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTVFLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDLENBQUMsOEJBQThCO0lBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07UUFDeEIsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRWhFLE1BQU0sQ0FBQyxN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QUFFLEVBQUUsQ0FDNUYsWUFBWSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFxQjNEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQW9CLEVBQUUsRUFBRSxDQUNyRixHQUFHLE1BQU0sSUFBSSxVQUFVLEVBQUUsMEJBQTBCLFVBQVUsV0FDM0QsTUFBTSxJQUFJLFNBQVMsRUFDckIsU0FBUyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldCBmcm9tICdsb2Rhc2guZ2V0JztcbmltcG9ydCB7IElTaXRlSlNPTkxELCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgU2NoZW1hVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcblxuZXhwb3J0IGNvbnN0IGdpdEhvbWUgPSAnaHR0cHM6Ly9naXRsYWIuY29tL2hlc3RpYS1lYXJ0aCc7XG5leHBvcnQgY29uc3QgZ2l0QnJhbmNoID0gKCkgPT4gKFsnZGV2JywgJ3N0YWdpbmcnXS5zb21lKGVudiA9PiBiYXNlVXJsKCkuaW5jbHVkZXMoZW52KSkgPyAnZGV2ZWxvcCcgOiAnbWFzdGVyJyk7XG5cbmV4cG9ydCBjb25zdCBpc0Nocm9tZSA9ICgpID0+IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCdDaHJvbWUnKTtcblxuZXhwb3J0IGNvbnN0IGJhc2VVcmwgPSAoKSA9PlxuICB3aW5kb3cubG9jYXRpb24ub3JpZ2luPy5pbmNsdWRlcygnbG9jYWxob3N0JylcbiAgICA/ICdodHRwczovL3d3dy1kZXYuaGVzdGlhLmVhcnRoJ1xuICAgIDogd2luZG93LmxvY2F0aW9uLm9yaWdpbj8uaW5jbHVkZXMoJ2hlc3RpYS5lYXJ0aCcpXG4gICAgPyB3aW5kb3cubG9jYXRpb24ub3JpZ2luXG4gICAgOiAnaHR0cHM6Ly93d3cuaGVzdGlhLmVhcnRoJztcblxuZXhwb3J0IGNvbnN0IGJhc2VBcGlVcmwgPSAoKSA9PiBiYXNlVXJsKCkucmVwbGFjZSgnd3d3JywgJ2FwaScpO1xuXG5leHBvcnQgY29uc3QgaXNFeHRlcm5hbCA9ICgpID0+IGJhc2VVcmwoKSAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcblxuY29uc3QgcGFyc2VFcnJvclN0YXR1cyA9IChlcnJvcjogYW55KSA9PiAoZXJyb3I/LnN0YXR1c1RleHQgfHwgJycpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzL2csICctJyk7XG5cbmNvbnN0IHBhcnNlRXJyb3JNZXNzYWdlID0gKGVycm9yOiBhbnkpID0+XG4gIGdldChlcnJvciwgJ2Vycm9yLmVycm9yJywgZ2V0KGVycm9yLCAnZXJyb3IubWVzc2FnZScsIGdldChlcnJvciwgJ2Vycm9yJywgZ2V0KGVycm9yLCAnbWVzc2FnZScsIGVycm9yKSkpKTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUFQSUVycm9yID0gKGVycm9yOiBhbnkpID0+IHtcbiAgdHJ5IHtcbiAgICBlcnJvciA9IHBhcnNlRXJyb3JNZXNzYWdlKGVycm9yKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gaWdub3JlIGVycm9yXG4gIH1cbiAgdGhyb3cgZXJyb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZXJyb3JUZXh0ID0gKGVycm9yOiBhbnkpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnJvcjtcbiAgfVxuICBjb25zdCBlcnIgPSBwYXJzZUVycm9yTWVzc2FnZShlcnJvcik7XG4gIHJldHVybiBwYXJzZUVycm9yU3RhdHVzKGVycikgfHwgZXJyO1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlclBhcmFtcyA9IChvYmo6IGFueSkgPT4ge1xuICBjb25zdCByZXM6IHtcbiAgICBbeDogc3RyaW5nXTogc3RyaW5nO1xuICB9ID0ge307XG4gIE9iamVjdC5rZXlzKG9iailcbiAgICAuc29ydCgpXG4gICAgLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJlc1trZXldID0gYCR7dmFsdWV9YDtcbiAgICAgIH1cbiAgICB9KTtcbiAgcmV0dXJuIHJlcztcbn07XG5cbmV4cG9ydCBjb25zdCB3YWl0Rm9yID0gKHZhcmlhYmxlOiBzdHJpbmcsIGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PlxuICBnZXQod2luZG93LCB2YXJpYWJsZSwgZmFsc2UpID8gY2FsbGJhY2soKSA6IHNldFRpbWVvdXQoKCkgPT4gd2FpdEZvcih2YXJpYWJsZSwgY2FsbGJhY2spLCAxMDApO1xuXG5leHBvcnQgY29uc3QgYm90dG9tID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG5leHBvcnQgY29uc3QgaXNTY3JvbGxlZEJlbG93ID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiAoZWxlbWVudCA/IHdpbmRvdy5zY3JvbGxZID4gYm90dG9tKGVsZW1lbnQpIDogZmFsc2UpO1xuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9FbCA9IChpZDogc3RyaW5nLCByZXRyaWVzID0gMCkgPT4ge1xuICBjb25zdCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgc2V0VGltZW91dCgoKSA9PiAoZWwgPyBlbC5zY3JvbGxJbnRvVmlldygpIDogcmV0cmllcyA8IDEwID8gc2Nyb2xsVG9FbChpZCwgcmV0cmllcyArIDEpIDogbnVsbCksIDEwMCk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9wID0gKCkgPT4gd2luZG93LnNjcm9sbFRvKDAsIDApO1xuXG5leHBvcnQgY29uc3Qgc2FmZUpTT05QYXJzZSA9IDxUPih2YWx1ZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkpID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IChKU09OLnBhcnNlKHZhbHVlKSBhcyBUKSA6IHZhbHVlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc2FmZUpTT05TdHJpbmdpZnkgPSAodmFsdWU6IHN0cmluZykgPT4gKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZSA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG5cbmV4cG9ydCBjb25zdCBhcnJheVZhbHVlID0gKHZhbHVlczogYW55W10sIGlzQXZlcmFnZTogYm9vbGVhbikgPT5cbiAgKHZhbHVlcyB8fCBbXSkucmVkdWNlKChwcmV2OiBudW1iZXIsIGN1cnIpID0+IHByZXYgKyBwYXJzZUZsb2F0KGAke2N1cnJ9YCksIDApIC8gKGlzQXZlcmFnZSA/IHZhbHVlcy5sZW5ndGggOiAxKTtcblxuZXhwb3J0IGNvbnN0IGVsbGlwc2lzID0gKHRleHQgPSAnJywgbWF4bGVuZ3RoID0gMjApID0+XG4gIHRleHQubGVuZ3RoID4gbWF4bGVuZ3RoID8gYCR7dGV4dC5zdWJzdHJpbmcoMCwgbWF4bGVuZ3RoKX0uLi5gIDogdGV4dDtcblxuY29uc3QgbWFwc1F1ZXJ5ID0gJ2h0dHA6Ly9tYXBzLmdvb2dsZS5jb20vP3E9JztcblxuZXhwb3J0IGNvbnN0IG1hcHNVcmwgPSAobG9jYXRpb24/OiB7IGxhdD86IG51bWJlcjsgbG5nPzogbnVtYmVyOyBuYW1lPzogc3RyaW5nIH0pID0+XG4gIGxvY2F0aW9uXG4gICAgPyBsb2NhdGlvbi5sYXQgJiYgbG9jYXRpb24ubG5nXG4gICAgICA/IGAke21hcHNRdWVyeX0ke2xvY2F0aW9uLmxhdH0sJHtsb2NhdGlvbi5sbmd9YFxuICAgICAgOiBsb2NhdGlvbi5uYW1lXG4gICAgICA/IGAke21hcHNRdWVyeX0ke2VuY29kZVVSSShsb2NhdGlvbi5uYW1lKX1gXG4gICAgICA6IHVuZGVmaW5lZFxuICAgIDogdW5kZWZpbmVkO1xuXG5jb25zdCBub2RlRGVmYXVsdExhYmVsOiB7XG4gIFt0eXBlIGluIFNjaGVtYVR5cGVdPzogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xufSA9IHtcbiAgW1NjaGVtYVR5cGUuSW1wYWN0QXNzZXNzbWVudF06ICh7IG5hbWUsIGNvdW50cnksIGVuZERhdGUsIHByb2R1Y3QgfTogSUltcGFjdEFzc2Vzc21lbnRKU09OTEQpID0+XG4gICAgbmFtZVxuICAgICAgPyBuYW1lLnJlcGxhY2UoYCR7cHJvZHVjdD8udGVybT8ubmFtZX0sIGAsICcnKVxuICAgICAgOiBbcHJvZHVjdD8udGVybT8ubmFtZSwgY291bnRyeT8ubmFtZSwgZW5kRGF0ZV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywgJyksXG4gIFtTY2hlbWFUeXBlLlNpdGVdOiAoeyBuYW1lLCBkZXNjcmlwdGlvbiB9OiBJU2l0ZUpTT05MRCkgPT4gbmFtZSB8fCBkZXNjcmlwdGlvbiEsXG4gIFtTY2hlbWFUeXBlLlRyYW5zZm9ybWF0aW9uXTogKHsgbmFtZSwgdGVybSB9OiBhbnkpID0+IG5hbWUgfHwgdGVybT8ubmFtZVxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMYWJlbCA9IChub2RlPzogYW55KSA9PlxuICBub2RlXG4gICAgPyAobm9kZVsnQHR5cGUnXSBpbiBub2RlRGVmYXVsdExhYmVsID8gbm9kZURlZmF1bHRMYWJlbFtub2RlWydAdHlwZSddXShub2RlKSA6IG5vZGUubmFtZSkgfHwgbm9kZVsnQGlkJ10gfHwgbm9kZS5pZFxuICAgIDogJyc7XG5cbmV4cG9ydCBjb25zdCByZXBlYXQgPSAodGltZXMgPSAwKSA9PiBBcnJheS5mcm9tKEFycmF5KHRpbWVzKSwgTWF0aC5yYW5kb20pO1xuXG5leHBvcnQgY29uc3QgY29weU9iamVjdCA9IChkYXRhPzogYW55KSA9PiAoZGF0YSA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpIDogbnVsbCk7XG5cbmV4cG9ydCBjb25zdCBpc0VxdWFsID0gKGE6IGFueSwgYjogYW55KSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYik7XG5cbmV4cG9ydCBjb25zdCB0eXBlYWhlYWRGb2N1cyA9IChlOiBFdmVudCkgPT4ge1xuICBpZiAoZS5idWJibGVzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIHNldFRpbWVvdXQoKCkgPT4gZS50YXJnZXQ/LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKSwgMCk7XG59O1xuXG5leHBvcnQgZW51bSBSZXBvc2l0b3J5IHtcbiAgZ2xvc3NhcnkgPSAnaGVzdGlhLWdsb3NzYXJ5JyxcbiAgbW9kZWxzID0gJ2hlc3RpYS1lbmdpbmUtbW9kZWxzJyxcbiAgb3JjaGVzdHJhdG9yID0gJ2hlc3RpYS1lbmdpbmUtb3JjaGVzdHJhdG9yJyxcbiAgYWdncmVnYXRpb24gPSAnaGVzdGlhLWFnZ3JlZ2F0aW9uLWVuZ2luZScsXG4gIGNvbW11bml0eSA9ICdoZXN0aWEtY29tbXVuaXR5LWVkaXRpb24nLFxuICBwb29yZW5lbWVjayA9ICdoZXN0aWEtY29udmVydC1wb29yZS1uZW1lY2VrJyxcbiAgZnJvbnRlbmQgPSAnaGVzdGlhLWZyb250LWVuZCcsXG4gIHNjaGVtYSA9ICdoZXN0aWEtc2NoZW1hJ1xufVxuXG5leHBvcnQgZW51bSBUZW1wbGF0ZSB7XG4gIGJ1ZyA9ICdidWcnLFxuICBmZWF0dXJlID0gJ2ZlYXR1cmUnXG59XG5cbmV4cG9ydCBjb25zdCByZXBvcnRJc3N1ZVVybCA9IChyZXBvc2l0b3J5OiBSZXBvc2l0b3J5LCB0ZW1wbGF0ZT86IFRlbXBsYXRlKSA9PlxuICBgJHtnaXRIb21lfS8ke3JlcG9zaXRvcnl9Ly0vaXNzdWVzL25ldyR7dGVtcGxhdGUgPyBgP2lzc3VhYmxlX3RlbXBsYXRlPSR7dGVtcGxhdGV9YCA6IG51bGx9YDtcblxuZXhwb3J0IGNvbnN0IGNoYW5nZWxvZ1VybCA9IChyZXBvc2l0b3J5OiBSZXBvc2l0b3J5KSA9PiBgJHtnaXRIb21lfS8ke3JlcG9zaXRvcnl9Ly0vYmxvYi9tYXN0ZXIvQ0hBTkdFTE9HLm1kYDtcblxuZXhwb3J0IGNvbnN0IGNvbnRhY3RVc0VtYWlsID0gJ2NvbW11bml0eUBoZXN0aWEuZWFydGgnO1xuZXhwb3J0IGNvbnN0IGV4dGVybmFsTGluayA9IChocmVmOiBzdHJpbmcsIHRleHQ6IHN0cmluZykgPT4gYDxhIGhyZWY9XCIke2hyZWZ9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+JHt0ZXh0fTwvYT5gO1xuZXhwb3J0IGNvbnN0IGdsb3NzYXJ5TGluayA9ICh0ZXh0OiBzdHJpbmcpID0+IGV4dGVybmFsTGluayhgJHtiYXNlVXJsKCl9L2dsb3NzYXJ5YCwgdGV4dCk7XG5leHBvcnQgY29uc3Qgbm9kZUxpbmsgPSAoeyAnQHR5cGUnOiB0eXBlLCAnQGlkJzogaWQsIG5hbWUgfTogeyAnQHR5cGUnOiBzdHJpbmc7ICdAaWQnOiBzdHJpbmc7IG5hbWU/OiBzdHJpbmcgfSkgPT5cbiAgdHlwZSAmJiBpZCA/IGA8YSBocmVmPVwiLyR7dHlwZS50b0xvd2VyQ2FzZSgpfS8ke2lkfVwiIHRhcmdldD1cIl9ibGFua1wiPiR7bmFtZSB8fCBpZH08L2E+YCA6IG51bGw7XG5leHBvcnQgY29uc3Qgc2NoZW1hTGluayA9ICh0eXBlOiBzdHJpbmcsIHRpdGxlID0gdHlwZSkgPT5cbiAgYDxhIGhyZWY9XCIke2Jhc2VVcmwoKX0vc2NoZW1hLyR7dHlwZX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj4ke3RpdGxlfTwvYT5gO1xuZXhwb3J0IGNvbnN0IGNvZGUgPSAodGV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbikgPT4gYDxjb2RlPiR7dGV4dH08L2NvZGU+YDtcbmV4cG9ydCBjb25zdCBjb250YWN0VXNMaW5rID0gKHRleHQgPSAnY29udGFjdCB1cycpID0+IGA8YSBocmVmPVwibWFpbHRvOiR7Y29udGFjdFVzRW1haWx9XCI+JHt0ZXh0fTwvYT5gO1xuZXhwb3J0IGNvbnN0IHJlcG9ydElzc3VlTGluayA9IChyZXBvc2l0b3J5OiBSZXBvc2l0b3J5LCB0ZW1wbGF0ZT86IFRlbXBsYXRlLCB0ZXh0ID0gJ2hlcmUnKSA9PlxuICBleHRlcm5hbExpbmsocmVwb3J0SXNzdWVVcmwocmVwb3NpdG9yeSwgdGVtcGxhdGUpLCB0ZXh0KTtcblxuaW50ZXJmYWNlIElHaXRsYWJSYXdQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgd2hlcmUgdGhlIGZpbGUgaXMgbG9jYXRlZC5cbiAgICovXG4gIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnk7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBvZiB0aGUgZmlsZSwgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeS5cbiAgICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBiYXNlIHVybCBvZiB0aGUgSGVzdGlhIEFQSS5cbiAgICovXG4gIGFwaVVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBicmFuY2gsIHVzaW5nIHRoZSBkZWZhdWx0IGJyYW5jaCBiYXNlZCBvbiB0aGUgZW52aXJvbm1lbnQuXG4gICAqL1xuICBicmFuY2g/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXJsIHRvIGZldGNoIHJhdyBjb250ZW50IGZyb20gR2l0bGFiLCBieXBhc3NpbmcgQ09SUyBpc3N1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBnaXRsYWJSYXdVcmwgPSAoeyByZXBvc2l0b3J5LCBwYXRoLCBhcGlVcmwsIGJyYW5jaCB9OiBJR2l0bGFiUmF3UGFyYW1zKSA9PlxuICBgJHthcGlVcmwgfHwgYmFzZUFwaVVybCgpfS9naXRsYWIvcmF3P3JlcG9zaXRvcnk9JHtyZXBvc2l0b3J5fSZicmFuY2g9JHtcbiAgICBicmFuY2ggfHwgZ2l0QnJhbmNoKClcbiAgfSZwYXRoPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhdGgpfWA7XG4iXX0=
|
|
@@ -54,7 +54,6 @@ const nodeKeyViews = {
|
|
|
54
54
|
[BlankNodesKey.products]: [View.table, View.chart, View.logs],
|
|
55
55
|
[BlankNodesKey.practices]: [View.table, View.timeline, View.logs]
|
|
56
56
|
};
|
|
57
|
-
// enable
|
|
58
57
|
const nodeKeyFilterTermTypes = {
|
|
59
58
|
[BlankNodesKey.emissions]: [TermTermType.emission]
|
|
60
59
|
};
|
|
@@ -105,7 +104,7 @@ export class CyclesNodesComponent {
|
|
|
105
104
|
this.viewIcon = viewIcon;
|
|
106
105
|
this.showView = computed(() => ({
|
|
107
106
|
[View.chart]: this.selectedNodeKey() === BlankNodesKey.emissions ? this.cycles().length > 1 : true,
|
|
108
|
-
[View.logs]: !this.isOriginal(),
|
|
107
|
+
[View.logs]: !this.isOriginal() && this.hasRecalculatedNodes(),
|
|
109
108
|
[View.table]: true,
|
|
110
109
|
[View.timeline]: this.enableTimeline()
|
|
111
110
|
}));
|
|
@@ -138,7 +137,8 @@ export class CyclesNodesComponent {
|
|
|
138
137
|
: null);
|
|
139
138
|
this.isOriginal = computed(() => this._dataState() === DataState.original);
|
|
140
139
|
this.originalValues = computed(() => (this.isOriginal() ? null : this.originalCycles()) || []);
|
|
141
|
-
this.
|
|
140
|
+
this.hasRecalculatedNodes = computed(() => this.cycles().some(cycle => !cycle.aggregated));
|
|
141
|
+
this.showSwitchToRecalculated = computed(() => this.isOriginal() && this.hasRecalculatedNodes());
|
|
142
142
|
this.timelineValues = computed(() => filterValuesTimeline(this.selectedCycle()?.[this.selectedNodeKey()] || []));
|
|
143
143
|
this.enableTimeline = computed(() => this.timelineValues().length > 0);
|
|
144
144
|
this.isNodeKeyAllowed = computed(() => nodeKeyViews[this.firstNodeKey()].includes(this.selectedView()));
|
|
@@ -155,10 +155,12 @@ export class CyclesNodesComponent {
|
|
|
155
155
|
this.filterTerm = signal('');
|
|
156
156
|
this.csvFilename = computed(() => `${this._nodeKeys().join('-')}.csv`);
|
|
157
157
|
effect(() => {
|
|
158
|
-
// make sure logs does not remain displayed
|
|
159
|
-
if (this.isOriginal() && this.selectedView() === View.logs) {
|
|
158
|
+
// make sure logs does not remain displayed
|
|
159
|
+
if ((this.isOriginal() && this.selectedView() === View.logs) || !this.views().includes(this.selectedView())) {
|
|
160
160
|
this.selectedView.set(View.table);
|
|
161
161
|
}
|
|
162
|
+
}, { allowSignalWrites: true });
|
|
163
|
+
effect(() => {
|
|
162
164
|
if (!this.selectedNodeKey() || !this._nodeKeys().includes(this.selectedNodeKey())) {
|
|
163
165
|
this.selectedNodeKey.set(this.firstNodeKey());
|
|
164
166
|
this.selectedView.set(View.table);
|
|
@@ -208,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
|
|
|
208
210
|
}], nodeKeyGroup: [{
|
|
209
211
|
type: Input
|
|
210
212
|
}] } });
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLW5vZGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jeWNsZXMvY3ljbGVzLW5vZGVzL2N5Y2xlcy1ub2Rlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1ub2Rlcy9jeWNsZXMtbm9kZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBSUwsUUFBUSxFQUlSLFlBQVksRUFJYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBYSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzRCxJQUFLLElBS0o7QUFMRCxXQUFLLElBQUk7SUFDUCw0QkFBb0IsQ0FBQTtJQUNwQiw0QkFBb0IsQ0FBQTtJQUNwQix3Q0FBZ0MsQ0FBQTtJQUNoQyxvQ0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTEksSUFBSSxLQUFKLElBQUksUUFLUjtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7QUFzQmxELE1BQU0sUUFBUSxHQUVWO0lBQ0YsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUN6QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZO0lBQ3pCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU07SUFDcEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVTtDQUM1QixDQUFDO0FBRUYsTUFBTSxZQUFZLEdBRWQ7SUFDRixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM5RCxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzNELENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDN0QsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztDQUNsRSxDQUFDO0FBRUYsU0FBUztBQUNULE1BQU0sc0JBQXNCLEdBRXhCO0lBQ0YsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0NBQ25ELENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBbUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFNdEgsTUFBTSxDQUFOLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1Qix5Q0FBbUIsQ0FBQTtJQUNuQix5REFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBSFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUc3QjtBQUlELE1BQU0sY0FBYyxHQUNsQixDQUFDLEtBQW9CLEVBQUUsRUFBRSxDQUN6QixDQUFDLElBQWtCLEVBQWlELEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLEdBQUcsSUFBSTtJQUNQLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsa0RBQWtEO0NBQ3pFLENBQUMsQ0FBQztBQUVMLE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBNEIsRUFBRSxLQUFvQixFQUFpQixFQUFFLENBQzVGLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRXZELE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxRQUE0QixFQUFFLE1BQXNCLEVBQUUsSUFBVyxFQUFpQixFQUFFLENBQ2xILE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDakIsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUNuQixDQUFFLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLElBQUksQ0FBQyxDQUMxRyxDQUNGLENBQUM7QUFRSixNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLElBQ0ksU0FBUyxDQUFDLEtBQWdCO1FBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFPRCxJQUNJLFFBQVEsQ0FBQyxLQUFzQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBSUQsSUFDSSxZQUFZLENBQUMsS0FBeUI7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQStGRCxZQUFvQixnQkFBb0M7UUFBcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQXBIOUMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFNeEMsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFDOUIsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxTQUEwQixDQUFDLENBQUM7UUFFckQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxFQUFxQixDQUFDLENBQUM7UUFNMUMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLFNBQWlCLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxTQUErQixDQUFDLENBQUM7UUFNeEQsWUFBTyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDcEMsVUFBVTtZQUNWLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNoRixDQUFDLENBQUM7UUFFTyxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osYUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN0QixhQUFRLEdBQUcsUUFBUSxDQUN6QixHQUFHLEVBQUUsQ0FDSCxDQUFDO1lBQ0MsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2xHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJO1lBQ2xCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUU7U0FDdkMsQ0FBZ0MsQ0FDcEMsQ0FBQztRQUNRLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLGlCQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxjQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQWUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEYsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFcEcsaUNBQWlDO1FBQ3ZCLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUN2QyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlGLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQ3pCLENBQUM7UUFDUSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUMvQixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzdGLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQ3hCLENBQUM7UUFFTSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQiwwQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RixrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLDJCQUFzQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLCtCQUEwQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RywwREFBMEQ7UUFDaEQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEIsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLO2dCQUN2QixJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUs7Z0JBQ3BCLFNBQVMsRUFBRSxTQUFTLENBQUMsWUFBWTthQUNsQztZQUNILENBQUMsQ0FBQyxJQUFJLENBQ1QsQ0FBQztRQUVNLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RSxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4Riw2QkFBd0IsR0FBRyxRQUFRLENBQzNDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQzFFLENBQUM7UUFFUSxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlHLG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFaEUscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVyRyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RixtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRixnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUV0RixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEYsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDN0IsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdEcsQ0FBQztRQUNRLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXBELFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFdkUsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRixlQUFVLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFHMUUsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILGdGQUFnRjtZQUNoRixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ25DO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUU7Z0JBQ2pGLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDbkM7UUFDSCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztRQUVGLE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUU7Z0JBQzFGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEQ7UUFDSCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlLENBV3JCLEVBQUUsT0FBTyxFQUFLO1FBQ2QsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQ3BDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFDYixPQUFPLEVBQ1AsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUNyQixlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQ25DLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FDeEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUNiLGFBQWEsQ0FBQyxTQUFTLEVBQ3ZCLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFDckIsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUNuQyxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQTZCLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRSxVQUFVO1lBQ1YsZUFBZSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUM7U0FDN0MsQ0FBQyxDQUFDLEVBQ0gsQ0FBQyxpQkFBaUIsQ0FBQyxFQUNuQixDQUFDLEtBQUssQ0FBQyxDQUNSLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQzdGLENBQUM7SUFDeEIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVTLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUNoRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFUyxZQUFZLENBQUMsSUFBWTtRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQXRNVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwrSUN0SGpDLDh6VUFxUEE7OzJGRC9IYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07eUdBSzNDLFNBQVM7c0JBRFosS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBUUYsWUFBWTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQge1xuICBJQ3ljbGVKU09OTEQsXG4gIElucHV0IGFzIEhlc3RpYUlucHV0LFxuICBQcm9kdWN0LFxuICBOb2RlVHlwZSxcbiAgQW5pbWFsLFxuICBFbWlzc2lvbixcbiAgUHJhY3RpY2UsXG4gIFRlcm1UZXJtVHlwZSxcbiAgRW1pc3Npb25NZXRob2RUaWVyLFxuICBUZXJtLFxuICBUcmFuc2Zvcm1hdGlvblxufSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgb3JkZXJCeSBmcm9tICdsb2Rhc2gub3JkZXJieSc7XG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscy9kaXN0L3Rlcm0nO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmltcG9ydCB7IEJsYW5rTm9kZXNLZXksIGJsYW5rTm9kZSwgZmlsdGVyQmxhbmtOb2RlLCBtZXRob2RUaWVyT3JkZXIgfSBmcm9tICcuLi8uLi9jb21tb24vbm9kZS11dGlscyc7XG5pbXBvcnQgeyBsb2dzS2V5IH0gZnJvbSAnLi4vY3ljbGVzLm1vZGVsJztcbmltcG9ydCB7IEhlTm9kZVN0b3JlU2VydmljZSB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdyb3VwTm9kZXNCeVRlcm0sIElHcm91cGVkS2V5cywgZ3JvdXBwZWRLZXlzIH0gZnJvbSAnLi4vLi4vY29tbW9uL25vZGUtdXRpbHMnO1xuaW1wb3J0IHsgYmFzZVVybCwgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuZW51bSBWaWV3IHtcbiAgdGFibGUgPSAnVGFibGUgdmlldycsXG4gIGNoYXJ0ID0gJ0NoYXJ0IHZpZXcnLFxuICB0aW1lbGluZSA9ICdPcGVyYXRpb25zIFRpbWVsaW5lJyxcbiAgbG9ncyA9ICdSZWNhbGN1bGF0aW9ucyBsb2dzJ1xufVxuXG5jb25zdCB0aW1lbGluZVRlcm1UeXBlID0gW1Rlcm1UZXJtVHlwZS5vcGVyYXRpb25dO1xuXG5pbnRlcmZhY2UgSUN5Y2xlQ29uZmlnIHtcbiAgbm9kZUtleTogQmxhbmtOb2Rlc0tleTtcbn1cblxuaW50ZXJmYWNlIElDeWNsZUNvbmZpZ0FuaW1hbCBleHRlbmRzIElDeWNsZUNvbmZpZyB7XG4gIG5vZGVLZXk6IEJsYW5rTm9kZXNLZXkuYW5pbWFscztcbn1cblxuaW50ZXJmYWNlIElDeWNsZUNvbmZpZ0VtaXNzaW9uIGV4dGVuZHMgSUN5Y2xlQ29uZmlnIHtcbiAgbm9kZUtleTogQmxhbmtOb2Rlc0tleS5lbWlzc2lvbnM7XG59XG5cbmludGVyZmFjZSBJQ3ljbGVDb25maWdJbnB1dCBleHRlbmRzIElDeWNsZUNvbmZpZyB7XG4gIG5vZGVLZXk6IEJsYW5rTm9kZXNLZXkuaW5wdXRzO1xufVxuXG5pbnRlcmZhY2UgSUN5Y2xlQ29uZmlnUHJhY3RpY2UgZXh0ZW5kcyBJQ3ljbGVDb25maWcge1xuICBub2RlS2V5OiBCbGFua05vZGVzS2V5LnByYWN0aWNlcztcbn1cblxuY29uc3Qgdmlld0ljb246IHtcbiAgW3ZpZXcgaW4gVmlld106IHN0cmluZztcbn0gPSB7XG4gIFtWaWV3LmNoYXJ0XTogJ2NoYXJ0LWJhcicsXG4gIFtWaWV3LmxvZ3NdOiAnY2FsY3VsYXRvcicsXG4gIFtWaWV3LnRhYmxlXTogJ2xpc3QnLFxuICBbVmlldy50aW1lbGluZV06ICdsaXN0LWFsdCdcbn07XG5cbmNvbnN0IG5vZGVLZXlWaWV3czoge1xuICBbdHlwZSBpbiBCbGFua05vZGVzS2V5XT86IFZpZXdbXTtcbn0gPSB7XG4gIFtCbGFua05vZGVzS2V5LmFuaW1hbHNdOiBbVmlldy50YWJsZV0sXG4gIFtCbGFua05vZGVzS2V5LmVtaXNzaW9uc106IFtWaWV3LnRhYmxlLCBWaWV3LmNoYXJ0LCBWaWV3LmxvZ3NdLFxuICBbQmxhbmtOb2Rlc0tleS5pbnB1dHNdOiBbVmlldy50YWJsZSwgVmlldy5jaGFydCwgVmlldy5sb2dzXSxcbiAgW0JsYW5rTm9kZXNLZXkucHJvZHVjdHNdOiBbVmlldy50YWJsZSwgVmlldy5jaGFydCwgVmlldy5sb2dzXSxcbiAgW0JsYW5rTm9kZXNLZXkucHJhY3RpY2VzXTogW1ZpZXcudGFibGUsIFZpZXcudGltZWxpbmUsIFZpZXcubG9nc11cbn07XG5cbi8vIGVuYWJsZVxuY29uc3Qgbm9kZUtleUZpbHRlclRlcm1UeXBlczoge1xuICBbdHlwZSBpbiBCbGFua05vZGVzS2V5XT86IFRlcm1UZXJtVHlwZVtdO1xufSA9IHtcbiAgW0JsYW5rTm9kZXNLZXkuZW1pc3Npb25zXTogW1Rlcm1UZXJtVHlwZS5lbWlzc2lvbl1cbn07XG5cbmNvbnN0IGZpbHRlclZhbHVlc1RpbWVsaW5lID0gKHZhbHVlczogYmxhbmtOb2RlW10pID0+IHZhbHVlcy5maWx0ZXIocCA9PiB0aW1lbGluZVRlcm1UeXBlLmluY2x1ZGVzKHAudGVybT8udGVybVR5cGUpKTtcblxudHlwZSBncm91cGVkRW1pc3Npb25zID0ge1xuICBbbWV0aG9kVGllciBpbiBFbWlzc2lvbk1ldGhvZFRpZXJdOiBJR3JvdXBlZEtleXM8RW1pc3Npb24+W107XG59O1xuXG5leHBvcnQgZW51bSBDeWNsZU5vZGVzS2V5R3JvdXAge1xuICBhbmltYWxzID0gJ2FuaW1hbHMnLFxuICB0cmFuc2Zvcm1hdGlvbnMgPSAndHJhbnNmb3JtYXRpb25zJ1xufVxuXG50eXBlIGdyb3VwZWROb2RlID0gQW5pbWFsIHwgVHJhbnNmb3JtYXRpb247XG5cbmNvbnN0IGN5Y2xlR3JvdXBOb2RlID1cbiAgKGN5Y2xlPzogSUN5Y2xlSlNPTkxEKSA9PlxuICAobm9kZT86IGdyb3VwZWROb2RlKTogZ3JvdXBlZE5vZGUgJiB7IG5hbWU6IHN0cmluZzsgJ0BpZCc6IHN0cmluZyB9ID0+ICh7XG4gICAgLi4ubm9kZSxcbiAgICBuYW1lOiBjeWNsZT8ubmFtZSxcbiAgICAnQGlkJzogY3ljbGU/LlsnQGlkJ10gLy8gc2V0IEBpZCBzbyB3ZSBjYW4gZmV0Y2ggdGhlIGxvZ3MgZnJvbSB0aGUgQ3ljbGVcbiAgfSk7XG5cbmNvbnN0IGN5Y2xlR3JvdXBOb2RlcyA9IChncm91cEtleTogQ3ljbGVOb2Rlc0tleUdyb3VwLCBjeWNsZT86IElDeWNsZUpTT05MRCk6IGdyb3VwZWROb2RlW10gPT5cbiAgKGN5Y2xlPy5bZ3JvdXBLZXldIHx8IFtdKS5tYXAoY3ljbGVHcm91cE5vZGUoY3ljbGUpKTtcblxuY29uc3QgZmlsdGVyR3JvdXBOb2Rlc0J5VGVybSA9IChncm91cEtleTogQ3ljbGVOb2Rlc0tleUdyb3VwLCBjeWNsZXM6IElDeWNsZUpTT05MRFtdLCB0ZXJtPzogVGVybSk6IGdyb3VwZWROb2RlW10gPT5cbiAgY3ljbGVzLm1hcChjeWNsZSA9PlxuICAgIGN5Y2xlR3JvdXBOb2RlKGN5Y2xlKShcbiAgICAgICgoY3ljbGU/Lltncm91cEtleV0gYXMgZ3JvdXBlZE5vZGVbXSkgfHwgW10pLmZpbHRlcihCb29sZWFuKS5maW5kKG5vZGUgPT4gbm9kZS50ZXJtPy5uYW1lID09PSB0ZXJtPy5uYW1lKVxuICAgIClcbiAgKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGUtY3ljbGVzLW5vZGVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2N5Y2xlcy1ub2Rlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2N5Y2xlcy1ub2Rlcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDeWNsZXNOb2Rlc0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBfZGF0YVN0YXRlID0gc2lnbmFsKERhdGFTdGF0ZS5vcmlnaW5hbCk7XG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhU3RhdGUodmFsdWU6IERhdGFTdGF0ZSkge1xuICAgIHRoaXMuX2RhdGFTdGF0ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIEJsYW5rTm9kZXNLZXkgPSBCbGFua05vZGVzS2V5O1xuICBwcm90ZWN0ZWQgZmlyc3ROb2RlS2V5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fbm9kZUtleXMoKT8uWzBdKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkTm9kZUtleSA9IHNpZ25hbCh1bmRlZmluZWQgYXMgQmxhbmtOb2Rlc0tleSk7XG5cbiAgcHJvdGVjdGVkIF9ub2RlS2V5cyA9IHNpZ25hbChbXSBhcyBCbGFua05vZGVzS2V5W10pO1xuICBASW5wdXQoKVxuICBzZXQgbm9kZUtleXModmFsdWU6IEJsYW5rTm9kZXNLZXlbXSkge1xuICAgIHRoaXMuX25vZGVLZXlzLnNldCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRHcm91cFRlcm0gPSBzaWduYWwodW5kZWZpbmVkIGFzIFRlcm0pO1xuICBwcm90ZWN0ZWQgX25vZGVLZXlHcm91cCA9IHNpZ25hbCh1bmRlZmluZWQgYXMgQ3ljbGVOb2Rlc0tleUdyb3VwKTtcbiAgQElucHV0KClcbiAgc2V0IG5vZGVLZXlHcm91cCh2YWx1ZTogQ3ljbGVOb2Rlc0tleUdyb3VwKSB7XG4gICAgdGhpcy5fbm9kZUtleUdyb3VwLnNldCh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmFzZVVybCA9IGJhc2VVcmwoKTtcbiAgcHJvdGVjdGVkIHByb3BlcnR5VmFsdWUgPSBwcm9wZXJ0eVZhbHVlO1xuICBwcm90ZWN0ZWQgZGVmYXVsdExhYmVsID0gZGVmYXVsdExhYmVsO1xuICBwcm90ZWN0ZWQgc2hvd0Rvd25sb2FkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGhlYWRlcktleXMgPSBjb21wdXRlZCgoKSA9PiBbXG4gICAgJ2N5Y2xlLmlkJyxcbiAgICAnY3ljbGUuQGlkJyxcbiAgICAndHJhbnNmb3JtYXRpb24uaWQnLFxuICAgICd0cmFuc2Zvcm1hdGlvbi5AaWQnLFxuICAgIC4uLnRoaXMuX25vZGVLZXlzKCkuZmxhdE1hcChrZXkgPT4gW2BjeWNsZS4ke2tleX0uYCwgYHRyYW5zZm9ybWF0aW9uLiR7a2V5fS5gXSlcbiAgXSk7XG5cbiAgcHJvdGVjdGVkIFZpZXcgPSBWaWV3O1xuICBwcm90ZWN0ZWQgdmlld0ljb24gPSB2aWV3SWNvbjtcbiAgcHJpdmF0ZSBzaG93VmlldyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICAoe1xuICAgICAgICBbVmlldy5jaGFydF06IHRoaXMuc2VsZWN0ZWROb2RlS2V5KCkgPT09IEJsYW5rTm9kZXNLZXkuZW1pc3Npb25zID8gdGhpcy5jeWNsZXMoKS5sZW5ndGggPiAxIDogdHJ1ZSxcbiAgICAgICAgW1ZpZXcubG9nc106ICF0aGlzLmlzT3JpZ2luYWwoKSxcbiAgICAgICAgW1ZpZXcudGFibGVdOiB0cnVlLFxuICAgICAgICBbVmlldy50aW1lbGluZV06IHRoaXMuZW5hYmxlVGltZWxpbmUoKVxuICAgICAgfSkgYXMgeyBbdmlldyBpbiBWaWV3XTogYm9vbGVhbiB9XG4gICk7XG4gIHByb3RlY3RlZCB2aWV3cyA9IGNvbXB1dGVkKCgpID0+IG5vZGVLZXlWaWV3c1t0aGlzLnNlbGVjdGVkTm9kZUtleSgpXT8uZmlsdGVyKHZpZXcgPT4gdGhpcy5zaG93VmlldygpW3ZpZXddKSA/PyBbXSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFZpZXcgPSBzaWduYWwoVmlldy50YWJsZSk7XG5cbiAgcHJpdmF0ZSBfYWxsTm9kZXMgPSB0b1NpZ25hbCh0aGlzLm5vZGVTdG9yZVNlcnZpY2UuZmluZCQ8SUN5Y2xlSlNPTkxEPihOb2RlVHlwZS5DeWNsZSkpO1xuICBwcml2YXRlIG9yaWdpbmFsTm9kZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9hbGxOb2RlcygpPy5tYXAoZGF0YSA9PiBkYXRhW0RhdGFTdGF0ZS5vcmlnaW5hbF0pIHx8IFtdKTtcbiAgcHJpdmF0ZSBjdXJyZW50Tm9kZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9hbGxOb2RlcygpPy5tYXAoZGF0YSA9PiBkYXRhW3RoaXMuX2RhdGFTdGF0ZSgpXSkgfHwgW10pO1xuXG4gIC8vIGNhbiBiZSBDeWNsZSBvciBUcmFuc2Zvcm1hdGlvblxuICBwcm90ZWN0ZWQgb3JpZ2luYWxDeWNsZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuX25vZGVLZXlHcm91cCgpXG4gICAgICA/IGZpbHRlckdyb3VwTm9kZXNCeVRlcm0odGhpcy5fbm9kZUtleUdyb3VwKCksIHRoaXMub3JpZ2luYWxOb2RlcygpLCB0aGlzLnNlbGVjdGVkR3JvdXBUZXJtKCkpXG4gICAgICA6IHRoaXMub3JpZ2luYWxOb2RlcygpXG4gICk7XG4gIHByb3RlY3RlZCBjeWNsZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuX25vZGVLZXlHcm91cCgpXG4gICAgICA/IGZpbHRlckdyb3VwTm9kZXNCeVRlcm0odGhpcy5fbm9kZUtleUdyb3VwKCksIHRoaXMuY3VycmVudE5vZGVzKCksIHRoaXMuc2VsZWN0ZWRHcm91cFRlcm0oKSlcbiAgICAgIDogdGhpcy5jdXJyZW50Tm9kZXMoKVxuICApO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSBvZ2lyaW5hbFNlbGVjdGVkQ3ljbGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yaWdpbmFsQ3ljbGVzKCk/Llt0aGlzLnNlbGVjdGVkSW5kZXgoKV0pO1xuICBwcml2YXRlIHNlbGVjdGVkQ3ljbGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN5Y2xlcygpPy5bdGhpcy5zZWxlY3RlZEluZGV4KCldKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkTG9nc0tleSA9IGNvbXB1dGVkKCgpID0+IGxvZ3NLZXkodGhpcy5zZWxlY3RlZEN5Y2xlKCkpKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3JpZ2luYWxWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9naXJpbmFsU2VsZWN0ZWRDeWNsZSgpPy5bdGhpcy5zZWxlY3RlZE5vZGVLZXkoKV0gfHwgW10pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRSZWNhbGN1bGF0ZWRWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdGVkQ3ljbGUoKT8uW3RoaXMuc2VsZWN0ZWROb2RlS2V5KCldIHx8IFtdKTtcbiAgLy8gVE9ETzogaGFuZGxlIHRyYW5zZm9ybWF0aW9uIGFuZCBub24taW5kZXhlZCBub2RlcyBvbiBDRVxuICBwcm90ZWN0ZWQgc2VsZWN0ZWROb2RlID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLnNlbGVjdGVkQ3ljbGUoKVxuICAgICAgPyB7XG4gICAgICAgICAgLi4udGhpcy5zZWxlY3RlZEN5Y2xlKCksXG4gICAgICAgICAgJ0B0eXBlJzogTm9kZVR5cGUuQ3ljbGUsXG4gICAgICAgICAgdHlwZTogTm9kZVR5cGUuQ3ljbGUsXG4gICAgICAgICAgZGF0YVN0YXRlOiBEYXRhU3RhdGUucmVjYWxjdWxhdGVkXG4gICAgICAgIH1cbiAgICAgIDogbnVsbFxuICApO1xuXG4gIHByaXZhdGUgaXNPcmlnaW5hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2RhdGFTdGF0ZSgpID09PSBEYXRhU3RhdGUub3JpZ2luYWwpO1xuICBwcml2YXRlIG9yaWdpbmFsVmFsdWVzID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaXNPcmlnaW5hbCgpID8gbnVsbCA6IHRoaXMub3JpZ2luYWxDeWNsZXMoKSkgfHwgW10pO1xuXG4gIHByb3RlY3RlZCBzaG93U3dpdGNoVG9SZWNhbGN1bGF0ZWQgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLmlzT3JpZ2luYWwoKSAmJiB0aGlzLmN5Y2xlcygpLnNvbWUoY3ljbGUgPT4gIWN5Y2xlLmFnZ3JlZ2F0ZWQpXG4gICk7XG5cbiAgcHJvdGVjdGVkIHRpbWVsaW5lVmFsdWVzID0gY29tcHV0ZWQoKCkgPT4gZmlsdGVyVmFsdWVzVGltZWxpbmUodGhpcy5zZWxlY3RlZEN5Y2xlKCk/Llt0aGlzLnNlbGVjdGVkTm9kZUtleSgpXSB8fCBbXSkpO1xuICBwcml2YXRlIGVuYWJsZVRpbWVsaW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aW1lbGluZVZhbHVlcygpLmxlbmd0aCA+IDApO1xuXG4gIHByb3RlY3RlZCBpc05vZGVLZXlBbGxvd2VkID0gY29tcHV0ZWQoKCkgPT4gbm9kZUtleVZpZXdzW3RoaXMuZmlyc3ROb2RlS2V5KCldLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRWaWV3KCkpKTtcblxuICBwcml2YXRlIGdyb3VwZWROb2RlcyA9IGNvbXB1dGVkKCgpID0+IGN5Y2xlR3JvdXBOb2Rlcyh0aGlzLl9ub2RlS2V5R3JvdXAoKSwgdGhpcy5vcmlnaW5hbE5vZGVzKCk/LlswXSkpO1xuICBwcm90ZWN0ZWQgZ3JvdXBOb2RlVGVybXMgPSBjb21wdXRlZCgoKSA9PiB1bmlxdWUodGhpcy5ncm91cGVkTm9kZXMoKS5tYXAoKHsgdGVybSB9KSA9PiB0ZXJtKSkpO1xuICBwcm90ZWN0ZWQgaXNHcm91cE5vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9ub2RlS2V5R3JvdXAoKSAmJiB0aGlzLmdyb3VwZWROb2RlcygpPy5sZW5ndGggPiAwKTtcblxuICBwcm90ZWN0ZWQgaXNFbWlzc2lvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VsZWN0ZWROb2RlS2V5KCkgPT09IEJsYW5rTm9kZXNLZXkuZW1pc3Npb25zKTtcblxuICBwcm90ZWN0ZWQgZGF0YSA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5pc0VtaXNzaW9uKClcbiAgICAgID8gdGhpcy5ncm91cEVtaXNzaW9ucygpXG4gICAgICA6IE9iamVjdC5mcm9tRW50cmllcyh0aGlzLl9ub2RlS2V5cygpLm1hcChub2RlS2V5ID0+IFtub2RlS2V5LCB0aGlzLmdyb3VwTm9kZXNCeUtleSh7IG5vZGVLZXkgfSldKSlcbiAgKTtcbiAgcHJvdGVjdGVkIGRhdGFLZXlzID0gY29tcHV0ZWQoKCkgPT4gT2JqZWN0LmtleXModGhpcy5kYXRhKCkpKTtcblxuICBwcm90ZWN0ZWQgaGFzRGF0YSA9IGNvbXB1dGVkKCgpID0+IE9iamVjdC52YWx1ZXModGhpcy5kYXRhKCkpLmZsYXQoKS5sZW5ndGggPiAwKTtcblxuICBwcm90ZWN0ZWQgZmlsdGVyVGVybVR5cGVzID0gY29tcHV0ZWQoKCkgPT4gbm9kZUtleUZpbHRlclRlcm1UeXBlc1t0aGlzLnNlbGVjdGVkTm9kZUtleSgpXSk7XG4gIHByb3RlY3RlZCBmaWx0ZXJUZXJtID0gc2lnbmFsKCcnKTtcblxuICBwcm90ZWN0ZWQgY3N2RmlsZW5hbWUgPSBjb21wdXRlZCgoKSA9PiBgJHt0aGlzLl9ub2RlS2V5cygpLmpvaW4oJy0nKX0uY3N2YCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub2RlU3RvcmVTZXJ2aWNlOiBIZU5vZGVTdG9yZVNlcnZpY2UpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIG1ha2Ugc3VyZSBsb2dzIGRvZXMgbm90IHJlbWFpbiBkaXNwbGF5ZWQgd2hlbiBzd2l0Y2hpbmcgYmFjayB0byBvcmlnaW5hbCB2aWV3XG4gICAgICAgIGlmICh0aGlzLmlzT3JpZ2luYWwoKSAmJiB0aGlzLnNlbGVjdGVkVmlldygpID09PSBWaWV3LmxvZ3MpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmlldy5zZXQoVmlldy50YWJsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkTm9kZUtleSgpIHx8ICF0aGlzLl9ub2RlS2V5cygpLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWROb2RlS2V5KCkpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVLZXkuc2V0KHRoaXMuZmlyc3ROb2RlS2V5KCkpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3LnNldChWaWV3LnRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZEdyb3VwVGVybSgpIHx8ICF0aGlzLmdyb3VwTm9kZVRlcm1zKCkuaW5jbHVkZXModGhpcy5zZWxlY3RlZEdyb3VwVGVybSgpKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cFRlcm0uc2V0KHRoaXMuZ3JvdXBOb2RlVGVybXMoKVswXSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBncm91cE5vZGVzQnlLZXk8XG4gICAgVCBleHRlbmRzIElDeWNsZUNvbmZpZyxcbiAgICBSID0gVCBleHRlbmRzIElDeWNsZUNvbmZpZ0FuaW1hbFxuICAgICAgPyBBbmltYWxcbiAgICAgIDogVCBleHRlbmRzIElDeWNsZUNvbmZpZ0VtaXNzaW9uXG4gICAgICA/IEVtaXNzaW9uXG4gICAgICA6IFQgZXh0ZW5kcyBJQ3ljbGVDb25maWdJbnB1dFxuICAgICAgPyBIZXN0aWFJbnB1dFxuICAgICAgOiBUIGV4dGVuZHMgSUN5Y2xlQ29uZmlnUHJhY3RpY2VcbiAgICAgID8gUHJhY3RpY2VcbiAgICAgIDogUHJvZHVjdFxuICA+KHsgbm9kZUtleSB9OiBUKTogSUdyb3VwZWRLZXlzPFI+W10ge1xuICAgIGNvbnN0IG5vZGVzUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCB8IGdyb3VwZWROb2RlLCBSPihcbiAgICAgIHRoaXMuY3ljbGVzKCksXG4gICAgICBub2RlS2V5LFxuICAgICAgdGhpcy5vcmlnaW5hbFZhbHVlcygpLFxuICAgICAgZmlsdGVyQmxhbmtOb2RlKHRoaXMuZmlsdGVyVGVybSgpKVxuICAgICk7XG4gICAgcmV0dXJuIG9yZGVyQnkoZ3JvdXBwZWRLZXlzKG5vZGVzUGVyQ3ljbGUpLCBbJ2tleSddLCBbJ2FzYyddKTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBFbWlzc2lvbnMoKSB7XG4gICAgY29uc3QgZW1pc3Npb25zUGVyQ3ljbGUgPSBncm91cE5vZGVzQnlUZXJtPElDeWNsZUpTT05MRCB8IGdyb3VwZWROb2RlLCBFbWlzc2lvbj4oXG4gICAgICB0aGlzLmN5Y2xlcygpLFxuICAgICAgQmxhbmtOb2Rlc0tleS5lbWlzc2lvbnMsXG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWVzKCksXG4gICAgICBmaWx0ZXJCbGFua05vZGUodGhpcy5maWx0ZXJUZXJtKCkpXG4gICAgKTtcbiAgICBjb25zdCB2YWx1ZXM6IElHcm91cGVkS2V5czxFbWlzc2lvbj5bXSA9IG9yZGVyQnkoZ3JvdXBwZWRLZXlzKGVtaXNzaW9uc1BlckN5Y2xlKSwgWydrZXknXSwgWydhc2MnXSk7XG4gICAgY29uc3QgbWV0aG9kVGllcnMgPSBvcmRlckJ5KFxuICAgICAgdW5pcXVlKHZhbHVlcy5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUubWV0aG9kVGllcikpLm1hcChtZXRob2RUaWVyID0+ICh7XG4gICAgICAgIG1ldGhvZFRpZXIsXG4gICAgICAgIG1ldGhvZFRpZXJPcmRlcjogbWV0aG9kVGllck9yZGVyKG1ldGhvZFRpZXIpXG4gICAgICB9KSksXG4gICAgICBbJ21ldGhvZFRpZXJPcmRlciddLFxuICAgICAgWydhc2MnXVxuICAgICk7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIG1ldGhvZFRpZXJzLm1hcCgoeyBtZXRob2RUaWVyIH0pID0+IFttZXRob2RUaWVyLCB2YWx1ZXMuZmlsdGVyKCh7IHZhbHVlIH0pID0+IHZhbHVlLm1ldGhvZFRpZXIgPT09IG1ldGhvZFRpZXIpXSlcbiAgICApIGFzIGdyb3VwZWRFbWlzc2lvbnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tCeUlkKF9pbmRleDogbnVtYmVyLCBpdGVtOiBJQ3ljbGVKU09OTEQpIHtcbiAgICByZXR1cm4gaXRlbVsnQGlkJ107XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlUG9wb3Zlcihwb3BvdmVyOiBhbnksIGNvbnRleHQ6IGFueSkge1xuICAgIHJldHVybiBwb3BvdmVyLmlzT3BlbigpID8gcG9wb3Zlci5jbG9zZSgpIDogcG9wb3Zlci5vcGVuKGNvbnRleHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpbHRlckJ5VGVybSh0ZXJtOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlclRlcm0uc2V0KHRlcm0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEluZGV4KHsgdGFyZ2V0OiB7IHZhbHVlIH0gfSkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleC5zZXQoK3ZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYnMgaXMtbWItMVwiICpuZ0lmPVwiaXNHcm91cE5vZGUoKVwiPlxuICA8dWw+XG4gICAgPGxpICpuZ0Zvcj1cImxldCB0ZXJtIG9mIGdyb3VwTm9kZVRlcm1zKClcIiBbY2xhc3MuaXMtYWN0aXZlXT1cInNlbGVjdGVkR3JvdXBUZXJtKCkgPT09IHRlcm1cIj5cbiAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZEdyb3VwVGVybS5zZXQodGVybSlcIj57eyB0ZXJtLm5hbWUgfX08L2E+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29sdW1ucyBpcy12YXJpYWJsZSBpcy1hbGlnbi1pdGVtcy1jZW50ZXIgaXMtMiBpcy1tLTBcIiAqbmdJZj1cImhhc0RhdGEoKVwiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVmlldygpID09PSBWaWV3LnRhYmxlXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsIGlzLWdob3N0XCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dEb3dubG9hZCA9IHRydWVcIlxuICAgICAgICBuZ2JUb29sdGlwPVwiRG93bmxvYWQgYXMgQ1NWXCJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCI+XG4gICAgICAgIDxmYS1pY29uIGljb249XCJkb3dubG9hZFwiIHNpemU9XCJsZ1wiPjwvZmEtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbiBpcy1uYXJyb3dcIiAqbmdJZj1cInNlbGVjdGVkVmlldygpID09PSBWaWV3LnRhYmxlXCI+XG4gICAgPGhlLXNlYXJjaC1leHRlbmRcbiAgICAgIGNsYXNzPVwiaXMtc2Vjb25kYXJ5IGlzLXNtYWxsXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiRmlsdGVyIHRlcm1zIGJ5IG5hbWVcIlxuICAgICAgKHNlYXJjaCk9XCJmaWx0ZXJCeVRlcm0oJGV2ZW50KVwiPjwvaGUtc2VhcmNoLWV4dGVuZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4gaXMtbmFycm93XCIgKm5nSWY9XCJ2aWV3cygpPy5sZW5ndGggPiAxXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250cm9sXCIgKm5nRm9yPVwibGV0IHZpZXcgb2Ygdmlld3MoKVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsXCIgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkVmlldygpID09PSB2aWV3XCIgKGNsaWNrKT1cInNlbGVjdGVkVmlldy5zZXQodmlldylcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cInZpZXdJY29uW3ZpZXddXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9mYS1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImlzLWhpZGRlbi1tb2JpbGVcIj57eyB2aWV3IH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNOb2RlS2V5QWxsb3dlZCgpXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInNlbGVjdGVkVmlldygpXCI+XG4gICAgPGRpdiBjbGFzcz1cImlzLXB4LTMgaXMtcGItM1wiICpuZ1N3aXRjaENhc2U9XCJWaWV3LnRhYmxlXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRGF0YSgpOyBlbHNlIGVtcHR5VGFibGVcIj5cbiAgICAgICAgPGhlLWRhdGEtdGFibGUgY2xhc3M9XCJtYi0xIGlzLXNtYWxsXCIgW3NtYWxsXT1cInRydWVcIiBtYXhIZWlnaHQ9XCIzMjBcIj5cbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBpcy1mdWxsd2lkdGggaXMtbmFycm93IGlzLXN0cmlwZWRcIj5cbiAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiaGFzLXRleHQtd2VpZ2h0LWJvbGRcIiAqbmdJZj1cImRhdGFLZXlzKCkubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG9cIj48L3RoPlxuICAgICAgICAgICAgICAgIDx0aCBbY2xhc3MuaXMtaGlkZGVuXT1cImlzR3JvdXBOb2RlKClcIj48L3RoPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF0YUtleSBvZiBkYXRhS2V5cygpOyBsZXQgZGF0YUtleUxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YSgpW2RhdGFLZXldPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRoIFthdHRyLmNvbHNwYW5dPVwiZGF0YSgpW2RhdGFLZXldLmxlbmd0aFwiIFtjbGFzcy5oYXMtYm9yZGVyLXJpZ2h0XT1cIiFkYXRhS2V5TGFzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGRhdGFLZXkgfCBrZXlUb0xhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiaGFzLXRleHQtd2VpZ2h0LXNlbWlib2xkXCI+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwid2lkdGgtYXV0byBoYXMtYm9yZGVyLXJpZ2h0XCI+PC90aD5cbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJoYXMtYm9yZGVyLXJpZ2h0XCIgW2NsYXNzLmlzLWhpZGRlbl09XCJpc0dyb3VwTm9kZSgpXCI+PC90aD5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGFLZXkgb2YgZGF0YUtleXMoKTsgbGV0IGRhdGFLZXlMYXN0ID0gbGFzdFwiPlxuICAgICAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBub2RlIG9mIGRhdGEoKVtkYXRhS2V5XTsgbGV0IG5vZGVMYXN0ID0gbGFzdFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIm5vZGUudmFsdWUudGVybS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhhcy1ib3JkZXItcmlnaHRdPVwiZGF0YUtleXMoKS5sZW5ndGggPiAxICYmICFkYXRhS2V5TGFzdCAmJiBub2RlTGFzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8aGUtbm9kZS1saW5rIFtub2RlXT1cIm5vZGUudmFsdWUudGVybVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwibm9kZS52YWx1ZS50ZXJtLm5hbWUgfCBlbGxpcHNpczogMzAgfCBjb21wb3VuZFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9oZS1ub2RlLWxpbms+XG4gICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJpcy1pdGFsaWMgaGFzLXRleHQtd2VpZ2h0LXNlbWlib2xkXCI+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwid2lkdGgtYXV0byBoYXMtYm9yZGVyLXJpZ2h0XCI+PC90aD5cbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJoYXMtYm9yZGVyLXJpZ2h0XCIgW2NsYXNzLmlzLWhpZGRlbl09XCJpc0dyb3VwTm9kZSgpXCI+XG4gICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJiYXNlVXJsICsgJy9zY2hlbWEvQ3ljbGUjZnVuY3Rpb25hbFVuaXQnXCIgdGFyZ2V0PVwiX2JsYW5rXCI+RnVuY3Rpb25hbCB1bml0PC9hPlxuICAgICAgICAgICAgICAgIDwvdGg+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhS2V5IG9mIGRhdGFLZXlzKCk7IGxldCBkYXRhS2V5TGFzdCA9IGxhc3RcIj5cbiAgICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBkYXRhKClbZGF0YUtleV07IGxldCBub2RlTGFzdCA9IGxhc3RcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJub2RlLnZhbHVlLnRlcm0udW5pdHNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGFzLWJvcmRlci1yaWdodF09XCJkYXRhS2V5cygpLmxlbmd0aCA+IDEgJiYgIWRhdGFLZXlMYXN0ICYmIG5vZGVMYXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwibm9kZS52YWx1ZS50ZXJtLnVuaXRzIHwgY29tcG91bmRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxoZS10ZXJtcy11bml0cy1kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaXMtaW5saW5lLWJsb2NrIGlzLW1sLTJcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0ZXJtXT1cIm5vZGUudmFsdWUudGVybVwiPjwvaGUtdGVybXMtdW5pdHMtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY3ljbGUgb2YgY3ljbGVzKCk7IHRyYWNrQnk6IHRyYWNrQnlJZDsgbGV0IGN5Y2xlSW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndpZHRoLWF1dG8gaGFzLWJvcmRlci1yaWdodFwiIFthdHRyLnRpdGxlXT1cImRlZmF1bHRMYWJlbChjeWNsZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJjeWNsZS50ZXJtIHx8IGN5Y2xlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY3ljbGVJbmRleCArIDEgfX0uIHt7IGRlZmF1bHRMYWJlbChjeWNsZSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImhhcy1ib3JkZXItcmlnaHRcIiBbY2xhc3MuaXMtaGlkZGVuXT1cImlzR3JvdXBOb2RlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGhlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZSBbY3ljbGVdPVwiY3ljbGVzKClbMF1cIj48L2hlLWN5Y2xlcy1mdW5jdGlvbmFsLXVuaXQtbWVhc3VyZT5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGFLZXkgb2YgZGF0YUtleXMoKTsgbGV0IGRhdGFLZXlMYXN0ID0gbGFzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlzLW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG5vZGUgb2YgZGF0YSgpW2RhdGFLZXldOyBsZXQgbm9kZUxhc3QgPSBsYXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGFzLWJvcmRlci1yaWdodF09XCJkYXRhS2V5cygpLmxlbmd0aCA+IDEgJiYgIWRhdGFLZXlMYXN0ICYmIG5vZGVMYXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibm9kZS52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXTsgZWxzZSBlbXB0eVZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJpZ2dlci1wb3BvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ2JQb3BvdmVyXT1cImRldGFpbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3ZlckNsYXNzPVwiaXMtbmFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJzPVwibWFudWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICNwPVwibmdiUG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVQb3BvdmVyKHAsIHsgZGF0YTogbm9kZS52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXSwgY3ljbGU6IGN5Y2xlLCBrZXk6IGRhdGFLZXkgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcG9pbnRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVZhbHVlKG5vZGUudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0udmFsdWUsIG5vZGUudmFsdWUudGVybVsnQGlkJ10pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHByZWNpc2lvbjogM1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkZWZhdWx0OiAnLSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoZS1ibGFuay1ub2RlLXN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhU3RhdGVdPVwiX2RhdGFTdGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwibm9kZS52YWx1ZS52YWx1ZXNbY3ljbGVbJ0BpZCddXS5ub2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PVwidmFsdWVcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvaGUtZGF0YS10YWJsZT5cblxuICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZS1ub3RpY2UgW2RhdGFTdGF0ZV09XCJfZGF0YVN0YXRlKClcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJWaWV3LmNoYXJ0XCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaXJzdE5vZGVLZXkoKVwiPlxuICAgICAgICA8aGUtY3ljbGVzLXJlc3VsdCAqbmdTd2l0Y2hDYXNlPVwiQmxhbmtOb2Rlc0tleS5pbnB1dHNcIiBbY3ljbGVzXT1cImN5Y2xlcygpXCI+PC9oZS1jeWNsZXMtcmVzdWx0PlxuICAgICAgICA8aGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydFxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJCbGFua05vZGVzS2V5LmVtaXNzaW9uc1wiXG4gICAgICAgICAgW2N5Y2xlc109XCJjeWNsZXMoKVwiPjwvaGUtY3ljbGVzLWVtaXNzaW9ucy1jaGFydD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiVmlldy50aW1lbGluZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdEN5Y2xlXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpcy1weC0zIGlzLXBiLTNcIj5cbiAgICAgICAgPGhlLWN5Y2xlcy1ub2Rlcy10aW1lbGluZVxuICAgICAgICAgIFtyZWNhbGN1bGF0ZWRWYWx1ZXNdPVwidGltZWxpbmVWYWx1ZXMoKVwiXG4gICAgICAgICAgW2RhdGFTdGF0ZV09XCJfZGF0YVN0YXRlKClcIj48L2hlLWN5Y2xlcy1ub2Rlcy10aW1lbGluZT5cblxuICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZS1ub3RpY2UgW2RhdGFTdGF0ZV09XCJfZGF0YVN0YXRlKClcIj48L2hlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJWaWV3LmxvZ3NcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RDeWNsZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGFicyBpcy1tYi0yXCIgKm5nSWY9XCJfbm9kZUtleXMoKS5sZW5ndGggPiAxXCI+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG5vZGVLZXkgb2YgX25vZGVLZXlzKClcIiBbY2xhc3MuaXMtYWN0aXZlXT1cInNlbGVjdGVkTm9kZUtleSgpID09PSBub2RlS2V5XCI+XG4gICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWROb2RlS2V5LnNldChub2RlS2V5KVwiPnt7IG5vZGVLZXkgfCBrZXlUb0xhYmVsIH19PC9hPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGhlLW5vZGUtbG9ncy1tb2RlbHNcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZE5vZGUoKVwiXG4gICAgICAgIFtub2RlXT1cInNlbGVjdGVkTm9kZSgpXCJcbiAgICAgICAgW25vZGVLZXldPVwic2VsZWN0ZWROb2RlS2V5KClcIlxuICAgICAgICBbbG9nc0tleV09XCJzZWxlY3RlZExvZ3NLZXkoKVwiXG4gICAgICAgIFtvcmlnaW5hbFZhbHVlc109XCJzZWxlY3RlZE9yaWdpbmFsVmFsdWVzKClcIlxuICAgICAgICBbcmVjYWxjdWxhdGVkVmFsdWVzXT1cInNlbGVjdGVkUmVjYWxjdWxhdGVkVmFsdWVzKClcIlxuICAgICAgICBbZmlsdGVyVGVybVR5cGVzXT1cImZpbHRlclRlcm1UeXBlcygpXCI+PC9oZS1ub2RlLWxvZ3MtbW9kZWxzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48aGUtbm9kZS1jc3YtZXhwb3J0LWNvbmZpcm1cbiAgKm5nSWY9XCJzaG93RG93bmxvYWRcIlxuICBbbm9kZXNdPVwiY3ljbGVzKClcIlxuICBbZmlsZW5hbWVdPVwiY3N2RmlsZW5hbWUoKVwiXG4gIFtpc1VwbG9hZF09XCJmYWxzZVwiXG4gIFtoZWFkZXJLZXlzXT1cImhlYWRlcktleXMoKVwiXG4gIChjbG9zZWQpPVwic2hvd0Rvd25sb2FkID0gZmFsc2VcIj48L2hlLW5vZGUtY3N2LWV4cG9ydC1jb25maXJtPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5VGFibGU+XG4gIDxkaXYgY2xhc3M9XCJpcy1wdC0zIGhhcy10ZXh0LWNlbnRlcmVkXCI+XG4gICAgPHNwYW4+Tm8gZGF0YSBhdmFpbGFibGU8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJpcy1wbC0xXCIgW2NsYXNzLmlzLWhpZGRlbl09XCIhZmlsdGVyVGVybSgpXCI+bWF0Y2hpbmcgeW91ciBzZWFyY2ggY3JpdGVyaWE8L3NwYW4+XG4gICAgPHNwYW4+Ljwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cInNob3dTd2l0Y2hUb1JlY2FsY3VsYXRlZCgpXCI+XG4gICAgICBTd2l0Y2ggdG9cbiAgICAgIDxjb2RlPnJlY2FsY3VsYXRlZDwvY29kZT5cbiAgICAgIHZlcnNpb24uXG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlWYWx1ZT5cbiAgPHNwYW4+LTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlscyBsZXQtbm9kZT1cImN5Y2xlXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWtleT1cImtleVwiPlxuICA8cD5cbiAgICA8Yj57eyBkZWZhdWx0TGFiZWwobm9kZSkgfX08L2I+XG4gIDwvcD5cbiAgPGhlLW5vZGUtdmFsdWUtZGV0YWlsc1xuICAgIFtkYXRhXT1cImRhdGFcIlxuICAgIFtkYXRhU3RhdGVdPVwiX2RhdGFTdGF0ZSgpXCJcbiAgICBbbm9kZVR5cGVdPVwibm9kZVsnQHR5cGUnXVwiXG4gICAgW2RhdGFLZXldPVwia2V5XCI+PC9oZS1ub2RlLXZhbHVlLWRldGFpbHM+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdEN5Y2xlPlxuICA8ZGl2IGNsYXNzPVwiZmllbGQgaGFzLWFkZG9ucyBpcy1weS0yIGlzLXB4LTNcIiAqbmdJZj1cImN5Y2xlcygpLmxlbmd0aCA+IDFcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJidXR0b24gaXMtc21hbGwgaXMtc3RhdGljIGlzLXNlY29uZGFyeVwiPlNlbGVjdCBhIEN5Y2xlPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb250cm9sIGlzLWV4cGFuZGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0IGlzLXNtYWxsIGlzLWZ1bGx3aWR0aCBpcy1zZWNvbmRhcnlcIj5cbiAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cInNlbGVjdEluZGV4KCRldmVudClcIj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBjeWNsZXMoKTsgbGV0IGN5Y2xlSW5kZXggPSBpbmRleFwiIFt2YWx1ZV09XCJjeWNsZUluZGV4XCI+XG4gICAgICAgICAgICB7eyBjeWNsZUluZGV4ICsgMSB9fS4ge3sgZGVmYXVsdExhYmVsKHZhbHVlKSB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbGVzLW5vZGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jeWNsZXMvY3ljbGVzLW5vZGVzL2N5Y2xlcy1ub2Rlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvY3ljbGVzL2N5Y2xlcy1ub2Rlcy9jeWNsZXMtbm9kZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBSUwsUUFBUSxFQUlSLFlBQVksRUFJYixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBYSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzRCxJQUFLLElBS0o7QUFMRCxXQUFLLElBQUk7SUFDUCw0QkFBb0IsQ0FBQTtJQUNwQiw0QkFBb0IsQ0FBQTtJQUNwQix3Q0FBZ0MsQ0FB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QUFXLENBQ3ZCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQzdGLENBQUM7SUFDeEIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVTLGFBQWEsQ0FBQyxPQUFZLEVBQUUsT0FBWTtRQUNoRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFUyxZQUFZLENBQUMsSUFBWTtRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVMsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQTNNVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwrSUNySGpDLDh6VUFxUEE7OzJGRGhJYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07eUdBSzNDLFNBQVM7c0JBRFosS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUs7Z0JBUUYsWUFBWTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIGNvbXB1dGVkLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEYXRhU3RhdGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL2FwaSc7XG5pbXBvcnQge1xuICBJQ3ljbGVKU09OTEQsXG4gIElucHV0IGFzIEhlc3RpYUlucHV0LFxuICBQcm9kdWN0LFxuICBOb2RlVHlwZSxcbiAgQW5pbWFsLFxuICBFbWlzc2lvbixcbiAgUHJhY3RpY2UsXG4gIFRlcm1UZXJtVHlwZSxcbiAgRW1pc3Npb25NZXRob2RUaWVyLFxuICBUZXJtLFxuICBUcmFuc2Zvcm1hdGlvblxufSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5pbXBvcnQgb3JkZXJCeSBmcm9tICdsb2Rhc2gub3JkZXJieSc7XG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscy9kaXN0L3Rlcm0nO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmltcG9ydCB7IEJsYW5rTm9kZXNLZXksIGJsYW5rTm9kZSwgZmlsdGVyQmxhbmtOb2RlLCBtZXRob2RUaWVyT3JkZXIgfSBmcm9tICcuLi8uLi9jb21tb24vbm9kZS11dGlscyc7XG5pbXBvcnQgeyBsb2dzS2V5IH0gZnJvbSAnLi4vY3ljbGVzLm1vZGVsJztcbmltcG9ydCB7IEhlTm9kZVN0b3JlU2VydmljZSB9IGZyb20gJy4uLy4uL25vZGUvbm9kZS1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdyb3VwTm9kZXNCeVRlcm0sIElHcm91cGVkS2V5cywgZ3JvdXBwZWRLZXlzIH0gZnJvbSAnLi4vLi4vY29tbW9uL25vZGUtdXRpbHMnO1xuaW1wb3J0IHsgYmFzZVVybCwgZGVmYXVsdExhYmVsIH0gZnJvbSAnLi4vLi4vY29tbW9uL3V0aWxzJztcblxuZW51bSBWaWV3IHtcbiAgdGFibGUgPSAnVGFibGUgdmlldycsXG4gIGNoYXJ0ID0gJ0NoYXJ0IHZpZXcnLFxuICB0aW1lbGluZSA9ICdPcGVyYXRpb25zIFRpbWVsaW5lJyxcbiAgbG9ncyA9ICdSZWNhbGN1bGF0aW9ucyBsb2dzJ1xufVxuXG5jb25zdCB0aW1lbGluZVRlcm1UeXBlID0gW1Rlcm1UZXJtVHlwZS5vcGVyYXRpb25dO1xuXG5pbnRlcmZhY2UgSUN5Y2xlQ29uZmlnIHtcbiAgbm9kZUtleTogQmxhbmtOb2Rlc0tleTtcbn1cblxuaW50ZXJmYWNlIElDeWNsZUNvbmZpZ0FuaW1hbCBleHRlbmRzIElDeWNsZUNvbmZpZyB7XG4gIG5vZGVLZXk6IEJsYW5rTm9kZXNLZXkuYW5pbWFscztcbn1cblxuaW50ZXJmYWNlIElDeWNsZUNvbmZpZ0VtaXNzaW9uIGV4dGVuZHMgSUN5Y2xlQ29uZmlnIHtcbiAgbm9kZUtleTogQmxhbmtOb2Rlc0tleS5lbWlzc2lvbnM7XG59XG5cbmludGVyZmFjZSBJQ3ljbGVDb25maWdJbnB1dCBleHRlbmRzIElDeWNsZUNvbmZpZyB7XG4gIG5vZGVLZXk6IEJsYW5rTm9kZXNLZXkuaW5wdXRzO1xufVxuXG5pbnRlcmZhY2UgSUN5Y2xlQ29uZmlnUHJhY3RpY2UgZXh0ZW5kcyBJQ3ljbGVDb25maWcge1xuICBub2RlS2V5OiBCbGFua05vZGVzS2V5LnByYWN0aWNlcztcbn1cblxuY29uc3Qgdmlld0ljb246IHtcbiAgW3ZpZXcgaW4gVmlld106IHN0cmluZztcbn0gPSB7XG4gIFtWaWV3LmNoYXJ0XTogJ2NoYXJ0LWJhcicsXG4gIFtWaWV3LmxvZ3NdOiAnY2FsY3VsYXRvcicsXG4gIFtWaWV3LnRhYmxlXTogJ2xpc3QnLFxuICBbVmlldy50aW1lbGluZV06ICdsaXN0LWFsdCdcbn07XG5cbmNvbnN0IG5vZGVLZXlWaWV3czoge1xuICBbdHlwZSBpbiBCbGFua05vZGVzS2V5XT86IFZpZXdbXTtcbn0gPSB7XG4gIFtCbGFua05vZGVzS2V5LmFuaW1hbHNdOiBbVmlldy50YWJsZV0sXG4gIFtCbGFua05vZGVzS2V5LmVtaXNzaW9uc106IFtWaWV3LnRhYmxlLCBWaWV3LmNoYXJ0LCBWaWV3LmxvZ3NdLFxuICBbQmxhbmtOb2Rlc0tleS5pbnB1dHNdOiBbVmlldy50YWJsZSwgVmlldy5jaGFydCwgVmlldy5sb2dzXSxcbiAgW0JsYW5rTm9kZXNLZXkucHJvZHVjdHNdOiBbVmlldy50YWJsZSwgVmlldy5jaGFydCwgVmlldy5sb2dzXSxcbiAgW0JsYW5rTm9kZXNLZXkucHJhY3RpY2VzXTogW1ZpZXcudGFibGUsIFZpZXcudGltZWxpbmUsIFZpZXcubG9nc11cbn07XG5cbmNvbnN0IG5vZGVLZXlGaWx0ZXJUZXJtVHlwZXM6IHtcbiAgW3R5cGUgaW4gQmxhbmtOb2Rlc0tleV0/OiBUZXJtVGVybVR5cGVbXTtcbn0gPSB7XG4gIFtCbGFua05vZGVzS2V5LmVtaXNzaW9uc106IFtUZXJtVGVybVR5cGUuZW1pc3Npb25dXG59O1xuXG5jb25zdCBmaWx0ZXJWYWx1ZXNUaW1lbGluZSA9ICh2YWx1ZXM6IGJsYW5rTm9kZVtdKSA9PiB2YWx1ZXMuZmlsdGVyKHAgPT4gdGltZWxpbmVUZXJtVHlwZS5pbmNsdWRlcyhwLnRlcm0/LnRlcm1UeXBlKSk7XG5cbnR5cGUgZ3JvdXBlZEVtaXNzaW9ucyA9IHtcbiAgW21ldGhvZFRpZXIgaW4gRW1pc3Npb25NZXRob2RUaWVyXTogSUdyb3VwZWRLZXlzPEVtaXNzaW9uPltdO1xufTtcblxuZXhwb3J0IGVudW0gQ3ljbGVOb2Rlc0tleUdyb3VwIHtcbiAgYW5pbWFscyA9ICdhbmltYWxzJyxcbiAgdHJhbnNmb3JtYXRpb25zID0gJ3RyYW5zZm9ybWF0aW9ucydcbn1cblxudHlwZSBncm91cGVkTm9kZSA9IEFuaW1hbCB8IFRyYW5zZm9ybWF0aW9uO1xuXG5jb25zdCBjeWNsZUdyb3VwTm9kZSA9XG4gIChjeWNsZT86IElDeWNsZUpTT05MRCkgPT5cbiAgKG5vZGU/OiBncm91cGVkTm9kZSk6IGdyb3VwZWROb2RlICYgeyBuYW1lOiBzdHJpbmc7ICdAaWQnOiBzdHJpbmcgfSA9PiAoe1xuICAgIC4uLm5vZGUsXG4gICAgbmFtZTogY3ljbGU/Lm5hbWUsXG4gICAgJ0BpZCc6IGN5Y2xlPy5bJ0BpZCddIC8vIHNldCBAaWQgc28gd2UgY2FuIGZldGNoIHRoZSBsb2dzIGZyb20gdGhlIEN5Y2xlXG4gIH0pO1xuXG5jb25zdCBjeWNsZUdyb3VwTm9kZXMgPSAoZ3JvdXBLZXk6IEN5Y2xlTm9kZXNLZXlHcm91cCwgY3ljbGU/OiBJQ3ljbGVKU09OTEQpOiBncm91cGVkTm9kZVtdID0+XG4gIChjeWNsZT8uW2dyb3VwS2V5XSB8fCBbXSkubWFwKGN5Y2xlR3JvdXBOb2RlKGN5Y2xlKSk7XG5cbmNvbnN0IGZpbHRlckdyb3VwTm9kZXNCeVRlcm0gPSAoZ3JvdXBLZXk6IEN5Y2xlTm9kZXNLZXlHcm91cCwgY3ljbGVzOiBJQ3ljbGVKU09OTERbXSwgdGVybT86IFRlcm0pOiBncm91cGVkTm9kZVtdID0+XG4gIGN5Y2xlcy5tYXAoY3ljbGUgPT5cbiAgICBjeWNsZUdyb3VwTm9kZShjeWNsZSkoXG4gICAgICAoKGN5Y2xlPy5bZ3JvdXBLZXldIGFzIGdyb3VwZWROb2RlW10pIHx8IFtdKS5maWx0ZXIoQm9vbGVhbikuZmluZChub2RlID0+IG5vZGUudGVybT8ubmFtZSA9PT0gdGVybT8ubmFtZSlcbiAgICApXG4gICk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hlLWN5Y2xlcy1ub2RlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jeWNsZXMtbm9kZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jeWNsZXMtbm9kZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3ljbGVzTm9kZXNDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgX2RhdGFTdGF0ZSA9IHNpZ25hbChEYXRhU3RhdGUub3JpZ2luYWwpO1xuICBASW5wdXQoKVxuICBzZXQgZGF0YVN0YXRlKHZhbHVlOiBEYXRhU3RhdGUpIHtcbiAgICB0aGlzLl9kYXRhU3RhdGUuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBCbGFua05vZGVzS2V5ID0gQmxhbmtOb2Rlc0tleTtcbiAgcHJvdGVjdGVkIGZpcnN0Tm9kZUtleSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX25vZGVLZXlzKCk/LlswXSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZE5vZGVLZXkgPSBzaWduYWwodW5kZWZpbmVkIGFzIEJsYW5rTm9kZXNLZXkpO1xuXG4gIHByb3RlY3RlZCBfbm9kZUtleXMgPSBzaWduYWwoW10gYXMgQmxhbmtOb2Rlc0tleVtdKTtcbiAgQElucHV0KClcbiAgc2V0IG5vZGVLZXlzKHZhbHVlOiBCbGFua05vZGVzS2V5W10pIHtcbiAgICB0aGlzLl9ub2RlS2V5cy5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkR3JvdXBUZXJtID0gc2lnbmFsKHVuZGVmaW5lZCBhcyBUZXJtKTtcbiAgcHJvdGVjdGVkIF9ub2RlS2V5R3JvdXAgPSBzaWduYWwodW5kZWZpbmVkIGFzIEN5Y2xlTm9kZXNLZXlHcm91cCk7XG4gIEBJbnB1dCgpXG4gIHNldCBub2RlS2V5R3JvdXAodmFsdWU6IEN5Y2xlTm9kZXNLZXlHcm91cCkge1xuICAgIHRoaXMuX25vZGVLZXlHcm91cC5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhc2VVcmwgPSBiYXNlVXJsKCk7XG4gIHByb3RlY3RlZCBwcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlWYWx1ZTtcbiAgcHJvdGVjdGVkIGRlZmF1bHRMYWJlbCA9IGRlZmF1bHRMYWJlbDtcbiAgcHJvdGVjdGVkIHNob3dEb3dubG9hZCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBoZWFkZXJLZXlzID0gY29tcHV0ZWQoKCkgPT4gW1xuICAgICdjeWNsZS5pZCcsXG4gICAgJ2N5Y2xlLkBpZCcsXG4gICAgJ3RyYW5zZm9ybWF0aW9uLmlkJyxcbiAgICAndHJhbnNmb3JtYXRpb24uQGlkJyxcbiAgICAuLi50aGlzLl9ub2RlS2V5cygpLmZsYXRNYXAoa2V5ID0+IFtgY3ljbGUuJHtrZXl9LmAsIGB0cmFuc2Zvcm1hdGlvbi4ke2tleX0uYF0pXG4gIF0pO1xuXG4gIHByb3RlY3RlZCBWaWV3ID0gVmlldztcbiAgcHJvdGVjdGVkIHZpZXdJY29uID0gdmlld0ljb247XG4gIHByaXZhdGUgc2hvd1ZpZXcgPSBjb21wdXRlZChcbiAgICAoKSA9PlxuICAgICAgKHtcbiAgICAgICAgW1ZpZXcuY2hhcnRdOiB0aGlzLnNlbGVjdGVkTm9kZUtleSgpID09PSBCbGFua05vZGVzS2V5LmVtaXNzaW9ucyA/IHRoaXMuY3ljbGVzKCkubGVuZ3RoID4gMSA6IHRydWUsXG4gICAgICAgIFtWaWV3LmxvZ3NdOiAhdGhpcy5pc09yaWdpbmFsKCkgJiYgdGhpcy5oYXNSZWNhbGN1bGF0ZWROb2RlcygpLFxuICAgICAgICBbVmlldy50YWJsZV06IHRydWUsXG4gICAgICAgIFtWaWV3LnRpbWVsaW5lXTogdGhpcy5lbmFibGVUaW1lbGluZSgpXG4gICAgICB9KSBhcyB7IFt2aWV3IGluIFZpZXddOiBib29sZWFuIH1cbiAgKTtcbiAgcHJvdGVjdGVkIHZpZXdzID0gY29tcHV0ZWQoKCkgPT4gbm9kZUtleVZpZXdzW3RoaXMuc2VsZWN0ZWROb2RlS2V5KCldPy5maWx0ZXIodmlldyA9PiB0aGlzLnNob3dWaWV3KClbdmlld10pID8/IFtdKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkVmlldyA9IHNpZ25hbChWaWV3LnRhYmxlKTtcblxuICBwcml2YXRlIF9hbGxOb2RlcyA9IHRvU2lnbmFsKHRoaXMubm9kZVN0b3JlU2VydmljZS5maW5kJDxJQ3ljbGVKU09OTEQ+KE5vZGVUeXBlLkN5Y2xlKSk7XG4gIHByaXZhdGUgb3JpZ2luYWxOb2RlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2FsbE5vZGVzKCk/Lm1hcChkYXRhID0+IGRhdGFbRGF0YVN0YXRlLm9yaWdpbmFsXSkgfHwgW10pO1xuICBwcml2YXRlIGN1cnJlbnROb2RlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2FsbE5vZGVzKCk/Lm1hcChkYXRhID0+IGRhdGFbdGhpcy5fZGF0YVN0YXRlKCldKSB8fCBbXSk7XG5cbiAgLy8gY2FuIGJlIEN5Y2xlIG9yIFRyYW5zZm9ybWF0aW9uXG4gIHByb3RlY3RlZCBvcmlnaW5hbEN5Y2xlcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5fbm9kZUtleUdyb3VwKClcbiAgICAgID8gZmlsdGVyR3JvdXBOb2Rlc0J5VGVybSh0aGlzLl9ub2RlS2V5R3JvdXAoKSwgdGhpcy5vcmlnaW5hbE5vZGVzKCksIHRoaXMuc2VsZWN0ZWRHcm91cFRlcm0oKSlcbiAgICAgIDogdGhpcy5vcmlnaW5hbE5vZGVzKClcbiAgKTtcbiAgcHJvdGVjdGVkIGN5Y2xlcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5fbm9kZUtleUdyb3VwKClcbiAgICAgID8gZmlsdGVyR3JvdXBOb2Rlc0J5VGVybSh0aGlzLl9ub2RlS2V5R3JvdXAoKSwgdGhpcy5jdXJyZW50Tm9kZXMoKSwgdGhpcy5zZWxlY3RlZEdyb3VwVGVybSgpKVxuICAgICAgOiB0aGlzLmN1cnJlbnROb2RlcygpXG4gICk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZEluZGV4ID0gc2lnbmFsKDApO1xuICBwcml2YXRlIG9naXJpbmFsU2VsZWN0ZWRDeWNsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3JpZ2luYWxDeWNsZXMoKT8uW3RoaXMuc2VsZWN0ZWRJbmRleCgpXSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRDeWNsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3ljbGVzKCk/Llt0aGlzLnNlbGVjdGVkSW5kZXgoKV0pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRMb2dzS2V5ID0gY29tcHV0ZWQoKCkgPT4gbG9nc0tleSh0aGlzLnNlbGVjdGVkQ3ljbGUoKSkpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcmlnaW5hbFZhbHVlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub2dpcmluYWxTZWxlY3RlZEN5Y2xlKCk/Llt0aGlzLnNlbGVjdGVkTm9kZUtleSgpXSB8fCBbXSk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFJlY2FsY3VsYXRlZFZhbHVlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VsZWN0ZWRDeWNsZSgpPy5bdGhpcy5zZWxlY3RlZE5vZGVLZXkoKV0gfHwgW10pO1xuICAvLyBUT0RPOiBoYW5kbGUgdHJhbnNmb3JtYXRpb24gYW5kIG5vbi1pbmRleGVkIG5vZGVzIG9uIENFXG4gIHByb3RlY3RlZCBzZWxlY3RlZE5vZGUgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuc2VsZWN0ZWRDeWNsZSgpXG4gICAgICA/IHtcbiAgICAgICAgICAuLi50aGlzLnNlbGVjdGVkQ3ljbGUoKSxcbiAgICAgICAgICAnQHR5cGUnOiBOb2RlVHlwZS5DeWNsZSxcbiAgICAgICAgICB0eXBlOiBOb2RlVHlwZS5DeWNsZSxcbiAgICAgICAgICBkYXRhU3RhdGU6IERhdGFTdGF0ZS5yZWNhbGN1bGF0ZWRcbiAgICAgICAgfVxuICAgICAgOiBudWxsXG4gICk7XG5cbiAgcHJpdmF0ZSBpc09yaWdpbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZGF0YVN0YXRlKCkgPT09IERhdGFTdGF0ZS5vcmlnaW5hbCk7XG4gIHByaXZhdGUgb3JpZ2luYWxWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5pc09yaWdpbmFsKCkgPyBudWxsIDogdGhpcy5vcmlnaW5hbEN5Y2xlcygpKSB8fCBbXSk7XG5cbiAgcHJpdmF0ZSBoYXNSZWNhbGN1bGF0ZWROb2RlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3ljbGVzKCkuc29tZShjeWNsZSA9PiAhY3ljbGUuYWdncmVnYXRlZCkpO1xuICBwcm90ZWN0ZWQgc2hvd1N3aXRjaFRvUmVjYWxjdWxhdGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pc09yaWdpbmFsKCkgJiYgdGhpcy5oYXNSZWNhbGN1bGF0ZWROb2RlcygpKTtcblxuICBwcm90ZWN0ZWQgdGltZWxpbmVWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PiBmaWx0ZXJWYWx1ZXNUaW1lbGluZSh0aGlzLnNlbGVjdGVkQ3ljbGUoKT8uW3RoaXMuc2VsZWN0ZWROb2RlS2V5KCldIHx8IFtdKSk7XG4gIHByaXZhdGUgZW5hYmxlVGltZWxpbmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRpbWVsaW5lVmFsdWVzKCkubGVuZ3RoID4gMCk7XG5cbiAgcHJvdGVjdGVkIGlzTm9kZUtleUFsbG93ZWQgPSBjb21wdXRlZCgoKSA9PiBub2RlS2V5Vmlld3NbdGhpcy5maXJzdE5vZGVLZXkoKV0uaW5jbHVkZXModGhpcy5zZWxlY3RlZFZpZXcoKSkpO1xuXG4gIHByaXZhdGUgZ3JvdXBlZE5vZGVzID0gY29tcHV0ZWQoKCkgPT4gY3ljbGVHcm91cE5vZGVzKHRoaXMuX25vZGVLZXlHcm91cCgpLCB0aGlzLm9yaWdpbmFsTm9kZXMoKT8uWzBdKSk7XG4gIHByb3RlY3RlZCBncm91cE5vZGVUZXJtcyA9IGNvbXB1dGVkKCgpID0+IHVuaXF1ZSh0aGlzLmdyb3VwZWROb2RlcygpLm1hcCgoeyB0ZXJtIH0pID0+IHRlcm0pKSk7XG4gIHByb3RlY3RlZCBpc0dyb3VwTm9kZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX25vZGVLZXlHcm91cCgpICYmIHRoaXMuZ3JvdXBlZE5vZGVzKCk/Lmxlbmd0aCA+IDApO1xuXG4gIHByb3RlY3RlZCBpc0VtaXNzaW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZWxlY3RlZE5vZGVLZXkoKSA9PT0gQmxhbmtOb2Rlc0tleS5lbWlzc2lvbnMpO1xuXG4gIHByb3RlY3RlZCBkYXRhID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmlzRW1pc3Npb24oKVxuICAgICAgPyB0aGlzLmdyb3VwRW1pc3Npb25zKClcbiAgICAgIDogT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuX25vZGVLZXlzKCkubWFwKG5vZGVLZXkgPT4gW25vZGVLZXksIHRoaXMuZ3JvdXBOb2Rlc0J5S2V5KHsgbm9kZUtleSB9KV0pKVxuICApO1xuICBwcm90ZWN0ZWQgZGF0YUtleXMgPSBjb21wdXRlZCgoKSA9PiBPYmplY3Qua2V5cyh0aGlzLmRhdGEoKSkpO1xuXG4gIHByb3RlY3RlZCBoYXNEYXRhID0gY29tcHV0ZWQoKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmRhdGEoKSkuZmxhdCgpLmxlbmd0aCA+IDApO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXJUZXJtVHlwZXMgPSBjb21wdXRlZCgoKSA9PiBub2RlS2V5RmlsdGVyVGVybVR5cGVzW3RoaXMuc2VsZWN0ZWROb2RlS2V5KCldKTtcbiAgcHJvdGVjdGVkIGZpbHRlclRlcm0gPSBzaWduYWwoJycpO1xuXG4gIHByb3RlY3RlZCBjc3ZGaWxlbmFtZSA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuX25vZGVLZXlzKCkuam9pbignLScpfS5jc3ZgKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vZGVTdG9yZVNlcnZpY2U6IEhlTm9kZVN0b3JlU2VydmljZSkge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gbWFrZSBzdXJlIGxvZ3MgZG9lcyBub3QgcmVtYWluIGRpc3BsYXllZFxuICAgICAgICBpZiAoKHRoaXMuaXNPcmlnaW5hbCgpICYmIHRoaXMuc2VsZWN0ZWRWaWV3KCkgPT09IFZpZXcubG9ncykgfHwgIXRoaXMudmlld3MoKS5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkVmlldygpKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3LnNldChWaWV3LnRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZE5vZGVLZXkoKSB8fCAhdGhpcy5fbm9kZUtleXMoKS5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkTm9kZUtleSgpKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlS2V5LnNldCh0aGlzLmZpcnN0Tm9kZUtleSgpKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVmlldy5zZXQoVmlldy50YWJsZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRHcm91cFRlcm0oKSB8fCAhdGhpcy5ncm91cE5vZGVUZXJtcygpLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRHcm91cFRlcm0oKSkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBUZXJtLnNldCh0aGlzLmdyb3VwTm9kZVRlcm1zKClbMF0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBOb2Rlc0J5S2V5PFxuICAgIFQgZXh0ZW5kcyBJQ3ljbGVDb25maWcsXG4gICAgUiA9IFQgZXh0ZW5kcyBJQ3ljbGVDb25maWdBbmltYWxcbiAgICAgID8gQW5pbWFsXG4gICAgICA6IFQgZXh0ZW5kcyBJQ3ljbGVDb25maWdFbWlzc2lvblxuICAgICAgPyBFbWlzc2lvblxuICAgICAgOiBUIGV4dGVuZHMgSUN5Y2xlQ29uZmlnSW5wdXRcbiAgICAgID8gSGVzdGlhSW5wdXRcbiAgICAgIDogVCBleHRlbmRzIElDeWNsZUNvbmZpZ1ByYWN0aWNlXG4gICAgICA/IFByYWN0aWNlXG4gICAgICA6IFByb2R1Y3RcbiAgPih7IG5vZGVLZXkgfTogVCk6IElHcm91cGVkS2V5czxSPltdIHtcbiAgICBjb25zdCBub2Rlc1BlckN5Y2xlID0gZ3JvdXBOb2Rlc0J5VGVybTxJQ3ljbGVKU09OTEQgfCBncm91cGVkTm9kZSwgUj4oXG4gICAgICB0aGlzLmN5Y2xlcygpLFxuICAgICAgbm9kZUtleSxcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZXMoKSxcbiAgICAgIGZpbHRlckJsYW5rTm9kZSh0aGlzLmZpbHRlclRlcm0oKSlcbiAgICApO1xuICAgIHJldHVybiBvcmRlckJ5KGdyb3VwcGVkS2V5cyhub2Rlc1BlckN5Y2xlKSwgWydrZXknXSwgWydhc2MnXSk7XG4gIH1cblxuICBwcml2YXRlIGdyb3VwRW1pc3Npb25zKCkge1xuICAgIGNvbnN0IGVtaXNzaW9uc1BlckN5Y2xlID0gZ3JvdXBOb2Rlc0J5VGVybTxJQ3ljbGVKU09OTEQgfCBncm91cGVkTm9kZSwgRW1pc3Npb24+KFxuICAgICAgdGhpcy5jeWNsZXMoKSxcbiAgICAgIEJsYW5rTm9kZXNLZXkuZW1pc3Npb25zLFxuICAgICAgdGhpcy5vcmlnaW5hbFZhbHVlcygpLFxuICAgICAgZmlsdGVyQmxhbmtOb2RlKHRoaXMuZmlsdGVyVGVybSgpKVxuICAgICk7XG4gICAgY29uc3QgdmFsdWVzOiBJR3JvdXBlZEtleXM8RW1pc3Npb24+W10gPSBvcmRlckJ5KGdyb3VwcGVkS2V5cyhlbWlzc2lvbnNQZXJDeWNsZSksIFsna2V5J10sIFsnYXNjJ10pO1xuICAgIGNvbnN0IG1ldGhvZFRpZXJzID0gb3JkZXJCeShcbiAgICAgIHVuaXF1ZSh2YWx1ZXMubWFwKCh7IHZhbHVlIH0pID0+IHZhbHVlLm1ldGhvZFRpZXIpKS5tYXAobWV0aG9kVGllciA9PiAoe1xuICAgICAgICBtZXRob2RUaWVyLFxuICAgICAgICBtZXRob2RUaWVyT3JkZXI6IG1ldGhvZFRpZXJPcmRlcihtZXRob2RUaWVyKVxuICAgICAgfSkpLFxuICAgICAgWydtZXRob2RUaWVyT3JkZXInXSxcbiAgICAgIFsnYXNjJ11cbiAgICApO1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBtZXRob2RUaWVycy5tYXAoKHsgbWV0aG9kVGllciB9KSA9PiBbbWV0aG9kVGllciwgdmFsdWVzLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZS5tZXRob2RUaWVyID09PSBtZXRob2RUaWVyKV0pXG4gICAgKSBhcyBncm91cGVkRW1pc3Npb25zO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlJZChfaW5kZXg6IG51bWJlciwgaXRlbTogSUN5Y2xlSlNPTkxEKSB7XG4gICAgcmV0dXJuIGl0ZW1bJ0BpZCddO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvZ2dsZVBvcG92ZXIocG9wb3ZlcjogYW55LCBjb250ZXh0OiBhbnkpIHtcbiAgICByZXR1cm4gcG9wb3Zlci5pc09wZW4oKSA/IHBvcG92ZXIuY2xvc2UoKSA6IHBvcG92ZXIub3Blbihjb250ZXh0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmaWx0ZXJCeVRlcm0odGVybTogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJUZXJtLnNldCh0ZXJtKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RJbmRleCh7IHRhcmdldDogeyB2YWx1ZSB9IH0pIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5kZXguc2V0KCt2YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YWJzIGlzLW1iLTFcIiAqbmdJZj1cImlzR3JvdXBOb2RlKClcIj5cbiAgPHVsPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgdGVybSBvZiBncm91cE5vZGVUZXJtcygpXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZEdyb3VwVGVybSgpID09PSB0ZXJtXCI+XG4gICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRHcm91cFRlcm0uc2V0KHRlcm0pXCI+e3sgdGVybS5uYW1lIH19PC9hPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtdmFyaWFibGUgaXMtYWxpZ24taXRlbXMtY2VudGVyIGlzLTIgaXMtbS0wXCIgKm5nSWY9XCJoYXNEYXRhKClcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFZpZXcoKSA9PT0gVmlldy50YWJsZVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbCBpcy1naG9zdFwiXG4gICAgICAgIChjbGljayk9XCJzaG93RG93bmxvYWQgPSB0cnVlXCJcbiAgICAgICAgbmdiVG9vbHRpcD1cIkRvd25sb2FkIGFzIENTVlwiXG4gICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiPlxuICAgICAgICA8ZmEtaWNvbiBpY29uPVwiZG93bmxvYWRcIiBzaXplPVwibGdcIj48L2ZhLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4gaXMtbmFycm93XCIgKm5nSWY9XCJzZWxlY3RlZFZpZXcoKSA9PT0gVmlldy50YWJsZVwiPlxuICAgIDxoZS1zZWFyY2gtZXh0ZW5kXG4gICAgICBjbGFzcz1cImlzLXNlY29uZGFyeSBpcy1zbWFsbFwiXG4gICAgICBwbGFjZWhvbGRlcj1cIkZpbHRlciB0ZXJtcyBieSBuYW1lXCJcbiAgICAgIChzZWFyY2gpPVwiZmlsdGVyQnlUZXJtKCRldmVudClcIj48L2hlLXNlYXJjaC1leHRlbmQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29sdW1uIGlzLW5hcnJvd1wiICpuZ0lmPVwidmlld3MoKT8ubGVuZ3RoID4gMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiICpuZ0Zvcj1cImxldCB2aWV3IG9mIHZpZXdzKClcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBpcy1zbWFsbFwiIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZFZpZXcoKSA9PT0gdmlld1wiIChjbGljayk9XCJzZWxlY3RlZFZpZXcuc2V0KHZpZXcpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJ2aWV3SWNvblt2aWV3XVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpcy1oaWRkZW4tbW9iaWxlXCI+e3sgdmlldyB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTm9kZUtleUFsbG93ZWQoKVwiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzZWxlY3RlZFZpZXcoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpcy1weC0zIGlzLXBiLTNcIiAqbmdTd2l0Y2hDYXNlPVwiVmlldy50YWJsZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0RhdGEoKTsgZWxzZSBlbXB0eVRhYmxlXCI+XG4gICAgICAgIDxoZS1kYXRhLXRhYmxlIGNsYXNzPVwibWItMSBpcy1zbWFsbFwiIFtzbWFsbF09XCJ0cnVlXCIgbWF4SGVpZ2h0PVwiMzIwXCI+XG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgaXMtZnVsbHdpZHRoIGlzLW5hcnJvdyBpcy1zdHJpcGVkXCI+XG4gICAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImhhcy10ZXh0LXdlaWdodC1ib2xkXCIgKm5nSWY9XCJkYXRhS2V5cygpLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ3aWR0aC1hdXRvXCI+PC90aD5cbiAgICAgICAgICAgICAgICA8dGggW2NsYXNzLmlzLWhpZGRlbl09XCJpc0dyb3VwTm9kZSgpXCI+PC90aD5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGFLZXkgb2YgZGF0YUtleXMoKTsgbGV0IGRhdGFLZXlMYXN0ID0gbGFzdFwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEoKVtkYXRhS2V5XT8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBbYXR0ci5jb2xzcGFuXT1cImRhdGEoKVtkYXRhS2V5XS5sZW5ndGhcIiBbY2xhc3MuaGFzLWJvcmRlci1yaWdodF09XCIhZGF0YUtleUxhc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBkYXRhS2V5IHwga2V5VG9MYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImhhcy10ZXh0LXdlaWdodC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG8gaGFzLWJvcmRlci1yaWdodFwiPjwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiaGFzLWJvcmRlci1yaWdodFwiIFtjbGFzcy5pcy1oaWRkZW5dPVwiaXNHcm91cE5vZGUoKVwiPjwvdGg+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhS2V5IG9mIGRhdGFLZXlzKCk7IGxldCBkYXRhS2V5TGFzdCA9IGxhc3RcIj5cbiAgICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBkYXRhKClbZGF0YUtleV07IGxldCBub2RlTGFzdCA9IGxhc3RcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJub2RlLnZhbHVlLnRlcm0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5oYXMtYm9yZGVyLXJpZ2h0XT1cImRhdGFLZXlzKCkubGVuZ3RoID4gMSAmJiAhZGF0YUtleUxhc3QgJiYgbm9kZUxhc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPGhlLW5vZGUtbGluayBbbm9kZV09XCJub2RlLnZhbHVlLnRlcm1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIm5vZGUudmFsdWUudGVybS5uYW1lIHwgZWxsaXBzaXM6IDMwIHwgY29tcG91bmRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvaGUtbm9kZS1saW5rPlxuICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiaXMtaXRhbGljIGhhcy10ZXh0LXdlaWdodC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIndpZHRoLWF1dG8gaGFzLWJvcmRlci1yaWdodFwiPjwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiaGFzLWJvcmRlci1yaWdodFwiIFtjbGFzcy5pcy1oaWRkZW5dPVwiaXNHcm91cE5vZGUoKVwiPlxuICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYmFzZVVybCArICcvc2NoZW1hL0N5Y2xlI2Z1bmN0aW9uYWxVbml0J1wiIHRhcmdldD1cIl9ibGFua1wiPkZ1bmN0aW9uYWwgdW5pdDwvYT5cbiAgICAgICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZGF0YUtleSBvZiBkYXRhS2V5cygpOyBsZXQgZGF0YUtleUxhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG5vZGUgb2YgZGF0YSgpW2RhdGFLZXldOyBsZXQgbm9kZUxhc3QgPSBsYXN0XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwibm9kZS52YWx1ZS50ZXJtLnVuaXRzXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhhcy1ib3JkZXItcmlnaHRdPVwiZGF0YUtleXMoKS5sZW5ndGggPiAxICYmICFkYXRhS2V5TGFzdCAmJiBub2RlTGFzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIdG1sXT1cIm5vZGUudmFsdWUudGVybS51bml0cyB8IGNvbXBvdW5kXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aGUtdGVybXMtdW5pdHMtZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImlzLWlubGluZS1ibG9jayBpcy1tbC0yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGVybV09XCJub2RlLnZhbHVlLnRlcm1cIj48L2hlLXRlcm1zLXVuaXRzLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGN5Y2xlIG9mIGN5Y2xlcygpOyB0cmFja0J5OiB0cmFja0J5SWQ7IGxldCBjeWNsZUluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ3aWR0aC1hdXRvIGhhcy1ib3JkZXItcmlnaHRcIiBbYXR0ci50aXRsZV09XCJkZWZhdWx0TGFiZWwoY3ljbGUpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoZS1ub2RlLWxpbmsgW25vZGVdPVwiY3ljbGUudGVybSB8fCBjeWNsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGN5Y2xlSW5kZXggKyAxIH19LiB7eyBkZWZhdWx0TGFiZWwoY3ljbGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2hlLW5vZGUtbGluaz5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJoYXMtYm9yZGVyLXJpZ2h0XCIgW2NsYXNzLmlzLWhpZGRlbl09XCJpc0dyb3VwTm9kZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoZS1jeWNsZXMtZnVuY3Rpb25hbC11bml0LW1lYXN1cmUgW2N5Y2xlXT1cImN5Y2xlcygpWzBdXCI+PC9oZS1jeWNsZXMtZnVuY3Rpb25hbC11bml0LW1lYXN1cmU+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXRhS2V5IG9mIGRhdGFLZXlzKCk7IGxldCBkYXRhS2V5TGFzdCA9IGxhc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpcy1ub3dyYXBcIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBub2RlIG9mIGRhdGEoKVtkYXRhS2V5XTsgbGV0IG5vZGVMYXN0ID0gbGFzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmhhcy1ib3JkZXItcmlnaHRdPVwiZGF0YUtleXMoKS5sZW5ndGggPiAxICYmICFkYXRhS2V5TGFzdCAmJiBub2RlTGFzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm5vZGUudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV07IGVsc2UgZW1wdHlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyaWdnZXItcG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdiUG9wb3Zlcl09XCJkZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvQ2xvc2VdPVwiJ291dHNpZGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXJDbGFzcz1cImlzLW5hcnJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2Vycz1cIm1hbnVhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjcD1cIm5nYlBvcG92ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlUG9wb3ZlcihwLCB7IGRhdGE6IG5vZGUudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0sIGN5Y2xlOiBjeWNsZSwga2V5OiBkYXRhS2V5IH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHBvaW50ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlWYWx1ZShub2RlLnZhbHVlLnZhbHVlc1tjeWNsZVsnQGlkJ11dLnZhbHVlLCBub2RlLnZhbHVlLnRlcm1bJ0BpZCddKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwcmVjaXNpb246IDNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZGVmYXVsdDogJy0nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aGUtYmxhbmstbm9kZS1zdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YVN0YXRlXT1cIl9kYXRhU3RhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtub2RlXT1cIm5vZGUudmFsdWUudmFsdWVzW2N5Y2xlWydAaWQnXV0ubm9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1cInZhbHVlXCI+PC9oZS1ibGFuay1ub2RlLXN0YXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2hlLWRhdGEtdGFibGU+XG5cbiAgICAgICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlIFtkYXRhU3RhdGVdPVwiX2RhdGFTdGF0ZSgpXCI+PC9oZS1ibGFuay1ub2RlLXN0YXRlLW5vdGljZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiVmlldy5jaGFydFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlyc3ROb2RlS2V5KClcIj5cbiAgICAgICAgPGhlLWN5Y2xlcy1yZXN1bHQgKm5nU3dpdGNoQ2FzZT1cIkJsYW5rTm9kZXNLZXkuaW5wdXRzXCIgW2N5Y2xlc109XCJjeWNsZXMoKVwiPjwvaGUtY3ljbGVzLXJlc3VsdD5cbiAgICAgICAgPGhlLWN5Y2xlcy1lbWlzc2lvbnMtY2hhcnRcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiQmxhbmtOb2Rlc0tleS5lbWlzc2lvbnNcIlxuICAgICAgICAgIFtjeWNsZXNdPVwiY3ljbGVzKClcIj48L2hlLWN5Y2xlcy1lbWlzc2lvbnMtY2hhcnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIlZpZXcudGltZWxpbmVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RDeWNsZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiaXMtcHgtMyBpcy1wYi0zXCI+XG4gICAgICAgIDxoZS1jeWNsZXMtbm9kZXMtdGltZWxpbmVcbiAgICAgICAgICBbcmVjYWxjdWxhdGVkVmFsdWVzXT1cInRpbWVsaW5lVmFsdWVzKClcIlxuICAgICAgICAgIFtkYXRhU3RhdGVdPVwiX2RhdGFTdGF0ZSgpXCI+PC9oZS1jeWNsZXMtbm9kZXMtdGltZWxpbmU+XG5cbiAgICAgICAgPGhlLWJsYW5rLW5vZGUtc3RhdGUtbm90aWNlIFtkYXRhU3RhdGVdPVwiX2RhdGFTdGF0ZSgpXCI+PC9oZS1ibGFuay1ub2RlLXN0YXRlLW5vdGljZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiVmlldy5sb2dzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VsZWN0Q3ljbGVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRhYnMgaXMtbWItMlwiICpuZ0lmPVwiX25vZGVLZXlzKCkubGVuZ3RoID4gMVwiPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBub2RlS2V5IG9mIF9ub2RlS2V5cygpXCIgW2NsYXNzLmlzLWFjdGl2ZV09XCJzZWxlY3RlZE5vZGVLZXkoKSA9PT0gbm9kZUtleVwiPlxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdGVkTm9kZUtleS5zZXQobm9kZUtleSlcIj57eyBub2RlS2V5IHwga2V5VG9MYWJlbCB9fTwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxoZS1ub2RlLWxvZ3MtbW9kZWxzXG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWROb2RlKClcIlxuICAgICAgICBbbm9kZV09XCJzZWxlY3RlZE5vZGUoKVwiXG4gICAgICAgIFtub2RlS2V5XT1cInNlbGVjdGVkTm9kZUtleSgpXCJcbiAgICAgICAgW2xvZ3NLZXldPVwic2VsZWN0ZWRMb2dzS2V5KClcIlxuICAgICAgICBbb3JpZ2luYWxWYWx1ZXNdPVwic2VsZWN0ZWRPcmlnaW5hbFZhbHVlcygpXCJcbiAgICAgICAgW3JlY2FsY3VsYXRlZFZhbHVlc109XCJzZWxlY3RlZFJlY2FsY3VsYXRlZFZhbHVlcygpXCJcbiAgICAgICAgW2ZpbHRlclRlcm1UeXBlc109XCJmaWx0ZXJUZXJtVHlwZXMoKVwiPjwvaGUtbm9kZS1sb2dzLW1vZGVscz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPGhlLW5vZGUtY3N2LWV4cG9ydC1jb25maXJtXG4gICpuZ0lmPVwic2hvd0Rvd25sb2FkXCJcbiAgW25vZGVzXT1cImN5Y2xlcygpXCJcbiAgW2ZpbGVuYW1lXT1cImNzdkZpbGVuYW1lKClcIlxuICBbaXNVcGxvYWRdPVwiZmFsc2VcIlxuICBbaGVhZGVyS2V5c109XCJoZWFkZXJLZXlzKClcIlxuICAoY2xvc2VkKT1cInNob3dEb3dubG9hZCA9IGZhbHNlXCI+PC9oZS1ub2RlLWNzdi1leHBvcnQtY29uZmlybT5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVRhYmxlPlxuICA8ZGl2IGNsYXNzPVwiaXMtcHQtMyBoYXMtdGV4dC1jZW50ZXJlZFwiPlxuICAgIDxzcGFuPk5vIGRhdGEgYXZhaWxhYmxlPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiaXMtcGwtMVwiIFtjbGFzcy5pcy1oaWRkZW5dPVwiIWZpbHRlclRlcm0oKVwiPm1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhPC9zcGFuPlxuICAgIDxzcGFuPi48L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJzaG93U3dpdGNoVG9SZWNhbGN1bGF0ZWQoKVwiPlxuICAgICAgU3dpdGNoIHRvXG4gICAgICA8Y29kZT5yZWNhbGN1bGF0ZWQ8L2NvZGU+XG4gICAgICB2ZXJzaW9uLlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5VmFsdWU+XG4gIDxzcGFuPi08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RldGFpbHMgbGV0LW5vZGU9XCJjeWNsZVwiIGxldC1kYXRhPVwiZGF0YVwiIGxldC1rZXk9XCJrZXlcIj5cbiAgPHA+XG4gICAgPGI+e3sgZGVmYXVsdExhYmVsKG5vZGUpIH19PC9iPlxuICA8L3A+XG4gIDxoZS1ub2RlLXZhbHVlLWRldGFpbHNcbiAgICBbZGF0YV09XCJkYXRhXCJcbiAgICBbZGF0YVN0YXRlXT1cIl9kYXRhU3RhdGUoKVwiXG4gICAgW25vZGVUeXBlXT1cIm5vZGVbJ0B0eXBlJ11cIlxuICAgIFtkYXRhS2V5XT1cImtleVwiPjwvaGUtbm9kZS12YWx1ZS1kZXRhaWxzPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RDeWNsZT5cbiAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnMgaXMtcHktMiBpcy1weC0zXCIgKm5nSWY9XCJjeWNsZXMoKS5sZW5ndGggPiAxXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYnV0dG9uIGlzLXNtYWxsIGlzLXN0YXRpYyBpcy1zZWNvbmRhcnlcIj5TZWxlY3QgYSBDeWNsZTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbCBpcy1leHBhbmRlZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdCBpcy1zbWFsbCBpcy1mdWxsd2lkdGggaXMtc2Vjb25kYXJ5XCI+XG4gICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJzZWxlY3RJbmRleCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgY3ljbGVzKCk7IGxldCBjeWNsZUluZGV4ID0gaW5kZXhcIiBbdmFsdWVdPVwiY3ljbGVJbmRleFwiPlxuICAgICAgICAgICAge3sgY3ljbGVJbmRleCArIDEgfX0uIHt7IGRlZmF1bHRMYWJlbCh2YWx1ZSkgfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -32,7 +32,7 @@ export class HeAggregationEngineService {
|
|
|
32
32
|
repository: Repository.aggregation,
|
|
33
33
|
path: 'model-links.json'
|
|
34
34
|
}))
|
|
35
|
-
.pipe(catchError(() => of({ links: [] })), map(({ links }) => {
|
|
35
|
+
.pipe(map(data => JSON.parse(data)), catchError(() => of({ links: [] })), map(({ links }) => {
|
|
36
36
|
this._models.next(links.map(({ path: modelPath, docPath, ...link }) => ({
|
|
37
37
|
...link,
|
|
38
38
|
path: `${gitUrl()}/${modelPath}`,
|
|
@@ -64,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
|
|
|
64
64
|
providedIn: 'root'
|
|
65
65
|
}]
|
|
66
66
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HeNodeService }, { type: i3.HeCommonService }]; } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2FnZ3JlZ2F0aW9uLWVuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUUvRSxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sSUFBSSxVQUFVLENBQUMsV0FBVyxXQUFXLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFFbEYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDbkMsU0FBUyxFQUFFLGlEQUFpRDtJQUM1RCxrQkFBa0IsRUFBRSwrQkFBK0I7Q0FDcEQsQ0FBQyxDQUFDO0FBdUJILE1BQU0sT0FBTywwQkFBMEI7SUFLckMsWUFDWSxJQUFnQixFQUNoQixXQUEwQixFQUMxQixhQUE4QjtRQUY5QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQVBsQyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFPLEdBQUcsSUFBSSxhQUFhLENBQXNCLENBQUMsQ0FBQyxDQUFDO1FBTzFELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBSTtRQUNoQixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUNGLFlBQVksQ0FBQztZQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVU7WUFDckMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxXQUFXO1lBQ2xDLElBQUksRUFBRSxrQkFBa0I7U0FDekIsQ0FBQyxDQUNIO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBVyxDQUEyQixDQUFDLEVBQzlELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUE0QixDQUFDLENBQUMsRUFDN0QsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELEdBQUcsSUFBSTtnQkFDUCxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLE9BQU8sRUFBRTthQUNsQyxDQUFDLENBQUMsQ0FDSixDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25HLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWlDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNqRyxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFpQztRQUM1QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RELENBQUM7OEdBN0RVLDBCQUEwQjtrSEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07OzJGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE5vZGVUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuXG5pbXBvcnQgeyBIZUNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGVOb2RlU2VydmljZSB9IGZyb20gJy4uL25vZGUvbm9kZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdpdEJyYW5jaCwgZ2l0SG9tZSwgZ2l0bGFiUmF3VXJsLCBSZXBvc2l0b3J5IH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzJztcblxuY29uc3QgZ2l0VXJsID0gKCkgPT4gYCR7Z2l0SG9tZX0vJHtSZXBvc2l0b3J5LmFnZ3JlZ2F0aW9ufS8tL2Jsb2IvJHtnaXRCcmFuY2goKX1gO1xuXG5leHBvcnQgY29uc3QgbG9va3VwcyA9IE9iamVjdC5mcmVlemUoe1xuICBjcm9wWWllbGQ6ICdyZWdpb24tY3JvcC1jcm9wR3JvdXBpbmdGYW9zdGF0UHJvZHVjdGlvbi15aWVsZCcsXG4gIGNyb3BHcm91cGluZ0NvbHVtbjogJ2Nyb3BHcm91cGluZ0Zhb3N0YXRQcm9kdWN0aW9uJ1xufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFnZ3JlZ2F0aW9uTW9kZWwge1xuICB0eXBlOiBOb2RlVHlwZTtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGltcGxlbWVudGF0aW9uIChjb2RlKSBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBtb2RlbC5cbiAgICovXG4gIGRvY1BhdGg6IHN0cmluZztcbiAgZGF0YVBhdGg6IHN0cmluZztcbiAgJ0BpZCc/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJQWdncmVnYXRpb25Nb2RlbExpbmtzIHtcbiAgbGlua3M6IElBZ2dyZWdhdGlvbk1vZGVsW107XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlQWdncmVnYXRpb25FbmdpbmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgbW9kZWxzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX21vZGVscyA9IG5ldyBSZXBsYXlTdWJqZWN0PElBZ2dyZWdhdGlvbk1vZGVsW10+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBub2RlU2VydmljZTogSGVOb2RlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29tbW9uU2VydmljZTogSGVDb21tb25TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0KCkge1xuICAgIGF3YWl0IHRoaXMubG9hZE1vZGVscygpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkTW9kZWxzKCkge1xuICAgIHRoaXMubW9kZWxzTG9hZGluZyA9IHRydWU7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxJQWdncmVnYXRpb25Nb2RlbExpbmtzPihcbiAgICAgICAgZ2l0bGFiUmF3VXJsKHtcbiAgICAgICAgICBhcGlVcmw6IHRoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsLFxuICAgICAgICAgIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnkuYWdncmVnYXRpb24sXG4gICAgICAgICAgcGF0aDogJ21vZGVsLWxpbmtzLmpzb24nXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGRhdGEgPT4gSlNPTi5wYXJzZShkYXRhIGFzIGFueSkgYXMgSUFnZ3JlZ2F0aW9uTW9kZWxMaW5rcyksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoeyBsaW5rczogW10gfSBhcyBJQWdncmVnYXRpb25Nb2RlbExpbmtzKSksXG4gICAgICAgIG1hcCgoeyBsaW5rcyB9KSA9PiB7XG4gICAgICAgICAgdGhpcy5fbW9kZWxzLm5leHQoXG4gICAgICAgICAgICBsaW5rcy5tYXAoKHsgcGF0aDogbW9kZWxQYXRoLCBkb2NQYXRoLCAuLi5saW5rIH0pID0+ICh7XG4gICAgICAgICAgICAgIC4uLmxpbmssXG4gICAgICAgICAgICAgIHBhdGg6IGAke2dpdFVybCgpfS8ke21vZGVsUGF0aH1gLFxuICAgICAgICAgICAgICBkb2NQYXRoOiBgJHtnaXRVcmwoKX0vJHtkb2NQYXRofWBcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5tb2RlbHNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5tb2RlbHNMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiBsaW5rcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldCBtb2RlbHMkKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsc0xvYWRpbmcgfHwgdGhpcy5tb2RlbHNMb2FkZWQgPyB0aGlzLl9tb2RlbHMuYXNPYnNlcnZhYmxlKCkgOiB0aGlzLmxvYWRNb2RlbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIG1vZGVsJChtb2RlbDogUGFydGlhbDxJQWdncmVnYXRpb25Nb2RlbD4pIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHMkLnBpcGUoXG4gICAgICBtYXAobW9kZWxzID0+IG1vZGVscy5maW5kKG0gPT4gT2JqZWN0LmVudHJpZXMobW9kZWwpLmV2ZXJ5KChba2V5LCB2YWx1ZV0pID0+IHZhbHVlID09PSBtW2tleV0pKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1vZGVsKG1vZGVsOiBQYXJ0aWFsPElBZ2dyZWdhdGlvbk1vZGVsPikge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJChtb2RlbCkucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxufVxuIl19
|
|
@@ -73,14 +73,14 @@ export class HeEngineService {
|
|
|
73
73
|
init() {
|
|
74
74
|
this.latestVersion$ = this.http
|
|
75
75
|
.get(gitlabRawUrl({ apiUrl: this.commonService.apiBaseUrl, repository: Repository.models, path: 'package.json' }))
|
|
76
|
-
.pipe(map(({ version }) => version));
|
|
76
|
+
.pipe(map(data => JSON.parse(data)), map(({ version }) => version));
|
|
77
77
|
return this.loadModels().toPromise();
|
|
78
78
|
}
|
|
79
79
|
loadModels() {
|
|
80
80
|
this.modelsLoading = true;
|
|
81
81
|
return this.http
|
|
82
82
|
.get(gitlabRawUrl({ apiUrl: this.commonService.apiBaseUrl, repository: Repository.models, path: 'model-links.json' }))
|
|
83
|
-
.pipe(catchError(() => of({ links: [] })), map(({ links, ecoinventLinks }) => {
|
|
83
|
+
.pipe(map(data => JSON.parse(data)), catchError(() => of({ links: [] })), map(({ links, ecoinventLinks }) => {
|
|
84
84
|
this._models.next([...links.map(mapModelLink(false)), ...(ecoinventLinks || []).map(mapModelLink(true))]);
|
|
85
85
|
this.modelsLoading = false;
|
|
86
86
|
this.modelsLoaded = true;
|
|
@@ -171,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImpor
|
|
|
171
171
|
type: Inject,
|
|
172
172
|
args: [HE_ORCHESTRATOR_BASE_URL]
|
|
173
173
|
}] }, { type: i1.HttpClient }, { type: i2.HeCommonService }]; } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUd0RyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBQy9GLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDLENBQUM7QUFFL0YsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFFaEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBZ0IsRUFBRSxNQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FB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a0IsQ0FBQyxJQUFjLEVBQUUsRUFBVztRQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzQixHQUFHLElBQUksQ0FBQyxvQkFBb0IscUJBQXFCLEVBQUU7WUFDM0YsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDN0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQWMsRUFBRSxFQUFXO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2RCxDQUFDOzhHQXBJVSxlQUFlLGtCQVdoQix3QkFBd0IsYUFDeEIsd0JBQXdCO2tIQVp2QixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVlJLE1BQU07MkJBQUMsd0JBQXdCOzswQkFDL0IsTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBtZXJnZUFsbCwgbWVyZ2VNYXAsIHNoYXJlUmVwbGF5LCB0YWtlLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRW1pc3Npb25NZXRob2RUaWVyLCBKU09OTEQsIE5vZGVUeXBlLCBTY2hlbWFUeXBlLCBTaXRlU2l0ZVR5cGUsIFRlcm1UZXJtVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHRvRGFzaENhc2UgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3V0aWxzJztcblxuaW1wb3J0IHsgSGVDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IGJhc2VVcmwsIGdpdEhvbWUsIGdpdGxhYlJhd1VybCwgZ2l0QnJhbmNoLCBmaWx0ZXJQYXJhbXMsIFJlcG9zaXRvcnkgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgYmxhbmtOb2RlIH0gZnJvbSAnLi4vY29tbW9uL25vZGUtdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgSEVfQ0FMQ1VMQVRJT05TX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0hFX0NBTENVTEFUSU9OU19CQVNFX1VSTCcpO1xuZXhwb3J0IGNvbnN0IEhFX09SQ0hFU1RSQVRPUl9CQVNFX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdIRV9PUkNIRVNUUkFUT1JfQkFTRV9VUkwnKTtcblxuZXhwb3J0IGNvbnN0IGVuZ2luZUdpdEJhc2VVcmwgPSAoKSA9PiBbZ2l0SG9tZSwgUmVwb3NpdG9yeS5tb2RlbHNdLmpvaW4oJy8nKTtcbmV4cG9ydCBjb25zdCBlbmdpbmVHaXRVcmwgPSAoKSA9PiBgJHtlbmdpbmVHaXRCYXNlVXJsKCl9Ly0vYmxvYi8ke2dpdEJyYW5jaCgpfWA7XG5cbmV4cG9ydCBjb25zdCBmaW5kTW9kZWxzID0gKG1vZGVsczogSU1vZGVsW10sIHRlcm1JZDogc3RyaW5nKSA9PiBtb2RlbHMuZmlsdGVyKCh7IHRlcm0gfSkgPT4gdGVybSA9PT0gdGVybUlkKTtcblxuZXhwb3J0IGNvbnN0IGZpbmRNYXRjaGluZ01vZGVsID0gKG1vZGVsczogKElNb2RlbCB8IElNb2RlbFtdKVtdLCBtb2RlbDogUGFydGlhbDxJTW9kZWw+KSA9PlxuICBPYmplY3Qua2V5cyhtb2RlbCkubGVuZ3RoID4gMFxuICAgID8gbW9kZWxzLmZsYXQoKS5maW5kKG0gPT4gT2JqZWN0LmVudHJpZXMobW9kZWwpLmV2ZXJ5KChba2V5LCB2YWx1ZV0pID0+IHZhbHVlID09PSBtW2tleV0pKVxuICAgIDogbnVsbDtcblxuZXhwb3J0IGNvbnN0IG1vZGVsUGFyYW1zID0gKG5vZGU6IFBhcnRpYWw8YmxhbmtOb2RlPiwgaW5jbHVkZVRlcm0gPSB0cnVlKSA9PlxuICBmaWx0ZXJQYXJhbXMoe1xuICAgIG1vZGVsOiAnbWV0aG9kTW9kZWwnIGluIG5vZGUgPyBub2RlPy5tZXRob2RNb2RlbCFbJ0BpZCddIDogdW5kZWZpbmVkLFxuICAgIC4uLihpbmNsdWRlVGVybSA/IHsgdGVybTogJ3Rlcm0nIGluIG5vZGUgPyBub2RlPy50ZXJtIVsnQGlkJ10gOiB1bmRlZmluZWQgfSA6IHt9KVxuICB9KTtcblxuZXhwb3J0IGNvbnN0IG1vZGVsS2V5UGFyYW1zID0gKG5vZGU6IFBhcnRpYWw8YmxhbmtOb2RlPiwga2V5OiBzdHJpbmcpID0+XG4gIGZpbHRlclBhcmFtcyh7XG4gICAgbW9kZWw6IChub2RlPy5bJ0B0eXBlJ10gfHwgbm9kZT8udHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKSxcbiAgICBtb2RlbEtleToga2V5XG4gIH0pO1xuXG4vKipcbiAqIEZpbmQgbW9kZWxzIGZyb20gdGhlIG9yY2hlc3RyYXRvciBjb25maWd1cmF0aW9uLlxuICpcbiAqIEBwYXJhbSBjb25maWcgVGhlIG9yY2hlc3RyYXRvciBjb25maWd1cmF0aW9uIGNvbnRlbnQuXG4gKiBAcGFyYW0gdGVybUlkIFRoZSBgQGlkYCBvZiB0aGUgVGVybS5cbiAqIEBwYXJhbSBtb2RlbEtleSBUaGUga2V5IG9mIHRoZSBjb25maWd1cmF0aW9uIChlLmcuIFwicHJvZHVjdHNcIiwgXCJpbnB1dHNcIilcbiAqIEBwYXJhbSBtb2RlbHMgT3B0aW9uYWwgLSBsaXN0IG9mIG1vZGVscyBmcm9tIGBtb2RlbC1saW5rcy5qc29uYCB0byBkZWZhdWx0IHdoZW4gb3JjaGVzdHJhdG9yIGRvZXMgbm90IGNvbnRhaW4gY29uZmlnLlxuICogQHJldHVybnMgTGlzdCBvZiBtb2RlbHMgZnJvbSBvcmNoZXN0cmF0b3Igb3IgbW9kZWxzIGlmIHNldC5cbiAqL1xuZXhwb3J0IGNvbnN0IGZpbmRDb25maWdNb2RlbHMgPSAoXG4gIGNvbmZpZzogSU9yY2hlc3RyYXRvckNvbmZpZyxcbiAgdGVybUlkOiBzdHJpbmcsXG4gIG1vZGVsS2V5OiBzdHJpbmcsXG4gIG1vZGVsczogSU1vZGVsW10gPSBbXVxuKSA9PiB7XG4gIGNvbnN0IGNvbmZpZ01vZGVscyA9IGNvbmZpZy5tb2RlbHNcbiAgICAuZmxhdCgpXG4gICAgLmZpbHRlcigoeyB2YWx1ZSwga2V5IH0pID0+IHRlcm1JZCA9PT0gdmFsdWUgJiYgKCFtb2RlbEtleSB8fCBrZXkgPT09IG1vZGVsS2V5KSk7XG4gIHJldHVybiBjb25maWdNb2RlbHMubGVuZ3RoID8gY29uZmlnTW9kZWxzIDogZmluZE1vZGVscyhtb2RlbHMsIHRlcm1JZCk7XG59O1xuXG5jb25zdCBjdXN0b21UZXJtQXBpRG9jc1BhdGggPSB7XG4gICdleGNyZXRhLWtnLW1hc3MnOiAnZXhjcmV0YS1rZydcbn07XG5cbmV4cG9ydCBjb25zdCBwYXRoVG9BcGlEb2NzUGF0aCA9IChtb2RlbDogc3RyaW5nLCB0ZXJtPzogc3RyaW5nKSA9PlxuICBbXG4gICAgYmFzZVVybCgpLFxuICAgICdkb2NzJyxcbiAgICBbJyNoZXN0aWEtY2FsY3VsYXRpb24tbW9kZWxzJywgdG9EYXNoQ2FzZShtb2RlbCksIGN1c3RvbVRlcm1BcGlEb2NzUGF0aFt0b0Rhc2hDYXNlKHRlcm0pXSB8fCB0b0Rhc2hDYXNlKHRlcm0pXVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oJy0nKVxuICBdLmpvaW4oJy8nKTtcblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWwge1xuICAvKipcbiAgICogSXMgbW9kZWwgZnJvbSBFY29pbnZlbnRWMy5cbiAgICovXG4gIGVjb2ludmVudDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGltcGxlbWVudGF0aW9uIChjb2RlKSBvZiB0aGUgbW9kZWwuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBtb2RlbC5cbiAgICovXG4gIGRvY1BhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIEFQSSBEb2N1bWVudGF0aW9uLlxuICAgKi9cbiAgYXBpRG9jc1BhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbW9kZWwgdXNlZCBhcyBgbWV0aG9kTW9kZWxgLlxuICAgKi9cbiAgbW9kZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0ZXJtIHRoZSBtb2RlbCBpcyBhc3NvY2lhdGVkIHdpdGguXG4gICAqL1xuICB0ZXJtPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG1ldGhvZFRpZXIgb2YgdGhlIEVtaXNzaW9uIChpZiBhcHBsaWNhYmxlKS5cbiAgICovXG4gIG1ldGhvZFRpZXI/OiBFbWlzc2lvbk1ldGhvZFRpZXI7XG4gIC8qKlxuICAgKiBBIGtleSBpbiB0aGUgbW9kZWwgaWYgdGVybSBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIG1vZGVsS2V5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgSU1vZGVsTGlua3Mge1xuICBsaW5rczogSU1vZGVsW107XG4gIGVjb2ludmVudExpbmtzPzogSU1vZGVsW107XG59XG5cbmNvbnN0IG1hcE1vZGVsTGluayA9XG4gIChlY29pbnZlbnQgPSBmYWxzZSkgPT5cbiAgKHsgcGF0aCwgZG9jUGF0aCwgLi4ubGluayB9OiBJTW9kZWwpID0+ICh7XG4gICAgLi4ubGluayxcbiAgICBlY29pbnZlbnQsXG4gICAgcGF0aDogYCR7ZW5naW5lR2l0VXJsKCl9LyR7cGF0aH1gLFxuICAgIGRvY1BhdGg6IGAke2VuZ2luZUdpdFVybCgpfS8ke2RvY1BhdGh9YCxcbiAgICBhcGlEb2NzUGF0aDogcGF0aFRvQXBpRG9jc1BhdGgobGluay5tb2RlbCwgbGluay50ZXJtIHx8IGxpbmsubW9kZWxLZXkpXG4gIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxjdWxhdGlvbnNNb2RlbHNQYXJhbXMge1xuICB0ZXJtVHlwZT86IFNjaGVtYVR5cGU7XG4gIHByb2R1Y3RUZXJtSWQ/OiBzdHJpbmc7XG4gIHByb2R1Y3RUZXJtVHlwZT86IFRlcm1UZXJtVHlwZTtcbiAgdGllcj86IEVtaXNzaW9uTWV0aG9kVGllcjtcbiAgc2l0ZVR5cGU/OiBTaXRlU2l0ZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcyBleHRlbmRzIElDYWxjdWxhdGlvbnNNb2RlbHNQYXJhbXMge1xuICBmb3JtYXQ/OiAnY3N2Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsY3VsYXRpb25zTW9kZWwge1xuICBtb2RlbDogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3JjaGVzdHJhdG9yTW9kZWxDb25maWcge1xuICBrZXk6IHN0cmluZztcbiAgbW9kZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgcnVuU3RyYXRlZ3k6ICdhbHdheXMnIHwgJ2FkZF9rZXlfaWZfbWlzc2luZycgfCAnYWRkX2JsYW5rX25vZGVfaWZfbWlzc2luZyc7XG4gIHJ1bkFyZ3M/OiBhbnk7XG4gIG1lcmdlU3RyYXRlZ3k6ICdkZWZhdWx0JyB8ICdhcHBlbmQnIHwgJ2xpc3QnIHwgJ25vZGUnO1xuICBtZXJnZUFyZ3M/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9yY2hlc3RyYXRvckNvbmZpZyB7XG4gIG1vZGVsczogKElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZyB8IElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZ1tdKVtdO1xufVxuXG5leHBvcnQgY29uc3QgZmluZE9yY2hlc3RyYXRvck1vZGVsID0gKHsgbW9kZWxzIH06IElPcmNoZXN0cmF0b3JDb25maWcsIG1vZGVsOiBQYXJ0aWFsPElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZz4pID0+XG4gIE9iamVjdC5rZXlzKG1vZGVsKS5sZW5ndGggPiAwXG4gICAgPyBtb2RlbHMuZmxhdCgpLmZpbmQobSA9PiBPYmplY3QuZW50cmllcyhtb2RlbCkuZXZlcnkoKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUgPT09IG1ba2V5XSkpXG4gICAgOiBudWxsO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIZUVuZ2luZVNlcnZpY2Uge1xuICBwcml2YXRlIG1vZGVsc0xvYWRpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBtb2RlbHNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbW9kZWxzID0gbmV3IFJlcGxheVN1YmplY3Q8SU1vZGVsW10+KDEpO1xuXG4gIHByaXZhdGUgX3JlY29tbWVuZGF0aW9uczogeyBba2V5OiBzdHJpbmddOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB9ID0ge307XG4gIHByaXZhdGUgX3JlcXVpcmVtZW50czogeyBba2V5OiBzdHJpbmddOiBPYnNlcnZhYmxlPEpTT05MRDxOb2RlVHlwZT4+IH0gPSB7fTtcblxuICBwdWJsaWMgbGF0ZXN0VmVyc2lvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEhFX0NBTENVTEFUSU9OU19CQVNFX1VSTCkgcHJpdmF0ZSBfY2FsY3VsYXRpb25zQmFzZVVybDogc3RyaW5nLFxuICAgIEBJbmplY3QoSEVfT1JDSEVTVFJBVE9SX0JBU0VfVVJMKSBwcml2YXRlIF9vcmNoZXN0cmF0b3JCYXNlVXJsOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGNvbW1vblNlcnZpY2U6IEhlQ29tbW9uU2VydmljZVxuICApIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbiAgICB0aGlzLmxhdGVzdFZlcnNpb24kID0gdGhpcy5odHRwXG4gICAgICAuZ2V0PGFueT4oXG4gICAgICAgIGdpdGxhYlJhd1VybCh7IGFwaVVybDogdGhpcy5jb21tb25TZXJ2aWNlLmFwaUJhc2VVcmwsIHJlcG9zaXRvcnk6IFJlcG9zaXRvcnkubW9kZWxzLCBwYXRoOiAncGFja2FnZS5qc29uJyB9KVxuICAgICAgKVxuICAgICAgLnBpcGUobWFwKCh7IHZlcnNpb24gfSkgPT4gdmVyc2lvbikpO1xuICAgIHJldHVybiB0aGlzLmxvYWRNb2RlbHMoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE1vZGVscygpIHtcbiAgICB0aGlzLm1vZGVsc0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8SU1vZGVsTGlua3M+KFxuICAgICAgICBnaXRsYWJSYXdVcmwoeyBhcGlVcmw6IHRoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsLCByZXBvc2l0b3J5OiBSZXBvc2l0b3J5Lm1vZGVscywgcGF0aDogJ21vZGVsLWxpbmtzLmpzb24nIH0pXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih7IGxpbmtzOiBbXSB9IGFzIElNb2RlbExpbmtzKSksXG4gICAgICAgIG1hcCgoeyBsaW5rcywgZWNvaW52ZW50TGlua3MgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuX21vZGVscy5uZXh0KFsuLi5saW5rcy5tYXAobWFwTW9kZWxMaW5rKGZhbHNlKSksIC4uLihlY29pbnZlbnRMaW5rcyB8fCBbXSkubWFwKG1hcE1vZGVsTGluayh0cnVlKSldKTtcbiAgICAgICAgICB0aGlzLm1vZGVsc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1vZGVsc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIGxpbmtzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IG1vZGVscyQoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzTG9hZGluZyB8fCB0aGlzLm1vZGVsc0xvYWRlZCA/IHRoaXMuX21vZGVscy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZE1vZGVscygpO1xuICB9XG5cbiAgcHVibGljIGFsbE1vZGVscyQoaW5jbHVkZUVjb2ludmVudCA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzJC5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1lcmdlQWxsKCksXG4gICAgICBmaWx0ZXIoKHsgZWNvaW52ZW50IH0pID0+IGluY2x1ZGVFY29pbnZlbnQgfHwgIWVjb2ludmVudCksXG4gICAgICB0b0FycmF5KClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1vZGVsJChtb2RlbDogUGFydGlhbDxJTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxzJC5waXBlKG1hcChtb2RlbHMgPT4gZmluZE1hdGNoaW5nTW9kZWwobW9kZWxzLCBtb2RlbCkpKTtcbiAgfVxuXG4gIHB1YmxpYyBub2RlTW9kZWwkKG5vZGU6IFBhcnRpYWw8YmxhbmtOb2RlPiwga2V5Pzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwkKG1vZGVsUGFyYW1zKG5vZGUpKS5waXBlKFxuICAgICAgLy8gZmFsbGJhY2sgdG8gbW9kZWxLZXlcbiAgICAgIG1lcmdlTWFwKHZhbHVlID0+ICgha2V5IHx8IHZhbHVlID8gb2YodmFsdWUpIDogdGhpcy5tb2RlbCQobW9kZWxLZXlQYXJhbXMobm9kZSwga2V5KSkpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwobW9kZWw6IFBhcnRpYWw8SU1vZGVsPikge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJChtb2RlbCkucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBsYXRlc3RWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmxhdGVzdFZlcnNpb24kLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgbGlzdE1vZGVscyhwYXJhbXM6IElDYWxjdWxhdGlvbnNNb2RlbHNQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PHsgbW9kZWxzOiBJQ2FsY3VsYXRpb25zTW9kZWxbXSB9PihgJHt0aGlzLl9jYWxjdWxhdGlvbnNCYXNlVXJsfS9tb2RlbHNgLCB7XG4gICAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHBhcmFtcylcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVxdWlyZW1lbnRzJChwYXJhbXM6IElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMpIHtcbiAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShmaWx0ZXJQYXJhbXMocGFyYW1zKSk7XG4gICAgdGhpcy5fcmVxdWlyZW1lbnRzW2tleV0gPVxuICAgICAgdGhpcy5fcmVxdWlyZW1lbnRzW2tleV0gfHxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEpTT05MRDxOb2RlVHlwZT4+KGAke3RoaXMuX2NhbGN1bGF0aW9uc0Jhc2VVcmx9L21vZGVscy9yZXF1aXJlbWVudHNgLCB7XG4gICAgICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMocGFyYW1zKVxuICAgICAgICB9KVxuICAgICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVtZW50c1trZXldO1xuICB9XG5cbiAgcHVibGljIGdldFJlcXVpcmVtZW50cyhwYXJhbXM6IElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZXF1aXJlbWVudHMkKHBhcmFtcykudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGVybUlkcyQocGFyYW1zOiBJQ2FsY3VsYXRpb25zUmVxdWlyZW1lbnRzUGFyYW1zKSB7XG4gICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyUGFyYW1zKHBhcmFtcykpO1xuICAgIHRoaXMuX3JlY29tbWVuZGF0aW9uc1trZXldID1cbiAgICAgIHRoaXMuX3JlY29tbWVuZGF0aW9uc1trZXldIHx8XG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxzdHJpbmdbXT4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vbW9kZWxzL3Rlcm0taWRzYCwge1xuICAgICAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHBhcmFtcylcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICAgIHJldHVybiB0aGlzLl9yZWNvbW1lbmRhdGlvbnNba2V5XTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUZXJtSWRzKHBhcmFtczogSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmdldFRlcm1JZHMkKHBhcmFtcylcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLmNhdGNoKCgpID0+IFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvcmNoZXN0cmF0b3JDb25maWdVcmwodHlwZT86IE5vZGVUeXBlKSB7XG4gICAgY29uc3QgY29uZmlnVXJsID0gdGhpcy5fb3JjaGVzdHJhdG9yQmFzZVVybDtcbiAgICByZXR1cm4gdHlwZSA/IGAke2NvbmZpZ1VybH0vJHt0eXBlfS5qc29uYCA6IGNvbmZpZ1VybC5zdWJzdHJpbmcoMCwgY29uZmlnVXJsLmluZGV4T2YoJy9yYXcnKSk7XG4gIH1cblxuICBwdWJsaWMgb2NoZXN0cmF0b3JDb25maWckKHR5cGU6IE5vZGVUeXBlLCBpZD86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElPcmNoZXN0cmF0b3JDb25maWc+KGAke3RoaXMuX2NhbGN1bGF0aW9uc0Jhc2VVcmx9L3JlY2FsY3VsYXRlL2NvbmZpZ2AsIHtcbiAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHsgdHlwZSwgJ0B0eXBlJzogdHlwZSwgaWQsICdAaWQnOiBpZCB9KVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9jaGVzdHJhdG9yQ29uZmlnKHR5cGU6IE5vZGVUeXBlLCBpZD86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9jaGVzdHJhdG9yQ29uZmlnJCh0eXBlLCBpZCkudG9Qcm9taXNlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW5naW5lL2VuZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUd0RyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBQy9GLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDLENBQUM7QUFFL0YsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLFNBQVMsRUFBRSxFQUFFLENBQUM7QUFFaEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBZ0IsRUFBRSxNQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FB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QUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVNLGtCQUFrQixDQUFDLElBQWMsRUFBRSxFQUFXO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXNCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixxQkFBcUIsRUFBRTtZQUMzRixNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCLENBQUMsSUFBYyxFQUFFLEVBQVc7UUFDbEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3ZELENBQUM7OEdBeElVLGVBQWUsa0JBV2hCLHdCQUF3QixhQUN4Qix3QkFBd0I7a0hBWnZCLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBWUksTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIG1lcmdlQWxsLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRha2UsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbWlzc2lvbk1ldGhvZFRpZXIsIEpTT05MRCwgTm9kZVR5cGUsIFNjaGVtYVR5cGUsIFNpdGVTaXRlVHlwZSwgVGVybVRlcm1UeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgdG9EYXNoQ2FzZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuXG5pbXBvcnQgeyBIZUNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgYmFzZVVybCwgZ2l0SG9tZSwgZ2l0bGFiUmF3VXJsLCBnaXRCcmFuY2gsIGZpbHRlclBhcmFtcywgUmVwb3NpdG9yeSB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBibGFua05vZGUgfSBmcm9tICcuLi9jb21tb24vbm9kZS11dGlscyc7XG5cbmV4cG9ydCBjb25zdCBIRV9DQUxDVUxBVElPTlNfQkFTRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignSEVfQ0FMQ1VMQVRJT05TX0JBU0VfVVJMJyk7XG5leHBvcnQgY29uc3QgSEVfT1JDSEVTVFJBVE9SX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0hFX09SQ0hFU1RSQVRPUl9CQVNFX1VSTCcpO1xuXG5leHBvcnQgY29uc3QgZW5naW5lR2l0QmFzZVVybCA9ICgpID0+IFtnaXRIb21lLCBSZXBvc2l0b3J5Lm1vZGVsc10uam9pbignLycpO1xuZXhwb3J0IGNvbnN0IGVuZ2luZUdpdFVybCA9ICgpID0+IGAke2VuZ2luZUdpdEJhc2VVcmwoKX0vLS9ibG9iLyR7Z2l0QnJhbmNoKCl9YDtcblxuZXhwb3J0IGNvbnN0IGZpbmRNb2RlbHMgPSAobW9kZWxzOiBJTW9kZWxbXSwgdGVybUlkOiBzdHJpbmcpID0+IG1vZGVscy5maWx0ZXIoKHsgdGVybSB9KSA9PiB0ZXJtID09PSB0ZXJtSWQpO1xuXG5leHBvcnQgY29uc3QgZmluZE1hdGNoaW5nTW9kZWwgPSAobW9kZWxzOiAoSU1vZGVsIHwgSU1vZGVsW10pW10sIG1vZGVsOiBQYXJ0aWFsPElNb2RlbD4pID0+XG4gIE9iamVjdC5rZXlzKG1vZGVsKS5sZW5ndGggPiAwXG4gICAgPyBtb2RlbHMuZmxhdCgpLmZpbmQobSA9PiBPYmplY3QuZW50cmllcyhtb2RlbCkuZXZlcnkoKFtrZXksIHZhbHVlXSkgPT4gdmFsdWUgPT09IG1ba2V5XSkpXG4gICAgOiBudWxsO1xuXG5leHBvcnQgY29uc3QgbW9kZWxQYXJhbXMgPSAobm9kZTogUGFydGlhbDxibGFua05vZGU+LCBpbmNsdWRlVGVybSA9IHRydWUpID0+XG4gIGZpbHRlclBhcmFtcyh7XG4gICAgbW9kZWw6ICdtZXRob2RNb2RlbCcgaW4gbm9kZSA/IG5vZGU/Lm1ldGhvZE1vZGVsIVsnQGlkJ10gOiB1bmRlZmluZWQsXG4gICAgLi4uKGluY2x1ZGVUZXJtID8geyB0ZXJtOiAndGVybScgaW4gbm9kZSA/IG5vZGU/LnRlcm0hWydAaWQnXSA6IHVuZGVmaW5lZCB9IDoge30pXG4gIH0pO1xuXG5leHBvcnQgY29uc3QgbW9kZWxLZXlQYXJhbXMgPSAobm9kZTogUGFydGlhbDxibGFua05vZGU+LCBrZXk6IHN0cmluZykgPT5cbiAgZmlsdGVyUGFyYW1zKHtcbiAgICBtb2RlbDogKG5vZGU/LlsnQHR5cGUnXSB8fCBub2RlPy50eXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpLFxuICAgIG1vZGVsS2V5OiBrZXlcbiAgfSk7XG5cbi8qKlxuICogRmluZCBtb2RlbHMgZnJvbSB0aGUgb3JjaGVzdHJhdG9yIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQHBhcmFtIGNvbmZpZyBUaGUgb3JjaGVzdHJhdG9yIGNvbmZpZ3VyYXRpb24gY29udGVudC5cbiAqIEBwYXJhbSB0ZXJtSWQgVGhlIGBAaWRgIG9mIHRoZSBUZXJtLlxuICogQHBhcmFtIG1vZGVsS2V5IFRoZSBrZXkgb2YgdGhlIGNvbmZpZ3VyYXRpb24gKGUuZy4gXCJwcm9kdWN0c1wiLCBcImlucHV0c1wiKVxuICogQHBhcmFtIG1vZGVscyBPcHRpb25hbCAtIGxpc3Qgb2YgbW9kZWxzIGZyb20gYG1vZGVsLWxpbmtzLmpzb25gIHRvIGRlZmF1bHQgd2hlbiBvcmNoZXN0cmF0b3IgZG9lcyBub3QgY29udGFpbiBjb25maWcuXG4gKiBAcmV0dXJucyBMaXN0IG9mIG1vZGVscyBmcm9tIG9yY2hlc3RyYXRvciBvciBtb2RlbHMgaWYgc2V0LlxuICovXG5leHBvcnQgY29uc3QgZmluZENvbmZpZ01vZGVscyA9IChcbiAgY29uZmlnOiBJT3JjaGVzdHJhdG9yQ29uZmlnLFxuICB0ZXJtSWQ6IHN0cmluZyxcbiAgbW9kZWxLZXk6IHN0cmluZyxcbiAgbW9kZWxzOiBJTW9kZWxbXSA9IFtdXG4pID0+IHtcbiAgY29uc3QgY29uZmlnTW9kZWxzID0gY29uZmlnLm1vZGVsc1xuICAgIC5mbGF0KClcbiAgICAuZmlsdGVyKCh7IHZhbHVlLCBrZXkgfSkgPT4gdGVybUlkID09PSB2YWx1ZSAmJiAoIW1vZGVsS2V5IHx8IGtleSA9PT0gbW9kZWxLZXkpKTtcbiAgcmV0dXJuIGNvbmZpZ01vZGVscy5sZW5ndGggPyBjb25maWdNb2RlbHMgOiBmaW5kTW9kZWxzKG1vZGVscywgdGVybUlkKTtcbn07XG5cbmNvbnN0IGN1c3RvbVRlcm1BcGlEb2NzUGF0aCA9IHtcbiAgJ2V4Y3JldGEta2ctbWFzcyc6ICdleGNyZXRhLWtnJ1xufTtcblxuZXhwb3J0IGNvbnN0IHBhdGhUb0FwaURvY3NQYXRoID0gKG1vZGVsOiBzdHJpbmcsIHRlcm0/OiBzdHJpbmcpID0+XG4gIFtcbiAgICBiYXNlVXJsKCksXG4gICAgJ2RvY3MnLFxuICAgIFsnI2hlc3RpYS1jYWxjdWxhdGlvbi1tb2RlbHMnLCB0b0Rhc2hDYXNlKG1vZGVsKSwgY3VzdG9tVGVybUFwaURvY3NQYXRoW3RvRGFzaENhc2UodGVybSldIHx8IHRvRGFzaENhc2UodGVybSldXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAuam9pbignLScpXG4gIF0uam9pbignLycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbCB7XG4gIC8qKlxuICAgKiBJcyBtb2RlbCBmcm9tIEVjb2ludmVudFYzLlxuICAgKi9cbiAgZWNvaW52ZW50OiBib29sZWFuO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgaW1wbGVtZW50YXRpb24gKGNvZGUpIG9mIHRoZSBtb2RlbC5cbiAgICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIG1vZGVsLlxuICAgKi9cbiAgZG9jUGF0aDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0aCB0byB0aGUgQVBJIERvY3VtZW50YXRpb24uXG4gICAqL1xuICBhcGlEb2NzUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBtb2RlbCB1c2VkIGFzIGBtZXRob2RNb2RlbGAuXG4gICAqL1xuICBtb2RlbDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHRlcm0gdGhlIG1vZGVsIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAgICovXG4gIHRlcm0/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWV0aG9kVGllciBvZiB0aGUgRW1pc3Npb24gKGlmIGFwcGxpY2FibGUpLlxuICAgKi9cbiAgbWV0aG9kVGllcj86IEVtaXNzaW9uTWV0aG9kVGllcjtcbiAgLyoqXG4gICAqIEEga2V5IGluIHRoZSBtb2RlbCBpZiB0ZXJtIGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgbW9kZWxLZXk/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJTW9kZWxMaW5rcyB7XG4gIGxpbmtzOiBJTW9kZWxbXTtcbiAgZWNvaW52ZW50TGlua3M/OiBJTW9kZWxbXTtcbn1cblxuY29uc3QgbWFwTW9kZWxMaW5rID1cbiAgKGVjb2ludmVudCA9IGZhbHNlKSA9PlxuICAoeyBwYXRoLCBkb2NQYXRoLCAuLi5saW5rIH06IElNb2RlbCkgPT4gKHtcbiAgICAuLi5saW5rLFxuICAgIGVjb2ludmVudCxcbiAgICBwYXRoOiBgJHtlbmdpbmVHaXRVcmwoKX0vJHtwYXRofWAsXG4gICAgZG9jUGF0aDogYCR7ZW5naW5lR2l0VXJsKCl9LyR7ZG9jUGF0aH1gLFxuICAgIGFwaURvY3NQYXRoOiBwYXRoVG9BcGlEb2NzUGF0aChsaW5rLm1vZGVsLCBsaW5rLnRlcm0gfHwgbGluay5tb2RlbEtleSlcbiAgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbGN1bGF0aW9uc01vZGVsc1BhcmFtcyB7XG4gIHRlcm1UeXBlPzogU2NoZW1hVHlwZTtcbiAgcHJvZHVjdFRlcm1JZD86IHN0cmluZztcbiAgcHJvZHVjdFRlcm1UeXBlPzogVGVybVRlcm1UeXBlO1xuICB0aWVyPzogRW1pc3Npb25NZXRob2RUaWVyO1xuICBzaXRlVHlwZT86IFNpdGVTaXRlVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsY3VsYXRpb25zUmVxdWlyZW1lbnRzUGFyYW1zIGV4dGVuZHMgSUNhbGN1bGF0aW9uc01vZGVsc1BhcmFtcyB7XG4gIGZvcm1hdD86ICdjc3YnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYWxjdWxhdGlvbnNNb2RlbCB7XG4gIG1vZGVsOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPcmNoZXN0cmF0b3JNb2RlbENvbmZpZyB7XG4gIGtleTogc3RyaW5nO1xuICBtb2RlbDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBydW5TdHJhdGVneTogJ2Fsd2F5cycgfCAnYWRkX2tleV9pZl9taXNzaW5nJyB8ICdhZGRfYmxhbmtfbm9kZV9pZl9taXNzaW5nJztcbiAgcnVuQXJncz86IGFueTtcbiAgbWVyZ2VTdHJhdGVneTogJ2RlZmF1bHQnIHwgJ2FwcGVuZCcgfCAnbGlzdCcgfCAnbm9kZSc7XG4gIG1lcmdlQXJncz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3JjaGVzdHJhdG9yQ29uZmlnIHtcbiAgbW9kZWxzOiAoSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnIHwgSU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnW10pW107XG59XG5cbmV4cG9ydCBjb25zdCBmaW5kT3JjaGVzdHJhdG9yTW9kZWwgPSAoeyBtb2RlbHMgfTogSU9yY2hlc3RyYXRvckNvbmZpZywgbW9kZWw6IFBhcnRpYWw8SU9yY2hlc3RyYXRvck1vZGVsQ29uZmlnPikgPT5cbiAgT2JqZWN0LmtleXMobW9kZWwpLmxlbmd0aCA+IDBcbiAgICA/IG1vZGVscy5mbGF0KCkuZmluZChtID0+IE9iamVjdC5lbnRyaWVzKG1vZGVsKS5ldmVyeSgoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZSA9PT0gbVtrZXldKSlcbiAgICA6IG51bGw7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlRW5naW5lU2VydmljZSB7XG4gIHByaXZhdGUgbW9kZWxzTG9hZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIG1vZGVsc0xvYWRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9tb2RlbHMgPSBuZXcgUmVwbGF5U3ViamVjdDxJTW9kZWxbXT4oMSk7XG5cbiAgcHJpdmF0ZSBfcmVjb21tZW5kYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IE9ic2VydmFibGU8c3RyaW5nW10+IH0gPSB7fTtcbiAgcHJpdmF0ZSBfcmVxdWlyZW1lbnRzOiB7IFtrZXk6IHN0cmluZ106IE9ic2VydmFibGU8SlNPTkxEPE5vZGVUeXBlPj4gfSA9IHt9O1xuXG4gIHB1YmxpYyBsYXRlc3RWZXJzaW9uJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoSEVfQ0FMQ1VMQVRJT05TX0JBU0VfVVJMKSBwcml2YXRlIF9jYWxjdWxhdGlvbnNCYXNlVXJsOiBzdHJpbmcsXG4gICAgQEluamVjdChIRV9PUkNIRVNUUkFUT1JfQkFTRV9VUkwpIHByaXZhdGUgX29yY2hlc3RyYXRvckJhc2VVcmw6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgY29tbW9uU2VydmljZTogSGVDb21tb25TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIHRoaXMubGF0ZXN0VmVyc2lvbiQgPSB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8YW55PihcbiAgICAgICAgZ2l0bGFiUmF3VXJsKHsgYXBpVXJsOiB0aGlzLmNvbW1vblNlcnZpY2UuYXBpQmFzZVVybCwgcmVwb3NpdG9yeTogUmVwb3NpdG9yeS5tb2RlbHMsIHBhdGg6ICdwYWNrYWdlLmpzb24nIH0pXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGRhdGEgPT4gSlNPTi5wYXJzZShkYXRhKSksXG4gICAgICAgIG1hcCgoeyB2ZXJzaW9uIH0pID0+IHZlcnNpb24pXG4gICAgICApO1xuICAgIHJldHVybiB0aGlzLmxvYWRNb2RlbHMoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZE1vZGVscygpIHtcbiAgICB0aGlzLm1vZGVsc0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8SU1vZGVsTGlua3M+KFxuICAgICAgICBnaXRsYWJSYXdVcmwoeyBhcGlVcmw6IHRoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsLCByZXBvc2l0b3J5OiBSZXBvc2l0b3J5Lm1vZGVscywgcGF0aDogJ21vZGVsLWxpbmtzLmpzb24nIH0pXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGRhdGEgPT4gSlNPTi5wYXJzZShkYXRhIGFzIGFueSkgYXMgSU1vZGVsTGlua3MpLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHsgbGlua3M6IFtdIH0gYXMgSU1vZGVsTGlua3MpKSxcbiAgICAgICAgbWFwKCh7IGxpbmtzLCBlY29pbnZlbnRMaW5rcyB9KSA9PiB7XG4gICAgICAgICAgdGhpcy5fbW9kZWxzLm5leHQoWy4uLmxpbmtzLm1hcChtYXBNb2RlbExpbmsoZmFsc2UpKSwgLi4uKGVjb2ludmVudExpbmtzIHx8IFtdKS5tYXAobWFwTW9kZWxMaW5rKHRydWUpKV0pO1xuICAgICAgICAgIHRoaXMubW9kZWxzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubW9kZWxzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gbGlua3M7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgbW9kZWxzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHNMb2FkaW5nIHx8IHRoaXMubW9kZWxzTG9hZGVkID8gdGhpcy5fbW9kZWxzLmFzT2JzZXJ2YWJsZSgpIDogdGhpcy5sb2FkTW9kZWxzKCk7XG4gIH1cblxuICBwdWJsaWMgYWxsTW9kZWxzJChpbmNsdWRlRWNvaW52ZW50ID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHMkLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWVyZ2VBbGwoKSxcbiAgICAgIGZpbHRlcigoeyBlY29pbnZlbnQgfSkgPT4gaW5jbHVkZUVjb2ludmVudCB8fCAhZWNvaW52ZW50KSxcbiAgICAgIHRvQXJyYXkoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwkKG1vZGVsOiBQYXJ0aWFsPElNb2RlbD4pIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbHMkLnBpcGUobWFwKG1vZGVscyA9PiBmaW5kTWF0Y2hpbmdNb2RlbChtb2RlbHMsIG1vZGVsKSkpO1xuICB9XG5cbiAgcHVibGljIG5vZGVNb2RlbCQobm9kZTogUGFydGlhbDxibGFua05vZGU+LCBrZXk/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCQobW9kZWxQYXJhbXMobm9kZSkpLnBpcGUoXG4gICAgICAvLyBmYWxsYmFjayB0byBtb2RlbEtleVxuICAgICAgbWVyZ2VNYXAodmFsdWUgPT4gKCFrZXkgfHwgdmFsdWUgPyBvZih2YWx1ZSkgOiB0aGlzLm1vZGVsJChtb2RlbEtleVBhcmFtcyhub2RlLCBrZXkpKSkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbChtb2RlbDogUGFydGlhbDxJTW9kZWw+KSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwkKG1vZGVsKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIGxhdGVzdFZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubGF0ZXN0VmVyc2lvbiQucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBsaXN0TW9kZWxzKHBhcmFtczogSUNhbGN1bGF0aW9uc01vZGVsc1BhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQ8eyBtb2RlbHM6IElDYWxjdWxhdGlvbnNNb2RlbFtdIH0+KGAke3RoaXMuX2NhbGN1bGF0aW9uc0Jhc2VVcmx9L21vZGVsc2AsIHtcbiAgICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMocGFyYW1zKVxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXF1aXJlbWVudHMkKHBhcmFtczogSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcykge1xuICAgIGNvbnN0IGtleSA9IEpTT04uc3RyaW5naWZ5KGZpbHRlclBhcmFtcyhwYXJhbXMpKTtcbiAgICB0aGlzLl9yZXF1aXJlbWVudHNba2V5XSA9XG4gICAgICB0aGlzLl9yZXF1aXJlbWVudHNba2V5XSB8fFxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8SlNPTkxEPE5vZGVUeXBlPj4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vbW9kZWxzL3JlcXVpcmVtZW50c2AsIHtcbiAgICAgICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyhwYXJhbXMpXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZW1lbnRzW2tleV07XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVxdWlyZW1lbnRzKHBhcmFtczogSUNhbGN1bGF0aW9uc1JlcXVpcmVtZW50c1BhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmdldFJlcXVpcmVtZW50cyQocGFyYW1zKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUZXJtSWRzJChwYXJhbXM6IElDYWxjdWxhdGlvbnNSZXF1aXJlbWVudHNQYXJhbXMpIHtcbiAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShmaWx0ZXJQYXJhbXMocGFyYW1zKSk7XG4gICAgdGhpcy5fcmVjb21tZW5kYXRpb25zW2tleV0gPVxuICAgICAgdGhpcy5fcmVjb21tZW5kYXRpb25zW2tleV0gfHxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PHN0cmluZ1tdPihgJHt0aGlzLl9jYWxjdWxhdGlvbnNCYXNlVXJsfS9tb2RlbHMvdGVybS1pZHNgLCB7XG4gICAgICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMocGFyYW1zKVxuICAgICAgICB9KVxuICAgICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gICAgcmV0dXJuIHRoaXMuX3JlY29tbWVuZGF0aW9uc1trZXldO1xuICB9XG5cbiAgcHVibGljIGdldFRlcm1JZHMocGFyYW1zOiBJQ2FsY3VsYXRpb25zUmVxdWlyZW1lbnRzUGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGVybUlkcyQocGFyYW1zKVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAuY2F0Y2goKCkgPT4gW10pO1xuICB9XG5cbiAgcHVibGljIG9yY2hlc3RyYXRvckNvbmZpZ1VybCh0eXBlPzogTm9kZVR5cGUpIHtcbiAgICBjb25zdCBjb25maWdVcmwgPSB0aGlzLl9vcmNoZXN0cmF0b3JCYXNlVXJsO1xuICAgIHJldHVybiB0eXBlID8gYCR7Y29uZmlnVXJsfS8ke3R5cGV9Lmpzb25gIDogY29uZmlnVXJsLnN1YnN0cmluZygwLCBjb25maWdVcmwuaW5kZXhPZignL3JhdycpKTtcbiAgfVxuXG4gIHB1YmxpYyBvY2hlc3RyYXRvckNvbmZpZyQodHlwZTogTm9kZVR5cGUsIGlkPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SU9yY2hlc3RyYXRvckNvbmZpZz4oYCR7dGhpcy5fY2FsY3VsYXRpb25zQmFzZVVybH0vcmVjYWxjdWxhdGUvY29uZmlnYCwge1xuICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMoeyB0eXBlLCAnQHR5cGUnOiB0eXBlLCBpZCwgJ0BpZCc6IGlkIH0pXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb2NoZXN0cmF0b3JDb25maWcodHlwZTogTm9kZVR5cGUsIGlkPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub2NoZXN0cmF0b3JDb25maWckKHR5cGUsIGlkKS50b1Byb21pc2UoKTtcbiAgfVxufVxuIl19
|
|
@@ -48,4 +48,4 @@ export const buildSummary = (nodes = [], errors = [], summaryData = []) => from(
|
|
|
48
48
|
count: summaries.length,
|
|
49
49
|
showErrors: summaryShowErrors(summaryData, { level: level, path, message })
|
|
50
50
|
})))), filter(({ formattedMessage }) => !!formattedMessage))), toArray(), map(values => values.sort(({ level }) => (level === 'error' ? -1 : 1))));
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtZXJyb3Itc3VtbWFyeS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWxlcy9maWxlcy1lcnJvci1zdW1tYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBc0IsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdDLE9BQU8sRUFJTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLGFBQWEsRUFDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBMkJqRCxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQTRCLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDN0QsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sUUFBUSxLQUFLLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDcEUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxZ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Q0QsTUFBTSxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FDckQsQ0FDRixFQUNELE9BQU8sRUFBRSxFQUNULEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHJlZHVjZSwgdG9BcnJheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5pbXBvcnQgc2V0IGZyb20gJ2xvZGFzaC5zZXQnO1xuaW1wb3J0IHsgSlNPTiBhcyBIZXN0aWFKc29uLCBTY2hlbWFUeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC91dGlscyc7XG5cbmltcG9ydCB7XG4gIElWYWxpZGF0aW9uRXJyb3IsXG4gIElWYWxpZGF0aW9uRXJyb3JXaXRoSW5kZXgsXG4gIHZhbGlkYXRpb25FcnJvckxldmVsLFxuICBmaWx0ZXJFcnJvcixcbiAgZm9ybWF0RXJyb3IsXG4gIGRhdGFQYXRoTGFiZWxcbn0gZnJvbSAnLi9maWxlcy1lcnJvci5tb2RlbCc7XG5pbXBvcnQgeyBkYXRhUGF0aFRvS2V5IH0gZnJvbSAnLi9maWxlcy1mb3JtLm1vZGVsJztcbmltcG9ydCB7IGNvZGUsIG5vZGVMaW5rIH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzJztcblxuaW50ZXJmYWNlIElTdW1tYXJ5RXJyb3Ige1xuICBub2RlOiBIZXN0aWFKc29uPFNjaGVtYVR5cGU+O1xuICBlcnJvcjogSVZhbGlkYXRpb25FcnJvcjtcbiAgdGVybT86IGFueTtcbn1cblxuaW50ZXJmYWNlIElTdW1tYXJ5R3JvdXBlZCB7XG4gIFttZXNzYWdlOiBzdHJpbmddOiB7XG4gICAgW2xldmVsOiBzdHJpbmddOiB7XG4gICAgICBbbGFiZWw6IHN0cmluZ106IElTdW1tYXJ5RXJyb3JbXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdW1tYXJ5IHtcbiAgbGV2ZWw6IHZhbGlkYXRpb25FcnJvckxldmVsO1xuICBwYXRoOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZm9ybWF0dGVkTWVzc2FnZTogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xuICBzaG93RXJyb3JzOiBib29sZWFuO1xuICBlcnJvcnM6IElTdW1tYXJ5RXJyb3JbXTtcbiAgdGVybXM/OiBzdHJpbmc7XG59XG5cbmNvbnN0IG5vZGVUZXJtID0gKG5vZGU6IEhlc3RpYUpzb248U2NoZW1hVHlwZT4sIGtleTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IHRlcm1UeXBlID0gZ2V0KG5vZGUsIGAke2tleX0udHlwZWAsIGdldChub2RlLCBgJHtrZXl9LkB0eXBlYCwgbnVsbCkpO1xuICByZXR1cm4gdGVybVR5cGUgPT09IFNjaGVtYVR5cGUuVGVybSA/IGdldChub2RlLCBrZXksIG51bGwpIDogbnVsbDtcbn07XG5cbmNvbnN0IGZpbmROb2RlVGVybSA9IChub2RlOiBIZXN0aWFKc29uPFNjaGVtYVR5cGU+LCB7IGRhdGFQYXRoIH06IElWYWxpZGF0aW9uRXJyb3IpID0+XG4gIG5vZGVUZXJtKG5vZGUsIGRhdGFQYXRoVG9LZXkoZGF0YVBhdGgpKSB8fFxuICBub2RlVGVybShub2RlLCBgJHtkYXRhUGF0aFRvS2V5KGRhdGFQYXRoKX0udGVybWApIHx8XG4gIG5vZGVUZXJtKG5vZGUsIGRhdGFQYXRoVG9LZXkoZGF0YVBhdGgsIHRydWUpKSB8fFxuICBub2RlVGVybShub2RlLCBgJHtkYXRhUGF0aFRvS2V5KGRhdGFQYXRoLCB0cnVlKX0udGVybWApO1xuXG5jb25zdCB1bmlxdWVUZXJtcyA9IChlcnJvcnM6IElTdW1tYXJ5RXJyb3JbXSkgPT5cbiAgdW5pcXVlKFxuICAgIGVycm9yc1xuICAgICAgLm1hcCgoeyB0ZXJtIH0pID0+ICh0ZXJtID8gbm9kZUxpbmsodGVybSkgfHwgY29kZSh0ZXJtLm5hbWUgfHwgdGVybVsnQGlkJ10gfHwgdGVybS5pZCkgOiBudWxsKSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgKTtcblxuY29uc3Qgc3VtbWFyeVNob3dFcnJvcnMgPSAoc3VtbWFyeURhdGE6IElTdW1tYXJ5W10sIHsgcGF0aCwgbGV2ZWwsIG1lc3NhZ2UgfTogUGFydGlhbDxJU3VtbWFyeT4pID0+XG4gIHN1bW1hcnlEYXRhLmZpbmQoc3VtbWFyeSA9PiBzdW1tYXJ5LnBhdGggPT09IHBhdGggJiYgc3VtbWFyeS5sZXZlbCA9PT0gbGV2ZWwgJiYgc3VtbWFyeS5tZXNzYWdlID09PSBtZXNzYWdlKVxuICAgID8uc2hvd0Vycm9ycyB8fCB0cnVlO1xuXG4vKipcbiAqIEJ1aWxkIHRoZSBzdW1tYXJ5IG9iamVjdHMuXG4gKlxuICogQHBhcmFtIG5vZGVzIFRoZSBsaXN0IG9mIG5vZGVzLlxuICogQHBhcmFtIGVycm9ycyBUaGUgbGlzdCBvZiBlcnJvcnMgcGVyIG5vZGUuXG4gKiBAcGFyYW0gc3VtbWFyeURhdGEgVGhlIHByZXZpb3VzbHkgY29tcHV0ZWQgc3VtbWFyeSBvYmplY3RzLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkU3VtbWFyeSA9IChcbiAgbm9kZXM6IEhlc3RpYUpzb248U2NoZW1hVHlwZT5bXSA9IFtdLFxuICBlcnJvcnM6IChJVmFsaWRhdGlvbkVycm9yW10gfCBJVmFsaWRhdGlvbkVycm9yV2l0aEluZGV4KVtdID0gW10sXG4gIHN1bW1hcnlEYXRhOiBJU3VtbWFyeVtdID0gW11cbikgPT5cbiAgZnJvbShlcnJvcnMpLnBpcGUoXG4gICAgbWVyZ2VNYXAoZXJyb3IgPT4gKCdlcnJvcicgaW4gZXJyb3IgPyAoZXJyb3IgYXMgSVZhbGlkYXRpb25FcnJvcldpdGhJbmRleCkuZXJyb3IgOiBlcnJvcikpLFxuICAgIGZpbHRlcihmaWx0ZXJFcnJvciksXG4gICAgcmVkdWNlKChwcmV2LCBlcnJvcikgPT4ge1xuICAgICAgY29uc3QgeyBsZXZlbCwgbWVzc2FnZSB9ID0gZXJyb3I7XG4gICAgICBjb25zdCBub2RlID0gZ2V0KG5vZGVzLCBlcnJvci5ub2RlSW5kZXgsIG51bGwpO1xuICAgICAgY29uc3QgbGFiZWwgPSBkYXRhUGF0aExhYmVsKGVycm9yLmRhdGFQYXRoKSB8fCBub2RlPy50eXBlIHx8ICcnO1xuICAgICAgY29uc3QgdGVybSA9IGVycm9yLnBhcmFtcz8udGVybSB8fCBmaW5kTm9kZVRlcm0obm9kZSwgZXJyb3IpO1xuICAgICAgcHJldlttZXNzYWdlXSA9IHByZXZbbWVzc2FnZV0gfHwge307XG4gICAgICBjb25zdCBrZXkgPSBbbGV2ZWwsIGxhYmVsXS5qb2luKCcuJyk7XG4gICAgICBzZXQocHJldlttZXNzYWdlXSwga2V5LCBnZXQocHJldlttZXNzYWdlXSwga2V5LCBbXSkpO1xuICAgICAgcHJldlttZXNzYWdlXVtsZXZlbF1bbGFiZWxdLnB1c2goeyBub2RlLCBlcnJvciwgdGVybSB9KTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHt9IGFzIElTdW1tYXJ5R3JvdXBlZCksXG4gICAgbWVyZ2VNYXAoZGF0YSA9PlxuICAgICAgZnJvbShPYmplY3Qua2V5cyhkYXRhKSkucGlwZShcbiAgICAgICAgZmlsdGVyKG1lc3NhZ2UgPT4gISFtZXNzYWdlKSxcbiAgICAgICAgbWVyZ2VNYXAobWVzc2FnZSA9PlxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGFbbWVzc2FnZV0pLmZsYXRNYXAoKFtsZXZlbCwgcGF0aHNdKSA9PlxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocGF0aHMpLm1hcChcbiAgICAgICAgICAgICAgKFtwYXRoLCBzdW1tYXJpZXNdKSA9PlxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkTWVzc2FnZTogZm9ybWF0RXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcmllc1swXS5lcnJvcixcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyaWVzLm1hcCgoeyBlcnJvciB9KSA9PiBlcnJvcilcbiAgICAgICAgICAgICAgICAgICk/Lm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICB0ZXJtczogdW5pcXVlVGVybXMoc3VtbWFyaWVzKS5qb2luKCcgOyAnKSxcbiAgICAgICAgICAgICAgICAgIGVycm9yczogc3VtbWFyaWVzLFxuICAgICAgICAgICAgICAgICAgY291bnQ6IHN1bW1hcmllcy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICBzaG93RXJyb3JzOiBzdW1tYXJ5U2hvd0Vycm9ycyhzdW1tYXJ5RGF0YSwgeyBsZXZlbDogbGV2ZWwgYXMgdmFsaWRhdGlvbkVycm9yTGV2ZWwsIHBhdGgsIG1lc3NhZ2UgfSlcbiAgICAgICAgICAgICAgICB9KSBhcyBJU3VtbWFyeVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgZmlsdGVyKCh7IGZvcm1hdHRlZE1lc3NhZ2UgfSkgPT4gISFmb3JtYXR0ZWRNZXNzYWdlKVxuICAgICAgKVxuICAgICksXG4gICAgdG9BcnJheSgpLFxuICAgIG1hcCh2YWx1ZXMgPT4gdmFsdWVzLnNvcnQoKHsgbGV2ZWwgfSkgPT4gKGxldmVsID09PSAnZXJyb3InID8gLTEgOiAxKSkpXG4gICk7XG4iXX0=
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMtZXJyb3Itc3VtbWFyeS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWxlcy9maWxlcy1lcnJvci1zdW1tYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEdBQUcsTUFBTSxZQUFZLENBQUM7QUFDN0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBQzdCLE9BQU8sRUFBc0IsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzdDLE9BQU8sRUFBNkIsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQTJCakQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUE0QixFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQzdELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRSxPQUFPLFFBQVEsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3BFLENBQUMsQ0FBQztBQUVGLE1BQU0s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QUNELE1BQU0sQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQ3JELENBQ0YsRUFDRCxPQUFPLEVBQUUsRUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCByZWR1Y2UsIHRvQXJyYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC5nZXQnO1xuaW1wb3J0IHNldCBmcm9tICdsb2Rhc2guc2V0JztcbmltcG9ydCB7IEpTT04gYXMgSGVzdGlhSnNvbiwgU2NoZW1hVHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuXG5pbXBvcnQgeyBJVmFsaWRhdGlvbkVycm9yLCB2YWxpZGF0aW9uRXJyb3JMZXZlbCB9IGZyb20gJy4uL3NjaGVtYS9zY2hlbWEtdmFsaWRhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBJVmFsaWRhdGlvbkVycm9yV2l0aEluZGV4LCBmaWx0ZXJFcnJvciwgZm9ybWF0RXJyb3IsIGRhdGFQYXRoTGFiZWwgfSBmcm9tICcuL2ZpbGVzLWVycm9yLm1vZGVsJztcbmltcG9ydCB7IGRhdGFQYXRoVG9LZXkgfSBmcm9tICcuL2ZpbGVzLWZvcm0ubW9kZWwnO1xuaW1wb3J0IHsgY29kZSwgbm9kZUxpbmsgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuXG5pbnRlcmZhY2UgSVN1bW1hcnlFcnJvciB7XG4gIG5vZGU6IEhlc3RpYUpzb248U2NoZW1hVHlwZT47XG4gIGVycm9yOiBJVmFsaWRhdGlvbkVycm9yO1xuICB0ZXJtPzogYW55O1xufVxuXG5pbnRlcmZhY2UgSVN1bW1hcnlHcm91cGVkIHtcbiAgW21lc3NhZ2U6IHN0cmluZ106IHtcbiAgICBbbGV2ZWw6IHN0cmluZ106IHtcbiAgICAgIFtsYWJlbDogc3RyaW5nXTogSVN1bW1hcnlFcnJvcltdO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN1bW1hcnkge1xuICBsZXZlbDogdmFsaWRhdGlvbkVycm9yTGV2ZWw7XG4gIHBhdGg6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBmb3JtYXR0ZWRNZXNzYWdlOiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG4gIHNob3dFcnJvcnM6IGJvb2xlYW47XG4gIGVycm9yczogSVN1bW1hcnlFcnJvcltdO1xuICB0ZXJtcz86IHN0cmluZztcbn1cblxuY29uc3Qgbm9kZVRlcm0gPSAobm9kZTogSGVzdGlhSnNvbjxTY2hlbWFUeXBlPiwga2V5OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgdGVybVR5cGUgPSBnZXQobm9kZSwgYCR7a2V5fS50eXBlYCwgZ2V0KG5vZGUsIGAke2tleX0uQHR5cGVgLCBudWxsKSk7XG4gIHJldHVybiB0ZXJtVHlwZSA9PT0gU2NoZW1hVHlwZS5UZXJtID8gZ2V0KG5vZGUsIGtleSwgbnVsbCkgOiBudWxsO1xufTtcblxuY29uc3QgZmluZE5vZGVUZXJtID0gKG5vZGU6IEhlc3RpYUpzb248U2NoZW1hVHlwZT4sIHsgZGF0YVBhdGggfTogSVZhbGlkYXRpb25FcnJvcikgPT5cbiAgbm9kZVRlcm0obm9kZSwgZGF0YVBhdGhUb0tleShkYXRhUGF0aCkpIHx8XG4gIG5vZGVUZXJtKG5vZGUsIGAke2RhdGFQYXRoVG9LZXkoZGF0YVBhdGgpfS50ZXJtYCkgfHxcbiAgbm9kZVRlcm0obm9kZSwgZGF0YVBhdGhUb0tleShkYXRhUGF0aCwgdHJ1ZSkpIHx8XG4gIG5vZGVUZXJtKG5vZGUsIGAke2RhdGFQYXRoVG9LZXkoZGF0YVBhdGgsIHRydWUpfS50ZXJtYCk7XG5cbmNvbnN0IHVuaXF1ZVRlcm1zID0gKGVycm9yczogSVN1bW1hcnlFcnJvcltdKSA9PlxuICB1bmlxdWUoXG4gICAgZXJyb3JzXG4gICAgICAubWFwKCh7IHRlcm0gfSkgPT4gKHRlcm0gPyBub2RlTGluayh0ZXJtKSB8fCBjb2RlKHRlcm0ubmFtZSB8fCB0ZXJtWydAaWQnXSB8fCB0ZXJtLmlkKSA6IG51bGwpKVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICApO1xuXG5jb25zdCBzdW1tYXJ5U2hvd0Vycm9ycyA9IChzdW1tYXJ5RGF0YTogSVN1bW1hcnlbXSwgeyBwYXRoLCBsZXZlbCwgbWVzc2FnZSB9OiBQYXJ0aWFsPElTdW1tYXJ5PikgPT5cbiAgc3VtbWFyeURhdGEuZmluZChzdW1tYXJ5ID0+IHN1bW1hcnkucGF0aCA9PT0gcGF0aCAmJiBzdW1tYXJ5LmxldmVsID09PSBsZXZlbCAmJiBzdW1tYXJ5Lm1lc3NhZ2UgPT09IG1lc3NhZ2UpXG4gICAgPy5zaG93RXJyb3JzIHx8IHRydWU7XG5cbi8qKlxuICogQnVpbGQgdGhlIHN1bW1hcnkgb2JqZWN0cy5cbiAqXG4gKiBAcGFyYW0gbm9kZXMgVGhlIGxpc3Qgb2Ygbm9kZXMuXG4gKiBAcGFyYW0gZXJyb3JzIFRoZSBsaXN0IG9mIGVycm9ycyBwZXIgbm9kZS5cbiAqIEBwYXJhbSBzdW1tYXJ5RGF0YSBUaGUgcHJldmlvdXNseSBjb21wdXRlZCBzdW1tYXJ5IG9iamVjdHMuXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgYnVpbGRTdW1tYXJ5ID0gKFxuICBub2RlczogSGVzdGlhSnNvbjxTY2hlbWFUeXBlPltdID0gW10sXG4gIGVycm9yczogKElWYWxpZGF0aW9uRXJyb3JbXSB8IElWYWxpZGF0aW9uRXJyb3JXaXRoSW5kZXgpW10gPSBbXSxcbiAgc3VtbWFyeURhdGE6IElTdW1tYXJ5W10gPSBbXVxuKSA9PlxuICBmcm9tKGVycm9ycykucGlwZShcbiAgICBtZXJnZU1hcChlcnJvciA9PiAoJ2Vycm9yJyBpbiBlcnJvciA/IChlcnJvciBhcyBJVmFsaWRhdGlvbkVycm9yV2l0aEluZGV4KS5lcnJvciA6IGVycm9yKSksXG4gICAgZmlsdGVyKGZpbHRlckVycm9yKSxcbiAgICByZWR1Y2UoKHByZXYsIGVycm9yKSA9PiB7XG4gICAgICBjb25zdCB7IGxldmVsLCBtZXNzYWdlIH0gPSBlcnJvcjtcbiAgICAgIGNvbnN0IG5vZGUgPSBnZXQobm9kZXMsIGVycm9yLm5vZGVJbmRleCwgbnVsbCk7XG4gICAgICBjb25zdCBsYWJlbCA9IGRhdGFQYXRoTGFiZWwoZXJyb3IuZGF0YVBhdGgpIHx8IG5vZGU/LnR5cGUgfHwgJyc7XG4gICAgICBjb25zdCB0ZXJtID0gZXJyb3IucGFyYW1zPy50ZXJtIHx8IGZpbmROb2RlVGVybShub2RlLCBlcnJvcik7XG4gICAgICBwcmV2W21lc3NhZ2VdID0gcHJldlttZXNzYWdlXSB8fCB7fTtcbiAgICAgIGNvbnN0IGtleSA9IFtsZXZlbCwgbGFiZWxdLmpvaW4oJy4nKTtcbiAgICAgIHNldChwcmV2W21lc3NhZ2VdLCBrZXksIGdldChwcmV2W21lc3NhZ2VdLCBrZXksIFtdKSk7XG4gICAgICBwcmV2W21lc3NhZ2VdW2xldmVsXVtsYWJlbF0ucHVzaCh7IG5vZGUsIGVycm9yLCB0ZXJtIH0pO1xuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfSwge30gYXMgSVN1bW1hcnlHcm91cGVkKSxcbiAgICBtZXJnZU1hcChkYXRhID0+XG4gICAgICBmcm9tKE9iamVjdC5rZXlzKGRhdGEpKS5waXBlKFxuICAgICAgICBmaWx0ZXIobWVzc2FnZSA9PiAhIW1lc3NhZ2UpLFxuICAgICAgICBtZXJnZU1hcChtZXNzYWdlID0+XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YVttZXNzYWdlXSkuZmxhdE1hcCgoW2xldmVsLCBwYXRoc10pID0+XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhwYXRocykubWFwKFxuICAgICAgICAgICAgICAoW3BhdGgsIHN1bW1hcmllc10pID0+XG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRNZXNzYWdlOiBmb3JtYXRFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyaWVzWzBdLmVycm9yLFxuICAgICAgICAgICAgICAgICAgICBzdW1tYXJpZXMubWFwKCh7IGVycm9yIH0pID0+IGVycm9yKVxuICAgICAgICAgICAgICAgICAgKT8ubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgIHRlcm1zOiB1bmlxdWVUZXJtcyhzdW1tYXJpZXMpLmpvaW4oJyA7ICcpLFxuICAgICAgICAgICAgICAgICAgZXJyb3JzOiBzdW1tYXJpZXMsXG4gICAgICAgICAgICAgICAgICBjb3VudDogc3VtbWFyaWVzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgIHNob3dFcnJvcnM6IHN1bW1hcnlTaG93RXJyb3JzKHN1bW1hcnlEYXRhLCB7IGxldmVsOiBsZXZlbCBhcyB2YWxpZGF0aW9uRXJyb3JMZXZlbCwgcGF0aCwgbWVzc2FnZSB9KVxuICAgICAgICAgICAgICAgIH0pIGFzIElTdW1tYXJ5XG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBmaWx0ZXIoKHsgZm9ybWF0dGVkTWVzc2FnZSB9KSA9PiAhIWZvcm1hdHRlZE1lc3NhZ2UpXG4gICAgICApXG4gICAgKSxcbiAgICB0b0FycmF5KCksXG4gICAgbWFwKHZhbHVlcyA9PiB2YWx1ZXMuc29ydCgoeyBsZXZlbCB9KSA9PiAobGV2ZWwgPT09ICdlcnJvcicgPyAtMSA6IDEpKSlcbiAgKTtcbiJdfQ==
|