igniteui-angular 14.2.34 → 14.2.35
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.
|
@@ -264,12 +264,12 @@ export class IgxTreeGridNormalizeRecordsPipe {
|
|
|
264
264
|
const primaryKey = this.grid.primaryKey;
|
|
265
265
|
// using flattened data because origin data may be hierarchical.
|
|
266
266
|
const flatData = this.grid.flatData;
|
|
267
|
-
const res = flatData.map(rec => ({
|
|
267
|
+
const res = flatData ? flatData.map(rec => ({
|
|
268
268
|
rowID: this.grid.primaryKey ? rec[primaryKey] : rec,
|
|
269
269
|
data: rec,
|
|
270
270
|
level: 0,
|
|
271
271
|
children: []
|
|
272
|
-
}));
|
|
272
|
+
})) : [];
|
|
273
273
|
return res;
|
|
274
274
|
}
|
|
275
275
|
}
|
|
@@ -313,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
|
|
|
313
313
|
type: Inject,
|
|
314
314
|
args: [IGX_GRID_BASE]
|
|
315
315
|
}] }]; } });
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ncmlkLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3RyZWUtZ3JpZC90cmVlLWdyaWQucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0QsT0FBTyxFQUFZLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUtuRDs7R0FFRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFFckMsWUFBMkMsSUFBYztRQUFkLFNBQUksR0FBSixJQUFJLENBQVU7SUFBSSxDQUFDO0lBRXZELFNBQVMsQ0FBQyxVQUFpQixFQUFFLFVBQWtCLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLENBQVM7UUFDdkcsSUFBSSxtQkFBbUIsR0FBc0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBRTNCLElBQUksWUFBWSxFQUFFO1lBQ2QsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFDM0YsUUFBUSxFQUFFLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3hDO2FBQU0sSUFBSSxVQUFVLEVBQUU7WUFDbkIsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ3BIO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzlFLE9BQU8sQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsR0FBRyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFDNUMsT0FBTyxtQkFBbUIsQ0FBQztJQUMvQixDQUFDO0lBRU8sUUFBUSxDQUFDLFVBQWUsRUFBRSxPQUFZO1FBQzFDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUN0RCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsVUFBaUIsRUFBRSxVQUFrQixFQUFFLFVBQWtCLEVBQ2pGLEdBQThCLEVBQUUsUUFBZTtRQUUvQyxNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sb0JBQW9CLEdBQXNCLEVBQUUsQ0FBQztRQUNuRCxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sTUFBTSxHQUFvQjtnQkFDNUIsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQztnQkFDbkMsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDZixDQUFDO1lBQ0YsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLE1BQU0sRUFBRTtnQkFDUixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFDdkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0gsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3JDO1lBRUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdkI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxVQUE2QixFQUFFLGdCQUF3QixFQUFFLFFBQWU7UUFDakcsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLEVBQUU7WUFDN0IsTUFBTSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQztZQUNoQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BFLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTNCLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGdCQUFnQixHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUM5RTtTQUNKO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFVBQWlCLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUNwRixNQUF1QixFQUFFLFFBQWUsRUFBRSxnQkFBd0IsRUFBRSxHQUE4QjtRQUNsRyxNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO1FBRXJDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFO1lBQzNCLE1BQU0sTUFBTSxHQUFvQjtnQkFDNUIsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztnQkFDcEMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsTUFBTTtnQkFDTixLQUFLLEVBQUUsZ0JBQWdCO2FBQzFCLENBQUM7WUFDRixNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN0SCxTQUFTLENBQUM7WUFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7eUhBcEdRLDRCQUE0QixrQkFFakIsYUFBYTt1SEFGeEIsNEJBQTRCOzJGQUE1Qiw0QkFBNEI7a0JBRHhDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7OzBCQUd0QixNQUFNOzJCQUFDLGFBQWE7O0FBcUdyQzs7R0FFRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsWUFBMkMsSUFBYztRQUFkLFNBQUksR0FBSixJQUFJLENBQVU7SUFBSSxDQUFDO0lBRXZELFNBQVMsQ0FBQyxVQUE2QixFQUMxQyxjQUFzQixFQUFFLGNBQWlDLEVBQUUsQ0FBUztRQUVwRSxNQUFNLElBQUksR0FBc0IsRUFBRSxDQUFDO1FBRW5DLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7UUFFN0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVsRixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFVBQTZCLEVBQUUsSUFBdUIsRUFDL0UsY0FBc0IsRUFBRSxjQUFpQyxFQUFFLGNBQXVCO1FBQ2xGLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ25DLE9BQU87U0FDVjtRQUVELEtBQUssTUFBTSxrQkFBa0IsSUFBSSxVQUFVLEVBQUU7WUFDekMsSUFBSSxjQUFjLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUNqQztZQUVELGtCQUFrQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRTVGLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFFdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFFM0UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUN2RSxjQUFjLEVBQUUsY0FBYyxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0wsQ0FBQztJQUVPLGlDQUFpQyxDQUFDLElBQWMsRUFBRSxNQUF1QjtRQUM3RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsR0FBRyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ25DLENBQUM7O3NIQTVDUSx5QkFBeUIsa0JBRWQsYUFBYTtvSEFGeEIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRHJDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7OzBCQUduQixNQUFNOzJCQUFDLGFBQWE7O0FBNkNyQyxjQUFjO0FBRWQsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQixZQUEyQyxJQUFjO1FBQWQsU0FBSSxHQUFKLElBQUksQ0FBVTtJQUFJLENBQUM7SUFFdkQsU0FBUyxDQUNaLGdCQUFtQyxFQUNuQyxlQUFxQyxFQUNyQyxnQkFBdUMsRUFDdkMsT0FBNkIsRUFDN0IsQ0FBUyxFQUNULE1BQWdCO1FBRWhCLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQUNsRyxJQUFJLE1BQXlCLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDckIsTUFBTSxHQUFHLGdCQUFnQixDQUFDO1NBQzdCO2FBQU07WUFDSCxNQUFNLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0Y7UUFFRCxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU1RCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sc0JBQXNCLENBQUMsT0FBMEIsRUFBRSxRQUFlO1FBQ3RFLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDM0IsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7Z0JBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUMxRDtTQUNKO0lBQ0wsQ0FBQzs7bUhBbENRLHNCQUFzQixrQkFFWCxhQUFhO2lIQUZ4QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEbEMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTs7MEJBR2hCLE1BQU07MkJBQUMsYUFBYTs7QUFtQ3JDLGNBQWM7QUFFZCxNQUFNLE9BQU8scUJBQXFCO0lBRTlCLFlBQTJDLElBQWM7UUFBZCxTQUFJLEdBQUosSUFBSSxDQUFVO0lBQUksQ0FBQztJQUV2RCxTQUFTLENBQUMsVUFBNkIsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsQ0FBUztRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssY0FBYyxDQUFDLEtBQUssRUFBRTtZQUN2RSxPQUFPLFVBQVUsQ0FBQztTQUNyQjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDdkYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFNUMsTUFBTSxLQUFLLEdBQUc7WUFDVixLQUFLLEVBQUUsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNyRSxjQUFjLEVBQUUsT0FBTztTQUMxQixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQXNCLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFdkMsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7a0hBdEJRLHFCQUFxQixrQkFFVixhQUFhO2dIQUZ4QixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTs7MEJBR2YsTUFBTTsyQkFBQyxhQUFhOztBQXNCckMsY0FBYztBQUVkLE1BQU0sT0FBTywwQkFBMEI7SUFHbkMsWUFBMkMsSUFBYztRQUFkLFNBQUksR0FBSixJQUFJLENBQVU7SUFBSSxDQUFDO0lBRXZELFNBQVMsQ0FBQyxVQUFpQixFQUFFLENBQVM7UUFFekMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNiLE9BQU8sVUFBVSxDQUFDO2lCQUNyQjtnQkFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBRTVDLElBQUksWUFBWSxFQUFFO29CQUNkLE1BQU0scUJBQXFCLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUMvRSxPQUFPLFFBQVEsQ0FBQyw2QkFBNkIsQ0FDekMscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQzlCLENBQUM7aUJBQ0w7cUJBQU07b0JBQ0gsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUM3QyxPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsQ0FDN0IsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2lCQUNwQzthQUNKO1NBQ0o7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDOzt1SEF0Q1EsMEJBQTBCLGtCQUdmLGFBQWE7cUhBSHhCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFOzswQkFJcEIsTUFBTTsyQkFBQyxhQUFhOztBQXNDckM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sK0JBQStCO0lBRXhDLFlBQTJDLElBQWM7UUFBZCxTQUFJLEdBQUosSUFBSSxDQUFVO0lBQUksQ0FBQztJQUV2RCxTQUFTLENBQUMsQ0FBUSxFQUFFLEVBQVU7UUFDakMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDeEMsZ0VBQWdFO1FBQ2hFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDL0IsQ0FBQztZQUNHLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO1lBQ25ELElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLENBQUM7WUFDUixRQUFRLEVBQUUsRUFBRTtTQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ0osT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDOzs0SEFoQlEsK0JBQStCLGtCQUVwQixhQUFhOzBIQUZ4QiwrQkFBK0I7MkZBQS9CLCtCQUErQjtrQkFEM0MsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSx5QkFBeUIsRUFBRTs7MEJBR3hCLE1BQU07MkJBQUMsYUFBYTs7QUFrQnJDLE1BQU0sT0FBTyxxQkFBcUI7SUFFOUIsWUFBMkMsSUFBYztRQUFkLFNBQUksR0FBSixJQUFJLENBQVU7SUFBSSxDQUFDO0lBRXZELFNBQVMsQ0FBQyxVQUFlLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxZQUFvQjtRQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxLQUFLLFNBQVMsQ0FBQyxJQUFJO1lBQ25ILENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDakgsT0FBTyxVQUFVLENBQUM7U0FDckI7UUFDRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQWlCLENBQUMsU0FBUyxDQUFDO1FBQy9ELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUM3QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0csSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUMzQzthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O2tIQW5CUSxxQkFBcUIsa0JBRVYsYUFBYTtnSEFGeEIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7OzBCQUdmLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVBcnJheSwgY2xvbmVIaWVyYXJjaGljYWxBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgRGF0YVV0aWwgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7IElUcmVlR3JpZFJlY29yZCB9IGZyb20gJy4vdHJlZS1ncmlkLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgR3JpZFR5cGUsIElHWF9HUklEX0JBU0UgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JpZFBhZ2luZ01vZGUgfSBmcm9tICcuLi9jb21tb24vZW51bXMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHVibGljX2FwaSc7XG5pbXBvcnQgeyBJZ3hBZGRSb3cgfSBmcm9tICcuLi9jb21tb24vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IElTb3J0aW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IElHcmlkU29ydGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vY29tbW9uL3N0cmF0ZWd5JztcbmltcG9ydCB7IElHcm91cGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQFBpcGUoeyBuYW1lOiAndHJlZUdyaWRIaWVyYXJjaGl6aW5nJyB9KVxuZXhwb3J0IGNsYXNzIElneFRyZWVHcmlkSGllcmFyY2hpemluZ1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHJpdmF0ZSBncmlkOiBHcmlkVHlwZSkgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGNvbGxlY3Rpb246IGFueVtdLCBwcmltYXJ5S2V5OiBzdHJpbmcsIGZvcmVpZ25LZXk6IHN0cmluZywgY2hpbGREYXRhS2V5OiBzdHJpbmcsIF86IG51bWJlcik6IElUcmVlR3JpZFJlY29yZFtdIHtcbiAgICAgICAgbGV0IGhpZXJhcmNoaWNhbFJlY29yZHM6IElUcmVlR3JpZFJlY29yZFtdID0gW107XG4gICAgICAgIGNvbnN0IHRyZWVHcmlkUmVjb3Jkc01hcCA9IG5ldyBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+KCk7XG4gICAgICAgIGNvbnN0IGZsYXREYXRhOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGlmIChjaGlsZERhdGFLZXkpIHtcbiAgICAgICAgICAgIGhpZXJhcmNoaWNhbFJlY29yZHMgPSB0aGlzLmhpZXJhcmNoaXplUmVjdXJzaXZlKGNvbGxlY3Rpb24sIHByaW1hcnlLZXksIGNoaWxkRGF0YUtleSwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGZsYXREYXRhLCAwLCB0cmVlR3JpZFJlY29yZHNNYXApO1xuICAgICAgICB9IGVsc2UgaWYgKHByaW1hcnlLZXkpIHtcbiAgICAgICAgICAgIGhpZXJhcmNoaWNhbFJlY29yZHMgPSB0aGlzLmhpZXJhcmNoaXplRmxhdERhdGEoY29sbGVjdGlvbiwgcHJpbWFyeUtleSwgZm9yZWlnbktleSwgdHJlZUdyaWRSZWNvcmRzTWFwLCBmbGF0RGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdyaWQuZmxhdERhdGEgPSB0aGlzLmdyaWQudHJhbnNhY3Rpb25zLmVuYWJsZWQgP1xuICAgICAgICAgICAgZmxhdERhdGEuZmlsdGVyKHJlYyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdyaWQudHJhbnNhY3Rpb25zLmdldFN0YXRlKHRoaXMuZ2V0Um93SUQocHJpbWFyeUtleSwgcmVjKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFzdGF0ZSB8fCBzdGF0ZS50eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuQUREO1xuICAgICAgICAgICAgfSkgOiBmbGF0RGF0YTtcbiAgICAgICAgdGhpcy5ncmlkLnJlY29yZHMgPSB0cmVlR3JpZFJlY29yZHNNYXA7XG4gICAgICAgIHRoaXMuZ3JpZC5yb290UmVjb3JkcyA9IGhpZXJhcmNoaWNhbFJlY29yZHM7XG4gICAgICAgIHJldHVybiBoaWVyYXJjaGljYWxSZWNvcmRzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Um93SUQocHJpbWFyeUtleTogYW55LCByb3dEYXRhOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHByaW1hcnlLZXkgPyByb3dEYXRhW3ByaW1hcnlLZXldIDogcm93RGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZXJhcmNoaXplRmxhdERhdGEoY29sbGVjdGlvbjogYW55W10sIHByaW1hcnlLZXk6IHN0cmluZywgZm9yZWlnbktleTogc3RyaW5nLFxuICAgICAgICBtYXA6IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD4sIGZsYXREYXRhOiBhbnlbXSk6XG4gICAgICAgIElUcmVlR3JpZFJlY29yZFtdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBJVHJlZUdyaWRSZWNvcmRbXSA9IFtdO1xuICAgICAgICBjb25zdCBtaXNzaW5nUGFyZW50UmVjb3JkczogSVRyZWVHcmlkUmVjb3JkW10gPSBbXTtcbiAgICAgICAgY29sbGVjdGlvbi5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWNvcmQ6IElUcmVlR3JpZFJlY29yZCA9IHtcbiAgICAgICAgICAgICAgICBrZXk6IHRoaXMuZ2V0Um93SUQocHJpbWFyeUtleSwgcm93KSxcbiAgICAgICAgICAgICAgICBkYXRhOiByb3csXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gbWFwLmdldChyb3dbZm9yZWlnbktleV0pO1xuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIHJlY29yZC5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gocmVjb3JkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWlzc2luZ1BhcmVudFJlY29yZHMucHVzaChyZWNvcmQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXAuc2V0KHJvd1twcmltYXJ5S2V5XSwgcmVjb3JkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbWlzc2luZ1BhcmVudFJlY29yZHMuZm9yRWFjaChyZWNvcmQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gbWFwLmdldChyZWNvcmQuZGF0YVtmb3JlaWduS2V5XSk7XG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgcmVjb3JkLnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4ucHVzaChyZWNvcmQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyZWNvcmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnNldEluZGVudGF0aW9uTGV2ZWxzKHJlc3VsdCwgMCwgZmxhdERhdGEpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJbmRlbnRhdGlvbkxldmVscyhjb2xsZWN0aW9uOiBJVHJlZUdyaWRSZWNvcmRbXSwgaW5kZW50YXRpb25MZXZlbDogbnVtYmVyLCBmbGF0RGF0YTogYW55W10pIHtcbiAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgY29sbGVjdGlvbikge1xuICAgICAgICAgICAgcmVjb3JkLmxldmVsID0gaW5kZW50YXRpb25MZXZlbDtcbiAgICAgICAgICAgIHJlY29yZC5leHBhbmRlZCA9IHRoaXMuZ3JpZC5ncmlkQVBJLmdldF9yb3dfZXhwYW5zaW9uX3N0YXRlKHJlY29yZCk7XG4gICAgICAgICAgICBmbGF0RGF0YS5wdXNoKHJlY29yZC5kYXRhKTtcblxuICAgICAgICAgICAgaWYgKHJlY29yZC5jaGlsZHJlbiAmJiByZWNvcmQuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5kZW50YXRpb25MZXZlbHMocmVjb3JkLmNoaWxkcmVuLCBpbmRlbnRhdGlvbkxldmVsICsgMSwgZmxhdERhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWVyYXJjaGl6ZVJlY3Vyc2l2ZShjb2xsZWN0aW9uOiBhbnlbXSwgcHJpbWFyeUtleTogc3RyaW5nLCBjaGlsZERhdGFLZXk6IHN0cmluZyxcbiAgICAgICAgcGFyZW50OiBJVHJlZUdyaWRSZWNvcmQsIGZsYXREYXRhOiBhbnlbXSwgaW5kZW50YXRpb25MZXZlbDogbnVtYmVyLCBtYXA6IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD4pOiBJVHJlZUdyaWRSZWNvcmRbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogSVRyZWVHcmlkUmVjb3JkW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY29sbGVjdGlvbikge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQgPSB7XG4gICAgICAgICAgICAgICAga2V5OiB0aGlzLmdldFJvd0lEKHByaW1hcnlLZXksIGl0ZW0pLFxuICAgICAgICAgICAgICAgIGRhdGE6IGl0ZW0sXG4gICAgICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgICAgIGxldmVsOiBpbmRlbnRhdGlvbkxldmVsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVjb3JkLmV4cGFuZGVkID0gdGhpcy5ncmlkLmdyaWRBUEkuZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUocmVjb3JkKTtcbiAgICAgICAgICAgIGZsYXREYXRhLnB1c2goaXRlbSk7XG4gICAgICAgICAgICBtYXAuc2V0KHJlY29yZC5rZXksIHJlY29yZCk7XG4gICAgICAgICAgICByZWNvcmQuY2hpbGRyZW4gPSBpdGVtW2NoaWxkRGF0YUtleV0gP1xuICAgICAgICAgICAgICAgIHRoaXMuaGllcmFyY2hpemVSZWN1cnNpdmUoaXRlbVtjaGlsZERhdGFLZXldLCBwcmltYXJ5S2V5LCBjaGlsZERhdGFLZXksIHJlY29yZCwgZmxhdERhdGEsIGluZGVudGF0aW9uTGV2ZWwgKyAxLCBtYXApIDpcbiAgICAgICAgICAgICAgICB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZWNvcmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5AUGlwZSh7IG5hbWU6ICd0cmVlR3JpZEZsYXR0ZW5pbmcnIH0pXG5leHBvcnQgY2xhc3MgSWd4VHJlZUdyaWRGbGF0dGVuaW5nUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJR1hfR1JJRF9CQVNFKSBwcml2YXRlIGdyaWQ6IEdyaWRUeXBlKSB7IH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oY29sbGVjdGlvbjogSVRyZWVHcmlkUmVjb3JkW10sXG4gICAgICAgIGV4cGFuZGVkTGV2ZWxzOiBudW1iZXIsIGV4cGFuZGVkU3RhdGVzOiBNYXA8YW55LCBib29sZWFuPiwgXzogbnVtYmVyKTogYW55W10ge1xuXG4gICAgICAgIGNvbnN0IGRhdGE6IElUcmVlR3JpZFJlY29yZFtdID0gW107XG5cbiAgICAgICAgdGhpcy5ncmlkLnByb2Nlc3NlZFJvb3RSZWNvcmRzID0gY29sbGVjdGlvbjtcbiAgICAgICAgdGhpcy5ncmlkLnByb2Nlc3NlZFJlY29yZHMgPSBuZXcgTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPigpO1xuXG4gICAgICAgIHRoaXMuZ2V0RmxhdERhdGFSZWN1cnNpdmUoY29sbGVjdGlvbiwgZGF0YSwgZXhwYW5kZWRMZXZlbHMsIGV4cGFuZGVkU3RhdGVzLCB0cnVlKTtcblxuICAgICAgICB0aGlzLmdyaWQucHJvY2Vzc2VkRXhwYW5kZWRGbGF0RGF0YSA9IGRhdGEubWFwKHIgPT4gci5kYXRhKTtcblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZsYXREYXRhUmVjdXJzaXZlKGNvbGxlY3Rpb246IElUcmVlR3JpZFJlY29yZFtdLCBkYXRhOiBJVHJlZUdyaWRSZWNvcmRbXSxcbiAgICAgICAgZXhwYW5kZWRMZXZlbHM6IG51bWJlciwgZXhwYW5kZWRTdGF0ZXM6IE1hcDxhbnksIGJvb2xlYW4+LCBwYXJlbnRFeHBhbmRlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoIWNvbGxlY3Rpb24gfHwgIWNvbGxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGhpZXJhcmNoaWNhbFJlY29yZCBvZiBjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAocGFyZW50RXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnB1c2goaGllcmFyY2hpY2FsUmVjb3JkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaGllcmFyY2hpY2FsUmVjb3JkLmV4cGFuZGVkID0gdGhpcy5ncmlkLmdyaWRBUEkuZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaGllcmFyY2hpY2FsUmVjb3JkKTtcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVOb25Qcm9jZXNzZWRSZWNvcmRFeHBhbnNpb24odGhpcy5ncmlkLCBoaWVyYXJjaGljYWxSZWNvcmQpO1xuXG4gICAgICAgICAgICB0aGlzLmdyaWQucHJvY2Vzc2VkUmVjb3Jkcy5zZXQoaGllcmFyY2hpY2FsUmVjb3JkLmtleSwgaGllcmFyY2hpY2FsUmVjb3JkKTtcblxuICAgICAgICAgICAgdGhpcy5nZXRGbGF0RGF0YVJlY3Vyc2l2ZShoaWVyYXJjaGljYWxSZWNvcmQuY2hpbGRyZW4sIGRhdGEsIGV4cGFuZGVkTGV2ZWxzLFxuICAgICAgICAgICAgICAgIGV4cGFuZGVkU3RhdGVzLCBwYXJlbnRFeHBhbmRlZCAmJiBoaWVyYXJjaGljYWxSZWNvcmQuZXhwYW5kZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVOb25Qcm9jZXNzZWRSZWNvcmRFeHBhbnNpb24oZ3JpZDogR3JpZFR5cGUsIHJlY29yZDogSVRyZWVHcmlkUmVjb3JkKSB7XG4gICAgICAgIGNvbnN0IHJlYyA9IGdyaWQucmVjb3Jkcy5nZXQocmVjb3JkLmtleSk7XG4gICAgICAgIHJlYy5leHBhbmRlZCA9IHJlY29yZC5leHBhbmRlZDtcbiAgICB9XG59XG5cbi8qKiBAaGlkZGVuICovXG5AUGlwZSh7IG5hbWU6ICd0cmVlR3JpZFNvcnRpbmcnIH0pXG5leHBvcnQgY2xhc3MgSWd4VHJlZUdyaWRTb3J0aW5nUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJR1hfR1JJRF9CQVNFKSBwcml2YXRlIGdyaWQ6IEdyaWRUeXBlKSB7IH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oXG4gICAgICAgIGhpZXJhcmNoaWNhbERhdGE6IElUcmVlR3JpZFJlY29yZFtdLFxuICAgICAgICBzb3J0RXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdLFxuICAgICAgICBncm91cEV4cHJlc3Npb25zOiBJR3JvdXBpbmdFeHByZXNzaW9uW10sXG4gICAgICAgIHNvcnRpbmc6IElHcmlkU29ydGluZ1N0cmF0ZWd5LFxuICAgICAgICBfOiBudW1iZXIsXG4gICAgICAgIHBpbm5lZD86IGJvb2xlYW4pOiBJVHJlZUdyaWRSZWNvcmRbXSB7XG5cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbnMgPSBncm91cEV4cHJlc3Npb25zID8gZ3JvdXBFeHByZXNzaW9ucy5jb25jYXQoc29ydEV4cHJlc3Npb25zKSA6IHNvcnRFeHByZXNzaW9ucztcbiAgICAgICAgbGV0IHJlc3VsdDogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgICAgIGlmICghZXhwcmVzc2lvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBoaWVyYXJjaGljYWxEYXRhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gRGF0YVV0aWwudHJlZUdyaWRTb3J0KGhpZXJhcmNoaWNhbERhdGEsIGV4cHJlc3Npb25zLCBzb3J0aW5nLCBudWxsLCB0aGlzLmdyaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWRTb3J0ZWREYXRhID0gW107XG4gICAgICAgIHRoaXMuZmxhdHRlblRyZWVHcmlkUmVjb3JkcyhyZXN1bHQsIGZpbHRlcmVkU29ydGVkRGF0YSk7XG4gICAgICAgIHRoaXMuZ3JpZC5zZXRGaWx0ZXJlZFNvcnRlZERhdGEoZmlsdGVyZWRTb3J0ZWREYXRhLCBwaW5uZWQpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmbGF0dGVuVHJlZUdyaWRSZWNvcmRzKHJlY29yZHM6IElUcmVlR3JpZFJlY29yZFtdLCBmbGF0RGF0YTogYW55W10pIHtcbiAgICAgICAgaWYgKHJlY29yZHMgJiYgcmVjb3Jkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcbiAgICAgICAgICAgICAgICBmbGF0RGF0YS5wdXNoKHJlY29yZC5kYXRhKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW5UcmVlR3JpZFJlY29yZHMocmVjb3JkLmNoaWxkcmVuLCBmbGF0RGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKiBAaGlkZGVuICovXG5AUGlwZSh7IG5hbWU6ICd0cmVlR3JpZFBhZ2luZycgfSlcbmV4cG9ydCBjbGFzcyBJZ3hUcmVlR3JpZFBhZ2luZ1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHJpdmF0ZSBncmlkOiBHcmlkVHlwZSkgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGNvbGxlY3Rpb246IElUcmVlR3JpZFJlY29yZFtdLCBwYWdlID0gMCwgcGVyUGFnZSA9IDE1LCBfOiBudW1iZXIpOiBJVHJlZUdyaWRSZWNvcmRbXSB7XG4gICAgICAgIGlmICghdGhpcy5ncmlkLnBhZ2luYXRvciB8fCB0aGlzLmdyaWQucGFnaW5nTW9kZSAhPT0gR3JpZFBhZ2luZ01vZGUuTG9jYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGVuID0gdGhpcy5ncmlkLl90b3RhbFJlY29yZHMgPj0gMCA/IHRoaXMuZ3JpZC5fdG90YWxSZWNvcmRzIDogY29sbGVjdGlvbi5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLmNlaWwobGVuIC8gcGVyUGFnZSk7XG5cbiAgICAgICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgICAgICBpbmRleDogKHRvdGFsUGFnZXMgPiAwICYmIHBhZ2UgPj0gdG90YWxQYWdlcykgPyB0b3RhbFBhZ2VzIC0gMSA6IHBhZ2UsXG4gICAgICAgICAgICByZWNvcmRzUGVyUGFnZTogcGVyUGFnZVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdDogSVRyZWVHcmlkUmVjb3JkW10gPSBEYXRhVXRpbC5wYWdlKGNsb25lQXJyYXkoY29sbGVjdGlvbiksIHN0YXRlLCBsZW4pO1xuICAgICAgICB0aGlzLmdyaWQucGFnaW5nU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgdGhpcy5ncmlkLnBhZ2luYXRvci5wYWdlID0gc3RhdGUuaW5kZXg7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4vKiogQGhpZGRlbiAqL1xuQFBpcGUoeyBuYW1lOiAndHJlZUdyaWRUcmFuc2FjdGlvbicgfSlcbmV4cG9ydCBjbGFzcyBJZ3hUcmVlR3JpZFRyYW5zYWN0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KElHWF9HUklEX0JBU0UpIHByaXZhdGUgZ3JpZDogR3JpZFR5cGUpIHsgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShjb2xsZWN0aW9uOiBhbnlbXSwgXzogbnVtYmVyKTogYW55W10ge1xuXG4gICAgICAgIGlmICh0aGlzLmdyaWQudHJhbnNhY3Rpb25zLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFnZ3JlZ2F0ZWRDaGFuZ2VzID0gdGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5nZXRBZ2dyZWdhdGVkQ2hhbmdlcyh0cnVlKTtcbiAgICAgICAgICAgIGlmIChhZ2dyZWdhdGVkQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJpbWFyeUtleSA9IHRoaXMuZ3JpZC5wcmltYXJ5S2V5O1xuICAgICAgICAgICAgICAgIGlmICghcHJpbWFyeUtleSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmb3JlaWduS2V5ID0gdGhpcy5ncmlkLmZvcmVpZ25LZXk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGREYXRhS2V5ID0gdGhpcy5ncmlkLmNoaWxkRGF0YUtleTtcblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZERhdGFLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGllcmFyY2hpY2FsRGF0YUNsb25lID0gY2xvbmVIaWVyYXJjaGljYWxBcnJheShjb2xsZWN0aW9uLCBjaGlsZERhdGFLZXkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGF0YVV0aWwubWVyZ2VIaWVyYXJjaGljYWxUcmFuc2FjdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICBoaWVyYXJjaGljYWxEYXRhQ2xvbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGVkQ2hhbmdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkRGF0YUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5wcmltYXJ5S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmRhdGFDbG9uZVN0cmF0ZWd5XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxhdERhdGFDbG9uZSA9IGNsb25lQXJyYXkoY29sbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBEYXRhVXRpbC5tZXJnZVRyYW5zYWN0aW9ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYXREYXRhQ2xvbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGVkQ2hhbmdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5wcmltYXJ5S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmRhdGFDbG9uZVN0cmF0ZWd5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgfVxufVxuXG4vKipcbiAqIFRoaXMgcGlwZSBtYXBzIHRoZSBvcmlnaW5hbCByZWNvcmQgdG8gSVRyZWVHcmlkUmVjb3JkIGZvcm1hdCB1c2VkIGluIFRyZWVHcmlkLlxuICovXG5AUGlwZSh7IG5hbWU6ICd0cmVlR3JpZE5vcm1hbGl6ZVJlY29yZCcgfSlcbmV4cG9ydCBjbGFzcyBJZ3hUcmVlR3JpZE5vcm1hbGl6ZVJlY29yZHNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KElHWF9HUklEX0JBU0UpIHByaXZhdGUgZ3JpZDogR3JpZFR5cGUpIHsgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShfOiBhbnlbXSwgX186IG51bWJlcik6IGFueVtdIHtcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleSA9IHRoaXMuZ3JpZC5wcmltYXJ5S2V5O1xuICAgICAgICAvLyB1c2luZyBmbGF0dGVuZWQgZGF0YSBiZWNhdXNlIG9yaWdpbiBkYXRhIG1heSBiZSBoaWVyYXJjaGljYWwuXG4gICAgICAgIGNvbnN0IGZsYXREYXRhID0gdGhpcy5ncmlkLmZsYXREYXRhO1xuICAgICAgICBjb25zdCByZXMgPSBmbGF0RGF0YS5tYXAocmVjID0+XG4gICAgICAgICh7XG4gICAgICAgICAgICByb3dJRDogdGhpcy5ncmlkLnByaW1hcnlLZXkgPyByZWNbcHJpbWFyeUtleV0gOiByZWMsXG4gICAgICAgICAgICBkYXRhOiByZWMsXG4gICAgICAgICAgICBsZXZlbDogMCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXVxuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxufVxuXG5AUGlwZSh7IG5hbWU6ICd0cmVlR3JpZEFkZFJvdycgfSlcbmV4cG9ydCBjbGFzcyBJZ3hUcmVlR3JpZEFkZFJvd1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHJpdmF0ZSBncmlkOiBHcmlkVHlwZSkgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGNvbGxlY3Rpb246IGFueSwgaXNQaW5uZWQgPSBmYWxzZSwgX3BpcGVUcmlnZ2VyOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmdyaWQucm93RWRpdGFibGUgfHwgIXRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3cgfHwgdGhpcy5ncmlkLmNydWRTZXJ2aWNlLnJvdy5nZXRDbGFzc05hbWUoKSAhPT0gSWd4QWRkUm93Lm5hbWUgfHxcbiAgICAgICAgICAgICF0aGlzLmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5hZGRSb3dQYXJlbnQgfHwgaXNQaW5uZWQgIT09IHRoaXMuZ3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmFkZFJvd1BhcmVudC5pc1Bpbm5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29weSA9IGNvbGxlY3Rpb24uc2xpY2UoMCk7XG4gICAgICAgIGNvbnN0IHJlYyA9ICh0aGlzLmdyaWQuY3J1ZFNlcnZpY2Uucm93IGFzIElneEFkZFJvdykucmVjb3JkUmVmO1xuICAgICAgICBpZiAodGhpcy5ncmlkLmNydWRTZXJ2aWNlLmFkZFJvd1BhcmVudC5pc1Bpbm5lZCkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50Um93SW5kZXggPSBjb3B5LmZpbmRJbmRleChyZWNvcmQgPT4gcmVjb3JkLnJvd0lEID09PSB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UuYWRkUm93UGFyZW50LnJvd0lEKTtcbiAgICAgICAgICAgIGNvcHkuc3BsaWNlKHBhcmVudFJvd0luZGV4ICsgMSwgMCwgcmVjKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvcHkuc3BsaWNlKHRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3cuaW5kZXgsIDAsIHJlYyk7ICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ncmlkLnJlY29yZHMuc2V0KHJlYy5rZXksIHJlYyk7XG4gICAgICAgIHJldHVybiBjb3B5O1xuICAgIH1cbn1cbiJdfQ==
|
|
316
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ncmlkLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3RyZWUtZ3JpZC90cmVlLWdyaWQucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0QsT0FBTyxFQUFZLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUtuRDs7R0FFRztBQUVILE1BQU0sT0FBTyw0QkFBNEI7SUFFckMsWUFBMkMsSUFBYztRQUFkLFNBQUksR0FBSixJQUFJLENBQVU7SUFBSSxDQUFDO0lBRXZELFNBQVMsQ0FBQyxVQUFpQixFQUFFLFVBQWtCLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLENBQVM7UUFDdkcsSUFBSSxtQkFBbUIsR0FBc0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7UUFDM0QsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBRTNCLElBQUksWUFBWSxFQUFFO1lBQ2QsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFDM0YsUUFBUSxFQUFFLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFD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QyxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztrSEFuQlEscUJBQXFCLGtCQUVWLGFBQWE7Z0hBRnhCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzswQkFHZixNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lQXJyYXksIGNsb25lSGllcmFyY2hpY2FsQXJyYXkgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IERhdGFVdGlsIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBJVHJlZUdyaWRSZWNvcmQgfSBmcm9tICcuL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdyaWRUeXBlLCBJR1hfR1JJRF9CQVNFIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRQYWdpbmdNb2RlIH0gZnJvbSAnLi4vY29tbW9uL2VudW1zJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgSWd4QWRkUm93IH0gZnJvbSAnLi4vY29tbW9uL2NydWQuc2VydmljZSc7XG5pbXBvcnQgeyBJU29ydGluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBJR3JpZFNvcnRpbmdTdHJhdGVneSB9IGZyb20gJy4uL2NvbW1vbi9zdHJhdGVneSc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBQaXBlKHsgbmFtZTogJ3RyZWVHcmlkSGllcmFyY2hpemluZycgfSlcbmV4cG9ydCBjbGFzcyBJZ3hUcmVlR3JpZEhpZXJhcmNoaXppbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KElHWF9HUklEX0JBU0UpIHByaXZhdGUgZ3JpZDogR3JpZFR5cGUpIHsgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShjb2xsZWN0aW9uOiBhbnlbXSwgcHJpbWFyeUtleTogc3RyaW5nLCBmb3JlaWduS2V5OiBzdHJpbmcsIGNoaWxkRGF0YUtleTogc3RyaW5nLCBfOiBudW1iZXIpOiBJVHJlZUdyaWRSZWNvcmRbXSB7XG4gICAgICAgIGxldCBoaWVyYXJjaGljYWxSZWNvcmRzOiBJVHJlZUdyaWRSZWNvcmRbXSA9IFtdO1xuICAgICAgICBjb25zdCB0cmVlR3JpZFJlY29yZHNNYXAgPSBuZXcgTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPigpO1xuICAgICAgICBjb25zdCBmbGF0RGF0YTogYW55W10gPSBbXTtcblxuICAgICAgICBpZiAoY2hpbGREYXRhS2V5KSB7XG4gICAgICAgICAgICBoaWVyYXJjaGljYWxSZWNvcmRzID0gdGhpcy5oaWVyYXJjaGl6ZVJlY3Vyc2l2ZShjb2xsZWN0aW9uLCBwcmltYXJ5S2V5LCBjaGlsZERhdGFLZXksIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBmbGF0RGF0YSwgMCwgdHJlZUdyaWRSZWNvcmRzTWFwKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmltYXJ5S2V5KSB7XG4gICAgICAgICAgICBoaWVyYXJjaGljYWxSZWNvcmRzID0gdGhpcy5oaWVyYXJjaGl6ZUZsYXREYXRhKGNvbGxlY3Rpb24sIHByaW1hcnlLZXksIGZvcmVpZ25LZXksIHRyZWVHcmlkUmVjb3Jkc01hcCwgZmxhdERhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ncmlkLmZsYXREYXRhID0gdGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5lbmFibGVkID9cbiAgICAgICAgICAgIGZsYXREYXRhLmZpbHRlcihyZWMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5nZXRTdGF0ZSh0aGlzLmdldFJvd0lEKHByaW1hcnlLZXksIHJlYykpO1xuICAgICAgICAgICAgICAgIHJldHVybiAhc3RhdGUgfHwgc3RhdGUudHlwZSAhPT0gVHJhbnNhY3Rpb25UeXBlLkFERDtcbiAgICAgICAgICAgIH0pIDogZmxhdERhdGE7XG4gICAgICAgIHRoaXMuZ3JpZC5yZWNvcmRzID0gdHJlZUdyaWRSZWNvcmRzTWFwO1xuICAgICAgICB0aGlzLmdyaWQucm9vdFJlY29yZHMgPSBoaWVyYXJjaGljYWxSZWNvcmRzO1xuICAgICAgICByZXR1cm4gaGllcmFyY2hpY2FsUmVjb3JkcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJvd0lEKHByaW1hcnlLZXk6IGFueSwgcm93RGF0YTogYW55KSB7XG4gICAgICAgIHJldHVybiBwcmltYXJ5S2V5ID8gcm93RGF0YVtwcmltYXJ5S2V5XSA6IHJvd0RhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWVyYXJjaGl6ZUZsYXREYXRhKGNvbGxlY3Rpb246IGFueVtdLCBwcmltYXJ5S2V5OiBzdHJpbmcsIGZvcmVpZ25LZXk6IHN0cmluZyxcbiAgICAgICAgbWFwOiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+LCBmbGF0RGF0YTogYW55W10pOlxuICAgICAgICBJVHJlZUdyaWRSZWNvcmRbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogSVRyZWVHcmlkUmVjb3JkW10gPSBbXTtcbiAgICAgICAgY29uc3QgbWlzc2luZ1BhcmVudFJlY29yZHM6IElUcmVlR3JpZFJlY29yZFtdID0gW107XG4gICAgICAgIGNvbGxlY3Rpb24uZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQgPSB7XG4gICAgICAgICAgICAgICAga2V5OiB0aGlzLmdldFJvd0lEKHByaW1hcnlLZXksIHJvdyksXG4gICAgICAgICAgICAgICAgZGF0YTogcm93LFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IG1hcC5nZXQocm93W2ZvcmVpZ25LZXldKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICByZWNvcmQucGFyZW50ID0gcGFyZW50O1xuICAgICAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKHJlY29yZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1pc3NpbmdQYXJlbnRSZWNvcmRzLnB1c2gocmVjb3JkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFwLnNldChyb3dbcHJpbWFyeUtleV0sIHJlY29yZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG1pc3NpbmdQYXJlbnRSZWNvcmRzLmZvckVhY2gocmVjb3JkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IG1hcC5nZXQocmVjb3JkLmRhdGFbZm9yZWlnbktleV0pO1xuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIHJlY29yZC5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gocmVjb3JkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVjb3JkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZXRJbmRlbnRhdGlvbkxldmVscyhyZXN1bHQsIDAsIGZsYXREYXRhKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5kZW50YXRpb25MZXZlbHMoY29sbGVjdGlvbjogSVRyZWVHcmlkUmVjb3JkW10sIGluZGVudGF0aW9uTGV2ZWw6IG51bWJlciwgZmxhdERhdGE6IGFueVtdKSB7XG4gICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIHJlY29yZC5sZXZlbCA9IGluZGVudGF0aW9uTGV2ZWw7XG4gICAgICAgICAgICByZWNvcmQuZXhwYW5kZWQgPSB0aGlzLmdyaWQuZ3JpZEFQSS5nZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShyZWNvcmQpO1xuICAgICAgICAgICAgZmxhdERhdGEucHVzaChyZWNvcmQuZGF0YSk7XG5cbiAgICAgICAgICAgIGlmIChyZWNvcmQuY2hpbGRyZW4gJiYgcmVjb3JkLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEluZGVudGF0aW9uTGV2ZWxzKHJlY29yZC5jaGlsZHJlbiwgaW5kZW50YXRpb25MZXZlbCArIDEsIGZsYXREYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGllcmFyY2hpemVSZWN1cnNpdmUoY29sbGVjdGlvbjogYW55W10sIHByaW1hcnlLZXk6IHN0cmluZywgY2hpbGREYXRhS2V5OiBzdHJpbmcsXG4gICAgICAgIHBhcmVudDogSVRyZWVHcmlkUmVjb3JkLCBmbGF0RGF0YTogYW55W10sIGluZGVudGF0aW9uTGV2ZWw6IG51bWJlciwgbWFwOiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+KTogSVRyZWVHcmlkUmVjb3JkW10ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IElUcmVlR3JpZFJlY29yZFtdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZDogSVRyZWVHcmlkUmVjb3JkID0ge1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5nZXRSb3dJRChwcmltYXJ5S2V5LCBpdGVtKSxcbiAgICAgICAgICAgICAgICBkYXRhOiBpdGVtLFxuICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICBsZXZlbDogaW5kZW50YXRpb25MZXZlbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlY29yZC5leHBhbmRlZCA9IHRoaXMuZ3JpZC5ncmlkQVBJLmdldF9yb3dfZXhwYW5zaW9uX3N0YXRlKHJlY29yZCk7XG4gICAgICAgICAgICBmbGF0RGF0YS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgbWFwLnNldChyZWNvcmQua2V5LCByZWNvcmQpO1xuICAgICAgICAgICAgcmVjb3JkLmNoaWxkcmVuID0gaXRlbVtjaGlsZERhdGFLZXldID9cbiAgICAgICAgICAgICAgICB0aGlzLmhpZXJhcmNoaXplUmVjdXJzaXZlKGl0ZW1bY2hpbGREYXRhS2V5XSwgcHJpbWFyeUtleSwgY2hpbGREYXRhS2V5LCByZWNvcmQsIGZsYXREYXRhLCBpbmRlbnRhdGlvbkxldmVsICsgMSwgbWFwKSA6XG4gICAgICAgICAgICAgICAgdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVjb3JkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQFBpcGUoeyBuYW1lOiAndHJlZUdyaWRGbGF0dGVuaW5nJyB9KVxuZXhwb3J0IGNsYXNzIElneFRyZWVHcmlkRmxhdHRlbmluZ1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHJpdmF0ZSBncmlkOiBHcmlkVHlwZSkgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGNvbGxlY3Rpb246IElUcmVlR3JpZFJlY29yZFtdLFxuICAgICAgICBleHBhbmRlZExldmVsczogbnVtYmVyLCBleHBhbmRlZFN0YXRlczogTWFwPGFueSwgYm9vbGVhbj4sIF86IG51bWJlcik6IGFueVtdIHtcblxuICAgICAgICBjb25zdCBkYXRhOiBJVHJlZUdyaWRSZWNvcmRbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuZ3JpZC5wcm9jZXNzZWRSb290UmVjb3JkcyA9IGNvbGxlY3Rpb247XG4gICAgICAgIHRoaXMuZ3JpZC5wcm9jZXNzZWRSZWNvcmRzID0gbmV3IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD4oKTtcblxuICAgICAgICB0aGlzLmdldEZsYXREYXRhUmVjdXJzaXZlKGNvbGxlY3Rpb24sIGRhdGEsIGV4cGFuZGVkTGV2ZWxzLCBleHBhbmRlZFN0YXRlcywgdHJ1ZSk7XG5cbiAgICAgICAgdGhpcy5ncmlkLnByb2Nlc3NlZEV4cGFuZGVkRmxhdERhdGEgPSBkYXRhLm1hcChyID0+IHIuZGF0YSk7XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGbGF0RGF0YVJlY3Vyc2l2ZShjb2xsZWN0aW9uOiBJVHJlZUdyaWRSZWNvcmRbXSwgZGF0YTogSVRyZWVHcmlkUmVjb3JkW10sXG4gICAgICAgIGV4cGFuZGVkTGV2ZWxzOiBudW1iZXIsIGV4cGFuZGVkU3RhdGVzOiBNYXA8YW55LCBib29sZWFuPiwgcGFyZW50RXhwYW5kZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uIHx8ICFjb2xsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBoaWVyYXJjaGljYWxSZWNvcmQgb2YgY29sbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKHBhcmVudEV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgICAgZGF0YS5wdXNoKGhpZXJhcmNoaWNhbFJlY29yZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhpZXJhcmNoaWNhbFJlY29yZC5leHBhbmRlZCA9IHRoaXMuZ3JpZC5ncmlkQVBJLmdldF9yb3dfZXhwYW5zaW9uX3N0YXRlKGhpZXJhcmNoaWNhbFJlY29yZCk7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlTm9uUHJvY2Vzc2VkUmVjb3JkRXhwYW5zaW9uKHRoaXMuZ3JpZCwgaGllcmFyY2hpY2FsUmVjb3JkKTtcblxuICAgICAgICAgICAgdGhpcy5ncmlkLnByb2Nlc3NlZFJlY29yZHMuc2V0KGhpZXJhcmNoaWNhbFJlY29yZC5rZXksIGhpZXJhcmNoaWNhbFJlY29yZCk7XG5cbiAgICAgICAgICAgIHRoaXMuZ2V0RmxhdERhdGFSZWN1cnNpdmUoaGllcmFyY2hpY2FsUmVjb3JkLmNoaWxkcmVuLCBkYXRhLCBleHBhbmRlZExldmVscyxcbiAgICAgICAgICAgICAgICBleHBhbmRlZFN0YXRlcywgcGFyZW50RXhwYW5kZWQgJiYgaGllcmFyY2hpY2FsUmVjb3JkLmV4cGFuZGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTm9uUHJvY2Vzc2VkUmVjb3JkRXhwYW5zaW9uKGdyaWQ6IEdyaWRUeXBlLCByZWNvcmQ6IElUcmVlR3JpZFJlY29yZCkge1xuICAgICAgICBjb25zdCByZWMgPSBncmlkLnJlY29yZHMuZ2V0KHJlY29yZC5rZXkpO1xuICAgICAgICByZWMuZXhwYW5kZWQgPSByZWNvcmQuZXhwYW5kZWQ7XG4gICAgfVxufVxuXG4vKiogQGhpZGRlbiAqL1xuQFBpcGUoeyBuYW1lOiAndHJlZUdyaWRTb3J0aW5nJyB9KVxuZXhwb3J0IGNsYXNzIElneFRyZWVHcmlkU29ydGluZ1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHJpdmF0ZSBncmlkOiBHcmlkVHlwZSkgeyB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgICAgICBoaWVyYXJjaGljYWxEYXRhOiBJVHJlZUdyaWRSZWNvcmRbXSxcbiAgICAgICAgc29ydEV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSxcbiAgICAgICAgZ3JvdXBFeHByZXNzaW9uczogSUdyb3VwaW5nRXhwcmVzc2lvbltdLFxuICAgICAgICBzb3J0aW5nOiBJR3JpZFNvcnRpbmdTdHJhdGVneSxcbiAgICAgICAgXzogbnVtYmVyLFxuICAgICAgICBwaW5uZWQ/OiBib29sZWFuKTogSVRyZWVHcmlkUmVjb3JkW10ge1xuXG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb25zID0gZ3JvdXBFeHByZXNzaW9ucyA/IGdyb3VwRXhwcmVzc2lvbnMuY29uY2F0KHNvcnRFeHByZXNzaW9ucykgOiBzb3J0RXhwcmVzc2lvbnM7XG4gICAgICAgIGxldCByZXN1bHQ6IElUcmVlR3JpZFJlY29yZFtdO1xuICAgICAgICBpZiAoIWV4cHJlc3Npb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gaGllcmFyY2hpY2FsRGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IERhdGFVdGlsLnRyZWVHcmlkU29ydChoaWVyYXJjaGljYWxEYXRhLCBleHByZXNzaW9ucywgc29ydGluZywgbnVsbCwgdGhpcy5ncmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkU29ydGVkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmZsYXR0ZW5UcmVlR3JpZFJlY29yZHMocmVzdWx0LCBmaWx0ZXJlZFNvcnRlZERhdGEpO1xuICAgICAgICB0aGlzLmdyaWQuc2V0RmlsdGVyZWRTb3J0ZWREYXRhKGZpbHRlcmVkU29ydGVkRGF0YSwgcGlubmVkKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZmxhdHRlblRyZWVHcmlkUmVjb3JkcyhyZWNvcmRzOiBJVHJlZUdyaWRSZWNvcmRbXSwgZmxhdERhdGE6IGFueVtdKSB7XG4gICAgICAgIGlmIChyZWNvcmRzICYmIHJlY29yZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICAgICAgICAgICAgZmxhdERhdGEucHVzaChyZWNvcmQuZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuVHJlZUdyaWRSZWNvcmRzKHJlY29yZC5jaGlsZHJlbiwgZmxhdERhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogQGhpZGRlbiAqL1xuQFBpcGUoeyBuYW1lOiAndHJlZUdyaWRQYWdpbmcnIH0pXG5leHBvcnQgY2xhc3MgSWd4VHJlZUdyaWRQYWdpbmdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KElHWF9HUklEX0JBU0UpIHByaXZhdGUgZ3JpZDogR3JpZFR5cGUpIHsgfVxuXG4gICAgcHVibGljIHRyYW5zZm9ybShjb2xsZWN0aW9uOiBJVHJlZUdyaWRSZWNvcmRbXSwgcGFnZSA9IDAsIHBlclBhZ2UgPSAxNSwgXzogbnVtYmVyKTogSVRyZWVHcmlkUmVjb3JkW10ge1xuICAgICAgICBpZiAoIXRoaXMuZ3JpZC5wYWdpbmF0b3IgfHwgdGhpcy5ncmlkLnBhZ2luZ01vZGUgIT09IEdyaWRQYWdpbmdNb2RlLkxvY2FsKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxlbiA9IHRoaXMuZ3JpZC5fdG90YWxSZWNvcmRzID49IDAgPyB0aGlzLmdyaWQuX3RvdGFsUmVjb3JkcyA6IGNvbGxlY3Rpb24ubGVuZ3RoO1xuICAgICAgICBjb25zdCB0b3RhbFBhZ2VzID0gTWF0aC5jZWlsKGxlbiAvIHBlclBhZ2UpO1xuXG4gICAgICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgICAgICAgaW5kZXg6ICh0b3RhbFBhZ2VzID4gMCAmJiBwYWdlID49IHRvdGFsUGFnZXMpID8gdG90YWxQYWdlcyAtIDEgOiBwYWdlLFxuICAgICAgICAgICAgcmVjb3Jkc1BlclBhZ2U6IHBlclBhZ2VcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQ6IElUcmVlR3JpZFJlY29yZFtdID0gRGF0YVV0aWwucGFnZShjbG9uZUFycmF5KGNvbGxlY3Rpb24pLCBzdGF0ZSwgbGVuKTtcbiAgICAgICAgdGhpcy5ncmlkLnBhZ2luZ1N0YXRlID0gc3RhdGU7XG4gICAgICAgIHRoaXMuZ3JpZC5wYWdpbmF0b3IucGFnZSA9IHN0YXRlLmluZGV4O1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuLyoqIEBoaWRkZW4gKi9cbkBQaXBlKHsgbmFtZTogJ3RyZWVHcmlkVHJhbnNhY3Rpb24nIH0pXG5leHBvcnQgY2xhc3MgSWd4VHJlZUdyaWRUcmFuc2FjdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJR1hfR1JJRF9CQVNFKSBwcml2YXRlIGdyaWQ6IEdyaWRUeXBlKSB7IH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oY29sbGVjdGlvbjogYW55W10sIF86IG51bWJlcik6IGFueVtdIHtcblxuICAgICAgICBpZiAodGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5lbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zdCBhZ2dyZWdhdGVkQ2hhbmdlcyA9IHRoaXMuZ3JpZC50cmFuc2FjdGlvbnMuZ2V0QWdncmVnYXRlZENoYW5nZXModHJ1ZSk7XG4gICAgICAgICAgICBpZiAoYWdncmVnYXRlZENoYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByaW1hcnlLZXkgPSB0aGlzLmdyaWQucHJpbWFyeUtleTtcbiAgICAgICAgICAgICAgICBpZiAoIXByaW1hcnlLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZm9yZWlnbktleSA9IHRoaXMuZ3JpZC5mb3JlaWduS2V5O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkRGF0YUtleSA9IHRoaXMuZ3JpZC5jaGlsZERhdGFLZXk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGREYXRhS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZXJhcmNoaWNhbERhdGFDbG9uZSA9IGNsb25lSGllcmFyY2hpY2FsQXJyYXkoY29sbGVjdGlvbiwgY2hpbGREYXRhS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGFVdGlsLm1lcmdlSGllcmFyY2hpY2FsVHJhbnNhY3Rpb25zKFxuICAgICAgICAgICAgICAgICAgICAgICAgaGllcmFyY2hpY2FsRGF0YUNsb25lLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlZENoYW5nZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZERhdGFLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQucHJpbWFyeUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5kYXRhQ2xvbmVTdHJhdGVneVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsYXREYXRhQ2xvbmUgPSBjbG9uZUFycmF5KGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGF0YVV0aWwubWVyZ2VUcmFuc2FjdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGF0RGF0YUNsb25lLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlZENoYW5nZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQucHJpbWFyeUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5kYXRhQ2xvbmVTdHJhdGVneSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGlzIHBpcGUgbWFwcyB0aGUgb3JpZ2luYWwgcmVjb3JkIHRvIElUcmVlR3JpZFJlY29yZCBmb3JtYXQgdXNlZCBpbiBUcmVlR3JpZC5cbiAqL1xuQFBpcGUoeyBuYW1lOiAndHJlZUdyaWROb3JtYWxpemVSZWNvcmQnIH0pXG5leHBvcnQgY2xhc3MgSWd4VHJlZUdyaWROb3JtYWxpemVSZWNvcmRzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJR1hfR1JJRF9CQVNFKSBwcml2YXRlIGdyaWQ6IEdyaWRUeXBlKSB7IH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oXzogYW55W10sIF9fOiBudW1iZXIpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHByaW1hcnlLZXkgPSB0aGlzLmdyaWQucHJpbWFyeUtleTtcbiAgICAgICAgLy8gdXNpbmcgZmxhdHRlbmVkIGRhdGEgYmVjYXVzZSBvcmlnaW4gZGF0YSBtYXkgYmUgaGllcmFyY2hpY2FsLlxuICAgICAgICBjb25zdCBmbGF0RGF0YSA9IHRoaXMuZ3JpZC5mbGF0RGF0YTtcbiAgICAgICAgY29uc3QgcmVzID0gZmxhdERhdGEgPyBmbGF0RGF0YS5tYXAocmVjID0+XG4gICAgICAgICh7XG4gICAgICAgICAgICByb3dJRDogdGhpcy5ncmlkLnByaW1hcnlLZXkgPyByZWNbcHJpbWFyeUtleV0gOiByZWMsXG4gICAgICAgICAgICBkYXRhOiByZWMsXG4gICAgICAgICAgICBsZXZlbDogMCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXVxuICAgICAgICB9KSkgOiBbXTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG59XG5cbkBQaXBlKHsgbmFtZTogJ3RyZWVHcmlkQWRkUm93JyB9KVxuZXhwb3J0IGNsYXNzIElneFRyZWVHcmlkQWRkUm93UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJR1hfR1JJRF9CQVNFKSBwcml2YXRlIGdyaWQ6IEdyaWRUeXBlKSB7IH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oY29sbGVjdGlvbjogYW55LCBpc1Bpbm5lZCA9IGZhbHNlLCBfcGlwZVRyaWdnZXI6IG51bWJlcikge1xuICAgICAgICBpZiAoIXRoaXMuZ3JpZC5yb3dFZGl0YWJsZSB8fCAhdGhpcy5ncmlkLmNydWRTZXJ2aWNlLnJvdyB8fCB0aGlzLmdyaWQuY3J1ZFNlcnZpY2Uucm93LmdldENsYXNzTmFtZSgpICE9PSBJZ3hBZGRSb3cubmFtZSB8fFxuICAgICAgICAgICAgIXRoaXMuZ3JpZC5ncmlkQVBJLmNydWRTZXJ2aWNlLmFkZFJvd1BhcmVudCB8fCBpc1Bpbm5lZCAhPT0gdGhpcy5ncmlkLmdyaWRBUEkuY3J1ZFNlcnZpY2UuYWRkUm93UGFyZW50LmlzUGlubmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb3B5ID0gY29sbGVjdGlvbi5zbGljZSgwKTtcbiAgICAgICAgY29uc3QgcmVjID0gKHRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3cgYXMgSWd4QWRkUm93KS5yZWNvcmRSZWY7XG4gICAgICAgIGlmICh0aGlzLmdyaWQuY3J1ZFNlcnZpY2UuYWRkUm93UGFyZW50LmlzUGlubmVkKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRSb3dJbmRleCA9IGNvcHkuZmluZEluZGV4KHJlY29yZCA9PiByZWNvcmQucm93SUQgPT09IHRoaXMuZ3JpZC5jcnVkU2VydmljZS5hZGRSb3dQYXJlbnQucm93SUQpO1xuICAgICAgICAgICAgY29weS5zcGxpY2UocGFyZW50Um93SW5kZXggKyAxLCAwLCByZWMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29weS5zcGxpY2UodGhpcy5ncmlkLmNydWRTZXJ2aWNlLnJvdy5pbmRleCwgMCwgcmVjKTsgICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyaWQucmVjb3Jkcy5zZXQocmVjLmtleSwgcmVjKTtcbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxufVxuIl19
|
|
@@ -78604,12 +78604,12 @@ class IgxTreeGridNormalizeRecordsPipe {
|
|
|
78604
78604
|
const primaryKey = this.grid.primaryKey;
|
|
78605
78605
|
// using flattened data because origin data may be hierarchical.
|
|
78606
78606
|
const flatData = this.grid.flatData;
|
|
78607
|
-
const res = flatData.map(rec => ({
|
|
78607
|
+
const res = flatData ? flatData.map(rec => ({
|
|
78608
78608
|
rowID: this.grid.primaryKey ? rec[primaryKey] : rec,
|
|
78609
78609
|
data: rec,
|
|
78610
78610
|
level: 0,
|
|
78611
78611
|
children: []
|
|
78612
|
-
}));
|
|
78612
|
+
})) : [];
|
|
78613
78613
|
return res;
|
|
78614
78614
|
}
|
|
78615
78615
|
}
|