@acorex/components 3.0.32 → 3.0.36
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/acorex-components.metadata.json +1 -1
- package/bundles/acorex-components.umd.js +177 -25
- package/bundles/acorex-components.umd.js.map +1 -1
- package/bundles/acorex-components.umd.min.js +1 -1
- package/bundles/acorex-components.umd.min.js.map +1 -1
- package/esm2015/lib/query-builder/query-builder-group.component.js +14 -5
- package/esm2015/lib/query-builder/query-builder-rule.component.js +7 -2
- package/esm2015/lib/query-builder/query-builder.component.js +10 -5
- package/esm2015/lib/query-builder/query-builder.service.js +84 -4
- package/esm2015/lib/tab-page/tab-page.module.js +2 -3
- package/esm2015/lib/tree-view/tree-view.component.js +38 -15
- package/esm5/lib/query-builder/query-builder-group.component.js +15 -5
- package/esm5/lib/query-builder/query-builder-rule.component.js +7 -2
- package/esm5/lib/query-builder/query-builder.component.js +10 -5
- package/esm5/lib/query-builder/query-builder.service.js +113 -4
- package/esm5/lib/tab-page/tab-page.module.js +2 -3
- package/esm5/lib/tree-view/tree-view.component.js +38 -15
- package/fesm2015/acorex-components.js +148 -26
- package/fesm2015/acorex-components.js.map +1 -1
- package/fesm5/acorex-components.js +178 -26
- package/fesm5/acorex-components.js.map +1 -1
- package/lib/query-builder/query-builder-group.component.d.ts +1 -0
- package/lib/query-builder/query-builder-rule.component.d.ts +1 -0
- package/lib/query-builder/query-builder.component.d.ts +1 -0
- package/lib/query-builder/query-builder.service.d.ts +2 -1
- package/lib/tree-view/tree-view.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -28,7 +28,10 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
28
28
|
//seletedKeyFields set id of nodes and parents
|
|
29
29
|
//selectedFieldName set name of fields that set selectes
|
|
30
30
|
this.selectedFieldName = null;
|
|
31
|
-
|
|
31
|
+
// @Input()
|
|
32
|
+
// selectNodesRecursive: 'all' | 'parents' | 'childs' | 'none' = 'all'; //leaf
|
|
33
|
+
this.checkParents = true;
|
|
34
|
+
this.checkChilds = true;
|
|
32
35
|
this.seletedKeyFields = [];
|
|
33
36
|
this.keyField = 'id';
|
|
34
37
|
this.hasChildField = 'child';
|
|
@@ -156,7 +159,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
156
159
|
return node;
|
|
157
160
|
}
|
|
158
161
|
changeChildSelect(item, s) {
|
|
159
|
-
if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs') {
|
|
162
|
+
// if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs') {
|
|
163
|
+
if (this.checkChilds == true) {
|
|
160
164
|
item.select = s;
|
|
161
165
|
if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {
|
|
162
166
|
item[this.childField].forEach((elm) => {
|
|
@@ -189,7 +193,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
189
193
|
}
|
|
190
194
|
}
|
|
191
195
|
changeParentSelect(item) {
|
|
192
|
-
if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'parents') {
|
|
196
|
+
//if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'parents') {
|
|
197
|
+
if (this.checkParents) {
|
|
193
198
|
let allselect = true;
|
|
194
199
|
let alldeselect = true;
|
|
195
200
|
let oneselect = false;
|
|
@@ -305,9 +310,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
305
310
|
this.seletedKeyFields.forEach((n) => {
|
|
306
311
|
if (n.includes(el[this.keyField])) {
|
|
307
312
|
if (el[this.hasChildField] == true) {
|
|
308
|
-
|
|
313
|
+
if (this.checkParents == false && this.checkChilds == false) {
|
|
314
|
+
//select parent when check child and check parent is false TODO check this Action
|
|
315
|
+
this.selectItem(el);
|
|
316
|
+
}
|
|
309
317
|
this.open(el);
|
|
310
|
-
// }
|
|
311
318
|
}
|
|
312
319
|
else {
|
|
313
320
|
this.selectItem(el);
|
|
@@ -318,9 +325,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
318
325
|
}
|
|
319
326
|
else if (this.selectedFieldName != null) {
|
|
320
327
|
if (el[this.hasChildField] == true && el[this.selectedFieldName] == true) {
|
|
321
|
-
|
|
328
|
+
if (this.checkParents == false && this.checkChilds == false) {
|
|
329
|
+
//select parent when check child and check parent is false TODO check this Action
|
|
330
|
+
this.selectItem(el);
|
|
331
|
+
}
|
|
322
332
|
this.open(el);
|
|
323
|
-
// }
|
|
324
333
|
}
|
|
325
334
|
else if (el[this.selectedFieldName] == true) {
|
|
326
335
|
this.selectItem(el);
|
|
@@ -353,7 +362,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
353
362
|
if (this.selectionLevel == 'parents' && result[i][this.hasChildField] == false) {
|
|
354
363
|
result[i].disabledCheckBox = true;
|
|
355
364
|
}
|
|
356
|
-
if (this.selectionMode !== 'single' && (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs')) {
|
|
365
|
+
// if (this.selectionMode !== 'single' && (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs')) {
|
|
366
|
+
if (this.selectionMode !== 'single' && this.checkChilds == true) {
|
|
357
367
|
result[i].select = this.itemRow.select === (undefined || null) ? false : this.itemRow.select;
|
|
358
368
|
if (this.itemRow.select === true && this.selectionMode == 'multiple' && result[i][this.hasChildField] === false) {
|
|
359
369
|
this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== result[i][this.keyField]);
|
|
@@ -368,9 +378,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
368
378
|
this.seletedKeyFields.forEach((n) => {
|
|
369
379
|
if (n.includes(result[i][this.keyField])) {
|
|
370
380
|
if (result[i][this.hasChildField] == true) {
|
|
371
|
-
|
|
381
|
+
if (this.checkParents == false && this.checkChilds == false) {
|
|
382
|
+
//select parent when check child and check parent is false TODO check this Action
|
|
383
|
+
this.selectItem(result[i]);
|
|
384
|
+
}
|
|
372
385
|
this.open(result[i]);
|
|
373
|
-
// }
|
|
374
386
|
}
|
|
375
387
|
else {
|
|
376
388
|
this.selectItem(result[i]);
|
|
@@ -381,9 +393,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
381
393
|
}
|
|
382
394
|
else if (this.selectedFieldName != null) {
|
|
383
395
|
if (result[i][this.hasChildField] == true && result[i][this.selectedFieldName] == true) {
|
|
384
|
-
|
|
396
|
+
if (this.checkParents == false && this.checkChilds == false) {
|
|
397
|
+
//select parent when check child and check parent is false TODO check this Action
|
|
398
|
+
this.selectItem(result[i]);
|
|
399
|
+
}
|
|
385
400
|
this.open(result[i]);
|
|
386
|
-
// }
|
|
387
401
|
}
|
|
388
402
|
else if (result[i][this.selectedFieldName] == true) {
|
|
389
403
|
this.selectItem(result[i]);
|
|
@@ -548,6 +562,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
548
562
|
this.internalSelectItem(item, false);
|
|
549
563
|
}
|
|
550
564
|
}
|
|
565
|
+
unSelectItem(item) {
|
|
566
|
+
if (item['select'] == true) {
|
|
567
|
+
this.internalSelectItem(item, false);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
551
570
|
open(item) {
|
|
552
571
|
if (item['toggle'] !== true) {
|
|
553
572
|
this.toggleNode(item, true);
|
|
@@ -629,8 +648,12 @@ __decorate([
|
|
|
629
648
|
], AXTreeViewComponent.prototype, "selectedFieldName", void 0);
|
|
630
649
|
__decorate([
|
|
631
650
|
Input(),
|
|
632
|
-
__metadata("design:type",
|
|
633
|
-
], AXTreeViewComponent.prototype, "
|
|
651
|
+
__metadata("design:type", Boolean)
|
|
652
|
+
], AXTreeViewComponent.prototype, "checkParents", void 0);
|
|
653
|
+
__decorate([
|
|
654
|
+
Input(),
|
|
655
|
+
__metadata("design:type", Boolean)
|
|
656
|
+
], AXTreeViewComponent.prototype, "checkChilds", void 0);
|
|
634
657
|
__decorate([
|
|
635
658
|
Input(),
|
|
636
659
|
__metadata("design:type", Array)
|
|
@@ -704,4 +727,4 @@ AXTreeViewComponent = __decorate([
|
|
|
704
727
|
__metadata("design:paramtypes", [ElementRef])
|
|
705
728
|
], AXTreeViewComponent);
|
|
706
729
|
export { AXTreeViewComponent };
|
|
707
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFlLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJeEQsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFFRSxhQUFRLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUUxRCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0NBUTlCO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtDQUlwQztBQUVELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUE0QjtDQUVoRjtBQUVELE1BQU0sT0FBTyxzQ0FBdUMsU0FBUSxZQUE0QjtDQUV2RjtBQUVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUF1QjtDQUsvRDtBQU9ELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW9CLFNBQVEsZUFBZTtJQXNGdEQsWUFBb0IsR0FBZTtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQVk7UUE5RW5DLGtCQUFhLEdBQTBCLFFBQVEsQ0FBQztRQUdoRCxtQkFBYyxHQUFnQyxLQUFLLENBQUM7UUFFcEQsd0VBQXdFO1FBQ3hFLDhDQUE4QztRQUM5Qyx3REFBd0Q7UUFFeEQsc0JBQWlCLEdBQVcs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R3BJO0lBREMsTUFBTSxFQUFFOzhCQUNNLFlBQVk7MERBQWdDO0FBRzNEO0lBREMsTUFBTSxFQUFFOzhCQUNJLFlBQVk7d0RBQWdFO0FBR3pGO0lBREMsTUFBTSxFQUFFOzhCQUNNLFlBQVk7MERBQWdDO0FBRzNEO0lBREMsTUFBTSxFQUFFOzhCQUNHLFlBQVk7dURBQWdDO0FBR3hEO0lBREMsTUFBTSxFQUFFOzhCQUNJLFlBQVk7d0RBQTBFO0FBR25HO0lBREMsTUFBTSxFQUFFOzhCQUNlLFlBQVk7bUVBQWdGO0FBbUJwSDtJQURDLEtBQUssRUFBRTs7NkRBQzhFO0FBcEYzRSxtQkFBbUI7SUFML0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGNBQWM7UUFDeEIsdWhGQUF5QztRQUN6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtLQUN0QyxDQUFDO3FDQXVGeUIsVUFBVTtHQXRGeEIsbUJBQW1CLENBMHBCL0I7U0ExcEJZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBDb250ZW50Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRGF0YVNvdXJjZUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGEtc291cmNlL2RhdGFzb3VyY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhEYXRhRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudCwgQVhDb250ZXh0TWVudVByb21pc2VGdW5jdGlvbiwgQVhDb250ZXh0TWVudUZ1bmN0aW9uIH0gZnJvbSAnLi4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3Tm9kZSB7XHJcbiAgY2hpbGRyZW46IEFYVHJlZVZpZXdOb2RlW107XHJcbiAgaXRlbURhdGE6IEFYVHJlZVZpZXdJdGVtRGF0YSA9IG5ldyBBWFRyZWVWaWV3SXRlbURhdGEoKTtcclxuICBwYXJlbnQ6IEFYVHJlZVZpZXdOb2RlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1EYXRhIHtcclxuICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICBpbmRldGVybWluYXRlOiBib29sZWFuO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIG9wZW46IGJvb2xlYW47XHJcbiAgaGFzQ2hpbGQ6IGJvb2xlYW47XHJcbiAgaXRlbTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50IHtcclxuICBzb3VyY2U6IEFYVHJlZVZpZXdOb2RlO1xyXG4gIHRhcmdldDogQVhUcmVlVmlld05vZGU7XHJcbiAgcmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld3NlbGVjdGlvbkNoYW5nZWRFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxBWFRyZWVWaWV3Tm9kZT4ge1xyXG4gIGNvbXBvbmVudDogQVhUcmVlVmlld0NvbXBvbmVudDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdzZWxldGVkS2V5RmllbGRzQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYVHJlZVZpZXdOb2RlPiB7XHJcbiAgY29tcG9uZW50OiBBWFRyZWVWaWV3Q29tcG9uZW50O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1DbGljayBleHRlbmRzIEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+IHtcclxuICBjb21wb25lbnQ6IEFYVHJlZVZpZXdDb21wb25lbnQ7XHJcbiAgaXRlbTogYW55O1xyXG4gIGZsYWc6IGJvb2xlYW47XHJcbiAgY2FuY2VsPzogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC10cmVlLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgbm9kZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAQ29udGVudENoaWxkKEFYRGF0YVNvdXJjZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIF9jb250ZW50RGF0YVNvdXJjZTogQVhEYXRhU291cmNlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGlvbk1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdzaW5nbGUnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGlvbkxldmVsOiAnYWxsJyB8ICdub2RlcycgfCAncGFyZW50cycgPSAnYWxsJztcclxuXHJcbiAgLy8gdXNlciBjYW4gc2V0IG9ubHkgb25lIG9mIHRoaXMgL3NlbGVjdGVkRmllbGROYW1lIG9yIC9zZWxldGVkS2V5RmllbGRzXHJcbiAgLy9zZWxldGVkS2V5RmllbGRzIHNldCBpZCBvZiBub2RlcyBhbmQgcGFyZW50c1xyXG4gIC8vc2VsZWN0ZWRGaWVsZE5hbWUgc2V0IG5hbWUgb2YgZmllbGRzIHRoYXQgc2V0IHNlbGVjdGVzXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZEZpZWxkTmFtZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3ROb2Rlc1JlY3Vyc2l2ZTogJ2FsbCcgfCAncGFyZW50cycgfCAnY2hpbGRzJyB8ICdub25lJyA9ICdhbGwnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGV0ZWRLZXlGaWVsZHM6IGFueVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAga2V5RmllbGQ6IHN0cmluZyA9ICdpZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGFzQ2hpbGRGaWVsZDogc3RyaW5nID0gJ2NoaWxkJztcclxuXHJcbiAgQElucHV0KClcclxuICBib3JkZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhenlMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0RyYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiAnbWQnIHwgJ3NtJyA9ICdtZCc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFRyZWVWaWV3c2VsZWN0aW9uQ2hhbmdlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld3NlbGVjdGlvbkNoYW5nZWRFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZXRlZEtleUZpZWxkc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFRyZWVWaWV3c2VsZXRlZEtleUZpZWxkc0NoYW5nZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdzZWxlY3Rpb25DaGFuZ2VkRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbU9wZW5pbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1DbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdJdGVtQ2xpY2s+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbUNsb3Npbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbURyYWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbU1vdmVkOiBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNvbnRleHRNZW51SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PigpO1xyXG5cclxuICBzaG93U2VsZWN0Qm94OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxpc3Q6IGFueVtdID0gW107XHJcbiAgaXRlbVJvdzogYW55O1xyXG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWRQYXJlbnRzOiBhbnlbXSA9IFtdO1xyXG4gIGxvYWRBbGxDaGlsZHJlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxpc3RMb2FkOiBhbnlbXSA9IFtdO1xyXG4gIGl0ZW1Ecm9wOiBhbnk7XHJcbiAgaXRlbURyYWc6IGFueTtcclxuICB2YWxpZERyb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGxvY2tlZERyYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGlsZEZpZWxkOiBzdHJpbmcgPSAnY2hpbGRlcmVuJztcclxuICBzaG93Q29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NlbGVjdGVkSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvY2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBjb250ZXh0TWVudUl0ZW1zOiBBWE1lbnVJdGVtW10gfCBBWENvbnRleHRNZW51UHJvbWlzZUZ1bmN0aW9uIHwgQVhDb250ZXh0TWVudUZ1bmN0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9uQ29udGV4dE1lbnVJdGVtKGU6IEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudCkge1xyXG4gICAgdGhpcy5vbkNvbnRleHRNZW51SXRlbUNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5saXN0ID0gW107XHJcbiAgICB0aGlzLl9jb250ZW50RGF0YVNvdXJjZS5mZXRjaChudWxsKTtcclxuICB9XHJcblxyXG4gIGludGVybmFsU2VsZWN0SXRlbShpdGVtLCB1c2VyQ2hhbmdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UgfHwgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICBpdGVtLnNlbGVjdCA9ICFpdGVtLnNlbGVjdDtcclxuICAgICAgaWYgKGl0ZW0ucGFyZW50Tm9kZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5zZWxlY3QgPT09IHRydWUpIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGUpID0+IHtcclxuICAgICAgICAgICAgZS5zZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLnNlbGVjdCA9ICFpdGVtLnNlbGVjdDtcclxuXHJcbiAgICAgIGlmIChpdGVtLnBhcmVudE5vZGUgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZFNlbGVjdChpdGVtLCBpdGVtLnNlbGVjdCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpdGVtLnNlbGVjdCA9PSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICBlLnNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodXNlckNoYW5nZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLm1ha2VOb2RlKGl0ZW0pLFxyXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYWtlTm9kZShpdGVtLCBhZGRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IG5vZGU6IEFYVHJlZVZpZXdOb2RlID0gbmV3IEFYVHJlZVZpZXdOb2RlKCk7XHJcbiAgICBpZiAoYWRkQ2hpbGRyZW4pIHtcclxuICAgICAgbm9kZS5jaGlsZHJlbiA9IGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSA9PT0gdW5kZWZpbmVkID8gW10gOiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0/Lm1hcCgobSkgPT4gdGhpcy5tYWtlTm9kZShtKSk7XHJcbiAgICB9XHJcbiAgICBub2RlLml0ZW1EYXRhLmRpc2FibGVkID0gaXRlbS5kaXNhYmxlZCA9PT0gdHJ1ZSA/IGl0ZW0uZGlzYWJsZWQgOiBmYWxzZTtcclxuICAgIG5vZGUuaXRlbURhdGEub3BlbiA9IGl0ZW0ub3BlbiA9PT0gdHJ1ZSA/IGl0ZW0ub3BlbiA6IGZhbHNlO1xyXG4gICAgbm9kZS5pdGVtRGF0YS5rZXkgPSBpdGVtW3RoaXMua2V5RmllbGRdO1xyXG5cclxuICAgIGNvbnN0IGMgPSBbXTtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAodmFyIGsgaW4gaXRlbSkge1xyXG4gICAgICBpID0gaSArIDE7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBrICE9ICdzZWxlY3QnICYmXHJcbiAgICAgICAgayAhPSAnaGFzQ2hpbGQnICYmXHJcbiAgICAgICAgayAhPSAnbG9hZGluZycgJiZcclxuICAgICAgICBrICE9ICdyZXF1ZXN0SWQnICYmXHJcbiAgICAgICAgayAhPSAnZGlzYWJsZWQnICYmXHJcbiAgICAgICAgayAhPSAnb3BlbicgJiZcclxuICAgICAgICBrICE9ICdwYXJlbnROb2RlJyAmJlxyXG4gICAgICAgIGsgIT0gJ3RvZ2dsZScgJiZcclxuICAgICAgICBrICE9ICdsb2FkZWQnICYmXHJcbiAgICAgICAgayAhPSAnaW5kZXRlcm1pbmF0ZScgJiZcclxuICAgICAgICBrICE9IHRoaXMuY2hpbGRGaWVsZFxyXG4gICAgICApIHtcclxuICAgICAgICAvL2MucHVzaCh7IGs6IGl0ZW1ba10gfSk7XHJcbiAgICAgICAgY1trXSA9IGl0ZW1ba107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBub2RlLml0ZW1EYXRhLml0ZW0gPSBjOyAvL1RPIERPXHJcbiAgICBub2RlLml0ZW1EYXRhLnNlbGVjdGVkID0gaXRlbS5zZWxlY3QgPT09IHRydWUgPyBpdGVtLnNlbGVjdCA6IGZhbHNlO1xyXG4gICAgbm9kZS5pdGVtRGF0YS5pbmRldGVybWluYXRlID0gaXRlbS5zZWxlY3QgPT09IG51bGwgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBub2RlLml0ZW1EYXRhLmhhc0NoaWxkID0gaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdO1xyXG4gICAgbm9kZS5wYXJlbnQgPSBpdGVtLnBhcmVudE5vZGUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB0aGlzLm1ha2VOb2RlKGl0ZW0ucGFyZW50Tm9kZSwgZmFsc2UpO1xyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZUNoaWxkU2VsZWN0KGl0ZW0sIHMpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdhbGwnIHx8IHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ2NoaWxkcycpIHtcclxuICAgICAgaXRlbS5zZWxlY3QgPSBzO1xyXG4gICAgICBpZiAoaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlICYmIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXS5mb3JFYWNoKChlbG0pID0+IHtcclxuICAgICAgICAgIGlmIChlbG1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBlbG0uc2VsZWN0ID0gcztcclxuXHJcbiAgICAgICAgICAgIGlmIChzID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gZWxtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5wdXNoKGVsbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHMgPT09IGZhbHNlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gZWxtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZFNlbGVjdChlbG0sIHMpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWxtLnNlbGVjdCA9IHM7XHJcbiAgICAgICAgICAgIGlmIChzID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBlbG1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGVsbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHMgPT09IGZhbHNlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBlbG1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZVBhcmVudFNlbGVjdChpdGVtKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3ROb2Rlc1JlY3Vyc2l2ZSA9PSAnYWxsJyB8fCB0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdwYXJlbnRzJykge1xyXG4gICAgICBsZXQgYWxsc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgbGV0IGFsbGRlc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgbGV0IG9uZXNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICBsZXQgaXNpbmRldGVybWluYXRlID0gZmFsc2U7XHJcblxyXG4gICAgICBpZiAoaXRlbVt0aGlzLmNoaWxkRmllbGRdKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW1bdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgIGlmIChpdGVtW3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLnNlbGVjdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBhbGxkZXNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBvbmVzZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW1bdGhpcy5jaGlsZEZpZWxkXVtpbmRleF0uc2VsZWN0ID09PSBmYWxzZSB8fCBpdGVtW3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLnNlbGVjdCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGFsbHNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW1bdGhpcy5jaGlsZEZpZWxkXVtpbmRleF0uc2VsZWN0ID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlzaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGFsbGRlc2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIG9uZXNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgIGFsbHNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG9uZXNlbGVjdCB8fCAoaXNpbmRldGVybWluYXRlICYmICFhbGxzZWxlY3QpKSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRzID0gdGhpcy5zZWxlY3RlZFBhcmVudHMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBpdGVtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbGxzZWxlY3QgPT09IHRydWUpIHtcclxuICAgICAgICBpdGVtLnNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRzLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFsbGRlc2VsZWN0ID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5wYXJlbnROb2RlICYmIGl0ZW0ucGFyZW50Tm9kZVt0aGlzLmNoaWxkRmllbGRdICYmIGl0ZW0ucGFyZW50Tm9kZVt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVBhcmVudFNlbGVjdChpdGVtLnBhcmVudE5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25JdGVtQ2xpY2suc3Vic2NyaWJlKChkYXRhOiBBWFRyZWVWaWV3SXRlbUNsaWNrKSA9PiB7XHJcbiAgICAgIGlmICghZGF0YS5jYW5jZWwpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU5vZGUoZGF0YS5pdGVtLCBkYXRhLmZsYWcpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGl0ZW1kYkNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT0gJ3NpbmdsZScpIHtcclxuICAgICAgdGhpcy5oYW5kbGVPbk5vZGVDbGljayhlLCBpdGVtLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZU9uTm9kZUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW0sIGZsYWcgPSBmYWxzZSkge1xyXG4gICAgLy8gIHRoaXMuaW50ZXJuYWxTZWxlY3RJdGVtKGl0ZW0pO1xyXG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBodG1sRXZlbnQ6IGUsXHJcbiAgICAgIGl0ZW0sXHJcbiAgICAgIGZsYWdcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTm9kZShpdGVtLCBmbGFnID0gZmFsc2UpIHtcclxuICAgIC8vaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSBmYWxzZSAmJlxyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScgJiYgIWZsYWcpIHtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJyAmJiBpdGVtLmhhc0NoaWxkID09IHRydWUpIHtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmludGVybmFsU2VsZWN0SXRlbShpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS50b2dnbGUgPSAhaXRlbS50b2dnbGU7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJyAmJiBpdGVtLmhhc0NoaWxkID09IHRydWUpIHtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pbnRlcm5hbFNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlICYmIGl0ZW0ubG9hZGVkICE9PSB0cnVlICYmIHRoaXMubGF6eUxvYWRpbmcpIHtcclxuICAgICAgICB0aGlzLml0ZW1Sb3cgPSBpdGVtO1xyXG4gICAgICAgIGNvbnN0IHVpZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMCk7XHJcbiAgICAgICAgaXRlbS5yZXF1ZXN0SWQgPSB1aWQ7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMuX2NvbnRlbnREYXRhU291cmNlLmZldGNoKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRpbmcodGhpcy5pdGVtUm93KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS50b2dnbGUgJiYgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5vcGVuID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm9uSXRlbU9wZW5pbmcuZW1pdCh0aGlzLm1ha2VOb2RlKGl0ZW0pKTtcclxuICAgICAgfSBlbHNlIGlmICghaXRlbS50b2dnbGUgJiYgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vbkl0ZW1DbG9zaW5nLmVtaXQodGhpcy5tYWtlTm9kZShpdGVtKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbnRlbnREYXRhU291cmNlLmZldGNoKG51bGwpO1xyXG4gICAgdGhpcy5fY29udGVudERhdGFTb3VyY2Uub25EYXRhUmVjZWl2ZWQuc3Vic2NyaWJlKChfZGF0YSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuaGlkZUxvYWRpbmcobnVsbCk7XHJcbiAgICAgICAgdGhpcy5saXN0ID0gX2RhdGEuZGF0YS5yZXN1bHQ7XHJcblxyXG4gICAgICAgIHRoaXMubGlzdC5mb3JFYWNoKChlbCkgPT4ge1xyXG4gICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgZWwuc2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJyAmJiBlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUpIHtcclxuICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ3BhcmVudHMnICYmIGVsW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZXRlZEtleUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZXRlZEtleUZpZWxkcy5mb3JFYWNoKChuOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAobi5pbmNsdWRlcyhlbFt0aGlzLmtleUZpZWxkXSkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgLy8gIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm9wZW4oZWwpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGVsKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkSXRlbSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEZpZWxkTmFtZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmIChlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUgJiYgZWxbdGhpcy5zZWxlY3RlZEZpZWxkTmFtZV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIC8vIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vcGVuKGVsKTtcclxuICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxbdGhpcy5zZWxlY3RlZEZpZWxkTmFtZV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShlbCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkSXRlbSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLml0ZW1Sb3cgPSB0aGlzLmxpc3RMb2FkLmZpbHRlcigoYykgPT4gYy5yZXF1ZXN0SWQgPT09IF9kYXRhLmRhdGEucmVxdWVzdElkKVswXTtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkID0gdGhpcy5saXN0TG9hZC5maWx0ZXIoKGMpID0+IGMucmVxdWVzdElkICE9PSBfZGF0YS5kYXRhLnJlcXVlc3RJZCk7XHJcbiAgICAgICAgdGhpcy5pdGVtUm93LmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbVJvdyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVMb2FkaW5nKHRoaXMuaXRlbVJvdyk7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBfZGF0YS5kYXRhLnJlc3VsdDtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0gJiYgdGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKChlbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF1bdGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoXSA9IGVsO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXRlbVJvd1t0aGlzLmNoaWxkRmllbGRdID0gcmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycgJiYgcmVzdWx0W2ldW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ldLmRpc2FibGVkQ2hlY2tCb3ggPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ3BhcmVudHMnICYmIHJlc3VsdFtpXVt0aGlzLmhhc0NoaWxkRmllbGRdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbaV0uZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnICYmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdhbGwnIHx8IHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ2NoaWxkcycpKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbaV0uc2VsZWN0ID0gdGhpcy5pdGVtUm93LnNlbGVjdCA9PT0gKHVuZGVmaW5lZCB8fCBudWxsKSA/IGZhbHNlIDogdGhpcy5pdGVtUm93LnNlbGVjdDtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtUm93LnNlbGVjdCA9PT0gdHJ1ZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT0gJ211bHRpcGxlJyAmJiByZXN1bHRbaV1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gcmVzdWx0W2ldW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2gocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ldLnNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXN1bHRbaV0ucGFyZW50Tm9kZSA9IHRoaXMuaXRlbVJvdztcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZXRlZEtleUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGV0ZWRLZXlGaWVsZHMuZm9yRWFjaCgobjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChuLmluY2x1ZGVzKHJlc3VsdFtpXVt0aGlzLmtleUZpZWxkXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0W2ldW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbihyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0ocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZEl0ZW0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRmllbGROYW1lICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHRbaV1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PSB0cnVlICYmIHJlc3VsdFtpXVt0aGlzLnNlbGVjdGVkRmllbGROYW1lXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub3BlbihyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdFtpXVt0aGlzLnNlbGVjdGVkRmllbGROYW1lXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRJdGVtID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5pdGVtUm93LmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5pc1NlbGVjdGVkSXRlbSA9PSB0cnVlICYmICF0aGlzLmxvY2VkKSB7XHJcbiAgICAgICAgdGhpcy5sb2NlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZWxldGVkS2V5RmllbGRzQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgIC8vIHZhbHVlOiB0aGlzLm1ha2VOb2RlKGl0ZW0pLFxyXG4gICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLnNob3dTZWxlY3RCb3ggPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93Q29udGV4dE1lbnUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gb25JdGVtQ2xpY2soZSwgdikge1xyXG5cclxuICAvLyB9XHJcblxyXG4gIG9uRHJhZ1N0YXJ0KGU6IEV2ZW50LCB2KSB7XHJcbiAgICBpZiAoIXRoaXMubG9ja2VkRHJhZykge1xyXG4gICAgICB0aGlzLml0ZW1EcmFnID0gdjtcclxuICAgICAgdGhpcy5vbkl0ZW1EcmFnLmVtaXQodik7XHJcbiAgICB9XHJcbiAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnRW5kKGUsIHYpIHtcclxuICAgIGlmICghdGhpcy5sb2NrZWREcmFnKSB7XHJcbiAgICAgIHRoaXMuaXRlbURyb3AgPSB2O1xyXG4gICAgfVxyXG4gICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGRyb3AoZSkge1xyXG4gICAgLy8gIHRoaXMub25JdGVtRHJvcC5lbWl0KHRoaXMuaXRlbURyb3ApO1xyXG4gICAgaWYgKCF0aGlzLmxvY2tlZERyYWcpIHtcclxuICAgICAgdGhpcy52YWxpZERyb3AgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNhbWVDaGlsZGUodGhpcy5pdGVtRHJhZywgdGhpcy5pdGVtRHJvcCk7XHJcbiAgICAgIGlmICh0aGlzLnZhbGlkRHJvcCAmJiB0aGlzLml0ZW1EcmFnW3RoaXMua2V5RmllbGRdICE9PSB0aGlzLml0ZW1Ecm9wW3RoaXMua2V5RmllbGRdICYmIHRoaXMuaXRlbURyYWcucGFyZW50Tm9kZSAhPT0gdGhpcy5pdGVtRHJvcCkge1xyXG4gICAgICAgIGNvbnN0IG1vdmVkRXZlbnQ6IEFYVHJlZVZpZXdJdGVtTW92ZWRFdmVudCA9IG5ldyBBWFRyZWVWaWV3SXRlbU1vdmVkRXZlbnQoKTtcclxuICAgICAgICBtb3ZlZEV2ZW50LnNvdXJjZSA9IHRoaXMubWFrZU5vZGUodGhpcy5pdGVtRHJhZyk7XHJcbiAgICAgICAgbW92ZWRFdmVudC50YXJnZXQgPSB0aGlzLm1ha2VOb2RlKHRoaXMuaXRlbURyb3ApO1xyXG4gICAgICAgIHRoaXMubG9ja2VkRHJhZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGluZyh0aGlzLml0ZW1EcmFnKTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkaW5nKHRoaXMuaXRlbURyb3ApO1xyXG4gICAgICAgIG1vdmVkRXZlbnQucmVzb2x2ZSA9ICh2YWx1ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oaWRlTG9hZGluZyh0aGlzLml0ZW1EcmFnKTtcclxuICAgICAgICAgIHRoaXMuaGlkZUxvYWRpbmcodGhpcy5pdGVtRHJvcCk7XHJcbiAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnRHJvcEl0ZW0odGhpcy5pdGVtRHJhZywgdGhpcy5pdGVtRHJvcCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2tlZERyYWcgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25JdGVtTW92ZWQuZW1pdChtb3ZlZEV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzYW1lQ2hpbGRlKHBhcmVudCwgY2hpbGQpIHtcclxuICAgIGlmIChwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXSAmJiBwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBpZiAocGFyZW50W3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdW3RoaXMua2V5RmllbGRdID09IGNoaWxkW3RoaXMua2V5RmllbGRdKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkRHJvcCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGFyZW50W3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdW3RoaXMuY2hpbGRGaWVsZF0gJiYgcGFyZW50W3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zYW1lQ2hpbGRlKHBhcmVudFt0aGlzLmNoaWxkRmllbGRdW2luZGV4XSwgY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChwYXJlbnRbdGhpcy5rZXlGaWVsZF0gPT0gY2hpbGRbdGhpcy5rZXlGaWVsZF0pIHtcclxuICAgICAgdGhpcy52YWxpZERyb3AgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyYWdEcm9wSXRlbShpdGVtQ2hpbGQsIGl0ZW1QYXJlbnQpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycpIHtcclxuICAgICAgaXRlbVBhcmVudC5kaXNhYmxlZENoZWNrQm94ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXRlbUNoaWxkLnBhcmVudE5vZGUpIHtcclxuICAgICAgaXRlbUNoaWxkLnBhcmVudE5vZGVbdGhpcy5jaGlsZEZpZWxkXSA9IGl0ZW1DaGlsZC5wYXJlbnROb2RlW3RoaXMuY2hpbGRGaWVsZF0uZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBpdGVtQ2hpbGRbdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5saXN0ID0gdGhpcy5saXN0LmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gaXRlbUNoaWxkW3RoaXMua2V5RmllbGRdKTtcclxuICAgIH1cclxuICAgIGl0ZW1DaGlsZC5wYXJlbnROb2RlID0gaXRlbVBhcmVudDtcclxuICAgIGlmIChpdGVtUGFyZW50W3RoaXMuY2hpbGRGaWVsZF0gJiYgaXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aCA+IDApIHtcclxuICAgICAgaXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdW2l0ZW1QYXJlbnRbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGhdID0gaXRlbUNoaWxkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdID0gW107XHJcbiAgICAgIGl0ZW1QYXJlbnRbdGhpcy5jaGlsZEZpZWxkXVswXSA9IGl0ZW1DaGlsZDtcclxuICAgICAgaWYgKGl0ZW1QYXJlbnRbdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlTm9kZShpdGVtUGFyZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpdGVtUGFyZW50LnRvZ2dsZSA9ICFpdGVtUGFyZW50LnRvZ2dsZTtcclxuICAgICAgICBpdGVtUGFyZW50LmxvYWRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaXRlbVBhcmVudFt0aGlzLmhhc0NoaWxkRmllbGRdID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtQ2hpbGQucGFyZW50Tm9kZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlUGFyZW50U2VsZWN0KGl0ZW1DaGlsZC5wYXJlbnROb2RlKTtcclxuICAgIH1cclxuICAgIHRoaXMubG9ja2VkRHJhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaXN0Q2hhbmdlKGZpZWxkLCB2YWx1ZSkge1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMubGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgdGhpcy5jaGFuZ2VDaGlsZWQodGhpcy5saXN0W2luZGV4XSwgZmllbGQsIHZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMubG9hZEFsbENoaWxkcmVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZUNoaWxlZChpdGVtLCBmaWVsZCwgdmFsdWUpIHtcclxuICAgIGlmIChmaWVsZCA9PT0gJ3RvZ2dsZScgJiYgKGl0ZW0ubG9hZGVkID09PSBmYWxzZSB8fCBpdGVtLmxvYWRlZCA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICBpZiAodGhpcy5sb2FkQWxsQ2hpbGRyZW4gPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU5vZGUoaXRlbSk7XHJcbiAgICAgICAgaXRlbVtmaWVsZF0gPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbVtmaWVsZF0gPSB2YWx1ZTtcclxuICAgICAgaWYgKGZpZWxkID09PSAnc2VsZWN0JyAmJiBpdGVtW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT09IGZhbHNlICYmIHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChmaWVsZCA9PT0gJ3NlbGVjdCcpIHtcclxuICAgICAgaXRlbS5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlICYmIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICBpdGVtW3RoaXMuY2hpbGRGaWVsZF0uZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlQ2hpbGVkKGVsZW1lbnQsIGZpZWxkLCB2YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93TG9hZGluZyhpdGVtKTogdm9pZCB7XHJcbiAgICBpdGVtLmxvYWRpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlTG9hZGluZyhpdGVtKTogdm9pZCB7XHJcbiAgICBpZiAoaXRlbSAhPSBudWxsKSB7XHJcbiAgICAgIGl0ZW0ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5BbGwobG9hZEFsbDogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAvLyBpZiAobG9hZEFsbCkge1xyXG4gICAgLy8gdGhpcy5sb2FkQWxsQ2hpbGRyZW4gPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5saXN0Q2hhbmdlKCd0b2dnbGUnLCB0cnVlKTtcclxuICAgIC8vfSBlbHNlIHtcclxuICAgIHRoaXMubGlzdENoYW5nZSgndG9nZ2xlJywgdHJ1ZSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0SXRlbShpdGVtKSB7XHJcbiAgICBpZiAoaXRlbVsnc2VsZWN0J10gIT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmludGVybmFsU2VsZWN0SXRlbShpdGVtLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbVsndG9nZ2xlJ10gIT09IHRydWUpIHtcclxuICAgICAgdGhpcy50b2dnbGVOb2RlKGl0ZW0sIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNjcm9sSW50b1ZpZXcoaXRlbSkge1xyXG4gICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLWlkPScke2l0ZW1bdGhpcy5rZXlGaWVsZF19J11gKTtcclxuICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUFsbCgpIHtcclxuICAgIHRoaXMubGlzdENoYW5nZSgndG9nZ2xlJywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEFsbCgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMubGlzdENoYW5nZSgnc2VsZWN0JywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdW5TZWxlY3RBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLmxpc3RDaGFuZ2UoJ3NlbGVjdCcsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTm9kZXMoKTogQVhUcmVlVmlld05vZGVbXSB7XHJcbiAgICBjb25zdCBzZWxlY3RJdGVtc05vZGUgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIHNlbGVjdEl0ZW1zTm9kZS5wdXNoKHRoaXMubWFrZU5vZGUoZSkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gc2VsZWN0SXRlbXNOb2RlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkUGFyZW50cygpOiBBWFRyZWVWaWV3Tm9kZVtdIHtcclxuICAgIGNvbnN0IHNlbGVjdEl0ZW1zUGFyZW50ID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIHNlbGVjdEl0ZW1zUGFyZW50LnB1c2godGhpcy5tYWtlTm9kZShlKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzZWxlY3RJdGVtc1BhcmVudDtcclxuICB9XHJcblxyXG4gIGdldFBhcmVudHNJZChpdGVtKSB7XHJcbiAgICBsZXQga2V5RmllbGRzID0gW107XHJcbiAgICBrZXlGaWVsZHMucHVzaChpdGVtW3RoaXMua2V5RmllbGRdKTtcclxuICAgIGlmIChpdGVtLnBhcmVudE5vZGUpIHtcclxuICAgICAga2V5RmllbGRzLnB1c2goLi4udGhpcy5nZXRQYXJlbnRzSWQoaXRlbS5wYXJlbnROb2RlKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ga2V5RmllbGRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkS2V5RmllbGRzKCkge1xyXG4gICAgbGV0IGtleUZpZWxkcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGVsbSkgPT4ge1xyXG4gICAgICB2YXIgSWRzID0gdGhpcy5nZXRQYXJlbnRzSWQoZWxtKTtcclxuICAgICAgaWYgKElkcykge1xyXG4gICAgICAgIGtleUZpZWxkcy5wdXNoKElkcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGtleUZpZWxkcztcclxuICB9XHJcbn1cclxuIl19
|
|
730
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFlLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJeEQsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFFRSxhQUFRLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUUxRCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0NBUTlCO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtDQUlwQztBQUVELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUE0QjtDQUVoRjtBQUVELE1BQU0sT0FBTyxzQ0FBdUMsU0FBUSxZQUE0QjtDQUV2RjtBQUVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUF1QjtDQUsvRDtBQU9ELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW9CLFNBQVEsZUFBZTtJQTRGdEQsWUFBb0IsR0FBZTtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFwRm5DLGtCQUFhLEdBQTBCLFFBQVEsQ0FBQztRQUdoRCxtQkFBYyxHQUFnQyxLQUFLLENBQUM7UUFFcEQsd0VBQXdFO1FBQ3hFLDhDQUE4QztRQUM5Qyx3REFBd0Q7UUFFeEQsc0JBQWlCLEdBQVcs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QUUsY0FBYztRQUN4Qix1aEZBQXlDO1FBQ3pDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO0tBQ3RDLENBQUM7cUNBNkZ5QixVQUFVO0dBNUZ4QixtQkFBbUIsQ0FpckIvQjtTQWpyQlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIENvbnRlbnRDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhEYXRhU291cmNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UvZGF0YXNvdXJjZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWERhdGFFdmVudCwgQVhIdG1sRXZlbnQsIEFYVmFsdWVFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuaW1wb3J0IHsgQVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50LCBBWENvbnRleHRNZW51UHJvbWlzZUZ1bmN0aW9uLCBBWENvbnRleHRNZW51RnVuY3Rpb24gfSBmcm9tICcuLi9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEFYTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdOb2RlIHtcclxuICBjaGlsZHJlbjogQVhUcmVlVmlld05vZGVbXTtcclxuICBpdGVtRGF0YTogQVhUcmVlVmlld0l0ZW1EYXRhID0gbmV3IEFYVHJlZVZpZXdJdGVtRGF0YSgpO1xyXG4gIHBhcmVudDogQVhUcmVlVmlld05vZGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3SXRlbURhdGEge1xyXG4gIHNlbGVjdGVkOiBib29sZWFuO1xyXG4gIGluZGV0ZXJtaW5hdGU6IGJvb2xlYW47XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgb3BlbjogYm9vbGVhbjtcclxuICBoYXNDaGlsZDogYm9vbGVhbjtcclxuICBpdGVtOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3SXRlbU1vdmVkRXZlbnQge1xyXG4gIHNvdXJjZTogQVhUcmVlVmlld05vZGU7XHJcbiAgdGFyZ2V0OiBBWFRyZWVWaWV3Tm9kZTtcclxuICByZXNvbHZlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3c2VsZWN0aW9uQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYVHJlZVZpZXdOb2RlPiB7XHJcbiAgY29tcG9uZW50OiBBWFRyZWVWaWV3Q29tcG9uZW50O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld3NlbGV0ZWRLZXlGaWVsZHNDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBBWFZhbHVlRXZlbnQ8QVhUcmVlVmlld05vZGU+IHtcclxuICBjb21wb25lbnQ6IEFYVHJlZVZpZXdDb21wb25lbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3SXRlbUNsaWNrIGV4dGVuZHMgQVhIdG1sRXZlbnQ8TW91c2VFdmVudD4ge1xyXG4gIGNvbXBvbmVudDogQVhUcmVlVmlld0NvbXBvbmVudDtcclxuICBpdGVtOiBhbnk7XHJcbiAgZmxhZzogYm9vbGVhbjtcclxuICBjYW5jZWw/OiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXRyZWUtdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0NvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudCB7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBub2RlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQVhEYXRhU291cmNlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgX2NvbnRlbnREYXRhU291cmNlOiBBWERhdGFTb3VyY2VDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnID0gJ3NpbmdsZSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0aW9uTGV2ZWw6ICdhbGwnIHwgJ25vZGVzJyB8ICdwYXJlbnRzJyA9ICdhbGwnO1xyXG5cclxuICAvLyB1c2VyIGNhbiBzZXQgb25seSBvbmUgb2YgdGhpcyAvc2VsZWN0ZWRGaWVsZE5hbWUgb3IgL3NlbGV0ZWRLZXlGaWVsZHNcclxuICAvL3NlbGV0ZWRLZXlGaWVsZHMgc2V0IGlkIG9mIG5vZGVzIGFuZCBwYXJlbnRzXHJcbiAgLy9zZWxlY3RlZEZpZWxkTmFtZSBzZXQgbmFtZSBvZiBmaWVsZHMgdGhhdCBzZXQgc2VsZWN0ZXNcclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkRmllbGROYW1lOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvLyBASW5wdXQoKVxyXG4gIC8vIHNlbGVjdE5vZGVzUmVjdXJzaXZlOiAnYWxsJyB8ICdwYXJlbnRzJyB8ICdjaGlsZHMnIHwgJ25vbmUnID0gJ2FsbCc7IC8vbGVhZlxyXG5cclxuICBASW5wdXQoKVxyXG4gIGNoZWNrUGFyZW50czogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2hlY2tDaGlsZHM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGV0ZWRLZXlGaWVsZHM6IGFueVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAga2V5RmllbGQ6IHN0cmluZyA9ICdpZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGFzQ2hpbGRGaWVsZDogc3RyaW5nID0gJ2NoaWxkJztcclxuXHJcbiAgQElucHV0KClcclxuICBib3JkZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhenlMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0RyYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiAnbWQnIHwgJ3NtJyA9ICdtZCc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFRyZWVWaWV3c2VsZWN0aW9uQ2hhbmdlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld3NlbGVjdGlvbkNoYW5nZWRFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZXRlZEtleUZpZWxkc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFRyZWVWaWV3c2VsZXRlZEtleUZpZWxkc0NoYW5nZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdzZWxlY3Rpb25DaGFuZ2VkRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbU9wZW5pbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1DbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdJdGVtQ2xpY2s+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbUNsb3Npbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbURyYWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbU1vdmVkOiBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNvbnRleHRNZW51SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PigpO1xyXG5cclxuICBzaG93U2VsZWN0Qm94OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxpc3Q6IGFueVtdID0gW107XHJcbiAgaXRlbVJvdzogYW55O1xyXG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWRQYXJlbnRzOiBhbnlbXSA9IFtdO1xyXG4gIGxvYWRBbGxDaGlsZHJlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxpc3RMb2FkOiBhbnlbXSA9IFtdO1xyXG4gIGl0ZW1Ecm9wOiBhbnk7XHJcbiAgaXRlbURyYWc6IGFueTtcclxuICB2YWxpZERyb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGxvY2tlZERyYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGlsZEZpZWxkOiBzdHJpbmcgPSAnY2hpbGRlcmVuJztcclxuICBzaG93Q29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NlbGVjdGVkSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvY2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBjb250ZXh0TWVudUl0ZW1zOiBBWE1lbnVJdGVtW10gfCBBWENvbnRleHRNZW51UHJvbWlzZUZ1bmN0aW9uIHwgQVhDb250ZXh0TWVudUZ1bmN0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9uQ29udGV4dE1lbnVJdGVtKGU6IEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudCkge1xyXG4gICAgdGhpcy5vbkNvbnRleHRNZW51SXRlbUNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5saXN0ID0gW107XHJcbiAgICB0aGlzLl9jb250ZW50RGF0YVNvdXJjZS5mZXRjaChudWxsKTtcclxuICB9XHJcblxyXG4gIGludGVybmFsU2VsZWN0SXRlbShpdGVtLCB1c2VyQ2hhbmdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UgfHwgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICBpdGVtLnNlbGVjdCA9ICFpdGVtLnNlbGVjdDtcclxuICAgICAgaWYgKGl0ZW0ucGFyZW50Tm9kZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5zZWxlY3QgPT09IHRydWUpIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGUpID0+IHtcclxuICAgICAgICAgICAgZS5zZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLnNlbGVjdCA9ICFpdGVtLnNlbGVjdDtcclxuXHJcbiAgICAgIGlmIChpdGVtLnBhcmVudE5vZGUgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZFNlbGVjdChpdGVtLCBpdGVtLnNlbGVjdCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpdGVtLnNlbGVjdCA9PSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICBlLnNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodXNlckNoYW5nZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLm1ha2VOb2RlKGl0ZW0pLFxyXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYWtlTm9kZShpdGVtLCBhZGRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IG5vZGU6IEFYVHJlZVZpZXdOb2RlID0gbmV3IEFYVHJlZVZpZXdOb2RlKCk7XHJcbiAgICBpZiAoYWRkQ2hpbGRyZW4pIHtcclxuICAgICAgbm9kZS5jaGlsZHJlbiA9IGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSA9PT0gdW5kZWZpbmVkID8gW10gOiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0/Lm1hcCgobSkgPT4gdGhpcy5tYWtlTm9kZShtKSk7XHJcbiAgICB9XHJcbiAgICBub2RlLml0ZW1EYXRhLmRpc2FibGVkID0gaXRlbS5kaXNhYmxlZCA9PT0gdHJ1ZSA/IGl0ZW0uZGlzYWJsZWQgOiBmYWxzZTtcclxuICAgIG5vZGUuaXRlbURhdGEub3BlbiA9IGl0ZW0ub3BlbiA9PT0gdHJ1ZSA/IGl0ZW0ub3BlbiA6IGZhbHNlO1xyXG4gICAgbm9kZS5pdGVtRGF0YS5rZXkgPSBpdGVtW3RoaXMua2V5RmllbGRdO1xyXG5cclxuICAgIGNvbnN0IGMgPSBbXTtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAodmFyIGsgaW4gaXRlbSkge1xyXG4gICAgICBpID0gaSArIDE7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBrICE9ICdzZWxlY3QnICYmXHJcbiAgICAgICAgayAhPSAnaGFzQ2hpbGQnICYmXHJcbiAgICAgICAgayAhPSAnbG9hZGluZycgJiZcclxuICAgICAgICBrICE9ICdyZXF1ZXN0SWQnICYmXHJcbiAgICAgICAgayAhPSAnZGlzYWJsZWQnICYmXHJcbiAgICAgICAgayAhPSAnb3BlbicgJiZcclxuICAgICAgICBrICE9ICdwYXJlbnROb2RlJyAmJlxyXG4gICAgICAgIGsgIT0gJ3RvZ2dsZScgJiZcclxuICAgICAgICBrICE9ICdsb2FkZWQnICYmXHJcbiAgICAgICAgayAhPSAnaW5kZXRlcm1pbmF0ZScgJiZcclxuICAgICAgICBrICE9IHRoaXMuY2hpbGRGaWVsZFxyXG4gICAgICApIHtcclxuICAgICAgICAvL2MucHVzaCh7IGs6IGl0ZW1ba10gfSk7XHJcbiAgICAgICAgY1trXSA9IGl0ZW1ba107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBub2RlLml0ZW1EYXRhLml0ZW0gPSBjOyAvL1RPIERPXHJcbiAgICBub2RlLml0ZW1EYXRhLnNlbGVjdGVkID0gaXRlbS5zZWxlY3QgPT09IHRydWUgPyBpdGVtLnNlbGVjdCA6IGZhbHNlO1xyXG4gICAgbm9kZS5pdGVtRGF0YS5pbmRldGVybWluYXRlID0gaXRlbS5zZWxlY3QgPT09IG51bGwgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBub2RlLml0ZW1EYXRhLmhhc0NoaWxkID0gaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdO1xyXG4gICAgbm9kZS5wYXJlbnQgPSBpdGVtLnBhcmVudE5vZGUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB0aGlzLm1ha2VOb2RlKGl0ZW0ucGFyZW50Tm9kZSwgZmFsc2UpO1xyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZUNoaWxkU2VsZWN0KGl0ZW0sIHMpIHtcclxuICAgIC8vIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdhbGwnIHx8IHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ2NoaWxkcycpIHtcclxuICAgIGlmICh0aGlzLmNoZWNrQ2hpbGRzID09IHRydWUpIHtcclxuICAgICAgaXRlbS5zZWxlY3QgPSBzO1xyXG4gICAgICBpZiAoaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlICYmIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXS5mb3JFYWNoKChlbG0pID0+IHtcclxuICAgICAgICAgIGlmIChlbG1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBlbG0uc2VsZWN0ID0gcztcclxuXHJcbiAgICAgICAgICAgIGlmIChzID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gZWxtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5wdXNoKGVsbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHMgPT09IGZhbHNlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gZWxtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZFNlbGVjdChlbG0sIHMpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWxtLnNlbGVjdCA9IHM7XHJcbiAgICAgICAgICAgIGlmIChzID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBlbG1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGVsbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHMgPT09IGZhbHNlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBlbG1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZVBhcmVudFNlbGVjdChpdGVtKSB7XHJcbiAgICAvL2lmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdhbGwnIHx8IHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ3BhcmVudHMnKSB7XHJcbiAgICBpZiAodGhpcy5jaGVja1BhcmVudHMpIHtcclxuICAgICAgbGV0IGFsbHNlbGVjdCA9IHRydWU7XHJcbiAgICAgIGxldCBhbGxkZXNlbGVjdCA9IHRydWU7XHJcbiAgICAgIGxldCBvbmVzZWxlY3QgPSBmYWxzZTtcclxuICAgICAgbGV0IGlzaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSkge1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBpZiAoaXRlbVt0aGlzLmNoaWxkRmllbGRdW2luZGV4XS5zZWxlY3QgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgYWxsZGVzZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgb25lc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtW3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLnNlbGVjdCA9PT0gZmFsc2UgfHwgaXRlbVt0aGlzLmNoaWxkRmllbGRdW2luZGV4XS5zZWxlY3QgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBhbGxzZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtW3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLnNlbGVjdCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpc2luZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBhbGxkZXNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBvbmVzZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgICBhbGxzZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvbmVzZWxlY3QgfHwgKGlzaW5kZXRlcm1pbmF0ZSAmJiAhYWxsc2VsZWN0KSkge1xyXG4gICAgICAgIGl0ZW0uc2VsZWN0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gaXRlbVt0aGlzLmtleUZpZWxkXSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYWxsc2VsZWN0ID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRzID0gdGhpcy5zZWxlY3RlZFBhcmVudHMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBpdGVtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbGxkZXNlbGVjdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGl0ZW0uc2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0ucGFyZW50Tm9kZSAmJiBpdGVtLnBhcmVudE5vZGVbdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtLnBhcmVudE5vZGVbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uSXRlbUNsaWNrLnN1YnNjcmliZSgoZGF0YTogQVhUcmVlVmlld0l0ZW1DbGljaykgPT4ge1xyXG4gICAgICBpZiAoIWRhdGEuY2FuY2VsKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVOb2RlKGRhdGEuaXRlbSwgZGF0YS5mbGFnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpdGVtZGJDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlT25Ob2RlQ2xpY2soZSwgaXRlbSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPbk5vZGVDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtLCBmbGFnID0gZmFsc2UpIHtcclxuICAgIC8vICB0aGlzLmludGVybmFsU2VsZWN0SXRlbShpdGVtKTtcclxuICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdCh7XHJcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgaHRtbEV2ZW50OiBlLFxyXG4gICAgICBpdGVtLFxyXG4gICAgICBmbGFnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU5vZGUoaXRlbSwgZmxhZyA9IGZhbHNlKSB7XHJcbiAgICAvL2l0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UgJiZcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnICYmICFmbGFnKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycgJiYgaXRlbS5oYXNDaGlsZCA9PSB0cnVlKSB7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbFNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0udG9nZ2xlID0gIWl0ZW0udG9nZ2xlO1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycgJiYgaXRlbS5oYXNDaGlsZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaW50ZXJuYWxTZWxlY3RJdGVtKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSAmJiBpdGVtLmxvYWRlZCAhPT0gdHJ1ZSAmJiB0aGlzLmxhenlMb2FkaW5nKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtUm93ID0gaXRlbTtcclxuICAgICAgICBjb25zdCB1aWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDApO1xyXG4gICAgICAgIGl0ZW0ucmVxdWVzdElkID0gdWlkO1xyXG4gICAgICAgIHRoaXMubGlzdExvYWQucHVzaChpdGVtKTtcclxuICAgICAgICB0aGlzLl9jb250ZW50RGF0YVNvdXJjZS5mZXRjaChpdGVtKTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkaW5nKHRoaXMuaXRlbVJvdyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0udG9nZ2xlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGl0ZW0ub3BlbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5vbkl0ZW1PcGVuaW5nLmVtaXQodGhpcy5tYWtlTm9kZShpdGVtKSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIWl0ZW0udG9nZ2xlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGl0ZW0ub3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25JdGVtQ2xvc2luZy5lbWl0KHRoaXMubWFrZU5vZGUoaXRlbSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250ZW50RGF0YVNvdXJjZS5mZXRjaChudWxsKTtcclxuICAgIHRoaXMuX2NvbnRlbnREYXRhU291cmNlLm9uRGF0YVJlY2VpdmVkLnN1YnNjcmliZSgoX2RhdGEpID0+IHtcclxuICAgICAgaWYgKHRoaXMubGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmhpZGVMb2FkaW5nKG51bGwpO1xyXG4gICAgICAgIHRoaXMubGlzdCA9IF9kYXRhLmRhdGEucmVzdWx0O1xyXG5cclxuICAgICAgICB0aGlzLmxpc3QuZm9yRWFjaCgoZWwpID0+IHtcclxuICAgICAgICAgIGVsLmRpc2FibGVkQ2hlY2tCb3ggPSBmYWxzZTtcclxuICAgICAgICAgIGVsLnNlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycgJiYgZWxbdGhpcy5oYXNDaGlsZEZpZWxkXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGVsLmRpc2FibGVkQ2hlY2tCb3ggPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdwYXJlbnRzJyAmJiBlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIGVsLmRpc2FibGVkQ2hlY2tCb3ggPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLnNlbGV0ZWRLZXlGaWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGV0ZWRLZXlGaWVsZHMuZm9yRWFjaCgobjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG4uaW5jbHVkZXMoZWxbdGhpcy5rZXlGaWVsZF0pKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZWxbdGhpcy5oYXNDaGlsZEZpZWxkXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrUGFyZW50cyA9PSBmYWxzZSAmJiB0aGlzLmNoZWNrQ2hpbGRzID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9zZWxlY3QgcGFyZW50IHdoZW4gY2hlY2sgY2hpbGQgYW5kIGNoZWNrIHBhcmVudCBpcyBmYWxzZSBUT0RPIGNoZWNrIHRoaXMgQWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGVsKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuKGVsKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShlbCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZEl0ZW0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRGaWVsZE5hbWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpZiAoZWxbdGhpcy5oYXNDaGlsZEZpZWxkXSA9PSB0cnVlICYmIGVsW3RoaXMuc2VsZWN0ZWRGaWVsZE5hbWVdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja1BhcmVudHMgPT0gZmFsc2UgJiYgdGhpcy5jaGVja0NoaWxkcyA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgLy9zZWxlY3QgcGFyZW50IHdoZW4gY2hlY2sgY2hpbGQgYW5kIGNoZWNrIHBhcmVudCBpcyBmYWxzZSBUT0RPIGNoZWNrIHRoaXMgQWN0aW9uXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oZWwpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLm9wZW4oZWwpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsW3RoaXMuc2VsZWN0ZWRGaWVsZE5hbWVdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oZWwpO1xyXG4gICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZEl0ZW0gPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pdGVtUm93ID0gdGhpcy5saXN0TG9hZC5maWx0ZXIoKGMpID0+IGMucmVxdWVzdElkID09PSBfZGF0YS5kYXRhLnJlcXVlc3RJZClbMF07XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZCA9IHRoaXMubGlzdExvYWQuZmlsdGVyKChjKSA9PiBjLnJlcXVlc3RJZCAhPT0gX2RhdGEuZGF0YS5yZXF1ZXN0SWQpO1xyXG4gICAgICAgIHRoaXMuaXRlbVJvdy5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1Sb3cgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlTG9hZGluZyh0aGlzLml0ZW1Sb3cpO1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gX2RhdGEuZGF0YS5yZXN1bHQ7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMubGlzdC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbVJvd1t0aGlzLmNoaWxkRmllbGRdICYmIHRoaXMuaXRlbVJvd1t0aGlzLmNoaWxkRmllbGRdLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICByZXN1bHQuZm9yRWFjaCgoZWwpID0+IHtcclxuICAgICAgICAgICAgICAgIGVsLmRpc2FibGVkQ2hlY2tCb3ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbVJvd1t0aGlzLmNoaWxkRmllbGRdW3RoaXMuaXRlbVJvd1t0aGlzLmNoaWxkRmllbGRdLmxlbmd0aF0gPSBlbDtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLml0ZW1Sb3dbdGhpcy5jaGlsZEZpZWxkXSA9IHJlc3VsdDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25MZXZlbCA9PSAnbm9kZXMnICYmIHJlc3VsdFtpXVt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdFtpXS5kaXNhYmxlZENoZWNrQm94ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdwYXJlbnRzJyAmJiByZXN1bHRbaV1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ldLmRpc2FibGVkQ2hlY2tCb3ggPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvLyBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJyAmJiAodGhpcy5zZWxlY3ROb2Rlc1JlY3Vyc2l2ZSA9PSAnYWxsJyB8fCB0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdjaGlsZHMnKSkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnICYmIHRoaXMuY2hlY2tDaGlsZHMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ldLnNlbGVjdCA9IHRoaXMuaXRlbVJvdy5zZWxlY3QgPT09ICh1bmRlZmluZWQgfHwgbnVsbCkgPyBmYWxzZSA6IHRoaXMuaXRlbVJvdy5zZWxlY3Q7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbVJvdy5zZWxlY3QgPT09IHRydWUgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09ICdtdWx0aXBsZScgJiYgcmVzdWx0W2ldW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IHJlc3VsdFtpXVt0aGlzLmtleUZpZWxkXSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKHJlc3VsdFtpXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdFtpXS5zZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmVzdWx0W2ldLnBhcmVudE5vZGUgPSB0aGlzLml0ZW1Sb3c7XHJcblxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGV0ZWRLZXlGaWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxldGVkS2V5RmllbGRzLmZvckVhY2goKG46IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAobi5pbmNsdWRlcyhyZXN1bHRbaV1bdGhpcy5rZXlGaWVsZF0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdFtpXVt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrUGFyZW50cyA9PSBmYWxzZSAmJiB0aGlzLmNoZWNrQ2hpbGRzID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vc2VsZWN0IHBhcmVudCB3aGVuIGNoZWNrIGNoaWxkIGFuZCBjaGVjayBwYXJlbnQgaXMgZmFsc2UgVE9ETyBjaGVjayB0aGlzIEFjdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0ocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW4ocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKHJlc3VsdFtpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRJdGVtID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEZpZWxkTmFtZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0W2ldW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gdHJ1ZSAmJiByZXN1bHRbaV1bdGhpcy5zZWxlY3RlZEZpZWxkTmFtZV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja1BhcmVudHMgPT0gZmFsc2UgJiYgdGhpcy5jaGVja0NoaWxkcyA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vc2VsZWN0IHBhcmVudCB3aGVuIGNoZWNrIGNoaWxkIGFuZCBjaGVjayBwYXJlbnQgaXMgZmFsc2UgVE9ETyBjaGVjayB0aGlzIEFjdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub3BlbihyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHRbaV1bdGhpcy5zZWxlY3RlZEZpZWxkTmFtZV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0ocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkSXRlbSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbVJvdy5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZEl0ZW0gPT0gdHJ1ZSAmJiAhdGhpcy5sb2NlZCkge1xyXG4gICAgICAgIHRoaXMubG9jZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VsZXRlZEtleUZpZWxkc0NoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAvLyB2YWx1ZTogdGhpcy5tYWtlTm9kZShpdGVtKSxcclxuICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgdGhpcy5zaG93U2VsZWN0Qm94ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0NvbnRleHRNZW51ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vIG9uSXRlbUNsaWNrKGUsIHYpIHtcclxuXHJcbiAgLy8gfVxyXG5cclxuICBvbkRyYWdTdGFydChlOiBFdmVudCwgdikge1xyXG4gICAgaWYgKCF0aGlzLmxvY2tlZERyYWcpIHtcclxuICAgICAgdGhpcy5pdGVtRHJhZyA9IHY7XHJcbiAgICAgIHRoaXMub25JdGVtRHJhZy5lbWl0KHYpO1xyXG4gICAgfVxyXG4gICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ0VuZChlLCB2KSB7XHJcbiAgICBpZiAoIXRoaXMubG9ja2VkRHJhZykge1xyXG4gICAgICB0aGlzLml0ZW1Ecm9wID0gdjtcclxuICAgIH1cclxuICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBkcm9wKGUpIHtcclxuICAgIC8vICB0aGlzLm9uSXRlbURyb3AuZW1pdCh0aGlzLml0ZW1Ecm9wKTtcclxuICAgIGlmICghdGhpcy5sb2NrZWREcmFnKSB7XHJcbiAgICAgIHRoaXMudmFsaWREcm9wID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zYW1lQ2hpbGRlKHRoaXMuaXRlbURyYWcsIHRoaXMuaXRlbURyb3ApO1xyXG4gICAgICBpZiAodGhpcy52YWxpZERyb3AgJiYgdGhpcy5pdGVtRHJhZ1t0aGlzLmtleUZpZWxkXSAhPT0gdGhpcy5pdGVtRHJvcFt0aGlzLmtleUZpZWxkXSAmJiB0aGlzLml0ZW1EcmFnLnBhcmVudE5vZGUgIT09IHRoaXMuaXRlbURyb3ApIHtcclxuICAgICAgICBjb25zdCBtb3ZlZEV2ZW50OiBBWFRyZWVWaWV3SXRlbU1vdmVkRXZlbnQgPSBuZXcgQVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50KCk7XHJcbiAgICAgICAgbW92ZWRFdmVudC5zb3VyY2UgPSB0aGlzLm1ha2VOb2RlKHRoaXMuaXRlbURyYWcpO1xyXG4gICAgICAgIG1vdmVkRXZlbnQudGFyZ2V0ID0gdGhpcy5tYWtlTm9kZSh0aGlzLml0ZW1Ecm9wKTtcclxuICAgICAgICB0aGlzLmxvY2tlZERyYWcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRpbmcodGhpcy5pdGVtRHJhZyk7XHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGluZyh0aGlzLml0ZW1Ecm9wKTtcclxuICAgICAgICBtb3ZlZEV2ZW50LnJlc29sdmUgPSAodmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgIHRoaXMuaGlkZUxvYWRpbmcodGhpcy5pdGVtRHJhZyk7XHJcbiAgICAgICAgICB0aGlzLmhpZGVMb2FkaW5nKHRoaXMuaXRlbURyb3ApO1xyXG4gICAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJhZ0Ryb3BJdGVtKHRoaXMuaXRlbURyYWcsIHRoaXMuaXRlbURyb3ApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NrZWREcmFnID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLm9uSXRlbU1vdmVkLmVtaXQobW92ZWRFdmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2FtZUNoaWxkZShwYXJlbnQsIGNoaWxkKSB7XHJcbiAgICBpZiAocGFyZW50W3RoaXMuY2hpbGRGaWVsZF0gJiYgcGFyZW50W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcGFyZW50W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaWYgKHBhcmVudFt0aGlzLmNoaWxkRmllbGRdW2luZGV4XVt0aGlzLmtleUZpZWxkXSA9PSBjaGlsZFt0aGlzLmtleUZpZWxkXSkge1xyXG4gICAgICAgICAgdGhpcy52YWxpZERyb3AgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBhcmVudFt0aGlzLmNoaWxkRmllbGRdW2luZGV4XVt0aGlzLmNoaWxkRmllbGRdICYmIHBhcmVudFt0aGlzLmNoaWxkRmllbGRdW2luZGV4XVt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2FtZUNoaWxkZShwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXVtpbmRleF0sIGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAocGFyZW50W3RoaXMua2V5RmllbGRdID09IGNoaWxkW3RoaXMua2V5RmllbGRdKSB7XHJcbiAgICAgIHRoaXMudmFsaWREcm9wID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkcmFnRHJvcEl0ZW0oaXRlbUNoaWxkLCBpdGVtUGFyZW50KSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25MZXZlbCA9PSAnbm9kZXMnKSB7XHJcbiAgICAgIGl0ZW1QYXJlbnQuZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGl0ZW1DaGlsZC5wYXJlbnROb2RlKSB7XHJcbiAgICAgIGl0ZW1DaGlsZC5wYXJlbnROb2RlW3RoaXMuY2hpbGRGaWVsZF0gPSBpdGVtQ2hpbGQucGFyZW50Tm9kZVt0aGlzLmNoaWxkRmllbGRdLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gaXRlbUNoaWxkW3RoaXMua2V5RmllbGRdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGlzdCA9IHRoaXMubGlzdC5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1DaGlsZFt0aGlzLmtleUZpZWxkXSk7XHJcbiAgICB9XHJcbiAgICBpdGVtQ2hpbGQucGFyZW50Tm9kZSA9IGl0ZW1QYXJlbnQ7XHJcbiAgICBpZiAoaXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdICYmIGl0ZW1QYXJlbnRbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGl0ZW1QYXJlbnRbdGhpcy5jaGlsZEZpZWxkXVtpdGVtUGFyZW50W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoXSA9IGl0ZW1DaGlsZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW1QYXJlbnRbdGhpcy5jaGlsZEZpZWxkXSA9IFtdO1xyXG4gICAgICBpdGVtUGFyZW50W3RoaXMuY2hpbGRGaWVsZF1bMF0gPSBpdGVtQ2hpbGQ7XHJcbiAgICAgIGlmIChpdGVtUGFyZW50W3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU5vZGUoaXRlbVBhcmVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbVBhcmVudC50b2dnbGUgPSAhaXRlbVBhcmVudC50b2dnbGU7XHJcbiAgICAgICAgaXRlbVBhcmVudC5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW1QYXJlbnRbdGhpcy5oYXNDaGlsZEZpZWxkXSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbUNoaWxkLnBhcmVudE5vZGUgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLmNoYW5nZVBhcmVudFNlbGVjdChpdGVtQ2hpbGQucGFyZW50Tm9kZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvY2tlZERyYWcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdENoYW5nZShmaWVsZCwgdmFsdWUpIHtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlQ2hpbGVkKHRoaXMubGlzdFtpbmRleF0sIGZpZWxkLCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvYWRBbGxDaGlsZHJlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGFuZ2VDaGlsZWQoaXRlbSwgZmllbGQsIHZhbHVlKSB7XHJcbiAgICBpZiAoZmllbGQgPT09ICd0b2dnbGUnICYmIChpdGVtLmxvYWRlZCA9PT0gZmFsc2UgfHwgaXRlbS5sb2FkZWQgPT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgaWYgKHRoaXMubG9hZEFsbENoaWxkcmVuID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVOb2RlKGl0ZW0pO1xyXG4gICAgICAgIGl0ZW1bZmllbGRdID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW1bZmllbGRdID0gdmFsdWU7XHJcbiAgICAgIGlmIChmaWVsZCA9PT0gJ3NlbGVjdCcgJiYgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSBmYWxzZSAmJiB2YWx1ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZmllbGQgPT09ICdzZWxlY3QnKSB7XHJcbiAgICAgIGl0ZW0uaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSAmJiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0gJiYgaXRlbVt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aCA+IDApIHtcclxuICAgICAgaXRlbVt0aGlzLmNoaWxkRmllbGRdLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICB0aGlzLmNoYW5nZUNoaWxlZChlbGVtZW50LCBmaWVsZCwgdmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd0xvYWRpbmcoaXRlbSk6IHZvaWQge1xyXG4gICAgaXRlbS5sb2FkaW5nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZUxvYWRpbmcoaXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKGl0ZW0gIT0gbnVsbCkge1xyXG4gICAgICBpdGVtLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuQWxsKGxvYWRBbGw6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgLy8gaWYgKGxvYWRBbGwpIHtcclxuICAgIC8vIHRoaXMubG9hZEFsbENoaWxkcmVuID0gdHJ1ZTtcclxuICAgIC8vIHRoaXMubGlzdENoYW5nZSgndG9nZ2xlJywgdHJ1ZSk7XHJcbiAgICAvL30gZWxzZSB7XHJcbiAgICB0aGlzLmxpc3RDaGFuZ2UoJ3RvZ2dsZScsIHRydWUpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEl0ZW0oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW1bJ3NlbGVjdCddICE9IHRydWUpIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbFNlbGVjdEl0ZW0oaXRlbSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVuU2VsZWN0SXRlbShpdGVtKSB7XHJcbiAgICBpZiAoaXRlbVsnc2VsZWN0J10gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmludGVybmFsU2VsZWN0SXRlbShpdGVtLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbVsndG9nZ2xlJ10gIT09IHRydWUpIHtcclxuICAgICAgdGhpcy50b2dnbGVOb2RlKGl0ZW0sIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNjcm9sSW50b1ZpZXcoaXRlbSkge1xyXG4gICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLWlkPScke2l0ZW1bdGhpcy5rZXlGaWVsZF19J11gKTtcclxuICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUFsbCgpIHtcclxuICAgIHRoaXMubGlzdENoYW5nZSgndG9nZ2xlJywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEFsbCgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMubGlzdENoYW5nZSgnc2VsZWN0JywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdW5TZWxlY3RBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLmxpc3RDaGFuZ2UoJ3NlbGVjdCcsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTm9kZXMoKTogQVhUcmVlVmlld05vZGVbXSB7XHJcbiAgICBjb25zdCBzZWxlY3RJdGVtc05vZGUgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIHNlbGVjdEl0ZW1zTm9kZS5wdXNoKHRoaXMubWFrZU5vZGUoZSkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gc2VsZWN0SXRlbXNOb2RlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkUGFyZW50cygpOiBBWFRyZWVWaWV3Tm9kZVtdIHtcclxuICAgIGNvbnN0IHNlbGVjdEl0ZW1zUGFyZW50ID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIHNlbGVjdEl0ZW1zUGFyZW50LnB1c2godGhpcy5tYWtlTm9kZShlKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzZWxlY3RJdGVtc1BhcmVudDtcclxuICB9XHJcblxyXG4gIGdldFBhcmVudHNJZChpdGVtKSB7XHJcbiAgICBsZXQga2V5RmllbGRzID0gW107XHJcbiAgICBrZXlGaWVsZHMucHVzaChpdGVtW3RoaXMua2V5RmllbGRdKTtcclxuICAgIGlmIChpdGVtLnBhcmVudE5vZGUpIHtcclxuICAgICAga2V5RmllbGRzLnB1c2goLi4udGhpcy5nZXRQYXJlbnRzSWQoaXRlbS5wYXJlbnROb2RlKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ga2V5RmllbGRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkS2V5RmllbGRzKCkge1xyXG4gICAgbGV0IGtleUZpZWxkcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGVsbSkgPT4ge1xyXG4gICAgICB2YXIgSWRzID0gdGhpcy5nZXRQYXJlbnRzSWQoZWxtKTtcclxuICAgICAgaWYgKElkcykge1xyXG4gICAgICAgIGtleUZpZWxkcy5wdXNoKElkcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGtleUZpZWxkcztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -9,6 +9,7 @@ var AXQueryBuilderGroupComponent = /** @class */ (function () {
|
|
|
9
9
|
this.qs = qs;
|
|
10
10
|
this.collapsed = false;
|
|
11
11
|
this.fields = [];
|
|
12
|
+
this.mode = 'new';
|
|
12
13
|
//ruleIsEditing: boolean = true;
|
|
13
14
|
this.groupRuleChanged = new EventEmitter();
|
|
14
15
|
this.showGroupCondition = false;
|
|
@@ -87,9 +88,14 @@ var AXQueryBuilderGroupComponent = /** @class */ (function () {
|
|
|
87
88
|
this.ruleChanged(null);
|
|
88
89
|
};
|
|
89
90
|
AXQueryBuilderGroupComponent.prototype.ruleChanged = function (e) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
this.
|
|
91
|
+
var _this = this;
|
|
92
|
+
debugger;
|
|
93
|
+
// this.group.queryString = this.qs.getQueryString(this.group, 'simple');
|
|
94
|
+
this.qs.getQueryStringSimple(this.group).then(function (c) {
|
|
95
|
+
_this.group.queryString = c;
|
|
96
|
+
_this.group.queryStringElastic = _this.qs.getQueryString(_this.group, 'elastic');
|
|
97
|
+
_this.groupRuleChanged.emit({ groups: _this.group, component: _this });
|
|
98
|
+
});
|
|
93
99
|
};
|
|
94
100
|
AXQueryBuilderGroupComponent.ctorParameters = function () { return [
|
|
95
101
|
{ type: AXQueryBuilderService }
|
|
@@ -114,6 +120,10 @@ var AXQueryBuilderGroupComponent = /** @class */ (function () {
|
|
|
114
120
|
Input(),
|
|
115
121
|
__metadata("design:type", Array)
|
|
116
122
|
], AXQueryBuilderGroupComponent.prototype, "fields", void 0);
|
|
123
|
+
__decorate([
|
|
124
|
+
Input(),
|
|
125
|
+
__metadata("design:type", String)
|
|
126
|
+
], AXQueryBuilderGroupComponent.prototype, "mode", void 0);
|
|
117
127
|
__decorate([
|
|
118
128
|
Output(),
|
|
119
129
|
__metadata("design:type", EventEmitter)
|
|
@@ -121,7 +131,7 @@ var AXQueryBuilderGroupComponent = /** @class */ (function () {
|
|
|
121
131
|
AXQueryBuilderGroupComponent = __decorate([
|
|
122
132
|
Component({
|
|
123
133
|
selector: 'ax-query-group',
|
|
124
|
-
template: "<div class=\"header\">\r\n <div class=\"condition\" *ngIf=\"parent\">\r\n <div class=\"text {{parent.condition}}\">\r\n <span>{{parent.condition }}</span>\r\n </div>\r\n </div>\r\n <div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n </div>\r\n\r\n <div class=\"detail {{group.condition}}\" (click)=\"changeDetailMode()\">\r\n <div class=\"collapsed\" *ngIf=\"collapsed;else expandedTemplate\">\r\n {{group.queryString}}\r\n </div>\r\n <ng-template #expandedTemplate>\r\n <div class=\"expanded\">\r\n <strong>{{group.condition == 'OR' ? '\u06CC\u06A9\u06CC \u0627\u0632' : '\u0647\u0645\u0647' }} <span>\u0634\u0631\u0627\u06CC\u0637 \u0632\u06CC\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0628\u0627\u0634\u062F</span> </strong>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"buttons-list\">\r\n <div class=\"button remove\" *ngIf=\"parent\" (click)=\"handleRemoveClick()\">\r\n <i class=\"far fa-times ax-danger-color\"></i>\r\n </div>\r\n <div class=\"button edit\" (click)=\"handleChangeClick()\">\r\n <i class=\"far fa-retweet ax-danger-color\"></i>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"rules\" *ngIf=\"!collapsed\">\r\n <!-- <ax-validation-form #form> -->\r\n\r\n <div *ngFor=\"let item of group.items\" class=\"group-item\">\r\n <ng-container *ngIf=\"item.condition;else ruleTemplate\">\r\n <ax-query-group (groupRuleChanged)=\"ruleChanged($event)\" [group]=\"item\" [fields]=\"fields\"
|
|
134
|
+
template: "<div class=\"header\">\r\n <div class=\"condition\" *ngIf=\"parent\">\r\n <div class=\"text {{parent.condition}}\">\r\n <span>{{parent.condition }}</span>\r\n </div>\r\n </div>\r\n <div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n </div>\r\n\r\n <div class=\"detail {{group.condition}}\" (click)=\"changeDetailMode()\">\r\n <div class=\"collapsed\" *ngIf=\"collapsed;else expandedTemplate\">\r\n {{group.queryString}}\r\n </div>\r\n <ng-template #expandedTemplate>\r\n <div class=\"expanded\">\r\n <strong>{{group.condition == 'OR' ? '\u06CC\u06A9\u06CC \u0627\u0632' : '\u0647\u0645\u0647' }} <span>\u0634\u0631\u0627\u06CC\u0637 \u0632\u06CC\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0628\u0627\u0634\u062F</span> </strong>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"buttons-list\">\r\n <div class=\"button remove\" *ngIf=\"parent && mode=='new'\" (click)=\"handleRemoveClick()\">\r\n <i class=\"far fa-times ax-danger-color\"></i>\r\n </div>\r\n <div class=\"button edit\" *ngIf=\"mode=='new'\" (click)=\"handleChangeClick()\">\r\n <i class=\"far fa-retweet ax-danger-color\"></i>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"rules\" *ngIf=\"!collapsed\">\r\n <!-- <ax-validation-form #form> -->\r\n\r\n <div *ngFor=\"let item of group.items\" class=\"group-item\">\r\n <ng-container *ngIf=\"item.condition;else ruleTemplate\">\r\n <ax-query-group (groupRuleChanged)=\"ruleChanged($event)\" [mode]=\"mode\" [group]=\"item\" [fields]=\"fields\"\r\n [parent]=\"group\">\r\n </ax-query-group>\r\n </ng-container>\r\n <ng-template #ruleTemplate>\r\n <ax-query-rule #queryRule (ruleChanged)=\"ruleChanged($event)\" [mode]=\"mode\"\r\n (onRuleDelete)=\"ruleDelete($event)\" [rule]=\"item\" [fields]=\"fields\" [parent]=\"group\">\r\n </ax-query-rule>\r\n </ng-template>\r\n </div>\r\n <!-- </ax-validation-form> -->\r\n <div class=\"group-item\" *ngIf=\"mode=='new'\">\r\n <div class=\"ax-query-rule\">\r\n <div class=\"condition\">\r\n </div>\r\n <div class=\"handler\">\r\n <i class=\"far fa-grip-lines-vertical\"></i>\r\n </div>\r\n <div class=\"add-rule\" (click)=\"addRule()\" *ngIf=\"mode=='new'\">\r\n <i class=\"far fa-plus\"></i> <span>\u0634\u0631\u0637</span>\r\n </div>\r\n <div class=\"add-group\" (click)=\"addGroup()\" *ngIf=\"!showGroupCondition && mode=='new'\">\r\n <i class=\"far fa-plus\"></i> <span>\u06AF\u0631\u0648\u0647</span>\r\n </div>\r\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition OR\" (click)=\"addGroupOR()\">\r\n <i class=\"far fa-plus\"></i> <span>OR</span>\r\n </div>\r\n <div *ngIf=\"showGroupCondition && mode=='new'\" class=\"add-condition AND\" (click)=\"addGroupAND()\">\r\n <i class=\"far fa-plus\"></i> <span>AND</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>",
|
|
125
135
|
host: { class: 'ax ax-query-group' },
|
|
126
136
|
encapsulation: ViewEncapsulation.None
|
|
127
137
|
}),
|
|
@@ -130,4 +140,4 @@ var AXQueryBuilderGroupComponent = /** @class */ (function () {
|
|
|
130
140
|
return AXQueryBuilderGroupComponent;
|
|
131
141
|
}());
|
|
132
142
|
export { AXQueryBuilderGroupComponent };
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFxRCxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25JLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT2hFO0lBcUJFLHNDQUFvQixFQUF5QjtRQUF6QixPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQWY3QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBTTNCLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFFbkIsZ0NBQWdDO1FBR2hDLHFCQUFnQixHQUEyQyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUV4Ryx1QkFBa0IsR0FBWSxLQUFLLENBQUM7SUFFWSxDQUFDO0lBRWpELCtDQUFRLEdBQVIsY0FBWSxDQUFDO0lBRWIsaURBQVUsR0FBVixVQUFXLENBQTBCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFiLENBQWEsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7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LENBdUd4QztJQUFELG1DQUFDO0NBQUEsQUF2R0QsSUF1R0M7U0F2R1ksNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJSdWxlQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXJ1bGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJHcm91cEV2ZW50LCBBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudCwgQVhRdWVyeUJ1aWxkZXJSdWxlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcclxuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXF1ZXJ5LWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJ3F1ZXJ5LWJ1aWxkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGhvc3Q6IHsgY2xhc3M6ICdheCBheC1xdWVyeS1ncm91cCcgfSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFF1ZXJ5QnVpbGRlckdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdxdWVyeVJ1bGUnKSBxdWVyeVJ1bGU6IEFYUXVlcnlCdWlsZGVyUnVsZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XHJcbiAgQElucHV0KClcclxuICBncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cDtcclxuXHJcbiAgY29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGFyZW50OiBBWFF1ZXJ5QnVpbGRlckdyb3VwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpZWxkczogYW55W10gPSBbXTtcclxuXHJcbiAgLy9ydWxlSXNFZGl0aW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZ3JvdXBSdWxlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyR3JvdXBFdmVudD4oKTtcclxuXHJcbiAgc2hvd0dyb3VwQ29uZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcXM6IEFYUXVlcnlCdWlsZGVyU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBydWxlRGVsZXRlKGU6IEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50KSB7XHJcbiAgICB0aGlzLmdyb3VwLml0ZW1zID0gdGhpcy5ncm91cC5pdGVtcy5maWx0ZXIoKGMpID0+IGMgIT09IGUuaXRlbXMpO1xyXG4gICAgdGhpcy5ydWxlQ2hhbmdlZChudWxsKTtcclxuICB9XHJcbiAgaGFuZGxlUmVtb3ZlQ2xpY2soKSB7XHJcbiAgICB0aGlzLnBhcmVudC5pdGVtcyA9IHRoaXMucGFyZW50Lml0ZW1zLmZpbHRlcigoYykgPT4gYyAhPT0gdGhpcy5ncm91cCk7XHJcbiAgICB0aGlzLmdyb3VwUnVsZUNoYW5nZWQuZW1pdCh7IGdyb3VwczogdGhpcy5ncm91cCwgY29tcG9uZW50OiB0aGlzIH0pO1xyXG4gIH1cclxuICBzYXZlUnVsZSgpIHtcclxuICAgIC8vIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oYyA9PiB7XHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHJldHVybiB0aGlzLnF1ZXJ5UnVsZS5zYXZlUnVsZSgpO1xyXG4gIH1cclxuICBhZGRSdWxlKCkge1xyXG4gICAgY29uc3QgaXRlbTogQVhRdWVyeUJ1aWxkZXJSdWxlID0gbmV3IEFYUXVlcnlCdWlsZGVyUnVsZSgpO1xyXG4gICAgaWYgKHRoaXMuZmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgLy8gIGl0ZW0uY2FwdGlvbiA9IHRoaXMuZmllbGRzWzBdLmNhcHRpb247XHJcbiAgICAgIC8vIGl0ZW0uZGF0YVR5cGUgPSB0aGlzLmZpZWxkc1swXS5kYXRhVHlwZTtcclxuICAgICAgLy8gIGl0ZW0uZGF0YUZpZWxkID0gdGhpcy5maWVsZHNbMF0uZGF0YUZpZWxkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgIH1cclxuICAgIGl0ZW0ub3BlcmF0b3IgPSAnZXF1YWwnO1xyXG5cclxuICAgIGlmIChpdGVtLmRhdGFUeXBlID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpdGVtLnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbS5kYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgaXRlbS52YWx1ZSA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZ3JvdXAuaXRlbXMgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuaXRlbXMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JvdXAuaXRlbXMucHVzaChpdGVtKTtcclxuICAgIHRoaXMucnVsZUNoYW5nZWQobnVsbCk7XHJcbiAgfVxyXG4gIGFkZEdyb3VwKCkge1xyXG4gICAgdGhpcy5zaG93R3JvdXBDb25kaXRpb24gPSB0cnVlO1xyXG4gIH1cclxuICBhZGRHcm91cE9SKCkge1xyXG4gICAgdGhpcy5tYWtlR3JvdXAoJ09SJyk7XHJcbiAgfVxyXG4gIGFkZEdyb3VwQU5EKCkge1xyXG4gICAgdGhpcy5tYWtlR3JvdXAoJ0FORCcpO1xyXG4gIH1cclxuICBtYWtlR3JvdXAoX2NvbmRpdGlvbikge1xyXG4gICAgbGV0IHI6IEFYUXVlcnlCdWlsZGVyR3JvdXAgPSBuZXcgQVhRdWVyeUJ1aWxkZXJHcm91cCgpO1xyXG4gICAgci5jb25kaXRpb24gPSBfY29uZGl0aW9uO1xyXG4gICAgci5pdGVtcyA9IFtdO1xyXG4gICAgci5xdWVyeVN0cmluZyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuaXRlbXMgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuaXRlbXMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZ3JvdXAuaXRlbXMucHVzaChyKTtcclxuICAgIHRoaXMuc2hvd0dyb3VwQ29uZGl0aW9uID0gZmFsc2U7XHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkKG51bGwpO1xyXG4gIH1cclxuICBjaGFuZ2VEZXRhaWxNb2RlKCkge1xyXG4gICAgLy9pZiAodGhpcy5wYXJlbnQpIHtcclxuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xyXG4gICAgLy8gIHRoaXMucnVsZUlzRWRpdGluZyA9IGZhbHNlO1xyXG4gICAgLy99XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFuZ2VDbGljaygpIHtcclxuICAgIGlmICh0aGlzLmdyb3VwLmNvbmRpdGlvbiA9PSAnT1InKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuY29uZGl0aW9uID0gJ0FORCc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdyb3VwLmNvbmRpdGlvbiA9ICdPUic7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcnVsZUNoYW5nZWQoZSkge1xyXG4gICAgdGhpcy5ncm91cC5xdWVyeVN0cmluZyA9IHRoaXMucXMuZ2V0UXVlcnlTdHJpbmcodGhpcy5ncm91cCwgJ3NpbXBsZScpO1xyXG4gICAgdGhpcy5ncm91cC5xdWVyeVN0cmluZ0VsYXN0aWMgPSB0aGlzLnFzLmdldFF1ZXJ5U3RyaW5nKHRoaXMuZ3JvdXAsICdlbGFzdGljJyk7XHJcbiAgICB0aGlzLmdyb3VwUnVsZUNoYW5nZWQuZW1pdCh7IGdyb3VwczogdGhpcy5ncm91cCwgY29tcG9uZW50OiB0aGlzIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvcXVlcnktYnVpbGRlci9xdWVyeS1idWlsZGVyLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFxRCxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25JLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT2hFO0lBd0JFLHNDQUFvQixFQUF5QjtRQUF6QixPQUFFLEdBQUYsRUFBRSxDQUF1QjtRQWxCN0MsY0FBUyxHQUFZLEtBQUssQ0FBQztRQU0zQixXQUFNLEdBQVUsRUFBRSxDQUFDO1FBR25CLFNBQUksR0FBbUIsS0FBSyxDQUFDO1FBRTdCLGdDQUFnQztRQUdoQyxxQkFBZ0IsR0FBMkMsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFFeEcsdUJBQWtCLEdBQVksS0FBSyxDQUFDO0lBRVksQ0FBQztJQUVqRCwrQ0FBUSxHQUFSLGNBQVksQ0FBQztJQUViLGlEQUFVLEdBQVYsVUFBVyxDQUEwQjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBYixDQUFhLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCx3REFBaUIsR0FBakI7UUFBQSxpQkFHQztRQUZDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsS0FBSyxLQUFJLENBQUMsS0FBSyxFQUFoQixDQUFnQixDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCwrQ0FBUSxHQUFSO1FBQ0UsbUNBQW1DO1FBQ25DLE1BQU07UUFDTixvQ0FBb0M7SUFDdEMsQ0FBQztJQUNELDhDQUFPLEdBQVA7UUFDRSxJQUFNLElBQUksR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLDBDQUEwQztZQUMxQywyQ0FBMkM7WUFDM0MsOENBQThDO1NBQy9DO2FBQU07U0FDTjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFO1lBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxTQUFTLEVBQUU7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELCtDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFDRCxpREFBVSxHQUFWO1FBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBQ0Qsa0RBQVcsR0FBWDtRQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELGdEQUFTLEdBQVQsVUFBVSxVQUFVO1FBQ2xCLElBQUksQ0FBQyxHQUF3QixJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDdkQsQ0FBQyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFDekIsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDYixDQUFDLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLFNBQVMsRUFBRTtZQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCx1REFBZ0IsR0FBaEI7UUFDRSxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsK0JBQStCO1FBQy9CLEdBQUc7SUFDTCxDQUFDO0lBRUQsd0RBQWlCLEdBQWpCO1FBQ0UsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQzlCO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDN0I7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrREFBVyxHQUFYLFVBQVksQ0FBQztRQUFiLGlCQVFDO1FBUEMsUUFBUSxDQUFDO1FBQ1QseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUM7WUFDOUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLEtBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsS0FBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RSxLQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUksRUFBRSxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztnQkFyRnVCLHFCQUFxQjs7SUF2QnJCO1FBQXZCLFNBQVMsQ0FBQyxXQUFXLENBQUM7a0NBQVksMkJBQTJCO21FQUFDO0lBQ3pCO1FBQXJDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQztrQ0FBTyx5QkFBeUI7OERBQUM7SUFFdEU7UUFEQyxLQUFLLEVBQUU7a0NBQ0QsbUJBQW1COytEQUFDO0lBSzNCO1FBREMsS0FBSyxFQUFFO2tDQUNBLG1CQUFtQjtnRUFBQztJQUc1QjtRQURDLEtBQUssRUFBRTs7Z0VBQ1c7SUFHbkI7UUFEQyxLQUFLLEVBQUU7OzhEQUNxQjtJQUs3QjtRQURDLE1BQU0sRUFBRTtrQ0FDUyxZQUFZOzBFQUEwRTtJQXBCN0YsNEJBQTRCO1FBTnhDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsK3hHQUFpRDtZQUNqRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7WUFDcEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7U0FDdEMsQ0FBQzt5Q0F5QndCLHFCQUFxQjtPQXhCbEMsNEJBQTRCLENBOEd4QztJQUFELG1DQUFDO0NBQUEsQUE5R0QsSUE4R0M7U0E5R1ksNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJSdWxlQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXJ1bGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJHcm91cEV2ZW50LCBBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudCwgQVhRdWVyeUJ1aWxkZXJSdWxlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcclxuaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXF1ZXJ5LWdyb3VwJyxcclxuICB0ZW1wbGF0ZVVybDogJ3F1ZXJ5LWJ1aWxkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGhvc3Q6IHsgY2xhc3M6ICdheCBheC1xdWVyeS1ncm91cCcgfSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFF1ZXJ5QnVpbGRlckdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdxdWVyeVJ1bGUnKSBxdWVyeVJ1bGU6IEFYUXVlcnlCdWlsZGVyUnVsZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XHJcbiAgQElucHV0KClcclxuICBncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cDtcclxuXHJcbiAgY29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGFyZW50OiBBWFF1ZXJ5QnVpbGRlckdyb3VwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpZWxkczogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBtb2RlOiAnbmV3JyB8ICdlZGl0JyA9ICduZXcnO1xyXG5cclxuICAvL3J1bGVJc0VkaXRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBncm91cFJ1bGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJHcm91cEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJHcm91cEV2ZW50PigpO1xyXG5cclxuICBzaG93R3JvdXBDb25kaXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBxczogQVhRdWVyeUJ1aWxkZXJTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIHJ1bGVEZWxldGUoZTogQVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQpIHtcclxuICAgIHRoaXMuZ3JvdXAuaXRlbXMgPSB0aGlzLmdyb3VwLml0ZW1zLmZpbHRlcigoYykgPT4gYyAhPT0gZS5pdGVtcyk7XHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkKG51bGwpO1xyXG4gIH1cclxuICBoYW5kbGVSZW1vdmVDbGljaygpIHtcclxuICAgIHRoaXMucGFyZW50Lml0ZW1zID0gdGhpcy5wYXJlbnQuaXRlbXMuZmlsdGVyKChjKSA9PiBjICE9PSB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMuZ3JvdXBSdWxlQ2hhbmdlZC5lbWl0KHsgZ3JvdXBzOiB0aGlzLmdyb3VwLCBjb21wb25lbnQ6IHRoaXMgfSk7XHJcbiAgfVxyXG4gIHNhdmVSdWxlKCkge1xyXG4gICAgLy8gdGhpcy5mb3JtLnZhbGlkYXRlKCkudGhlbihjID0+IHtcclxuICAgIC8vIH0pO1xyXG4gICAgLy8gcmV0dXJuIHRoaXMucXVlcnlSdWxlLnNhdmVSdWxlKCk7XHJcbiAgfVxyXG4gIGFkZFJ1bGUoKSB7XHJcbiAgICBjb25zdCBpdGVtOiBBWFF1ZXJ5QnVpbGRlclJ1bGUgPSBuZXcgQVhRdWVyeUJ1aWxkZXJSdWxlKCk7XHJcbiAgICBpZiAodGhpcy5maWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAvLyAgaXRlbS5jYXB0aW9uID0gdGhpcy5maWVsZHNbMF0uY2FwdGlvbjtcclxuICAgICAgLy8gaXRlbS5kYXRhVHlwZSA9IHRoaXMuZmllbGRzWzBdLmRhdGFUeXBlO1xyXG4gICAgICAvLyAgaXRlbS5kYXRhRmllbGQgPSB0aGlzLmZpZWxkc1swXS5kYXRhRmllbGQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgfVxyXG4gICAgaXRlbS5vcGVyYXRvciA9ICdlcXVhbCc7XHJcblxyXG4gICAgaWYgKGl0ZW0uZGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIGl0ZW0udmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIGlmIChpdGVtLmRhdGFUeXBlID09PSAnbnVtYmVyJykge1xyXG4gICAgICBpdGVtLnZhbHVlID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ncm91cC5pdGVtcyA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5ncm91cC5pdGVtcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncm91cC5pdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgdGhpcy5ydWxlQ2hhbmdlZChudWxsKTtcclxuICB9XHJcbiAgYWRkR3JvdXAoKSB7XHJcbiAgICB0aGlzLnNob3dHcm91cENvbmRpdGlvbiA9IHRydWU7XHJcbiAgfVxyXG4gIGFkZEdyb3VwT1IoKSB7XHJcbiAgICB0aGlzLm1ha2VHcm91cCgnT1InKTtcclxuICB9XHJcbiAgYWRkR3JvdXBBTkQoKSB7XHJcbiAgICB0aGlzLm1ha2VHcm91cCgnQU5EJyk7XHJcbiAgfVxyXG4gIG1ha2VHcm91cChfY29uZGl0aW9uKSB7XHJcbiAgICBsZXQgcjogQVhRdWVyeUJ1aWxkZXJHcm91cCA9IG5ldyBBWFF1ZXJ5QnVpbGRlckdyb3VwKCk7XHJcbiAgICByLmNvbmRpdGlvbiA9IF9jb25kaXRpb247XHJcbiAgICByLml0ZW1zID0gW107XHJcbiAgICByLnF1ZXJ5U3RyaW5nID0gJyc7XHJcbiAgICBpZiAodGhpcy5ncm91cC5pdGVtcyA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5ncm91cC5pdGVtcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncm91cC5pdGVtcy5wdXNoKHIpO1xyXG4gICAgdGhpcy5zaG93R3JvdXBDb25kaXRpb24gPSBmYWxzZTtcclxuICAgIHRoaXMucnVsZUNoYW5nZWQobnVsbCk7XHJcbiAgfVxyXG4gIGNoYW5nZURldGFpbE1vZGUoKSB7XHJcbiAgICAvL2lmICh0aGlzLnBhcmVudCkge1xyXG4gICAgdGhpcy5jb2xsYXBzZWQgPSAhdGhpcy5jb2xsYXBzZWQ7XHJcbiAgICAvLyAgdGhpcy5ydWxlSXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgICAvL31cclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYW5nZUNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMuZ3JvdXAuY29uZGl0aW9uID09ICdPUicpIHtcclxuICAgICAgdGhpcy5ncm91cC5jb25kaXRpb24gPSAnQU5EJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuY29uZGl0aW9uID0gJ09SJztcclxuICAgIH1cclxuICAgIHRoaXMucnVsZUNoYW5nZWQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBydWxlQ2hhbmdlZChlKSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIC8vIHRoaXMuZ3JvdXAucXVlcnlTdHJpbmcgPSB0aGlzLnFzLmdldFF1ZXJ5U3RyaW5nKHRoaXMuZ3JvdXAsICdzaW1wbGUnKTtcclxuICAgIHRoaXMucXMuZ2V0UXVlcnlTdHJpbmdTaW1wbGUodGhpcy5ncm91cCkudGhlbigoYykgPT4ge1xyXG4gICAgICB0aGlzLmdyb3VwLnF1ZXJ5U3RyaW5nID0gYztcclxuICAgICAgdGhpcy5ncm91cC5xdWVyeVN0cmluZ0VsYXN0aWMgPSB0aGlzLnFzLmdldFF1ZXJ5U3RyaW5nKHRoaXMuZ3JvdXAsICdlbGFzdGljJyk7XHJcbiAgICAgIHRoaXMuZ3JvdXBSdWxlQ2hhbmdlZC5lbWl0KHsgZ3JvdXBzOiB0aGlzLmdyb3VwLCBjb21wb25lbnQ6IHRoaXMgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|