@onecx/angular-accelerator 5.23.5 → 5.23.6

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.
@@ -65,15 +65,25 @@ export class DataSortBase {
65
65
  if (!clientSideSorting || sortColumn === '') {
66
66
  return [items, filters, sortColumn, sortDirection, translations];
67
67
  }
68
- let translatedColValues = Object.fromEntries(items.map((i) => [
69
- ObjectUtils.resolveFieldData(i, sortColumn)?.toString(),
70
- ObjectUtils.resolveFieldData(i, sortColumn)?.toString(),
71
- ]));
72
- if (columns.find((h) => h.id === sortColumn)?.columnType === ColumnType.TRANSLATION_KEY) {
73
- translatedColValues = translations[sortColumn];
68
+ const column = columns.find((h) => h.id === sortColumn);
69
+ let colValues;
70
+ if (column?.columnType === ColumnType.DATE || column?.columnType === ColumnType.RELATIVE_DATE) {
71
+ colValues = Object.fromEntries(items.map((i) => [
72
+ ObjectUtils.resolveFieldData(i, sortColumn),
73
+ ObjectUtils.resolveFieldData(i, sortColumn),
74
+ ]));
75
+ }
76
+ else {
77
+ colValues = Object.fromEntries(items.map((i) => [
78
+ ObjectUtils.resolveFieldData(i, sortColumn)?.toString(),
79
+ ObjectUtils.resolveFieldData(i, sortColumn)?.toString(),
80
+ ]));
81
+ }
82
+ if (column?.columnType === ColumnType.TRANSLATION_KEY) {
83
+ colValues = translations[sortColumn];
74
84
  }
75
85
  return [
76
- [...items].sort(this.createCompareFunction(translatedColValues, sortColumn, sortDirection)),
86
+ [...items].sort(this.createCompareFunction(colValues, sortColumn, sortDirection)),
77
87
  filters,
78
88
  sortColumn,
79
89
  sortDirection,
@@ -121,4 +131,4 @@ export class DataSortBase {
121
131
  };
122
132
  }
123
133
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtc29ydC1iYXNlL2RhdGEtc29ydC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFLMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUk3RCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNZLE1BQWMsRUFDZCxnQkFBa0M7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDM0MsQ0FBQztJQUVKLGNBQWMsQ0FDWixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBMkQsRUFDckcsT0FBMEIsRUFDMUIsbUJBQTRCLEVBQzVCLGlCQUEwQjtRQUUxQixJQUFJLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDN0MsSUFBSSxlQUFlLEdBQWEsRUFBRSxDQUFBO1lBQ2xDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDNUYsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlCLGVBQWUsR0FBRztvQkFDaEIsR0FBRyxlQUFlO29CQUNs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Q0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUVuRixJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUk7Z0JBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO2lCQUM1QyxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUk7Z0JBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQTtpQkFDaEQsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJO2dCQUFFLE1BQU0sR0FBRyxDQUFDLENBQUE7aUJBQ2hELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7Z0JBQy9ELE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7aUJBQ2hGLENBQUM7Z0JBQ0osSUFBSSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7b0JBQ3BCLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDYixDQUFDO3FCQUFNLElBQUksTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO29CQUMzQixNQUFNLEdBQUcsQ0FBQyxDQUFBO2dCQUNaLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLEdBQUcsQ0FBQyxDQUFBO2dCQUNaLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxTQUFTLEdBQUcsTUFBTSxDQUFBO1FBQzNCLENBQUMsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBmbGF0dGVuT2JqZWN0IH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2ZsYXR0ZW4tb2JqZWN0J1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuaW1wb3J0IHsgRGF0YVNvcnREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXNvcnQtZGlyZWN0aW9uJ1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGF0YS10YWJsZS1jb2x1bW4ubW9kZWwnXG5pbXBvcnQgeyBMaXN0R3JpZERhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2RhdGEtbGlzdC1ncmlkL2RhdGEtbGlzdC1ncmlkLmNvbXBvbmVudCdcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvb2JqZWN0dXRpbHMnXG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIubW9kZWwnXG5cbnR5cGUgUm93TGlzdEdyaWREYXRhID0gTGlzdEdyaWREYXRhIHwgUm93XG5cbmV4cG9ydCBjbGFzcyBEYXRhU29ydEJhc2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgbG9jYWxlOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHRyYW5zbGF0ZUl0ZW1zKFxuICAgIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbl06IFtSb3dMaXN0R3JpZERhdGFbXSwgRmlsdGVyW10sIHN0cmluZywgRGF0YVNvcnREaXJlY3Rpb25dLFxuICAgIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdLFxuICAgIGNsaWVudFNpZGVGaWx0ZXJpbmc6IGJvb2xlYW4sXG4gICAgY2xpZW50U2lkZVNvcnRpbmc6IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTxbUm93TGlzdEdyaWREYXRhW10sIEZpbHRlcltdLCBzdHJpbmcsIERhdGFTb3J0RGlyZWN0aW9uLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pl0+IHtcbiAgICBpZiAoY2xpZW50U2lkZUZpbHRlcmluZyB8fCBjbGllbnRTaWRlU29ydGluZykge1xuICAgICAgbGV0IHRyYW5zbGF0aW9uS2V5czogc3RyaW5nW10gPSBbXVxuICAgICAgY29uc3QgdHJhbnNsYXRlZENvbHVtbnMgPSBjb2x1bW5zLmZpbHRlcigoYykgPT4gYy5jb2x1bW5UeXBlID09PSBDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWSlcbiAgICAgIHRyYW5zbGF0ZWRDb2x1bW5zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgdHJhbnNsYXRpb25LZXlzID0gW1xuICAgICAgICAgIC4uLnRyYW5zbGF0aW9uS2V5cyxcbiAgICAgICAgICAuLi5pdGVtcy5tYXAoKGkpID0+IE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoaSwgYy5pZCk/LnRvU3RyaW5nKCkpLmZpbHRlcigodikgPT4gISF2KSxcbiAgICAgICAgXVxuICAgICAgfSlcbiAgICAgIGlmICh0cmFuc2xhdGlvbktleXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KHRyYW5zbGF0aW9uS2V5cykucGlwZShcbiAgICAgICAgICBtYXAoKHRyYW5zbGF0ZWRWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7fVxuICAgICAgICAgICAgdHJhbnNsYXRlZENvbHVtbnMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNbYy5pZF0gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgICAgaXRlbXMubWFwKChpKSA9PiBbXG4gICAgICAgICAgICAgICAgICBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGksIGMuaWQpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZFZhbHVlc1tPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGksIGMuaWQpPy50b1N0cmluZygpXSxcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwgdHJhbnNsYXRpb25zXVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwge31dKVxuICB9XG5cbiAgZmlsdGVySXRlbXMoXG4gICAgW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uLCB0cmFuc2xhdGlvbnNdOiBbXG4gICAgICBSb3dMaXN0R3JpZERhdGFbXSxcbiAgICAgIEZpbHRlcltdLFxuICAgICAgc3RyaW5nLFxuICAgICAgRGF0YVNvcnREaXJlY3Rpb24sXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PixcbiAgICBdLFxuICAgIGNsaWVudFNpZGVGaWx0ZXJpbmc6IGJvb2xlYW5cbiAgKTogW1Jvd0xpc3RHcmlkRGF0YVtdLCBGaWx0ZXJbXSwgc3RyaW5nLCBEYXRhU29ydERpcmVjdGlvbiwgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj5dIHtcbiAgICBpZiAoIWNsaWVudFNpZGVGaWx0ZXJpbmcpIHtcbiAgICAgIHJldHVybiBbaXRlbXMsIGZpbHRlcnMsIHNvcnRDb2x1bW4sIHNvcnREaXJlY3Rpb24sIHRyYW5zbGF0aW9uc11cbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgZmlsdGVyc1xuICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT4gZmlsdGVyLmNvbHVtbklkKVxuICAgICAgICAgIC5maWx0ZXIoKHZhbHVlLCBpbmRleCwgc2VsZikgPT4gc2VsZi5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXggJiYgdmFsdWUgIT0gbnVsbClcbiAgICAgICAgICAuZXZlcnkoKGZpbHRlckNvbHVtbklkKSA9PlxuICAgICAgICAgICAgZmlsdGVyc1xuICAgICAgICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5jb2x1bW5JZCA9PT0gZmlsdGVyQ29sdW1uSWQpXG4gICAgICAgICAgICAgIC5zb21lKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1tmaWx0ZXIuY29sdW1uSWRdPy5bT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpdGVtLCBmaWx0ZXIuY29sdW1uSWQpPy50b1N0cmluZygpXSB8fFxuICAgICAgICAgICAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpdGVtLCBmaWx0ZXIuY29sdW1uSWQpXG4gICAgICAgICAgICAgICAgKT8udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLkVRVUFMOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IFN0cmluZyhmaWx0ZXIudmFsdWUpXG4gICAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuVFJVVEhZOiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIudmFsdWUgPyAhIXZhbHVlIDogIXZhbHVlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICksXG4gICAgICBmaWx0ZXJzLFxuICAgICAgc29ydENvbHVtbixcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICB0cmFuc2xhdGlvbnMsXG4gICAgXVxuICB9XG5cbiAgc29ydEl0ZW1zKFxuICAgIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwgdHJhbnNsYXRpb25zXTogW1xuICAgICAgUm93TGlzdEdyaWREYXRhW10sXG4gICAgICBGaWx0ZXJbXSxcbiAgICAgIHN0cmluZyxcbiAgICAgIERhdGFTb3J0RGlyZWN0aW9uLFxuICAgICAgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4sXG4gICAgXSxcbiAgICBjb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSxcbiAgICBjbGllbnRTaWRlU29ydGluZzogYm9vbGVhblxuICApOiBbUm93TGlzdEdyaWREYXRhW10sIEZpbHRlcltdLCBzdHJpbmcsIERhdGFTb3J0RGlyZWN0aW9uLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pl0ge1xuICAgIGlmICghY2xpZW50U2lkZVNvcnRpbmcgfHwgc29ydENvbHVtbiA9PT0gJycpIHtcbiAgICAgIHJldHVybiBbaXRlbXMsIGZpbHRlcnMsIHNvcnRDb2x1bW4sIHNvcnREaXJlY3Rpb24sIHRyYW5zbGF0aW9uc11cbiAgICB9XG4gICAgbGV0IHRyYW5zbGF0ZWRDb2xWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBpdGVtcy5tYXAoKGkpID0+IFtcbiAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBzb3J0Q29sdW1uKT8udG9TdHJpbmcoKSxcbiAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBzb3J0Q29sdW1uKT8udG9TdHJpbmcoKSxcbiAgICAgIF0pXG4gICAgKVxuICAgIGlmIChjb2x1bW5zLmZpbmQoKGgpID0+IGguaWQgPT09IHNvcnRDb2x1bW4pPy5jb2x1bW5UeXBlID09PSBDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWSkge1xuICAgICAgdHJhbnNsYXRlZENvbFZhbHVlcyA9IHRyYW5zbGF0aW9uc1tzb3J0Q29sdW1uXVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgWy4uLml0ZW1zXS5zb3J0KHRoaXMuY3JlYXRlQ29tcGFyZUZ1bmN0aW9uKHRyYW5zbGF0ZWRDb2xWYWx1ZXMsIHNvcnRDb2x1bW4sIHNvcnREaXJlY3Rpb24pKSxcbiAgICAgIGZpbHRlcnMsXG4gICAgICBzb3J0Q29sdW1uLFxuICAgICAgc29ydERpcmVjdGlvbixcbiAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICBdXG4gIH1cblxuICBmbGF0dGVuSXRlbXMoaXRlbXM6IFJvd0xpc3RHcmlkRGF0YVtdKSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaSkgPT4gZmxhdHRlbk9iamVjdChpKSlcbiAgfVxuXG4gIGNyZWF0ZUNvbXBhcmVGdW5jdGlvbihcbiAgICB0cmFuc2xhdGVkQ29sVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIHNvcnRDb2x1bW46IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uOiBEYXRhU29ydERpcmVjdGlvblxuICApOiAoYTogUmVjb3JkPHN0cmluZywgYW55PiwgYjogUmVjb3JkPHN0cmluZywgYW55PikgPT4gbnVtYmVyIHtcbiAgICBsZXQgZGlyZWN0aW9uID0gMFxuICAgIGlmIChzb3J0RGlyZWN0aW9uID09PSBEYXRhU29ydERpcmVjdGlvbi5BU0NFTkRJTkcpIHtcbiAgICAgIGRpcmVjdGlvbiA9IDFcbiAgICB9IGVsc2UgaWYgKHNvcnREaXJlY3Rpb24gPT09IERhdGFTb3J0RGlyZWN0aW9uLkRFU0NFTkRJTkcpIHtcbiAgICAgIGRpcmVjdGlvbiA9IC0xXG4gICAgfVxuICAgIHJldHVybiAoZGF0YTEsIGRhdGEyKSA9PiB7XG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwXG4gICAgICB9XG4gICAgICBsZXQgcmVzdWx0XG4gICAgICBjb25zdCB2YWx1ZTEgPSB0cmFuc2xhdGVkQ29sVmFsdWVzW09iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoZGF0YTEsIHNvcnRDb2x1bW4pXVxuICAgICAgY29uc3QgdmFsdWUyID0gdHJhbnNsYXRlZENvbFZhbHVlc1tPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGRhdGEyLCBzb3J0Q29sdW1uKV1cblxuICAgICAgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiAhPSBudWxsKSByZXN1bHQgPSAtMVxuICAgICAgZWxzZSBpZiAodmFsdWUxICE9IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDFcbiAgICAgIGVsc2UgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiA9PSBudWxsKSByZXN1bHQgPSAwXG4gICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUxID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUyID09PSAnc3RyaW5nJylcbiAgICAgICAgcmVzdWx0ID0gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyLCBbdGhpcy5sb2NhbGUsICdlbicsICdkZSddLCB7IG51bWVyaWM6IHRydWUgfSlcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAodmFsdWUxIDwgdmFsdWUyKSB7XG4gICAgICAgICAgcmVzdWx0ID0gLTFcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZTEgPiB2YWx1ZTIpIHtcbiAgICAgICAgICByZXN1bHQgPSAxXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gMFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGlyZWN0aW9uICogcmVzdWx0XG4gICAgfVxuICB9XG59XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtc29ydC1iYXNlL2RhdGEtc29ydC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFLMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUk3RCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNZLE1BQWMsRUFDZCxnQkFBa0M7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDM0MsQ0FBQztJQUVKLGNBQWMsQ0FDWixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBMkQsRUFDckcsT0FBMEIsRUFDMUIsbUJBQTRCLEVBQzVCLGlCQUEwQjtRQUUxQixJQUFJLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDN0MsSUFBSSxlQUFlLEdBQWEsRUFBRSxDQUFBO1lBQ2xDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDNUYsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlCLGVBQWUsR0FBRztvQkFDaEIsR0FBRyxlQUFlO29CQUNs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LENBQUM7cUJBQU0sSUFBSSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7b0JBQzNCLE1BQU0sR0FBRyxDQUFDLENBQUE7Z0JBQ1osQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sR0FBRyxDQUFDLENBQUE7Z0JBQ1osQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFNBQVMsR0FBRyxNQUFNLENBQUE7UUFDM0IsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGZsYXR0ZW5PYmplY3QgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZmxhdHRlbi1vYmplY3QnXG5pbXBvcnQgeyBDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29sdW1uLXR5cGUubW9kZWwnXG5pbXBvcnQgeyBEYXRhU29ydERpcmVjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtc29ydC1kaXJlY3Rpb24nXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXRhYmxlLWNvbHVtbi5tb2RlbCdcbmltcG9ydCB7IExpc3RHcmlkRGF0YSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGF0YS1saXN0LWdyaWQvZGF0YS1saXN0LWdyaWQuY29tcG9uZW50J1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50J1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9vYmplY3R1dGlscydcbmltcG9ydCB7IEZpbHRlciwgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2ZpbHRlci5tb2RlbCdcblxudHlwZSBSb3dMaXN0R3JpZERhdGEgPSBMaXN0R3JpZERhdGEgfCBSb3dcblxuZXhwb3J0IGNsYXNzIERhdGFTb3J0QmFzZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBsb2NhbGU6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgdHJhbnNsYXRlSXRlbXMoXG4gICAgW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uXTogW1Jvd0xpc3RHcmlkRGF0YVtdLCBGaWx0ZXJbXSwgc3RyaW5nLCBEYXRhU29ydERpcmVjdGlvbl0sXG4gICAgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10sXG4gICAgY2xpZW50U2lkZUZpbHRlcmluZzogYm9vbGVhbixcbiAgICBjbGllbnRTaWRlU29ydGluZzogYm9vbGVhblxuICApOiBPYnNlcnZhYmxlPFtSb3dMaXN0R3JpZERhdGFbXSwgRmlsdGVyW10sIHN0cmluZywgRGF0YVNvcnREaXJlY3Rpb24sIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+XT4ge1xuICAgIGlmIChjbGllbnRTaWRlRmlsdGVyaW5nIHx8IGNsaWVudFNpZGVTb3J0aW5nKSB7XG4gICAgICBsZXQgdHJhbnNsYXRpb25LZXlzOiBzdHJpbmdbXSA9IFtdXG4gICAgICBjb25zdCB0cmFuc2xhdGVkQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKChjKSA9PiBjLmNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuVFJBTlNMQVRJT05fS0VZKVxuICAgICAgdHJhbnNsYXRlZENvbHVtbnMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICB0cmFuc2xhdGlvbktleXMgPSBbXG4gICAgICAgICAgLi4udHJhbnNsYXRpb25LZXlzLFxuICAgICAgICAgIC4uLml0ZW1zLm1hcCgoaSkgPT4gT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBjLmlkKT8udG9TdHJpbmcoKSkuZmlsdGVyKCh2KSA9PiAhIXYpLFxuICAgICAgICBdXG4gICAgICB9KVxuICAgICAgaWYgKHRyYW5zbGF0aW9uS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodHJhbnNsYXRpb25LZXlzKS5waXBlKFxuICAgICAgICAgIG1hcCgodHJhbnNsYXRlZFZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHt9XG4gICAgICAgICAgICB0cmFuc2xhdGVkQ29sdW1ucy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1tjLmlkXSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgICAgICBpdGVtcy5tYXAoKGkpID0+IFtcbiAgICAgICAgICAgICAgICAgIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoaSwgYy5pZCk/LnRvU3RyaW5nKCkgfHwgJycsXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVkVmFsdWVzW09iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoaSwgYy5pZCk/LnRvU3RyaW5nKCldLFxuICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICByZXR1cm4gW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uLCB0cmFuc2xhdGlvbnNdXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2YoW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uLCB7fV0pXG4gIH1cblxuICBmaWx0ZXJJdGVtcyhcbiAgICBbaXRlbXMsIGZpbHRlcnMsIHNvcnRDb2x1bW4sIHNvcnREaXJlY3Rpb24sIHRyYW5zbGF0aW9uc106IFtcbiAgICAgIFJvd0xpc3RHcmlkRGF0YVtdLFxuICAgICAgRmlsdGVyW10sXG4gICAgICBzdHJpbmcsXG4gICAgICBEYXRhU29ydERpcmVjdGlvbixcbiAgICAgIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+LFxuICAgIF0sXG4gICAgY2xpZW50U2lkZUZpbHRlcmluZzogYm9vbGVhblxuICApOiBbUm93TGlzdEdyaWREYXRhW10sIEZpbHRlcltdLCBzdHJpbmcsIERhdGFTb3J0RGlyZWN0aW9uLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pl0ge1xuICAgIGlmICghY2xpZW50U2lkZUZpbHRlcmluZykge1xuICAgICAgcmV0dXJuIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwgdHJhbnNsYXRpb25zXVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgaXRlbXMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICBmaWx0ZXJzXG4gICAgICAgICAgLm1hcCgoZmlsdGVyKSA9PiBmaWx0ZXIuY29sdW1uSWQpXG4gICAgICAgICAgLmZpbHRlcigodmFsdWUsIGluZGV4LCBzZWxmKSA9PiBzZWxmLmluZGV4T2YodmFsdWUpID09PSBpbmRleCAmJiB2YWx1ZSAhPSBudWxsKVxuICAgICAgICAgIC5ldmVyeSgoZmlsdGVyQ29sdW1uSWQpID0+XG4gICAgICAgICAgICBmaWx0ZXJzXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmNvbHVtbklkID09PSBmaWx0ZXJDb2x1bW5JZClcbiAgICAgICAgICAgICAgLnNvbWUoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKFxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zW2ZpbHRlci5jb2x1bW5JZF0/LltPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGl0ZW0sIGZpbHRlci5jb2x1bW5JZCk/LnRvU3RyaW5nKCldIHx8XG4gICAgICAgICAgICAgICAgICBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGl0ZW0sIGZpbHRlci5jb2x1bW5JZClcbiAgICAgICAgICAgICAgICApPy50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXIuZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuRVFVQUw6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gU3RyaW5nKGZpbHRlci52YWx1ZSlcbiAgICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5UUlVUSFk6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlci52YWx1ZSA/ICEhdmFsdWUgOiAhdmFsdWVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIGZpbHRlcnMsXG4gICAgICBzb3J0Q29sdW1uLFxuICAgICAgc29ydERpcmVjdGlvbixcbiAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICBdXG4gIH1cblxuICBzb3J0SXRlbXMoXG4gICAgW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uLCB0cmFuc2xhdGlvbnNdOiBbXG4gICAgICBSb3dMaXN0R3JpZERhdGFbXSxcbiAgICAgIEZpbHRlcltdLFxuICAgICAgc3RyaW5nLFxuICAgICAgRGF0YVNvcnREaXJlY3Rpb24sXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PixcbiAgICBdLFxuICAgIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdLFxuICAgIGNsaWVudFNpZGVTb3J0aW5nOiBib29sZWFuXG4gICk6IFtSb3dMaXN0R3JpZERhdGFbXSwgRmlsdGVyW10sIHN0cmluZywgRGF0YVNvcnREaXJlY3Rpb24sIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+XSB7XG4gICAgaWYgKCFjbGllbnRTaWRlU29ydGluZyB8fCBzb3J0Q29sdW1uID09PSAnJykge1xuICAgICAgcmV0dXJuIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwgdHJhbnNsYXRpb25zXVxuICAgIH1cbiAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGgpID0+IGguaWQgPT09IHNvcnRDb2x1bW4pXG4gICAgbGV0IGNvbFZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAgIGlmIChjb2x1bW4/LmNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuREFURSB8fCBjb2x1bW4/LmNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuUkVMQVRJVkVfREFURSkge1xuICAgICAgY29sVmFsdWVzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBpdGVtcy5tYXAoKGkpID0+IFtcbiAgICAgICAgICBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGksIHNvcnRDb2x1bW4pIGFzIERhdGUsXG4gICAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBzb3J0Q29sdW1uKSBhcyBEYXRlLFxuICAgICAgICBdKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb2xWYWx1ZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIGl0ZW1zLm1hcCgoaSkgPT4gW1xuICAgICAgICAgIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoaSwgc29ydENvbHVtbik/LnRvU3RyaW5nKCksXG4gICAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBzb3J0Q29sdW1uKT8udG9TdHJpbmcoKSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKGNvbHVtbj8uY29sdW1uVHlwZSA9PT0gQ29sdW1uVHlwZS5UUkFOU0xBVElPTl9LRVkpIHtcbiAgICAgIGNvbFZhbHVlcyA9IHRyYW5zbGF0aW9uc1tzb3J0Q29sdW1uXVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgWy4uLml0ZW1zXS5zb3J0KHRoaXMuY3JlYXRlQ29tcGFyZUZ1bmN0aW9uKGNvbFZhbHVlcywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbikpLFxuICAgICAgZmlsdGVycyxcbiAgICAgIHNvcnRDb2x1bW4sXG4gICAgICBzb3J0RGlyZWN0aW9uLFxuICAgICAgdHJhbnNsYXRpb25zLFxuICAgIF1cbiAgfVxuXG4gIGZsYXR0ZW5JdGVtcyhpdGVtczogUm93TGlzdEdyaWREYXRhW10pIHtcbiAgICByZXR1cm4gaXRlbXMubWFwKChpKSA9PiBmbGF0dGVuT2JqZWN0KGkpKVxuICB9XG5cbiAgY3JlYXRlQ29tcGFyZUZ1bmN0aW9uKFxuICAgIHRyYW5zbGF0ZWRDb2xWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgc29ydENvbHVtbjogc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb246IERhdGFTb3J0RGlyZWN0aW9uXG4gICk6IChhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBiOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiBudW1iZXIge1xuICAgIGxldCBkaXJlY3Rpb24gPSAwXG4gICAgaWYgKHNvcnREaXJlY3Rpb24gPT09IERhdGFTb3J0RGlyZWN0aW9uLkFTQ0VORElORykge1xuICAgICAgZGlyZWN0aW9uID0gMVxuICAgIH0gZWxzZSBpZiAoc29ydERpcmVjdGlvbiA9PT0gRGF0YVNvcnREaXJlY3Rpb24uREVTQ0VORElORykge1xuICAgICAgZGlyZWN0aW9uID0gLTFcbiAgICB9XG4gICAgcmV0dXJuIChkYXRhMSwgZGF0YTIpID0+IHtcbiAgICAgIGlmIChkaXJlY3Rpb24gPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH1cbiAgICAgIGxldCByZXN1bHRcbiAgICAgIGNvbnN0IHZhbHVlMSA9IHRyYW5zbGF0ZWRDb2xWYWx1ZXNbT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShkYXRhMSwgc29ydENvbHVtbildXG4gICAgICBjb25zdCB2YWx1ZTIgPSB0cmFuc2xhdGVkQ29sVmFsdWVzW09iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoZGF0YTIsIHNvcnRDb2x1bW4pXVxuXG4gICAgICBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyICE9IG51bGwpIHJlc3VsdCA9IC0xXG4gICAgICBlbHNlIGlmICh2YWx1ZTEgIT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMVxuICAgICAgZWxzZSBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDBcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdzdHJpbmcnKVxuICAgICAgICByZXN1bHQgPSB2YWx1ZTEubG9jYWxlQ29tcGFyZSh2YWx1ZTIsIFt0aGlzLmxvY2FsZSwgJ2VuJywgJ2RlJ10sIHsgbnVtZXJpYzogdHJ1ZSB9KVxuICAgICAgZWxzZSB7XG4gICAgICAgIGlmICh2YWx1ZTEgPCB2YWx1ZTIpIHtcbiAgICAgICAgICByZXN1bHQgPSAtMVxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlMSA+IHZhbHVlMikge1xuICAgICAgICAgIHJlc3VsdCA9IDFcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSAwXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBkaXJlY3Rpb24gKiByZXN1bHRcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -124,6 +124,9 @@ export class FilterViewComponent {
124
124
  .slice()
125
125
  .sort((a, b) => columnIds.indexOf(a.valueColumnId) - columnIds.indexOf(b.valueColumnId));
126
126
  }));
