barsa-sap-ui 1.0.452 → 1.0.453
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/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +15 -5
- package/fesm2015/barsa-sap-ui.mjs +14 -4
- package/fesm2015/barsa-sap-ui.mjs.map +1 -1
- package/fesm2020/barsa-sap-ui.mjs +14 -4
- package/fesm2020/barsa-sap-ui.mjs.map +1 -1
- package/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -154,7 +154,10 @@ export class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBas
|
|
|
154
154
|
this.originalMoList = [...value];
|
|
155
155
|
super._setValue(value);
|
|
156
156
|
if (this.multiInputComponent) {
|
|
157
|
-
this.multiInputComponent.selected
|
|
157
|
+
const deleted = this.multiInputComponent.selected.filter((i) => this.originalMoList.find((j) => i.Id === j.Id));
|
|
158
|
+
const added = this.originalMoList.filter((i) => this.multiInputComponent.selected.find((j) => i.Id === j.Id));
|
|
159
|
+
deleted.forEach((i) => this.multiInputComponent.selected.splice(this.multiInputComponent.selected.findIndex((j) => j.Id === i.Id), 1));
|
|
160
|
+
added.forEach((i) => this.multiInputComponent.selected.push(i));
|
|
158
161
|
}
|
|
159
162
|
}
|
|
160
163
|
_changeDropDownOpenState(val) {
|
|
@@ -279,10 +282,16 @@ export class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBas
|
|
|
279
282
|
}
|
|
280
283
|
});
|
|
281
284
|
arr.forEach((mo) => {
|
|
282
|
-
const selectedMo =
|
|
285
|
+
const selectedMo = this.originalMoList.find((c) => c.Id === mo.Id);
|
|
283
286
|
if (!selectedMo) {
|
|
284
|
-
|
|
285
|
-
|
|
287
|
+
if (mo.Data) {
|
|
288
|
+
mo.Data.$IsChecked = true;
|
|
289
|
+
addedItems.push(mo.Data);
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
mo.$IsChecked = true;
|
|
293
|
+
addedItems.push(mo);
|
|
294
|
+
}
|
|
286
295
|
}
|
|
287
296
|
});
|
|
288
297
|
if (deletedItems.length > 0) {
|
|
@@ -292,6 +301,7 @@ export class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBas
|
|
|
292
301
|
this.fireContextEvent('RequestCommand', this.context, 'Add', addedItems);
|
|
293
302
|
// this._ulvUi.viewerControl.fireEvent('rowclick');
|
|
294
303
|
}
|
|
304
|
+
this._cdr.detectChanges();
|
|
295
305
|
// this._changeDropDownOpenState(false);
|
|
296
306
|
}
|
|
297
307
|
}
|
|
@@ -328,4 +338,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
328
338
|
}], GetSelectionData: [{
|
|
329
339
|
type: Input
|
|
330
340
|
}] } });
|
|
331
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi91aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFFBQVEsRUFBb0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFZekUsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLDRCQUE0QjtJQU4xRjs7UUFxQkksV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztRQUN0RSxvQkFBZSxHQUFHLElBQUksQ0FBQyxv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QUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3pFLG1EQUFtRDtTQUN0RDtRQUNELHlDQUF5QztJQUM3QyxDQUFDOztxSUFsVFEsd0NBQXdDO3lIQUF4Qyx3Q0FBd0Msd2FBQ3RDLG1CQUFtQix3SUFFRSxXQUFXLG9EQ3JCL0MsaXdMQXVIQTsyRkRyR2Esd0NBQXdDO2tCQU5wRCxTQUFTOytCQUNJLDBDQUEwQyxtQkFHbkMsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHaEQsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBRWhDLEtBQUs7c0JBQWpCLEtBQUs7Z0JBMkNOLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU3pDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPN0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF5RjlCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmLCBNdWx0aUlucHV0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhcnNhQXBpLCBSZXBvcnRNb2RlbCwgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xyXG5pbnRlcmZhY2UgTGluZWFySXRlbU1vIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBEYXRhOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgSWQ6IHN0cmluZztcclxuICAgIFRleHQ6IHN0cmluZztcclxufVxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpTGluZWFyTGlzdENvbnRhaW5lcldpdGhCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBEZXZpY2VJbmZvRmllbGRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoTXVsdGlJbnB1dENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIG11bHRpSW5wdXRDb21wb25lbnQ6IE11bHRpSW5wdXRDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXHJcbiAgICBkaWFsb2dDb250YWluZXI6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBASW5wdXQoKSBzZXQgVWx2VWkodmFsOiB7IFNldHRpbmc6IFJlcG9ydE1vZGVsIH0pIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vTGlzdCA9IHZhbC5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdDtcclxuICAgICAgICAgICAgdGhpcy5kcm9wRG93blZhbHVlc1NvdXJjZS5uZXh0KG1vTGlzdCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgbW9MaXN0ID0gW107XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UubmV4dChtb0xpc3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91bHZVaSA9IHZhbDtcclxuICAgIH1cclxuICAgIG1vYmlsZSA9IGZhbHNlO1xyXG4gICAgZHJvcERvd25WYWx1ZXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1ldGFvYmplY3REYXRhTW9kZWxbXT4oW10pO1xyXG4gICAgZHJvcERvd25WYWx1ZXMkID0gdGhpcy5kcm9wRG93blZhbHVlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxyXG4gICAgICAgIG1hcCgobW9MaXN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHQgPSBtb0xpc3QuZmlsdGVyKChjKSA9PiB0aGlzLnZhbHVlLmZpbmQoKGQpID0+IGQuSWQgPT09IGMuSWQpID09PSB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICByZXR1cm4gdDtcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YXAoXHJcbiAgICAgICAgICAgIChtb0xpc3QpID0+XHJcbiAgICAgICAgICAgICAgICAodGhpcy5maXJzdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJENhcHRpb246IG1vTGlzdFswXT8uJENhcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgSWQ6IG1vTGlzdFswXT8uSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgVGV4dDogbW9MaXN0WzBdPy4kQ2FwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBEYXRhOiBtb0xpc3RbMF1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgKTtcclxuICAgIHNlbGVjdGVkOiBhbnlbXTtcclxuICAgIHJlcG9ydCA9IG51bGw7XHJcbiAgICB0ZXJtID0gJyc7XHJcbiAgICB0ZXJtU291cmNlID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gICAgb3JpZ2luYWxNb0xpc3Q6IExpbmVhckl0ZW1Nb1tdO1xyXG4gICAgdmFsdWU6IExpbmVhckl0ZW1Nb1tdO1xyXG4gICAgcnRsID0gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5Jc1J0bDtcclxuICAgIGRpYWxvZ1JlZjogRGlhbG9nUmVmO1xyXG4gICAgZGlhbG9nT3BlbjogYm9vbGVhbjtcclxuICAgIGZpcnN0SXRlbTogTGluZWFySXRlbU1vO1xyXG4gICAgcGFyYW1ldGVyczogVWlMaW5lYXJMaXN0Q29udGFpbmVyU2V0dGluZztcclxuICAgIHByaXZhdGUgc2hvd1VsdlNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIF91bHZVaTogeyBba2V5OiBzdHJpbmddOiBhbnk7IFNldHRpbmc6IFJlcG9ydE1vZGVsIH07XHJcbiAgICBwcml2YXRlIF90cmlnZ2VyQ2xpY2tlZDogYm9vbGVhbjtcclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudGVybSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnUmVxdWVzdENvbW1hbmQnLCB0aGlzLmNvbnRleHQsICdOZXcnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RG93bigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMudGVybSAmJiB0aGlzLmhpZGRlbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlcXVlc3RGaWx0ZXIyJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxyXG4gICAgb25LZXlFc2MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRHJvcERvd25PcGVuU3RhdGUoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VWx2U291cmNlXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fb3BlblVsdigpKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMucmVwb3J0ID0gdGhpcy5TZXR0aW5nLlJlcG9ydDtcclxuXHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbE1vTGlzdCA9IFsuLi50aGlzLnZhbHVlXTtcclxuICAgICAgICB0aGlzLnRlcm1Tb3VyY2VcclxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHRlcm0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRlcm0gPSB0ZXJtO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGVybSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BEb3duVmFsdWVzU291cmNlLm5leHQoW10pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlcXVlc3RGaWx0ZXInLCB0ZXJtKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQuc2VsZWN0ZWQgPSB0aGlzLm9yaWdpbmFsTW9MaXN0O1xyXG4gICAgICAgIC8vIGNvbnN0IG9sZEhhbmxkZSA9IHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5fYWRkT25CdXR0b25DbGlja2VkO1xyXG4gICAgICAgIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5fYWRkT25CdXR0b25DbGlja2VkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVBZGRvbkJ1dHRvbkNsaWNrZWQoKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VhcmNoVGVybUNoYW5nZSh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRlcm1Tb3VyY2UubmV4dCh0ZXJtKTtcclxuICAgIH1cclxuICAgIG9uT3BlblJlcG9ydCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2tlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50ZXJtU291cmNlLm5leHQoJycpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1RyaWdnZXJDbGljaycsIHRoaXMuY29udGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RlZENoYW5nZShhcnI6IExpbmVhckl0ZW1Nb1tdKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaGFuZ2VkKGFycik7XHJcbiAgICB9XHJcbiAgICBvblJlbW92ZVNlbGVjdGVkKG1vKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgncm93ZGVzZWxlY3QnLCB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLCAtMSwgbW8pO1xyXG4gICAgfVxyXG4gICAgb25EaXNtaXNzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2Nsb3NlRGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZWxlY3RlZENoYW5nZWQodGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgICB0aGlzLl9jbG9zZURpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgb25DbGVhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnVsdlVpLnZpZXdlckNvbnRyb2wuQ2xlYXJBbGxTZWxlY3RlZCgpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVBZGRvbkJ1dHRvbkNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMucGFyYW1ldGVycz8uRXhlY3V0ZUFkZG9uQnV0dG9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2V4ZWN1dGVDb21tYW5kKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbk9wZW5SZXBvcnQoKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZXhlY3V0ZUNvbW1hbmQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgeyBBZGRvbkJ1dHRvbkNvbW1hbmQgfSA9IHRoaXMucGFyYW1ldGVycztcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdBZGRvbkJ1dHRvbkNsaWNrZWQnLCB0aGlzLmNvbnRleHQsIEFkZG9uQnV0dG9uQ29tbWFuZCk7XHJcbiAgICB9XHJcbiAgICBfdHJhY2tCeVNlbGVjdGVkRm4oX2luZGV4OiBudW1iZXIsIGl0ZW06IE1ldGFvYmplY3REYXRhTW9kZWwpOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBpdGVtLklkO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXlGdW5jKG9iajogYW55KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gb2JqLlRleHQgPz8gb2JqLiRDYXB0aW9uO1xyXG4gICAgfVxyXG4gICAgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9yaWdpbmFsTW9MaXN0ID0gWy4uLnZhbHVlXTtcclxuICAgICAgICBzdXBlci5fc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgIGlmICh0aGlzLm11bHRpSW5wdXRDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50LnNlbGVjdGVkID0gdGhpcy5vcmlnaW5hbE1vTGlzdDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgR2V0VGV4dEl0ZW1WYWx1ZSA9ICgpID0+IHRoaXMudGVybTtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBzaG93ID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX29wZW5VbHYoKTtcclxuICAgIH07XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgaGlkZSA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VEcm9wRG93bk9wZW5TdGF0ZShmYWxzZSk7XHJcbiAgICB9O1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIGhpZGRlbiA9ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50ICYmICF0aGlzLm11bHRpSW5wdXRDb21wb25lbnQub3BlbiAmJiAhdGhpcy5kaWFsb2dPcGVuO1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpIEdldFNlbGVjdGlvbkRhdGEgPSAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5zZWxlY3RlZDtcclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgfTtcclxuICAgIHByaXZhdGUgX2NoYW5nZURyb3BEb3duT3BlblN0YXRlKHZhbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm11bHRpSW5wdXRDb21wb25lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Lm9wZW4gPSB2YWw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfb3BlblVsdigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5yZXBvcnQgJiYgIXRoaXMudGVybSAmJiB0aGlzLl90cmlnZ2VyQ2xpY2tlZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dPcGVuIHx8ICF0aGlzLl91bHZVaSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IHZpZXc6IGFueSA9IHRoaXMuX3VsdlVpLlNldHRpbmcuVmlldztcclxuICAgICAgICAgICAgdmlldy5Jc0NoZWNrTGlzdCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nT3BlbiA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnN0IGRldmljZVNpemUgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemU7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhcmdlU2NyZWVuID0gZGV2aWNlU2l6ZSA9PT0gJ2wnIHx8IGRldmljZVNpemUgPT09ICd4bCc7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcclxuICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICB1bHZVaTogdGhpcy5fdWx2VWksXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKCdTZWxlY3QnKSxcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zOiBbLi4udGhpcy5vcmlnaW5hbE1vTGlzdF1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBlc2NLZXlDbG9zZWFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgZGlhbG9nUGFuZWxDbGFzczogYHVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2cgJHtkZXZpY2VTaXplID8gJ3Vsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2ctbW9iaWxlJyA6ICcnfWBcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgaWYgKGxhcmdlU2NyZWVuKSB7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNjB2dyc7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJzYwdmgnO1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1pbldpZHRoID0gJzYwMCc7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcubWluSGVpZ2h0ID0gJzM2MCc7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcubW9iaWxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5mdWxsU2NyZWVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5fdWx2VWk/LlNldHRpbmc/LkV4dHJhPy5EZWZhdWx0Q29tbWFuZHNBY2Nlc3M/LlZpZXcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3VsdlVpLlNldHRpbmcuRXh0cmEuRGVmYXVsdENvbW1hbmRzQWNjZXNzLlZpZXcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBkYXRhU2V0dGluZyA9IHRoaXMuX3VsdlVpLlNldHRpbmcuRGF0YTtcclxuICAgICAgICAgICAgaWYgKGxhcmdlU2NyZWVuICYmIGRhdGFTZXR0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YVNldHRpbmcuUGFnaW5nPy5IYXNQYWdpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJzEwMHZoJztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9IGRhdGFTZXR0aW5nLk1vRGF0YUxpc3QubGVuZ3RoID4gMTAgPyAnMTAwdmgnIDogJzYwdmgnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmRpYWxvZ0NvbnRhaW5lciwgZGlhbG9nQ29uZmlnKTtcclxuICAgICAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5zZWxlY3RlZCA9IHRoaXMub3JpZ2luYWxNb0xpc3Q7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX3VsdlVpLiRSZWdpc3RlckV2ZW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZVaS4kUmVnaXN0ZXJFdmVudCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5vbih7XHJcbiAgICAgICAgICAgICAgICAgICAgYWZ0ZXJyZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5yZWFkeVRvU2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VsdlVpLnZpZXdlckNvbnRyb2wuQ2xlYXJBbGxTZWxlY3RlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLnNlbGVjdFJlY29yZHModGhpcy5vcmlnaW5hbE1vTGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLm9yaWdpbmFsTW9MaXN0XTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJvd1NlbGVjdEFsbDogKGNvbnRleHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkTW9Ub1NlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByb3dEZXNlbGVjdEFsbDogKGNvbnRleHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByb3dzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2lmICh0aGlzLm9yaWdpbmFsTW9MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g2YLYqNmEINin2LIg2LHZhtiv2LEg2LTYr9mGINin24zZhiDYp9iq2YHYp9mCINmF24wg2KfZgdiq2KfYr1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRNb1RvU2VsZWN0ZWQobW8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJvd2Rlc2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IGRpYWxvZ1JlZjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEcm9wRG93bk9wZW5TdGF0ZSh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2xvc2VEaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRpYWxvZ09wZW4gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FkZE1vVG9TZWxlY3RlZChtbzogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFtbykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zO1xyXG4gICAgICAgIGlmICghc2VsZWN0ZWQuZmluZCgoYykgPT4gYy5JZCA9PT0gbW8uSWQpKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgSWQ6IG1vLklkLFxyXG4gICAgICAgICAgICAgICAgVGV4dDogbW8uJENhcHRpb24sXHJcbiAgICAgICAgICAgICAgICBEYXRhOiBtbyxcclxuICAgICAgICAgICAgICAgICRDYXB0aW9uOiBtby4kQ2FwdGlvblxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVtb3ZlRnJvbVNlbGVjdGVkKG1vOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGMuSWQgIT09IG1vLklkKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZWxlY3RlZENoYW5nZWQoYXJyOiBMaW5lYXJJdGVtTW9bXSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRJdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gW107XHJcbiAgICAgICAgY29uc3QgYWRkZWRJdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gW107XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goKG1vKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTW8gPSBhcnIuZmluZCgoYykgPT4gYy5JZCA9PT0gbW8uSWQpO1xyXG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkTW8pIHtcclxuICAgICAgICAgICAgICAgIG1vLkRhdGEuJElzQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlZEl0ZW1zLnB1c2gobW8uRGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBhcnIuZm9yRWFjaCgobW8pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNbyA9IHZhbHVlLmZpbmQoKGMpID0+IGMuSWQgPT09IG1vLklkKTtcclxuICAgICAgICAgICAgaWYgKCFzZWxlY3RlZE1vKSB7XHJcbiAgICAgICAgICAgICAgICBhZGRlZEl0ZW1zLnB1c2gobW8uRGF0YSB8fCBtbyk7XHJcbiAgICAgICAgICAgICAgICBtby4kSXNDaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoZGVsZXRlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdSZXF1ZXN0Q29tbWFuZCcsIHRoaXMuY29udGV4dCwgJ0RlbGV0ZScsIGRlbGV0ZWRJdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhZGRlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdSZXF1ZXN0Q29tbWFuZCcsIHRoaXMuY29udGV4dCwgJ0FkZCcsIGFkZGVkSXRlbXMpO1xyXG4gICAgICAgICAgICAvLyB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgncm93Y2xpY2snKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gIHRoaXMuX2NoYW5nZURyb3BEb3duT3BlblN0YXRlKGZhbHNlKTtcclxuICAgIH1cclxufVxyXG5pbnRlcmZhY2UgVWlMaW5lYXJMaXN0Q29udGFpbmVyU2V0dGluZyBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgRXhlY3V0ZUFkZG9uQnV0dG9uOiBib29sZWFuO1xyXG4gICAgQWRkb25CdXR0b25Db21tYW5kOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG59XHJcbiIsIjxmZC1tdWx0aS1pbnB1dFxyXG4gICAgW2lucHV0SWRdPVwiaWRcIlxyXG4gICAgW2NsYXNzLmNvbnRyb2wtcmVhZG9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZVwiXHJcbiAgICBbZHJvcGRvd25WYWx1ZXNdPVwiKGRyb3BEb3duVmFsdWVzJCB8IGFzeW5jKSEhXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJTZXR0aW5nLkNvbnRyb2xGaWVsZENhcHRpb25UcmFuc2xhdGVkIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgIFtkaXNwbGF5Rm5dPVwiZGlzcGxheUZ1bmNcIlxyXG4gICAgW3Nob3dBbGxCdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgW2Rpc3BsYXlBZGRvbkJ1dHRvbl09XCIocGFyYW1ldGVycz8uRXhlY3V0ZUFkZG9uQnV0dG9uIHx8ICEhcmVwb3J0KSAmJiAoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlXCJcclxuICAgIFthbGxvd05ld1Rva2Vuc109XCJmYWxzZVwiXHJcbiAgICBbaW5jbHVkZXNdPVwidHJ1ZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIChzZWFyY2hUZXJtQ2hhbmdlKT1cIm9uU2VhcmNoVGVybUNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdGVkQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJfaGFuZGxlQWRkb25CdXR0b25DbGlja2VkKClcIlxyXG4+PC9mZC1tdWx0aS1pbnB1dD5cclxuXHJcbjwhLS0gPGJ1dHRvblxyXG4gICAgKm5nSWY9XCJyZXBvcnRcIlxyXG4gICAgZmQtYnV0dG9uXHJcbiAgICBbYXR0ci5ydGxdPVwicnRsXCJcclxuICAgIFthcmlhLWxhYmVsXT1cIidBZHZhbmNlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgZ2x5cGg9XCJ2YWx1ZS1oZWxwXCJcclxuICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpISFcIlxyXG4gICAgKGNsaWNrKT1cIm9uT3BlblJlcG9ydCgpXCJcclxuPjwvYnV0dG9uPiAtLT5cclxuXHJcbjxuZy10ZW1wbGF0ZSBsZXQtZGlhbG9nIGxldC1kaWFsb2dDb25maWc9XCJkaWFsb2dDb25maWdcIiAjY29udGFpbmVyPlxyXG4gICAgPGZkLWRpYWxvZyBbZGlhbG9nQ29uZmlnXT1cImRpYWxvZ0NvbmZpZ1wiIFtkaWFsb2dSZWZdPVwiZGlhbG9nXCIgI2RpYWxvZ1RwbD5cclxuICAgICAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZkVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDEgaWQ9XCJmZC1kaWFsb2ctaGVhZGVyLTNcIiBmZC10aXRsZT57eyBkaWFsb2cuZGF0YS50aXRsZSB9fTwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkaWFsb2dDb25maWcuaGVpZ2h0ICE9PSAnMTAwdmgnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiZnVsbHNjcmVlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuID8gJ2V4aXRmdWxsc2NyZWVuJyA6ICdyZXNpemUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbkRpYWxvZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZnVsbHNjcmVlbl09XCJkaWFsb2cuZGF0YS5mdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5DaGFuZ2VkKT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW4gPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlhbG9nXT1cImRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2dDb21wb25lbnRdPVwiZGlhbG9nVHBsXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGFyaWFMYWJlbD1cImNsb3NlXCIgZ2x5cGg9XCJkZWNsaW5lXCIgKGNsaWNrKT1cIm9uRGlzbWlzcygpXCI+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwhLS0gPGgzIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMz5cclxuICAgICAgPGJ1dHRvbiBmZC1kaWFsb2ctY2xvc2UtYnV0dG9uPjwvYnV0dG9uPiAtLT5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlhbG9nLmRhdGEudWx2VWkgYXMgdWx2VWlcIj5cclxuICAgICAgICAgICAgICAgIDxic3UtdWktdWx2LW1haW4tdWkgW2NvbnRleHRdPVwidWx2VWlcIiBjbGFzcz1cImxpbmVhci1saXN0LXNlbGVjdGlvblwiPjwvYnN1LXVpLXVsdi1tYWluLXVpPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxyXG5cclxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3RlciBjbGFzcz1cImxpbmVhci1mb290ZXJcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGZkVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3JvdyB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19zZWxlY3Rpb24tcm93XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInU2VsZWN0ZWRJdGVtc0FuZENvbmRpdGlvbnMnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aDUgZmQtdGl0bGUgY2xhc3M9XCJzZWxlY3RlZC1hbmQtY29uZGl0aW9uLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPnt7ICdTZWxlY3RlZEl0ZW1zQW5kQ29uZGl0aW9ucycgfCBiYmJUcmFuc2xhdGUgfX0gPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe3sgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoIHx8IDAgfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX190b2tlbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC10b29sYmFyICpuZ0lmPVwiZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VsZWN0ZWQgaXRlbXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRva2VuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZE92ZXJmbG93UHJpb3JpdHk9XCJoaWdoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtdmFsdWUtaGVscC1kaWFsb2dfX3NlbGVjdGlvbi10b2tlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwib25SZW1vdmVTZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gb2YgZGlhbG9nLmRhdGEuc2VsZWN0ZWRJdGVtcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4IGFzIHNlbGVjdGVkSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiBfdHJhY2tCeVNlbGVjdGVkRm5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGl0ZW0uVGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXRvb2xiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vucy1jbGVhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdseXBoPVwiZGVjbGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nX19hY3Rpb25zLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc3VjY2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInT0snIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk9rKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWRpc21pc3MtZGlhbG9nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWRpYWxvZy1kZWNpc2l2ZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidDYW5jZWwnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EaXNtaXNzKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cclxuICAgIDwvZmQtZGlhbG9nPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
|
|
341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi91aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbGluZWFyLWxpc3QtY29udGFpbmVyLXdpdGgtYnV0dG9uL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFFBQVEsRUFBb0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFjekUsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLDRCQUE0QjtJQU4xRjs7UUFxQkksV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztRQUN0RSxvQkFBZSxHQUFHLElBQUksQ0FBQyxv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QztZQUN6RSxtREFBbUQ7U0FDdEQ7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLHlDQUF5QztJQUM3QyxDQUFDOztxSUF4VFEsd0NBQXdDO3lIQUF4Qyx3Q0FBd0Msd2FBQ3RDLG1CQUFtQix3SUFFRSxXQUFXLG9EQ3RCL0MsaXdMQXVIQTsyRkRwR2Esd0NBQXdDO2tCQU5wRCxTQUFTOytCQUNJLDBDQUEwQyxtQkFHbkMsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHaEQsZUFBZTtzQkFEZCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBRWhDLEtBQUs7c0JBQWpCLEtBQUs7Z0JBMENOLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU3pDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPN0MsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnRzlCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmLCBNdWx0aUlucHV0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgQmFyc2FBcGksIE1ldGFvYmplY3REYXRhTW9kZWwsIFJlcG9ydE1vZGVsIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBEZXZpY2VJbmZvRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGV2aWNlLWluZm8tZmllbGQtYmFzZSc7XHJcblxyXG5pbnRlcmZhY2UgTGluZWFySXRlbU1vIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBEYXRhOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgSWQ6IHN0cmluZztcclxuICAgIFRleHQ6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWxpbmVhci1saXN0LWNvbnRhaW5lci13aXRoLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1saW5lYXItbGlzdC1jb250YWluZXItd2l0aC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUxpbmVhckxpc3RDb250YWluZXJXaXRoQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKE11bHRpSW5wdXRDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgICBtdWx0aUlucHV0Q29tcG9uZW50OiBNdWx0aUlucHV0Q29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gICAgZGlhbG9nQ29udGFpbmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQElucHV0KCkgc2V0IFVsdlVpKHZhbDogeyBTZXR0aW5nOiBSZXBvcnRNb2RlbCB9KSB7XHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgICBjb25zdCBtb0xpc3QgPSB2YWwuU2V0dGluZy5EYXRhLk1vRGF0YUxpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UubmV4dChtb0xpc3QpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vTGlzdCA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmRyb3BEb3duVmFsdWVzU291cmNlLm5leHQobW9MaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdWx2VWkgPSB2YWw7XHJcbiAgICB9XHJcbiAgICBtb2JpbGUgPSBmYWxzZTtcclxuICAgIGRyb3BEb3duVmFsdWVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZXRhb2JqZWN0RGF0YU1vZGVsW10+KFtdKTtcclxuICAgIGRyb3BEb3duVmFsdWVzJCA9IHRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcclxuICAgICAgICBtYXAoKG1vTGlzdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0ID0gbW9MaXN0LmZpbHRlcigoYykgPT4gdGhpcy52YWx1ZS5maW5kKChkKSA9PiBkLklkID09PSBjLklkKSA9PT0gdW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFwKFxyXG4gICAgICAgICAgICAobW9MaXN0KSA9PlxyXG4gICAgICAgICAgICAgICAgKHRoaXMuZmlyc3RJdGVtID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICRDYXB0aW9uOiBtb0xpc3RbMF0/LiRDYXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIElkOiBtb0xpc3RbMF0/LklkLFxyXG4gICAgICAgICAgICAgICAgICAgIFRleHQ6IG1vTGlzdFswXT8uJENhcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgRGF0YTogbW9MaXN0WzBdXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICk7XHJcbiAgICBzZWxlY3RlZDogYW55W107XHJcbiAgICByZXBvcnQgPSBudWxsO1xyXG4gICAgdGVybSA9ICcnO1xyXG4gICAgdGVybVNvdXJjZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuICAgIG9yaWdpbmFsTW9MaXN0OiBMaW5lYXJJdGVtTW9bXTtcclxuICAgIHZhbHVlOiBMaW5lYXJJdGVtTW9bXTtcclxuICAgIHJ0bCA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNSdGw7XHJcbiAgICBkaWFsb2dSZWY6IERpYWxvZ1JlZjtcclxuICAgIGRpYWxvZ09wZW46IGJvb2xlYW47XHJcbiAgICBmaXJzdEl0ZW06IExpbmVhckl0ZW1NbztcclxuICAgIHBhcmFtZXRlcnM6IFVpTGluZWFyTGlzdENvbnRhaW5lclNldHRpbmc7XHJcbiAgICBwcml2YXRlIHNob3dVbHZTb3VyY2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSBfdWx2VWk6IHsgW2tleTogc3RyaW5nXTogYW55OyBTZXR0aW5nOiBSZXBvcnRNb2RlbCB9O1xyXG4gICAgcHJpdmF0ZSBfdHJpZ2dlckNsaWNrZWQ6IGJvb2xlYW47XHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RW50ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudGVybSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnUmVxdWVzdENvbW1hbmQnLCB0aGlzLmNvbnRleHQsICdOZXcnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RG93bigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMudGVybSAmJiB0aGlzLmhpZGRlbigpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlcXVlc3RGaWx0ZXIyJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2MnLCBbJyRldmVudCddKVxyXG4gICAgb25LZXlFc2MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRHJvcERvd25PcGVuU3RhdGUoZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VWx2U291cmNlXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fb3BlblVsdigpKTtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMucmVwb3J0ID0gdGhpcy5TZXR0aW5nLlJlcG9ydDtcclxuICAgICAgICB0aGlzLm9yaWdpbmFsTW9MaXN0ID0gWy4uLnRoaXMudmFsdWVdO1xyXG4gICAgICAgIHRoaXMudGVybVNvdXJjZVxyXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAgICAgICAgICAgICAgIHRhcCgodGVybSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGVybSA9IHRlcm07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXJtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcERvd25WYWx1ZXNTb3VyY2UubmV4dChbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnUmVxdWVzdEZpbHRlcicsIHRlcm0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5zZWxlY3RlZCA9IHRoaXMub3JpZ2luYWxNb0xpc3Q7XHJcbiAgICAgICAgLy8gY29uc3Qgb2xkSGFubGRlID0gdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Ll9hZGRPbkJ1dHRvbkNsaWNrZWQ7XHJcbiAgICAgICAgdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Ll9hZGRPbkJ1dHRvbkNsaWNrZWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZUFkZG9uQnV0dG9uQ2xpY2tlZCgpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBvblNlYXJjaFRlcm1DaGFuZ2UodGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50ZXJtU291cmNlLm5leHQodGVybSk7XHJcbiAgICB9XHJcbiAgICBvbk9wZW5SZXBvcnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudGVybVNvdXJjZS5uZXh0KCcnKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdUcmlnZ2VyQ2xpY2snLCB0aGlzLmNvbnRleHQpO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3RlZENoYW5nZShhcnI6IExpbmVhckl0ZW1Nb1tdKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaGFuZ2VkKGFycik7XHJcbiAgICB9XHJcbiAgICBvblJlbW92ZVNlbGVjdGVkKG1vKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLmZpcmVFdmVudCgncm93ZGVzZWxlY3QnLCB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLCAtMSwgbW8pO1xyXG4gICAgfVxyXG4gICAgb25EaXNtaXNzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2Nsb3NlRGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgICBvbk9rKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hhbmdlZCh0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgICAgIHRoaXMuX2Nsb3NlRGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgICBvbkNsZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEudWx2VWkudmlld2VyQ29udHJvbC5DbGVhckFsbFNlbGVjdGVkKCk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2hhbmRsZUFkZG9uQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5wYXJhbWV0ZXJzPy5FeGVjdXRlQWRkb25CdXR0b24pIHtcclxuICAgICAgICAgICAgdGhpcy5fZXhlY3V0ZUNvbW1hbmQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm9uT3BlblJlcG9ydCgpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9leGVjdXRlQ29tbWFuZCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB7IEFkZG9uQnV0dG9uQ29tbWFuZCB9ID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ0FkZG9uQnV0dG9uQ2xpY2tlZCcsIHRoaXMuY29udGV4dCwgQWRkb25CdXR0b25Db21tYW5kKTtcclxuICAgIH1cclxuICAgIF90cmFja0J5U2VsZWN0ZWRGbihfaW5kZXg6IG51bWJlciwgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbCk6IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uSWQ7XHJcbiAgICB9XHJcbiAgICBkaXNwbGF5RnVuYyhvYmo6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG9iai5UZXh0ID8/IG9iai4kQ2FwdGlvbjtcclxuICAgIH1cclxuICAgIF9zZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbE1vTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aUlucHV0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZWQgPSB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQuc2VsZWN0ZWQuZmlsdGVyKChpKSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5hbE1vTGlzdC5maW5kKChqKSA9PiBpLklkID09PSBqLklkKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjb25zdCBhZGRlZCA9IHRoaXMub3JpZ2luYWxNb0xpc3QuZmlsdGVyKChpKSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50LnNlbGVjdGVkLmZpbmQoKGopID0+IGkuSWQgPT09IGouSWQpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGRlbGV0ZWQuZm9yRWFjaCgoaSkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5zZWxlY3RlZC5zcGxpY2UoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50LnNlbGVjdGVkLmZpbmRJbmRleCgoaikgPT4gai5JZCA9PT0gaS5JZCksXHJcbiAgICAgICAgICAgICAgICAgICAgMVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBhZGRlZC5mb3JFYWNoKChpKSA9PiB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQuc2VsZWN0ZWQucHVzaChpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIEdldFRleHRJdGVtVmFsdWUgPSAoKSA9PiB0aGlzLnRlcm07XHJcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgQElucHV0KCkgc2hvdyA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9vcGVuVWx2KCk7XHJcbiAgICB9O1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIGhpZGUgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRHJvcERvd25PcGVuU3RhdGUoZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBoaWRkZW4gPSAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudCAmJiAhdGhpcy5tdWx0aUlucHV0Q29tcG9uZW50Lm9wZW4gJiYgIXRoaXMuZGlhbG9nT3BlbjtcclxuICAgIH07XHJcbiAgICBASW5wdXQoKSBHZXRTZWxlY3Rpb25EYXRhID0gKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQuc2VsZWN0ZWQ7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEcm9wRG93bk9wZW5TdGF0ZSh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aUlucHV0Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMubXVsdGlJbnB1dENvbXBvbmVudC5vcGVuID0gdmFsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgX29wZW5VbHYoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVwb3J0ICYmICF0aGlzLnRlcm0gJiYgdGhpcy5fdHJpZ2dlckNsaWNrZWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nT3BlbiB8fCAhdGhpcy5fdWx2VWkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCB2aWV3OiBhbnkgPSB0aGlzLl91bHZVaS5TZXR0aW5nLlZpZXc7XHJcbiAgICAgICAgICAgIHZpZXcuSXNDaGVja0xpc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ09wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBkZXZpY2VTaXplID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplO1xyXG4gICAgICAgICAgICBjb25zdCBsYXJnZVNjcmVlbiA9IGRldmljZVNpemUgPT09ICdsJyB8fCBkZXZpY2VTaXplID09PSAneGwnO1xyXG4gICAgICAgICAgICBjb25zdCBkaWFsb2dDb25maWc6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdWx2VWk6IHRoaXMuX3VsdlVpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLl9iYmJQaXBlLnRyYW5zZm9ybSgnU2VsZWN0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtczogWy4uLnRoaXMub3JpZ2luYWxNb0xpc3RdXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXNjS2V5Q2xvc2VhYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGRpYWxvZ1BhbmVsQ2xhc3M6IGB1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nICR7ZGV2aWNlU2l6ZSA/ICd1bHYtc2VsZWN0aW9uLWZvcm0tZGlhbG9nLW1vYmlsZScgOiAnJ31gXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGlmIChsYXJnZVNjcmVlbikge1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzYwdncnO1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICc2MHZoJztcclxuICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5taW5XaWR0aCA9ICc2MDAnO1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1pbkhlaWdodCA9ICczNjAnO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLm1vYmlsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBkaWFsb2dDb25maWcuZnVsbFNjcmVlbiA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3VsdlVpPy5TZXR0aW5nPy5FeHRyYT8uRGVmYXVsdENvbW1hbmRzQWNjZXNzPy5WaWV3KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl91bHZVaS5TZXR0aW5nLkV4dHJhLkRlZmF1bHRDb21tYW5kc0FjY2Vzcy5WaWV3ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgZGF0YVNldHRpbmcgPSB0aGlzLl91bHZVaS5TZXR0aW5nLkRhdGE7XHJcbiAgICAgICAgICAgIGlmIChsYXJnZVNjcmVlbiAmJiBkYXRhU2V0dGluZykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGFTZXR0aW5nLlBhZ2luZz8uSGFzUGFnaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICcxMDB2aCc7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ0NvbmZpZy5oZWlnaHQgPSBkYXRhU2V0dGluZy5Nb0RhdGFMaXN0Lmxlbmd0aCA+IDEwID8gJzEwMHZoJyA6ICc2MHZoJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy5kaWFsb2dDb250YWluZXIsIGRpYWxvZ0NvbmZpZyk7XHJcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpSW5wdXRDb21wb25lbnQuc2VsZWN0ZWQgPSB0aGlzLm9yaWdpbmFsTW9MaXN0O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl91bHZVaS4kUmVnaXN0ZXJFdmVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkuJFJlZ2lzdGVyRXZlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5vbih7XHJcbiAgICAgICAgICAgICAgICAgICAgYWZ0ZXJyZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdWx2VWkudmlld2VyQ29udHJvbC5yZWFkeVRvU2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VsdlVpLnZpZXdlckNvbnRyb2wuQ2xlYXJBbGxTZWxlY3RlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91bHZVaS52aWV3ZXJDb250cm9sLnNlbGVjdFJlY29yZHModGhpcy5vcmlnaW5hbE1vTGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLm9yaWdpbmFsTW9MaXN0XTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJvd1NlbGVjdEFsbDogKGNvbnRleHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWRkTW9Ub1NlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByb3dEZXNlbGVjdEFsbDogKGNvbnRleHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5TZXR0aW5nLkRhdGEuTW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByb3dzZWxlY3Q6IChzZW5kZXIsIGluZGV4LCBtbykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2lmICh0aGlzLm9yaWdpbmFsTW9MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8g2YLYqNmEINin2LIg2LHZhtiv2LEg2LTYr9mGINin24zZhiDYp9iq2YHYp9mCINmF24wg2KfZgdiq2KfYr1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRNb1RvU2VsZWN0ZWQobW8pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJvd2Rlc2VsZWN0OiAoc2VuZGVyLCBpbmRleCwgbW8pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVtb3ZlRnJvbVNlbGVjdGVkKG1vKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IGRpYWxvZ1JlZjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEcm9wRG93bk9wZW5TdGF0ZSh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9jbG9zZURpYWxvZygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9hZGRNb1RvU2VsZWN0ZWQobW86IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghbW8pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcztcclxuICAgICAgICBpZiAoIXNlbGVjdGVkLmZpbmQoKGMpID0+IGMuSWQgPT09IG1vLklkKSkge1xyXG4gICAgICAgICAgICBzZWxlY3RlZC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIElkOiBtby5JZCxcclxuICAgICAgICAgICAgICAgIFRleHQ6IG1vLiRDYXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgRGF0YTogbW8sXHJcbiAgICAgICAgICAgICAgICAkQ2FwdGlvbjogbW8uJENhcHRpb25cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcmVtb3ZlRnJvbVNlbGVjdGVkKG1vOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGMuSWQgIT09IG1vLklkKTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZDtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkQ2hhbmdlZChhcnI6IExpbmVhckl0ZW1Nb1tdKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlZEl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcclxuICAgICAgICBjb25zdCBhZGRlZEl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBbXTtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaCgobW8pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRNbyA9IGFyci5maW5kKChjKSA9PiBjLklkID09PSBtby5JZCk7XHJcbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRNbykge1xyXG4gICAgICAgICAgICAgICAgbW8uRGF0YS4kSXNDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVkSXRlbXMucHVzaChtby5EYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGFyci5mb3JFYWNoKChtbykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZE1vID0gdGhpcy5vcmlnaW5hbE1vTGlzdC5maW5kKChjKSA9PiBjLklkID09PSBtby5JZCk7XHJcbiAgICAgICAgICAgIGlmICghc2VsZWN0ZWRNbykge1xyXG4gICAgICAgICAgICAgICAgaWYgKG1vLkRhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICBtby5EYXRhLiRJc0NoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGFkZGVkSXRlbXMucHVzaChtby5EYXRhKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW8uJElzQ2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkZWRJdGVtcy5wdXNoKG1vKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChkZWxldGVkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ1JlcXVlc3RDb21tYW5kJywgdGhpcy5jb250ZXh0LCAnRGVsZXRlJywgZGVsZXRlZEl0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGFkZGVkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ1JlcXVlc3RDb21tYW5kJywgdGhpcy5jb250ZXh0LCAnQWRkJywgYWRkZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX3VsdlVpLnZpZXdlckNvbnRyb2wuZmlyZUV2ZW50KCdyb3djbGljaycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIC8vICB0aGlzLl9jaGFuZ2VEcm9wRG93bk9wZW5TdGF0ZShmYWxzZSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBVaUxpbmVhckxpc3RDb250YWluZXJTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBFeGVjdXRlQWRkb25CdXR0b246IGJvb2xlYW47XHJcbiAgICBBZGRvbkJ1dHRvbkNvbW1hbmQ6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbn1cclxuIiwiPGZkLW11bHRpLWlucHV0XHJcbiAgICBbaW5wdXRJZF09XCJpZFwiXHJcbiAgICBbY2xhc3MuY29udHJvbC1yZWFkb25seV09XCIocmVhZG9ubHkkIHwgYXN5bmMpID09PSB0cnVlXCJcclxuICAgIFtkcm9wZG93blZhbHVlc109XCIoZHJvcERvd25WYWx1ZXMkIHwgYXN5bmMpISFcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cIlNldHRpbmcuQ29udHJvbEZpZWxkQ2FwdGlvblRyYW5zbGF0ZWQgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgW2Rpc3BsYXlGbl09XCJkaXNwbGF5RnVuY1wiXHJcbiAgICBbc2hvd0FsbEJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICBbZGlzcGxheUFkZG9uQnV0dG9uXT1cIihwYXJhbWV0ZXJzPy5FeGVjdXRlQWRkb25CdXR0b24gfHwgISFyZXBvcnQpICYmIChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWVcIlxyXG4gICAgW2FsbG93TmV3VG9rZW5zXT1cImZhbHNlXCJcclxuICAgIFtpbmNsdWRlc109XCJ0cnVlXCJcclxuICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZSQgfCBhc3luYykgPT09IHRydWVcIlxyXG4gICAgKHNlYXJjaFRlcm1DaGFuZ2UpPVwib25TZWFyY2hUZXJtQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0ZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoYWRkT25CdXR0b25DbGlja2VkKT1cIl9oYW5kbGVBZGRvbkJ1dHRvbkNsaWNrZWQoKVwiXHJcbj48L2ZkLW11bHRpLWlucHV0PlxyXG5cclxuPCEtLSA8YnV0dG9uXHJcbiAgICAqbmdJZj1cInJlcG9ydFwiXHJcbiAgICBmZC1idXR0b25cclxuICAgIFthdHRyLnJ0bF09XCJydGxcIlxyXG4gICAgW2FyaWEtbGFiZWxdPVwiJ0FkdmFuY2VkJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICBnbHlwaD1cInZhbHVlLWhlbHBcIlxyXG4gICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykhIVwiXHJcbiAgICAoY2xpY2spPVwib25PcGVuUmVwb3J0KClcIlxyXG4+PC9idXR0b24+IC0tPlxyXG5cclxuPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNjb250YWluZXI+XHJcbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIiAjZGlhbG9nVHBsPlxyXG4gICAgICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItbGVmdD5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItM1wiIGZkLXRpdGxlPnt7IGRpYWxvZy5kYXRhLnRpdGxlIH19PC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRpYWxvZ0NvbmZpZy5oZWlnaHQgIT09ICcxMDB2aCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW4gPyAnZXhpdGZ1bGxzY3JlZW4nIDogJ3Jlc2l6ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRGlhbG9nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmdWxsc2NyZWVuXT1cImRpYWxvZy5kYXRhLmZ1bGxzY3JlZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbkNoYW5nZWQpPVwiZGlhbG9nLmRhdGEuZnVsbHNjcmVlbiA9ICRldmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaWFsb2ddPVwiZGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RpYWxvZ0NvbXBvbmVudF09XCJkaWFsb2dUcGxcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgYXJpYUxhYmVsPVwiY2xvc2VcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25EaXNtaXNzKClcIj48L2ZkLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPCEtLSA8aDMgZmQtdGl0bGU+e3sgZGlhbG9nLmRhdGEudGl0bGUgfX08L2gzPlxyXG4gICAgICA8YnV0dG9uIGZkLWRpYWxvZy1jbG9zZS1idXR0b24+PC9idXR0b24+IC0tPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cclxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaWFsb2cuZGF0YS51bHZVaSBhcyB1bHZVaVwiPlxyXG4gICAgICAgICAgICAgICAgPGJzdS11aS11bHYtbWFpbi11aSBbY29udGV4dF09XCJ1bHZVaVwiIGNsYXNzPVwibGluZWFyLWxpc3Qtc2VsZWN0aW9uXCI+PC9ic3UtdWktdWx2LW1haW4tdWk+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XHJcblxyXG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyIGNsYXNzPVwibGluZWFyLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgZmRUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fcm93IHVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3NlbGVjdGlvbi1yb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidTZWxlY3RlZEl0ZW1zQW5kQ29uZGl0aW9ucycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNSBmZC10aXRsZSBjbGFzcz1cInNlbGVjdGVkLWFuZC1jb25kaXRpb24tdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+e3sgJ1NlbGVjdGVkSXRlbXNBbmRDb25kaXRpb25zJyB8IGJiYlRyYW5zbGF0ZSB9fSA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7eyBkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggfHwgMCB9fSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX3Rva2Vuc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLXRvb2xiYXIgKm5nSWY9XCJkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWxlY3RlZCBpdGVtcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtdG9rZW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkT3ZlcmZsb3dQcmlvcml0eT1cImhpZ2hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC12YWx1ZS1oZWxwLWRpYWxvZ19fc2VsZWN0aW9uLXRva2VuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xvc2VDbGljayk9XCJvblJlbW92ZVNlbGVjdGVkKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiBkaWFsb2cuZGF0YS5zZWxlY3RlZEl0ZW1zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggYXMgc2VsZWN0ZWRJbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrQnk6IF90cmFja0J5U2VsZWN0ZWRGblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgaXRlbS5UZXh0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC10b2tlbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtdG9vbGJhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWx2LXNlbGVjdGlvbi1mb3JtLWRpYWxvZ19fdG9rZW5zLWNsZWFyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cIidDbGVhcicgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsdi1zZWxlY3Rpb24tZm9ybS1kaWFsb2dfX2FjdGlvbnMtcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zdWNjZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidPSycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtZGlzbWlzcy1kaWFsb2dcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZGlhbG9nLWRlY2lzaXZlLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRpc21pc3MoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxyXG4gICAgPC9mZC1kaWFsb2c+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -8352,7 +8352,10 @@ class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBaseCompon
|
|
|
8352
8352
|
this.originalMoList = [...value];
|
|
8353
8353
|
super._setValue(value);
|
|
8354
8354
|
if (this.multiInputComponent) {
|
|
8355
|
-
this.multiInputComponent.selected
|
|
8355
|
+
const deleted = this.multiInputComponent.selected.filter((i) => this.originalMoList.find((j) => i.Id === j.Id));
|
|
8356
|
+
const added = this.originalMoList.filter((i) => this.multiInputComponent.selected.find((j) => i.Id === j.Id));
|
|
8357
|
+
deleted.forEach((i) => this.multiInputComponent.selected.splice(this.multiInputComponent.selected.findIndex((j) => j.Id === i.Id), 1));
|
|
8358
|
+
added.forEach((i) => this.multiInputComponent.selected.push(i));
|
|
8356
8359
|
}
|
|
8357
8360
|
}
|
|
8358
8361
|
_changeDropDownOpenState(val) {
|
|
@@ -8478,10 +8481,16 @@ class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBaseCompon
|
|
|
8478
8481
|
}
|
|
8479
8482
|
});
|
|
8480
8483
|
arr.forEach((mo) => {
|
|
8481
|
-
const selectedMo =
|
|
8484
|
+
const selectedMo = this.originalMoList.find((c) => c.Id === mo.Id);
|
|
8482
8485
|
if (!selectedMo) {
|
|
8483
|
-
|
|
8484
|
-
|
|
8486
|
+
if (mo.Data) {
|
|
8487
|
+
mo.Data.$IsChecked = true;
|
|
8488
|
+
addedItems.push(mo.Data);
|
|
8489
|
+
}
|
|
8490
|
+
else {
|
|
8491
|
+
mo.$IsChecked = true;
|
|
8492
|
+
addedItems.push(mo);
|
|
8493
|
+
}
|
|
8485
8494
|
}
|
|
8486
8495
|
});
|
|
8487
8496
|
if (deletedItems.length > 0) {
|
|
@@ -8491,6 +8500,7 @@ class UiLinearListContainerWithButtonComponent extends DeviceInfoFieldBaseCompon
|
|
|
8491
8500
|
this.fireContextEvent('RequestCommand', this.context, 'Add', addedItems);
|
|
8492
8501
|
// this._ulvUi.viewerControl.fireEvent('rowclick');
|
|
8493
8502
|
}
|
|
8503
|
+
this._cdr.detectChanges();
|
|
8494
8504
|
// this._changeDropDownOpenState(false);
|
|
8495
8505
|
}
|
|
8496
8506
|
}
|