@acorex/data-grid 3.0.14 → 3.0.18
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-data-grid.metadata.json +1 -1
- package/bundles/acorex-data-grid.umd.js +9 -8
- package/bundles/acorex-data-grid.umd.js.map +1 -1
- package/bundles/acorex-data-grid.umd.min.js +1 -1
- package/bundles/acorex-data-grid.umd.min.js.map +1 -1
- package/esm2015/lib/data-grid/datagrid.component.js +8 -2
- package/esm2015/lib/data-lov/data-lov-popup/data-lov-popup.component.js +7 -13
- package/esm5/lib/data-grid/datagrid.component.js +9 -2
- package/esm5/lib/data-lov/data-lov-popup/data-lov-popup.component.js +2 -8
- package/fesm2015/acorex-data-grid.js +13 -13
- package/fesm2015/acorex-data-grid.js.map +1 -1
- package/fesm5/acorex-data-grid.js +9 -8
- package/fesm5/acorex-data-grid.js.map +1 -1
- package/lib/data-lov/data-lov-popup/data-lov-popup.component.d.ts +1 -2
- package/package.json +1 -1
|
@@ -75,7 +75,7 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
|
75
75
|
// showRowNumber: boolean = true;
|
|
76
76
|
this.remoteOperation = false;
|
|
77
77
|
this.rowMultiSelectWithClick = true;
|
|
78
|
-
this.suppressRowClickSelection =
|
|
78
|
+
this.suppressRowClickSelection = false;
|
|
79
79
|
this.suppressCellSelection = false;
|
|
80
80
|
this.sizeColumnsToFit = true;
|
|
81
81
|
this.showCheckBox = true;
|
|
@@ -519,6 +519,13 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
|
519
519
|
return temp.sort(function (a, b) { return a - b; });
|
|
520
520
|
};
|
|
521
521
|
AXDataGridComponent.prototype.rowSelectionChanged = function (e) {
|
|
522
|
+
var _this = this;
|
|
523
|
+
debugger;
|
|
524
|
+
this.gridApi.forEachNode(function (node) {
|
|
525
|
+
if (node.data[_this.keyField] == e.node.data[_this.keyField]) {
|
|
526
|
+
node.setSelected(e.node.selected);
|
|
527
|
+
}
|
|
528
|
+
});
|
|
522
529
|
this.rowSelectionChange.emit({ component: this, data: e, htmlElement: this.ref.nativeElement });
|
|
523
530
|
// console.log('e', e);
|
|
524
531
|
// console.log('select', e.node.selected);
|
|
@@ -751,4 +758,4 @@ var AXDataGridComponent = /** @class */ (function () {
|
|
|
751
758
|
return AXDataGridComponent;
|
|
752
759
|
}());
|
|
753
760
|
export { AXDataGridComponent };
|
|
754
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9kYXRhLWdyaWQvIiwic291cmNlcyI6WyJsaWIvZGF0YS1ncmlkL2RhdGFncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQWE5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0csT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXhDLGNBQWMsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHO0lBQ3pDLDZDQUE2QztBQUMvQyxDQUFDLENBQUM7QUFFRixpRUFBaUU7QUFDakUsa0JBQWtCO0FBQ2xCLElBQUk7QUFFSjtJQUFrRCxnREFBZ0M7SUFBbEY7O0lBRUEsQ0FBQztJQUFELG1DQUFDO0FBQUQsQ0FBQyxBQUZELENBQWtELFlBQVksR0FFN0Q7O0FBQ0Q7SUFBeUMsdUNBQTRCO0lBQXJFOztJQUVBLENBQUM7SUFBRCwwQkFBQztBQUFELENBQUMsQUFGRCxDQUF5QyxXQUFXLEdBRW5EOztBQUNEO0lBQTRDLDBDQUEyQjtJQUF2RTs7SUFFQSxDQUFDO0lBQUQsNkJBQUM7QUFBRCxDQUFDLEFBRkQsQ0FBNEMsV0FBVyxHQUV0RDs7QUFFRDtJQUFvRCxrREFBb0M7SUFBeEY7O0lBRUEsQ0FBQztJQUFELHFDQUFDO0FBQUQsQ0FBQyxBQUZELENBQW9ELFdBQVcsR0FFOUQ7O0FBRUQ7SUFBdUQscURBQWdCO0lBQXZFOztJQUdBLENBQUM7SUFBRCx3Q0FBQztBQUFELENBQUMsQUFIRCxDQUF1RCxXQUFXLEdBR2pFOztBQVFEO0lBZ05FLDZCQUFvQixHQUFlLEVBQVUsR0FBc0I7UUFBbkUsaUJBRUM7UUFGbUIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBMU1uRSxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBRzVCLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUU5QixtQkFBYyxHQUFXLE1BQU0sQ0FBQztRQUloQyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHNCQUFpQixHQUFVLEVBQUUsQ0FBQztRQUU5QixXQUFXO1FBQ1gsaUNBQWlDO1FBRzFCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBR2pDLDRCQUF1QixHQUFZLElBQUksQ0FBQztRQUd4Qyw4QkFBeUIsR0FBWSxJQUFJLENBQUM7UUFHMUMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBR3ZDLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUd4QyxpQkFBWSxHQUFZLElBQUksQ0FBQztRQUc3QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUtoQyx1QkFBa0IsR0FBUSxFQUFFLENBQUM7UUFHN0Isa0JBQWEsR0FBMEIsUUFBUSxDQUFDO1FBRWhELFdBQVc7UUFDWCxtQ0FBbUM7UUFHbkMsY0FBUyxHQUFVLEVBQUUsQ0FBQztRQUd0QixzQkFBaUIsR0FBdUIsT0FBTyxDQUFDO1FBR2hELGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFM0IsV0FBVztRQUNYLG9DQUFvQztRQUdwQyxhQUFRLEdBQVcsTUFBTSxDQUFDO1FBRzFCLGtCQUFhLEdBQVcsTUFBTSxDQUFDO1FBdUMvQixrQkFBYSxHQUErQyxJQUFJLFlBQVksRUFBZ0MsQ0FBQztRQUVyRyxhQUFRLEdBQXVCLEVBQUUsQ0FBQztRQWMxQyxrQkFBYSxHQUFRO1lBQ25CLE1BQU0sRUFBRSxJQUFJO1lBQ1osY0FBYyxFQUFFLElBQUk7U0FDckIsQ0FBQztRQWdDRix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFHdEMsY0FBUyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUd2RixnQkFBVyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUd6RixlQUFVLEdBQXNDLElBQUksWUFBWSxFQUF1QixDQUFDO1FBR3hGLGFBQVEsR0FBeUMsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFHNUYsZUFBVSxHQUF5QyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUc5RixxQkFBZ0IsR0FBaUQsSUFBSSxZQUFZLEVBQWtDLENBQUM7UUFHcEgsdUJBQWtCLEdBQWlELElBQUksWUFBWSxFQUFrQyxDQUFDO1FBR3RILDBCQUFxQixHQUFvRCxJQUFJLFlBQVksRUFBcUMsQ0FBQztRQWtCL0gsUUFBRyxHQUFZLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFxRDFDLHNCQUFpQixHQUFHLFVBQUMsQ0FBQztZQUNwQixPQUFPLENBQUMsQ0FBQyxLQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDO1FBRUYsMEJBQXFCLEdBQUcsVUFBQyxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUM7UUFnVkYsd0JBQW1CLEdBQUcsVUFBQyxDQUFNO1lBQzNCLElBQUksS0FBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxLQUFJLENBQUMsUUFBUSxZQUFZLFFBQVEsRUFBRTtvQkFDckMsT0FBTyxLQUFJLENBQUMsUUFBUSxDQUFDO3dCQUNuQixRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO3dCQUN6QixRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLO3dCQUN0QixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7cUJBQ2IsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLE9BQU8sS0FBSSxDQUFDLFFBQVEsQ0FBQztpQkFDdEI7YUFDRjtRQUNILENBQUMsQ0FBQztRQXBaQSxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQXBJRCxzQkFBVywyQ0FBVTthQUFyQjtZQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO2FBQ0QsVUFBc0IsQ0FBUztZQUM3QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztnQkFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUM5QzthQUNGO1FBQ0gsQ0FBQzs7O09BVEE7SUFhRCxzQkFBVyx1Q0FBTTthQUFqQjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN0QixDQUFDO2FBQ0QsVUFBa0IsQ0FBUTtZQUExQixpQkFXQztZQVZDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFDLENBQUM7b0JBQ3JCLElBQU0sRUFBRSxHQUFHLEtBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuRCxJQUFJLEVBQUUsRUFBRTt3QkFDTixJQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsQ0FBQzt3QkFDOUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDaEI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUM7OztPQVpBO0lBc0JELHNCQUFXLHdDQUFPO2FBQWxCO1lBQ0UsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBSyxJQUFJLENBQUMsUUFBUSxFQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEcsQ0FBQzthQUVELFVBQW1CLEdBQXVCO1lBQ3hDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO2dCQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7YUFDOUc7UUFDSCxDQUFDOzs7T0FSQTtJQW9DRCxzQkFBVywyQ0FBVTthQUFyQjtZQUNFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3ZFLENBQUM7YUFFRCxVQUFzQixDQUF3QjtZQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN2QixDQUFDOzs7T0FKQTtJQWlDRCwwQ0FBWSxHQUFaLFVBQWEsS0FBSztRQUNoQixJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQy9ELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtZQUM3RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDM0UsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUM3QjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFZTyx3Q0FBVSxHQUFsQjtRQUNFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFlLEVBQUUsUUFBSyxDQUFDO1NBQzlDO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxzQkFBWSxzREFBcUI7YUFBakM7WUFDRSxJQUFNLElBQUksR0FBRyxJQUFJLENBQUM7WUFDbEIsT0FBTztnQkFDTCxRQUFRLEVBQUUsSUFBSTtnQkFDZCxPQUFPLEVBQUUsVUFBQyxNQUFNO29CQUNkLHVJQUF1STtvQkFDdkksSUFBSSxDQUFDLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7b0JBQ3hELElBQU0sVUFBVSxHQUEyQixFQUFFLENBQUM7b0JBQzlDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztvQkFDeEMsVUFBVSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztvQkFDMUMsc0VBQXNFO29CQUN0RSxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQzNGLFVBQVUsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQzt3QkFDL0MsT0FBTzs0QkFDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7NEJBQ2QsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJO3lCQUNaLENBQUM7b0JBQ0osQ0FBQyxDQUFDLENBQUM7b0JBQ0gscUVBQXFFO29CQUNyRSxtREFBbUQ7b0JBQ25ELDRDQUE0QztvQkFDNUMsVUFBVSxDQUFDLEtBQUssR0FBRzt3QkFDakIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQVAsQ0FBTyxDQUFDO3dCQUN2RCxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTO3dCQUM5QixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJO3FCQUNuQyxDQUFDO29CQUNGLFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7b0JBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUM7OztPQUFBO0lBQ0QsOENBQWdCLEdBQWhCLFVBQWlCLENBQUM7UUFDaEIsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQseUNBQVcsR0FBWDtRQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQVNELGdDQUFnQztJQUNoQywrQ0FBaUIsR0FBakIsVUFBa0IsV0FBVztRQUMzQixXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUUvQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVELGdEQUFrQixHQUFsQjtRQUNFLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLDhCQUE4QixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQ2hFLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztTQUM1RDtRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLENBQUM7UUFFbkUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7WUFDL0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHlCQUF5QixDQUFDO1lBQ3BELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1lBRXBGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztTQUN2RDtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztRQUNsQyxDQUFDLENBQUM7UUFDRixVQUFVO0lBQ1osQ0FBQztJQUVELHNDQUFRLEdBQVI7UUFDRSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ25DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssTUFBTSxFQUFFO1lBQzdELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7U0FDbEM7UUFDRCxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLENBQUM7U0FDMUc7UUFDRCxFQUFFO0lBQ0osQ0FBQztJQUVELDJDQUFhLEdBQWI7UUFBQSxpQkFrQ0M7UUFqQ0MsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRTtnQkFDckgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsVUFBQyxJQUFJO29CQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO3dCQUMzQixJQUFJLFFBQU0sR0FBWSxLQUFLLENBQUM7d0JBQzVCLEtBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQUMsRUFBRTs0QkFDeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0NBQ25DLFFBQU0sR0FBRyxJQUFJLENBQUM7Z0NBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFNLENBQUMsQ0FBQzs2QkFDMUI7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFDLElBQUk7b0JBQzVCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7d0JBQzNCLElBQUksUUFBTSxHQUFZLEtBQUssQ0FBQzt3QkFDNUIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBQyxJQUFJOzRCQUMxQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFO2dDQUM1RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29DQUN6RCxRQUFNLEdBQUcsSUFBSSxDQUFDO2lDQUNmOzZCQUNGO2lDQUFNO2dDQUNMLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtvQ0FDcEQsUUFBTSxHQUFHLElBQUksQ0FBQztpQ0FDZjs2QkFDRjt3QkFDSCxDQUFDLENBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQU0sQ0FBQyxDQUFDO3FCQUMxQjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsK0JBQStCO0lBRS9CLG9GQUFvRjtJQUNwRixzREFBc0Q7SUFDdEQsOEJBQThCO0lBQzlCLCtCQUErQjtJQUUvQixJQUFJO0lBQ0oseUNBQVcsR0FBWDtRQUFBLGlCQU9DO1FBTkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLFVBQVUsQ0FBQztZQUNULElBQUksS0FBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QixLQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDakM7UUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRUQsNkNBQWUsR0FBZjtRQUFBLGlCQWdFQztRQS9EQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQVYsQ0FBVSxDQUFDLENBQUM7WUFFdEQsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsYUFBYSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBeEMsQ0FBd0MsQ0FBQyxDQUFDO1lBRTFGLElBQUksQ0FBQyxrQkFBa0IsR0FBRztnQkFDeEIsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO2dCQUNsQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7Z0JBQ3hCLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ25ELEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSzthQUN6QixDQUFDO1lBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBQyxHQUFHO2dCQUMxQixJQUFJLEdBQUcsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQzFCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2lCQUNqQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsS0FBSztRQUVMLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxVQUFDLEtBQUs7WUFDN0MsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDakMsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksS0FBWSxDQUFDO1lBQ2pCLElBQUksVUFBa0IsQ0FBQztZQUN2QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pCLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ2YsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQ3JCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO2FBQ2hDO1lBQ0QsSUFBSSxLQUFJLENBQUMseUJBQXlCLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxLQUFJLENBQUMsVUFBVSxFQUFFO29CQUNwQixLQUFJLENBQUMseUJBQXlCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUN2QztxQkFBTTtvQkFDTCxLQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2lCQUNuRDthQUNGO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFJLENBQUMsVUFBVSxJQUFJLEtBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO29CQUNsRCxLQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDN0I7cUJBQU0sSUFBSSxLQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtvQkFDckMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2hDO2FBQ0Y7WUFFRCxLQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFDckMsS0FBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxVQUFDLENBQUM7Z0JBQzFDLEtBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsRUFBRTtRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHdDQUFVLEdBQVY7UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFWLENBQVUsQ0FBQyxDQUFDO1FBRXRELDRCQUE0QjtRQUM1QiwyQkFBMkI7UUFDM0IsK0RBQStEO1FBQy9ELHdDQUF3QztRQUN4Qyw0REFBNEQ7UUFDNUQsUUFBUTtRQUNSLElBQUk7UUFFSixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtnQkFDcEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcscUJBQXFCLENBQUM7YUFDekQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcscUJBQXFCLENBQUM7YUFDekQ7U0FDRjtRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7WUFDakMsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBL0MsQ0FBK0MsQ0FBQyxDQUFDO1lBQ2pHLElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxLQUFLLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxrQkFBa0IsR0FBRztvQkFDeEIsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO29CQUNsQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUs7b0JBQ3hCLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ25ELEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztpQkFDekIsQ0FBQztnQkFDRiw0QkFBNEI7YUFDN0I7U0FDRjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQUMsR0FBRztZQUMxQixJQUFJLEdBQUcsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzFCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscURBQXVCLEdBQXZCLFVBQXdCLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLE1BQU0sRUFBRTtZQUNqQyxJQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDckQsSUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxLQUFLLEtBQUssb0JBQW9CLElBQUksQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLEVBQW5ELENBQW1ELENBQUMsQ0FBQztZQUNoRixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO2dCQUNwQixJQUFJLENBQUMsa0JBQWtCLEdBQUc7b0JBQ3hCLFVBQVUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVU7b0JBQ2pDLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7b0JBQ3ZCLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ25ELEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7aUJBQ3hCLENBQUM7YUFDSDtZQUNELG1CQUFtQjtTQUNwQjtJQUNILENBQUM7SUFFRCxxQ0FBTyxHQUFQLFVBQVEsS0FBaUI7UUFBakIsc0JBQUEsRUFBQSxVQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDdEQsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDbEU7YUFBTTtZQUNMLDJCQUEyQjtZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxxREFBdUIsR0FBdkIsVUFBd0IsQ0FBbUI7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELDJEQUE2QixHQUE3QixVQUE4QixDQUFtQjtRQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRUQscURBQXVCLEdBQXZCLFVBQXdCLENBQW1CO1FBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxvREFBc0IsR0FBdEIsVUFBdUIsQ0FBa0I7UUFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1NBQ3pHO0lBQ0gsQ0FBQztJQUVELDBEQUE0QixHQUE1QixVQUE2QixDQUFtQjtRQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDM0c7SUFDSCxDQUFDO0lBRUQsaURBQW1CLEdBQW5CLFVBQW9CLE1BQVcsRUFBRSxNQUFXO1FBQzFDLElBQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLElBQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtZQUN0QixJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEI7U0FDRjtRQUNELEtBQUssSUFBTSxDQUFDLElBQUksTUFBTSxFQUFFO1lBQ3RCLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0QjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsR0FBRyxDQUFDLEVBQUwsQ0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGlEQUFtQixHQUFuQixVQUFvQixDQUFDO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNoRyx1QkFBdUI7UUFDdkIsMENBQTBDO1FBQzFDLG9DQUFvQztJQUN0QyxDQUFDO0lBRUQsMERBQTRCLEdBQTVCLFVBQTZCLENBQUM7UUFDNUIsSUFBTSxJQUFJLEdBQTRCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3BELElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUN4QyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDZCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2pCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2FBQ2IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDakcsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzRCxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3hILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVPLDBDQUFZLEdBQXBCLFVBQXFCLENBQVk7UUFDL0IsT0FBTztZQUNMLFFBQVEsRUFBRSxDQUFDO1lBQ1gsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO1lBQ2hCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtZQUNaLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUNwQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7U0FDZixDQUFDO0lBQ0osQ0FBQztJQUVPLHlDQUFXLEdBQW5CLFVBQW9CLENBQVc7UUFDN0IsT0FBTztZQUNMLFFBQVEsRUFBRSxDQUFDO1lBQ1gsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO1lBQ1osUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBRU0seUNBQVcsR0FBbEI7UUFDRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFnQkQseUNBQVcsR0FBWDtRQUNFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQseUNBQVcsR0FBWDtRQUNFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELHFEQUF1QixHQUF2QixVQUF3QixDQUF1QjtRQUM3QyxJQUFJLENBQUMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsMkRBQTZCLEdBQTdCLFVBQThCLENBQXlCO1FBQ3JELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLHFEQUF1QixHQUEvQixVQUFnQyxHQUFZO1FBQzFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7Z0JBamJ3QixVQUFVO2dCQUFlLGlCQUFpQjs7SUFyTG5FO1FBREMsS0FBSyxFQUFFOztnRUFDZ0M7SUFHeEM7UUFEQyxLQUFLLEVBQUU7O3dFQUN1QztJQUcvQztRQURDLEtBQUssRUFBRTs7MEVBQ3lDO0lBR2pEO1FBREMsS0FBSyxFQUFFOztzRUFDc0M7SUFHOUM7UUFEQyxLQUFLLEVBQUU7O2lFQUNnQztJQUd4QztRQURDLEtBQUssRUFBRTs7NkRBQ3FCO0lBRzdCO1FBREMsS0FBSyxFQUFFOzsrREFDd0I7SUFHaEM7UUFEQyxLQUFLLEVBQUU7OzBEQUNVO0lBS2xCO1FBREMsS0FBSyxFQUFFOzs4REFDd0M7SUFNaEQ7UUFEQyxLQUFLLEVBQUU7OzBEQUNjO0lBR3RCO1FBREMsS0FBSyxFQUFFOztrRUFDd0M7SUFHaEQ7UUFEQyxLQUFLLEVBQUU7OzJEQUNtQjtJQU0zQjtRQURDLEtBQUssRUFBRTs7eURBQ2tCO0lBRzFCO1FBREMsS0FBSyxFQUFFOzs4REFDdUI7SUFJL0I7UUFEQyxLQUFLLEVBQUU7Ozt5REFHUDtJQWFEO1FBREMsS0FBSyxFQUFFOzs7cURBR1A7SUFlRDtRQURDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztrQ0FDVixTQUFTOytEQUFtQjtJQUdwRDtRQURDLE1BQU0sRUFBRTtrQ0FDTSxZQUFZOzhEQUFrRjtJQUk3RztRQURDLEtBQUssRUFBRTs7O3NEQUdQO0lBZ0JEO1FBREMsS0FBSyxFQUFFOzswREFDTztJQUdmO1FBREMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO2tDQUM1Qyx3QkFBd0I7NERBQUM7SUFHdEM7UUFEQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7a0NBQzFDLGtCQUFrQjt3REFBQztJQUc1QjtRQURDLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztrQ0FDbEQsOEJBQThCOzREQUFDO0lBRzVDO1FBREMsWUFBWSxDQUFDLGlDQUFpQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO2tDQUM5QyxpQ0FBaUM7bUVBQUM7SUFHdEQ7UUFEQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7a0NBQzFCLHFCQUFxQjttRUFBQztJQUtsRDtRQURDLEtBQUssRUFBRTtrQ0FLaUIscUJBQXFCO3lDQUFyQixxQkFBcUI7eURBRjdDO0lBT0Q7UUFEQyxLQUFLLEVBQUU7O3FFQUM4QjtJQUd0QztRQURDLE1BQU0sRUFBRTtrQ0FDRSxZQUFZOzBEQUFnRTtJQUd2RjtRQURDLE1BQU0sRUFBRTtrQ0FDSSxZQUFZOzREQUFnRTtJQUd6RjtRQURDLE1BQU0sRUFBRTtrQ0FDRyxZQUFZOzJEQUFnRTtJQUd4RjtRQURDLE1BQU0sRUFBRTtrQ0FDQyxZQUFZO3lEQUFzRTtJQUc1RjtRQURDLE1BQU0sRUFBRTtrQ0FDRyxZQUFZOzJEQUFzRTtJQUc5RjtRQURDLE1BQU0sRUFBRTtrQ0FDUyxZQUFZO2lFQUFzRjtJQUdwSDtRQURDLE1BQU0sRUFBRTtrQ0FDVyxZQUFZO21FQUFzRjtJQUd0SDtRQURDLE1BQU0sRUFBRTtrQ0FDYyxZQUFZO3NFQUE0RjtJQWUvSDtRQURDLEtBQUssRUFBRTs7eURBQzBFO0lBR2xGO1FBREMsS0FBSyxFQUFFOztvREFDa0M7SUE5TS9CLG1CQUFtQjtRQU4vQixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsY0FBYztZQUN4QiwwM0VBQXdDO1lBQ3hDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1lBQ3JDLGtEQUFrRDtTQUNuRCxDQUFDO3lDQWlOeUIsVUFBVSxFQUFlLGlCQUFpQjtPQWhOeEQsbUJBQW1CLENBa29CL0I7SUFBRCwwQkFBQztDQUFBLEFBbG9CRCxJQWtvQkM7U0Fsb0JZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBJbnB1dCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgUXVlcnlMaXN0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWERhdGFTb3VyY2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBBWEdyaWREYXRhQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWERhdGFTb3VyY2VSZWFkUGFyYW1zIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtcclxuICBHcmlkT3B0aW9ucyxcclxuICBDZWxsQ2xpY2tlZEV2ZW50LFxyXG4gIFJvd0NsaWNrZWRFdmVudCxcclxuICBDZWxsRXZlbnQsXHJcbiAgUm93RXZlbnQsXHJcbiAgRmlyc3REYXRhUmVuZGVyZWRFdmVudCxcclxuICBHcmlkU2l6ZUNoYW5nZWRFdmVudCxcclxuICBHcmlkQXBpXHJcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5cclxuaW1wb3J0IHsgTGljZW5zZU1hbmFnZXIgfSBmcm9tICdhZy1ncmlkLWVudGVycHJpc2UnO1xyXG5pbXBvcnQgeyBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEdyaWRDZWxsRXZlbnQsIEFYR3JpZFJvd0V2ZW50LCBBWEdyaWRSb3dTZWxlY3Rpb25FdmVudCwgQVhHcmlkUm93UGFyYW1zIH0gZnJvbSAnLi9kYXRhZ3JpZC5ldmVudHMnO1xyXG5cclxuaW1wb3J0IHsgQVhEYXRhR3JpZFJvd1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvcm93LXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVG9vbGJhclNlYXJjaENvbXBvbmVudCwgQVhUb29sYmFyQ29tcG9uZW50LCBBWERhdGFFdmVudCwgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQVhEYXRhR3JpZERldGFpbFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvZGV0YWlsLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYRGF0ZVBpY2tlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1ucy9kYXRlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcblxyXG5MaWNlbnNlTWFuYWdlci5wcm90b3R5cGUudmFsaWRhdGVMaWNlbnNlID0gZnVuY3Rpb24gKCkge1xyXG4gIC8vY29uc29sZS5pbmZvKCdDcmFja2VkIGJ5IEFyYXNoIE9zaG5vdWRpIScpO1xyXG59O1xyXG5cclxuLy8gV2F0ZXJtYXJrQ29tcC5wcm90b3R5cGUuc2hvdWxkRGlzcGxheVdhdGVybWFyayA9IGZ1bmN0aW9uICgpIHtcclxuLy8gICByZXR1cm4gZmFsc2U7XHJcbi8vIH1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWERhdGFHcmlkQ29sdW1uc0NoYW5nZUV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYR3JpZERhdGFDb2x1bW5bXT4ge1xyXG4gIGNvbXBvbmVudDogQVhEYXRhR3JpZENvbXBvbmVudDtcclxufVxyXG5leHBvcnQgY2xhc3MgQVhEYXRhR3JpZENlbGxFdmVudCBleHRlbmRzIEFYRGF0YUV2ZW50PEFYR3JpZENlbGxFdmVudD4ge1xyXG4gIGNvbXBvbmVudDogQVhEYXRhR3JpZENvbXBvbmVudDtcclxufVxyXG5leHBvcnQgY2xhc3MgQVhEYWFncmlkUm93Q2xpY2tFdmVudCBleHRlbmRzIEFYRGF0YUV2ZW50PEFYR3JpZFJvd0V2ZW50PiB7XHJcbiAgY29tcG9uZW50OiBBWERhdGFHcmlkQ29tcG9uZW50O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhEYXRhR3JpZFNlbGVjdGlvbkNoYW5nZUV2ZW50IGV4dGVuZHMgQVhEYXRhRXZlbnQ8QVhHcmlkUm93U2VsZWN0aW9uRXZlbnQ+IHtcclxuICBjb21wb25lbnQ6IEFYRGF0YUdyaWRDb21wb25lbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWERhdGFHcmlkUm93U2VsZWN0aW9uQ2hhbmdlRXZlbnQgZXh0ZW5kcyBBWERhdGFFdmVudDxhbnk+IHtcclxuICBjb21wb25lbnQ6IEFYRGF0YUdyaWRDb21wb25lbnQ7XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtZGF0YS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhEYXRhR3JpZENvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBncmlkQXBpO1xyXG4gIHByaXZhdGUgZGF0YVNvdXJjZVN1Y2Nlc3NDYWxsYmFjaztcclxuICBsb2NhbGVUZXh0OiBhbnk7XHJcblxyXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcclxuICBjb2x1bW5EZWZzOiBhbnlbXSA9IFtdO1xyXG4gIHJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcclxuICBmdWxsV2lkdGhDZWxsUmVuZGVyZXJGcmFtZXdvcms6IGFueTtcclxuICBmdWxsV2lkdGhDZWxsUmVuZGVyZXJQYXJhbXM6IGFueTtcclxuICBmcmFtZXdvcmtDb21wb25lbnRzOiBhbnkgPSB7fTtcclxuICBpc0Z1bGxXaWR0aENlbGw6IEZ1bmN0aW9uO1xyXG4gIGludGVybmFsSGVpZ2h0OiBzdHJpbmcgPSAnMTAwJSc7XHJcbiAgZGV0YWlsQ2VsbFJlbmRlcmVyOiBhbnk7XHJcbiAgZGV0YWlsQ2VsbFJlbmRlcmVyUGFyYW1zOiBhbnk7XHJcbiAgZGV0YWlsUm93SGVpZ2h0OiBudW1iZXI7XHJcbiAgbWFzdGVyRGV0YWlsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdHJlZURhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFiZWxTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBncmlkVmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdyb3VwU2VsZWN0c0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb2xkU2VsZWN0aW9uTm9kZXM6IGFueVtdID0gW107XHJcblxyXG4gIC8vIEBJbnB1dCgpXHJcbiAgLy8gc2hvd1Jvd051bWJlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlbW90ZU9wZXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByb3dNdWx0aVNlbGVjdFdpdGhDbGljazogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdXBwcmVzc0NlbGxTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2l6ZUNvbHVtbnNUb0ZpdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0NoZWNrQm94OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBmbG9hdGluZ0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRha2VDb3VudDogbnVtYmVyO1xyXG5cclxuICBhdXRvR3JvdXBDb2x1bW5EZWY6IGFueSA9IHt9O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGlvbk1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdzaW5nbGUnO1xyXG5cclxuICAvLyBASW5wdXQoKVxyXG4gIC8vIGFsbG93RmlsdGVyaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0Um93OiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJvd0dyb3VwUGFuZWxTaG93OiAnYWx3YXlzJyB8ICduZXZlcicgPSAnbmV2ZXInO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxvYWRPbkluaXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvLyBASW5wdXQoKVxyXG4gIC8vIGdyb3VwRGVmYXVsdEV4cGFuZGVkOiBudW1iZXIgPSAwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGtleUZpZWxkOiBzdHJpbmcgPSAnbnVsbCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGFzQ2hpbGRGaWVsZDogc3RyaW5nID0gJ251bGwnO1xyXG5cclxuICBwcml2YXRlIF9zZWFyY2hUZXh0OiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHNlYXJjaFRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWFyY2hUZXh0O1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNlYXJjaFRleHQodjogc3RyaW5nKSB7XHJcbiAgICBpZiAodiAhPT0gdGhpcy5fc2VhcmNoVGV4dCkge1xyXG4gICAgICB0aGlzLl9zZWFyY2hUZXh0ID0gdjtcclxuICAgICAgaWYgKHRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgIHRoaXMuZ3JpZEFwaS5zZXRRdWlja0ZpbHRlcih0aGlzLnNlYXJjaFRleHQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWx0ZXI6IGFueVtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBmaWx0ZXIoKTogYW55W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcjtcclxuICB9XHJcbiAgcHVibGljIHNldCBmaWx0ZXIodjogYW55W10pIHtcclxuICAgIGlmICh2ICE9PSB0aGlzLl9maWx0ZXIpIHtcclxuICAgICAgdGhpcy5fZmlsdGVyID0gdjtcclxuICAgICAgdGhpcy5fZmlsdGVyLmZvckVhY2goKGYpID0+IHtcclxuICAgICAgICBjb25zdCBmYyA9IHRoaXMuZ3JpZEFwaS5nZXRGaWx0ZXJJbnN0YW5jZShmLmZpZWxkKTtcclxuICAgICAgICBpZiAoZmMpIHtcclxuICAgICAgICAgIGNvbnN0IGZmID0gZmMuZ2V0RnJhbWV3b3JrQ29tcG9uZW50SW5zdGFuY2UoKTtcclxuICAgICAgICAgIGZmLnNldE1vZGVsKGYpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAQ29udGVudENoaWxkcmVuKEFYR3JpZERhdGFDb2x1bW4pXHJcbiAgcHJpdmF0ZSBfaW5saW5lQ29sdW1uczogUXVlcnlMaXN0PEFYR3JpZERhdGFDb2x1bW4+O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjb2x1bW5zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZENvbHVtbnNDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRDb2x1bW5zQ2hhbmdlRXZlbnQ+KCk7XHJcblxyXG4gIHByaXZhdGUgX2NvbHVtbnM6IEFYR3JpZERhdGFDb2x1bW5bXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBjb2x1bW5zKCk6IEFYR3JpZERhdGFDb2x1bW5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5saW5lQ29sdW1ucyA/IFsuLi50aGlzLl9jb2x1bW5zLCAuLi50aGlzLl9pbmxpbmVDb2x1bW5zLnRvQXJyYXkoKV0gOiB0aGlzLl9jb2x1bW5zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBjb2x1bW5zKHZhbDogQVhHcmlkRGF0YUNvbHVtbltdKSB7XHJcbiAgICBpZiAodmFsICYmIHZhbC5sZW5ndGgpIHtcclxuICAgICAgbGV0IG9sZCA9IHRoaXMuX2NvbHVtbnM7XHJcbiAgICAgIHRoaXMuX2NvbHVtbnMgPSB2YWw7XHJcbiAgICAgIHRoaXMuY29sdW1uc0NoYW5nZS5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCB2YWx1ZTogdmFsLCBvbGRWYWx1ZTogb2xkLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlZmF1bHRDb2xEZWY6IGFueSA9IHtcclxuICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgIGZsb2F0aW5nRmlsdGVyOiB0cnVlXHJcbiAgfTtcclxuXHJcbiAgQElucHV0KClcclxuICByb3dIZWlnaHQ6IGFueTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBWFRvb2xiYXJTZWFyY2hDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgc2VhcmNoSW5wdXQ6IEFYVG9vbGJhclNlYXJjaENvbXBvbmVudDtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBWFRvb2xiYXJDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgdG9vbGJhcjogQVhUb29sYmFyQ29tcG9uZW50O1xyXG5cclxuICBAQ29udGVudENoaWxkKEFYRGF0YUdyaWRSb3dUZW1wbGF0ZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICByb3dUZW1wbGF0ZTogQVhEYXRhR3JpZFJvd1RlbXBsYXRlQ29tcG9uZW50O1xyXG5cclxuICBAQ29udGVudENoaWxkKEFYRGF0YUdyaWREZXRhaWxUZW1wbGF0ZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBncmlkRGV0YWlsVGVtcGxhdGU6IEFYRGF0YUdyaWREZXRhaWxUZW1wbGF0ZUNvbXBvbmVudDtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBWERhdGFTb3VyY2VDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHJpdmF0ZSBfY29udGVudERhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZUNvbXBvbmVudDtcclxuXHJcbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogQVhEYXRhU291cmNlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBBWERhdGFTb3VyY2VDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2UgPyB0aGlzLl9kYXRhU291cmNlIDogdGhpcy5fY29udGVudERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogQVhEYXRhU291cmNlQ29tcG9uZW50KSB7XHJcbiAgICB0aGlzLl9kYXRhU291cmNlID0gdjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ3JvdXBIaWRlT3BlblBhcmVudHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY2VsbENsaWNrOiBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZENlbGxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRDZWxsRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNlbGxEYkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZENlbGxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRDZWxsRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNlbGxGb2N1c2U6IEV2ZW50RW1pdHRlcjxBWERhdGFHcmlkQ2VsbEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZENlbGxFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxBWERhYWdyaWRSb3dDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYWFncmlkUm93Q2xpY2tFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcm93RGJDbGljazogRXZlbnRFbWl0dGVyPEFYRGFhZ3JpZFJvd0NsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhYWdyaWRSb3dDbGlja0V2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZFNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZFNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICByb3dTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWERhdGFHcmlkU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFHcmlkU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uUm93U2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRSb3dTZWxlY3Rpb25DaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRSb3dTZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcclxuXHJcbiAgZ2V0Um93SGVpZ2h0KHBhcmFtKSB7XHJcbiAgICBpZiAocGFyYW0uZGF0YSAmJiBwYXJhbS5kYXRhLnJvd0hlaWdodCAmJiBwYXJhbS5ub2RlLmxldmVsID09IDApIHtcclxuICAgICAgcmV0dXJuIHBhcmFtLmRhdGEucm93SGVpZ2h0O1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1hc3RlckRldGFpbCA9PSB0cnVlICYmIHBhcmFtLm5vZGUubGV2ZWwgPT0gMSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kZXRhaWxSb3dIZWlnaHQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubWFzdGVyRGV0YWlsID09IGZhbHNlICYmIHBhcmFtLmRhdGEgJiYgcGFyYW0uZGF0YS5yb3dIZWlnaHQpIHtcclxuICAgICAgcmV0dXJuIHBhcmFtLmRhdGEucm93SGVpZ2h0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHJvd0NsYXNzPzogKHBhcmFtczogQVhHcmlkUm93UGFyYW1zKSA9PiAoc3RyaW5nIHwgc3RyaW5nW10pIHwgKHN0cmluZyB8IHN0cmluZ1tdKTtcclxuXHJcbiAgQElucHV0KClcclxuICBydGw6IGJvb2xlYW4gPSBBWENvbmZpZy5nZXQoJ2xheW91dC5ydGwnKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgdGhpcy5sb2NhbGVUZXh0ID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0YUdyaWQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsY0hlaWdodCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRvb2xiYXIpIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbEhlaWdodCA9IGBjYWxjKDEwMCUgLSAkezQwfXB4KWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludGVybmFsSGVpZ2h0ID0gJzEwMCUnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgaW50ZW5hbEdyaWREYXRhU291cmNlKCkge1xyXG4gICAgY29uc3QgdGhhdCA9IHRoaXM7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICByb3dDb3VudDogbnVsbCxcclxuICAgICAgZ2V0Um93czogKHBhcmFtcykgPT4ge1xyXG4gICAgICAgIC8vIHRoYXQuZ3JpZEFwaS5ncmlkT3B0aW9uc1dyYXBwZXIuc2V0UHJvcGVydHkoJ2NhY2hlQmxvY2tTaXplJywgdGhpcy50YWtlQ291bnQgPyB0aGlzLnRha2VDb3VudCA6IHBhcmFtcy5hcGkucGFnaW5hdGlvbkdldFBhZ2VTaXplKCkpO1xyXG4gICAgICAgIHRoYXQuZGF0YVNvdXJjZVN1Y2Nlc3NDYWxsYmFjayA9IHBhcmFtcy5zdWNjZXNzQ2FsbGJhY2s7XHJcbiAgICAgICAgY29uc3QgbG9hZFBhcmFtczogQVhEYXRhU291cmNlUmVhZFBhcmFtcyA9IHt9O1xyXG4gICAgICAgIGxvYWRQYXJhbXMuc2VhcmNoVGV4dCA9IHRoYXQuc2VhcmNoVGV4dDtcclxuICAgICAgICBsb2FkUGFyYW1zLnNraXAgPSBwYXJhbXMucmVxdWVzdC5zdGFydFJvdztcclxuICAgICAgICAvLyAgbG9hZFBhcmFtcy50YWtlID0gcGFyYW1zLnJlcXVlc3QuZW5kUm93IC0gcGFyYW1zLnJlcXVlc3Quc3RhcnRSb3c7XHJcbiAgICAgICAgbG9hZFBhcmFtcy50YWtlID0gdGhhdC50YWtlQ291bnQgPyB0aGF0LnRha2VDb3VudCA6IHBhcmFtcy5hcGkucGFnaW5hdGlvbkdldFBhZ2VTaXplKCkgKiAyO1xyXG4gICAgICAgIGxvYWRQYXJhbXMuc29ydCA9IHBhcmFtcy5yZXF1ZXN0LnNvcnRNb2RlbC5tYXAoKGMpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGZpZWxkOiBjLmNvbElkLFxyXG4gICAgICAgICAgICBkaXI6IGMuc29ydFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBsb2FkUGFyYW1zLmdyb3VwcyA9IHBhcmFtcy5yZXF1ZXN0LnJvd0dyb3VwQ29scy5tYXAociA9PiByLmZpZWxkKTtcclxuICAgICAgICAvLyBsb2FkUGFyYW1zLmdyb3VwS2V5cyA9IHBhcmFtcy5yZXF1ZXN0Lmdyb3VwS2V5cztcclxuICAgICAgICAvLyBsb2FkUGFyYW1zLmRhdGEgPSBwYXJhbXMucGFyZW50Tm9kZS5kYXRhO1xyXG4gICAgICAgIGxvYWRQYXJhbXMuZ3JvdXAgPSB7XHJcbiAgICAgICAgICBmaWVsZHM6IHBhcmFtcy5yZXF1ZXN0LnJvd0dyb3VwQ29scy5tYXAoKHIpID0+IHIuZmllbGQpLFxyXG4gICAgICAgICAga2V5czogcGFyYW1zLnJlcXVlc3QuZ3JvdXBLZXlzLFxyXG4gICAgICAgICAgcGFyZW50RGF0YTogcGFyYW1zLnBhcmVudE5vZGUuZGF0YVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbG9hZFBhcmFtcy5maWx0ZXIgPSBwYXJhbXMucmVxdWVzdC5maWx0ZXJNb2RlbDtcclxuICAgICAgICB0aGF0LmRhdGFTb3VyY2UuZmV0Y2gobG9hZFBhcmFtcyk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG4gIGdldE1haW5NZW51SXRlbXMoZSkge1xyXG4gICAgcmV0dXJuIFsncGluU3ViTWVudScsICdzZXBhcmF0b3InXTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmlkQXBpLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIGlzU2VydmVyU2lkZUdyb3VwID0gKGUpID0+IHtcclxuICAgIHJldHVybiBlW3RoaXMuaGFzQ2hpbGRGaWVsZF07XHJcbiAgfTtcclxuXHJcbiAgZ2V0U2VydmVyU2lkZUdyb3VwS2V5ID0gKGUpID0+IHtcclxuICAgIHJldHVybiBlW3RoaXMua2V5RmllbGRdO1xyXG4gIH07XHJcbiAgLy8gdG9kbyBncmlkT3B0aW9uczogR3JpZE9wdGlvbnNcclxuICBpbnRlcm5hbEdyaWRSZWFkeShncmlkT3B0aW9ucykge1xyXG4gICAgZ3JpZE9wdGlvbnMuYXBpLmNoZWNrR3JpZFNpemUoKTtcclxuICAgIHRoaXMudGFrZUNvdW50ID0gdGhpcy50YWtlQ291bnQgPyB0aGlzLnRha2VDb3VudCA6IGdyaWRPcHRpb25zLmFwaS5wYWdpbmF0aW9uR2V0UGFnZVNpemUoKSAqIDI7XHJcbiAgICB0aGlzLnRha2VDb3VudCA9IHRoaXMudGFrZUNvdW50IDwgMjAgPyAyMCA6IHRoaXMudGFrZUNvdW50O1xyXG4gICAgZ3JpZE9wdGlvbnMuYXBpLmdyaWRPcHRpb25zV3JhcHBlci5zZXRQcm9wZXJ0eSgnY2FjaGVCbG9ja1NpemUnLCB0aGlzLnRha2VDb3VudCk7XHJcbiAgICB0aGlzLmdyaWRBcGkgPSBncmlkT3B0aW9ucy5hcGk7XHJcblxyXG4gICAgdGhpcy5tYXBDb2x1bW5zKCk7XHJcbiAgICB0aGlzLmNhbGNIZWlnaHQoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMubG9hZE9uSW5pdCkge1xyXG4gICAgICB0aGlzLmxvYWRPbkluaXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucmVtb3RlT3BlcmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zZXRTZXJ2ZXJTaWRlRGF0YXNvdXJjZSh0aGlzLmludGVuYWxHcmlkRGF0YVNvdXJjZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnJlbW90ZU9wZXJhdGlvbikge1xyXG4gICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG4gICAgaWYgKHRoaXMucm93VGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy5mdWxsV2lkdGhDZWxsUmVuZGVyZXJGcmFtZXdvcmsgPSB0aGlzLnJvd1RlbXBsYXRlLnJlbmRlcmVyO1xyXG4gICAgICB0aGlzLmZ1bGxXaWR0aENlbGxSZW5kZXJlclBhcmFtcyA9IHRoaXMucm93VGVtcGxhdGUucGFyYW1zO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mcmFtZXdvcmtDb21wb25lbnRzLmFnRGF0ZUlucHV0ID0gQVhEYXRlUGlja2VyRmlsdGVyQ29tcG9uZW50O1xyXG5cclxuICAgIGlmICh0aGlzLmdyaWREZXRhaWxUZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLm1hc3RlckRldGFpbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGV0YWlsQ2VsbFJlbmRlcmVyUGFyYW1zID0gdGhpcy5ncmlkRGV0YWlsVGVtcGxhdGUucGFyYW1zO1xyXG4gICAgICB0aGlzLmRldGFpbENlbGxSZW5kZXJlciA9ICdkZXRhaWxSZW5kZXJlckZyYW1ld29yayc7XHJcbiAgICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50cy5kZXRhaWxSZW5kZXJlckZyYW1ld29yayA9IHRoaXMuZ3JpZERldGFpbFRlbXBsYXRlLnJlbmRlcmVyO1xyXG5cclxuICAgICAgdGhpcy5kZXRhaWxSb3dIZWlnaHQgPSB0aGlzLmdyaWREZXRhaWxUZW1wbGF0ZS5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRnVsbFdpZHRoQ2VsbCA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoYXQucm93VGVtcGxhdGUgIT0gbnVsbDtcclxuICAgIH07XHJcbiAgICAvL3RoaXMuY2RyXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBTZWxlY3RzQ2hpbGRyZW4gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmtleUZpZWxkICE9PSAnbnVsbCcgJiYgdGhpcy5oYXNDaGlsZEZpZWxkICE9PSAnbnVsbCcpIHtcclxuICAgICAgdGhpcy5yb3dHcm91cFBhbmVsU2hvdyA9ICduZXZlcic7XHJcbiAgICAgIHRoaXMudHJlZURhdGEgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVtb3RlT3BlcmF0aW9uKSB7XHJcbiAgICAgIHRoaXMucm93TW9kZWxUeXBlID0gJ3NlcnZlclNpZGUnO1xyXG4gICAgfVxyXG4gICAgLy9cclxuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucnRsID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJykgPT09ICdydGwnO1xyXG4gICAgfVxyXG4gICAgLy9cclxuICB9XHJcblxyXG4gIGdyaWRTZWxlY3RSb3coKSB7XHJcbiAgICBpZiAodGhpcy5ncmlkQXBpKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdFJvdyAmJiB0aGlzLnNlbGVjdFJvdy5sZW5ndGggPiAwICYmIHRoaXMuZ3JpZEFwaSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiB0aGlzLnNlbGVjdFJvd1swXSAhPSAnb2JqZWN0Jykge1xyXG4gICAgICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZSgobm9kZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKG5vZGUuZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGxldCBzZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RSb3cuZm9yRWFjaCgoaWQpID0+IHtcclxuICAgICAgICAgICAgICBpZiAobm9kZS5kYXRhW3RoaXMua2V5RmllbGRdID09PSBpZCkge1xyXG4gICAgICAgICAgICAgICAgc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuc2V0U2VsZWN0ZWQoc2VsZWN0KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZSgobm9kZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKG5vZGUuZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGxldCBzZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RSb3cuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChpdGVtLnJvd0luZGV4ICE9IHVuZGVmaW5lZCAmJiBpdGVtLnJvd0xldmVsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUuZGF0YVt0aGlzLmtleUZpZWxkXSA9PT0gaXRlbS5kYXRhW3RoaXMua2V5RmllbGRdKSB7XHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlLmRhdGFbdGhpcy5rZXlGaWVsZF0gPT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pIHtcclxuICAgICAgICAgICAgICAgICAgc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBub2RlLnNldFNlbGVjdGVkKHNlbGVjdCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuXHJcbiAgLy8gICAvL0NhbGxlZCBhZnRlciBldmVyeSBjaGVjayBvZiB0aGUgY29tcG9uZW50J3Mgdmlldy4gQXBwbGllcyB0byBjb21wb25lbnRzIG9ubHkuXHJcbiAgLy8gICAvL0FkZCAnaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkJyB0byB0aGUgY2xhc3MuXHJcbiAgLy8gICAvLyB0aGlzLnNlbGVjdEJ5VmFsdWVzKCk7XHJcbiAgLy8gICB0aGlzLmVuYWJlbFNlbGVjdCA9IGZhbHNlO1xyXG5cclxuICAvLyB9XHJcbiAgcmVidWlsZEdyaWQoKSB7XHJcbiAgICB0aGlzLm1hcENvbHVtbnMoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5zaXplQ29sdW1uc1RvRml0KSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSwgMTApO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJlZURhdGEgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5jb2x1bW5EZWZzID0gdGhpcy5jb2x1bW5zLm1hcCgoYykgPT4gYy5yZW5kZXIoKSk7XHJcblxyXG4gICAgICBjb25zdCBncm91cENvbHVtbiA9IHRoaXMuY29sdW1uRGVmcy5maW5kKChjKSA9PiBjLnJvd0dyb3VwSW5kZXggPT0gJzAnICYmIGMuZmllbGQgIT09ICcnKTtcclxuXHJcbiAgICAgIHRoaXMuYXV0b0dyb3VwQ29sdW1uRGVmID0ge1xyXG4gICAgICAgIGhlYWRlck5hbWU6IGdyb3VwQ29sdW1uLmhlYWRlck5hbWUsXHJcbiAgICAgICAgd2lkdGg6IGdyb3VwQ29sdW1uLndpZHRoLFxyXG4gICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBjaGVja2JveDogdGhpcy5zaG93Q2hlY2tCb3ggfSxcclxuICAgICAgICBmaWVsZDogZ3JvdXBDb2x1bW4uZmllbGRcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHRoaXMuY29sdW1uRGVmcy5mb3JFYWNoKChlbG0pID0+IHtcclxuICAgICAgICBpZiAoZWxtLnJvd0dyb3VwSW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgZWxtLmhpZGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvL3NldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgdGhpcy5ncmlkVmlldyA9IHRydWU7XHJcbiAgICAvL30pO1xyXG5cclxuICAgIHRoaXMuZW5hYmVsU2VsZWN0ID0gdHJ1ZTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5vbkRhdGFSZWNlaXZlZC5zdWJzY3JpYmUoKF9kYXRhKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IF9kYXRhLmRhdGEucmVzdWx0O1xyXG4gICAgICB0aGlzLmhpZGVMb2FkaW5nKCk7XHJcbiAgICAgIGxldCBpdGVtczogYW55W107XHJcbiAgICAgIGxldCB0b3RhbENvdW50OiBudW1iZXI7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcclxuICAgICAgICBpdGVtcyA9IHJlc3VsdDtcclxuICAgICAgICB0b3RhbENvdW50ID0gcmVzdWx0Lmxlbmd0aDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpdGVtcyA9IHJlc3VsdC5pdGVtcztcclxuICAgICAgICB0b3RhbENvdW50ID0gcmVzdWx0LnRvdGFsQ291bnQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZVN1Y2Nlc3NDYWxsYmFjaykge1xyXG4gICAgICAgIGlmICghdGhpcy5sb2FkT25Jbml0KSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VTdWNjZXNzQ2FsbGJhY2soW10sIDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VTdWNjZXNzQ2FsbGJhY2soaXRlbXMsIHRvdGFsQ291bnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXRoaXMubG9hZE9uSW5pdCAmJiB0aGlzLmdyaWRBcGkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5ncmlkQXBpLnNldFJvd0RhdGEoW10pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5ncmlkQXBpICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFwaS5zZXRSb3dEYXRhKGl0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZ3JpZFNlbGVjdFJvdygpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kYXRhU291cmNlLm9uRmV0Y2hTdGFydC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNob3dMb2FkaW5nKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCkge1xyXG4gICAgICB0aGlzLnNlYXJjaElucHV0Lm9uVmFsdWVDaGFuZ2VkLnN1YnNjcmliZSgoYykgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGV4dCA9IGMudmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy9cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG1hcENvbHVtbnMoKSB7XHJcbiAgICB0aGlzLmNvbHVtbkRlZnMgPSB0aGlzLmNvbHVtbnMubWFwKChjKSA9PiBjLnJlbmRlcigpKTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5zaG93Um93TnVtYmVyKSB7XHJcbiAgICAvLyAgIHRoaXMuY29sdW1uRGVmcy5wdXNoKHtcclxuICAgIC8vICAgICBoZWFkZXJOYW1lOiBBWENvbmZpZy5nZXQoJ2xheW91dC5ydGwnKSA/ICfYsdiv24zZgScgOiAnUm93JyxcclxuICAgIC8vICAgICB2YWx1ZUdldHRlcjogJ25vZGUucm93SW5kZXggKyAxJyxcclxuICAgIC8vICAgICBwaW5uZWQ6IEFYQ29uZmlnLmdldCgnbGF5b3V0LnJ0bCcpID8gJ3JpZ2h0JyA6ICdsZWZ0J1xyXG4gICAgLy8gICB9KTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5ncmlkRGV0YWlsVGVtcGxhdGUpIHtcclxuICAgICAgaWYgKHRoaXMuY29sdW1uRGVmc1swXS5jaGVja2JveFNlbGVjdGlvbiA9PT0gdHJ1ZSAmJiB0aGlzLmNvbHVtbkRlZnNbMF0uZmllbGQgPT09ICcnKSB7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5EZWZzWzFdLmNlbGxSZW5kZXJlciA9ICdhZ0dyb3VwQ2VsbFJlbmRlcmVyJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbHVtbkRlZnNbMF0uY2VsbFJlbmRlcmVyID0gJ2FnR3JvdXBDZWxsUmVuZGVyZXInO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaGFzQ2hpbGRGaWVsZCA9PT0gJ251bGwnKSB7XHJcbiAgICAgIGNvbnN0IGdyb3VwQ29sdW1uID0gdGhpcy5jb2x1bW5EZWZzLmZpbmQoKGMpID0+IGMucm93R3JvdXBJbmRleCA9PT0gdW5kZWZpbmVkICYmIGMuZmllbGQgIT09ICcnKTtcclxuICAgICAgaWYgKGdyb3VwQ29sdW1uICYmIHRoaXMuZ3JvdXBIaWRlT3BlblBhcmVudHMgPT0gZmFsc2UpIHtcclxuICAgICAgICB0aGlzLmF1dG9Hcm91cENvbHVtbkRlZiA9IHtcclxuICAgICAgICAgIGhlYWRlck5hbWU6IGdyb3VwQ29sdW1uLmhlYWRlck5hbWUsXHJcbiAgICAgICAgICB3aWR0aDogZ3JvdXBDb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHsgY2hlY2tib3g6IHRoaXMuc2hvd0NoZWNrQm94IH0sXHJcbiAgICAgICAgICBmaWVsZDogZ3JvdXBDb2x1bW4uZmllbGRcclxuICAgICAgICB9O1xyXG4gICAgICAgIC8vICBncm91cENvbHVtbi5oaWRlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29sdW1uRGVmcy5mb3JFYWNoKChlbG0pID0+IHtcclxuICAgICAgaWYgKGVsbS5yb3dHcm91cEluZGV4ID4gLTEpIHtcclxuICAgICAgICBlbG0uaGlkZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheWVkQ29sdW1uc0NoYW5nZWQoZSkge1xyXG4gICAgaWYgKHRoaXMuaGFzQ2hpbGRGaWVsZCA9PT0gJ251bGwnKSB7XHJcbiAgICAgIGNvbnN0IGVlID0gZS5jb2x1bW5BcGkuZ2V0QWxsRGlzcGxheWVkQ29sdW1uR3JvdXBzKCk7XHJcbiAgICAgIGNvbnN0IGVlZSA9IGVlLmZpbmQoKGMpID0+IGMuY29sSWQgIT09ICdhZy1HcmlkLUF1dG9Db2x1bW4nICYmIGMuY29sSWQgIT09ICcwJyk7XHJcbiAgICAgIGlmIChlZWUgJiYgZWVlLmNvbElkKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvR3JvdXBDb2x1bW5EZWYgPSB7XHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBlZWUuY29sRGVmLmhlYWRlck5hbWUsXHJcbiAgICAgICAgICB3aWR0aDogZWVlLmNvbERlZi53aWR0aCxcclxuICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBjaGVja2JveDogdGhpcy5zaG93Q2hlY2tCb3ggfSxcclxuICAgICAgICAgIGZpZWxkOiBlZWUuY29sRGVmLmZpZWxkXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICAvLyBlZWUuaGlkZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKHJvdXRlOiBhbnlbXSA9IFtdKSB7XHJcbiAgICBpZiAodGhpcy5yZW1vdGVPcGVyYXRpb24gJiYgdGhpcy5ncmlkQXBpICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gIHRoaXMuZ3JpZEFwaS5wdXJnZVNlcnZlclNpZGVDYWNoZShyb3V0ZSk7XHJcbiAgICAgIHRoaXMuZ3JpZEFwaS5zZXRTZXJ2ZXJTaWRlRGF0YXNvdXJjZSh0aGlzLmludGVuYWxHcmlkRGF0YVNvdXJjZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBUT0RPIDogY2hlY2sgZmV0Y2ggcGFyYW1cclxuICAgICAgdGhpcy5kYXRhU291cmNlLmZldGNoKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW50ZXJuYWxHcmlkQ2VsbENsaWNrZWQoZTogQ2VsbENsaWNrZWRFdmVudCkge1xyXG4gICAgdGhpcy5jZWxsQ2xpY2suZW1pdCh7IGRhdGE6IHRoaXMubWFwQ2VsbEV2ZW50KGUpLCBjb21wb25lbnQ6IHRoaXMsIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50IH0pO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJuYWxHcmlkQ2VsbERvdWJsZUNsaWNrZWQoZTogQ2VsbENsaWNrZWRFdmVudCkge1xyXG4gICAgdGhpcy5jZWxsRGJDbGljay5lbWl0KHsgZGF0YTogdGhpcy5tYXBDZWxsRXZlbnQoZSksIGNvbXBvbmVudDogdGhpcywgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQgfSk7XHJcbiAgfVxyXG5cclxuICBpbnRlcm5hbEdyaWRDZWxsRm9jdXNlZChlOiBDZWxsQ2xpY2tlZEV2ZW50KSB7XHJcbiAgICB0aGlzLmNlbGxGb2N1c2UuZW1pdCh7IGRhdGE6IHRoaXMubWFwQ2VsbEV2ZW50KGUpLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCwgY29tcG9uZW50OiB0aGlzIH0pO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJuYWxHcmlkUm93Q2xpY2tlZChlOiBSb3dDbGlja2VkRXZlbnQpIHtcclxuICAgIGlmICghZS5ub2RlLmdyb3VwKSB7XHJcbiAgICAgIHRoaXMucm93Q2xpY2suZW1pdCh7IGRhdGE6IHRoaXMubWFwUm93RXZlbnQoZSksIGNvbXBvbmVudDogdGhpcywgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnRlcm5hbEdyaWRSb3dEb3VibGVDbGlja2VkKGU6IENlbGxDbGlja2VkRXZlbnQpIHtcclxuICAgIGlmICghZS5ub2RlLmdyb3VwKSB7XHJcbiAgICAgIHRoaXMucm93RGJDbGljay5lbWl0KHsgZGF0YTogdGhpcy5tYXBSb3dFdmVudChlKSwgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIGNvbXBvbmVudDogdGhpcyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRpZmZlcmVuY2VPZjJBcnJheXMoYXJyYXkxOiBhbnksIGFycmF5MjogYW55KSB7XHJcbiAgICBjb25zdCB0ZW1wID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGkgaW4gYXJyYXkxKSB7XHJcbiAgICAgIGlmIChhcnJheTIuaW5kZXhPZihhcnJheTFbaV0pID09PSAtMSkge1xyXG4gICAgICAgIHRlbXAucHVzaChhcnJheTFbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGkgaW4gYXJyYXkyKSB7XHJcbiAgICAgIGlmIChhcnJheTEuaW5kZXhPZihhcnJheTJbaV0pID09PSAtMSkge1xyXG4gICAgICAgIHRlbXAucHVzaChhcnJheTJbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGVtcC5zb3J0KChhLCBiKSA9PiBhIC0gYik7XHJcbiAgfVxyXG5cclxuICByb3dTZWxlY3Rpb25DaGFuZ2VkKGUpIHtcclxuICAgIHRoaXMucm93U2VsZWN0aW9uQ2hhbmdlLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IGUsIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50IH0pO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2UnLCBlKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdzZWxlY3QnLCBlLm5vZGUuc2VsZWN0ZWQpO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2luZGV4JywgZS5yb3dJbmRleCk7XHJcbiAgfVxyXG5cclxuICBpbnRlcm5hbEdyaWRTZWxlY3Rpb25DaGFuZ2VkKGUpIHtcclxuICAgIGNvbnN0IGFyZ3M6IEFYR3JpZFJvd1NlbGVjdGlvbkV2ZW50ID0geyBpdGVtczogW10gfTtcclxuICAgIGNvbnN0IG9sZE5vZGVzID0gdGhpcy5vbGRTZWxlY3Rpb25Ob2RlcztcclxuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5ncmlkQXBpLmdldFNlbGVjdGVkTm9kZXMoKTtcclxuICAgIG5vZGVzLmZvckVhY2goKGkpID0+IHtcclxuICAgICAgYXJncy5pdGVtcy5wdXNoKHtcclxuICAgICAgICByb3dMZXZlbDogaS5sZXZlbCxcclxuICAgICAgICByb3dJbmRleDogaS5yb3dJbmRleCxcclxuICAgICAgICBkYXRhOiBpLmRhdGFcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHsgZGF0YTogYXJncywgY29tcG9uZW50OiB0aGlzLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcclxuICAgIGxldCBhY3Rpb24gPSBub2Rlcy5sZW5ndGggPiBvbGROb2Rlcy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBub2RlID0gdGhpcy5kaWZmZXJlbmNlT2YyQXJyYXlzKG5vZGVzLCBvbGROb2Rlcyk7XHJcbiAgICB0aGlzLm9uUm93U2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBzZWxlY3RlZDogYWN0aW9uLCBkYXRhOiBub2RlLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcclxuICAgIHRoaXMub2xkU2VsZWN0aW9uTm9kZXMgPSBub2RlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFwQ2VsbEV2ZW50KGU6IENlbGxFdmVudCk6IEFYR3JpZENlbGxFdmVudCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICByb3dMZXZlbDogMCxcclxuICAgICAgY29sdW1uOiBlLmNvbHVtbixcclxuICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICByb3dJbmRleDogZS5yb3dJbmRleCxcclxuICAgICAgdmFsdWU6IGUudmFsdWVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcFJvd0V2ZW50KGU6IFJvd0V2ZW50KTogQVhHcmlkUm93RXZlbnQge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcm93TGV2ZWw6IDAsXHJcbiAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgcm93SW5kZXg6IGUucm93SW5kZXhcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVzZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLmdyaWRBcGkuZGVzZWxlY3RBbGwoKTtcclxuICB9XHJcblxyXG4gIGludGVybmFsR2V0Um93Q2xhc3MgPSAocDogYW55KSA9PiB7XHJcbiAgICBpZiAodGhpcy5yb3dDbGFzcykge1xyXG4gICAgICBpZiAodGhpcy5yb3dDbGFzcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucm93Q2xhc3Moe1xyXG4gICAgICAgICAgcm93SW5kZXg6IHAubm9kZS5yb3dJbmRleCxcclxuICAgICAgICAgIHJvd0xldmVsOiBwLm5vZGUubGV2ZWwsXHJcbiAgICAgICAgICBkYXRhOiBwLmRhdGFcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yb3dDbGFzcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHNob3dMb2FkaW5nKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2hvd0xvYWRpbmdPdmVybGF5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlTG9hZGluZygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgdGhpcy5ncmlkQXBpLmhpZGVPdmVybGF5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnRlcm5hbEdyaWRTaXplQ2hhbmdlZChlOiBHcmlkU2l6ZUNoYW5nZWRFdmVudCkge1xyXG4gICAgaWYgKGUuY2xpZW50V2lkdGggPiAwICYmIGUuY2xpZW50SGVpZ2h0ID4gMCkge1xyXG4gICAgICB0aGlzLnBlcmZvcm1TaXplQ29sdW1uc1RvRml0KGUuYXBpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGludGVybmFsR3JpZEZpcnN0RGF0YVJlbmRlcmVkKGU6IEZpcnN0RGF0YVJlbmRlcmVkRXZlbnQpIHtcclxuICAgIHRoaXMucGVyZm9ybVNpemVDb2x1bW5zVG9GaXQoZS5hcGkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwZXJmb3JtU2l6ZUNvbHVtbnNUb0ZpdChhcGk6IEdyaWRBcGkpIHtcclxuICAgIGlmICh0aGlzLnNpemVDb2x1bW5zVG9GaXQpIHtcclxuICAgICAgYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
761
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9kYXRhLWdyaWQvIiwic291cmNlcyI6WyJsaWIvZGF0YS1ncmlkL2RhdGFncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQWE5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0csT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXhDLGNBQWMsQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHO0lBQ3pDLDZDQUE2QztBQUMvQyxDQUFDLENBQUM7QUFFRixpRUFBaUU7QUFDakUsa0JBQWtCO0FBQ2xCLElBQUk7QUFFSjtJQUFrRCxnREFBZ0M7SUFBbEY7O0lBRUEsQ0FBQztJ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QURDLEtBQUssRUFBRTtrQ0FLaUIscUJBQXFCO3lDQUFyQixxQkFBcUI7eURBRjdDO0lBT0Q7UUFEQyxLQUFLLEVBQUU7O3FFQUM4QjtJQUd0QztRQURDLE1BQU0sRUFBRTtrQ0FDRSxZQUFZOzBEQUFnRTtJQUd2RjtRQURDLE1BQU0sRUFBRTtrQ0FDSSxZQUFZOzREQUFnRTtJQUd6RjtRQURDLE1BQU0sRUFBRTtrQ0FDRyxZQUFZOzJEQUFnRTtJQUd4RjtRQURDLE1BQU0sRUFBRTtrQ0FDQyxZQUFZO3lEQUFzRTtJQUc1RjtRQURDLE1BQU0sRUFBRTtrQ0FDRyxZQUFZOzJEQUFzRTtJQUc5RjtRQURDLE1BQU0sRUFBRTtrQ0FDUyxZQUFZO2lFQUFzRjtJQUdwSDtRQURDLE1BQU0sRUFBRTtrQ0FDVyxZQUFZO21FQUFzRjtJQUd0SDtRQURDLE1BQU0sRUFBRTtrQ0FDYyxZQUFZO3NFQUE0RjtJQWUvSDtRQURDLEtBQUssRUFBRTs7eURBQzBFO0lBR2xGO1FBREMsS0FBSyxFQUFFOztvREFDa0M7SUE5TS9CLG1CQUFtQjtRQU4vQixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsY0FBYztZQUN4QiwwM0VBQXdDO1lBQ3hDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1lBQ3JDLGtEQUFrRDtTQUNuRCxDQUFDO3lDQWlOeUIsVUFBVSxFQUFlLGlCQUFpQjtPQWhOeEQsbUJBQW1CLENBd29CL0I7SUFBRCwwQkFBQztDQUFBLEFBeG9CRCxJQXdvQkM7U0F4b0JZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBJbnB1dCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgUXVlcnlMaXN0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWERhdGFTb3VyY2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBBWEdyaWREYXRhQ29sdW1uIH0gZnJvbSAnLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWERhdGFTb3VyY2VSZWFkUGFyYW1zIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtcclxuICBHcmlkT3B0aW9ucyxcclxuICBDZWxsQ2xpY2tlZEV2ZW50LFxyXG4gIFJvd0NsaWNrZWRFdmVudCxcclxuICBDZWxsRXZlbnQsXHJcbiAgUm93RXZlbnQsXHJcbiAgRmlyc3REYXRhUmVuZGVyZWRFdmVudCxcclxuICBHcmlkU2l6ZUNoYW5nZWRFdmVudCxcclxuICBHcmlkQXBpXHJcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5cclxuaW1wb3J0IHsgTGljZW5zZU1hbmFnZXIgfSBmcm9tICdhZy1ncmlkLWVudGVycHJpc2UnO1xyXG5pbXBvcnQgeyBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEdyaWRDZWxsRXZlbnQsIEFYR3JpZFJvd0V2ZW50LCBBWEdyaWRSb3dTZWxlY3Rpb25FdmVudCwgQVhHcmlkUm93UGFyYW1zIH0gZnJvbSAnLi9kYXRhZ3JpZC5ldmVudHMnO1xyXG5cclxuaW1wb3J0IHsgQVhEYXRhR3JpZFJvd1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvcm93LXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVG9vbGJhclNlYXJjaENvbXBvbmVudCwgQVhUb29sYmFyQ29tcG9uZW50LCBBWERhdGFFdmVudCwgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQVhEYXRhR3JpZERldGFpbFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZXMvZGV0YWlsLXRlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYRGF0ZVBpY2tlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1ucy9kYXRlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcblxyXG5MaWNlbnNlTWFuYWdlci5wcm90b3R5cGUudmFsaWRhdGVMaWNlbnNlID0gZnVuY3Rpb24gKCkge1xyXG4gIC8vY29uc29sZS5pbmZvKCdDcmFja2VkIGJ5IEFyYXNoIE9zaG5vdWRpIScpO1xyXG59O1xyXG5cclxuLy8gV2F0ZXJtYXJrQ29tcC5wcm90b3R5cGUuc2hvdWxkRGlzcGxheVdhdGVybWFyayA9IGZ1bmN0aW9uICgpIHtcclxuLy8gICByZXR1cm4gZmFsc2U7XHJcbi8vIH1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWERhdGFHcmlkQ29sdW1uc0NoYW5nZUV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYR3JpZERhdGFDb2x1bW5bXT4ge1xyXG4gIGNvbXBvbmVudDogQVhEYXRhR3JpZENvbXBvbmVudDtcclxufVxyXG5leHBvcnQgY2xhc3MgQVhEYXRhR3JpZENlbGxFdmVudCBleHRlbmRzIEFYRGF0YUV2ZW50PEFYR3JpZENlbGxFdmVudD4ge1xyXG4gIGNvbXBvbmVudDogQVhEYXRhR3JpZENvbXBvbmVudDtcclxufVxyXG5leHBvcnQgY2xhc3MgQVhEYWFncmlkUm93Q2xpY2tFdmVudCBleHRlbmRzIEFYRGF0YUV2ZW50PEFYR3JpZFJvd0V2ZW50PiB7XHJcbiAgY29tcG9uZW50OiBBWERhdGFHcmlkQ29tcG9uZW50O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhEYXRhR3JpZFNlbGVjdGlvbkNoYW5nZUV2ZW50IGV4dGVuZHMgQVhEYXRhRXZlbnQ8QVhHcmlkUm93U2VsZWN0aW9uRXZlbnQ+IHtcclxuICBjb21wb25lbnQ6IEFYRGF0YUdyaWRDb21wb25lbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWERhdGFHcmlkUm93U2VsZWN0aW9uQ2hhbmdlRXZlbnQgZXh0ZW5kcyBBWERhdGFFdmVudDxhbnk+IHtcclxuICBjb21wb25lbnQ6IEFYRGF0YUdyaWRDb21wb25lbnQ7XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtZGF0YS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YWdyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhEYXRhR3JpZENvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBncmlkQXBpO1xyXG4gIHByaXZhdGUgZGF0YVNvdXJjZVN1Y2Nlc3NDYWxsYmFjaztcclxuICBsb2NhbGVUZXh0OiBhbnk7XHJcblxyXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcclxuICBjb2x1bW5EZWZzOiBhbnlbXSA9IFtdO1xyXG4gIHJvd01vZGVsVHlwZSA9ICdjbGllbnRTaWRlJztcclxuICBmdWxsV2lkdGhDZWxsUmVuZGVyZXJGcmFtZXdvcms6IGFueTtcclxuICBmdWxsV2lkdGhDZWxsUmVuZGVyZXJQYXJhbXM6IGFueTtcclxuICBmcmFtZXdvcmtDb21wb25lbnRzOiBhbnkgPSB7fTtcclxuICBpc0Z1bGxXaWR0aENlbGw6IEZ1bmN0aW9uO1xyXG4gIGludGVybmFsSGVpZ2h0OiBzdHJpbmcgPSAnMTAwJSc7XHJcbiAgZGV0YWlsQ2VsbFJlbmRlcmVyOiBhbnk7XHJcbiAgZGV0YWlsQ2VsbFJlbmRlcmVyUGFyYW1zOiBhbnk7XHJcbiAgZGV0YWlsUm93SGVpZ2h0OiBudW1iZXI7XHJcbiAgbWFzdGVyRGV0YWlsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdHJlZURhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFiZWxTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBncmlkVmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdyb3VwU2VsZWN0c0NoaWxkcmVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgb2xkU2VsZWN0aW9uTm9kZXM6IGFueVtdID0gW107XHJcblxyXG4gIC8vIEBJbnB1dCgpXHJcbiAgLy8gc2hvd1Jvd051bWJlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlbW90ZU9wZXJhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByb3dNdWx0aVNlbGVjdFdpdGhDbGljazogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3VwcHJlc3NDZWxsU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNpemVDb2x1bW5zVG9GaXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dDaGVja0JveDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZmxvYXRpbmdGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB0YWtlQ291bnQ6IG51bWJlcjtcclxuXHJcbiAgYXV0b0dyb3VwQ29sdW1uRGVmOiBhbnkgPSB7fTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgPSAnc2luZ2xlJztcclxuXHJcbiAgLy8gQElucHV0KClcclxuICAvLyBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdFJvdzogYW55W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICByb3dHcm91cFBhbmVsU2hvdzogJ2Fsd2F5cycgfCAnbmV2ZXInID0gJ25ldmVyJztcclxuXHJcbiAgQElucHV0KClcclxuICBsb2FkT25Jbml0OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLy8gQElucHV0KClcclxuICAvLyBncm91cERlZmF1bHRFeHBhbmRlZDogbnVtYmVyID0gMDtcclxuXHJcbiAgQElucHV0KClcclxuICBrZXlGaWVsZDogc3RyaW5nID0gJ251bGwnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGhhc0NoaWxkRmllbGQ6IHN0cmluZyA9ICdudWxsJztcclxuXHJcbiAgcHJpdmF0ZSBfc2VhcmNoVGV4dDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBzZWFyY2hUZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoVGV4dDtcclxuICB9XHJcbiAgcHVibGljIHNldCBzZWFyY2hUZXh0KHY6IHN0cmluZykge1xyXG4gICAgaWYgKHYgIT09IHRoaXMuX3NlYXJjaFRleHQpIHtcclxuICAgICAgdGhpcy5fc2VhcmNoVGV4dCA9IHY7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgICB0aGlzLmdyaWRBcGkuc2V0UXVpY2tGaWx0ZXIodGhpcy5zZWFyY2hUZXh0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsdGVyOiBhbnlbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZmlsdGVyKHY6IGFueVtdKSB7XHJcbiAgICBpZiAodiAhPT0gdGhpcy5fZmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuX2ZpbHRlciA9IHY7XHJcbiAgICAgIHRoaXMuX2ZpbHRlci5mb3JFYWNoKChmKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmMgPSB0aGlzLmdyaWRBcGkuZ2V0RmlsdGVySW5zdGFuY2UoZi5maWVsZCk7XHJcbiAgICAgICAgaWYgKGZjKSB7XHJcbiAgICAgICAgICBjb25zdCBmZiA9IGZjLmdldEZyYW1ld29ya0NvbXBvbmVudEluc3RhbmNlKCk7XHJcbiAgICAgICAgICBmZi5zZXRNb2RlbChmKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihBWEdyaWREYXRhQ29sdW1uKVxyXG4gIHByaXZhdGUgX2lubGluZUNvbHVtbnM6IFF1ZXJ5TGlzdDxBWEdyaWREYXRhQ29sdW1uPjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY29sdW1uc0NoYW5nZTogRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRDb2x1bW5zQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFHcmlkQ29sdW1uc0NoYW5nZUV2ZW50PigpO1xyXG5cclxuICBwcml2YXRlIF9jb2x1bW5zOiBBWEdyaWREYXRhQ29sdW1uW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgY29sdW1ucygpOiBBWEdyaWREYXRhQ29sdW1uW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lubGluZUNvbHVtbnMgPyBbLi4udGhpcy5fY29sdW1ucywgLi4udGhpcy5faW5saW5lQ29sdW1ucy50b0FycmF5KCldIDogdGhpcy5fY29sdW1ucztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgY29sdW1ucyh2YWw6IEFYR3JpZERhdGFDb2x1bW5bXSkge1xyXG4gICAgaWYgKHZhbCAmJiB2YWwubGVuZ3RoKSB7XHJcbiAgICAgIGxldCBvbGQgPSB0aGlzLl9jb2x1bW5zO1xyXG4gICAgICB0aGlzLl9jb2x1bW5zID0gdmFsO1xyXG4gICAgICB0aGlzLmNvbHVtbnNDaGFuZ2UuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgdmFsdWU6IHZhbCwgb2xkVmFsdWU6IG9sZCwgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZWZhdWx0Q29sRGVmOiBhbnkgPSB7XHJcbiAgICBmaWx0ZXI6IHRydWUsXHJcbiAgICBmbG9hdGluZ0ZpbHRlcjogdHJ1ZVxyXG4gIH07XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcm93SGVpZ2h0OiBhbnk7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQVhUb29sYmFyU2VhcmNoQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHNlYXJjaElucHV0OiBBWFRvb2xiYXJTZWFyY2hDb21wb25lbnQ7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQVhUb29sYmFyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHRvb2xiYXI6IEFYVG9vbGJhckNvbXBvbmVudDtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBWERhdGFHcmlkUm93VGVtcGxhdGVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcm93VGVtcGxhdGU6IEFYRGF0YUdyaWRSb3dUZW1wbGF0ZUNvbXBvbmVudDtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBWERhdGFHcmlkRGV0YWlsVGVtcGxhdGVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgZ3JpZERldGFpbFRlbXBsYXRlOiBBWERhdGFHcmlkRGV0YWlsVGVtcGxhdGVDb21wb25lbnQ7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoQVhEYXRhU291cmNlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgX2NvbnRlbnREYXRhU291cmNlOiBBWERhdGFTb3VyY2VDb21wb25lbnQ7XHJcblxyXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZUNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogQVhEYXRhU291cmNlQ29tcG9uZW50IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlID8gdGhpcy5fZGF0YVNvdXJjZSA6IHRoaXMuX2NvbnRlbnREYXRhU291cmNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBkYXRhU291cmNlKHY6IEFYRGF0YVNvdXJjZUNvbXBvbmVudCkge1xyXG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdyb3VwSGlkZU9wZW5QYXJlbnRzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNlbGxDbGljazogRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRDZWxsRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFHcmlkQ2VsbEV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjZWxsRGJDbGljazogRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRDZWxsRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFHcmlkQ2VsbEV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjZWxsRm9jdXNlOiBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZENlbGxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRDZWxsRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8QVhEYWFncmlkUm93Q2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGFhZ3JpZFJvd0NsaWNrRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHJvd0RiQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWERhYWdyaWRSb3dDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYWFncmlkUm93Q2xpY2tFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRTZWxlY3Rpb25DaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUdyaWRTZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcm93U2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZFNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhEYXRhR3JpZFNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvblJvd1NlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWERhdGFHcmlkUm93U2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFHcmlkUm93U2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XHJcblxyXG4gIGdldFJvd0hlaWdodChwYXJhbSkge1xyXG4gICAgaWYgKHBhcmFtLmRhdGEgJiYgcGFyYW0uZGF0YS5yb3dIZWlnaHQgJiYgcGFyYW0ubm9kZS5sZXZlbCA9PSAwKSB7XHJcbiAgICAgIHJldHVybiBwYXJhbS5kYXRhLnJvd0hlaWdodDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5tYXN0ZXJEZXRhaWwgPT0gdHJ1ZSAmJiBwYXJhbS5ub2RlLmxldmVsID09IDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGV0YWlsUm93SGVpZ2h0O1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1hc3RlckRldGFpbCA9PSBmYWxzZSAmJiBwYXJhbS5kYXRhICYmIHBhcmFtLmRhdGEucm93SGVpZ2h0KSB7XHJcbiAgICAgIHJldHVybiBwYXJhbS5kYXRhLnJvd0hlaWdodDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICByb3dDbGFzcz86IChwYXJhbXM6IEFYR3JpZFJvd1BhcmFtcykgPT4gKHN0cmluZyB8IHN0cmluZ1tdKSB8IChzdHJpbmcgfCBzdHJpbmdbXSk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcnRsOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdsYXlvdXQucnRsJyk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMubG9jYWxlVGV4dCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGFHcmlkJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGNIZWlnaHQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50b29sYmFyKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJuYWxIZWlnaHQgPSBgY2FsYygxMDAlIC0gJHs0MH1weClgO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbEhlaWdodCA9ICcxMDAlJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGludGVuYWxHcmlkRGF0YVNvdXJjZSgpIHtcclxuICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcm93Q291bnQ6IG51bGwsXHJcbiAgICAgIGdldFJvd3M6IChwYXJhbXMpID0+IHtcclxuICAgICAgICAvLyB0aGF0LmdyaWRBcGkuZ3JpZE9wdGlvbnNXcmFwcGVyLnNldFByb3BlcnR5KCdjYWNoZUJsb2NrU2l6ZScsIHRoaXMudGFrZUNvdW50ID8gdGhpcy50YWtlQ291bnQgOiBwYXJhbXMuYXBpLnBhZ2luYXRpb25HZXRQYWdlU2l6ZSgpKTtcclxuICAgICAgICB0aGF0LmRhdGFTb3VyY2VTdWNjZXNzQ2FsbGJhY2sgPSBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrO1xyXG4gICAgICAgIGNvbnN0IGxvYWRQYXJhbXM6IEFYRGF0YVNvdXJjZVJlYWRQYXJhbXMgPSB7fTtcclxuICAgICAgICBsb2FkUGFyYW1zLnNlYXJjaFRleHQgPSB0aGF0LnNlYXJjaFRleHQ7XHJcbiAgICAgICAgbG9hZFBhcmFtcy5za2lwID0gcGFyYW1zLnJlcXVlc3Quc3RhcnRSb3c7XHJcbiAgICAgICAgLy8gIGxvYWRQYXJhbXMudGFrZSA9IHBhcmFtcy5yZXF1ZXN0LmVuZFJvdyAtIHBhcmFtcy5yZXF1ZXN0LnN0YXJ0Um93O1xyXG4gICAgICAgIGxvYWRQYXJhbXMudGFrZSA9IHRoYXQudGFrZUNvdW50ID8gdGhhdC50YWtlQ291bnQgOiBwYXJhbXMuYXBpLnBhZ2luYXRpb25HZXRQYWdlU2l6ZSgpICogMjtcclxuICAgICAgICBsb2FkUGFyYW1zLnNvcnQgPSBwYXJhbXMucmVxdWVzdC5zb3J0TW9kZWwubWFwKChjKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBmaWVsZDogYy5jb2xJZCxcclxuICAgICAgICAgICAgZGlyOiBjLnNvcnRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gbG9hZFBhcmFtcy5ncm91cHMgPSBwYXJhbXMucmVxdWVzdC5yb3dHcm91cENvbHMubWFwKHIgPT4gci5maWVsZCk7XHJcbiAgICAgICAgLy8gbG9hZFBhcmFtcy5ncm91cEtleXMgPSBwYXJhbXMucmVxdWVzdC5ncm91cEtleXM7XHJcbiAgICAgICAgLy8gbG9hZFBhcmFtcy5kYXRhID0gcGFyYW1zLnBhcmVudE5vZGUuZGF0YTtcclxuICAgICAgICBsb2FkUGFyYW1zLmdyb3VwID0ge1xyXG4gICAgICAgICAgZmllbGRzOiBwYXJhbXMucmVxdWVzdC5yb3dHcm91cENvbHMubWFwKChyKSA9PiByLmZpZWxkKSxcclxuICAgICAgICAgIGtleXM6IHBhcmFtcy5yZXF1ZXN0Lmdyb3VwS2V5cyxcclxuICAgICAgICAgIHBhcmVudERhdGE6IHBhcmFtcy5wYXJlbnROb2RlLmRhdGFcclxuICAgICAgICB9O1xyXG4gICAgICAgIGxvYWRQYXJhbXMuZmlsdGVyID0gcGFyYW1zLnJlcXVlc3QuZmlsdGVyTW9kZWw7XHJcbiAgICAgICAgdGhhdC5kYXRhU291cmNlLmZldGNoKGxvYWRQYXJhbXMpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXRNYWluTWVudUl0ZW1zKGUpIHtcclxuICAgIHJldHVybiBbJ3BpblN1Yk1lbnUnLCAnc2VwYXJhdG9yJ107XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JpZEFwaS5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBpc1NlcnZlclNpZGVHcm91cCA9IChlKSA9PiB7XHJcbiAgICByZXR1cm4gZVt0aGlzLmhhc0NoaWxkRmllbGRdO1xyXG4gIH07XHJcblxyXG4gIGdldFNlcnZlclNpZGVHcm91cEtleSA9IChlKSA9PiB7XHJcbiAgICByZXR1cm4gZVt0aGlzLmtleUZpZWxkXTtcclxuICB9O1xyXG4gIC8vIHRvZG8gZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zXHJcbiAgaW50ZXJuYWxHcmlkUmVhZHkoZ3JpZE9wdGlvbnMpIHtcclxuICAgIGdyaWRPcHRpb25zLmFwaS5jaGVja0dyaWRTaXplKCk7XHJcbiAgICB0aGlzLnRha2VDb3VudCA9IHRoaXMudGFrZUNvdW50ID8gdGhpcy50YWtlQ291bnQgOiBncmlkT3B0aW9ucy5hcGkucGFnaW5hdGlvbkdldFBhZ2VTaXplKCkgKiAyO1xyXG4gICAgdGhpcy50YWtlQ291bnQgPSB0aGlzLnRha2VDb3VudCA8IDIwID8gMjAgOiB0aGlzLnRha2VDb3VudDtcclxuICAgIGdyaWRPcHRpb25zLmFwaS5ncmlkT3B0aW9uc1dyYXBwZXIuc2V0UHJvcGVydHkoJ2NhY2hlQmxvY2tTaXplJywgdGhpcy50YWtlQ291bnQpO1xyXG4gICAgdGhpcy5ncmlkQXBpID0gZ3JpZE9wdGlvbnMuYXBpO1xyXG5cclxuICAgIHRoaXMubWFwQ29sdW1ucygpO1xyXG4gICAgdGhpcy5jYWxjSGVpZ2h0KCk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmxvYWRPbkluaXQpIHtcclxuICAgICAgdGhpcy5sb2FkT25Jbml0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnJlbW90ZU9wZXJhdGlvbikge1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2V0U2VydmVyU2lkZURhdGFzb3VyY2UodGhpcy5pbnRlbmFsR3JpZERhdGFTb3VyY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5yZW1vdGVPcGVyYXRpb24pIHtcclxuICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB0aGF0ID0gdGhpcztcclxuICAgIGlmICh0aGlzLnJvd1RlbXBsYXRlKSB7XHJcbiAgICAgIHRoaXMuZnVsbFdpZHRoQ2VsbFJlbmRlcmVyRnJhbWV3b3JrID0gdGhpcy5yb3dUZW1wbGF0ZS5yZW5kZXJlcjtcclxuICAgICAgdGhpcy5mdWxsV2lkdGhDZWxsUmVuZGVyZXJQYXJhbXMgPSB0aGlzLnJvd1RlbXBsYXRlLnBhcmFtcztcclxuICAgIH1cclxuICAgIHRoaXMuZnJhbWV3b3JrQ29tcG9uZW50cy5hZ0RhdGVJbnB1dCA9IEFYRGF0ZVBpY2tlckZpbHRlckNvbXBvbmVudDtcclxuXHJcbiAgICBpZiAodGhpcy5ncmlkRGV0YWlsVGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy5tYXN0ZXJEZXRhaWwgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRldGFpbENlbGxSZW5kZXJlclBhcmFtcyA9IHRoaXMuZ3JpZERldGFpbFRlbXBsYXRlLnBhcmFtcztcclxuICAgICAgdGhpcy5kZXRhaWxDZWxsUmVuZGVyZXIgPSAnZGV0YWlsUmVuZGVyZXJGcmFtZXdvcmsnO1xyXG4gICAgICB0aGlzLmZyYW1ld29ya0NvbXBvbmVudHMuZGV0YWlsUmVuZGVyZXJGcmFtZXdvcmsgPSB0aGlzLmdyaWREZXRhaWxUZW1wbGF0ZS5yZW5kZXJlcjtcclxuXHJcbiAgICAgIHRoaXMuZGV0YWlsUm93SGVpZ2h0ID0gdGhpcy5ncmlkRGV0YWlsVGVtcGxhdGUuaGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0Z1bGxXaWR0aENlbGwgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGF0LnJvd1RlbXBsYXRlICE9IG51bGw7XHJcbiAgICB9O1xyXG4gICAgLy90aGlzLmNkclxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLmdyb3VwU2VsZWN0c0NoaWxkcmVuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5rZXlGaWVsZCAhPT0gJ251bGwnICYmIHRoaXMuaGFzQ2hpbGRGaWVsZCAhPT0gJ251bGwnKSB7XHJcbiAgICAgIHRoaXMucm93R3JvdXBQYW5lbFNob3cgPSAnbmV2ZXInO1xyXG4gICAgICB0aGlzLnRyZWVEYXRhID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlbW90ZU9wZXJhdGlvbikge1xyXG4gICAgICB0aGlzLnJvd01vZGVsVHlwZSA9ICdzZXJ2ZXJTaWRlJztcclxuICAgIH1cclxuICAgIC8vXHJcbiAgICBpZiAodGhpcy5ydGwgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnJ0bCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcclxuICAgIH1cclxuICAgIC8vXHJcbiAgfVxyXG5cclxuICBncmlkU2VsZWN0Um93KCkge1xyXG4gICAgaWYgKHRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RSb3cgJiYgdGhpcy5zZWxlY3RSb3cubGVuZ3RoID4gMCAmJiB0aGlzLmdyaWRBcGkgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdGhpcy5zZWxlY3RSb3dbMF0gIT0gJ29iamVjdCcpIHtcclxuICAgICAgICB0aGlzLmdyaWRBcGkuZm9yRWFjaE5vZGUoKG5vZGUpID0+IHtcclxuICAgICAgICAgIGlmIChub2RlLmRhdGEgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBsZXQgc2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Um93LmZvckVhY2goKGlkKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG5vZGUuZGF0YVt0aGlzLmtleUZpZWxkXSA9PT0gaWQpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBub2RlLnNldFNlbGVjdGVkKHNlbGVjdCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdyaWRBcGkuZm9yRWFjaE5vZGUoKG5vZGUpID0+IHtcclxuICAgICAgICAgIGlmIChub2RlLmRhdGEgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBsZXQgc2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Um93LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXRlbS5yb3dJbmRleCAhPSB1bmRlZmluZWQgJiYgaXRlbS5yb3dMZXZlbCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChub2RlLmRhdGFbdGhpcy5rZXlGaWVsZF0gPT09IGl0ZW0uZGF0YVt0aGlzLmtleUZpZWxkXSkge1xyXG4gICAgICAgICAgICAgICAgICBzZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5kYXRhW3RoaXMua2V5RmllbGRdID09PSBpdGVtW3RoaXMua2V5RmllbGRdKSB7XHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgbm9kZS5zZXRTZWxlY3RlZChzZWxlY3QpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcblxyXG4gIC8vICAgLy9DYWxsZWQgYWZ0ZXIgZXZlcnkgY2hlY2sgb2YgdGhlIGNvbXBvbmVudCdzIHZpZXcuIEFwcGxpZXMgdG8gY29tcG9uZW50cyBvbmx5LlxyXG4gIC8vICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCcgdG8gdGhlIGNsYXNzLlxyXG4gIC8vICAgLy8gdGhpcy5zZWxlY3RCeVZhbHVlcygpO1xyXG4gIC8vICAgdGhpcy5lbmFiZWxTZWxlY3QgPSBmYWxzZTtcclxuXHJcbiAgLy8gfVxyXG4gIHJlYnVpbGRHcmlkKCkge1xyXG4gICAgdGhpcy5tYXBDb2x1bW5zKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuc2l6ZUNvbHVtbnNUb0ZpdCkge1xyXG4gICAgICAgIHRoaXMuZ3JpZEFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRyZWVEYXRhID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuY29sdW1uRGVmcyA9IHRoaXMuY29sdW1ucy5tYXAoKGMpID0+IGMucmVuZGVyKCkpO1xyXG5cclxuICAgICAgY29uc3QgZ3JvdXBDb2x1bW4gPSB0aGlzLmNvbHVtbkRlZnMuZmluZCgoYykgPT4gYy5yb3dHcm91cEluZGV4ID09ICcwJyAmJiBjLmZpZWxkICE9PSAnJyk7XHJcblxyXG4gICAgICB0aGlzLmF1dG9Hcm91cENvbHVtbkRlZiA9IHtcclxuICAgICAgICBoZWFkZXJOYW1lOiBncm91cENvbHVtbi5oZWFkZXJOYW1lLFxyXG4gICAgICAgIHdpZHRoOiBncm91cENvbHVtbi53aWR0aCxcclxuICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHsgY2hlY2tib3g6IHRoaXMuc2hvd0NoZWNrQm94IH0sXHJcbiAgICAgICAgZmllbGQ6IGdyb3VwQ29sdW1uLmZpZWxkXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLmNvbHVtbkRlZnMuZm9yRWFjaCgoZWxtKSA9PiB7XHJcbiAgICAgICAgaWYgKGVsbS5yb3dHcm91cEluZGV4ID4gLTEpIHtcclxuICAgICAgICAgIGVsbS5oaWRlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLy9zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIHRoaXMuZ3JpZFZpZXcgPSB0cnVlO1xyXG4gICAgLy99KTtcclxuXHJcbiAgICB0aGlzLmVuYWJlbFNlbGVjdCA9IHRydWU7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uub25EYXRhUmVjZWl2ZWQuc3Vic2NyaWJlKChfZGF0YSkgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSBfZGF0YS5kYXRhLnJlc3VsdDtcclxuICAgICAgdGhpcy5oaWRlTG9hZGluZygpO1xyXG4gICAgICBsZXQgaXRlbXM6IGFueVtdO1xyXG4gICAgICBsZXQgdG90YWxDb3VudDogbnVtYmVyO1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XHJcbiAgICAgICAgaXRlbXMgPSByZXN1bHQ7XHJcbiAgICAgICAgdG90YWxDb3VudCA9IHJlc3VsdC5sZW5ndGg7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbXMgPSByZXN1bHQuaXRlbXM7XHJcbiAgICAgICAgdG90YWxDb3VudCA9IHJlc3VsdC50b3RhbENvdW50O1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2VTdWNjZXNzQ2FsbGJhY2spIHtcclxuICAgICAgICBpZiAoIXRoaXMubG9hZE9uSW5pdCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlU3VjY2Vzc0NhbGxiYWNrKFtdLCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlU3VjY2Vzc0NhbGxiYWNrKGl0ZW1zLCB0b3RhbENvdW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmxvYWRPbkluaXQgJiYgdGhpcy5ncmlkQXBpICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuZ3JpZEFwaS5zZXRSb3dEYXRhKFtdKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZ3JpZEFwaSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmdyaWRBcGkuc2V0Um93RGF0YShpdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmdyaWRTZWxlY3RSb3coKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGF0YVNvdXJjZS5vbkZldGNoU3RhcnQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5zaG93TG9hZGluZygpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQpIHtcclxuICAgICAgdGhpcy5zZWFyY2hJbnB1dC5vblZhbHVlQ2hhbmdlZC5zdWJzY3JpYmUoKGMpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFRleHQgPSBjLnZhbHVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vXHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBtYXBDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5jb2x1bW5EZWZzID0gdGhpcy5jb2x1bW5zLm1hcCgoYykgPT4gYy5yZW5kZXIoKSk7XHJcblxyXG4gICAgLy8gaWYgKHRoaXMuc2hvd1Jvd051bWJlcikge1xyXG4gICAgLy8gICB0aGlzLmNvbHVtbkRlZnMucHVzaCh7XHJcbiAgICAvLyAgICAgaGVhZGVyTmFtZTogQVhDb25maWcuZ2V0KCdsYXlvdXQucnRsJykgPyAn2LHYr9uM2YEnIDogJ1JvdycsXHJcbiAgICAvLyAgICAgdmFsdWVHZXR0ZXI6ICdub2RlLnJvd0luZGV4ICsgMScsXHJcbiAgICAvLyAgICAgcGlubmVkOiBBWENvbmZpZy5nZXQoJ2xheW91dC5ydGwnKSA/ICdyaWdodCcgOiAnbGVmdCdcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgaWYgKHRoaXMuZ3JpZERldGFpbFRlbXBsYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbHVtbkRlZnNbMF0uY2hlY2tib3hTZWxlY3Rpb24gPT09IHRydWUgJiYgdGhpcy5jb2x1bW5EZWZzWzBdLmZpZWxkID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuY29sdW1uRGVmc1sxXS5jZWxsUmVuZGVyZXIgPSAnYWdHcm91cENlbGxSZW5kZXJlcic7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5EZWZzWzBdLmNlbGxSZW5kZXJlciA9ICdhZ0dyb3VwQ2VsbFJlbmRlcmVyJztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhhc0NoaWxkRmllbGQgPT09ICdudWxsJykge1xyXG4gICAgICBjb25zdCBncm91cENvbHVtbiA9IHRoaXMuY29sdW1uRGVmcy5maW5kKChjKSA9PiBjLnJvd0dyb3VwSW5kZXggPT09IHVuZGVmaW5lZCAmJiBjLmZpZWxkICE9PSAnJyk7XHJcbiAgICAgIGlmIChncm91cENvbHVtbiAmJiB0aGlzLmdyb3VwSGlkZU9wZW5QYXJlbnRzID09IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvR3JvdXBDb2x1bW5EZWYgPSB7XHJcbiAgICAgICAgICBoZWFkZXJOYW1lOiBncm91cENvbHVtbi5oZWFkZXJOYW1lLFxyXG4gICAgICAgICAgd2lkdGg6IGdyb3VwQ29sdW1uLndpZHRoLFxyXG4gICAgICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7IGNoZWNrYm94OiB0aGlzLnNob3dDaGVja0JveCB9LFxyXG4gICAgICAgICAgZmllbGQ6IGdyb3VwQ29sdW1uLmZpZWxkXHJcbiAgICAgICAgfTtcclxuICAgICAgICAvLyAgZ3JvdXBDb2x1bW4uaGlkZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbHVtbkRlZnMuZm9yRWFjaCgoZWxtKSA9PiB7XHJcbiAgICAgIGlmIChlbG0ucm93R3JvdXBJbmRleCA+IC0xKSB7XHJcbiAgICAgICAgZWxtLmhpZGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXllZENvbHVtbnNDaGFuZ2VkKGUpIHtcclxuICAgIGlmICh0aGlzLmhhc0NoaWxkRmllbGQgPT09ICdudWxsJykge1xyXG4gICAgICBjb25zdCBlZSA9IGUuY29sdW1uQXBpLmdldEFsbERpc3BsYXllZENvbHVtbkdyb3VwcygpO1xyXG4gICAgICBjb25zdCBlZWUgPSBlZS5maW5kKChjKSA9PiBjLmNvbElkICE9PSAnYWctR3JpZC1BdXRvQ29sdW1uJyAmJiBjLmNvbElkICE9PSAnMCcpO1xyXG4gICAgICBpZiAoZWVlICYmIGVlZS5jb2xJZCkge1xyXG4gICAgICAgIHRoaXMuYXV0b0dyb3VwQ29sdW1uRGVmID0ge1xyXG4gICAgICAgICAgaGVhZGVyTmFtZTogZWVlLmNvbERlZi5oZWFkZXJOYW1lLFxyXG4gICAgICAgICAgd2lkdGg6IGVlZS5jb2xEZWYud2lkdGgsXHJcbiAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHsgY2hlY2tib3g6IHRoaXMuc2hvd0NoZWNrQm94IH0sXHJcbiAgICAgICAgICBmaWVsZDogZWVlLmNvbERlZi5maWVsZFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLy8gZWVlLmhpZGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaChyb3V0ZTogYW55W10gPSBbXSkge1xyXG4gICAgaWYgKHRoaXMucmVtb3RlT3BlcmF0aW9uICYmIHRoaXMuZ3JpZEFwaSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIC8vICB0aGlzLmdyaWRBcGkucHVyZ2VTZXJ2ZXJTaWRlQ2FjaGUocm91dGUpO1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2V0U2VydmVyU2lkZURhdGFzb3VyY2UodGhpcy5pbnRlbmFsR3JpZERhdGFTb3VyY2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gVE9ETyA6IGNoZWNrIGZldGNoIHBhcmFtXHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5mZXRjaChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGludGVybmFsR3JpZENlbGxDbGlja2VkKGU6IENlbGxDbGlja2VkRXZlbnQpIHtcclxuICAgIHRoaXMuY2VsbENsaWNrLmVtaXQoeyBkYXRhOiB0aGlzLm1hcENlbGxFdmVudChlKSwgY29tcG9uZW50OiB0aGlzLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcclxuICB9XHJcblxyXG4gIGludGVybmFsR3JpZENlbGxEb3VibGVDbGlja2VkKGU6IENlbGxDbGlja2VkRXZlbnQpIHtcclxuICAgIHRoaXMuY2VsbERiQ2xpY2suZW1pdCh7IGRhdGE6IHRoaXMubWFwQ2VsbEV2ZW50KGUpLCBjb21wb25lbnQ6IHRoaXMsIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50IH0pO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJuYWxHcmlkQ2VsbEZvY3VzZWQoZTogQ2VsbENsaWNrZWRFdmVudCkge1xyXG4gICAgdGhpcy5jZWxsRm9jdXNlLmVtaXQoeyBkYXRhOiB0aGlzLm1hcENlbGxFdmVudChlKSwgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIGNvbXBvbmVudDogdGhpcyB9KTtcclxuICB9XHJcblxyXG4gIGludGVybmFsR3JpZFJvd0NsaWNrZWQoZTogUm93Q2xpY2tlZEV2ZW50KSB7XHJcbiAgICBpZiAoIWUubm9kZS5ncm91cCkge1xyXG4gICAgICB0aGlzLnJvd0NsaWNrLmVtaXQoeyBkYXRhOiB0aGlzLm1hcFJvd0V2ZW50KGUpLCBjb21wb25lbnQ6IHRoaXMsIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50IH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW50ZXJuYWxHcmlkUm93RG91YmxlQ2xpY2tlZChlOiBDZWxsQ2xpY2tlZEV2ZW50KSB7XHJcbiAgICBpZiAoIWUubm9kZS5ncm91cCkge1xyXG4gICAgICB0aGlzLnJvd0RiQ2xpY2suZW1pdCh7IGRhdGE6IHRoaXMubWFwUm93RXZlbnQoZSksIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LCBjb21wb25lbnQ6IHRoaXMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaWZmZXJlbmNlT2YyQXJyYXlzKGFycmF5MTogYW55LCBhcnJheTI6IGFueSkge1xyXG4gICAgY29uc3QgdGVtcCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBpIGluIGFycmF5MSkge1xyXG4gICAgICBpZiAoYXJyYXkyLmluZGV4T2YoYXJyYXkxW2ldKSA9PT0gLTEpIHtcclxuICAgICAgICB0ZW1wLnB1c2goYXJyYXkxW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBpIGluIGFycmF5Mikge1xyXG4gICAgICBpZiAoYXJyYXkxLmluZGV4T2YoYXJyYXkyW2ldKSA9PT0gLTEpIHtcclxuICAgICAgICB0ZW1wLnB1c2goYXJyYXkyW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRlbXAuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xyXG4gIH1cclxuXHJcbiAgcm93U2VsZWN0aW9uQ2hhbmdlZChlKSB7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICAgIHRoaXMuZ3JpZEFwaS5mb3JFYWNoTm9kZSgobm9kZSkgPT4ge1xyXG4gICAgICBpZiAobm9kZS5kYXRhW3RoaXMua2V5RmllbGRdID09IGUubm9kZS5kYXRhW3RoaXMua2V5RmllbGRdKSB7XHJcbiAgICAgICAgbm9kZS5zZXRTZWxlY3RlZChlLm5vZGUuc2VsZWN0ZWQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMucm93U2VsZWN0aW9uQ2hhbmdlLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IGUsIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50IH0pO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2UnLCBlKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdzZWxlY3QnLCBlLm5vZGUuc2VsZWN0ZWQpO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2luZGV4JywgZS5yb3dJbmRleCk7XHJcbiAgfVxyXG5cclxuICBpbnRlcm5hbEdyaWRTZWxlY3Rpb25DaGFuZ2VkKGUpIHtcclxuICAgIGNvbnN0IGFyZ3M6IEFYR3JpZFJvd1NlbGVjdGlvbkV2ZW50ID0geyBpdGVtczogW10gfTtcclxuICAgIGNvbnN0IG9sZE5vZGVzID0gdGhpcy5vbGRTZWxlY3Rpb25Ob2RlcztcclxuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5ncmlkQXBpLmdldFNlbGVjdGVkTm9kZXMoKTtcclxuICAgIG5vZGVzLmZvckVhY2goKGkpID0+IHtcclxuICAgICAgYXJncy5pdGVtcy5wdXNoKHtcclxuICAgICAgICByb3dMZXZlbDogaS5sZXZlbCxcclxuICAgICAgICByb3dJbmRleDogaS5yb3dJbmRleCxcclxuICAgICAgICBkYXRhOiBpLmRhdGFcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHsgZGF0YTogYXJncywgY29tcG9uZW50OiB0aGlzLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcclxuICAgIGxldCBhY3Rpb24gPSBub2Rlcy5sZW5ndGggPiBvbGROb2Rlcy5sZW5ndGggPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBub2RlID0gdGhpcy5kaWZmZXJlbmNlT2YyQXJyYXlzKG5vZGVzLCBvbGROb2Rlcyk7XHJcbiAgICB0aGlzLm9uUm93U2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBzZWxlY3RlZDogYWN0aW9uLCBkYXRhOiBub2RlLCBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCB9KTtcclxuICAgIHRoaXMub2xkU2VsZWN0aW9uTm9kZXMgPSBub2RlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWFwQ2VsbEV2ZW50KGU6IENlbGxFdmVudCk6IEFYR3JpZENlbGxFdmVudCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICByb3dMZXZlbDogMCxcclxuICAgICAgY29sdW1uOiBlLmNvbHVtbixcclxuICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICByb3dJbmRleDogZS5yb3dJbmRleCxcclxuICAgICAgdmFsdWU6IGUudmFsdWVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcFJvd0V2ZW50KGU6IFJvd0V2ZW50KTogQVhHcmlkUm93RXZlbnQge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcm93TGV2ZWw6IDAsXHJcbiAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgcm93SW5kZXg6IGUucm93SW5kZXhcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGVzZWxlY3RBbGwoKSB7XHJcbiAgICB0aGlzLmdyaWRBcGkuZGVzZWxlY3RBbGwoKTtcclxuICB9XHJcblxyXG4gIGludGVybmFsR2V0Um93Q2xhc3MgPSAocDogYW55KSA9PiB7XHJcbiAgICBpZiAodGhpcy5yb3dDbGFzcykge1xyXG4gICAgICBpZiAodGhpcy5yb3dDbGFzcyBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucm93Q2xhc3Moe1xyXG4gICAgICAgICAgcm93SW5kZXg6IHAubm9kZS5yb3dJbmRleCxcclxuICAgICAgICAgIHJvd0xldmVsOiBwLm5vZGUubGV2ZWwsXHJcbiAgICAgICAgICBkYXRhOiBwLmRhdGFcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yb3dDbGFzcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHNob3dMb2FkaW5nKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ3JpZEFwaSkge1xyXG4gICAgICB0aGlzLmdyaWRBcGkuc2hvd0xvYWRpbmdPdmVybGF5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlTG9hZGluZygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWRBcGkpIHtcclxuICAgICAgdGhpcy5ncmlkQXBpLmhpZGVPdmVybGF5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbnRlcm5hbEdyaWRTaXplQ2hhbmdlZChlOiBHcmlkU2l6ZUNoYW5nZWRFdmVudCkge1xyXG4gICAgaWYgKGUuY2xpZW50V2lkdGggPiAwICYmIGUuY2xpZW50SGVpZ2h0ID4gMCkge1xyXG4gICAgICB0aGlzLnBlcmZvcm1TaXplQ29sdW1uc1RvRml0KGUuYXBpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGludGVybmFsR3JpZEZpcnN0RGF0YVJlbmRlcmVkKGU6IEZpcnN0RGF0YVJlbmRlcmVkRXZlbnQpIHtcclxuICAgIHRoaXMucGVyZm9ybVNpemVDb2x1bW5zVG9GaXQoZS5hcGkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwZXJmb3JtU2l6ZUNvbHVtbnNUb0ZpdChhcGk6IEdyaWRBcGkpIHtcclxuICAgIGlmICh0aGlzLnNpemVDb2x1bW5zVG9GaXQpIHtcclxuICAgICAgYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -59,12 +59,6 @@ var AXDataLovPopupComponent = /** @class */ (function (_super) {
|
|
|
59
59
|
// console.log('select', e.data.node.selected);
|
|
60
60
|
// console.log('index', e.data.rowIndex);
|
|
61
61
|
};
|
|
62
|
-
AXDataLovPopupComponent.prototype.onSelectionChanged = function (e) {
|
|
63
|
-
// if (e.data.items.length === 0 && this.allowNull == false) {
|
|
64
|
-
// } else {
|
|
65
|
-
// this.selectedItems = e.data.items;
|
|
66
|
-
// }
|
|
67
|
-
};
|
|
68
62
|
AXDataLovPopupComponent.prototype.ngAfterViewInit = function () {
|
|
69
63
|
var _this = this;
|
|
70
64
|
this.selectedItems.forEach(function (ele) {
|
|
@@ -123,11 +117,11 @@ var AXDataLovPopupComponent = /** @class */ (function (_super) {
|
|
|
123
117
|
], AXDataLovPopupComponent.prototype, "searchBox", void 0);
|
|
124
118
|
AXDataLovPopupComponent = __decorate([
|
|
125
119
|
Component({
|
|
126
|
-
template: "<div style=\"height: 70vh; padding: 0.5em;\">\r\n <div style=\"height: calc(100%);\">\r\n\r\n <ax-data-grid [rtl]=\"rtl\" [suppressRowClickSelection]=\"false\" [keyField]=\"keyField\"\r\n [hasChildField]=\"hasChildField\" [selectRow]=\"selectedItems\" #grid [columns]=\"columns\"\r\n [remoteOperation]=\"true\" [selectionMode]=\"selectionMode\" (rowDbClick)=\"rowDoubleClicked($event)\"\r\n (
|
|
120
|
+
template: "<div style=\"height: 70vh; padding: 0.5em;\">\r\n <div style=\"height: calc(100%);\">\r\n\r\n <ax-data-grid [rtl]=\"rtl\" [suppressRowClickSelection]=\"false\" [keyField]=\"keyField\"\r\n [hasChildField]=\"hasChildField\" [selectRow]=\"selectedItems\" #grid [columns]=\"columns\"\r\n [remoteOperation]=\"true\" [selectionMode]=\"selectionMode\" (rowDbClick)=\"rowDoubleClicked($event)\"\r\n (rowSelectionChange)=\"rowSelectionChange($event)\" [dataSource]=\"dataSource\">\r\n <ax-toolbar>\r\n <ax-toolbar-search #searchBox style=\"width: 100%;\"></ax-toolbar-search>\r\n </ax-toolbar>\r\n <ax-selection-column *ngIf=\"selectionMode== 'single'? false : true\"></ax-selection-column>\r\n <!-- <ax-data-source [provideData]=\"dataSource.provideData\">\r\n </ax-data-source> -->\r\n </ax-data-grid>\r\n </div>\r\n</div>"
|
|
127
121
|
}),
|
|
128
122
|
__metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
|
|
129
123
|
], AXDataLovPopupComponent);
|
|
130
124
|
return AXDataLovPopupComponent;
|
|
131
125
|
}(AXBasePopupPageComponent));
|
|
132
126
|
export { AXDataLovPopupComponent };
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb3YtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9kYXRhLWdyaWQvIiwic291cmNlcyI6WyJsaWIvZGF0YS1sb3YvZGF0YS1sb3YtcG9wdXAvZGF0YS1sb3YtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFrQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXpHLE9BQU8sRUFBRSxZQUFZLEVBQWdCLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLEVBQXVFLE1BQU0sb0JBQW9CLENBQUM7QUFPN0o7SUFBNkMsMkNBQXdCO0lBc0JqRSxpQ0FBb0IsR0FBc0IsRUFBVSxHQUFlO1FBQW5FLFlBQ0ksaUJBQU8sU0FDVjtRQUZtQixTQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLFNBQUcsR0FBSCxHQUFHLENBQVk7UUFabkUsYUFBTyxHQUF1QixFQUFFLENBQUM7UUFFakMsbUJBQWEsR0FBVSxFQUFFLENBQUM7UUFFMUIsY0FBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixlQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLFNBQUcsR0FBWSxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTFDLGtCQUFZLEdBQVUsRUFBRSxDQUFDOztJQUl6QixDQUFDO0lBTUQsMENBQVEsR0FBUjtRQUNJLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFD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Q0FBQyxXQUFXLENBQUM7a0NBQ1osd0JBQXdCOzhEQUFDO0lBUjNCLHVCQUF1QjtRQUpuQyxTQUFTLENBQUM7WUFDUCx1L0JBQThDO1NBQ2pELENBQUM7eUNBd0IyQixpQkFBaUIsRUFBZSxVQUFVO09BdEIxRCx1QkFBdUIsQ0F3SW5DO0lBQUQsOEJBQUM7Q0FBQSxBQXhJRCxDQUE2Qyx3QkFBd0IsR0F3SXBFO1NBeElZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWERhdGFHcmlkQ29tcG9uZW50LCBBWERhdGFHcmlkU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9kYXRhLWdyaWQvZGF0YWdyaWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhHcmlkRGF0YUNvbHVtbiB9IGZyb20gJy4uLy4uL2RhdGEtZ3JpZC9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IsIEFYQnV0dG9uSXRlbSwgQVhDb25maWcgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWFRvb2xiYXJTZWFyY2hDb21wb25lbnQsIEFYQmFzZVBvcHVwUGFnZUNvbXBvbmVudCwgQVhNZW51SXRlbUNsaWNrRXZlbnQsIEFYRGF0YVNvdXJjZUNvbXBvbmVudCwgQVhEYXRhU291cmNlUmVhZFBhcmFtcyB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1sb3YtcG9wdXAuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQVhEYXRhTG92UG9wdXBDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQb3B1cFBhZ2VDb21wb25lbnQge1xyXG5cclxuXHJcbiAgICBAVmlld0NoaWxkKCdncmlkJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIGdyaWQ6IEFYRGF0YUdyaWRDb21wb25lbnQ7XHJcblxyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaEJveCcpXHJcbiAgICBzZWFyY2hCb3g6IEFYVG9vbGJhclNlYXJjaENvbXBvbmVudDtcclxuXHJcbiAgICBjb2x1bW5zOiBBWEdyaWREYXRhQ29sdW1uW10gPSBbXTtcclxuXHJcbiAgICBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGtleUZpZWxkOiBzdHJpbmcgPSAnJztcclxuICAgIGFsbG93TnVsbDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgaGFzQ2hpbGRGaWVsZDogc3RyaW5nXHJcbiAgICBydGw6IGJvb2xlYW4gPSBBWENvbmZpZy5nZXQoJ2xheW91dC5ydGwnKTtcclxuXHJcbiAgICBzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGF0YVNvdXJjZTogQVhEYXRhU291cmNlQ29tcG9uZW50O1xyXG5cclxuICAgIHNlbGVjdGlvbk1vZGU6IHN0cmluZztcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5ydGwgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnJ0bCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Eb25lQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJvd0RvdWJsZUNsaWNrZWQoZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdzJywgZS5kYXRhLmRhdGEpXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJykge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKGMgPT4gY1t0aGlzLmtleUZpZWxkXSAhPSBlLmRhdGEuZGF0YVt0aGlzLmtleUZpZWxkXSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goZS5kYXRhLmRhdGEpO1xyXG5cclxuICAgICAgICB0aGlzLm9uRG9uZUNsaWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DYW5jZWxDbGljaygpIHtcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcm93U2VsZWN0aW9uQ2hhbmdlKGUpIHtcclxuXHJcbiAgICAgICAgaWYgKGUuZGF0YS5ub2RlLnNlbGVjdGVkID09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihjID0+IGNbdGhpcy5rZXlGaWVsZF0gIT0gZS5kYXRhLm5vZGUuZGF0YVt0aGlzLmtleUZpZWxkXSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGUuZGF0YS5ub2RlLmRhdGEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93TnVsbCA9PSB0cnVlIHx8ICh0aGlzLmFsbG93TnVsbCA9PSBmYWxzZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoYyA9PiBjW3RoaXMua2V5RmllbGRdICE9IGUuZGF0YS5ub2RlLmRhdGFbdGhpcy5rZXlGaWVsZF0pO1xyXG5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnZWUnLCBlKVxyXG4gICAgICAgIC8vIC8vIGNvbnNvbGUubG9nKCdlJywgZSk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NlbGVjdCcsIGUuZGF0YS5ub2RlLnNlbGVjdGVkKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnaW5kZXgnLCBlLmRhdGEucm93SW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlZChlOiBBWERhdGFHcmlkU2VsZWN0aW9uQ2hhbmdlRXZlbnQpIHtcclxuICAgICAgICAvLyBpZiAoZS5kYXRhLml0ZW1zLmxlbmd0aCA9PT0gMCAmJiB0aGlzLmFsbG93TnVsbCA9PSBmYWxzZSkge1xyXG4gICAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IGUuZGF0YS5pdGVtcztcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKGVsZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzLnB1c2goZWxlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNlYXJjaEJveC5mb2N1cygpO1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2Uub25EYXRhUmVjZWl2ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLm9uRGF0YVJlY2VpdmVkLnN1YnNjcmliZShhcmcgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gb25WYWx1ZVNlYXJjaENoYW5nZWQoZSkge1xyXG5cclxuICAgIC8vICAgICBjb25zdCBwYXJhbXM6IEFYRGF0YVNvdXJjZVJlYWRQYXJhbXMgPSB7fVxyXG4gICAgLy8gICAgIHBhcmFtcy5zZWFyY2hUZXh0ID0gZS52YWx1ZTtcclxuICAgIC8vICAgICAvLyBwYXJhbXMudGFrZSA9IDEwMDtcclxuICAgIC8vICAgICAvLyBwYXJhbXMuc2tpcCA9IDBcclxuICAgIC8vICAgICB0aGlzLmRhdGFTb3VyY2UuZmV0Y2gocGFyYW1zKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBnZXRGb290ZXJCdXR0b25zKCk6IEFYQnV0dG9uSXRlbVtdIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uY29uZmlybScpLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NvbmZpcm0nLFxyXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdheCBwcmltYXJ5JyxcclxuICAgICAgICAgICAgICAgIGljb246ICdmYXIgZmEtY2hlY2stY2lyY2xlJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdjb21tb24uY2FuY2VsJyksXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnY2FuY2VsJyxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYXggbGlnaHQnLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogJ2ZhciBmYS10aW1lcy1jaXJjbGUnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICB9XHJcblxyXG4gICAgb25Gb290ZXJCdXR0b25DbGljayhlOiBBWE1lbnVJdGVtQ2xpY2tFdmVudCkge1xyXG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdjb25maXJtJykge1xyXG4gICAgICAgICAgICB0aGlzLm9uRG9uZUNsaWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdjYW5jZWwnKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DYW5jZWxDbGljaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb3YtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9kYXRhLWdyaWQvIiwic291cmNlcyI6WyJsaWIvZGF0YS1sb3YvZGF0YS1sb3YtcG9wdXAvZGF0YS1sb3YtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFrQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXpHLE9BQU8sRUFBRSxZQUFZLEVBQWdCLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUl6QixNQUFNLG9CQUFvQixDQUFDO0FBSzVCO0lBQTZDLDJDQUF3QjtJQW1CbkUsaUNBQW9CLEdBQXNCLEVBQVUsR0FBZTtRQUFuRSxZQUNFLGlCQUFPLFNBQ1I7UUFGbUIsU0FBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxTQUFHLEdBQUgsR0FBRyxDQUFZO1FBWm5FLGFBQU8sR0FBdUIsRUFBRSxDQUFDO1FBRWpDLG1CQUFhLEdBQVUsRUFBRSxDQUFDO1FBRTFCLGNBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsZUFBUyxHQUFZLElBQUksQ0FBQztRQUcxQixTQUFHLEdBQVksUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUxQyxrQkFBWSxHQUFVLEVBQUUsQ0FBQzs7SUFJekIsQ0FBQztJQU1ELDBDQUFRLEdBQVI7UUFDRSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FB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Q0FvQnlCLGlCQUFpQixFQUFlLFVBQVU7T0FuQnhELHVCQUF1QixDQXVIbkM7SUFBRCw4QkFBQztDQUFBLEFBdkhELENBQTZDLHdCQUF3QixHQXVIcEU7U0F2SFksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRGF0YUdyaWRDb21wb25lbnQsIEFYRGF0YUdyaWRTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4uLy4uL2RhdGEtZ3JpZC9kYXRhZ3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWEdyaWREYXRhQ29sdW1uIH0gZnJvbSAnLi4vLi4vZGF0YS1ncmlkL2NvbHVtbnMvY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciwgQVhCdXR0b25JdGVtLCBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQVhUb29sYmFyU2VhcmNoQ29tcG9uZW50LFxyXG4gIEFYQmFzZVBvcHVwUGFnZUNvbXBvbmVudCxcclxuICBBWE1lbnVJdGVtQ2xpY2tFdmVudCxcclxuICBBWERhdGFTb3VyY2VDb21wb25lbnQsXHJcbiAgQVhEYXRhU291cmNlUmVhZFBhcmFtc1xyXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1sb3YtcG9wdXAuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWERhdGFMb3ZQb3B1cENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBvcHVwUGFnZUNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZ3JpZCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgZ3JpZDogQVhEYXRhR3JpZENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoQm94JylcclxuICBzZWFyY2hCb3g6IEFYVG9vbGJhclNlYXJjaENvbXBvbmVudDtcclxuXHJcbiAgY29sdW1uczogQVhHcmlkRGF0YUNvbHVtbltdID0gW107XHJcblxyXG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XHJcblxyXG4gIGtleUZpZWxkOiBzdHJpbmcgPSAnJztcclxuICBhbGxvd051bGw6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBoYXNDaGlsZEZpZWxkOiBzdHJpbmc7XHJcbiAgcnRsOiBib29sZWFuID0gQVhDb25maWcuZ2V0KCdsYXlvdXQucnRsJyk7XHJcblxyXG4gIHNlbGVjdGVkUm93czogYW55W10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGRhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZUNvbXBvbmVudDtcclxuXHJcbiAgc2VsZWN0aW9uTW9kZTogc3RyaW5nO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJ0bCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucnRsID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnZGlyZWN0aW9uJykgPT09ICdydGwnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Eb25lQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuY2xvc2UodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd0RvdWJsZUNsaWNrZWQoZSkge1xyXG4gICAgY29uc29sZS5sb2coJ3MnLCBlLmRhdGEuZGF0YSk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT0gZS5kYXRhLmRhdGFbdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goZS5kYXRhLmRhdGEpO1xyXG5cclxuICAgIHRoaXMub25Eb25lQ2xpY2soKTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsQ2xpY2soKSB7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICByb3dTZWxlY3Rpb25DaGFuZ2UoZSkge1xyXG4gICAgaWYgKGUuZGF0YS5ub2RlLnNlbGVjdGVkID09IHRydWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPSBlLmRhdGEubm9kZS5kYXRhW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goZS5kYXRhLm5vZGUuZGF0YSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5hbGxvd051bGwgPT0gdHJ1ZSB8fCAodGhpcy5hbGxvd051bGwgPT0gZmFsc2UgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDEpKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPSBlLmRhdGEubm9kZS5kYXRhW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gY29uc29sZS5sb2coJ2VlJywgZSlcclxuICAgIC8vIC8vIGNvbnNvbGUubG9nKCdlJywgZSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnc2VsZWN0JywgZS5kYXRhLm5vZGUuc2VsZWN0ZWQpO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2luZGV4JywgZS5kYXRhLnJvd0luZGV4KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChlbGUpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MucHVzaChlbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlYXJjaEJveC5mb2N1cygpO1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5vbkRhdGFSZWNlaXZlZCkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2Uub25EYXRhUmVjZWl2ZWQuc3Vic2NyaWJlKChhcmcpID0+IHtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gb25WYWx1ZVNlYXJjaENoYW5nZWQoZSkge1xyXG5cclxuICAvLyAgICAgY29uc3QgcGFyYW1zOiBBWERhdGFTb3VyY2VSZWFkUGFyYW1zID0ge31cclxuICAvLyAgICAgcGFyYW1zLnNlYXJjaFRleHQgPSBlLnZhbHVlO1xyXG4gIC8vICAgICAvLyBwYXJhbXMudGFrZSA9IDEwMDtcclxuICAvLyAgICAgLy8gcGFyYW1zLnNraXAgPSAwXHJcbiAgLy8gICAgIHRoaXMuZGF0YVNvdXJjZS5mZXRjaChwYXJhbXMpO1xyXG4gIC8vIH1cclxuXHJcbiAgZ2V0Rm9vdGVyQnV0dG9ucygpOiBBWEJ1dHRvbkl0ZW1bXSB7XHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgnY29tbW9uLmNvbmZpcm0nKSxcclxuICAgICAgICBuYW1lOiAnY29uZmlybScsXHJcbiAgICAgICAgc3R5bGU6ICdheCBwcmltYXJ5JyxcclxuICAgICAgICBpY29uOiAnZmFyIGZhLWNoZWNrLWNpcmNsZSdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2NvbW1vbi5jYW5jZWwnKSxcclxuICAgICAgICBuYW1lOiAnY2FuY2VsJyxcclxuICAgICAgICBzdHlsZTogJ2F4IGxpZ2h0JyxcclxuICAgICAgICBpY29uOiAnZmFyIGZhLXRpbWVzLWNpcmNsZSdcclxuICAgICAgfVxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIG9uRm9vdGVyQnV0dG9uQ2xpY2soZTogQVhNZW51SXRlbUNsaWNrRXZlbnQpIHtcclxuICAgIGlmIChlLm5hbWUgPT09ICdjb25maXJtJykge1xyXG4gICAgICB0aGlzLm9uRG9uZUNsaWNrKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoZS5uYW1lID09PSAnY2FuY2VsJykge1xyXG4gICAgICB0aGlzLm9uQ2FuY2VsQ2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -811,7 +811,7 @@ let AXDataGridComponent = class AXDataGridComponent {
|
|
|
811
811
|
// showRowNumber: boolean = true;
|
|
812
812
|
this.remoteOperation = false;
|
|
813
813
|
this.rowMultiSelectWithClick = true;
|
|
814
|
-
this.suppressRowClickSelection =
|
|
814
|
+
this.suppressRowClickSelection = false;
|
|
815
815
|
this.suppressCellSelection = false;
|
|
816
816
|
this.sizeColumnsToFit = true;
|
|
817
817
|
this.showCheckBox = true;
|
|
@@ -1230,6 +1230,12 @@ let AXDataGridComponent = class AXDataGridComponent {
|
|
|
1230
1230
|
return temp.sort((a, b) => a - b);
|
|
1231
1231
|
}
|
|
1232
1232
|
rowSelectionChanged(e) {
|
|
1233
|
+
debugger;
|
|
1234
|
+
this.gridApi.forEachNode((node) => {
|
|
1235
|
+
if (node.data[this.keyField] == e.node.data[this.keyField]) {
|
|
1236
|
+
node.setSelected(e.node.selected);
|
|
1237
|
+
}
|
|
1238
|
+
});
|
|
1233
1239
|
this.rowSelectionChange.emit({ component: this, data: e, htmlElement: this.ref.nativeElement });
|
|
1234
1240
|
// console.log('e', e);
|
|
1235
1241
|
// console.log('select', e.node.selected);
|
|
@@ -1586,7 +1592,7 @@ let AXDataLovPopupComponent = class AXDataLovPopupComponent extends AXBasePopupP
|
|
|
1586
1592
|
if (this.selectionMode == 'single') {
|
|
1587
1593
|
this.selectedItems = [];
|
|
1588
1594
|
}
|
|
1589
|
-
this.selectedItems = this.selectedItems.filter(c => c[this.keyField] != e.data.data[this.keyField]);
|
|
1595
|
+
this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.data[this.keyField]);
|
|
1590
1596
|
this.selectedItems.push(e.data.data);
|
|
1591
1597
|
this.onDoneClick();
|
|
1592
1598
|
}
|
|
@@ -1595,12 +1601,12 @@ let AXDataLovPopupComponent = class AXDataLovPopupComponent extends AXBasePopupP
|
|
|
1595
1601
|
}
|
|
1596
1602
|
rowSelectionChange(e) {
|
|
1597
1603
|
if (e.data.node.selected == true) {
|
|
1598
|
-
this.selectedItems = this.selectedItems.filter(c => c[this.keyField] != e.data.node.data[this.keyField]);
|
|
1604
|
+
this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);
|
|
1599
1605
|
this.selectedItems.push(e.data.node.data);
|
|
1600
1606
|
}
|
|
1601
1607
|
else {
|
|
1602
1608
|
if (this.allowNull == true || (this.allowNull == false && this.selectedItems.length > 1)) {
|
|
1603
|
-
this.selectedItems = this.selectedItems.filter(c => c[this.keyField] != e.data.node.data[this.keyField]);
|
|
1609
|
+
this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] != e.data.node.data[this.keyField]);
|
|
1604
1610
|
}
|
|
1605
1611
|
}
|
|
1606
1612
|
// console.log('ee', e)
|
|
@@ -1608,19 +1614,13 @@ let AXDataLovPopupComponent = class AXDataLovPopupComponent extends AXBasePopupP
|
|
|
1608
1614
|
// console.log('select', e.data.node.selected);
|
|
1609
1615
|
// console.log('index', e.data.rowIndex);
|
|
1610
1616
|
}
|
|
1611
|
-
onSelectionChanged(e) {
|
|
1612
|
-
// if (e.data.items.length === 0 && this.allowNull == false) {
|
|
1613
|
-
// } else {
|
|
1614
|
-
// this.selectedItems = e.data.items;
|
|
1615
|
-
// }
|
|
1616
|
-
}
|
|
1617
1617
|
ngAfterViewInit() {
|
|
1618
|
-
this.selectedItems.forEach(ele => {
|
|
1618
|
+
this.selectedItems.forEach((ele) => {
|
|
1619
1619
|
this.selectedRows.push(ele);
|
|
1620
1620
|
});
|
|
1621
1621
|
this.searchBox.focus();
|
|
1622
1622
|
if (this.dataSource.onDataReceived) {
|
|
1623
|
-
this.dataSource.onDataReceived.subscribe(arg => {
|
|
1623
|
+
this.dataSource.onDataReceived.subscribe((arg) => {
|
|
1624
1624
|
this.cdr.markForCheck();
|
|
1625
1625
|
this.cdr.detectChanges();
|
|
1626
1626
|
});
|
|
@@ -1672,7 +1672,7 @@ __decorate([
|
|
|
1672
1672
|
], AXDataLovPopupComponent.prototype, "searchBox", void 0);
|
|
1673
1673
|
AXDataLovPopupComponent = __decorate([
|
|
1674
1674
|
Component({
|
|
1675
|
-
template: "<div style=\"height: 70vh; padding: 0.5em;\">\r\n <div style=\"height: calc(100%);\">\r\n\r\n <ax-data-grid [rtl]=\"rtl\" [suppressRowClickSelection]=\"false\" [keyField]=\"keyField\"\r\n [hasChildField]=\"hasChildField\" [selectRow]=\"selectedItems\" #grid [columns]=\"columns\"\r\n [remoteOperation]=\"true\" [selectionMode]=\"selectionMode\" (rowDbClick)=\"rowDoubleClicked($event)\"\r\n (
|
|
1675
|
+
template: "<div style=\"height: 70vh; padding: 0.5em;\">\r\n <div style=\"height: calc(100%);\">\r\n\r\n <ax-data-grid [rtl]=\"rtl\" [suppressRowClickSelection]=\"false\" [keyField]=\"keyField\"\r\n [hasChildField]=\"hasChildField\" [selectRow]=\"selectedItems\" #grid [columns]=\"columns\"\r\n [remoteOperation]=\"true\" [selectionMode]=\"selectionMode\" (rowDbClick)=\"rowDoubleClicked($event)\"\r\n (rowSelectionChange)=\"rowSelectionChange($event)\" [dataSource]=\"dataSource\">\r\n <ax-toolbar>\r\n <ax-toolbar-search #searchBox style=\"width: 100%;\"></ax-toolbar-search>\r\n </ax-toolbar>\r\n <ax-selection-column *ngIf=\"selectionMode== 'single'? false : true\"></ax-selection-column>\r\n <!-- <ax-data-source [provideData]=\"dataSource.provideData\">\r\n </ax-data-source> -->\r\n </ax-data-grid>\r\n </div>\r\n</div>"
|
|
1676
1676
|
}),
|
|
1677
1677
|
__metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
|
|
1678
1678
|
], AXDataLovPopupComponent);
|