@datorama/core 22.14.1 → 22.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle.scss +9882 -6528
- package/bundles/datorama-core.umd.js +106 -52
- package/bundles/datorama-core.umd.js.map +1 -1
- package/bundles/datorama-core.umd.min.js +60 -60
- package/bundles/datorama-core.umd.min.js.map +1 -1
- package/datorama-core.metadata.json +1 -1
- package/esm2015/lib/button/button.component.js +1 -1
- package/esm2015/lib/grid/dato-grid.js +4 -3
- package/esm2015/lib/grid/grid/grid.component.js +2 -6
- package/esm2015/lib/grid/grid-sort.utils.js +23 -0
- package/esm2015/lib/grid-v2/grid/grid-v2.component.js +1 -1
- package/esm2015/lib/grid-v2/grid/grid-v2.config.js +17 -12
- package/esm2015/lib/grid-v2/grid-column-header/grid-column-header.component.js +4 -1
- package/esm2015/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +4 -1
- package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +3 -3
- package/esm2015/lib/grid-v2/grid-on-hover/grid-on-hover.component.js +17 -14
- package/esm2015/lib/grid-v2/grid-store/grid.query.js +3 -2
- package/esm2015/lib/grid-v2/grid-store/grid.service.js +19 -5
- package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +2 -2
- package/esm2015/lib/radio/radio.component.js +1 -1
- package/esm2015/lib/utils/string.js +9 -11
- package/esm2015/lib/version.js +2 -2
- package/esm5/lib/button/button.component.js +1 -1
- package/esm5/lib/grid/dato-grid.js +4 -3
- package/esm5/lib/grid/grid/grid.component.js +2 -6
- package/esm5/lib/grid/grid-sort.utils.js +30 -0
- package/esm5/lib/grid-v2/grid/grid-v2.component.js +1 -1
- package/esm5/lib/grid-v2/grid/grid-v2.config.js +19 -13
- package/esm5/lib/grid-v2/grid-column-header/grid-column-header.component.js +4 -1
- package/esm5/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +4 -1
- package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +3 -3
- package/esm5/lib/grid-v2/grid-on-hover/grid-on-hover.component.js +17 -14
- package/esm5/lib/grid-v2/grid-store/grid.query.js +3 -2
- package/esm5/lib/grid-v2/grid-store/grid.service.js +19 -5
- package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +2 -2
- package/esm5/lib/radio/radio.component.js +1 -1
- package/esm5/lib/utils/string.js +9 -11
- package/esm5/lib/version.js +2 -2
- package/fesm2015/datorama-core.js +97 -52
- package/fesm2015/datorama-core.js.map +1 -1
- package/fesm5/datorama-core.js +106 -53
- package/fesm5/datorama-core.js.map +1 -1
- package/lib/grid/grid-sort.utils.d.ts +15 -0
- package/lib/grid-v2/grid/grid-v2.config.d.ts +1 -0
- package/lib/grid-v2/grid-column-header/grid-column-header.component.d.ts +2 -1
- package/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.d.ts +1 -0
- package/lib/grid-v2/grid-on-hover/grid-on-hover.component.d.ts +1 -3
- package/lib/grid-v2/grid-store/grid.service.d.ts +325 -281
- package/package.json +4 -1
- package/testing/src/grid/rows.ts +1 -1
|
@@ -23,13 +23,12 @@ function getTime(val) {
|
|
|
23
23
|
}
|
|
24
24
|
export var ROOT_NODE_ID = 'ROOT_NODE_ID';
|
|
25
25
|
var ɵ0 = function (item) { return item[gridTreeFilePathKey]; };
|
|
26
|
-
|
|
26
|
+
var defaultTreeOptionsBase = {
|
|
27
27
|
getDataPath: ɵ0,
|
|
28
28
|
components: {
|
|
29
29
|
fileCellRenderer: getGridTreeCellRenderer()
|
|
30
30
|
},
|
|
31
31
|
onRowDragMove: onRowDragMove,
|
|
32
|
-
onRowDragEnd: onRowDragEnd,
|
|
33
32
|
onRowSelected: onRowSelected,
|
|
34
33
|
onRowGroupOpened: rowGroupOpened,
|
|
35
34
|
suppressRowClickSelection: true,
|
|
@@ -38,6 +37,11 @@ export var defaultTreeOptions = {
|
|
|
38
37
|
rowDrag: '<dato-icon icon="drag" class="dato-icon-font-drag primary-400-color"></dato-icon>'
|
|
39
38
|
}
|
|
40
39
|
};
|
|
40
|
+
export function createDefaultTreeOptions(maxDepth) {
|
|
41
|
+
if (maxDepth === void 0) { maxDepth = -1; }
|
|
42
|
+
return __assign(__assign({}, defaultTreeOptionsBase), { onRowDragEnd: function (event) { return onRowDragEnd(event, maxDepth); } });
|
|
43
|
+
}
|
|
44
|
+
export var defaultTreeOptions = createDefaultTreeOptions();
|
|
41
45
|
var ɵ1 = function (a, b) { return (a || '').toLowerCase().localeCompare((b || '').toLowerCase()); };
|
|
42
46
|
var stringColDef = {
|
|
43
47
|
filter: DatoGridFilterTypes.String,
|
|
@@ -68,7 +72,7 @@ export var defaultGridOptions = __assign({
|
|
|
68
72
|
type: DatoGridColumnTypes.String,
|
|
69
73
|
menuTabs: ['filterMenuTab'],
|
|
70
74
|
headerComponentFramework: DatoGridColumnHeaderComponent
|
|
71
|
-
}, suppressCellSelection: true, suppressPropertyNamesCheck: true, rowHeight: 35, headerHeight: 30, rowSelection: GridRowSelectionType.MULTIPLE, rowDeselection: true, unSortIcon: true, animateRows: true, rememberGroupStateWhenNewData: true,
|
|
75
|
+
}, suppressCellSelection: true, suppressPropertyNamesCheck: true, rowHeight: 35, headerHeight: 30, rowSelection: GridRowSelectionType.MULTIPLE, rowDeselection: true, unSortIcon: true, animateRows: true, rememberGroupStateWhenNewData: true, groupDisplayType: 'multipleColumns', groupDefaultExpanded: -1, usePivotGridStyle: false, disabledHTMLRenderingFields: [] }, (isTestEnv() ? { suppressColumnVirtualisation: true, rowBuffer: 99999 } : {}));
|
|
72
76
|
export var DEFAULT_GRID_SEARCH_DEBOUNCE_TIME = {
|
|
73
77
|
CLIENT: 200,
|
|
74
78
|
SERVER: 250
|
|
@@ -157,8 +161,11 @@ function getCellByRowID(rowID) {
|
|
|
157
161
|
* relevant css style to it.
|
|
158
162
|
* @param overNode
|
|
159
163
|
*/
|
|
164
|
+
function getRootNode(api) {
|
|
165
|
+
return api.getModel().getRootNode();
|
|
166
|
+
}
|
|
160
167
|
function onRowDragMove(_a) {
|
|
161
|
-
var overNode = _a.overNode, node = _a.node;
|
|
168
|
+
var overNode = _a.overNode, node = _a.node, api = _a.api;
|
|
162
169
|
var folderToDropInto;
|
|
163
170
|
if (overNode) {
|
|
164
171
|
// folder to drop into is where we are going to move the file/folder to
|
|
@@ -169,7 +176,7 @@ function onRowDragMove(_a) {
|
|
|
169
176
|
overNode.parent;
|
|
170
177
|
}
|
|
171
178
|
else {
|
|
172
|
-
folderToDropInto =
|
|
179
|
+
folderToDropInto = getRootNode(api);
|
|
173
180
|
}
|
|
174
181
|
if (potentialParent) {
|
|
175
182
|
if (potentialParent.id === folderToDropInto.id) {
|
|
@@ -190,8 +197,8 @@ function onRowDragMove(_a) {
|
|
|
190
197
|
folderToDropIntoElement && folderToDropIntoElement.classList.add(agRowHoverClassName);
|
|
191
198
|
}
|
|
192
199
|
}
|
|
193
|
-
function onRowDragEnd(_a) {
|
|
194
|
-
var overNode = _a.overNode, node = _a.node;
|
|
200
|
+
function onRowDragEnd(_a, maxDepth) {
|
|
201
|
+
var overNode = _a.overNode, node = _a.node, api = _a.api;
|
|
195
202
|
var nodeParent;
|
|
196
203
|
var folderToDropInto;
|
|
197
204
|
if (overNode) {
|
|
@@ -204,17 +211,16 @@ function onRowDragEnd(_a) {
|
|
|
204
211
|
overNode.parent;
|
|
205
212
|
}
|
|
206
213
|
else {
|
|
207
|
-
nodeParent =
|
|
208
|
-
folderToDropInto =
|
|
214
|
+
nodeParent = getRootNode(api);
|
|
215
|
+
folderToDropInto = getRootNode(api);
|
|
209
216
|
}
|
|
210
217
|
// the data we want to move
|
|
211
218
|
var movingData = node.data;
|
|
212
|
-
var treeMaxDepth = node.gridOptionsWrapper.gridOptions.maxDepth || -1;
|
|
213
219
|
// Disable nested drag when tree depth is above the limit
|
|
214
220
|
if (movingData.isFolder &&
|
|
215
|
-
|
|
221
|
+
maxDepth !== -1 &&
|
|
216
222
|
nodeParent.id !== ROOT_NODE_ID &&
|
|
217
|
-
overNode.data.agGridFilePath.length >
|
|
223
|
+
overNode.data.agGridFilePath.length > maxDepth) {
|
|
218
224
|
return;
|
|
219
225
|
}
|
|
220
226
|
// take new parent path from parent, if data is missing, means it's the root node,
|
|
@@ -400,4 +406,4 @@ function rowGroupOpened(_a) {
|
|
|
400
406
|
this.api.refreshCells({ force: true, rowNodes: [node] });
|
|
401
407
|
}
|
|
402
408
|
export { ɵ0, ɵ1 };
|
|
403
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12Mi5jb25maWcuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ncmlkLXYyL2dyaWQvZ3JpZC12Mi5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRixPQUFPLEVBRUwsbUJBQW1CLEVBR25CLGFBQWEsRUFDYixvQkFBb0IsRUFDckIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJakQsSUFBTSxnQkFBZ0IsR0FBVyxlQUFlLENBQUM7QUFFakQsU0FBUyxPQUFPLENBQUMsR0FBYztJQUM3QixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDO1NBRzVCLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQXpC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Z2h0IERhdG9yYW1hLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIEFwYWNoZSBMaWNlbnNlIDIuMCBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRvcmFtYS9jbGllbnQtY29yZS9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cbmltcG9ydCB7IERhdG9HcmlkVjJMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWxvYWRlci9ncmlkLXYyLWxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQWdHcmlkUm93SWNvbixcbiAgRGF0b0dyaWRDb2x1bW5UeXBlcyxcbiAgRGF0b0dyaWRPcHRpb25zLFxuICBEYXRvR3JpZFRyZWVDb25maWcsXG4gIEdyaWRNaW5XaWR0aHMsXG4gIEdyaWRSb3dTZWxlY3Rpb25UeXBlXG59IGZyb20gJy4vZ3JpZC12Mi50eXBlcyc7XG5pbXBvcnQgeyBEYXRvR3JpZFYyTm9EYXRhT3ZlcmxheUNvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtbm8tZGF0YS1vdmVybGF5L2dyaWQtdjItbm8tZGF0YS1vdmVybGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRvR3JpZEZpbHRlclR5cGVzIH0gZnJvbSAnLi4vZ3JpZC1maWx0ZXIvZ3JpZC1maWx0ZXIudHlwZXMnO1xuaW1wb3J0IHsgRGF0b0dyaWRDb2x1bW5IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLWNvbHVtbi1oZWFkZXIvZ3JpZC1jb2x1bW4taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1Rlc3RFbnYgfSBmcm9tICcuLi8uLi9pc3Rlc3QtZW52JztcbmltcG9ydCB7IElEIH0gZnJvbSAnQGRhdG9yYW1hL2FraXRhJztcbmltcG9ydCB7IGdldEluaXRpYWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3RyaW5nJztcbmltcG9ydCB7IHNpemUgfSBmcm9tICcuLi8uLi91dGlscy9jb2xsZWN0aW9uJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzJztcblxudHlwZSBEYXRlVHlwZXMgPSBudW1iZXIgfCBzdHJpbmcgfCBEYXRlO1xuXG5jb25zdCBhZ1Jvd0xldmVsUHJlZml4OiBzdHJpbmcgPSAnYWctcm93LWxldmVsLSc7XG5cbmZ1bmN0aW9uIGdldFRpbWUodmFsOiBEYXRlVHlwZXMpIHtcbiAgbGV0IHRpbWUgPSBuZXcgRGF0ZSh2YWwgfHwgbnVsbCkuZ2V0VGltZSgpO1xuICByZXR1cm4gaXNOYU4odGltZSkgPyAwIDogdGltZTtcbn1cblxuZXhwb3J0IGNvbnN0IFJPT1RfTk9ERV9JRCA9ICdST09UX05PREVfSUQnO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFRyZWVPcHRpb25zOiBQYXJ0aWFsPERhdG9HcmlkT3B0aW9ucz4gPSB7XG4gIGdldERhdGFQYXRoOiBpdGVtID0+IGl0ZW1bZ3JpZFRyZWVGaWxlUGF0aEtleV0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICBmaWxlQ2VsbFJlbmRlcmVyOiBnZXRHcmlkVHJlZUNlbGxSZW5kZXJlcigpXG4gIH0sXG4gIG9uUm93RHJhZ01vdmU6IG9uUm93RHJhZ01vdmUsXG4gIG9uUm93RHJhZ0VuZDogb25Sb3dEcmFnRW5kLFxuICBvblJvd1NlbGVjdGVkOiBvblJvd1NlbGVjdGVkLFxuICBvblJvd0dyb3VwT3BlbmVkOiByb3dHcm91cE9wZW5lZCxcbiAgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbjogdHJ1ZSxcbiAgZ3JvdXBTZWxlY3RzQ2hpbGRyZW46IHRydWUsXG4gIGljb25zOiB7XG4gICAgcm93RHJhZzogJzxkYXRvLWljb24gaWNvbj1cImRyYWdcIiBjbGFzcz1cImRhdG8taWNvbi1mb250LWRyYWcgcHJpbWFyeS00MDAtY29sb3JcIj48L2RhdG8taWNvbj4nXG4gIH1cbn07XG5cbmNvbnN0IHN0cmluZ0NvbERlZiA9IHtcbiAgZmlsdGVyOiBEYXRvR3JpZEZpbHRlclR5cGVzLlN0cmluZyxcbiAgY29tcGFyYXRvcjogKGE6IHN0cmluZywgYjogc3RyaW5nKSA9PiAoYSB8fCAnJykudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKChiIHx8ICcnKS50b0xvd2VyQ2FzZSgpKVxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9uczogUGFydGlhbDxEYXRvR3JpZE9wdGlvbnM+ID0ge1xuICAvLyBDb3JlXG4gIGhvdmVyQ29uZmlnOiB7IGVuYWJsZWQ6IHRydWUsIG1heERpc3BsYXllZEl0ZW1zOiAzIH0sXG4gIGVuYWJsZVYyXzE6IGZhbHNlLFxuICBlbmFibGVTZWFyY2g6IGZhbHNlLFxuICBlbmFibGVTZWFyY2hIaWdobGlnaHQ6IHRydWUsXG4gIGNvbHVtbnNJbmNsdWRlZEluU2VhcmNoQnlEZWZhdWx0OiB0cnVlLFxuICBpbmNsdWRlSGlkZGVuQ29sdW1uc0luU2VhcmNoOiBmYWxzZSxcbiAgZW5hYmxlQWxsUGFnZXNTZWxlY3Rpb246IHRydWUsXG4gIGlkQ29sdW1uS2V5OiAnaWQnLFxuICBlbmFibGVCYWNrZ3JvdW5kOiB0cnVlLFxuICAvLyBBZyBncmlkXG4gIGNvbHVtblR5cGVzOiB7XG4gICAgW0RhdG9HcmlkQ29sdW1uVHlwZXMuRGF0ZV06IHtcbiAgICAgIGZpbHRlcjogRGF0b0dyaWRGaWx0ZXJUeXBlcy5EYXRlLFxuICAgICAgY29tcGFyYXRvcjogKGE6IERhdGVUeXBlcywgYjogRGF0ZVR5cGVzKSA9PiBnZXRUaW1lKGEpIC0gZ2V0VGltZShiKVxuICAgIH0sXG4gICAgW0RhdG9HcmlkQ29sdW1uVHlwZXMuTnVtYmVyXToge1xuICAgICAgZmlsdGVyOiBEYXRvR3JpZEZpbHRlclR5cGVzLk51bWJlclxuICAgIH0sXG4gICAgW0RhdG9HcmlkQ29sdW1uVHlwZXMuU3RyaW5nXTogc3RyaW5nQ29sRGVmLFxuICAgIFtEYXRvR3JpZENvbHVtblR5cGVzLlN0YXR1c106IHtcbiAgICAgIC4uLnN0cmluZ0NvbERlZixcbiAgICAgIGNlbGxSZW5kZXJlcjogJ0RhdG9HcmlkU3RhdHVzQ2VsbENvbXBvbmVudCdcbiAgICB9LFxuICAgIFtEYXRvR3JpZENvbHVtblR5cGVzLkl0ZW1zXToge1xuICAgICAgLi4uc3RyaW5nQ29sRGVmLFxuICAgICAgY2VsbFJlbmRlcmVyOiAnRGF0b0dyaWRJdGVtc0NlbGxDb21wb25lbnQnXG4gICAgfSxcbiAgICBbRGF0b0dyaWRDb2x1bW5UeXBlcy5JdGVtc0NvdW50XToge1xuICAgICAgLi4uc3RyaW5nQ29sRGVmLFxuICAgICAgY2VsbFJlbmRlcmVyOiAnRGF0b0dyaWRJdGVtc0NvdW50Q2VsbENvbXBvbmVudCdcbiAgICB9LFxuICAgIFtEYXRvR3JpZENvbHVtblR5cGVzLkluaXRpYWxzXToge1xuICAgICAgLi4uc3RyaW5nQ29sRGVmLFxuICAgICAgY2VsbFJlbmRlcmVyOiAnRGF0b0dyaWRJbml0aWFsc0NlbGxDb21wb25lbnQnXG4gICAgfSxcbiAgICBbRGF0b0dyaWRDb2x1bW5UeXBlcy5BdmF0YXJdOiB7XG4gICAgICAuLi5zdHJpbmdDb2xEZWYsXG4gICAgICBjZWxsUmVuZGVyZXI6ICdEYXRvR3JpZEF2YXRhckNlbGxDb21wb25lbnQnXG4gICAgfVxuICB9LFxuICBtdWx0aVNvcnRLZXk6ICdjdHJsJyxcbiAgc3VwcHJlc3NQYWdpbmF0aW9uUGFuZWw6IHRydWUsXG4gIHBhZ2luYXRpb246IHRydWUsXG4gIHBhZ2luYXRlQ2hpbGRSb3dzOiB0cnVlLFxuICBkZWx0YUNvbHVtbk1vZGU6IHRydWUsXG4gIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50RnJhbWV3b3JrOiBEYXRvR3JpZFYyTG9hZGVyQ29tcG9uZW50LFxuICBub1Jvd3NPdmVybGF5Q29tcG9uZW50RnJhbWV3b3JrOiBEYXRvR3JpZFYyTm9EYXRhT3ZlcmxheUNvbXBvbmVudCxcbiAgZGVmYXVsdENvbERlZjoge1xuICAgIG1pbldpZHRoOiBHcmlkTWluV2lkdGhzLkRlZmF1bHQsXG4gICAgc29ydGFibGU6IHRydWUsXG4gICAgcmVzaXphYmxlOiB0cnVlLFxuICAgIHR5cGU6IERhdG9HcmlkQ29sdW1uVHlwZXMuU3RyaW5nLFxuICAgIG1lbnVUYWJzOiBbJ2ZpbHRlck1lbnVUYWInXSxcbiAgICBoZWFkZXJDb21wb25lbnRGcmFtZXdvcms6IERhdG9HcmlkQ29sdW1uSGVhZGVyQ29tcG9uZW50XG4gIH0sXG4gIHN1cHByZXNzQ2VsbFNlbGVjdGlvbjogdHJ1ZSxcbiAgc3VwcHJlc3NQcm9wZXJ0eU5hbWVzQ2hlY2s6IHRydWUsXG4gIHJvd0hlaWdodDogMzUsXG4gIGhlYWRlckhlaWdodDogMzAsXG4gIHJvd1NlbGVjdGlvbjogR3JpZFJvd1NlbGVjdGlvblR5cGUuTVVMVElQTEUsXG4gIHJvd0Rlc2VsZWN0aW9uOiB0cnVlLFxuICB1blNvcnRJY29uOiB0cnVlLFxuICBhbmltYXRlUm93czogdHJ1ZSxcbiAgcmVtZW1iZXJHcm91cFN0YXRlV2hlbk5ld0RhdGE6IHRydWUsXG4gIGdyb3VwTXVsdGlBdXRvQ29sdW1uOiB0cnVlLFxuICBncm91cERlZmF1bHRFeHBhbmRlZDogLTEsXG4gIHVzZVBpdm90R3JpZFN0eWxlOiBmYWxzZSxcbiAgZGlzYWJsZWRIVE1MUmVuZGVyaW5nRmllbGRzOiBbXSxcbiAgLi4uKGlzVGVzdEVudigpID8geyBzdXBwcmVzc0NvbHVtblZpcnR1YWxpc2F0aW9uOiB0cnVlLCByb3dCdWZmZXI6IDk5OTk5IH0gOiB7fSlcbn07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0dSSURfU0VBUkNIX0RFQk9VTkNFX1RJTUUgPSB7XG4gIENMSUVOVDogMjAwLFxuICBTRVJWRVI6IDI1MFxufTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRHcmlkVHJlZUxhYmVsOiBEYXRvR3JpZFRyZWVDb25maWcgPSB7XG4gIGlkS2V5OiAnaWQnLFxuICBwYXJlbnRJREtleTogJ3BhcmVudElEJ1xufTtcblxuZXhwb3J0IGNvbnN0IGdyaWRUcmVlRmlsZVBhdGhLZXkgPSAnYWdHcmlkRmlsZVBhdGgnO1xuXG4vKipcbiAqIENlbGwgcmVuZGVyZXIgZm9yIHRyZWUgc3RydWN0dXJlLlxuICovXG5mdW5jdGlvbiBnZXRHcmlkVHJlZUNlbGxSZW5kZXJlcigpIHtcbiAgcmV0dXJuIGl0ZW0gPT4ge1xuICAgIGNvbnN0IHsgZGF0YSwgZUdyaWRDZWxsLCBjb2xEZWYgfSA9IGl0ZW07XG4gICAgY29uc3QgeyBpY29uOiBpdGVtSWNvbiwgaXNGb2xkZXIsIGluaXRpYWxzID0gdHJ1ZSB9ID0gZGF0YTtcbiAgICBjb25zdCBpY29uID0gZ2V0Um93SWNvbihpdGVtSWNvbiwgZUdyaWRDZWxsLCBpc0ZvbGRlcik7XG4gICAgY29uc3QgZGlzcGxheU5hbWUgPSBkYXRhW2NvbERlZlsnZmllbGQnXV07XG4gICAgY29uc3QgZW50aXR5Q2xhc3NOYW1lID0gJ2VudGl0eS1kaXNwbGF5LW5hbWUnO1xuICAgIGNvbnN0IHsgc3ZnUmVnaXN0cnkgfSA9IGNvbERlZi5ncmlkU2VydmljZTtcblxuICAgIGlmIChpY29uKSB7XG4gICAgICByZXR1cm4gYDxzcGFuIGNsYXNzPVwiZGF0by1zaW1wbGUtYm9sZFwiPiA8c3BhbiBjbGFzcz1cImRhLWdyaWQtaWNvbiBmb2xkZXIgZC1mbGV4XCI+JHtzdmdSZWdpc3RyeS5nZXRTdmcoXG4gICAgICAgIGljb25cbiAgICAgICl9PC9zcGFuPjxzcGFuIGNsYXNzPVwiJHtlbnRpdHlDbGFzc05hbWV9XCI+PC9zcGFuPiAke2Rpc3BsYXlOYW1lfTwvc3Bhbj5gO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNGb2xkZXIpIHtcbiAgICAgICAgcmV0dXJuIGA8c3BhbiBjbGFzcz1cIiR7ZW50aXR5Q2xhc3NOYW1lfSBkYXRvLXNpbXBsZS1ib2xkXCI+JHtkaXNwbGF5TmFtZX08L3NwYW4+YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpbml0aWFscykge1xuICAgICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IGdldEluaXRpYWxzKGRpc3BsYXlOYW1lKTtcbiAgICAgICAgICBpZiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gYDxzcGFuIGNsYXNzPVwiJHtlbnRpdHlDbGFzc05hbWV9IGRhdG8tc2ltcGxlLWJvbGRcIj48c3BhbiBjbGFzcz1cImluaXRpYWxzXCI+JHtpbml0aWFsVmFsdWV9PC9zcGFuPiR7ZGlzcGxheU5hbWV9PC9zcGFuPmA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCIke2VudGl0eUNsYXNzTmFtZX0gZGF0by1zaW1wbGUtYm9sZFwiPiR7ZGlzcGxheU5hbWV9PC9zcGFuPmA7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCIke2VudGl0eUNsYXNzTmFtZX0gZGF0by1zaW1wbGUtYm9sZFwiPiR7ZGlzcGxheU5hbWV9PC9zcGFuPmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcm93J3MgaWNvbi5cbiAqIElmIGljb24gaXMgb2YgdHlwZSBzdHJpbmcsIFJldHVybiBpdC5cbiAqIElmIGl0IGFuIG9iamVjdCwgUmV0dXJuIGJhc2VkIG9uIHRoZSBleHBhbmQgLyBjb2xsYXBzZSBzdGF0ZS5cbiAqIEBwYXJhbSBpY29uXG4gKiBAcGFyYW0gZUdyaWRDZWxsXG4gKiBAcGFyYW0gaXNGb2xkZXJcbiAqL1xuZnVuY3Rpb24gZ2V0Um93SWNvbihpY29uOiBBZ0dyaWRSb3dJY29uLCBlR3JpZENlbGw6IGFueSwgaXNGb2xkZXI6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBpZiAoaWNvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgZ2V0SWNvbkJhc2VkT25Sb3dTdGF0ZSA9IChlR3JpZENlbGwsIHsgZXhwYW5kZWQsIGNvbGxhcHNlZCB9KSA9PiB7XG4gICAgY29uc3QgYWdHcmlkUm93RXhwYW5kZWRDbGFzcyA9ICdhZy1yb3ctZ3JvdXAtZXhwYW5kZWQnO1xuICAgIHJldHVybiBlR3JpZENlbGwucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoYWdHcmlkUm93RXhwYW5kZWRDbGFzcykgPyBleHBhbmRlZCA6IGNvbGxhcHNlZDtcbiAgfTtcblxuICAvKipcbiAgICogSWYgaWNvbiB3YXNuJ3Qgb3ZlcnJpZGUgYnkgdGhlIHVzZXIgYW5kIHRoZSByb3cgaXMgb2YgdHlwZSBmb2xkZXIsXG4gICAqIFNldCBkZWZhdWx0IGZvbGRlciBpY29ucy5cbiAgICovXG4gIGlmIChpY29uID09PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNGb2xkZXIpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRGb2xkZXJJY29uczogQWdHcmlkUm93SWNvbiA9IHtcbiAgICAgICAgZXhwYW5kZWQ6ICdmb2xkZXItb3BlbicsXG4gICAgICAgIGNvbGxhcHNlZDogJ2ZvbGRlci1jbG9zZWQnXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGdldEljb25CYXNlZE9uUm93U3RhdGUoZUdyaWRDZWxsLCBkZWZhdWx0Rm9sZGVySWNvbnMpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZycgPyBpY29uIDogZ2V0SWNvbkJhc2VkT25Sb3dTdGF0ZShlR3JpZENlbGwsIGljb24pO1xufVxuXG5sZXQgcG90ZW50aWFsUGFyZW50ID0gbnVsbDtcbmNvbnN0IGFnUm93SG92ZXJDbGFzc05hbWUgPSAnYWctcm93LWhvdmVyJztcblxubGV0IHVwZGF0aW5nQ2hlY2tib3hlc1Byb2dyYW1tYXRpY2FsbHkgPSBmYWxzZTtcblxuZnVuY3Rpb24gZ2V0Q2VsbEJ5Um93SUQocm93SUQ6IHN0cmluZykge1xuICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW3Jvdy1pZD1cIiR7cm93SUR9XCJdID4gLmFnLWNlbGxgKTtcbn1cblxuLyoqXG4gKiBNYXJrIHBhcmVudCBmb2xkZXIgb2YgdGhlIG92ZXJOb2RlIGFzIGhvdmVyZWQgaW4gb3JkZXIgdG8gYXBwbHlcbiAqIHJlbGV2YW50IGNzcyBzdHlsZSB0byBpdC5cbiAqIEBwYXJhbSBvdmVyTm9kZVxuICovXG5mdW5jdGlvbiBvblJvd0RyYWdNb3ZlKHsgb3Zlck5vZGUsIG5vZGUgfSkge1xuICBsZXQgZm9sZGVyVG9Ecm9wSW50bztcblxuICBpZiAob3Zlck5vZGUpIHtcbiAgICAvLyBmb2xkZXIgdG8gZHJvcCBpbnRvIGlzIHdoZXJlIHdlIGFyZSBnb2luZyB0byBtb3ZlIHRoZSBmaWxlL2ZvbGRlciB0b1xuICAgIGZvbGRlclRvRHJvcEludG8gPSBvdmVyTm9kZS5kYXRhLmlzRm9sZGVyXG4gICAgICA/IC8vIGlmIG92ZXIgYSBmb2xkZXIsIHdlIHRha2UgdGhlIGltbWVkaWF0ZSByb3dcbiAgICAgICAgb3Zlck5vZGVcbiAgICAgIDogLy8gaWYgb3ZlciBhIGZpbGUsIHdlIHRha2UgdGhlIHBhcmVudCByb3cgKHdoaWNoIHdpbGwgYmUgYSBmb2xkZXIpXG4gICAgICAgIG92ZXJOb2RlLnBhcmVudDtcbiAgfSBlbHNlIHtcbiAgICBmb2xkZXJUb0Ryb3BJbnRvID0gbm9kZS5yb3dNb2RlbC5yb290Tm9kZTtcbiAgfVxuXG4gIGlmIChwb3RlbnRpYWxQYXJlbnQpIHtcbiAgICBpZiAocG90ZW50aWFsUGFyZW50LmlkID09PSBmb2xkZXJUb0Ryb3BJbnRvLmlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzUG90ZW50aWFsUGFyZW50ID0gZ2V0Q2VsbEJ5Um93SUQocG90ZW50aWFsUGFyZW50LmlkKTtcbiAgICAgIHByZXZpb3VzUG90ZW50aWFsUGFyZW50ICYmIHByZXZpb3VzUG90ZW50aWFsUGFyZW50LmNsYXNzTGlzdC5yZW1vdmUoYWdSb3dIb3ZlckNsYXNzTmFtZSk7XG4gICAgICBwb3RlbnRpYWxQYXJlbnQgPSBudWxsO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBwb3RlbnRpYWxQYXJlbnQgPSBmb2xkZXJUb0Ryb3BJbnRvO1xuICB9XG4gIGlmIChmb2xkZXJUb0Ryb3BJbnRvKSB7XG4gICAgY29uc3QgZm9sZGVySUQ6IHN0cmluZyA9IGZvbGRlclRvRHJvcEludG8uaWQ7XG4gICAgY29uc3QgZm9sZGVyVG9Ecm9wSW50b0VsZW1lbnQgPSBnZXRDZWxsQnlSb3dJRChmb2xkZXJJRCk7XG4gICAgZm9sZGVyVG9Ecm9wSW50b0VsZW1lbnQgJiYgZm9sZGVyVG9Ecm9wSW50b0VsZW1lbnQuY2xhc3NMaXN0LmFkZChhZ1Jvd0hvdmVyQ2xhc3NOYW1lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvblJvd0RyYWdFbmQoeyBvdmVyTm9kZSwgbm9kZSB9KSB7XG4gIGxldCBub2RlUGFyZW50O1xuICBsZXQgZm9sZGVyVG9Ecm9wSW50bztcbiAgaWYgKG92ZXJOb2RlKSB7XG4gICAgbm9kZVBhcmVudCA9IG5vZGUucGFyZW50O1xuICAgIC8vIGZvbGRlciB0byBkcm9wIGludG8gaXMgd2hlcmUgd2UgYXJlIGdvaW5nIHRvIG1vdmUgdGhlIGZpbGUvZm9sZGVyIHRvXG4gICAgZm9sZGVyVG9Ecm9wSW50byA9IG92ZXJOb2RlLmRhdGEuaXNGb2xkZXJcbiAgICAgID8gLy8gaWYgb3ZlciBhIGZvbGRlciwgd2UgdGFrZSB0aGUgaW1tZWRpYXRlIHJvd1xuICAgICAgICBvdmVyTm9kZVxuICAgICAgOiAvLyBpZiBvdmVyIGEgZmlsZSwgd2UgdGFrZSB0aGUgcGFyZW50IHJvdyAod2hpY2ggd2lsbCBiZSBhIGZvbGRlcilcbiAgICAgICAgb3Zlck5vZGUucGFyZW50O1xuICB9IGVsc2Uge1xuICAgIG5vZGVQYXJlbnQgPSBub2RlLnJvd01vZGVsLnJvb3ROb2RlO1xuICAgIGZvbGRlclRvRHJvcEludG8gPSBub2RlLnJvd01vZGVsLnJvb3ROb2RlO1xuICB9XG5cbiAgLy8gdGhlIGRhdGEgd2Ugd2FudCB0byBtb3ZlXG4gIGNvbnN0IG1vdmluZ0RhdGEgPSBub2RlLmRhdGE7XG5cbiAgY29uc3QgdHJlZU1heERlcHRoOiBudW1iZXIgPSBub2RlLmdyaWRPcHRpb25zV3JhcHBlci5ncmlkT3B0aW9ucy5tYXhEZXB0aCB8fCAtMTtcbiAgLy8gRGlzYWJsZSBuZXN0ZWQgZHJhZyB3aGVuIHRyZWUgZGVwdGggaXMgYWJvdmUgdGhlIGxpbWl0XG4gIGlmIChcbiAgICBtb3ZpbmdEYXRhLmlzRm9sZGVyICYmXG4gICAgdHJlZU1heERlcHRoICE9PSAtMSAmJlxuICAgIG5vZGVQYXJlbnQuaWQgIT09IFJPT1RfTk9ERV9JRCAmJlxuICAgIG92ZXJOb2RlLmRhdGEuYWdHcmlkRmlsZVBhdGgubGVuZ3RoID4gdHJlZU1heERlcHRoXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIHRha2UgbmV3IHBhcmVudCBwYXRoIGZyb20gcGFyZW50LCBpZiBkYXRhIGlzIG1pc3NpbmcsIG1lYW5zIGl0J3MgdGhlIHJvb3Qgbm9kZSxcbiAgLy8gd2hpY2ggaGFzIG5vIGRhdGEuXG4gIGNvbnN0IG5ld1BhcmVudFBhdGggPSBmb2xkZXJUb0Ryb3BJbnRvLmRhdGEgPyBmb2xkZXJUb0Ryb3BJbnRvLmRhdGFbZ3JpZFRyZWVGaWxlUGF0aEtleV0gOiBbXTtcbiAgY29uc3QgbmVlZFRvQ2hhbmdlUGFyZW50ID0gIWlzRXF1YWwobmV3UGFyZW50UGF0aCwgbW92aW5nRGF0YVtncmlkVHJlZUZpbGVQYXRoS2V5XSk7XG5cbiAgLy8gY2hlY2sgd2UgYXJlIG5vdCBtb3ZpbmcgYSBmb2xkZXIgaW50byBhIGNoaWxkIGZvbGRlclxuICBjb25zdCBpbnZhbGlkTW9kZSA9IGlzU2VsZWN0aW9uUGFyZW50T2ZUYXJnZXQobm9kZSwgZm9sZGVyVG9Ecm9wSW50byk7XG4gIGlmIChpbnZhbGlkTW9kZSkge1xuICAgIGNvbnNvbGUubG9nKCdpbnZhbGlkIG1vdmUnKTtcbiAgfVxuXG4gIGlmIChuZWVkVG9DaGFuZ2VQYXJlbnQgJiYgIWludmFsaWRNb2RlKSB7XG4gICAgY29uc3QgdXBkYXRlZFJvd3MgPSBbXTtcbiAgICBjb25zdCB7IGlkS2V5IH06IERhdG9HcmlkVHJlZUNvbmZpZyA9IHRoaXMuYXV0b0dyb3VwQ29sdW1uRGVmLmdyaWRTZXJ2aWNlLnRyZWVDb25maWc7XG4gICAgbW92ZVRvUGF0aChuZXdQYXJlbnRQYXRoLCBub2RlLCB1cGRhdGVkUm93cywgaWRLZXkpO1xuXG4gICAgY29uc3QgYWZmZWN0ZWRSb3dzID0gdGhpcy5hdXRvR3JvdXBDb2x1bW5EZWYuZ3JpZFNlcnZpY2UudXBkYXRlUm93cyh1cGRhdGVkUm93cyk7XG5cbiAgICBzZXRSb3dDbGFzc2VzKFsuLi5hZmZlY3RlZFJvd3MudXBkYXRlLCBvdmVyTm9kZSwgbm9kZVBhcmVudF0pO1xuXG4gICAgLyoqXG4gICAgICogQ2xlYXIgcHJldmlvdXMgbWFya2VkIHBhcmVudCBmcm9tIGhvdmVyIHN0eWxlLlxuICAgICAqL1xuICAgIGNvbnN0IGhvdmVyZWRQYXJlbnRFbGVtZW50ID0gZ2V0Q2VsbEJ5Um93SUQocG90ZW50aWFsUGFyZW50LmlkKTtcbiAgICBob3ZlcmVkUGFyZW50RWxlbWVudCAmJiBob3ZlcmVkUGFyZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGFnUm93SG92ZXJDbGFzc05hbWUpO1xuICAgIHBvdGVudGlhbFBhcmVudCA9IG51bGw7XG5cbiAgICAvKiogUmVkcmF3IHRoZSBmb2xkZXJzIHRoYXQgaGFzIGJlZW4gZHJhZ2dlZCBmcm9tIGFuZCB0byxcbiAgICAgKiB0byBhcHBseSB0aGVpciBjbGFzc2VkIHRocm91Z2ggY2xhc3NSdWxlcyBjb25maWcgKi9cbiAgICB0aGlzLmFwaS5yZWRyYXdSb3dzKHsgcm93Tm9kZXM6IFtub2RlUGFyZW50LCBmb2xkZXJUb0Ryb3BJbnRvXSB9KTtcbiAgICB0aGlzLmFwaS5jbGVhckZvY3VzZWRDZWxsKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0Um93Q2xhc3Nlcyhyb3dzKSB7XG4gIGNvbnN0IGNsYXNzTGlzdCA9IFtgJHthZ1Jvd0xldmVsUHJlZml4fTFgLCBgJHthZ1Jvd0xldmVsUHJlZml4fTJgLCBgJHthZ1Jvd0xldmVsUHJlZml4fTNgXTtcbiAgcm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgY29uc3Qgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYFtyb3ctaWQ9XCIke3Jvdy5pZH1cIl1gKVsxXTtcblxuICAgIGlmIChub2RlKSB7XG4gICAgICBmb3IgKGNvbnN0IGNsYXNzTmFtZSBvZiBjbGFzc0xpc3QpIHtcbiAgICAgICAgaWYgKG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcbiAgICAgICAgICBub2RlLmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBub2RlLmNsYXNzTGlzdC5hZGQoYCR7YWdSb3dMZXZlbFByZWZpeH0ke3Jvdy5sZXZlbH1gKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvblJvd1NlbGVjdGVkKHBhcmFtcykge1xuICBpZiAodXBkYXRpbmdDaGVja2JveGVzUHJvZ3JhbW1hdGljYWxseSkge1xuICAgIHJldHVybjtcbiAgfVxuICB1cGRhdGluZ0NoZWNrYm94ZXNQcm9ncmFtbWF0aWNhbGx5ID0gdHJ1ZTtcblxuICBzZXRDaGlsZHJlblNlbGVjdGlvblN0YXR1cyhwYXJhbXMubm9kZSwgcGFyYW1zLm5vZGUuc2VsZWN0ZWQpO1xuICByZWZyZXNoUGFyZW50c1NlbGVjdGlvblN0YXR1c1JlY3Vyc2l2ZWx5KHBhcmFtcy5ub2RlKTtcblxuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB1cGRhdGluZ0NoZWNrYm94ZXNQcm9ncmFtbWF0aWNhbGx5ID0gZmFsc2U7XG4gIH0sIDApO1xufVxuXG5mdW5jdGlvbiBzZXRDaGlsZHJlblNlbGVjdGlvblN0YXR1cyhub2RlLCBzZWxlY3RlZCkge1xuICBsZXQgaGFzQ2hpbGRyZW4gPSBub2RlLmFsbENoaWxkcmVuQ291bnQgPiAwO1xuICBpZiAoaGFzQ2hpbGRyZW4pIHtcbiAgICBub2RlLmFsbExlYWZDaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgIGNoaWxkLnNldFNlbGVjdGVkKHNlbGVjdGVkKTtcbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWZyZXNoUGFyZW50c1NlbGVjdGlvblN0YXR1c1JlY3Vyc2l2ZWx5KG5vZGUpIHtcbiAgbGV0IHBhcmVudE5vZGUgPSBub2RlLnBhcmVudDtcbiAgd2hpbGUgKHBhcmVudE5vZGUpIHtcbiAgICBpZiAocGFyZW50Tm9kZS5pZCA9PT0gUk9PVF9OT0RFX0lEKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZWZyZXNoU2VsZWN0aW9uU3RhdHVzKHBhcmVudE5vZGUpO1xuICAgIHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLnBhcmVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWZyZXNoU2VsZWN0aW9uU3RhdHVzKG5vZGUpIHtcbiAgbGV0IGNoaWxkcmVuU2VsZWN0aW9uU3RhdHVzID0gbm9kZS5hbGxMZWFmQ2hpbGRyZW4ubWFwKG5vZGUgPT4gbm9kZS5zZWxlY3RlZCk7XG5cbiAgaWYgKGNoaWxkcmVuU2VsZWN0aW9uU3RhdHVzLmV2ZXJ5KHNlbGVjdGVkVmFsdWUgPT4gc2VsZWN0ZWRWYWx1ZSA9PT0gdHJ1ZSB8fCBzZWxlY3RlZFZhbHVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNoaWxkcmVuU2VsZWN0aW9uU3RhdHVzLnNoaWZ0KCk7XG5cbiAgbGV0IG5vZGVTZWxlY3Rpb25TdGF0dXMgPSBjaGlsZHJlblNlbGVjdGlvblN0YXR1cy5yZWR1Y2UoKGEsIGIpID0+IHtcbiAgICBpZiAoYSA9PT0gYikge1xuICAgICAgcmV0dXJuIGE7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0pO1xuXG4gIG5vZGUuc2VsZWN0VGhpc05vZGUobm9kZVNlbGVjdGlvblN0YXR1cyk7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBzZWxlY3RlZCBub2RlIGlzIGEgY2hpbGQgb2YgdGhlIHRhcmdldCBwb3NpdGlvbi5cbiAqIEBwYXJhbSBzZWxlY3RlZE5vZGVcbiAqIEBwYXJhbSB0YXJnZXROb2RlXG4gKi9cbmZ1bmN0aW9uIGlzU2VsZWN0aW9uUGFyZW50T2ZUYXJnZXQoc2VsZWN0ZWROb2RlLCB0YXJnZXROb2RlKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNoaWxkcmVuID0gc2VsZWN0ZWROb2RlLmNoaWxkcmVuQWZ0ZXJHcm91cDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgIGlmICh0YXJnZXROb2RlICYmIGNoaWxkcmVuW2ldLmtleSA9PT0gdGFyZ2V0Tm9kZS5rZXkpIHJldHVybiB0cnVlO1xuICAgIGlzU2VsZWN0aW9uUGFyZW50T2ZUYXJnZXQoY2hpbGRyZW5baV0sIHRhcmdldE5vZGUpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqIHRoaXMgdXBkYXRlcyB0aGUgZmlsZVBhdGggbG9jYXRpb25zIGluIG91ciBkYXRhLCB3ZSB1cGRhdGUgdGhlIGRhdGFcbiBiZWZvcmUgd2Ugc2VuZCBpdCB0byBhZy1HcmlkXG4gKi9cbmZ1bmN0aW9uIG1vdmVUb1BhdGgobmV3UGFyZW50UGF0aCwgeyBkYXRhLCBjaGlsZHJlbkFmdGVyR3JvdXAgfSwgYWxsVXBkYXRlZE5vZGVzLCBpZEtleTogc3RyaW5nKSB7XG4gIC8vIGxhc3QgcGFydCBvZiB0aGUgZmlsZSBwYXRoIGlzIHRoZSBmaWxlIG5hbWVcbiAgY29uc3QgbmV3Q2hpbGRQYXRoID0gbmV3UGFyZW50UGF0aC5zbGljZSgpO1xuXG4gIGRhdGFbZ3JpZFRyZWVGaWxlUGF0aEtleV0gPSBuZXdDaGlsZFBhdGg7XG5cbiAgYWxsVXBkYXRlZE5vZGVzLnB1c2goZGF0YSk7XG5cbiAgaWYgKHNpemUoY2hpbGRyZW5BZnRlckdyb3VwKSA+IDApIHtcbiAgICBjaGlsZHJlbkFmdGVyR3JvdXAuZm9yRWFjaChmdW5jdGlvbihjaGlsZE5vZGUpIHtcbiAgICAgIG1vdmVUb1BhdGgoWy4uLm5ld0NoaWxkUGF0aCwgZGF0YVtpZEtleV1dLCBjaGlsZE5vZGUsIGFsbFVwZGF0ZWROb2RlcywgaWRLZXkpO1xuICAgIH0pO1xuICB9XG5cbiAgZGF0YVtncmlkVHJlZUZpbGVQYXRoS2V5XS5wdXNoKGRhdGFbaWRLZXldKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGRhdGEgaW50byB0cmVlIHNoYXBlZCBzdHJ1Y3R1cmUuXG4gKiBAcGFyYW0gZGF0YVxuICogQHBhcmFtIGdyaWRUcmVlQ29uZmlnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9UcmVlRGF0YTxUPihkYXRhOiBUW10sIGdyaWRUcmVlQ29uZmlnOiBEYXRvR3JpZFRyZWVDb25maWcpOiBUW10ge1xuICBjb25zdCB7IHBhcmVudElES2V5LCBpZEtleSB9ID0gZ3JpZFRyZWVDb25maWc7XG4gIGNvbnN0IGdlbmVyYXRlRmlsZVBhdGggPSAoaXRlbSwgaW5pdENoaWxkID0gZmFsc2UpOiBJRFtdID0+IHtcbiAgICBjb25zdCBwYXRoOiBJRFtdID0gaW5pdENoaWxkID8gW2l0ZW1baWRLZXldXSA6IFtdO1xuICAgIGNvbnN0IHBhcmVudEVudGl0eSA9IGRhdGEuZmluZChlbnRpdHkgPT4gZW50aXR5W2lkS2V5XSA9PT0gaXRlbVtwYXJlbnRJREtleV0pO1xuICAgIHBhdGgudW5zaGlmdChwYXJlbnRFbnRpdHlbaWRLZXldKTtcblxuICAgIGlmIChwYXJlbnRFbnRpdHlbcGFyZW50SURLZXldKSB7XG4gICAgICBjb25zdCBlbnRpdHlQYXRoID0gZ2VuZXJhdGVGaWxlUGF0aChwYXJlbnRFbnRpdHkpO1xuICAgICAgcGF0aC51bnNoaWZ0KC4uLmVudGl0eVBhdGgpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9O1xuXG4gIC8qKlxuICAgKiBXaGVuIHRoZXJlJ3Mgbm8gcGFyZW50SUQsIFNldCB0aGUgaXRlbSBpbiB0byByb290IG9mIHRoZSB0cmVlLlxuICAgKiBFbHNlLCBSZWN1cnNpdmVseSBjcmVhdGUgdGhlIHBhdGguXG4gICAqL1xuICByZXR1cm4gZGF0YS5tYXAoaXRlbSA9PiB7XG4gICAgaWYgKGl0ZW1bcGFyZW50SURLZXldKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICBbZ3JpZFRyZWVGaWxlUGF0aEtleV06IGdlbmVyYXRlRmlsZVBhdGgoaXRlbSwgdHJ1ZSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLml0ZW0sXG4gICAgICAgIFtncmlkVHJlZUZpbGVQYXRoS2V5XTogW2l0ZW1baWRLZXldXVxuICAgICAgfTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgdGhlIGdyaWRzIGRhdGEgZnJvbSB0cmVlIHNoYXBlIHRvIG9yaWdpbmFsIHNoYXBlLlxuICogQHBhcmFtIGRhdGFcbiAqIEBwYXJhbSBncmlkVHJlZUNvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEZyb21UcmVlRGF0YTxUPihkYXRhOiBUW10sIGdyaWRUcmVlQ29uZmlnOiBEYXRvR3JpZFRyZWVDb25maWcpOiBUW10ge1xuICByZXR1cm4gZGF0YS5tYXAoKHsgLi4ucm93IH0pID0+IHtcbiAgICBjb25zdCBwYXRoOiBJRFtdID0gcm93W2dyaWRUcmVlRmlsZVBhdGhLZXldO1xuICAgIGNvbnN0IHBhcmVudElEOiBJRCA9IHNpemUocGF0aCkgPiAxID8gcGF0aFtwYXRoLmxlbmd0aCAtIDJdIDogMDtcbiAgICBkZWxldGUgcm93W2dyaWRUcmVlRmlsZVBhdGhLZXldO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yb3csXG4gICAgICBbZ3JpZFRyZWVDb25maWcucGFyZW50SURLZXldOiBwYXJlbnRJRFxuICAgIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIFJlZnJlc2ggZXhwYW5kZWQgLyBjb2xsYXBzZWQgcm93IGZvciB0aGUgZ3JpZCB0byBkZXRlY3RcbiAqIHRoZSBjaGFuZ2UuXG4gKiBAcGFyYW0gbm9kZVxuICovXG5mdW5jdGlvbiByb3dHcm91cE9wZW5lZCh7IG5vZGUgfSkge1xuICB0aGlzLmFwaS5yZWZyZXNoQ2VsbHMoeyBmb3JjZTogdHJ1ZSwgcm93Tm9kZXM6IFtub2RlXSB9KTtcbn1cbiJdfQ==
|
|
409
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12Mi5jb25maWcuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ncmlkLXYyL2dyaWQvZ3JpZC12Mi5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRixPQUFPLEVBRUwsbUJBQW1CLEVBR25CLGFBQWEsRUFDYixvQkFBb0IsRUFDckIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJakQsSUFBTSxnQkFBZ0IsR0FBVyxlQUFlLENBQUM7QUFFakQsU0FBUyxPQUFPLENBQUMsR0FBYztJQUM3QixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDO1NBRzVCLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQXpC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QUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsY0FBYyxDQUFDLEVBQVE7UUFBTixjQUFJO0lBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5pbXBvcnQgeyBEYXRvR3JpZFYyTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1sb2FkZXIvZ3JpZC12Mi1sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFnR3JpZFJvd0ljb24sXG4gIERhdG9HcmlkQ29sdW1uVHlwZXMsXG4gIERhdG9HcmlkT3B0aW9ucyxcbiAgRGF0b0dyaWRUcmVlQ29uZmlnLFxuICBHcmlkTWluV2lkdGhzLFxuICBHcmlkUm93U2VsZWN0aW9uVHlwZVxufSBmcm9tICcuL2dyaWQtdjIudHlwZXMnO1xuaW1wb3J0IHsgRGF0b0dyaWRWMk5vRGF0YU92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuLi9ncmlkLW5vLWRhdGEtb3ZlcmxheS9ncmlkLXYyLW5vLWRhdGEtb3ZlcmxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0b0dyaWRGaWx0ZXJUeXBlcyB9IGZyb20gJy4uL2dyaWQtZmlsdGVyL2dyaWQtZmlsdGVyLnR5cGVzJztcbmltcG9ydCB7IERhdG9HcmlkQ29sdW1uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1jb2x1bW4taGVhZGVyL2dyaWQtY29sdW1uLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNUZXN0RW52IH0gZnJvbSAnLi4vLi4vaXN0ZXN0LWVudic7XG5pbXBvcnQgeyBJRCB9IGZyb20gJ0BkYXRvcmFtYS9ha2l0YSc7XG5pbXBvcnQgeyBnZXRJbml0aWFscyB9IGZyb20gJy4uLy4uL3V0aWxzL3N0cmluZyc7XG5pbXBvcnQgeyBzaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sbGVjdGlvbic7XG5pbXBvcnQgeyBHcmlkQXBpLCBJQ2xpZW50U2lkZVJvd01vZGVsLCBSb3dEcmFnRXZlbnQsIFJvd05vZGUgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9ycyc7XG5cbnR5cGUgRGF0ZVR5cGVzID0gbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZTtcblxuY29uc3QgYWdSb3dMZXZlbFByZWZpeDogc3RyaW5nID0gJ2FnLXJvdy1sZXZlbC0nO1xuXG5mdW5jdGlvbiBnZXRUaW1lKHZhbDogRGF0ZVR5cGVzKSB7XG4gIGxldCB0aW1lID0gbmV3IERhdGUodmFsIHx8IG51bGwpLmdldFRpbWUoKTtcbiAgcmV0dXJuIGlzTmFOKHRpbWUpID8gMCA6IHRpbWU7XG59XG5cbmV4cG9ydCBjb25zdCBST09UX05PREVfSUQgPSAnUk9PVF9OT0RFX0lEJztcblxuY29uc3QgZGVmYXVsdFRyZWVPcHRpb25zQmFzZTogUGFydGlhbDxEYXRvR3JpZE9wdGlvbnM+ID0ge1xuICBnZXREYXRhUGF0aDogaXRlbSA9PiBpdGVtW2dyaWRUcmVlRmlsZVBhdGhLZXldLFxuICBjb21wb25lbnRzOiB7XG4gICAgZmlsZUNlbGxSZW5kZXJlcjogZ2V0R3JpZFRyZWVDZWxsUmVuZGVyZXIoKVxuICB9LFxuICBvblJvd0RyYWdNb3ZlOiBvblJvd0RyYWdNb3ZlLFxuICBvblJvd1NlbGVjdGVkOiBvblJvd1NlbGVjdGVkLFxuICBvblJvd0dyb3VwT3BlbmVkOiByb3dHcm91cE9wZW5lZCxcbiAgc3VwcHJlc3NSb3dDbGlja1NlbGVjdGlvbjogdHJ1ZSxcbiAgZ3JvdXBTZWxlY3RzQ2hpbGRyZW46IHRydWUsXG4gIGljb25zOiB7XG4gICAgcm93RHJhZzogJzxkYXRvLWljb24gaWNvbj1cImRyYWdcIiBjbGFzcz1cImRhdG8taWNvbi1mb250LWRyYWcgcHJpbWFyeS00MDAtY29sb3JcIj48L2RhdG8taWNvbj4nXG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0VHJlZU9wdGlvbnMobWF4RGVwdGg6IG51bWJlciA9IC0xKTogUGFydGlhbDxEYXRvR3JpZE9wdGlvbnM+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZWZhdWx0VHJlZU9wdGlvbnNCYXNlLFxuICAgIG9uUm93RHJhZ0VuZDogZXZlbnQgPT4gb25Sb3dEcmFnRW5kKGV2ZW50LCBtYXhEZXB0aClcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRUcmVlT3B0aW9ucyA9IGNyZWF0ZURlZmF1bHRUcmVlT3B0aW9ucygpO1xuXG5jb25zdCBzdHJpbmdDb2xEZWYgPSB7XG4gIGZpbHRlcjogRGF0b0dyaWRGaWx0ZXJUeXBlcy5TdHJpbmcsXG4gIGNvbXBhcmF0b3I6IChhOiBzdHJpbmcsIGI6IHN0cmluZykgPT4gKGEgfHwgJycpLnRvTG93ZXJDYXNlKCkubG9jYWxlQ29tcGFyZSgoYiB8fCAnJykudG9Mb3dlckNhc2UoKSlcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnM6IFBhcnRpYWw8RGF0b0dyaWRPcHRpb25zPiA9IHtcbiAgLy8gQ29yZVxuICBob3ZlckNvbmZpZzogeyBlbmFibGVkOiB0cnVlLCBtYXhEaXNwbGF5ZWRJdGVtczogMyB9LFxuICBlbmFibGVWMl8xOiBmYWxzZSxcbiAgZW5hYmxlU2VhcmNoOiBmYWxzZSxcbiAgZW5hYmxlU2VhcmNoSGlnaGxpZ2h0OiB0cnVlLFxuICBjb2x1bW5zSW5jbHVkZWRJblNlYXJjaEJ5RGVmYXVsdDogdHJ1ZSxcbiAgaW5jbHVkZUhpZGRlbkNvbHVtbnNJblNlYXJjaDogZmFsc2UsXG4gIGVuYWJsZUFsbFBhZ2VzU2VsZWN0aW9uOiB0cnVlLFxuICBpZENvbHVtbktleTogJ2lkJyxcbiAgZW5hYmxlQmFja2dyb3VuZDogdHJ1ZSxcbiAgLy8gQWcgZ3JpZFxuICBjb2x1bW5UeXBlczoge1xuICAgIFtEYXRvR3JpZENvbHVtblR5cGVzLkRhdGVdOiB7XG4gICAgICBmaWx0ZXI6IERhdG9HcmlkRmlsdGVyVHlwZXMuRGF0ZSxcbiAgICAgIGNvbXBhcmF0b3I6IChhOiBEYXRlVHlwZXMsIGI6IERhdGVUeXBlcykgPT4gZ2V0VGltZShhKSAtIGdldFRpbWUoYilcbiAgICB9LFxuICAgIFtEYXRvR3JpZENvbHVtblR5cGVzLk51bWJlcl06IHtcbiAgICAgIGZpbHRlcjogRGF0b0dyaWRGaWx0ZXJUeXBlcy5OdW1iZXJcbiAgICB9LFxuICAgIFtEYXRvR3JpZENvbHVtblR5cGVzLlN0cmluZ106IHN0cmluZ0NvbERlZixcbiAgICBbRGF0b0dyaWRDb2x1bW5UeXBlcy5TdGF0dXNdOiB7XG4gICAgICAuLi5zdHJpbmdDb2xEZWYsXG4gICAgICBjZWxsUmVuZGVyZXI6ICdEYXRvR3JpZFN0YXR1c0NlbGxDb21wb25lbnQnXG4gICAgfSxcbiAgICBbRGF0b0dyaWRDb2x1bW5UeXBlcy5JdGVtc106IHtcbiAgICAgIC4uLnN0cmluZ0NvbERlZixcbiAgICAgIGNlbGxSZW5kZXJlcjogJ0RhdG9HcmlkSXRlbXNDZWxsQ29tcG9uZW50J1xuICAgIH0sXG4gICAgW0RhdG9HcmlkQ29sdW1uVHlwZXMuSXRlbXNDb3VudF06IHtcbiAgICAgIC4uLnN0cmluZ0NvbERlZixcbiAgICAgIGNlbGxSZW5kZXJlcjogJ0RhdG9HcmlkSXRlbXNDb3VudENlbGxDb21wb25lbnQnXG4gICAgfSxcbiAgICBbRGF0b0dyaWRDb2x1bW5UeXBlcy5Jbml0aWFsc106IHtcbiAgICAgIC4uLnN0cmluZ0NvbERlZixcbiAgICAgIGNlbGxSZW5kZXJlcjogJ0RhdG9HcmlkSW5pdGlhbHNDZWxsQ29tcG9uZW50J1xuICAgIH0sXG4gICAgW0RhdG9HcmlkQ29sdW1uVHlwZXMuQXZhdGFyXToge1xuICAgICAgLi4uc3RyaW5nQ29sRGVmLFxuICAgICAgY2VsbFJlbmRlcmVyOiAnRGF0b0dyaWRBdmF0YXJDZWxsQ29tcG9uZW50J1xuICAgIH1cbiAgfSxcbiAgbXVsdGlTb3J0S2V5OiAnY3RybCcsXG4gIHN1cHByZXNzUGFnaW5hdGlvblBhbmVsOiB0cnVlLFxuICBwYWdpbmF0aW9uOiB0cnVlLFxuICBwYWdpbmF0ZUNoaWxkUm93czogdHJ1ZSxcbiAgZGVsdGFDb2x1bW5Nb2RlOiB0cnVlLFxuICBsb2FkaW5nT3ZlcmxheUNvbXBvbmVudEZyYW1ld29yazogRGF0b0dyaWRWMkxvYWRlckNvbXBvbmVudCxcbiAgbm9Sb3dzT3ZlcmxheUNvbXBvbmVudEZyYW1ld29yazogRGF0b0dyaWRWMk5vRGF0YU92ZXJsYXlDb21wb25lbnQsXG4gIGRlZmF1bHRDb2xEZWY6IHtcbiAgICBtaW5XaWR0aDogR3JpZE1pbldpZHRocy5EZWZhdWx0LFxuICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICB0eXBlOiBEYXRvR3JpZENvbHVtblR5cGVzLlN0cmluZyxcbiAgICBtZW51VGFiczogWydmaWx0ZXJNZW51VGFiJ10sXG4gICAgaGVhZGVyQ29tcG9uZW50RnJhbWV3b3JrOiBEYXRvR3JpZENvbHVtbkhlYWRlckNvbXBvbmVudFxuICB9LFxuICBzdXBwcmVzc0NlbGxTZWxlY3Rpb246IHRydWUsXG4gIHN1cHByZXNzUHJvcGVydHlOYW1lc0NoZWNrOiB0cnVlLFxuICByb3dIZWlnaHQ6IDM1LFxuICBoZWFkZXJIZWlnaHQ6IDMwLFxuICByb3dTZWxlY3Rpb246IEdyaWRSb3dTZWxlY3Rpb25UeXBlLk1VTFRJUExFLFxuICByb3dEZXNlbGVjdGlvbjogdHJ1ZSxcbiAgdW5Tb3J0SWNvbjogdHJ1ZSxcbiAgYW5pbWF0ZVJvd3M6IHRydWUsXG4gIHJlbWVtYmVyR3JvdXBTdGF0ZVdoZW5OZXdEYXRhOiB0cnVlLFxuICBncm91cERpc3BsYXlUeXBlOiAnbXVsdGlwbGVDb2x1bW5zJyxcbiAgZ3JvdXBEZWZhdWx0RXhwYW5kZWQ6IC0xLFxuICB1c2VQaXZvdEdyaWRTdHlsZTogZmFsc2UsXG4gIGRpc2FibGVkSFRNTFJlbmRlcmluZ0ZpZWxkczogW10sXG4gIC4uLihpc1Rlc3RFbnYoKSA/IHsgc3VwcHJlc3NDb2x1bW5WaXJ0dWFsaXNhdGlvbjogdHJ1ZSwgcm93QnVmZmVyOiA5OTk5OSB9IDoge30pXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9HUklEX1NFQVJDSF9ERUJPVU5DRV9USU1FID0ge1xuICBDTElFTlQ6IDIwMCxcbiAgU0VSVkVSOiAyNTBcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JpZFRyZWVMYWJlbDogRGF0b0dyaWRUcmVlQ29uZmlnID0ge1xuICBpZEtleTogJ2lkJyxcbiAgcGFyZW50SURLZXk6ICdwYXJlbnRJRCdcbn07XG5cbmV4cG9ydCBjb25zdCBncmlkVHJlZUZpbGVQYXRoS2V5ID0gJ2FnR3JpZEZpbGVQYXRoJztcblxuLyoqXG4gKiBDZWxsIHJlbmRlcmVyIGZvciB0cmVlIHN0cnVjdHVyZS5cbiAqL1xuZnVuY3Rpb24gZ2V0R3JpZFRyZWVDZWxsUmVuZGVyZXIoKSB7XG4gIHJldHVybiBpdGVtID0+IHtcbiAgICBjb25zdCB7IGRhdGEsIGVHcmlkQ2VsbCwgY29sRGVmIH0gPSBpdGVtO1xuICAgIGNvbnN0IHsgaWNvbjogaXRlbUljb24sIGlzRm9sZGVyLCBpbml0aWFscyA9IHRydWUgfSA9IGRhdGE7XG4gICAgY29uc3QgaWNvbiA9IGdldFJvd0ljb24oaXRlbUljb24sIGVHcmlkQ2VsbCwgaXNGb2xkZXIpO1xuICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gZGF0YVtjb2xEZWZbJ2ZpZWxkJ11dO1xuICAgIGNvbnN0IGVudGl0eUNsYXNzTmFtZSA9ICdlbnRpdHktZGlzcGxheS1uYW1lJztcbiAgICBjb25zdCB7IHN2Z1JlZ2lzdHJ5IH0gPSBjb2xEZWYuZ3JpZFNlcnZpY2U7XG5cbiAgICBpZiAoaWNvbikge1xuICAgICAgcmV0dXJuIGA8c3BhbiBjbGFzcz1cImRhdG8tc2ltcGxlLWJvbGRcIj4gPHNwYW4gY2xhc3M9XCJkYS1ncmlkLWljb24gZm9sZGVyIGQtZmxleFwiPiR7c3ZnUmVnaXN0cnkuZ2V0U3ZnKFxuICAgICAgICBpY29uXG4gICAgICApfTwvc3Bhbj48c3BhbiBjbGFzcz1cIiR7ZW50aXR5Q2xhc3NOYW1lfVwiPjwvc3Bhbj4gJHtkaXNwbGF5TmFtZX08L3NwYW4+YDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGlzRm9sZGVyKSB7XG4gICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCIke2VudGl0eUNsYXNzTmFtZX0gZGF0by1zaW1wbGUtYm9sZFwiPiR7ZGlzcGxheU5hbWV9PC9zcGFuPmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaW5pdGlhbHMpIHtcbiAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSBnZXRJbml0aWFscyhkaXNwbGF5TmFtZSk7XG4gICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGA8c3BhbiBjbGFzcz1cIiR7ZW50aXR5Q2xhc3NOYW1lfSBkYXRvLXNpbXBsZS1ib2xkXCI+PHNwYW4gY2xhc3M9XCJpbml0aWFsc1wiPiR7aW5pdGlhbFZhbHVlfTwvc3Bhbj4ke2Rpc3BsYXlOYW1lfTwvc3Bhbj5gO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYDxzcGFuIGNsYXNzPVwiJHtlbnRpdHlDbGFzc05hbWV9IGRhdG8tc2ltcGxlLWJvbGRcIj4ke2Rpc3BsYXlOYW1lfTwvc3Bhbj5gO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYDxzcGFuIGNsYXNzPVwiJHtlbnRpdHlDbGFzc05hbWV9IGRhdG8tc2ltcGxlLWJvbGRcIj4ke2Rpc3BsYXlOYW1lfTwvc3Bhbj5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHJvdydzIGljb24uXG4gKiBJZiBpY29uIGlzIG9mIHR5cGUgc3RyaW5nLCBSZXR1cm4gaXQuXG4gKiBJZiBpdCBhbiBvYmplY3QsIFJldHVybiBiYXNlZCBvbiB0aGUgZXhwYW5kIC8gY29sbGFwc2Ugc3RhdGUuXG4gKiBAcGFyYW0gaWNvblxuICogQHBhcmFtIGVHcmlkQ2VsbFxuICogQHBhcmFtIGlzRm9sZGVyXG4gKi9cbmZ1bmN0aW9uIGdldFJvd0ljb24oaWNvbjogQWdHcmlkUm93SWNvbiwgZUdyaWRDZWxsOiBhbnksIGlzRm9sZGVyOiBib29sZWFuKTogc3RyaW5nIHtcbiAgaWYgKGljb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGdldEljb25CYXNlZE9uUm93U3RhdGUgPSAoZUdyaWRDZWxsLCB7IGV4cGFuZGVkLCBjb2xsYXBzZWQgfSkgPT4ge1xuICAgIGNvbnN0IGFnR3JpZFJvd0V4cGFuZGVkQ2xhc3MgPSAnYWctcm93LWdyb3VwLWV4cGFuZGVkJztcbiAgICByZXR1cm4gZUdyaWRDZWxsLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKGFnR3JpZFJvd0V4cGFuZGVkQ2xhc3MpID8gZXhwYW5kZWQgOiBjb2xsYXBzZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIElmIGljb24gd2Fzbid0IG92ZXJyaWRlIGJ5IHRoZSB1c2VyIGFuZCB0aGUgcm93IGlzIG9mIHR5cGUgZm9sZGVyLFxuICAgKiBTZXQgZGVmYXVsdCBmb2xkZXIgaWNvbnMuXG4gICAqL1xuICBpZiAoaWNvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGlzRm9sZGVyKSB7XG4gICAgICBjb25zdCBkZWZhdWx0Rm9sZGVySWNvbnM6IEFnR3JpZFJvd0ljb24gPSB7XG4gICAgICAgIGV4cGFuZGVkOiAnZm9sZGVyLW9wZW4nLFxuICAgICAgICBjb2xsYXBzZWQ6ICdmb2xkZXItY2xvc2VkJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiBnZXRJY29uQmFzZWRPblJvd1N0YXRlKGVHcmlkQ2VsbCwgZGVmYXVsdEZvbGRlckljb25zKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gdHlwZW9mIGljb24gPT09ICdzdHJpbmcnID8gaWNvbiA6IGdldEljb25CYXNlZE9uUm93U3RhdGUoZUdyaWRDZWxsLCBpY29uKTtcbn1cblxubGV0IHBvdGVudGlhbFBhcmVudCA9IG51bGw7XG5jb25zdCBhZ1Jvd0hvdmVyQ2xhc3NOYW1lID0gJ2FnLXJvdy1ob3Zlcic7XG5cbmxldCB1cGRhdGluZ0NoZWNrYm94ZXNQcm9ncmFtbWF0aWNhbGx5ID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGdldENlbGxCeVJvd0lEKHJvd0lEOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtyb3ctaWQ9XCIke3Jvd0lEfVwiXSA+IC5hZy1jZWxsYCk7XG59XG5cbi8qKlxuICogTWFyayBwYXJlbnQgZm9sZGVyIG9mIHRoZSBvdmVyTm9kZSBhcyBob3ZlcmVkIGluIG9yZGVyIHRvIGFwcGx5XG4gKiByZWxldmFudCBjc3Mgc3R5bGUgdG8gaXQuXG4gKiBAcGFyYW0gb3Zlck5vZGVcbiAqL1xuZnVuY3Rpb24gZ2V0Um9vdE5vZGUoYXBpOiBHcmlkQXBpKTogUm93Tm9kZSB7XG4gIHJldHVybiAoYXBpLmdldE1vZGVsKCkgYXMgSUNsaWVudFNpZGVSb3dNb2RlbCkuZ2V0Um9vdE5vZGUoKTtcbn1cblxuZnVuY3Rpb24gb25Sb3dEcmFnTW92ZSh7IG92ZXJOb2RlLCBub2RlLCBhcGkgfTogUm93RHJhZ0V2ZW50KSB7XG4gIGxldCBmb2xkZXJUb0Ryb3BJbnRvO1xuXG4gIGlmIChvdmVyTm9kZSkge1xuICAgIC8vIGZvbGRlciB0byBkcm9wIGludG8gaXMgd2hlcmUgd2UgYXJlIGdvaW5nIHRvIG1vdmUgdGhlIGZpbGUvZm9sZGVyIHRvXG4gICAgZm9sZGVyVG9Ecm9wSW50byA9IG92ZXJOb2RlLmRhdGEuaXNGb2xkZXJcbiAgICAgID8gLy8gaWYgb3ZlciBhIGZvbGRlciwgd2UgdGFrZSB0aGUgaW1tZWRpYXRlIHJvd1xuICAgICAgICBvdmVyTm9kZVxuICAgICAgOiAvLyBpZiBvdmVyIGEgZmlsZSwgd2UgdGFrZSB0aGUgcGFyZW50IHJvdyAod2hpY2ggd2lsbCBiZSBhIGZvbGRlcilcbiAgICAgICAgb3Zlck5vZGUucGFyZW50O1xuICB9IGVsc2Uge1xuICAgIGZvbGRlclRvRHJvcEludG8gPSBnZXRSb290Tm9kZShhcGkpO1xuICB9XG5cbiAgaWYgKHBvdGVudGlhbFBhcmVudCkge1xuICAgIGlmIChwb3RlbnRpYWxQYXJlbnQuaWQgPT09IGZvbGRlclRvRHJvcEludG8uaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJldmlvdXNQb3RlbnRpYWxQYXJlbnQgPSBnZXRDZWxsQnlSb3dJRChwb3RlbnRpYWxQYXJlbnQuaWQpO1xuICAgICAgcHJldmlvdXNQb3RlbnRpYWxQYXJlbnQgJiYgcHJldmlvdXNQb3RlbnRpYWxQYXJlbnQuY2xhc3NMaXN0LnJlbW92ZShhZ1Jvd0hvdmVyQ2xhc3NOYW1lKTtcbiAgICAgIHBvdGVudGlhbFBhcmVudCA9IG51bGw7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHBvdGVudGlhbFBhcmVudCA9IGZvbGRlclRvRHJvcEludG87XG4gIH1cbiAgaWYgKGZvbGRlclRvRHJvcEludG8pIHtcbiAgICBjb25zdCBmb2xkZXJJRDogc3RyaW5nID0gZm9sZGVyVG9Ecm9wSW50by5pZDtcbiAgICBjb25zdCBmb2xkZXJUb0Ryb3BJbnRvRWxlbWVudCA9IGdldENlbGxCeVJvd0lEKGZvbGRlcklEKTtcbiAgICBmb2xkZXJUb0Ryb3BJbnRvRWxlbWVudCAmJiBmb2xkZXJUb0Ryb3BJbnRvRWxlbWVudC5jbGFzc0xpc3QuYWRkKGFnUm93SG92ZXJDbGFzc05hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9uUm93RHJhZ0VuZCh7IG92ZXJOb2RlLCBub2RlLCBhcGkgfTogUm93RHJhZ0V2ZW50LCBtYXhEZXB0aDogbnVtYmVyKSB7XG4gIGxldCBub2RlUGFyZW50O1xuICBsZXQgZm9sZGVyVG9Ecm9wSW50bztcbiAgaWYgKG92ZXJOb2RlKSB7XG4gICAgbm9kZVBhcmVudCA9IG5vZGUucGFyZW50O1xuICAgIC8vIGZvbGRlciB0byBkcm9wIGludG8gaXMgd2hlcmUgd2UgYXJlIGdvaW5nIHRvIG1vdmUgdGhlIGZpbGUvZm9sZGVyIHRvXG4gICAgZm9sZGVyVG9Ecm9wSW50byA9IG92ZXJOb2RlLmRhdGEuaXNGb2xkZXJcbiAgICAgID8gLy8gaWYgb3ZlciBhIGZvbGRlciwgd2UgdGFrZSB0aGUgaW1tZWRpYXRlIHJvd1xuICAgICAgICBvdmVyTm9kZVxuICAgICAgOiAvLyBpZiBvdmVyIGEgZmlsZSwgd2UgdGFrZSB0aGUgcGFyZW50IHJvdyAod2hpY2ggd2lsbCBiZSBhIGZvbGRlcilcbiAgICAgICAgb3Zlck5vZGUucGFyZW50O1xuICB9IGVsc2Uge1xuICAgIG5vZGVQYXJlbnQgPSBnZXRSb290Tm9kZShhcGkpO1xuICAgIGZvbGRlclRvRHJvcEludG8gPSBnZXRSb290Tm9kZShhcGkpO1xuICB9XG5cbiAgLy8gdGhlIGRhdGEgd2Ugd2FudCB0byBtb3ZlXG4gIGNvbnN0IG1vdmluZ0RhdGEgPSBub2RlLmRhdGE7XG5cbiAgLy8gRGlzYWJsZSBuZXN0ZWQgZHJhZyB3aGVuIHRyZWUgZGVwdGggaXMgYWJvdmUgdGhlIGxpbWl0XG4gIGlmIChcbiAgICBtb3ZpbmdEYXRhLmlzRm9sZGVyICYmXG4gICAgbWF4RGVwdGggIT09IC0xICYmXG4gICAgbm9kZVBhcmVudC5pZCAhPT0gUk9PVF9OT0RFX0lEICYmXG4gICAgb3Zlck5vZGUuZGF0YS5hZ0dyaWRGaWxlUGF0aC5sZW5ndGggPiBtYXhEZXB0aFxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyB0YWtlIG5ldyBwYXJlbnQgcGF0aCBmcm9tIHBhcmVudCwgaWYgZGF0YSBpcyBtaXNzaW5nLCBtZWFucyBpdCdzIHRoZSByb290IG5vZGUsXG4gIC8vIHdoaWNoIGhhcyBubyBkYXRhLlxuICBjb25zdCBuZXdQYXJlbnRQYXRoID0gZm9sZGVyVG9Ecm9wSW50by5kYXRhID8gZm9sZGVyVG9Ecm9wSW50by5kYXRhW2dyaWRUcmVlRmlsZVBhdGhLZXldIDogW107XG4gIGNvbnN0IG5lZWRUb0NoYW5nZVBhcmVudCA9ICFpc0VxdWFsKG5ld1BhcmVudFBhdGgsIG1vdmluZ0RhdGFbZ3JpZFRyZWVGaWxlUGF0aEtleV0pO1xuXG4gIC8vIGNoZWNrIHdlIGFyZSBub3QgbW92aW5nIGEgZm9sZGVyIGludG8gYSBjaGlsZCBmb2xkZXJcbiAgY29uc3QgaW52YWxpZE1vZGUgPSBpc1NlbGVjdGlvblBhcmVudE9mVGFyZ2V0KG5vZGUsIGZvbGRlclRvRHJvcEludG8pO1xuICBpZiAoaW52YWxpZE1vZGUpIHtcbiAgICBjb25zb2xlLmxvZygnaW52YWxpZCBtb3ZlJyk7XG4gIH1cblxuICBpZiAobmVlZFRvQ2hhbmdlUGFyZW50ICYmICFpbnZhbGlkTW9kZSkge1xuICAgIGNvbnN0IHVwZGF0ZWRSb3dzID0gW107XG4gICAgY29uc3QgeyBpZEtleSB9OiBEYXRvR3JpZFRyZWVDb25maWcgPSB0aGlzLmF1dG9Hcm91cENvbHVtbkRlZi5ncmlkU2VydmljZS50cmVlQ29uZmlnO1xuICAgIG1vdmVUb1BhdGgobmV3UGFyZW50UGF0aCwgbm9kZSwgdXBkYXRlZFJvd3MsIGlkS2V5KTtcblxuICAgIGNvbnN0IGFmZmVjdGVkUm93cyA9IHRoaXMuYXV0b0dyb3VwQ29sdW1uRGVmLmdyaWRTZXJ2aWNlLnVwZGF0ZVJvd3ModXBkYXRlZFJvd3MpO1xuXG4gICAgc2V0Um93Q2xhc3NlcyhbLi4uYWZmZWN0ZWRSb3dzLnVwZGF0ZSwgb3Zlck5vZGUsIG5vZGVQYXJlbnRdKTtcblxuICAgIC8qKlxuICAgICAqIENsZWFyIHByZXZpb3VzIG1hcmtlZCBwYXJlbnQgZnJvbSBob3ZlciBzdHlsZS5cbiAgICAgKi9cbiAgICBjb25zdCBob3ZlcmVkUGFyZW50RWxlbWVudCA9IGdldENlbGxCeVJvd0lEKHBvdGVudGlhbFBhcmVudC5pZCk7XG4gICAgaG92ZXJlZFBhcmVudEVsZW1lbnQgJiYgaG92ZXJlZFBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShhZ1Jvd0hvdmVyQ2xhc3NOYW1lKTtcbiAgICBwb3RlbnRpYWxQYXJlbnQgPSBudWxsO1xuXG4gICAgLyoqIFJlZHJhdyB0aGUgZm9sZGVycyB0aGF0IGhhcyBiZWVuIGRyYWdnZWQgZnJvbSBhbmQgdG8sXG4gICAgICogdG8gYXBwbHkgdGhlaXIgY2xhc3NlZCB0aHJvdWdoIGNsYXNzUnVsZXMgY29uZmlnICovXG4gICAgdGhpcy5hcGkucmVkcmF3Um93cyh7IHJvd05vZGVzOiBbbm9kZVBhcmVudCwgZm9sZGVyVG9Ecm9wSW50b10gfSk7XG4gICAgdGhpcy5hcGkuY2xlYXJGb2N1c2VkQ2VsbCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNldFJvd0NsYXNzZXMocm93cykge1xuICBjb25zdCBjbGFzc0xpc3QgPSBbYCR7YWdSb3dMZXZlbFByZWZpeH0xYCwgYCR7YWdSb3dMZXZlbFByZWZpeH0yYCwgYCR7YWdSb3dMZXZlbFByZWZpeH0zYF07XG4gIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBbcm93LWlkPVwiJHtyb3cuaWR9XCJdYClbMV07XG5cbiAgICBpZiAobm9kZSkge1xuICAgICAgZm9yIChjb25zdCBjbGFzc05hbWUgb2YgY2xhc3NMaXN0KSB7XG4gICAgICAgIGlmIChub2RlLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICAgICAgbm9kZS5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbm9kZS5jbGFzc0xpc3QuYWRkKGAke2FnUm93TGV2ZWxQcmVmaXh9JHtyb3cubGV2ZWx9YCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gb25Sb3dTZWxlY3RlZChwYXJhbXMpIHtcbiAgaWYgKHVwZGF0aW5nQ2hlY2tib3hlc1Byb2dyYW1tYXRpY2FsbHkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdXBkYXRpbmdDaGVja2JveGVzUHJvZ3JhbW1hdGljYWxseSA9IHRydWU7XG5cbiAgc2V0Q2hpbGRyZW5TZWxlY3Rpb25TdGF0dXMocGFyYW1zLm5vZGUsIHBhcmFtcy5ub2RlLnNlbGVjdGVkKTtcbiAgcmVmcmVzaFBhcmVudHNTZWxlY3Rpb25TdGF0dXNSZWN1cnNpdmVseShwYXJhbXMubm9kZSk7XG5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgdXBkYXRpbmdDaGVja2JveGVzUHJvZ3JhbW1hdGljYWxseSA9IGZhbHNlO1xuICB9LCAwKTtcbn1cblxuZnVuY3Rpb24gc2V0Q2hpbGRyZW5TZWxlY3Rpb25TdGF0dXMobm9kZSwgc2VsZWN0ZWQpIHtcbiAgbGV0IGhhc0NoaWxkcmVuID0gbm9kZS5hbGxDaGlsZHJlbkNvdW50ID4gMDtcbiAgaWYgKGhhc0NoaWxkcmVuKSB7XG4gICAgbm9kZS5hbGxMZWFmQ2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICBjaGlsZC5zZXRTZWxlY3RlZChzZWxlY3RlZCk7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVmcmVzaFBhcmVudHNTZWxlY3Rpb25TdGF0dXNSZWN1cnNpdmVseShub2RlKSB7XG4gIGxldCBwYXJlbnROb2RlID0gbm9kZS5wYXJlbnQ7XG4gIHdoaWxlIChwYXJlbnROb2RlKSB7XG4gICAgaWYgKHBhcmVudE5vZGUuaWQgPT09IFJPT1RfTk9ERV9JRCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmVmcmVzaFNlbGVjdGlvblN0YXR1cyhwYXJlbnROb2RlKTtcbiAgICBwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVmcmVzaFNlbGVjdGlvblN0YXR1cyhub2RlKSB7XG4gIGxldCBjaGlsZHJlblNlbGVjdGlvblN0YXR1cyA9IG5vZGUuYWxsTGVhZkNoaWxkcmVuLm1hcChub2RlID0+IG5vZGUuc2VsZWN0ZWQpO1xuXG4gIGlmIChjaGlsZHJlblNlbGVjdGlvblN0YXR1cy5ldmVyeShzZWxlY3RlZFZhbHVlID0+IHNlbGVjdGVkVmFsdWUgPT09IHRydWUgfHwgc2VsZWN0ZWRWYWx1ZSA9PT0gdW5kZWZpbmVkKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjaGlsZHJlblNlbGVjdGlvblN0YXR1cy5zaGlmdCgpO1xuXG4gIGxldCBub2RlU2VsZWN0aW9uU3RhdHVzID0gY2hpbGRyZW5TZWxlY3Rpb25TdGF0dXMucmVkdWNlKChhLCBiKSA9PiB7XG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgIHJldHVybiBhO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9KTtcblxuICBub2RlLnNlbGVjdFRoaXNOb2RlKG5vZGVTZWxlY3Rpb25TdGF0dXMpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgc2VsZWN0ZWQgbm9kZSBpcyBhIGNoaWxkIG9mIHRoZSB0YXJnZXQgcG9zaXRpb24uXG4gKiBAcGFyYW0gc2VsZWN0ZWROb2RlXG4gKiBAcGFyYW0gdGFyZ2V0Tm9kZVxuICovXG5mdW5jdGlvbiBpc1NlbGVjdGlvblBhcmVudE9mVGFyZ2V0KHNlbGVjdGVkTm9kZSwgdGFyZ2V0Tm9kZSk6IGJvb2xlYW4ge1xuICBjb25zdCBjaGlsZHJlbiA9IHNlbGVjdGVkTm9kZS5jaGlsZHJlbkFmdGVyR3JvdXA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAodGFyZ2V0Tm9kZSAmJiBjaGlsZHJlbltpXS5rZXkgPT09IHRhcmdldE5vZGUua2V5KSByZXR1cm4gdHJ1ZTtcbiAgICBpc1NlbGVjdGlvblBhcmVudE9mVGFyZ2V0KGNoaWxkcmVuW2ldLCB0YXJnZXROb2RlKTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKiB0aGlzIHVwZGF0ZXMgdGhlIGZpbGVQYXRoIGxvY2F0aW9ucyBpbiBvdXIgZGF0YSwgd2UgdXBkYXRlIHRoZSBkYXRhXG4gYmVmb3JlIHdlIHNlbmQgaXQgdG8gYWctR3JpZFxuICovXG5mdW5jdGlvbiBtb3ZlVG9QYXRoKG5ld1BhcmVudFBhdGgsIHsgZGF0YSwgY2hpbGRyZW5BZnRlckdyb3VwIH0sIGFsbFVwZGF0ZWROb2RlcywgaWRLZXk6IHN0cmluZykge1xuICAvLyBsYXN0IHBhcnQgb2YgdGhlIGZpbGUgcGF0aCBpcyB0aGUgZmlsZSBuYW1lXG4gIGNvbnN0IG5ld0NoaWxkUGF0aCA9IG5ld1BhcmVudFBhdGguc2xpY2UoKTtcblxuICBkYXRhW2dyaWRUcmVlRmlsZVBhdGhLZXldID0gbmV3Q2hpbGRQYXRoO1xuXG4gIGFsbFVwZGF0ZWROb2Rlcy5wdXNoKGRhdGEpO1xuXG4gIGlmIChzaXplKGNoaWxkcmVuQWZ0ZXJHcm91cCkgPiAwKSB7XG4gICAgY2hpbGRyZW5BZnRlckdyb3VwLmZvckVhY2goZnVuY3Rpb24oY2hpbGROb2RlKSB7XG4gICAgICBtb3ZlVG9QYXRoKFsuLi5uZXdDaGlsZFBhdGgsIGRhdGFbaWRLZXldXSwgY2hpbGROb2RlLCBhbGxVcGRhdGVkTm9kZXMsIGlkS2V5KTtcbiAgICB9KTtcbiAgfVxuXG4gIGRhdGFbZ3JpZFRyZWVGaWxlUGF0aEtleV0ucHVzaChkYXRhW2lkS2V5XSk7XG59XG5cbi8qKlxuICogQ29udmVydCBkYXRhIGludG8gdHJlZSBzaGFwZWQgc3RydWN0dXJlLlxuICogQHBhcmFtIGRhdGFcbiAqIEBwYXJhbSBncmlkVHJlZUNvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRvVHJlZURhdGE8VD4oZGF0YTogVFtdLCBncmlkVHJlZUNvbmZpZzogRGF0b0dyaWRUcmVlQ29uZmlnKTogVFtdIHtcbiAgY29uc3QgeyBwYXJlbnRJREtleSwgaWRLZXkgfSA9IGdyaWRUcmVlQ29uZmlnO1xuICBjb25zdCBnZW5lcmF0ZUZpbGVQYXRoID0gKGl0ZW0sIGluaXRDaGlsZCA9IGZhbHNlKTogSURbXSA9PiB7XG4gICAgY29uc3QgcGF0aDogSURbXSA9IGluaXRDaGlsZCA/IFtpdGVtW2lkS2V5XV0gOiBbXTtcbiAgICBjb25zdCBwYXJlbnRFbnRpdHkgPSBkYXRhLmZpbmQoZW50aXR5ID0+IGVudGl0eVtpZEtleV0gPT09IGl0ZW1bcGFyZW50SURLZXldKTtcbiAgICBwYXRoLnVuc2hpZnQocGFyZW50RW50aXR5W2lkS2V5XSk7XG5cbiAgICBpZiAocGFyZW50RW50aXR5W3BhcmVudElES2V5XSkge1xuICAgICAgY29uc3QgZW50aXR5UGF0aCA9IGdlbmVyYXRlRmlsZVBhdGgocGFyZW50RW50aXR5KTtcbiAgICAgIHBhdGgudW5zaGlmdCguLi5lbnRpdHlQYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aDtcbiAgfTtcblxuICAvKipcbiAgICogV2hlbiB0aGVyZSdzIG5vIHBhcmVudElELCBTZXQgdGhlIGl0ZW0gaW4gdG8gcm9vdCBvZiB0aGUgdHJlZS5cbiAgICogRWxzZSwgUmVjdXJzaXZlbHkgY3JlYXRlIHRoZSBwYXRoLlxuICAgKi9cbiAgcmV0dXJuIGRhdGEubWFwKGl0ZW0gPT4ge1xuICAgIGlmIChpdGVtW3BhcmVudElES2V5XSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgW2dyaWRUcmVlRmlsZVBhdGhLZXldOiBnZW5lcmF0ZUZpbGVQYXRoKGl0ZW0sIHRydWUpXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICBbZ3JpZFRyZWVGaWxlUGF0aEtleV06IFtpdGVtW2lkS2V5XV1cbiAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBncmlkcyBkYXRhIGZyb20gdHJlZSBzaGFwZSB0byBvcmlnaW5hbCBzaGFwZS5cbiAqIEBwYXJhbSBkYXRhXG4gKiBAcGFyYW0gZ3JpZFRyZWVDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGcm9tVHJlZURhdGE8VD4oZGF0YTogVFtdLCBncmlkVHJlZUNvbmZpZzogRGF0b0dyaWRUcmVlQ29uZmlnKTogVFtdIHtcbiAgcmV0dXJuIGRhdGEubWFwKCh7IC4uLnJvdyB9KSA9PiB7XG4gICAgY29uc3QgcGF0aDogSURbXSA9IHJvd1tncmlkVHJlZUZpbGVQYXRoS2V5XTtcbiAgICBjb25zdCBwYXJlbnRJRDogSUQgPSBzaXplKHBhdGgpID4gMSA/IHBhdGhbcGF0aC5sZW5ndGggLSAyXSA6IDA7XG4gICAgZGVsZXRlIHJvd1tncmlkVHJlZUZpbGVQYXRoS2V5XTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucm93LFxuICAgICAgW2dyaWRUcmVlQ29uZmlnLnBhcmVudElES2V5XTogcGFyZW50SURcbiAgICB9O1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZWZyZXNoIGV4cGFuZGVkIC8gY29sbGFwc2VkIHJvdyBmb3IgdGhlIGdyaWQgdG8gZGV0ZWN0XG4gKiB0aGUgY2hhbmdlLlxuICogQHBhcmFtIG5vZGVcbiAqL1xuZnVuY3Rpb24gcm93R3JvdXBPcGVuZWQoeyBub2RlIH0pIHtcbiAgdGhpcy5hcGkucmVmcmVzaENlbGxzKHsgZm9yY2U6IHRydWUsIHJvd05vZGVzOiBbbm9kZV0gfSk7XG59XG4iXX0=
|
|
@@ -26,6 +26,9 @@ var DatoGridColumnHeaderComponent = /** @class */ (function () {
|
|
|
26
26
|
this.filtersMenuOpen = false;
|
|
27
27
|
}
|
|
28
28
|
DatoGridColumnHeaderComponent.prototype.afterGuiAttached = function (params) { };
|
|
29
|
+
DatoGridColumnHeaderComponent.prototype.refresh = function (_params) {
|
|
30
|
+
return false;
|
|
31
|
+
};
|
|
29
32
|
DatoGridColumnHeaderComponent.prototype.agInit = function (params) {
|
|
30
33
|
var _this = this;
|
|
31
34
|
this.params = params;
|
|
@@ -152,4 +155,4 @@ var DatoGridColumnHeaderComponent = /** @class */ (function () {
|
|
|
152
155
|
return DatoGridColumnHeaderComponent;
|
|
153
156
|
}());
|
|
154
157
|
export { DatoGridColumnHeaderComponent };
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb2x1bW4taGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1jb2x1bW4taGVhZGVyL2dyaWQtY29sdW1uLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU9qRDtJQW1CRSx1Q0FDVSxHQUFxQixFQUNyQixVQUF5QyxFQUN6QyxJQUFnQixFQUNoQixHQUFzQjtRQUh0QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUN6QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBUmhDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JC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QUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksUUFBTSxHQUFHLGFBQWEsQ0FBQztZQUUzQixJQUFJLFFBQU0sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3ZCLElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ25FLElBQU0sY0FBYyxHQUFHLGVBQWUsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLFFBQU0sQ0FBQyxZQUFZLEVBQXRDLENBQXNDLENBQUMsQ0FBQztnQkFDOUcsSUFBTSxjQUFjLEdBQUcsY0FBYyxJQUFLLGNBQWMsQ0FBQyxTQUFTLEVBQXdCLENBQUM7Z0JBRTNGLFFBQU0sR0FBRyxjQUFjLElBQUksUUFBTSxDQUFDO2FBQ25DO1lBRUQsT0FBTyxRQUFNLENBQUMsbUJBQW1CLElBQUksUUFBTSxDQUFDLFVBQVUsQ0FBQztTQUN4RDtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7Z0JBM0hjLGdCQUFnQjtnQkFDVCw2QkFBNkI7Z0JBQ25DLFVBQVU7Z0JBQ1gsaUJBQWlCOztJQXZCckIsNkJBQTZCO1FBTHpDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSx5QkFBeUI7WUFDbkMsODRFQUFrRDs7U0FFbkQsQ0FBQzt5Q0FxQmUsZ0JBQWdCO1lBQ1QsNkJBQTZCO1lBQ25DLFVBQVU7WUFDWCxpQkFBaUI7T0F2QnJCLDZCQUE2QixDQWdKekM7SUFBRCxvQ0FBQztDQUFBLEFBaEpELElBZ0pDO1NBaEpZLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElIZWFkZXJBbmd1bGFyQ29tcCB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyJztcbmltcG9ydCB7IENvbHVtbiwgQ29sdW1uQXBpLCBHcmlkQXBpLCBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcyB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7IERhdG9Db2x1bW5IZWFkZXJQYXJhbXMgfSBmcm9tICcuL2dyaWQtY29sdW1uLWhlYWRlci50eXBlcyc7XG5pbXBvcnQgeyBDdXN0b21IZWFkZXJDb250cm9sbGVyU2VydmljZSB9IGZyb20gJy4vY3VzdG9tLWhlYWRlci1jb250cm9sbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBzaXplIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29sbGVjdGlvbic7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdG9HcmlkRmlsdGVyVHlwZXMgfSBmcm9tICcuLi9ncmlkLWZpbHRlci9ncmlkLWZpbHRlci50eXBlcyc7XG5pbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ25neC10YWtlLXVudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgRGF0b0dyaWRDb2x1bW5EZWYgfSBmcm9tICcuLi9ncmlkL2dyaWQtdjIudHlwZXMnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzJztcbmltcG9ydCB7IENvcmVFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vZXZlbnQtbG9nZ2VyJztcbmltcG9ydCB7IGlzQXJyYXlWYWx1ZXNFcXVhbCB9IGZyb20gJy4uLy4uL3V0aWxzL2FycmF5JztcbmltcG9ydCB7IGdldENvbEZpZWxkIH0gZnJvbSAnLi4vZ3JpZC1zdG9yZS91dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0by1ncmlkLWNvbHVtbi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1jb2x1bW4taGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1jb2x1bW4taGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGF0b0dyaWRDb2x1bW5IZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIElIZWFkZXJBbmd1bGFyQ29tcCB7XG4gIGhlYWRlck5hbWU6IHN0cmluZztcbiAgaGVhZGVyVG9vbHRpcDogc3RyaW5nO1xuICBwYXJhbXM6IERhdG9Db2x1bW5IZWFkZXJQYXJhbXM7XG4gIGNvbHVtbjogQ29sdW1uO1xuICBjdXN0b21UZW1wbGF0ZXM6IHtcbiAgICBjdXN0b21IZWFkZXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIG1vcmVNZW51PzogVGVtcGxhdGVSZWY8YW55PjtcbiAgfTtcbiAgc2hvd0ZpbHRlcjogYm9vbGVhbjtcbiAgc2hvd01vcmVNZW51OiBib29sZWFuO1xuICBjb250ZXh0OiB7IGFwaTogeyBncmlkOiBHcmlkQXBpOyBjb2x1bW5zOiBDb2x1bW5BcGkgfTsgY29sdW1uOiBDb2x1bW4gfTtcbiAgZmlsdGVyQWN0aXZlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZmllbGQ6IHN0cmluZztcbiAgc29ydGluZ0luZm8kOiBPYnNlcnZhYmxlPHsgYWN0aXZlOiBib29sZWFuOyBpY29uOiBzdHJpbmcgfT47XG4gIG1vcmVNZW51T3BlbiA9IGZhbHNlO1xuICBmaWx0ZXJzTWVudU9wZW4gPSBmYWxzZTtcbiAgaGVhZGVySW5mbzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY29udHJvbGxlcjogQ3VzdG9tSGVhZGVyQ29udHJvbGxlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBob3N0OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgYWZ0ZXJHdWlBdHRhY2hlZChwYXJhbXM/OiBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcyk6IHZvaWQge31cblxuICBhZ0luaXQocGFyYW1zOiBEYXRvQ29sdW1uSGVhZGVyUGFyYW1zKTogdm9pZCB7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5jb2x1bW4gPSBwYXJhbXMuY29sdW1uO1xuICAgIGNvbnN0IGNvbERlZiA9IHBhcmFtcy5jb2x1bW4uZ2V0Q29sRGVmKCkgYXMgRGF0b0dyaWRDb2x1bW5EZWY7XG4gICAgdGhpcy5oZWFkZXJJbmZvID0gY29sRGVmLmluZm87XG4gICAgdGhpcy5oZWFkZXJOYW1lID0gY29sRGVmLmhlYWRlck5hbWU7XG4gICAgdGhpcy5zaG93RmlsdGVyID0gY29sRGVmLmZpbHRlciAhPT0gRGF0b0dyaWRGaWx0ZXJUeXBlcy5Ob25lO1xuICAgIHRoaXMuc2hvd01vcmVNZW51ID0gaXNOaWwoY29sRGVmLm1vcmVNZW51QWN0aW9ucykgfHwgY29sRGVmLm1vcmVNZW51QWN0aW9ucy5sZW5ndGggPiAwO1xuICAgIHRoaXMuZmllbGQgPSBnZXRDb2xGaWVsZChjb2xEZWYpO1xuICAgIHRoaXMuaGVhZGVyVG9vbHRpcCA9IHRoaXMuZ2V0SGVhZGVyVG9vbHRpcChjb2xEZWYpO1xuICAgIHRoaXMuY29udGV4dCA9IHtcbiAgICAgIGFwaToge1xuICAgICAgICBncmlkOiBwYXJhbXMuYXBpLFxuICAgICAgICBjb2x1bW5zOiBwYXJhbXMuY29sdW1uQXBpXG4gICAgICB9LFxuICAgICAgY29sdW1uOiB0aGlzLmNvbHVtblxuICAgIH07XG4gICAgY29uc3QgeyBncmlkUXVlcnksIGdyaWRTZXJ2aWNlIH0gPSB0aGlzLnBhcmFtcztcbiAgICB0aGlzLmN1c3RvbVRlbXBsYXRlcyA9IGdyaWRTZXJ2aWNlLmdldEN1c3RvbUhlYWRlcih0aGlzLmZpZWxkKTtcbiAgICB0aGlzLmZpbHRlckFjdGl2ZSQgPSBncmlkUXVlcnlcbiAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuc2V0dGluZ3MuZmlsdGVyW3RoaXMuZmllbGRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChmaWx0ZXIgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzUGl2b3RDb2x1bW5NYXRjaEZpbHRlciA9IGZpbHRlciAmJiBpc0FycmF5VmFsdWVzRXF1YWwoZmlsdGVyLnBpdm90S2V5cywgY29sRGVmLnBpdm90S2V5cyk7XG5cbiAgICAgICAgICByZXR1cm4gc2l6ZShmaWx0ZXIpID4gMCAmJiBpc1Bpdm90Q29sdW1uTWF0Y2hGaWx0ZXI7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIGlmICh0aGlzLnBhcmFtcy5lbmFibGVTb3J0aW5nKSB7XG4gICAgICBmcm9tRXZlbnQodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBzb3J0aW5nT3JkZXI6IHN0cmluZ1tdID0gdGhpcy5jb2x1bW4uZ2V0Q29sRGVmKCkgPyB0aGlzLmNvbHVtbi5nZXRDb2xEZWYoKS5zb3J0aW5nT3JkZXIgOiBudWxsO1xuICAgICAgICAgIGxldCBzb3J0O1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTb3J0ID0gdGhpcy5jb2x1bW4uZ2V0U29ydCgpO1xuICAgICAgICAgIGNvbnN0IGNvbElkID0gdGhpcy5jb2x1bW4uZ2V0Q29sSWQoKTtcblxuICAgICAgICAgIGlmIChzb3J0aW5nT3JkZXIgJiYgc29ydGluZ09yZGVyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTb3J0SW5kZXggPSBzb3J0aW5nT3JkZXIuaW5kZXhPZihjdXJyZW50U29ydCk7XG4gICAgICAgICAgICBsZXQgbmV3U29ydEluZGV4O1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRTb3J0SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgIG5ld1NvcnRJbmRleCA9IDA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBuZXdTb3J0SW5kZXggPSBjdXJyZW50U29ydEluZGV4ID09PSBzb3J0aW5nT3JkZXIubGVuZ3RoIC0gMSA/IDAgOiBjdXJyZW50U29ydEluZGV4ICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNvcnQgPSBzb3J0aW5nT3JkZXJbbmV3U29ydEluZGV4XTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc29ydCA9IGN1cnJlbnRTb3J0ICE9PSAnYXNjJyA/ICdhc2MnIDogJ2Rlc2MnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBncmlkU2VydmljZS5fbG9nRXZlbnQoQ29yZUV2ZW50VHlwZXMuR1JJRF9DT0xVTU5fQUNUSU9OLCB7XG4gICAgICAgICAgICBhY3Rpb246ICdTb3J0JyxcbiAgICAgICAgICAgIGNvbHVtbjogY29sSWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBncmlkUXVlcnkuaXNTZXJ2ZXJTaWRlICYmIGdyaWRTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XG5cbiAgICAgICAgICBpZiAoZ3JpZFF1ZXJ5LmdldEdyaWRPcHRpb25zKCkuc29ydEJ5U3RvcmUpIHtcbiAgICAgICAgICAgIGdyaWRTZXJ2aWNlLnNldFNvcnRCeUNvbHVtbihjb2xJZCwgc29ydCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFyYW1zLnNldFNvcnQoc29ydCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuc29ydGluZ0luZm8kID0gZ3JpZFF1ZXJ5XG4gICAgICAgIC53YWl0Rm9yR3JpZCgoKSA9PiBncmlkUXVlcnkuZ3JpZFJlZi5zb3J0Q2hhbmdlZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgc3RhcnRXaXRoKHt9KSxcbiAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgYWN0aXZlOiB0aGlzLmNvbHVtbi5pc1NvcnRpbmcoKSxcbiAgICAgICAgICAgICAgaWNvbjogIXRoaXMuY29sdW1uLmlzU29ydGluZygpIHx8IHRoaXMuY29sdW1uLmlzU29ydEFzY2VuZGluZygpID8gJ3NvcnQtYXNjZW5kaW5nJyA6ICdzb3J0LWRlc2NlbmRpbmcnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkZpbHRlcnMob3JpZ2luKSB7XG4gICAgdGhpcy5maWx0ZXJzTWVudU9wZW4gPSB0cnVlO1xuICAgIHRoaXMuY29udHJvbGxlclxuICAgICAgLm9wZW5GaWx0ZXJNZW51KG9yaWdpbi5ob3N0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMucGFyYW1zKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJzTWVudU9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBvcGVuTW9yZU1lbnUob3JpZ2luKSB7XG4gICAgdGhpcy5tb3JlTWVudU9wZW4gPSB0cnVlO1xuICAgIHRoaXMuY29udHJvbGxlclxuICAgICAgLm9wZW5Nb3JlTWVudShvcmlnaW4uaG9zdC5uYXRpdmVFbGVtZW50LCB0aGlzLnBhcmFtcywgdGhpcy5jdXN0b21UZW1wbGF0ZXMubW9yZU1lbnUpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm1vcmVNZW51T3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge31cblxuICBwcml2YXRlIGdldEhlYWRlclRvb2x0aXAoaW5pdGlhbENvbERlZjogRGF0b0dyaWRDb2x1bW5EZWYpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnBhcmFtcykge1xuICAgICAgbGV0IGNvbERlZiA9IGluaXRpYWxDb2xEZWY7XG5cbiAgICAgIGlmIChjb2xEZWYuc2hvd1Jvd0dyb3VwKSB7XG4gICAgICAgIGNvbnN0IHJvd0dyb3VwQ29sdW1ucyA9IHRoaXMucGFyYW1zLmNvbHVtbkFwaS5nZXRSb3dHcm91cENvbHVtbnMoKTtcbiAgICAgICAgY29uc3Qgcm93R3JvdXBDb2x1bW4gPSByb3dHcm91cENvbHVtbnMgJiYgcm93R3JvdXBDb2x1bW5zLmZpbmQoY29sID0+IGNvbC5nZXRDb2xJZCgpID09PSBjb2xEZWYuc2hvd1Jvd0dyb3VwKTtcbiAgICAgICAgY29uc3Qgcm93R3JvdXBDb2xEZWYgPSByb3dHcm91cENvbHVtbiAmJiAocm93R3JvdXBDb2x1bW4uZ2V0Q29sRGVmKCkgYXMgRGF0b0dyaWRDb2x1bW5EZWYpO1xuXG4gICAgICAgIGNvbERlZiA9IHJvd0dyb3VwQ29sRGVmIHx8IGNvbERlZjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbERlZi5jdXN0b21IZWFkZXJUb29sdGlwIHx8IGNvbERlZi5oZWFkZXJOYW1lO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb2x1bW4taGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1jb2x1bW4taGVhZGVyL2dyaWQtY29sdW1uLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU9qRDtJQW1CRSx1Q0FDVSxHQUFxQixFQUNyQixVQUF5QyxFQUN6QyxJQUFnQixFQUNoQixHQUFzQjtRQUh0QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUErQjtRQUN6QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBUmhDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JC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REFBVyxHQUFYLGNBQWUsQ0FBQztJQUVSLHdEQUFnQixHQUF4QixVQUF5QixhQUFnQztRQUN2RCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLFFBQU0sR0FBRyxhQUFhLENBQUM7WUFFM0IsSUFBSSxRQUFNLENBQUMsWUFBWSxFQUFFO2dCQUN2QixJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNuRSxJQUFNLGNBQWMsR0FBRyxlQUFlLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxRQUFNLENBQUMsWUFBWSxFQUF0QyxDQUFzQyxDQUFDLENBQUM7Z0JBQzlHLElBQU0sY0FBYyxHQUFHLGNBQWMsSUFBSyxjQUFjLENBQUMsU0FBUyxFQUF3QixDQUFDO2dCQUUzRixRQUFNLEdBQUcsY0FBYyxJQUFJLFFBQU0sQ0FBQzthQUNuQztZQUVELE9BQU8sUUFBTSxDQUFDLG1CQUFtQixJQUFJLFFBQU0sQ0FBQyxVQUFVLENBQUM7U0FDeEQ7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7O2dCQS9IYyxnQkFBZ0I7Z0JBQ1QsNkJBQTZCO2dCQUNuQyxVQUFVO2dCQUNYLGlCQUFpQjs7SUF2QnJCLDZCQUE2QjtRQUx6QyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLDg0RUFBa0Q7O1NBRW5ELENBQUM7eUNBcUJlLGdCQUFnQjtZQUNULDZCQUE2QjtZQUNuQyxVQUFVO1lBQ1gsaUJBQWlCO09BdkJyQiw2QkFBNkIsQ0FvSnpDO0lBQUQsb0NBQUM7Q0FBQSxBQXBKRCxJQW9KQztTQXBKWSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgRGF0b3JhbWEuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gQXBhY2hlIExpY2Vuc2UgMi4wIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2RhdG9yYW1hL2NsaWVudC1jb3JlL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSGVhZGVyQW5ndWxhckNvbXAgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XG5pbXBvcnQgeyBDb2x1bW4sIENvbHVtbkFwaSwgR3JpZEFwaSwgSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXMsIElIZWFkZXJQYXJhbXMgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQgeyBEYXRvQ29sdW1uSGVhZGVyUGFyYW1zIH0gZnJvbSAnLi9ncmlkLWNvbHVtbi1oZWFkZXIudHlwZXMnO1xuaW1wb3J0IHsgQ3VzdG9tSGVhZGVyQ29udHJvbGxlclNlcnZpY2UgfSBmcm9tICcuL2N1c3RvbS1oZWFkZXItY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgc2l6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRvR3JpZEZpbHRlclR5cGVzIH0gZnJvbSAnLi4vZ3JpZC1maWx0ZXIvZ3JpZC1maWx0ZXIudHlwZXMnO1xuaW1wb3J0IHsgdW50aWxEZXN0cm95ZWQgfSBmcm9tICduZ3gtdGFrZS11bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IERhdG9HcmlkQ29sdW1uRGVmIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXYyLnR5cGVzJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBDb3JlRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uL2V2ZW50LWxvZ2dlcic7XG5pbXBvcnQgeyBpc0FycmF5VmFsdWVzRXF1YWwgfSBmcm9tICcuLi8uLi91dGlscy9hcnJheSc7XG5pbXBvcnQgeyBnZXRDb2xGaWVsZCB9IGZyb20gJy4uL2dyaWQtc3RvcmUvdXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdG8tZ3JpZC1jb2x1bW4taGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtY29sdW1uLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtY29sdW1uLWhlYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERhdG9HcmlkQ29sdW1uSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBJSGVhZGVyQW5ndWxhckNvbXAge1xuICBoZWFkZXJOYW1lOiBzdHJpbmc7XG4gIGhlYWRlclRvb2x0aXA6IHN0cmluZztcbiAgcGFyYW1zOiBEYXRvQ29sdW1uSGVhZGVyUGFyYW1zO1xuICBjb2x1bW46IENvbHVtbjtcbiAgY3VzdG9tVGVtcGxhdGVzOiB7XG4gICAgY3VzdG9tSGVhZGVyPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBtb3JlTWVudT86IFRlbXBsYXRlUmVmPGFueT47XG4gIH07XG4gIHNob3dGaWx0ZXI6IGJvb2xlYW47XG4gIHNob3dNb3JlTWVudTogYm9vbGVhbjtcbiAgY29udGV4dDogeyBhcGk6IHsgZ3JpZDogR3JpZEFwaTsgY29sdW1uczogQ29sdW1uQXBpIH07IGNvbHVtbjogQ29sdW1uIH07XG4gIGZpbHRlckFjdGl2ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGZpZWxkOiBzdHJpbmc7XG4gIHNvcnRpbmdJbmZvJDogT2JzZXJ2YWJsZTx7IGFjdGl2ZTogYm9vbGVhbjsgaWNvbjogc3RyaW5nIH0+O1xuICBtb3JlTWVudU9wZW4gPSBmYWxzZTtcbiAgZmlsdGVyc01lbnVPcGVuID0gZmFsc2U7XG4gIGhlYWRlckluZm86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNvbnRyb2xsZXI6IEN1c3RvbUhlYWRlckNvbnRyb2xsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaG9zdDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIGFmdGVyR3VpQXR0YWNoZWQocGFyYW1zPzogSUFmdGVyR3VpQXR0YWNoZWRQYXJhbXMpOiB2b2lkIHt9XG5cbiAgcmVmcmVzaChfcGFyYW1zOiBJSGVhZGVyUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYWdJbml0KHBhcmFtczogRGF0b0NvbHVtbkhlYWRlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuY29sdW1uID0gcGFyYW1zLmNvbHVtbjtcbiAgICBjb25zdCBjb2xEZWYgPSBwYXJhbXMuY29sdW1uLmdldENvbERlZigpIGFzIERhdG9HcmlkQ29sdW1uRGVmO1xuICAgIHRoaXMuaGVhZGVySW5mbyA9IGNvbERlZi5pbmZvO1xuICAgIHRoaXMuaGVhZGVyTmFtZSA9IGNvbERlZi5oZWFkZXJOYW1lO1xuICAgIHRoaXMuc2hvd0ZpbHRlciA9IGNvbERlZi5maWx0ZXIgIT09IERhdG9HcmlkRmlsdGVyVHlwZXMuTm9uZTtcbiAgICB0aGlzLnNob3dNb3JlTWVudSA9IGlzTmlsKGNvbERlZi5tb3JlTWVudUFjdGlvbnMpIHx8IGNvbERlZi5tb3JlTWVudUFjdGlvbnMubGVuZ3RoID4gMDtcbiAgICB0aGlzLmZpZWxkID0gZ2V0Q29sRmllbGQoY29sRGVmKTtcbiAgICB0aGlzLmhlYWRlclRvb2x0aXAgPSB0aGlzLmdldEhlYWRlclRvb2x0aXAoY29sRGVmKTtcbiAgICB0aGlzLmNvbnRleHQgPSB7XG4gICAgICBhcGk6IHtcbiAgICAgICAgZ3JpZDogcGFyYW1zLmFwaSxcbiAgICAgICAgY29sdW1uczogcGFyYW1zLmNvbHVtbkFwaVxuICAgICAgfSxcbiAgICAgIGNvbHVtbjogdGhpcy5jb2x1bW5cbiAgICB9O1xuICAgIGNvbnN0IHsgZ3JpZFF1ZXJ5LCBncmlkU2VydmljZSB9ID0gdGhpcy5wYXJhbXM7XG4gICAgdGhpcy5jdXN0b21UZW1wbGF0ZXMgPSBncmlkU2VydmljZS5nZXRDdXN0b21IZWFkZXIodGhpcy5maWVsZCk7XG4gICAgdGhpcy5maWx0ZXJBY3RpdmUkID0gZ3JpZFF1ZXJ5XG4gICAgICAuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnNldHRpbmdzLmZpbHRlclt0aGlzLmZpZWxkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoZmlsdGVyID0+IHtcbiAgICAgICAgICBjb25zdCBpc1Bpdm90Q29sdW1uTWF0Y2hGaWx0ZXIgPSBmaWx0ZXIgJiYgaXNBcnJheVZhbHVlc0VxdWFsKGZpbHRlci5waXZvdEtleXMsIGNvbERlZi5waXZvdEtleXMpO1xuXG4gICAgICAgICAgcmV0dXJuIHNpemUoZmlsdGVyKSA+IDAgJiYgaXNQaXZvdENvbHVtbk1hdGNoRmlsdGVyO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICBpZiAodGhpcy5wYXJhbXMuZW5hYmxlU29ydGluZykge1xuICAgICAgZnJvbUV2ZW50KHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKVxuICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc29ydGluZ09yZGVyOiBzdHJpbmdbXSA9IHRoaXMuY29sdW1uLmdldENvbERlZigpID8gdGhpcy5jb2x1bW4uZ2V0Q29sRGVmKCkuc29ydGluZ09yZGVyIDogbnVsbDtcbiAgICAgICAgICBsZXQgc29ydDtcbiAgICAgICAgICBjb25zdCBjdXJyZW50U29ydCA9IHRoaXMuY29sdW1uLmdldFNvcnQoKTtcbiAgICAgICAgICBjb25zdCBjb2xJZCA9IHRoaXMuY29sdW1uLmdldENvbElkKCk7XG5cbiAgICAgICAgICBpZiAoc29ydGluZ09yZGVyICYmIHNvcnRpbmdPcmRlci5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U29ydEluZGV4ID0gc29ydGluZ09yZGVyLmluZGV4T2YoY3VycmVudFNvcnQpO1xuICAgICAgICAgICAgbGV0IG5ld1NvcnRJbmRleDtcbiAgICAgICAgICAgIGlmIChjdXJyZW50U29ydEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICBuZXdTb3J0SW5kZXggPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbmV3U29ydEluZGV4ID0gY3VycmVudFNvcnRJbmRleCA9PT0gc29ydGluZ09yZGVyLmxlbmd0aCAtIDEgPyAwIDogY3VycmVudFNvcnRJbmRleCArIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzb3J0ID0gc29ydGluZ09yZGVyW25ld1NvcnRJbmRleF07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNvcnQgPSBjdXJyZW50U29ydCAhPT0gJ2FzYycgPyAnYXNjJyA6ICdkZXNjJztcbiAgICAgICAgICB9XG4gICAgICAgICAgZ3JpZFNlcnZpY2UuX2xvZ0V2ZW50KENvcmVFdmVudFR5cGVzLkdSSURfQ09MVU1OX0FDVElPTiwge1xuICAgICAgICAgICAgYWN0aW9uOiAnU29ydCcsXG4gICAgICAgICAgICBjb2x1bW46IGNvbElkXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZ3JpZFF1ZXJ5LmlzU2VydmVyU2lkZSAmJiBncmlkU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xuXG4gICAgICAgICAgaWYgKGdyaWRRdWVyeS5nZXRHcmlkT3B0aW9ucygpLnNvcnRCeVN0b3JlKSB7XG4gICAgICAgICAgICBncmlkU2VydmljZS5zZXRTb3J0QnlDb2x1bW4oY29sSWQsIHNvcnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcy5zZXRTb3J0KHNvcnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB0aGlzLnNvcnRpbmdJbmZvJCA9IGdyaWRRdWVyeVxuICAgICAgICAud2FpdEZvckdyaWQoKCkgPT4gZ3JpZFF1ZXJ5LmdyaWRSZWYuc29ydENoYW5nZWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN0YXJ0V2l0aCh7fSksXG4gICAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGFjdGl2ZTogdGhpcy5jb2x1bW4uaXNTb3J0aW5nKCksXG4gICAgICAgICAgICAgIGljb246ICF0aGlzLmNvbHVtbi5pc1NvcnRpbmcoKSB8fCB0aGlzLmNvbHVtbi5pc1NvcnRBc2NlbmRpbmcoKSA/ICdzb3J0LWFzY2VuZGluZycgOiAnc29ydC1kZXNjZW5kaW5nJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5GaWx0ZXJzKG9yaWdpbikge1xuICAgIHRoaXMuZmlsdGVyc01lbnVPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmNvbnRyb2xsZXJcbiAgICAgIC5vcGVuRmlsdGVyTWVudShvcmlnaW4uaG9zdC5uYXRpdmVFbGVtZW50LCB0aGlzLnBhcmFtcylcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZmlsdGVyc01lbnVPcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vcmVNZW51KG9yaWdpbikge1xuICAgIHRoaXMubW9yZU1lbnVPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmNvbnRyb2xsZXJcbiAgICAgIC5vcGVuTW9yZU1lbnUob3JpZ2luLmhvc3QubmF0aXZlRWxlbWVudCwgdGhpcy5wYXJhbXMsIHRoaXMuY3VzdG9tVGVtcGxhdGVzLm1vcmVNZW51KVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb3JlTWVudU9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHt9XG5cbiAgcHJpdmF0ZSBnZXRIZWFkZXJUb29sdGlwKGluaXRpYWxDb2xEZWY6IERhdG9HcmlkQ29sdW1uRGVmKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wYXJhbXMpIHtcbiAgICAgIGxldCBjb2xEZWYgPSBpbml0aWFsQ29sRGVmO1xuXG4gICAgICBpZiAoY29sRGVmLnNob3dSb3dHcm91cCkge1xuICAgICAgICBjb25zdCByb3dHcm91cENvbHVtbnMgPSB0aGlzLnBhcmFtcy5jb2x1bW5BcGkuZ2V0Um93R3JvdXBDb2x1bW5zKCk7XG4gICAgICAgIGNvbnN0IHJvd0dyb3VwQ29sdW1uID0gcm93R3JvdXBDb2x1bW5zICYmIHJvd0dyb3VwQ29sdW1ucy5maW5kKGNvbCA9PiBjb2wuZ2V0Q29sSWQoKSA9PT0gY29sRGVmLnNob3dSb3dHcm91cCk7XG4gICAgICAgIGNvbnN0IHJvd0dyb3VwQ29sRGVmID0gcm93R3JvdXBDb2x1bW4gJiYgKHJvd0dyb3VwQ29sdW1uLmdldENvbERlZigpIGFzIERhdG9HcmlkQ29sdW1uRGVmKTtcblxuICAgICAgICBjb2xEZWYgPSByb3dHcm91cENvbERlZiB8fCBjb2xEZWY7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb2xEZWYuY3VzdG9tSGVhZGVyVG9vbHRpcCB8fCBjb2xEZWYuaGVhZGVyTmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -30,6 +30,9 @@ var DatoGridMultiSelectColumnHeaderComponent = /** @class */ (function () {
|
|
|
30
30
|
_this.toggleMultiSelection(isSelectAll);
|
|
31
31
|
});
|
|
32
32
|
};
|
|
33
|
+
DatoGridMultiSelectColumnHeaderComponent.prototype.refresh = function (_params) {
|
|
34
|
+
return false;
|
|
35
|
+
};
|
|
33
36
|
DatoGridMultiSelectColumnHeaderComponent.prototype.subscribeRowsSelectionData = function () {
|
|
34
37
|
var _this = this;
|
|
35
38
|
this.gridQuery.gridReady$
|
|
@@ -73,4 +76,4 @@ var DatoGridMultiSelectColumnHeaderComponent = /** @class */ (function () {
|
|
|
73
76
|
return DatoGridMultiSelectColumnHeaderComponent;
|
|
74
77
|
}());
|
|
75
78
|
export { DatoGridMultiSelectColumnHeaderComponent };
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1tdWx0aS1zZWxlY3QtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1jb2x1bW4taGVhZGVyL2dyaWQtbXVsdGktc2VsZWN0LWhlYWRlci9ncmlkLW11bHRpLXNlbGVjdC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7QUFFSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU2pEO0lBTUUsa0RBQW9CLFdBQXdCLEVBQVUsU0FBb0IsRUFBVSxHQUFzQjtRQUF0RixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUwxRyxvQkFBZSxHQUFnQixJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUt1RCxDQUFDO0lBRTlHLHlEQUFNLEdBQU4sVUFBTyxNQUFxQjtRQUE1QixpQkFRQztRQVBDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFFbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFDLFdBQW9CO1lBQzFGLEtBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwwREFBTyxHQUFQLFVBQVEsT0FBc0I7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sNkVBQTBCLEdBQWxDO1FBQUEsaUJBWUM7UUFYQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVU7YUFDdEIsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLEVBQWpDLENBQWlDLENBQUMsRUFDbEQsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUNyQjthQUNBLFNBQVMsQ0FBQyxVQUFDLEVBQXVFO2dCQUFyRSxnREFBcUIsRUFBRSxnREFBcUI7WUFDeEQsS0FBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ2xGLEtBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDN0UsS0FBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx1RUFBb0IsR0FBcEIsVUFBcUIsV0FBb0I7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsNEJBQTRCLEVBQUU7WUFDekQsSUFBQSxvQ0FBc0UsRUFBcEUsZ0RBQXFCLEVBQUUsd0JBQTZDLENBQUM7WUFDN0UsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFDLElBQWEsSUFBSyxPQUFBLElBQUksQ0FBQyxFQUFFLEVBQVAsQ0FBTyxDQUFDLENBQUM7WUFDeEYsSUFBTSw0QkFBNEIsR0FBRyxJQUFJLFVBQUsscUJBQXFCLEVBQUssV0FBVyxFQUFFLENBQUM7WUFDdEYsSUFBSSxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxTQUFTLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQzNFO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRSxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSxDQUFDLENBQUM7YUFDbkc7U0FDRjtJQUNILENBQUM7SUFFRCw4REFBVyxHQUFYLGNBQXFCLENBQUM7O2dCQTdDVyxXQUFXO2dCQUFxQixTQUFTO2dCQUFlLGlCQUFpQjs7SUFOL0Ysd0NBQXdDO1FBTnBELFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxzQ0FBc0M7WUFDaEQsaUlBQXdEO1lBRXhELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztTQUNoRCxDQUFDO3lDQU9pQyxXQUFXLEVBQXFCLFNBQVMsRUFBZSxpQkFBaUI7T0FOL0Ysd0NBQXdDLENBb0RwRDtJQUFELCtDQUFDO0NBQUEsQUFwREQsSUFvREM7U0FwRFksd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IERhdG9yYW1hLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIEFwYWNoZSBMaWNlbnNlIDIuMCBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRvcmFtYS9jbGllbnQtY29yZS9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUhlYWRlckFuZ3VsYXJDb21wIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xuaW1wb3J0IHsgR3JpZEFwaSwgSUhlYWRlclBhcmFtcywgUm93Tm9kZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgR3JpZFF1ZXJ5IH0gZnJvbSAnLi4vLi4vZ3JpZC1zdG9yZS9ncmlkLnF1ZXJ5JztcbmltcG9ydCB7IHVuaXEgfSBmcm9tICcuLi8uLi8uLi91dGlscy9hcnJheSc7XG5pbXBvcnQgeyBzaXplIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29sbGVjdGlvbic7XG5pbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ25neC10YWtlLXVudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9ncmlkLXN0b3JlL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyB0YWtlLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRvR3JpZE9wdGlvbnMsIEdyaWRSb3dzU2VsZWN0aW9uRGF0YSB9IGZyb20gJy4uLy4uL2dyaWQvZ3JpZC12Mi50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdG8tZ3JpZC1tdWx0aS1zZWxlY3QtY29sdW1uLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLW11bHRpLXNlbGVjdC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLW11bHRpLXNlbGVjdC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0b0dyaWRNdWx0aVNlbGVjdENvbHVtbkhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgSUhlYWRlckFuZ3VsYXJDb21wIHtcbiAgY2hlY2tib3hDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSk7XG4gIGluZGV0ZXJtaW5hdGVseUNoZWNrZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgZ3JpZEFwaTogR3JpZEFwaTtcbiAgcHJpdmF0ZSBncmlkT3B0aW9uczogRGF0b0dyaWRPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGdyaWRRdWVyeTogR3JpZFF1ZXJ5LCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgYWdJbml0KHBhcmFtczogSUhlYWRlclBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZEFwaSA9IHBhcmFtcy5hcGk7XG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IHRoaXMuZ3JpZFF1ZXJ5LmdldEdyaWRPcHRpb25zKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVSb3dzU2VsZWN0aW9uRGF0YSgpO1xuXG4gICAgdGhpcy5jaGVja2JveENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoaXNTZWxlY3RBbGw6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMudG9nZ2xlTXVsdGlTZWxlY3Rpb24oaXNTZWxlY3RBbGwpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaChfcGFyYW1zOiBJSGVhZGVyUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVSb3dzU2VsZWN0aW9uRGF0YSgpIHtcbiAgICB0aGlzLmdyaWRRdWVyeS5ncmlkUmVhZHkkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuZ3JpZFF1ZXJ5LnJvd3NTZWxlY3Rpb25EYXRhJCksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IHNlbGVjdGVkUGFnZVJvd3NDb3VudCwgaXNBbGxQYWdlUm93c1NlbGVjdGVkIH06IEdyaWRSb3dzU2VsZWN0aW9uRGF0YSkgPT4ge1xuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVseUNoZWNrZWQgPSBzZWxlY3RlZFBhZ2VSb3dzQ291bnQgPiAwICYmICFpc0FsbFBhZ2VSb3dzU2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuY2hlY2tib3hDb250cm9sLnBhdGNoVmFsdWUoaXNBbGxQYWdlUm93c1NlbGVjdGVkLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlTXVsdGlTZWxlY3Rpb24oaXNTZWxlY3RBbGw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNlbGVjdEFsbEN1cnJlbnRQYWdlUm93cyhpc1NlbGVjdEFsbCk7XG5cbiAgICBpZiAoIWlzU2VsZWN0QWxsICYmIHRoaXMuZ3JpZFF1ZXJ5LmlzU2VydmVyU2VsZWN0QWxsUm93c0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IHsgZXhjbHVkZWRGcm9tU2VsZWN0QWxsLCB0b3RhbFJvd3MgfSA9IHRoaXMuZ3JpZFF1ZXJ5LnNlcnZlclNpZGVDb25maWc7XG4gICAgICBjb25zdCBwYWdlUm93c0lkcyA9IHRoaXMuZ3JpZFF1ZXJ5LmdldEN1cnJlbnRQYWdlUm93cygpLm1hcCgobm9kZTogUm93Tm9kZSkgPT4gbm9kZS5pZCk7XG4gICAgICBjb25zdCB1cGRhdGVkRXhjbHVkZWRGcm9tU2VsZWN0QWxsID0gdW5pcShbLi4uZXhjbHVkZWRGcm9tU2VsZWN0QWxsLCAuLi5wYWdlUm93c0lkc10pO1xuICAgICAgaWYgKHNpemUodXBkYXRlZEV4Y2x1ZGVkRnJvbVNlbGVjdEFsbCkgPT09IHRvdGFsUm93cykge1xuICAgICAgICB0aGlzLmdyaWRTZXJ2aWNlLnNldFNlcnZlclNpZGVQYWdpbmF0aW9uKHsgc2VsZWN0QWxsUm93c0VuYWJsZWQ6IGZhbHNlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5zZXRTZXJ2ZXJTaWRlUGFnaW5hdGlvbih7IGV4Y2x1ZGVkRnJvbVNlbGVjdEFsbDogdXBkYXRlZEV4Y2x1ZGVkRnJvbVNlbGVjdEFsbCB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHt9XG59XG4iXX0=
|