@hestia-earth/ui-components 0.0.10 → 0.0.13
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/bundles/hestia-earth-ui-components.umd.js +474 -250
- package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
- package/common/common.module.d.ts +11 -12
- package/common/index.d.ts +0 -1
- package/common/keys.pipe.d.ts +1 -1
- package/common/utils.d.ts +2 -2
- package/cycles/cycles-emissions-logs/cycles-emissions-logs.component.d.ts +0 -1
- package/cycles/cycles-practices/cycles-practices.component.d.ts +39 -0
- package/cycles/cycles-practices-logs/cycles-practices-logs.component.d.ts +20 -0
- package/cycles/cycles.module.d.ts +9 -7
- package/cycles/index.d.ts +2 -0
- package/esm2015/common/common.module.js +1 -5
- package/esm2015/common/index.js +1 -2
- package/esm2015/common/keys.pipe.js +3 -3
- package/esm2015/common/social-tags/social-tags.component.js +2 -3
- package/esm2015/common/utils.js +2 -2
- package/esm2015/cycles/cycles-emissions/cycles-emissions.component.js +2 -2
- package/esm2015/cycles/cycles-emissions-logs/cycles-emissions-logs.component.js +1 -2
- package/esm2015/cycles/cycles-practices/cycles-practices.component.js +119 -0
- package/esm2015/cycles/cycles-practices-logs/cycles-practices-logs.component.js +46 -0
- package/esm2015/cycles/cycles.module.js +9 -1
- package/esm2015/cycles/index.js +3 -1
- package/esm2015/engine/aggregation-engine.service.js +2 -2
- package/esm2015/engine/engine.service.js +2 -2
- package/esm2015/files/files-error-summary.model.js +55 -0
- package/esm2015/files/files-error.model.js +2 -2
- package/esm2015/files/files-form.model.js +6 -6
- package/esm2015/files/index.js +2 -1
- package/esm2015/node/node-csv-select-headers/node-csv-select-headers.component.js +6 -5
- package/esm2015/search/search.model.js +4 -4
- package/fesm2015/hestia-earth-ui-components.js +363 -202
- package/fesm2015/hestia-earth-ui-components.js.map +1 -1
- package/files/files-error-summary.model.d.ts +27 -0
- package/files/files-error.model.d.ts +1 -1
- package/files/files-form.model.d.ts +1 -1
- package/files/index.d.ts +1 -0
- package/package.json +1 -1
- package/common/blank-node-diffs/blank-node-diffs.component.d.ts +0 -18
- package/esm2015/common/blank-node-diffs/blank-node-diffs.component.js +0 -33
|
@@ -3,9 +3,9 @@ export const searchableTypes = [
|
|
|
3
3
|
NodeType.Cycle,
|
|
4
4
|
NodeType.Source
|
|
5
5
|
];
|
|
6
|
-
export const serializeSearchFilters = (filters) => Object.
|
|
7
|
-
.filter(
|
|
8
|
-
.map(key => `${key}=${
|
|
6
|
+
export const serializeSearchFilters = (filters) => Object.entries(filters || {})
|
|
7
|
+
.filter(([_key, value]) => value.length)
|
|
8
|
+
.map(([key, value]) => `${key}=${value.filter(Boolean).join('|')}`)
|
|
9
9
|
.join(';');
|
|
10
10
|
export const deserializeSearchFilters = (filters) => (filters || '').split(';').reduce((prev, curr) => {
|
|
11
11
|
const [key, values] = curr.split('=');
|
|
@@ -201,4 +201,4 @@ export const searchQuery = (type, query, filters, aggregated) => {
|
|
|
201
201
|
};
|
|
202
202
|
};
|
|
203
203
|
/* eslint-enable complexity */
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlYXJjaC9zZWFyY2gubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUlwRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQXFCO0lBQy9DLFFBQVEsQ0FBQyxLQUFLO0lBQ2QsUUFBUSxDQUFDLE1BQU07Q0FDaEIsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztLQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQ2xDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7S0FDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxPQUFlLEVBQWtCLEVBQUUsQ0FDMUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNwRCxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtB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VGVybVR5cGUsIG5lc3RlZFNlYXJjaGFibGVLZXlzIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuXG5leHBvcnQgdHlwZSBzZWFyY2hhYmxlVHlwZSA9IE5vZGVUeXBlLkN5Y2xlIHwgTm9kZVR5cGUuU291cmNlO1xuXG5leHBvcnQgY29uc3Qgc2VhcmNoYWJsZVR5cGVzOiBzZWFyY2hhYmxlVHlwZVtdID0gW1xuICBOb2RlVHlwZS5DeWNsZSxcbiAgTm9kZVR5cGUuU291cmNlXG5dO1xuXG50eXBlIG11bHRpTWF0Y2hUeXBlID0gJ2Jlc3RfZmllbGRzJyB8ICdtb3N0X2ZpZWxkcycgfCAnY3Jvc3NfZmllbGRzJyB8ICdwaHJhc2UnIHwgJ3BocmFzZV9wcmVmaXgnIHwgJ2Jvb2xfcHJlZml4JztcbnR5cGUgbXVsdGlNYXRjaEFuYWx5emVyID0gJ3N0YW5kYXJkJztcblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoRmlsdGVycyB7XG4gIFtrZXk6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpW107XG59XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVTZWFyY2hGaWx0ZXJzID0gKGZpbHRlcnM6IElTZWFyY2hGaWx0ZXJzKSA9PlxuICBPYmplY3Qua2V5cyhmaWx0ZXJzIHx8IHt9KVxuICAgIC5maWx0ZXIoa2V5ID0+IGZpbHRlcnNba2V5XS5sZW5ndGgpXG4gICAgLm1hcChrZXkgPT4gYCR7a2V5fT0ke2ZpbHRlcnNba2V5XS5maWx0ZXIoQm9vbGVhbikuam9pbignfCcpfWApXG4gICAgLmpvaW4oJzsnKTtcblxuZXhwb3J0IGNvbnN0IGRlc2VyaWFsaXplU2VhcmNoRmlsdGVycyA9IChmaWx0ZXJzOiBzdHJpbmcpOiBJU2VhcmNoRmlsdGVycyA9PlxuICAoZmlsdGVycyB8fCAnJykuc3BsaXQoJzsnKS5yZWR1Y2UoKHByZXY6IGFueSwgY3VycikgPT4ge1xuICAgIGNvbnN0IFtrZXksIHZhbHVlc10gPSBjdXJyLnNwbGl0KCc9Jyk7XG4gICAgcHJldltrZXldID0gKHZhbHVlcyB8fCAnJykuc3BsaXQoJ3wnKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgcmV0dXJuIHByZXY7XG4gIH0sIHt9KTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoVHlwZSA9ICh0eXBlOiBOb2RlVHlwZSB8IHN0cmluZykgPT4gT2JqZWN0LmZyZWV6ZSh7XG4gIG1hdGNoOiB7ICdAdHlwZSc6IHR5cGUgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBtYXRjaFRlcm1UeXBlID0gKHRlcm1UeXBlOiBUZXJtVGVybVR5cGUgfCBzdHJpbmcpID0+IE9iamVjdC5mcmVlemUoe1xuICBtYXRjaDogeyB0ZXJtVHlwZSB9XG59KTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoUmVnZXggPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBSZWdFeHApID0+IE9iamVjdC5mcmVlemUoe1xuICByZWdleHA6IHsgW2tleV06IHsgdmFsdWU6IHZhbHVlLnRvU3RyaW5nKCkgfSB9XG59KTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoUXVlcnkgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGJvb3N0PzogbnVtYmVyKSA9PiBPYmplY3QuZnJlZXplKHtcbiAgbWF0Y2g6IHtcbiAgICBba2V5XToge1xuICAgICAgcXVlcnk6IHZhbHVlLFxuICAgICAgLi4uKGJvb3N0ID8geyBib29zdCB9IDoge30pXG4gICAgfVxuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoRXhhY3RRdWVyeSA9IChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgYm9vc3Q/OiBudW1iZXIpID0+IG1hdGNoUXVlcnkoYCR7a2V5fS5rZXl3b3JkYCwgdmFsdWUsIGJvb3N0KTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoTmFtZU5vcm1hbGl6ZWQgPSAocXVlcnk6IHN0cmluZywgYm9vc3QgPSAyMCkgPT4gT2JqZWN0LmZyZWV6ZSh7XG4gIG1hdGNoOiB7IG5hbWVOb3JtYWxpemVkOiB7IHF1ZXJ5LCBib29zdCB9IH1cbn0pO1xuXG5leHBvcnQgY29uc3QgbnVtYmVyR3RlID0gKGtleTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKSA9PiBPYmplY3QuZnJlZXplKHtcbiAgcmFuZ2U6IHsgW2tleV06IHsgZ3RlOiB2YWx1ZSB9IH1cbn0pO1xuXG5leHBvcnQgY29uc3QgbXVsdGlNYXRjaFF1ZXJ5ID0gKFxuICBxdWVyeTogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdLCB0eXBlOiBtdWx0aU1hdGNoVHlwZSA9ICdiZXN0X2ZpZWxkcycsIGJvb3N0PzogbnVtYmVyLCBhbmFseXplcj86IG11bHRpTWF0Y2hBbmFseXplclxuKSA9PiBPYmplY3QuZnJlZXplKHtcbiAgbXVsdGlfbWF0Y2g6IHtcbiAgICBxdWVyeSxcbiAgICBmaWVsZHMsXG4gICAgdHlwZSxcbiAgICAuLi4oYm9vc3QgPyB7IGJvb3N0IH0gOiB7fSksXG4gICAgLi4uKGFuYWx5emVyID8geyBhbmFseXplciB9IDoge30pXG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hQaHJhc2VRdWVyeSA9IChxdWVyeTogc3RyaW5nLCBib29zdD86IG51bWJlciwgLi4uZmllbGRzOiBzdHJpbmdbXSkgPT5cbiAgZmllbGRzLmxlbmd0aCA/IG11bHRpTWF0Y2hRdWVyeShxdWVyeSwgZmllbGRzLCAncGhyYXNlJywgYm9vc3QpIDogbWF0Y2hFeGFjdFF1ZXJ5KCduYW1lJywgcXVlcnksIGJvb3N0KTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoUGhyYXNlUHJlZml4UXVlcnkgPSAocXVlcnk6IHN0cmluZywgYm9vc3QgPSAyLCAuLi5maWVsZHM6IHN0cmluZ1tdKSA9PlxuICBmaWVsZHMubGVuZ3RoID9cbiAgICBtdWx0aU1hdGNoUXVlcnkocXVlcnksIGZpZWxkcywgJ3BocmFzZV9wcmVmaXgnLCBib29zdCkgOlxuICAgIE9iamVjdC5mcmVlemUoe1xuICAgICAgbWF0Y2hfcGhyYXNlX3ByZWZpeDoge1xuICAgICAgICBuYW1lU2VhcmNoQXNZb3VUeXBlOiB7XG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgYm9vc3RcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hCb29sUHJlZml4UXVlcnkgPSAocXVlcnk6IHN0cmluZywgYm9vc3QgPSAxLCAuLi5maWVsZHM6IHN0cmluZ1tdKSA9PlxuICBmaWVsZHMubGVuZ3RoID9cbiAgICBtdWx0aU1hdGNoUXVlcnkocXVlcnksIGZpZWxkcywgJ2Jvb2xfcHJlZml4JywgYm9vc3QpIDpcbiAgICBPYmplY3QuZnJlZXplKHtcbiAgICAgIG1hdGNoX2Jvb2xfcHJlZml4OiB7XG4gICAgICAgIG5hbWU6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICBib29zdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbmV4cG9ydCBjb25zdCB3aWxkY2FyZFF1ZXJ5ID0gKHF1ZXJ5OiBzdHJpbmcsIGJvb3N0ID0gMywgLi4uZmllbGRzOiBzdHJpbmdbXSkgPT4gT2JqZWN0LmZyZWV6ZSh7XG4gIHNpbXBsZV9xdWVyeV9zdHJpbmc6IHtcbiAgICBxdWVyeTogYCoke3F1ZXJ5fSpgLFxuICAgIGZpZWxkcyxcbiAgICBhbmFseXplX3dpbGRjYXJkOiB0cnVlLFxuICAgIGJvb3N0XG4gIH1cbn0pO1xuXG5jb25zdCBtYXRjaENvdW50cnlMZXZlbCA9IHsgbWF0Y2g6IHsgZ2FkbUxldmVsOiAwIH0gfTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoR2xvYmFsUmVnaW9uID0geyByZWdleHA6IHsgJ0BpZCc6ICdyZWdpb24tKicgfSB9O1xuXG5leHBvcnQgY29uc3QgbWF0Y2hDb3VudHJ5ID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGJvb2w6IHtcbiAgICBzaG91bGQ6IFtcbiAgICAgIG1hdGNoQ291bnRyeUxldmVsLFxuICAgICAgbWF0Y2hHbG9iYWxSZWdpb25cbiAgICBdLFxuICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgY291bnRyaWVzUXVlcnkgPSBPYmplY3QuZnJlZXplKHtcbiAgYm9vbDoge1xuICAgIG11c3Q6IFtcbiAgICAgIG1hdGNoVHlwZShOb2RlVHlwZS5UZXJtKSxcbiAgICAgIG1hdGNoVGVybVR5cGUoVGVybVRlcm1UeXBlLnJlZ2lvbiksXG4gICAgICBtYXRjaENvdW50cnlMZXZlbFxuICAgIF1cbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBhbGxDb3VudHJpZXNRdWVyeSA9IE9iamVjdC5mcmVlemUoe1xuICBib29sOiB7XG4gICAgbXVzdDogW1xuICAgICAgbWF0Y2hUeXBlKE5vZGVUeXBlLlRlcm0pLFxuICAgICAgbWF0Y2hUZXJtVHlwZShUZXJtVGVybVR5cGUucmVnaW9uKVxuICAgIF0sXG4gICAgLi4ubWF0Y2hDb3VudHJ5LmJvb2xcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBtYXRjaFJlZ2lvbiA9IG51bWJlckd0ZSgnZ2FkbUxldmVsJywgMSk7XG5cbmV4cG9ydCBjb25zdCByZWdpb25zUXVlcnkgPSBPYmplY3QuZnJlZXplKHtcbiAgYm9vbDoge1xuICAgIG11c3Q6IFtcbiAgICAgIG1hdGNoVHlwZShOb2RlVHlwZS5UZXJtKSxcbiAgICAgIG1hdGNoVGVybVR5cGUoVGVybVRlcm1UeXBlLnJlZ2lvbiksXG4gICAgICBtYXRjaFJlZ2lvblxuICAgIF1cbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCB3b3JsZFJlZ2lvbiA9IE9iamVjdC5mcmVlemUoe1xuICAnQGlkJzogJ3JlZ2lvbi13b3JsZCcsXG4gIG5hbWU6ICdXb3JsZCdcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JvcHNRdWVyeSA9IE9iamVjdC5mcmVlemUoe1xuICBib29sOiB7XG4gICAgbXVzdDogW1xuICAgICAgbWF0Y2hUeXBlKE5vZGVUeXBlLlRlcm0pLFxuICAgICAgbWF0Y2hUZXJtVHlwZShUZXJtVGVybVR5cGUuY3JvcClcbiAgICBdXG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hBZ2dyZWdhdGVkUXVlcnkgPSBtYXRjaFF1ZXJ5KCdhZ2dyZWdhdGVkJywgdHJ1ZSk7XG5cbmNvbnN0IGlzTmVzdGVkS2V5ID0gKGtleTogc3RyaW5nKSA9PiBuZXN0ZWRTZWFyY2hhYmxlS2V5cy5pbmNsdWRlcyhrZXkuc3BsaXQoJy4nKVswXSk7XG5cbmV4cG9ydCBjb25zdCBtYXRjaE5lc3RlZEtleSA9IChrZXk6IHN0cmluZywgcXVlcnk6IGFueSkgPT5cbiAgaXNOZXN0ZWRLZXkoa2V5KSA/IHtcbiAgICBuZXN0ZWQ6IHsgcGF0aDoga2V5LnNwbGl0KCcuJylbMF0sIHF1ZXJ5IH1cbiAgfSA6IHF1ZXJ5O1xuXG4vKipcbiAqIExpc3Qgb2YgZmllbGRzIHRvIHJldHVybiBpbiB0aGUgc2VhcmNoIHJlc3VsdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWFyY2hSZXN1bHRzRmllbGRzOiB7XG4gIFt0eXBlIGluIHNlYXJjaGFibGVUeXBlXTogc3RyaW5nW107XG59ID0gT2JqZWN0LmZyZWV6ZSh7XG4gIFtOb2RlVHlwZS5DeWNsZV06IFtcbiAgICAnZGVzY3JpcHRpb24nLCAnZGF0YURlc2NyaXB0aW9uJywgJ2VuZERhdGUnLFxuICAgICdlbWlzc2lvbnNDb3VudCcsICdpbnB1dHNDb3VudCcsICdwcm9kdWN0c0NvdW50JyxcbiAgICAnc2l0ZS5sb2NhdGlvbicsICdzaXRlLmNvdW50cnkubmFtZScsICdzaXRlLnJlZ2lvbi5uYW1lJ1xuICBdLFxuICBbTm9kZVR5cGUuU291cmNlXTogWydiaWJsaW9ncmFwaHkudGl0bGUnLCAnYmlibGlvZ3JhcGh5LmRvY3VtZW50RE9JJ10sXG4gIFtOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50XTogWydlbWlzc2lvbnNSZXNvdXJjZVVzZUNvdW50JywgJ2ltcGFjdHNDb3VudCcsICdjb3VudHJ5Lm5hbWUnXVxufSk7XG5cbi8qKlxuICogTGlzdCBvZiBmaWVsZHMgdG8gc2VhcmNoIGluLlxuICovXG5jb25zdCBzZWFyY2hGaWVsZHM6IHtcbiAgW3R5cGUgaW4gc2VhcmNoYWJsZVR5cGVdOiBzdHJpbmdbXTtcbn0gPSBPYmplY3QuZnJlZXplKHtcbiAgW05vZGVUeXBlLkN5Y2xlXTogWyduYW1lJywgJ2Rlc2NyaXB0aW9uJywgJ2RhdGFEZXNjcmlwdGlvbiddLFxuICBbTm9kZVR5cGUuU291cmNlXTogWyduYW1lJywgJ2JpYmxpb2dyYXBoeS50aXRsZSddLFxuICBbTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudF06IFsnbmFtZScsICdwcm9kdWN0Lm5hbWUnLCAnY291bnRyeS5uYW1lJ11cbn0pO1xuXG5jb25zdCBzZWFyY2hGaWVsZHNOZXN0ZWQ6IHtcbiAgW3R5cGUgaW4gc2VhcmNoYWJsZVR5cGVdOiBzdHJpbmdbXTtcbn0gPSBPYmplY3QuZnJlZXplKHtcbiAgW05vZGVUeXBlLkN5Y2xlXTogW1xuICAgICdpbnB1dHMudGVybS5uYW1lJyxcbiAgICAnZW1pc3Npb25zLnRlcm0ubmFtZScsXG4gICAgJ3ByYWN0aWNlcy50ZXJtLm5hbWUnXG4gIF0sXG4gIFtOb2RlVHlwZS5Tb3VyY2VdOiBbXSxcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiBbXG4gICAgJ2VtaXNzaW9uc1Jlc291cmNlVXNlLnRlcm0ubmFtZScsXG4gICAgJ2ltcGFjdHMudGVybS5uYW1lJ1xuICBdXG59KTtcblxuLyoqXG4gKiBTcGVjaWZpYyBzdHJpY3QgcXVlcmllcyBwZXIgdHlwZS5cbiAqL1xuY29uc3Qgc2VhcmNoUXVlcmllczoge1xuICBbdHlwZSBpbiBzZWFyY2hhYmxlVHlwZV06IHsgbXVzdDogYW55W107IG11c3Rfbm90OiBhbnlbXSB9O1xufSA9IHtcbiAgW05vZGVUeXBlLkN5Y2xlXTogeyBtdXN0OiBbXSwgbXVzdF9ub3Q6IFttYXRjaEFnZ3JlZ2F0ZWRRdWVyeV0gfSxcbiAgW05vZGVUeXBlLlNvdXJjZV06IHsgbXVzdDogW10sIG11c3Rfbm90OiBbbWF0Y2hBZ2dyZWdhdGVkUXVlcnldIH1cbn07XG5cbmNvbnN0IHNlYXJjaEZpbHRlcnNLZXlzOiB7XG4gIFt0eXBlIGluIHNlYXJjaGFibGVUeXBlXTogKGtleTogc3RyaW5nKSA9PiBzdHJpbmc7XG59ID0ge1xuICBbTm9kZVR5cGUuQ3ljbGVdOiBrZXkgPT4ga2V5LFxuICBbTm9kZVR5cGUuU291cmNlXToga2V5ID0+IGtleVxufTtcblxuLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuZXhwb3J0IGNvbnN0IHNlYXJjaFF1ZXJ5ID0gKHR5cGU6IHNlYXJjaGFibGVUeXBlLCBxdWVyeT86IHN0cmluZywgZmlsdGVycz86IElTZWFyY2hGaWx0ZXJzLCBhZ2dyZWdhdGVkPzogYm9vbGVhbikgPT4ge1xuICBjb25zdCBib29sUXVlcnk6IGFueSA9ICh7XG4gICAgbXVzdDogW1xuICAgICAgbWF0Y2hUeXBlKHR5cGUpLFxuICAgICAgYWdncmVnYXRlZCA/IG1hdGNoQWdncmVnYXRlZFF1ZXJ5IDogbnVsbFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLFxuICAgIC4uLihxdWVyeSA/IHtcbiAgICAgIHNob3VsZDogW1xuICAgICAgICBtYXRjaFBocmFzZVF1ZXJ5KHF1ZXJ5LCAxMDAsIC4uLnNlYXJjaEZpZWxkc1t0eXBlXSksIC8vIG1ha2Ugc3VyZSBleGFjdCBtYXRjaGVzIGNvbWUgZmlyc3RcbiAgICAgICAgbWF0Y2hQaHJhc2VQcmVmaXhRdWVyeShxdWVyeSwgMjAsIC4uLnNlYXJjaEZpZWxkc1t0eXBlXSksXG4gICAgICAgIG1hdGNoQm9vbFByZWZpeFF1ZXJ5KHF1ZXJ5LCAxMCwgLi4uc2VhcmNoRmllbGRzW3R5cGVdKSxcbiAgICAgICAgLi4uc2VhcmNoRmllbGRzTmVzdGVkW3R5cGVdLm1hcChmaWVsZCA9PiBtYXRjaE5lc3RlZEtleShmaWVsZCwgbWF0Y2hCb29sUHJlZml4UXVlcnkocXVlcnksIDEsIGZpZWxkKSkpXG4gICAgICBdLFxuICAgICAgbWluaW11bV9zaG91bGRfbWF0Y2g6IDFcbiAgICB9IDoge30pLFxuICAgIG11c3Rfbm90OiBbXG4gICAgICBhZ2dyZWdhdGVkID8gbnVsbCA6IG1hdGNoQWdncmVnYXRlZFF1ZXJ5XG4gICAgXS5maWx0ZXIoQm9vbGVhbilcbiAgfSk7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhmaWx0ZXJzIHx8IHt9KS5maWx0ZXIoa2V5ID0+IGZpbHRlcnMhW2tleV0ubGVuZ3RoKTtcbiAgcmV0dXJuIHtcbiAgICBib29sOiBrZXlzLmxlbmd0aCA/IHtcbiAgICAgIG11c3Q6IGtleXMubWFwKGtleSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcktleSA9IHNlYXJjaEZpbHRlcnNLZXlzW3R5cGVdKGtleSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYm9vbDoge1xuICAgICAgICAgICAgc2hvdWxkOiBmaWx0ZXJzIVtrZXldXG4gICAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gbWF0Y2hOZXN0ZWRLZXkoZmlsdGVyS2V5LCBtYXRjaEV4YWN0UXVlcnkoZmlsdGVyS2V5LCB2YWx1ZSkpKVxuICAgICAgICAgICAgICAubWFwKG11c3QgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsUXVlcnkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGJvb2xRdWVyeSkpO1xuICAgICAgICAgICAgICAgIGxvY2FsUXVlcnkubXVzdC5wdXNoKG11c3QpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGJvb2w6IGxvY2FsUXVlcnkgfTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtaW5pbXVtX3Nob3VsZF9tYXRjaDogMVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgfSA6IGJvb2xRdWVyeVxuICB9O1xufTtcbi8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuIl19
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlYXJjaC9zZWFyY2gubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUlwRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQXFCO0lBQy9DLFFBQVEsQ0FBQyxLQUFLO0lBQ2QsUUFBUSxDQUFDLE1BQU07Q0FDaEIsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsT0FBdUIsRUFBRSxFQUFFLENBQ2hFLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztLQUMxQixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztLQUN2QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztLQUNsRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFZixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLE9BQWUsRUFBa0IsRUFBRSxDQUMxRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLElBQUksRUFBRSxFQUFFO0lBQ3BELE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElB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b3J0IHsgTm9kZVR5cGUsIFRlcm1UZXJtVHlwZSwgbmVzdGVkU2VhcmNoYWJsZUtleXMgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmV4cG9ydCB0eXBlIHNlYXJjaGFibGVUeXBlID0gTm9kZVR5cGUuQ3ljbGUgfCBOb2RlVHlwZS5Tb3VyY2U7XG5cbmV4cG9ydCBjb25zdCBzZWFyY2hhYmxlVHlwZXM6IHNlYXJjaGFibGVUeXBlW10gPSBbXG4gIE5vZGVUeXBlLkN5Y2xlLFxuICBOb2RlVHlwZS5Tb3VyY2Vcbl07XG5cbnR5cGUgbXVsdGlNYXRjaFR5cGUgPSAnYmVzdF9maWVsZHMnIHwgJ21vc3RfZmllbGRzJyB8ICdjcm9zc19maWVsZHMnIHwgJ3BocmFzZScgfCAncGhyYXNlX3ByZWZpeCcgfCAnYm9vbF9wcmVmaXgnO1xudHlwZSBtdWx0aU1hdGNoQW5hbHl6ZXIgPSAnc3RhbmRhcmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hGaWx0ZXJzIHtcbiAgW2tleTogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcilbXTtcbn1cblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZVNlYXJjaEZpbHRlcnMgPSAoZmlsdGVyczogSVNlYXJjaEZpbHRlcnMpID0+XG4gIE9iamVjdC5lbnRyaWVzKGZpbHRlcnMgfHwge30pXG4gICAgLmZpbHRlcigoW19rZXksIHZhbHVlXSkgPT4gdmFsdWUubGVuZ3RoKVxuICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlLmZpbHRlcihCb29sZWFuKS5qb2luKCd8Jyl9YClcbiAgICAuam9pbignOycpO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVTZWFyY2hGaWx0ZXJzID0gKGZpbHRlcnM6IHN0cmluZyk6IElTZWFyY2hGaWx0ZXJzID0+XG4gIChmaWx0ZXJzIHx8ICcnKS5zcGxpdCgnOycpLnJlZHVjZSgocHJldjogYW55LCBjdXJyKSA9PiB7XG4gICAgY29uc3QgW2tleSwgdmFsdWVzXSA9IGN1cnIuc3BsaXQoJz0nKTtcbiAgICBwcmV2W2tleV0gPSAodmFsdWVzIHx8ICcnKS5zcGxpdCgnfCcpLmZpbHRlcihCb29sZWFuKTtcbiAgICByZXR1cm4gcHJldjtcbiAgfSwge30pO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hUeXBlID0gKHR5cGU6IE5vZGVUeXBlIHwgc3RyaW5nKSA9PiBPYmplY3QuZnJlZXplKHtcbiAgbWF0Y2g6IHsgJ0B0eXBlJzogdHlwZSB9XG59KTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoVGVybVR5cGUgPSAodGVybVR5cGU6IFRlcm1UZXJtVHlwZSB8IHN0cmluZykgPT4gT2JqZWN0LmZyZWV6ZSh7XG4gIG1hdGNoOiB7IHRlcm1UeXBlIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hSZWdleCA9IChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IFJlZ0V4cCkgPT4gT2JqZWN0LmZyZWV6ZSh7XG4gIHJlZ2V4cDogeyBba2V5XTogeyB2YWx1ZTogdmFsdWUudG9TdHJpbmcoKSB9IH1cbn0pO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hRdWVyeSA9IChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgYm9vc3Q/OiBudW1iZXIpID0+IE9iamVjdC5mcmVlemUoe1xuICBtYXRjaDoge1xuICAgIFtrZXldOiB7XG4gICAgICBxdWVyeTogdmFsdWUsXG4gICAgICAuLi4oYm9vc3QgPyB7IGJvb3N0IH0gOiB7fSlcbiAgICB9XG4gIH1cbn0pO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hFeGFjdFF1ZXJ5ID0gKGtleTogc3RyaW5nLCB2YWx1ZTogYW55LCBib29zdD86IG51bWJlcikgPT4gbWF0Y2hRdWVyeShgJHtrZXl9LmtleXdvcmRgLCB2YWx1ZSwgYm9vc3QpO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hOYW1lTm9ybWFsaXplZCA9IChxdWVyeTogc3RyaW5nLCBib29zdCA9IDIwKSA9PiBPYmplY3QuZnJlZXplKHtcbiAgbWF0Y2g6IHsgbmFtZU5vcm1hbGl6ZWQ6IHsgcXVlcnksIGJvb3N0IH0gfVxufSk7XG5cbmV4cG9ydCBjb25zdCBudW1iZXJHdGUgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpID0+IE9iamVjdC5mcmVlemUoe1xuICByYW5nZTogeyBba2V5XTogeyBndGU6IHZhbHVlIH0gfVxufSk7XG5cbmV4cG9ydCBjb25zdCBtdWx0aU1hdGNoUXVlcnkgPSAoXG4gIHF1ZXJ5OiBzdHJpbmcsIGZpZWxkczogc3RyaW5nW10sIHR5cGU6IG11bHRpTWF0Y2hUeXBlID0gJ2Jlc3RfZmllbGRzJywgYm9vc3Q/OiBudW1iZXIsIGFuYWx5emVyPzogbXVsdGlNYXRjaEFuYWx5emVyXG4pID0+IE9iamVjdC5mcmVlemUoe1xuICBtdWx0aV9tYXRjaDoge1xuICAgIHF1ZXJ5LFxuICAgIGZpZWxkcyxcbiAgICB0eXBlLFxuICAgIC4uLihib29zdCA/IHsgYm9vc3QgfSA6IHt9KSxcbiAgICAuLi4oYW5hbHl6ZXIgPyB7IGFuYWx5emVyIH0gOiB7fSlcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBtYXRjaFBocmFzZVF1ZXJ5ID0gKHF1ZXJ5OiBzdHJpbmcsIGJvb3N0PzogbnVtYmVyLCAuLi5maWVsZHM6IHN0cmluZ1tdKSA9PlxuICBmaWVsZHMubGVuZ3RoID8gbXVsdGlNYXRjaFF1ZXJ5KHF1ZXJ5LCBmaWVsZHMsICdwaHJhc2UnLCBib29zdCkgOiBtYXRjaEV4YWN0UXVlcnkoJ25hbWUnLCBxdWVyeSwgYm9vc3QpO1xuXG5leHBvcnQgY29uc3QgbWF0Y2hQaHJhc2VQcmVmaXhRdWVyeSA9IChxdWVyeTogc3RyaW5nLCBib29zdCA9IDIsIC4uLmZpZWxkczogc3RyaW5nW10pID0+XG4gIGZpZWxkcy5sZW5ndGggP1xuICAgIG11bHRpTWF0Y2hRdWVyeShxdWVyeSwgZmllbGRzLCAncGhyYXNlX3ByZWZpeCcsIGJvb3N0KSA6XG4gICAgT2JqZWN0LmZyZWV6ZSh7XG4gICAgICBtYXRjaF9waHJhc2VfcHJlZml4OiB7XG4gICAgICAgIG5hbWVTZWFyY2hBc1lvdVR5cGU6IHtcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICBib29zdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbmV4cG9ydCBjb25zdCBtYXRjaEJvb2xQcmVmaXhRdWVyeSA9IChxdWVyeTogc3RyaW5nLCBib29zdCA9IDEsIC4uLmZpZWxkczogc3RyaW5nW10pID0+XG4gIGZpZWxkcy5sZW5ndGggP1xuICAgIG11bHRpTWF0Y2hRdWVyeShxdWVyeSwgZmllbGRzLCAnYm9vbF9wcmVmaXgnLCBib29zdCkgOlxuICAgIE9iamVjdC5mcmVlemUoe1xuICAgICAgbWF0Y2hfYm9vbF9wcmVmaXg6IHtcbiAgICAgICAgbmFtZToge1xuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIGJvb3N0XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuZXhwb3J0IGNvbnN0IHdpbGRjYXJkUXVlcnkgPSAocXVlcnk6IHN0cmluZywgYm9vc3QgPSAzLCAuLi5maWVsZHM6IHN0cmluZ1tdKSA9PiBPYmplY3QuZnJlZXplKHtcbiAgc2ltcGxlX3F1ZXJ5X3N0cmluZzoge1xuICAgIHF1ZXJ5OiBgKiR7cXVlcnl9KmAsXG4gICAgZmllbGRzLFxuICAgIGFuYWx5emVfd2lsZGNhcmQ6IHRydWUsXG4gICAgYm9vc3RcbiAgfVxufSk7XG5cbmNvbnN0IG1hdGNoQ291bnRyeUxldmVsID0geyBtYXRjaDogeyBnYWRtTGV2ZWw6IDAgfSB9O1xuXG5leHBvcnQgY29uc3QgbWF0Y2hHbG9iYWxSZWdpb24gPSB7IHJlZ2V4cDogeyAnQGlkJzogJ3JlZ2lvbi0qJyB9IH07XG5cbmV4cG9ydCBjb25zdCBtYXRjaENvdW50cnkgPSBPYmplY3QuZnJlZXplKHtcbiAgYm9vbDoge1xuICAgIHNob3VsZDogW1xuICAgICAgbWF0Y2hDb3VudHJ5TGV2ZWwsXG4gICAgICBtYXRjaEdsb2JhbFJlZ2lvblxuICAgIF0sXG4gICAgbWluaW11bV9zaG91bGRfbWF0Y2g6IDFcbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBjb3VudHJpZXNRdWVyeSA9IE9iamVjdC5mcmVlemUoe1xuICBib29sOiB7XG4gICAgbXVzdDogW1xuICAgICAgbWF0Y2hUeXBlKE5vZGVUeXBlLlRlcm0pLFxuICAgICAgbWF0Y2hUZXJtVHlwZShUZXJtVGVybVR5cGUucmVnaW9uKSxcbiAgICAgIG1hdGNoQ291bnRyeUxldmVsXG4gICAgXVxuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IGFsbENvdW50cmllc1F1ZXJ5ID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGJvb2w6IHtcbiAgICBtdXN0OiBbXG4gICAgICBtYXRjaFR5cGUoTm9kZVR5cGUuVGVybSksXG4gICAgICBtYXRjaFRlcm1UeXBlKFRlcm1UZXJtVHlwZS5yZWdpb24pXG4gICAgXSxcbiAgICAuLi5tYXRjaENvdW50cnkuYm9vbFxuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoUmVnaW9uID0gbnVtYmVyR3RlKCdnYWRtTGV2ZWwnLCAxKTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lvbnNRdWVyeSA9IE9iamVjdC5mcmVlemUoe1xuICBib29sOiB7XG4gICAgbXVzdDogW1xuICAgICAgbWF0Y2hUeXBlKE5vZGVUeXBlLlRlcm0pLFxuICAgICAgbWF0Y2hUZXJtVHlwZShUZXJtVGVybVR5cGUucmVnaW9uKSxcbiAgICAgIG1hdGNoUmVnaW9uXG4gICAgXVxuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IHdvcmxkUmVnaW9uID0gT2JqZWN0LmZyZWV6ZSh7XG4gICdAaWQnOiAncmVnaW9uLXdvcmxkJyxcbiAgbmFtZTogJ1dvcmxkJ1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcm9wc1F1ZXJ5ID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGJvb2w6IHtcbiAgICBtdXN0OiBbXG4gICAgICBtYXRjaFR5cGUoTm9kZVR5cGUuVGVybSksXG4gICAgICBtYXRjaFRlcm1UeXBlKFRlcm1UZXJtVHlwZS5jcm9wKVxuICAgIF1cbiAgfVxufSk7XG5cbmV4cG9ydCBjb25zdCBtYXRjaEFnZ3JlZ2F0ZWRRdWVyeSA9IG1hdGNoUXVlcnkoJ2FnZ3JlZ2F0ZWQnLCB0cnVlKTtcblxuY29uc3QgaXNOZXN0ZWRLZXkgPSAoa2V5OiBzdHJpbmcpID0+IG5lc3RlZFNlYXJjaGFibGVLZXlzLmluY2x1ZGVzKGtleS5zcGxpdCgnLicpWzBdKTtcblxuZXhwb3J0IGNvbnN0IG1hdGNoTmVzdGVkS2V5ID0gKGtleTogc3RyaW5nLCBxdWVyeTogYW55KSA9PlxuICBpc05lc3RlZEtleShrZXkpID8ge1xuICAgIG5lc3RlZDogeyBwYXRoOiBrZXkuc3BsaXQoJy4nKVswXSwgcXVlcnkgfVxuICB9IDogcXVlcnk7XG5cbi8qKlxuICogTGlzdCBvZiBmaWVsZHMgdG8gcmV0dXJuIGluIHRoZSBzZWFyY2ggcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlYXJjaFJlc3VsdHNGaWVsZHM6IHtcbiAgW3R5cGUgaW4gc2VhcmNoYWJsZVR5cGVdOiBzdHJpbmdbXTtcbn0gPSBPYmplY3QuZnJlZXplKHtcbiAgW05vZGVUeXBlLkN5Y2xlXTogW1xuICAgICdkZXNjcmlwdGlvbicsICdkYXRhRGVzY3JpcHRpb24nLCAnZW5kRGF0ZScsXG4gICAgJ2VtaXNzaW9uc0NvdW50JywgJ2lucHV0c0NvdW50JywgJ3Byb2R1Y3RzQ291bnQnLFxuICAgICdzaXRlLmxvY2F0aW9uJywgJ3NpdGUuY291bnRyeS5uYW1lJywgJ3NpdGUucmVnaW9uLm5hbWUnXG4gIF0sXG4gIFtOb2RlVHlwZS5Tb3VyY2VdOiBbJ2JpYmxpb2dyYXBoeS50aXRsZScsICdiaWJsaW9ncmFwaHkuZG9jdW1lbnRET0knXSxcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdOiBbJ2VtaXNzaW9uc1Jlc291cmNlVXNlQ291bnQnLCAnaW1wYWN0c0NvdW50JywgJ2NvdW50cnkubmFtZSddXG59KTtcblxuLyoqXG4gKiBMaXN0IG9mIGZpZWxkcyB0byBzZWFyY2ggaW4uXG4gKi9cbmNvbnN0IHNlYXJjaEZpZWxkczoge1xuICBbdHlwZSBpbiBzZWFyY2hhYmxlVHlwZV06IHN0cmluZ1tdO1xufSA9IE9iamVjdC5mcmVlemUoe1xuICBbTm9kZVR5cGUuQ3ljbGVdOiBbJ25hbWUnLCAnZGVzY3JpcHRpb24nLCAnZGF0YURlc2NyaXB0aW9uJ10sXG4gIFtOb2RlVHlwZS5Tb3VyY2VdOiBbJ25hbWUnLCAnYmlibGlvZ3JhcGh5LnRpdGxlJ10sXG4gIFtOb2RlVHlwZS5JbXBhY3RBc3Nlc3NtZW50XTogWyduYW1lJywgJ3Byb2R1Y3QubmFtZScsICdjb3VudHJ5Lm5hbWUnXVxufSk7XG5cbmNvbnN0IHNlYXJjaEZpZWxkc05lc3RlZDoge1xuICBbdHlwZSBpbiBzZWFyY2hhYmxlVHlwZV06IHN0cmluZ1tdO1xufSA9IE9iamVjdC5mcmVlemUoe1xuICBbTm9kZVR5cGUuQ3ljbGVdOiBbXG4gICAgJ2lucHV0cy50ZXJtLm5hbWUnLFxuICAgICdlbWlzc2lvbnMudGVybS5uYW1lJyxcbiAgICAncHJhY3RpY2VzLnRlcm0ubmFtZSdcbiAgXSxcbiAgW05vZGVUeXBlLlNvdXJjZV06IFtdLFxuICBbTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudF06IFtcbiAgICAnZW1pc3Npb25zUmVzb3VyY2VVc2UudGVybS5uYW1lJyxcbiAgICAnaW1wYWN0cy50ZXJtLm5hbWUnXG4gIF1cbn0pO1xuXG4vKipcbiAqIFNwZWNpZmljIHN0cmljdCBxdWVyaWVzIHBlciB0eXBlLlxuICovXG5jb25zdCBzZWFyY2hRdWVyaWVzOiB7XG4gIFt0eXBlIGluIHNlYXJjaGFibGVUeXBlXTogeyBtdXN0OiBhbnlbXTsgbXVzdF9ub3Q6IGFueVtdIH07XG59ID0ge1xuICBbTm9kZVR5cGUuQ3ljbGVdOiB7IG11c3Q6IFtdLCBtdXN0X25vdDogW21hdGNoQWdncmVnYXRlZFF1ZXJ5XSB9LFxuICBbTm9kZVR5cGUuU291cmNlXTogeyBtdXN0OiBbXSwgbXVzdF9ub3Q6IFttYXRjaEFnZ3JlZ2F0ZWRRdWVyeV0gfVxufTtcblxuY29uc3Qgc2VhcmNoRmlsdGVyc0tleXM6IHtcbiAgW3R5cGUgaW4gc2VhcmNoYWJsZVR5cGVdOiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZztcbn0gPSB7XG4gIFtOb2RlVHlwZS5DeWNsZV06IGtleSA9PiBrZXksXG4gIFtOb2RlVHlwZS5Tb3VyY2VdOiBrZXkgPT4ga2V5XG59O1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgY29uc3Qgc2VhcmNoUXVlcnkgPSAodHlwZTogc2VhcmNoYWJsZVR5cGUsIHF1ZXJ5Pzogc3RyaW5nLCBmaWx0ZXJzPzogSVNlYXJjaEZpbHRlcnMsIGFnZ3JlZ2F0ZWQ/OiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGJvb2xRdWVyeTogYW55ID0gKHtcbiAgICBtdXN0OiBbXG4gICAgICBtYXRjaFR5cGUodHlwZSksXG4gICAgICBhZ2dyZWdhdGVkID8gbWF0Y2hBZ2dyZWdhdGVkUXVlcnkgOiBudWxsXG4gICAgXS5maWx0ZXIoQm9vbGVhbiksXG4gICAgLi4uKHF1ZXJ5ID8ge1xuICAgICAgc2hvdWxkOiBbXG4gICAgICAgIG1hdGNoUGhyYXNlUXVlcnkocXVlcnksIDEwMCwgLi4uc2VhcmNoRmllbGRzW3R5cGVdKSwgLy8gbWFrZSBzdXJlIGV4YWN0IG1hdGNoZXMgY29tZSBmaXJzdFxuICAgICAgICBtYXRjaFBocmFzZVByZWZpeFF1ZXJ5KHF1ZXJ5LCAyMCwgLi4uc2VhcmNoRmllbGRzW3R5cGVdKSxcbiAgICAgICAgbWF0Y2hCb29sUHJlZml4UXVlcnkocXVlcnksIDEwLCAuLi5zZWFyY2hGaWVsZHNbdHlwZV0pLFxuICAgICAgICAuLi5zZWFyY2hGaWVsZHNOZXN0ZWRbdHlwZV0ubWFwKGZpZWxkID0+IG1hdGNoTmVzdGVkS2V5KGZpZWxkLCBtYXRjaEJvb2xQcmVmaXhRdWVyeShxdWVyeSwgMSwgZmllbGQpKSlcbiAgICAgIF0sXG4gICAgICBtaW5pbXVtX3Nob3VsZF9tYXRjaDogMVxuICAgIH0gOiB7fSksXG4gICAgbXVzdF9ub3Q6IFtcbiAgICAgIGFnZ3JlZ2F0ZWQgPyBudWxsIDogbWF0Y2hBZ2dyZWdhdGVkUXVlcnlcbiAgICBdLmZpbHRlcihCb29sZWFuKVxuICB9KTtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGZpbHRlcnMgfHwge30pLmZpbHRlcihrZXkgPT4gZmlsdGVycyFba2V5XS5sZW5ndGgpO1xuICByZXR1cm4ge1xuICAgIGJvb2w6IGtleXMubGVuZ3RoID8ge1xuICAgICAgbXVzdDoga2V5cy5tYXAoa2V5ID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyS2V5ID0gc2VhcmNoRmlsdGVyc0tleXNbdHlwZV0oa2V5KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBib29sOiB7XG4gICAgICAgICAgICBzaG91bGQ6IGZpbHRlcnMhW2tleV1cbiAgICAgICAgICAgICAgLm1hcCh2YWx1ZSA9PiBtYXRjaE5lc3RlZEtleShmaWx0ZXJLZXksIG1hdGNoRXhhY3RRdWVyeShmaWx0ZXJLZXksIHZhbHVlKSkpXG4gICAgICAgICAgICAgIC5tYXAobXVzdCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxRdWVyeSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYm9vbFF1ZXJ5KSk7XG4gICAgICAgICAgICAgICAgbG9jYWxRdWVyeS5tdXN0LnB1c2gobXVzdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgYm9vbDogbG9jYWxRdWVyeSB9O1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICB9IDogYm9vbFF1ZXJ5XG4gIH07XG59O1xuLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG4iXX0=
|