127
+ this.componentStateChanged.emit({
128
+ filters: this.filters,
129
+ });
127
130
  }
128
131
  get _fitlerViewNoSelection() {
129
132
  return this.fitlerViewNoSelection;
@@ -257,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
257
260
  }], templates: [{
258
261
  type: Input
259
262
  }] } });
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItdmlldy9maWx0ZXItdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci12aWV3L2ZpbHRlci12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7Ozs7Ozs7O0FBcUJ2QyxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTUUsZUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUN2QixlQUFVLEdBQUcsVUFBVSxD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NUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQVcsRUFBRSxHQUFRO1FBQ3BDLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQseUJBQXlCLENBQUMsTUFBYztRQUN0QyxPQUFPO1lBQ0wsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUs7U0FDaEMsQ0FBQTtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFRO1FBQzNCLE9BQU87WUFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDVixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUM7U0FDL0MsQ0FBQTtJQUNILENBQUM7OEdBblFVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDZaQStFbkIsWUFBWSxxS0FzQlQsYUFBYSxnREMvSTdCLDhyVkF3T0E7OzJGRDlMYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQVN2QixPQUFPO3NCQURWLEtBQUs7Z0JBU0YsT0FBTztzQkFEVixLQUFLO2dCQXFCRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFzQ2tCLEtBQUs7c0JBQTdCLFNBQVM7dUJBQUMsWUFBWTtnQkFDSSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBc0JyQixnQkFBZ0I7c0JBRG5CLFlBQVk7dUJBQUMsYUFBYTtnQkFTdkIsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIubW9kZWwnXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXRhYmxlLWNvbHVtbi5tb2RlbCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSB9IGZyb20gJ3ByaW1lbmcvYXBpJ1xuaW1wb3J0IHsgZmluZFRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGVtcGxhdGUudXRpbHMnXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL29iamVjdHV0aWxzJ1xuaW1wb3J0IHsgbGltaXQgfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXIudXRpbHMnXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCdcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbidcblxuZXhwb3J0IHR5cGUgRmlsdGVyVmlld0Rpc3BsYXlNb2RlID0gJ2NoaXBzJyB8ICdidXR0b24nXG5leHBvcnQgdHlwZSBGaWx0ZXJWaWV3Um93RGlzcGxheURhdGEgPSB7XG4gIGlkOiBzdHJpbmdcbiAgY29sdW1uOiBzdHJpbmdcbiAgdmFsdWU6IHVua25vd25cbn1cbmV4cG9ydCB0eXBlIEZpbHRlclZpZXdSb3dEZXRhaWxEYXRhID0gRmlsdGVyVmlld1Jvd0Rpc3BsYXlEYXRhICYge1xuICB2YWx1ZUNvbHVtbklkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUge1xuICBmaWx0ZXJzPzogRmlsdGVyW11cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2N4LWZpbHRlci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENvbHVtblR5cGUgPSBDb2x1bW5UeXBlXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlXG4gIGZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pXG4gIEBJbnB1dCgpXG4gIGdldCBmaWx0ZXJzKCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGZpbHRlcnModmFsdWU6IEZpbHRlcltdKSB7XG4gICAgdGhpcy5maWx0ZXJzJC5uZXh0KHZhbHVlKVxuICB9XG4gIGNvbHVtbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhVGFibGVDb2x1bW5bXT4oW10pXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bW5zKCk6IERhdGFUYWJsZUNvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGNvbHVtbnModmFsdWU6IERhdGFUYWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5jb2x1bW5zJC5uZXh0KHZhbHVlKVxuICAgIGNvbnN0IGNoaXBPYnMgPSB2YWx1ZS5tYXAoKGMpID0+IHRoaXMuZ2V0VGVtcGxhdGUoYywgdGhpcy5jaGlwVGVtcGxhdGVOYW1lcywgdGhpcy5jaGlwVGVtcGxhdGVzLCB0aGlzLmNoaXBJZFN1ZmZpeCkpXG4gICAgdGhpcy5jaGlwVGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoY2hpcE9icykucGlwZShcbiAgICAgIG1hcCgodmFsdWVzKSA9PiBPYmplY3QuZnJvbUVudHJpZXModmFsdWUubWFwKChjLCBpKSA9PiBbYy5pZCwgdmFsdWVzW2ldXSkpKVxuICAgIClcblxuICAgIGNvbnN0IHRhYmxlVGVtcGxhdGVDb2x1bW5zID0gdmFsdWUuY29uY2F0KHRoaXMuY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zKVxuICAgIHRoaXMudGFibGVUZW1wbGF0ZXMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIHRhYmxlVGVtcGxhdGVDb2x1bW5zLm1hcCgoYykgPT5cbiAgICAgICAgdGhpcy5nZXRUZW1wbGF0ZShjLCB0aGlzLnRhYmxlVGVtcGxhdGVOYW1lcywgdGhpcy50YWJsZVRlbXBsYXRlcywgdGhpcy50YWJsZUlkU3VmZml4KVxuICAgICAgKVxuICAgICkucGlwZShtYXAoKHZhbHVlcykgPT4gT2JqZWN0LmZyb21FbnRyaWVzKHRhYmxlVGVtcGxhdGVDb2x1bW5zLm1hcCgoYywgaSkgPT4gW2MuaWQsIHZhbHVlc1tpXV0pKSkpXG4gIH1cblxuICBjb2x1bW5GaWx0ZXJEYXRhUm93cyQ6IE9ic2VydmFibGU8RmlsdGVyVmlld1Jvd0Rpc3BsYXlEYXRhW10+IHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KCkgZGlzcGxheU1vZGU6IEZpbHRlclZpZXdEaXNwbGF5TW9kZSA9ICdidXR0b24nXG4gIEBJbnB1dCgpIHNlbGVjdERpc3BsYXllZENoaXBzOiAoZmlsdGVyczogRmlsdGVyW10sIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdKSA9PiBGaWx0ZXJbXSA9IChmaWx0ZXJzKSA9PlxuICAgIGxpbWl0KGZpbHRlcnMsIDMsIHsgcmV2ZXJzZTogdHJ1ZSB9KVxuICBASW5wdXQoKSBjaGlwU3R5bGVDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIHRhYmxlU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSA9IHsgJ21heC1oZWlnaHQnOiAnNTB2aCcgfVxuICBASW5wdXQoKSBwYW5lbFN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gPSB7ICdtYXgtd2lkdGgnOiAnOTAlJyB9XG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkOiBFdmVudEVtaXR0ZXI8RmlsdGVyW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBjb21wb25lbnRTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSA9IFtcbiAgICB7XG4gICAgICBpZDogJ2NvbHVtbicsXG4gICAgICBjb2x1bW5UeXBlOiBDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWSxcbiAgICAgIG5hbWVLZXk6ICdPQ1hfRklMVEVSX1ZJRVcuVEFCTEUuQ09MVU1OX05BTUUnLFxuICAgIH0sXG4gICAgeyBpZDogJ3ZhbHVlJywgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5TVFJJTkcsIG5hbWVLZXk6ICdPQ1hfRklMVEVSX1ZJRVcuVEFCTEUuVkFMVUUnIH0sXG4gICAge1xuICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgIGNvbHVtblR5cGU6IENvbHVtblR5cGUuU1RSSU5HLFxuICAgICAgbmFtZUtleTogJ09DWF9GSUxURVJfVklFVy5UQUJMRS5BQ1RJT05TJyxcbiAgICB9LFxuICBdXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJEYXRhUm93cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcnMkLCB0aGlzLmNvbHVtbnMkXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlcnMsIGNvbHVtbnNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IGNvbHVtbnMubWFwKChjKSA9PiBjLmlkKVxuICAgICAgICByZXR1cm4gZmlsdGVyc1xuICAgICAgICAgIC5tYXAoKGYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uRm9yRmlsdGVyKGYsIGNvbHVtbnMpXG4gICAgICAgICAgICBpZiAoIWZpbHRlckNvbHVtbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IGAke2YuY29sdW1uSWR9LSR7Zi52YWx1ZX1gLFxuICAgICAgICAgICAgICBjb2x1bW46IGZpbHRlckNvbHVtbi5uYW1lS2V5LFxuICAgICAgICAgICAgICB2YWx1ZTogZi52YWx1ZSxcbiAgICAgICAgICAgICAgdmFsdWVDb2x1bW5JZDogZmlsdGVyQ29sdW1uLmlkLFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgRmlsdGVyVmlld1Jvd0RldGFpbERhdGFcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIoKHYpOiB2IGlzIEZpbHRlclZpZXdSb3dEZXRhaWxEYXRhID0+IHYgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBjb2x1bW5JZHMuaW5kZXhPZihhLnZhbHVlQ29sdW1uSWQpIC0gY29sdW1uSWRzLmluZGV4T2YoYi52YWx1ZUNvbHVtbklkKSlcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgQFZpZXdDaGlsZChPdmVybGF5UGFuZWwpIHBhbmVsITogT3ZlcmxheVBhbmVsXG4gIEBWaWV3Q2hpbGQoJ21hbmFnZUJ1dHRvbicpIG1hbmFnZUJ1dHRvbiE6IEJ1dHRvblxuICB0cmlnZ2VyOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuXG4gIGZpdGxlclZpZXdOb1NlbGVjdGlvbjogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2ZpdGxlclZpZXdOb1NlbGVjdGlvbigpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5maXRsZXJWaWV3Tm9TZWxlY3Rpb25cbiAgfVxuXG4gIGZpbHRlclZpZXdDaGlwQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2ZpbHRlclZpZXdDaGlwQ29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJWaWV3Q2hpcENvbnRlbnRcbiAgfVxuXG4gIGZpbHRlclZpZXdTaG93TW9yZUNoaXA6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcbiAgZ2V0IF9maWx0ZXJWaWV3U2hvd01vcmVDaGlwKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbHRlclZpZXdTaG93TW9yZUNoaXBcbiAgfVxuXG4gIGRlZmF1bHRUZW1wbGF0ZXMkOiBCZWhhdmlvclN1YmplY3Q8UXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkXG4gID4odW5kZWZpbmVkKVxuICBAVmlld0NoaWxkcmVuKFByaW1lVGVtcGxhdGUpXG4gIHNldCBkZWZhdWx0VGVtcGxhdGVzKHZhbHVlOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMkLm5leHQodmFsdWUpXG4gIH1cblxuICBwYXJlbnRUZW1wbGF0ZXMkOiBCZWhhdmlvclN1YmplY3Q8UXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgbnVsbCB8IHVuZGVmaW5lZD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFxuICAgIFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IG51bGwgfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpXG4gIEBJbnB1dCgpXG4gIHNldCB0ZW1wbGF0ZXModmFsdWU6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnBhcmVudFRlbXBsYXRlcyQubmV4dCh2YWx1ZSlcbiAgICB2YWx1ZT8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICBjYXNlICdmaXRsZXJWaWV3Tm9TZWxlY3Rpb24nOlxuICAgICAgICAgIHRoaXMuZml0bGVyVmlld05vU2VsZWN0aW9uID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ2ZpbHRlclZpZXdDaGlwQ29udGVudCc6XG4gICAgICAgICAgdGhpcy5maWx0ZXJWaWV3Q2hpcENvbnRlbnQgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnZmlsdGVyVmlld1Nob3dNb3JlQ2hpcCc6XG4gICAgICAgICAgdGhpcy5maWx0ZXJWaWV3U2hvd01vcmVDaGlwID0gaXRlbS50ZW1wbGF0ZVxuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNoaXBUZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPj4gfCB1bmRlZmluZWRcbiAgdGFibGVUZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPj4gfCB1bmRlZmluZWRcblxuICBjaGlwSWRTdWZmaXg6IEFycmF5PHN0cmluZz4gPSBbJ0lkRmlsdGVyQ2hpcCcsICdJZFRhYmxlRmlsdGVyQ2VsbCcsICdJZFRhYmxlQ2VsbCddXG4gIGNoaXBUZW1wbGF0ZU5hbWVzOiBSZWNvcmQ8Q29sdW1uVHlwZSwgQXJyYXk8c3RyaW5nPj4gPSB7XG4gICAgW0NvbHVtblR5cGUuREFURV06IFsnZGF0ZUZpbHRlckNoaXBWYWx1ZScsICdkYXRlVGFibGVGaWx0ZXJDZWxsJywgJ2RhdGVUYWJsZUNlbGwnLCAnZGVmYXVsdERhdGVWYWx1ZSddLFxuICAgIFtDb2x1bW5UeXBlLk5VTUJFUl06IFsnbnVtYmVyRmlsdGVyQ2hpcFZhbHVlJywgJ251bWJlclRhYmxlRmlsdGVyQ2VsbCcsICdudW1iZXJUYWJsZUNlbGwnLCAnZGVmYXVsdE51bWJlclZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuUkVMQVRJVkVfREFURV06IFtcbiAgICAgICdyZWxhdGl2ZURhdGVGaWx0ZXJDaGlwVmFsdWUnLFxuICAgICAgJ3JlbGF0aXZlRGF0ZVRhYmxlRmlsdGVyQ2VsbCcsXG4gICAgICAncmVsYXRpdmVEYXRlVGFibGVDZWxsJyxcbiAgICAgICdkZWZhdWx0UmVsYXRpdmVEYXRlVmFsdWUnLFxuICAgIF0sXG4gICAgW0NvbHVtblR5cGUuVFJBTlNMQVRJT05fS0VZXTogW1xuICAgICAgJ3RyYW5zbGF0aW9uS2V5RmlsdGVyQ2hpcFZhbHVlJyxcbiAgICAgICd0cmFuc2xhdGlvbktleVRhYmxlRmlsdGVyQ2VsbCcsXG4gICAgICAndHJhbnNsYXRpb25LZXlUYWJsZUNlbGwnLFxuICAgICAgJ2RlZmF1bHRUcmFuc2xhdGlvbktleVZhbHVlJyxcbiAgICBdLFxuICAgIFtDb2x1bW5UeXBlLkNVU1RPTV06IFsnY3VzdG9tRmlsdGVyQ2hpcFZhbHVlJywgJ2N1c3RvbVRhYmxlRmlsdGVyQ2VsbCcsICdjdXN0b21UYWJsZUNlbGwnLCAnZGVmYXVsdEN1c3RvbVZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuU1RSSU5HXTogWydzdHJpbmdGaWx0ZXJDaGlwVmFsdWUnLCAnc3RyaW5nVGFibGVGaWx0ZXJDZWxsJywgJ3N0cmluZ1RhYmxlQ2VsbCcsICdkZWZhdWx0U3RyaW5nVmFsdWUnXSxcbiAgfVxuICBjaGlwVGVtcGxhdGVzOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPj4gPSB7fVxuXG4gIHRhYmxlSWRTdWZmaXg6IEFycmF5PHN0cmluZz4gPSBbJ0lkRmlsdGVyVmlld0NlbGwnLCAnSWRUYWJsZUZpbHRlckNlbGwnLCAnSWRUYWJsZUNlbGwnXVxuICB0YWJsZVRlbXBsYXRlTmFtZXM6IFJlY29yZDxDb2x1bW5UeXBlLCBBcnJheTxzdHJpbmc+PiA9IHtcbiAgICBbQ29sdW1uVHlwZS5EQVRFXTogWydkYXRlRmlsdGVyVmlld0NlbGwnLCAnZGF0ZVRhYmxlRmlsdGVyQ2VsbCcsICdkYXRlVGFibGVDZWxsJywgJ2RlZmF1bHREYXRlVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5OVU1CRVJdOiBbJ251bWJlckZpbHRlclZpZXdDZWxsJywgJ251bWJlclRhYmxlRmlsdGVyQ2VsbCcsICdudW1iZXJUYWJsZUNlbGwnLCAnZGVmYXVsdE51bWJlclZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuUkVMQVRJVkVfREFURV06IFtcbiAgICAgICdyZWxhdGl2ZURhdGVGaWx0ZXJWaWV3Q2VsbCcsXG4gICAgICAncmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsJyxcbiAgICAgICdyZWxhdGl2ZURhdGVUYWJsZUNlbGwnLFxuICAgICAgJ2RlZmF1bHRSZWxhdGl2ZURhdGVWYWx1ZScsXG4gICAgXSxcbiAgICBbQ29sdW1uVHlwZS5UUkFOU0xBVElPTl9LRVldOiBbXG4gICAgICAndHJhbnNsYXRpb25LZXknLFxuICAgICAgJ3RyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsJyxcbiAgICAgICd0cmFuc2xhdGlvbktleVRhYmxlQ2VsbCcsXG4gICAgICAnZGVmYXVsdFRyYW5zbGF0aW9uS2V5VmFsdWUnLFxuICAgIF0sXG4gICAgW0NvbHVtblR5cGUuQ1VTVE9NXTogWydjdXN0b21GaWx0ZXJWaWV3Q2VsbCcsICdjdXN0b21UYWJsZUZpbHRlckNlbGwnLCAnY3VzdG9tVGFibGVDZWxsJywgJ2RlZmF1bHRDdXN0b21WYWx1ZSddLFxuICAgIFtDb2x1bW5UeXBlLlNUUklOR106IFsnc3RyaW5nRmlsdGVyVmlld0NlbGwnLCAnc3RyaW5nVGFibGVGaWx0ZXJDZWxsJywgJ3N0cmluZ1RhYmxlQ2VsbCcsICdkZWZhdWx0U3RyaW5nVmFsdWUnXSxcbiAgfVxuICB0YWJsZVRlbXBsYXRlczogUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD4+ID0ge31cblxuICBnZXRUZW1wbGF0ZShcbiAgICBjb2x1bW46IERhdGFUYWJsZUNvbHVtbixcbiAgICB0ZW1wbGF0ZU5hbWVzOiBSZWNvcmQ8Q29sdW1uVHlwZSwgQXJyYXk8c3RyaW5nPj4sXG4gICAgdGVtcGxhdGVzOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPj4sXG4gICAgaWRTdWZmaXg6IEFycmF5PHN0cmluZz5cbiAgKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD4ge1xuICAgIGlmICghdGVtcGxhdGVzW2NvbHVtbi5pZF0pIHtcbiAgICAgIHRlbXBsYXRlc1tjb2x1bW4uaWRdID0gY29tYmluZUxhdGVzdChbdGhpcy5kZWZhdWx0VGVtcGxhdGVzJCwgdGhpcy5wYXJlbnRUZW1wbGF0ZXMkXSkucGlwZShcbiAgICAgICAgbWFwKChbZHQsIHRdKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGVtcGxhdGVzID0gWy4uLihkdCA/PyBbXSksIC4uLih0ID8/IFtdKV1cbiAgICAgICAgICBjb25zdCBjb2x1bW5UZW1wbGF0ZSA9IGZpbmRUZW1wbGF0ZShcbiAgICAgICAgICAgIHRlbXBsYXRlcyxcbiAgICAgICAgICAgIGlkU3VmZml4Lm1hcCgoc3VmZml4KSA9PiBjb2x1bW4uaWQgKyBzdWZmaXgpXG4gICAgICAgICAgKT8udGVtcGxhdGVcbiAgICAgICAgICBpZiAoY29sdW1uVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW5UZW1wbGF0ZVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmluZFRlbXBsYXRlKHRlbXBsYXRlcywgdGVtcGxhdGVOYW1lc1tjb2x1bW4uY29sdW1uVHlwZV0pPy50ZW1wbGF0ZSA/PyBudWxsXG4gICAgICAgIH0pLFxuICAgICAgICBkZWJvdW5jZVRpbWUoNTApXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0ZW1wbGF0ZXNbY29sdW1uLmlkXVxuICB9XG5cbiAgb25SZXNldEZpbGVyc0NsaWNrKCkge1xuICAgIHRoaXMuZmlsdGVycyA9IFtdXG4gICAgdGhpcy5maWx0ZXJlZC5lbWl0KFtdKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgZmlsdGVyczogW10sXG4gICAgfSlcbiAgfVxuXG4gIG9uQ2hpcFJlbW92ZShmaWx0ZXI6IEZpbHRlcikge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiBmLnZhbHVlICE9PSBmaWx0ZXIudmFsdWUpXG4gICAgdGhpcy5maWx0ZXJzID0gZmlsdGVyc1xuICAgIHRoaXMuZmlsdGVyZWQuZW1pdChmaWx0ZXJzKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICB9KVxuICB9XG5cbiAgb25GaWx0ZXJEZWxldGUocm93OiBSb3cpIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5maWx0ZXJzLmZpbHRlcigoZikgPT4gIShmLmNvbHVtbklkID09PSByb3dbJ3ZhbHVlQ29sdW1uSWQnXSAmJiBmLnZhbHVlID09PSByb3dbJ3ZhbHVlJ10pKVxuICAgIHRoaXMuZmlsdGVycyA9IGZpbHRlcnNcbiAgICB0aGlzLmZpbHRlcmVkLmVtaXQoZmlsdGVycylcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlQ2hhbmdlZC5lbWl0KHtcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSlcbiAgfVxuXG4gIGZvY3VzVHJpZ2dlcigpIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyPy5pZCA9PT0gJ29jeEZpbHRlclZpZXdTaG93TW9yZScpIHtcbiAgICAgIHRoaXMudHJpZ2dlcj8uZm9jdXMoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1hbmFnZUJ1dHRvbi5mb2N1cygpXG4gICAgfVxuICB9XG5cbiAgc2hvd1BhbmVsKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnRyaWdnZXIgPSBldmVudC5zcmNFbGVtZW50XG4gICAgdGhpcy5wYW5lbC50b2dnbGUoZXZlbnQpXG4gIH1cblxuICBnZXRDb2x1bW5Gb3JGaWx0ZXIoZmlsdGVyOiBGaWx0ZXIsIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMuZmluZCgoYykgPT4gYy5pZCA9PT0gZmlsdGVyLmNvbHVtbklkKVxuICB9XG5cbiAgZ2V0Q29sdW1uKGNvbElkOiBzdHJpbmcsIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdKSB7XG4gICAgcmV0dXJuIGNvbHVtbnMuZmluZCgoYykgPT4gYy5pZCA9PT0gY29sSWQpXG4gIH1cblxuICByZXNvbHZlRmllbGREYXRhKG9iamVjdDogYW55LCBrZXk6IGFueSkge1xuICAgIHJldHVybiBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKG9iamVjdCwga2V5KVxuICB9XG5cbiAgZ2V0Um93T2JqZWN0RnJvbUZpdGVyRGF0YShmaWx0ZXI6IEZpbHRlcikge1xuICAgIHJldHVybiB7XG4gICAgICBbZmlsdGVyLmNvbHVtbklkXTogZmlsdGVyLnZhbHVlLFxuICAgIH1cbiAgfVxuXG4gIGdldFJvd0ZvclZhbHVlQ29sdW1uKHJvdzogUm93KTogUm93IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHJvdy5pZCxcbiAgICAgIFtyb3dbJ3ZhbHVlQ29sdW1uSWQnXSBhcyBzdHJpbmddOiByb3dbJ3ZhbHVlJ10sXG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1ucyQgfCBhc3luYyBhcyBjb2x1bW5zXCI+XG4gIDxkaXYgKm5nSWY9XCJmaWx0ZXJzJCB8IGFzeW5jIGFzIGZpbHRlcnNcIiBjbGFzcz1cImZsZXggZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5TW9kZSA9PT0gJ2NoaXBzJzsgZWxzZSBub0NoaXBzQ29udGVudFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqb2N4SWZCcmVha3BvaW50PVwiJ2Rlc2t0b3AnOyBlbHNlVGVtcGxhdGU6IG5vQ2hpcHNDb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3REaXNwbGF5ZWRDaGlwcyhmaWx0ZXJzLCBjb2x1bW5zKSBhcyBzZWxlY3RlZEZpbHRlcnNcIj5cbiAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICNjaGlwRmlsdGVyUmVzZXRCdXR0b25cbiAgICAgICAgICAgIGlkPVwib2N4RmlsdGVyVmlld1Jlc2V0XCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uUmVzZXRGaWxlcnNDbGljaygpXCJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1lcmFzZXJcIlxuICAgICAgICAgICAgcFRvb2x0aXA9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLlJFU0VUX0ZJTFRFUlNfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgIHRvb2x0aXBFdmVudD1cImhvdmVyXCJcbiAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ09DWF9GSUxURVJfVklFVy5SRVNFVF9GSUxURVJTX0JVVFRPTi5BUklBX0xBQkVMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlcnMubGVuZ3RoIDw9IDBcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCJfZml0bGVyVmlld05vU2VsZWN0aW9uOyBlbHNlIGRlZmF1bHROb0ZpbHRlcnNcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZml0bGVyVmlld05vU2VsZWN0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Tm9GaWx0ZXJzPlxuICAgICAgICAgICAgICA8c3BhbiBpZD1cIm9jeEZpbHRlclZpZXdOb0ZpbHRlcnNcIj57eyAnT0NYX0ZJTFRFUl9WSUVXLk5PX0ZJTFRFUlMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGNoaXBUZW1wbGF0ZXMkIHwgYXN5bmMpID8/IHt9IGFzIHRlbXBsYXRlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIHNlbGVjdGVkRmlsdGVyc1wiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0Q29sdW1uRm9yRmlsdGVyKGZpbHRlciwgY29sdW1ucykgYXMgY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPHAtY2hpcCBbcmVtb3ZhYmxlXT1cInRydWVcIiAob25SZW1vdmUpPVwib25DaGlwUmVtb3ZlKGZpbHRlcilcIiBbc3R5bGVDbGFzc109XCJjaGlwU3R5bGVDbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIl9maWx0ZXJWaWV3Q2hpcENvbnRlbnQ7IGVsc2UgY2hpcENvbnRlbnRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9maWx0ZXJWaWV3Q2hpcENvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZmlsdGVyLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgICAgICAgICAgIGZpbHRlclZhbHVlVGVtcGxhdGVzOiB0ZW1wbGF0ZXMsXG4gICAgICAgICAgICAgICAgdHJ1dGh5VGVtcGxhdGU6IHRydXRoeVRlbXBsYXRlLFxuICAgICAgICAgICAgICAgIGZpbHRlclZhbHVlVGVtcGxhdGU6IGNoaXBUZW1wbGF0ZVxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjaGlwQ29udGVudFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1ucyQgfCBhc3luYyBhcyBjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXBcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1jaGlwLXRleHQgZmxleCBmbGV4LW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgPnt7Y29sdW1uPy5uYW1lS2V5ID8/ICcnIHwgdHJhbnNsYXRlIH19OjxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuRVFVQUwgfHwgIWZpbHRlci5maWx0ZXJUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVzOiB0ZW1wbGF0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXIuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5UUlVUSFlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJ1dGh5VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXIudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9wLWNoaXA+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRGaWx0ZXJzLmxlbmd0aCA8IGZpbHRlcnMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgIDxwLWNoaXBcbiAgICAgICAgICAgICAgICAjc2hvd01vcmVDaGlwXG4gICAgICAgICAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3U2hvd01vcmVcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dQYW5lbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGZpbHRlci12aWV3LWZvY3VzYWJsZVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInNob3dQYW5lbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiX2ZpbHRlclZpZXdTaG93TW9yZUNoaXA7IGVsc2Ugc2hvd01vcmVDaGlwVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2ZpbHRlclZpZXdTaG93TW9yZUNoaXBcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICRpbXBsaWNpdDogZmlsdGVycy5sZW5ndGggLSBzZWxlY3RlZEZpbHRlcnMubGVuZ3RoXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd01vcmVDaGlwVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtY2hpcC10ZXh0IGZsZXggZmxleC1ub3dyYXBcIj4gK3t7ZmlsdGVycy5sZW5ndGggLSBzZWxlY3RlZEZpbHRlcnMubGVuZ3RofX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJUYWJsZVBhbmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvcC1jaGlwPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNub0NoaXBzQ29udGVudD5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICAjbWFuYWdlQnV0dG9uXG4gICAgICAgIGlkPVwib2N4RmlsdGVyVmlld01hbmFnZVwiXG4gICAgICAgIChvbkNsaWNrKT1cInNob3dQYW5lbCgkZXZlbnQpXCJcbiAgICAgICAgaWNvbj1cInBpIHBpLXNsaWRlcnMtaFwiXG4gICAgICAgIGxhYmVsPVwie3sgJ09DWF9GSUxURVJfVklFVy5NQU5BR0VfRklMVEVSU19CVVRUT04uTEFCRUwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgcFRvb2x0aXA9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLk1BTkFHRV9GSUxURVJTX0JVVFRPTi5ERVRBSUwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICBbYmFkZ2VdPVwiZmlsdGVycy5sZW5ndGgudG9TdHJpbmcoKVwiXG4gICAgICAgIFthcmlhTGFiZWxdPVwiJ09DWF9GSUxURVJfVklFVy5NQU5BR0VfRklMVEVSU19CVVRUT04uQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvcC1idXR0b24+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlclRhYmxlUGFuZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNmaWx0ZXJUYWJsZVBhbmVsPlxuICAgICAgPHAtb3ZlcmxheVBhbmVsICpuZ0lmPVwidGFibGVUZW1wbGF0ZXMkIHwgYXN5bmMgYXMgdGVtcGxhdGVzXCIgI29wIFtzdHlsZV09XCJwYW5lbFN0eWxlXCIgKG9uSGlkZSk9XCJmb2N1c1RyaWdnZXIoKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgcEZvY3VzVHJhcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0yeGwgZm9udC1tZWRpdW1cIj57eydPQ1hfRklMVEVSX1ZJRVcuUEFORUxfVElUTEUnIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBwQXV0b0ZvY3VzXG4gICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3T3ZlcmxheVJlc2V0XCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uUmVzZXRGaWxlcnNDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS1lcmFzZXJcIlxuICAgICAgICAgICAgICAgICAgcFRvb2x0aXA9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLlJFU0VUX0ZJTFRFUlNfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICAgIHRvb2x0aXBFdmVudD1cImhvdmVyXCJcbiAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ09DWF9GSUxURVJfVklFVy5SRVNFVF9GSUxURVJTX0JVVFRPTi5BUklBX0xBQkVMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8b2N4LWRhdGEtdGFibGVcbiAgICAgICAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3RGF0YVRhYmxlXCJcbiAgICAgICAgICAgICAgW3Jvd3NdPVwiKGNvbHVtbkZpbHRlckRhdGFSb3dzJCB8IGFzeW5jKSA/PyBbXVwiXG4gICAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbkZpbHRlclRhYmxlQ29sdW1uc1wiXG4gICAgICAgICAgICAgIFtlbXB0eVJlc3VsdHNNZXNzYWdlXT1cIidPQ1hfRklMVEVSX1ZJRVcuTk9fRklMVEVSUycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBbcGFnaW5hdG9yXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW3RhYmxlU3R5bGVdPVwidGFibGVTdHlsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb2x1bW5JZENlbGxcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlc1tjb2x1bW4uaWRdXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICByb3dPYmplY3Q6IHJvd09iamVjdCxcbiAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInZhbHVlSWRDZWxsXCIgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0Q29sdW1uKHJvd09iamVjdFsndmFsdWVDb2x1bW5JZCddLCBjb2x1bW5zKSBhcyB2YWx1ZUNvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiF2YWx1ZUNvbHVtbi5maWx0ZXJUeXBlIHx8IHZhbHVlQ29sdW1uLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuRVFVQUxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZXNbdmFsdWVDb2x1bW4uaWRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgcm93T2JqZWN0OiBnZXRSb3dGb3JWYWx1ZUNvbHVtbihyb3dPYmplY3QpLFxuICAgICAgICAgICAgICBjb2x1bW46IHZhbHVlQ29sdW1uXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZhbHVlQ29sdW1uLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuVFJVVEhZXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJ1dGh5VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICB2YWx1ZTogcmVzb2x2ZUZpZWxkRGF0YShyb3dPYmplY3QsIGNvbHVtbi5pZClcbiAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJhY3Rpb25zSWRDZWxsXCIgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgcC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ09DWF9GSUxURVJfVklFVy5UQUJMRS5SRU1PVkVfRklMVEVSX1RJVExFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09DWF9GSUxURVJfVklFVy5UQUJMRS5SRU1PVkVfRklMVEVSX0FSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLXRyYXNoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyRGVsZXRlKHJvd09iamVjdClcIlxuICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9vY3gtZGF0YS10YWJsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvcC1vdmVybGF5UGFuZWw+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNjaGlwVGVtcGxhdGUgbGV0LXRlbXBsYXRlcz1cInRlbXBsYXRlc1wiIGxldC1maWx0ZXI9XCJmaWx0ZXJcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cInRlbXBsYXRlc1tjb2x1bW4uaWRdIGFzIHRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgIHJvd09iamVjdDogZ2V0Um93T2JqZWN0RnJvbUZpdGVyRGF0YShmaWx0ZXIpLFxuICAgICAgICAgICAgY29sdW1uOiBjb2x1bW5cbiAgICAgICAgICB9XCJcbiAgPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdHJ1dGh5VGVtcGxhdGUgbGV0LXZhbHVlPVwidmFsdWVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbHVlXCI+IHt7J09DWF9GSUxURVJfVklFVy5GSUxURVJfWUVTJyB8IHRyYW5zbGF0ZX19IDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXZhbHVlXCI+IHt7J09DWF9GSUxURVJfVklFVy5GSUxURVJfTk8nIHwgdHJhbnNsYXRlfX0gPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZGVmYXVsdFN0cmluZ1ZhbHVlXCIgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lcj4ge3sgcmVzb2x2ZUZpZWxkRGF0YShyb3dPYmplY3QsIGNvbHVtbi5pZCl9fSA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0TnVtYmVyVmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyPiB7eyByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKSB8IG51bWJlciB9fSA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0Q3VzdG9tVmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPiA8L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZGVmYXVsdERhdGVWYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXI+IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgZGF0ZTogY29sdW1uLmRhdGVGb3JtYXQgPz8gJ21lZGl1bScgfX0gPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZGVmYXVsdFJlbGF0aXZlRGF0ZVZhbHVlXCIgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICB7eyAnT0NYX0RBVEFfVEFCTEUuRURJVEVEJyB8IHRyYW5zbGF0ZSB9fSB7eyByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKSB8IHRpbWVhZ28gfX1cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZGVmYXVsdFRyYW5zbGF0aW9uS2V5VmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyPiB7eyByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKSB8IHRyYW5zbGF0ZSB9fTwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItdmlldy9maWx0ZXItdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci12aWV3L2ZpbHRlci12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNwRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7Ozs7Ozs7Ozs7O0FBcUJ2QyxNQUFNLE9BQU8sbUJBQW1CO0lBTGhDO1FBTUUsZUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUN2QixlQUFVLEdBQUcsVUFBVSxD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c0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIubW9kZWwnXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXRhYmxlLWNvbHVtbi5tb2RlbCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSB9IGZyb20gJ3ByaW1lbmcvYXBpJ1xuaW1wb3J0IHsgZmluZFRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGVtcGxhdGUudXRpbHMnXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzL29iamVjdHV0aWxzJ1xuaW1wb3J0IHsgbGltaXQgfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXIudXRpbHMnXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwgfSBmcm9tICdwcmltZW5nL292ZXJsYXlwYW5lbCdcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbidcblxuZXhwb3J0IHR5cGUgRmlsdGVyVmlld0Rpc3BsYXlNb2RlID0gJ2NoaXBzJyB8ICdidXR0b24nXG5leHBvcnQgdHlwZSBGaWx0ZXJWaWV3Um93RGlzcGxheURhdGEgPSB7XG4gIGlkOiBzdHJpbmdcbiAgY29sdW1uOiBzdHJpbmdcbiAgdmFsdWU6IHVua25vd25cbn1cbmV4cG9ydCB0eXBlIEZpbHRlclZpZXdSb3dEZXRhaWxEYXRhID0gRmlsdGVyVmlld1Jvd0Rpc3BsYXlEYXRhICYge1xuICB2YWx1ZUNvbHVtbklkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGUge1xuICBmaWx0ZXJzPzogRmlsdGVyW11cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2N4LWZpbHRlci12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENvbHVtblR5cGUgPSBDb2x1bW5UeXBlXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlXG4gIGZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pXG4gIEBJbnB1dCgpXG4gIGdldCBmaWx0ZXJzKCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGZpbHRlcnModmFsdWU6IEZpbHRlcltdKSB7XG4gICAgdGhpcy5maWx0ZXJzJC5uZXh0KHZhbHVlKVxuICB9XG4gIGNvbHVtbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhVGFibGVDb2x1bW5bXT4oW10pXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bW5zKCk6IERhdGFUYWJsZUNvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zJC5nZXRWYWx1ZSgpXG4gIH1cbiAgc2V0IGNvbHVtbnModmFsdWU6IERhdGFUYWJsZUNvbHVtbltdKSB7XG4gICAgdGhpcy5jb2x1bW5zJC5uZXh0KHZhbHVlKVxuICAgIGNvbnN0IGNoaXBPYnMgPSB2YWx1ZS5tYXAoKGMpID0+IHRoaXMuZ2V0VGVtcGxhdGUoYywgdGhpcy5jaGlwVGVtcGxhdGVOYW1lcywgdGhpcy5jaGlwVGVtcGxhdGVzLCB0aGlzLmNoaXBJZFN1ZmZpeCkpXG4gICAgdGhpcy5jaGlwVGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoY2hpcE9icykucGlwZShcbiAgICAgIG1hcCgodmFsdWVzKSA9PiBPYmplY3QuZnJvbUVudHJpZXModmFsdWUubWFwKChjLCBpKSA9PiBbYy5pZCwgdmFsdWVzW2ldXSkpKVxuICAgIClcblxuICAgIGNvbnN0IHRhYmxlVGVtcGxhdGVDb2x1bW5zID0gdmFsdWUuY29uY2F0KHRoaXMuY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zKVxuICAgIHRoaXMudGFibGVUZW1wbGF0ZXMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIHRhYmxlVGVtcGxhdGVDb2x1bW5zLm1hcCgoYykgPT5cbiAgICAgICAgdGhpcy5nZXRUZW1wbGF0ZShjLCB0aGlzLnRhYmxlVGVtcGxhdGVOYW1lcywgdGhpcy50YWJsZVRlbXBsYXRlcywgdGhpcy50YWJsZUlkU3VmZml4KVxuICAgICAgKVxuICAgICkucGlwZShtYXAoKHZhbHVlcykgPT4gT2JqZWN0LmZyb21FbnRyaWVzKHRhYmxlVGVtcGxhdGVDb2x1bW5zLm1hcCgoYywgaSkgPT4gW2MuaWQsIHZhbHVlc1tpXV0pKSkpXG4gIH1cblxuICBjb2x1bW5GaWx0ZXJEYXRhUm93cyQ6IE9ic2VydmFibGU8RmlsdGVyVmlld1Jvd0Rpc3BsYXlEYXRhW10+IHwgdW5kZWZpbmVkXG5cbiAgQElucHV0KCkgZGlzcGxheU1vZGU6IEZpbHRlclZpZXdEaXNwbGF5TW9kZSA9ICdidXR0b24nXG4gIEBJbnB1dCgpIHNlbGVjdERpc3BsYXllZENoaXBzOiAoZmlsdGVyczogRmlsdGVyW10sIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdKSA9PiBGaWx0ZXJbXSA9IChmaWx0ZXJzKSA9PlxuICAgIGxpbWl0KGZpbHRlcnMsIDMsIHsgcmV2ZXJzZTogdHJ1ZSB9KVxuICBASW5wdXQoKSBjaGlwU3R5bGVDbGFzcyA9ICcnXG4gIEBJbnB1dCgpIHRhYmxlU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSA9IHsgJ21heC1oZWlnaHQnOiAnNTB2aCcgfVxuICBASW5wdXQoKSBwYW5lbFN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gPSB7ICdtYXgtd2lkdGgnOiAnOTAlJyB9XG5cbiAgQE91dHB1dCgpIGZpbHRlcmVkOiBFdmVudEVtaXR0ZXI8RmlsdGVyW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSBjb21wb25lbnRTdGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGaWx0ZXJWaWV3Q29tcG9uZW50U3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSA9IFtcbiAgICB7XG4gICAgICBpZDogJ2NvbHVtbicsXG4gICAgICBjb2x1bW5UeXBlOiBDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWSxcbiAgICAgIG5hbWVLZXk6ICdPQ1hfRklMVEVSX1ZJRVcuVEFCTEUuQ09MVU1OX05BTUUnLFxuICAgIH0sXG4gICAgeyBpZDogJ3ZhbHVlJywgY29sdW1uVHlwZTogQ29sdW1uVHlwZS5TVFJJTkcsIG5hbWVLZXk6ICdPQ1hfRklMVEVSX1ZJRVcuVEFCTEUuVkFMVUUnIH0sXG4gICAge1xuICAgICAgaWQ6ICdhY3Rpb25zJyxcbiAgICAgIGNvbHVtblR5cGU6IENvbHVtblR5cGUuU1RSSU5HLFxuICAgICAgbmFtZUtleTogJ09DWF9GSUxURVJfVklFVy5UQUJMRS5BQ1RJT05TJyxcbiAgICB9LFxuICBdXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5GaWx0ZXJEYXRhUm93cyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcnMkLCB0aGlzLmNvbHVtbnMkXSkucGlwZShcbiAgICAgIG1hcCgoW2ZpbHRlcnMsIGNvbHVtbnNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IGNvbHVtbnMubWFwKChjKSA9PiBjLmlkKVxuICAgICAgICByZXR1cm4gZmlsdGVyc1xuICAgICAgICAgIC5tYXAoKGYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckNvbHVtbiA9IHRoaXMuZ2V0Q29sdW1uRm9yRmlsdGVyKGYsIGNvbHVtbnMpXG4gICAgICAgICAgICBpZiAoIWZpbHRlckNvbHVtbikgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaWQ6IGAke2YuY29sdW1uSWR9LSR7Zi52YWx1ZX1gLFxuICAgICAgICAgICAgICBjb2x1bW46IGZpbHRlckNvbHVtbi5uYW1lS2V5LFxuICAgICAgICAgICAgICB2YWx1ZTogZi52YWx1ZSxcbiAgICAgICAgICAgICAgdmFsdWVDb2x1bW5JZDogZmlsdGVyQ29sdW1uLmlkLFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgRmlsdGVyVmlld1Jvd0RldGFpbERhdGFcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIoKHYpOiB2IGlzIEZpbHRlclZpZXdSb3dEZXRhaWxEYXRhID0+IHYgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBjb2x1bW5JZHMuaW5kZXhPZihhLnZhbHVlQ29sdW1uSWQpIC0gY29sdW1uSWRzLmluZGV4T2YoYi52YWx1ZUNvbHVtbklkKSlcbiAgICAgIH0pXG4gICAgKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxuICAgIH0pXG4gIH1cblxuICBAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgcGFuZWwhOiBPdmVybGF5UGFuZWxcbiAgQFZpZXdDaGlsZCgnbWFuYWdlQnV0dG9uJykgbWFuYWdlQnV0dG9uITogQnV0dG9uXG4gIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkXG5cbiAgZml0bGVyVmlld05vU2VsZWN0aW9uOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZml0bGVyVmlld05vU2VsZWN0aW9uKCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpdGxlclZpZXdOb1NlbGVjdGlvblxuICB9XG5cbiAgZmlsdGVyVmlld0NoaXBDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIGdldCBfZmlsdGVyVmlld0NoaXBDb250ZW50KCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbHRlclZpZXdDaGlwQ29udGVudFxuICB9XG5cbiAgZmlsdGVyVmlld1Nob3dNb3JlQ2hpcDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBnZXQgX2ZpbHRlclZpZXdTaG93TW9yZUNoaXAoKTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVmlld1Nob3dNb3JlQ2hpcFxuICB9XG5cbiAgZGVmYXVsdFRlbXBsYXRlcyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpXG4gIEBWaWV3Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSlcbiAgc2V0IGRlZmF1bHRUZW1wbGF0ZXModmFsdWU6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuZGVmYXVsdFRlbXBsYXRlcyQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIHBhcmVudFRlbXBsYXRlcyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCBudWxsIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgbnVsbCB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZClcbiAgQElucHV0KClcbiAgc2V0IHRlbXBsYXRlcyh2YWx1ZTogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucGFyZW50VGVtcGxhdGVzJC5uZXh0KHZhbHVlKVxuICAgIHZhbHVlPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgIGNhc2UgJ2ZpdGxlclZpZXdOb1NlbGVjdGlvbic6XG4gICAgICAgICAgdGhpcy5maXRsZXJWaWV3Tm9TZWxlY3Rpb24gPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnZmlsdGVyVmlld0NoaXBDb250ZW50JzpcbiAgICAgICAgICB0aGlzLmZpbHRlclZpZXdDaGlwQ29udGVudCA9IGl0ZW0udGVtcGxhdGVcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdmaWx0ZXJWaWV3U2hvd01vcmVDaGlwJzpcbiAgICAgICAgICB0aGlzLmZpbHRlclZpZXdTaG93TW9yZUNoaXAgPSBpdGVtLnRlbXBsYXRlXG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgY2hpcFRlbXBsYXRlcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiB8IHVuZGVmaW5lZFxuICB0YWJsZVRlbXBsYXRlcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiB8IHVuZGVmaW5lZFxuXG4gIGNoaXBJZFN1ZmZpeDogQXJyYXk8c3RyaW5nPiA9IFsnSWRGaWx0ZXJDaGlwJywgJ0lkVGFibGVGaWx0ZXJDZWxsJywgJ0lkVGFibGVDZWxsJ11cbiAgY2hpcFRlbXBsYXRlTmFtZXM6IFJlY29yZDxDb2x1bW5UeXBlLCBBcnJheTxzdHJpbmc+PiA9IHtcbiAgICBbQ29sdW1uVHlwZS5EQVRFXTogWydkYXRlRmlsdGVyQ2hpcFZhbHVlJywgJ2RhdGVUYWJsZUZpbHRlckNlbGwnLCAnZGF0ZVRhYmxlQ2VsbCcsICdkZWZhdWx0RGF0ZVZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuTlVNQkVSXTogWydudW1iZXJGaWx0ZXJDaGlwVmFsdWUnLCAnbnVtYmVyVGFibGVGaWx0ZXJDZWxsJywgJ251bWJlclRhYmxlQ2VsbCcsICdkZWZhdWx0TnVtYmVyVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5SRUxBVElWRV9EQVRFXTogW1xuICAgICAgJ3JlbGF0aXZlRGF0ZUZpbHRlckNoaXBWYWx1ZScsXG4gICAgICAncmVsYXRpdmVEYXRlVGFibGVGaWx0ZXJDZWxsJyxcbiAgICAgICdyZWxhdGl2ZURhdGVUYWJsZUNlbGwnLFxuICAgICAgJ2RlZmF1bHRSZWxhdGl2ZURhdGVWYWx1ZScsXG4gICAgXSxcbiAgICBbQ29sdW1uVHlwZS5UUkFOU0xBVElPTl9LRVldOiBbXG4gICAgICAndHJhbnNsYXRpb25LZXlGaWx0ZXJDaGlwVmFsdWUnLFxuICAgICAgJ3RyYW5zbGF0aW9uS2V5VGFibGVGaWx0ZXJDZWxsJyxcbiAgICAgICd0cmFuc2xhdGlvbktleVRhYmxlQ2VsbCcsXG4gICAgICAnZGVmYXVsdFRyYW5zbGF0aW9uS2V5VmFsdWUnLFxuICAgIF0sXG4gICAgW0NvbHVtblR5cGUuQ1VTVE9NXTogWydjdXN0b21GaWx0ZXJDaGlwVmFsdWUnLCAnY3VzdG9tVGFibGVGaWx0ZXJDZWxsJywgJ2N1c3RvbVRhYmxlQ2VsbCcsICdkZWZhdWx0Q3VzdG9tVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5TVFJJTkddOiBbJ3N0cmluZ0ZpbHRlckNoaXBWYWx1ZScsICdzdHJpbmdUYWJsZUZpbHRlckNlbGwnLCAnc3RyaW5nVGFibGVDZWxsJywgJ2RlZmF1bHRTdHJpbmdWYWx1ZSddLFxuICB9XG4gIGNoaXBUZW1wbGF0ZXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PiA9IHt9XG5cbiAgdGFibGVJZFN1ZmZpeDogQXJyYXk8c3RyaW5nPiA9IFsnSWRGaWx0ZXJWaWV3Q2VsbCcsICdJZFRhYmxlRmlsdGVyQ2VsbCcsICdJZFRhYmxlQ2VsbCddXG4gIHRhYmxlVGVtcGxhdGVOYW1lczogUmVjb3JkPENvbHVtblR5cGUsIEFycmF5PHN0cmluZz4+ID0ge1xuICAgIFtDb2x1bW5UeXBlLkRBVEVdOiBbJ2RhdGVGaWx0ZXJWaWV3Q2VsbCcsICdkYXRlVGFibGVGaWx0ZXJDZWxsJywgJ2RhdGVUYWJsZUNlbGwnLCAnZGVmYXVsdERhdGVWYWx1ZSddLFxuICAgIFtDb2x1bW5UeXBlLk5VTUJFUl06IFsnbnVtYmVyRmlsdGVyVmlld0NlbGwnLCAnbnVtYmVyVGFibGVGaWx0ZXJDZWxsJywgJ251bWJlclRhYmxlQ2VsbCcsICdkZWZhdWx0TnVtYmVyVmFsdWUnXSxcbiAgICBbQ29sdW1uVHlwZS5SRUxBVElWRV9EQVRFXTogW1xuICAgICAgJ3JlbGF0aXZlRGF0ZUZpbHRlclZpZXdDZWxsJyxcbiAgICAgICdyZWxhdGl2ZURhdGVUYWJsZUZpbHRlckNlbGwnLFxuICAgICAgJ3JlbGF0aXZlRGF0ZVRhYmxlQ2VsbCcsXG4gICAgICAnZGVmYXVsdFJlbGF0aXZlRGF0ZVZhbHVlJyxcbiAgICBdLFxuICAgIFtDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWV06IFtcbiAgICAgICd0cmFuc2xhdGlvbktleScsXG4gICAgICAndHJhbnNsYXRpb25LZXlUYWJsZUZpbHRlckNlbGwnLFxuICAgICAgJ3RyYW5zbGF0aW9uS2V5VGFibGVDZWxsJyxcbiAgICAgICdkZWZhdWx0VHJhbnNsYXRpb25LZXlWYWx1ZScsXG4gICAgXSxcbiAgICBbQ29sdW1uVHlwZS5DVVNUT01dOiBbJ2N1c3RvbUZpbHRlclZpZXdDZWxsJywgJ2N1c3RvbVRhYmxlRmlsdGVyQ2VsbCcsICdjdXN0b21UYWJsZUNlbGwnLCAnZGVmYXVsdEN1c3RvbVZhbHVlJ10sXG4gICAgW0NvbHVtblR5cGUuU1RSSU5HXTogWydzdHJpbmdGaWx0ZXJWaWV3Q2VsbCcsICdzdHJpbmdUYWJsZUZpbHRlckNlbGwnLCAnc3RyaW5nVGFibGVDZWxsJywgJ2RlZmF1bHRTdHJpbmdWYWx1ZSddLFxuICB9XG4gIHRhYmxlVGVtcGxhdGVzOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPj4gPSB7fVxuXG4gIGdldFRlbXBsYXRlKFxuICAgIGNvbHVtbjogRGF0YVRhYmxlQ29sdW1uLFxuICAgIHRlbXBsYXRlTmFtZXM6IFJlY29yZDxDb2x1bW5UeXBlLCBBcnJheTxzdHJpbmc+PixcbiAgICB0ZW1wbGF0ZXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+PixcbiAgICBpZFN1ZmZpeDogQXJyYXk8c3RyaW5nPlxuICApOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPiB7XG4gICAgaWYgKCF0ZW1wbGF0ZXNbY29sdW1uLmlkXSkge1xuICAgICAgdGVtcGxhdGVzW2NvbHVtbi5pZF0gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRlZmF1bHRUZW1wbGF0ZXMkLCB0aGlzLnBhcmVudFRlbXBsYXRlcyRdKS5waXBlKFxuICAgICAgICBtYXAoKFtkdCwgdF0pID0+IHtcbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBbLi4uKGR0ID8/IFtdKSwgLi4uKHQgPz8gW10pXVxuICAgICAgICAgIGNvbnN0IGNvbHVtblRlbXBsYXRlID0gZmluZFRlbXBsYXRlKFxuICAgICAgICAgICAgdGVtcGxhdGVzLFxuICAgICAgICAgICAgaWRTdWZmaXgubWFwKChzdWZmaXgpID0+IGNvbHVtbi5pZCArIHN1ZmZpeClcbiAgICAgICAgICApPy50ZW1wbGF0ZVxuICAgICAgICAgIGlmIChjb2x1bW5UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbHVtblRlbXBsYXRlXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmaW5kVGVtcGxhdGUodGVtcGxhdGVzLCB0ZW1wbGF0ZU5hbWVzW2NvbHVtbi5jb2x1bW5UeXBlXSk/LnRlbXBsYXRlID8/IG51bGxcbiAgICAgICAgfSksXG4gICAgICAgIGRlYm91bmNlVGltZSg1MClcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlc1tjb2x1bW4uaWRdXG4gIH1cblxuICBvblJlc2V0RmlsZXJzQ2xpY2soKSB7XG4gICAgdGhpcy5maWx0ZXJzID0gW11cbiAgICB0aGlzLmZpbHRlcmVkLmVtaXQoW10pXG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICBmaWx0ZXJzOiBbXSxcbiAgICB9KVxuICB9XG5cbiAgb25DaGlwUmVtb3ZlKGZpbHRlcjogRmlsdGVyKSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuZmlsdGVycy5maWx0ZXIoKGYpID0+IGYudmFsdWUgIT09IGZpbHRlci52YWx1ZSlcbiAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzXG4gICAgdGhpcy5maWx0ZXJlZC5lbWl0KGZpbHRlcnMpXG4gICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgIH0pXG4gIH1cblxuICBvbkZpbHRlckRlbGV0ZShyb3c6IFJvdykge1xuICAgIGNvbnN0IGZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiAhKGYuY29sdW1uSWQgPT09IHJvd1sndmFsdWVDb2x1bW5JZCddICYmIGYudmFsdWUgPT09IHJvd1sndmFsdWUnXSkpXG4gICAgdGhpcy5maWx0ZXJzID0gZmlsdGVyc1xuICAgIHRoaXMuZmlsdGVyZWQuZW1pdChmaWx0ZXJzKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICB9KVxuICB9XG5cbiAgZm9jdXNUcmlnZ2VyKCkge1xuICAgIGlmICh0aGlzLnRyaWdnZXI/LmlkID09PSAnb2N4RmlsdGVyVmlld1Nob3dNb3JlJykge1xuICAgICAgdGhpcy50cmlnZ2VyPy5mb2N1cygpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFuYWdlQnV0dG9uLmZvY3VzKClcbiAgICB9XG4gIH1cblxuICBzaG93UGFuZWwoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudHJpZ2dlciA9IGV2ZW50LnNyY0VsZW1lbnRcbiAgICB0aGlzLnBhbmVsLnRvZ2dsZShldmVudClcbiAgfVxuXG4gIGdldENvbHVtbkZvckZpbHRlcihmaWx0ZXI6IEZpbHRlciwgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5maW5kKChjKSA9PiBjLmlkID09PSBmaWx0ZXIuY29sdW1uSWQpXG4gIH1cblxuICBnZXRDb2x1bW4oY29sSWQ6IHN0cmluZywgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10pIHtcbiAgICByZXR1cm4gY29sdW1ucy5maW5kKChjKSA9PiBjLmlkID09PSBjb2xJZClcbiAgfVxuXG4gIHJlc29sdmVGaWVsZERhdGEob2JqZWN0OiBhbnksIGtleTogYW55KSB7XG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEob2JqZWN0LCBrZXkpXG4gIH1cblxuICBnZXRSb3dPYmplY3RGcm9tRml0ZXJEYXRhKGZpbHRlcjogRmlsdGVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtmaWx0ZXIuY29sdW1uSWRdOiBmaWx0ZXIudmFsdWUsXG4gICAgfVxuICB9XG5cbiAgZ2V0Um93Rm9yVmFsdWVDb2x1bW4ocm93OiBSb3cpOiBSb3cge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcm93LmlkLFxuICAgICAgW3Jvd1sndmFsdWVDb2x1bW5JZCddIGFzIHN0cmluZ106IHJvd1sndmFsdWUnXSxcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zJCB8IGFzeW5jIGFzIGNvbHVtbnNcIj5cbiAgPGRpdiAqbmdJZj1cImZpbHRlcnMkIHwgYXN5bmMgYXMgZmlsdGVyc1wiIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlNb2RlID09PSAnY2hpcHMnOyBlbHNlIG5vQ2hpcHNDb250ZW50XCI+XG4gICAgICA8bmctY29udGFpbmVyICpvY3hJZkJyZWFrcG9pbnQ9XCInZGVza3RvcCc7IGVsc2VUZW1wbGF0ZTogbm9DaGlwc0NvbnRlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdERpc3BsYXllZENoaXBzKGZpbHRlcnMsIGNvbHVtbnMpIGFzIHNlbGVjdGVkRmlsdGVyc1wiPlxuICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgI2NoaXBGaWx0ZXJSZXNldEJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3UmVzZXRcIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwib25SZXNldEZpbGVyc0NsaWNrKClcIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVyYXNlclwiXG4gICAgICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuUkVTRVRfRklMVEVSU19CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlJFU0VUX0ZJTFRFUlNfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVycy5sZW5ndGggPD0gMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIl9maXRsZXJWaWV3Tm9TZWxlY3Rpb247IGVsc2UgZGVmYXVsdE5vRmlsdGVyc1wiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9maXRsZXJWaWV3Tm9TZWxlY3Rpb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHROb0ZpbHRlcnM+XG4gICAgICAgICAgICAgIDxzcGFuIGlkPVwib2N4RmlsdGVyVmlld05vRmlsdGVyc1wiPnt7ICdPQ1hfRklMVEVSX1ZJRVcuTk9fRklMVEVSUycgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2hpcFRlbXBsYXRlcyQgfCBhc3luYykgPz8ge30gYXMgdGVtcGxhdGVzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2Ygc2VsZWN0ZWRGaWx0ZXJzXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDb2x1bW5Gb3JGaWx0ZXIoZmlsdGVyLCBjb2x1bW5zKSBhcyBjb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8cC1jaGlwIFtyZW1vdmFibGVdPVwidHJ1ZVwiIChvblJlbW92ZSk9XCJvbkNoaXBSZW1vdmUoZmlsdGVyKVwiIFtzdHlsZUNsYXNzXT1cImNoaXBTdHlsZUNsYXNzXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiX2ZpbHRlclZpZXdDaGlwQ29udGVudDsgZWxzZSBjaGlwQ29udGVudFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2ZpbHRlclZpZXdDaGlwQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmaWx0ZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVUZW1wbGF0ZXM6IHRlbXBsYXRlcyxcbiAgICAgICAgICAgICAgICB0cnV0aHlUZW1wbGF0ZTogdHJ1dGh5VGVtcGxhdGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyVmFsdWVUZW1wbGF0ZTogY2hpcFRlbXBsYXRlXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NoaXBDb250ZW50VGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW5zJCB8IGFzeW5jIGFzIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWNoaXAtdGV4dCBmbGV4IGZsZXgtbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+e3tjb2x1bW4/Lm5hbWVLZXkgPz8gJycgfCB0cmFuc2xhdGUgfX06PG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXIuZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5FUVVBTCB8fCAhZmlsdGVyLmZpbHRlclR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpcFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZXM6IHRlbXBsYXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBjb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLlRSVVRIWVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cnV0aHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3AtY2hpcD5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpbHRlcnMubGVuZ3RoIDwgZmlsdGVycy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgPHAtY2hpcFxuICAgICAgICAgICAgICAgICNzaG93TW9yZUNoaXBcbiAgICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdTaG93TW9yZVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZmlsdGVyLXZpZXctZm9jdXNhYmxlXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzaG93UGFuZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJfZmlsdGVyVmlld1Nob3dNb3JlQ2hpcDsgZWxzZSBzaG93TW9yZUNoaXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfZmlsdGVyVmlld1Nob3dNb3JlQ2hpcFwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgJGltcGxpY2l0OiBmaWx0ZXJzLmxlbmd0aCAtIHNlbGVjdGVkRmlsdGVycy5sZW5ndGhcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93TW9yZUNoaXBUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1jaGlwLXRleHQgZmxleCBmbGV4LW5vd3JhcFwiPiAre3tmaWx0ZXJzLmxlbmd0aCAtIHNlbGVjdGVkRmlsdGVycy5sZW5ndGh9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlclRhYmxlUGFuZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9wLWNoaXA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vQ2hpcHNDb250ZW50PlxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgICNtYW5hZ2VCdXR0b25cbiAgICAgICAgaWQ9XCJvY3hGaWx0ZXJWaWV3TWFuYWdlXCJcbiAgICAgICAgKG9uQ2xpY2spPVwic2hvd1BhbmVsKCRldmVudClcIlxuICAgICAgICBpY29uPVwicGkgcGktc2xpZGVycy1oXCJcbiAgICAgICAgbGFiZWw9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLk1BTkFHRV9GSUxURVJTX0JVVFRPTi5MQUJFTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuTUFOQUdFX0ZJTFRFUlNfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtiYWRnZV09XCJmaWx0ZXJzLmxlbmd0aC50b1N0cmluZygpXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLk1BTkFHRV9GSUxURVJTX0JVVFRPTi5BUklBX0xBQkVMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmlsdGVyVGFibGVQYW5lbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ZpbHRlclRhYmxlUGFuZWw+XG4gICAgICA8cC1vdmVybGF5UGFuZWwgKm5nSWY9XCJ0YWJsZVRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIiAjb3AgW3N0eWxlXT1cInBhbmVsU3R5bGVcIiAob25IaWRlKT1cImZvY3VzVHJpZ2dlcigpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBwRm9jdXNUcmFwPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTJ4bCBmb250LW1lZGl1bVwiPnt7J09DWF9GSUxURVJfVklFVy5QQU5FTF9USVRMRScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgIHBBdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdPdmVybGF5UmVzZXRcIlxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25SZXNldEZpbGVyc0NsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVyYXNlclwiXG4gICAgICAgICAgICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfRklMVEVSX1ZJRVcuUkVTRVRfRklMVEVSU19CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICAgICAgICAgdG9vbHRpcEV2ZW50PVwiaG92ZXJcIlxuICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlJFU0VUX0ZJTFRFUlNfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxvY3gtZGF0YS10YWJsZVxuICAgICAgICAgICAgICBpZD1cIm9jeEZpbHRlclZpZXdEYXRhVGFibGVcIlxuICAgICAgICAgICAgICBbcm93c109XCIoY29sdW1uRmlsdGVyRGF0YVJvd3MkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uRmlsdGVyVGFibGVDb2x1bW5zXCJcbiAgICAgICAgICAgICAgW2VtcHR5UmVzdWx0c01lc3NhZ2VdPVwiJ09DWF9GSUxURVJfVklFVy5OT19GSUxURVJTJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFtwYWdpbmF0b3JdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbdGFibGVTdHlsZV09XCJ0YWJsZVN0eWxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbHVtbklkQ2VsbFwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVzW2NvbHVtbi5pZF1cIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgIHJvd09iamVjdDogcm93T2JqZWN0LFxuICAgICAgICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwidmFsdWVJZENlbGxcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXRDb2x1bW4ocm93T2JqZWN0Wyd2YWx1ZUNvbHVtbklkJ10sIGNvbHVtbnMpIGFzIHZhbHVlQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXZhbHVlQ29sdW1uLmZpbHRlclR5cGUgfHwgdmFsdWVDb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5FUVVBTFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlc1t2YWx1ZUNvbHVtbi5pZF1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICByb3dPYmplY3Q6IGdldFJvd0ZvclZhbHVlQ29sdW1uKHJvd09iamVjdCksXG4gICAgICAgICAgICAgIGNvbHVtbjogdmFsdWVDb2x1bW5cbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmFsdWVDb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5UUlVUSFlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cnV0aHlUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgIHZhbHVlOiByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKVxuICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImFjdGlvbnNJZENlbGxcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlciBwLWJ1dHRvbi10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnT0NYX0ZJTFRFUl9WSUVXLlRBQkxFLlJFTU9WRV9GSUxURVJfVElUTEUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInT0NYX0ZJTFRFUl9WSUVXLlRBQkxFLlJFTU9WRV9GSUxURVJfQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktdHJhc2hcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWx0ZXJEZWxldGUocm93T2JqZWN0KVwiXG4gICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L29jeC1kYXRhLXRhYmxlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9wLW92ZXJsYXlQYW5lbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NoaXBUZW1wbGF0ZSBsZXQtdGVtcGxhdGVzPVwidGVtcGxhdGVzXCIgbGV0LWZpbHRlcj1cImZpbHRlclwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwidGVtcGxhdGVzW2NvbHVtbi5pZF0gYXMgdGVtcGxhdGVcIlxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgcm93T2JqZWN0OiBnZXRSb3dPYmplY3RGcm9tRml0ZXJEYXRhKGZpbHRlciksXG4gICAgICAgICAgICBjb2x1bW46IGNvbHVtblxuICAgICAgICAgIH1cIlxuICA+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0cnV0aHlUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWVcIj4ge3snT0NYX0ZJTFRFUl9WSUVXLkZJTFRFUl9ZRVMnIHwgdHJhbnNsYXRlfX0gPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdmFsdWVcIj4ge3snT0NYX0ZJTFRFUl9WSUVXLkZJTFRFUl9OTycgfCB0cmFuc2xhdGV9fSA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0U3RyaW5nVmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyPiB7eyByZXNvbHZlRmllbGREYXRhKHJvd09iamVjdCwgY29sdW1uLmlkKX19IDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImRlZmF1bHROdW1iZXJWYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXI+IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgbnVtYmVyIH19IDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImRlZmF1bHRDdXN0b21WYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+IDwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0RGF0ZVZhbHVlXCIgbGV0LXJvd09iamVjdD1cInJvd09iamVjdFwiIGxldC1jb2x1bW49XCJjb2x1bW5cIj5cbiAgPG5nLWNvbnRhaW5lcj4ge3sgcmVzb2x2ZUZpZWxkRGF0YShyb3dPYmplY3QsIGNvbHVtbi5pZCkgfCBkYXRlOiBjb2x1bW4uZGF0ZUZvcm1hdCA/PyAnbWVkaXVtJyB9fSA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0UmVsYXRpdmVEYXRlVmFsdWVcIiBsZXQtcm93T2JqZWN0PVwicm93T2JqZWN0XCIgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8bmctY29udGFpbmVyPlxuICAgIHt7ICdPQ1hfREFUQV9UQUJMRS5FRElURUQnIHwgdHJhbnNsYXRlIH19IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgdGltZWFnbyB9fVxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkZWZhdWx0VHJhbnNsYXRpb25LZXlWYWx1ZVwiIGxldC1yb3dPYmplY3Q9XCJyb3dPYmplY3RcIiBsZXQtY29sdW1uPVwiY29sdW1uXCI+XG4gIDxuZy1jb250YWluZXI+IHt7IHJlc29sdmVGaWVsZERhdGEocm93T2JqZWN0LCBjb2x1bW4uaWQpIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19