verben-ng-ui 0.4.1 → 0.4.3
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.
|
@@ -117,7 +117,7 @@ export class DataTableComponent {
|
|
|
117
117
|
const newSet = new Set(set);
|
|
118
118
|
if (newSet.has(rowId)) {
|
|
119
119
|
newSet.delete(rowId);
|
|
120
|
-
this.saveRow(rowId);
|
|
120
|
+
// this.saveRow(rowId);
|
|
121
121
|
}
|
|
122
122
|
else {
|
|
123
123
|
newSet.add(rowId);
|
|
@@ -421,4 +421,4 @@ const defaultTableStyles = {
|
|
|
421
421
|
borderTop: '2px solid #e0e0e0',
|
|
422
422
|
},
|
|
423
423
|
};
|
|
424
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFHTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFTckQsTUFBTSxPQUFPLGtCQUFrQjtJQUc3Qix3Q0FBd0M7SUFDeEMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUM3QixPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBeUIsQ0FBQztJQUNsRCw2QkFBNkI7SUFDN0IseUJBQXlCO0lBQ3pCLHdCQUF3QjtJQUN4QixJQUFJO0lBQ0osb0JBQW9CO0lBQ3BCLCtCQUErQjtJQUMvQixJQUFJO0lBQ0osMkJBQTJCO0lBQzNCLHVDQUF1QztJQUN2Qyw2QkFBNkI7SUFDN0IsOENBQThDO0lBQzlDLG1DQUFtQztJQUNuQyxJQUFJO0lBQ0osMEJBQTBCO0lBQzFCLE9BQU8sR0FBRyxLQUFLLEVBQStCLENBQUM7SUFFdEMsV0FBVyxHQUFnQixrQkFBa0IsQ0FBQztJQUd2RCxlQUFlLENBQThCO0lBRW5DLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBQ2hDLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBQ2hDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBQ2xDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRTVDLGlCQUFpQixHQUFHLE1BQU0sQ0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzVELGtCQUFrQixHQUFHLE1BQU0sQ0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzdELGdCQUFnQixHQUFHLE1BQU0sQ0FDL0IsSUFBSSxHQUFHLEVBQUUsQ0FDVixDQUFDO0lBRUYsYUFBYSxHQUEwQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFbEUsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FDckUsQ0FBQztJQUVGLDRDQUE0QztJQUM1QyxVQUFVLENBQUMsR0FBTTtRQUNmLE9BQU8sQ0FBQyxDQUFFLEdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDbkMsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMxQixvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4QywrQ0FBK0M7UUFDL0MsTUFBTSxhQUFhLEdBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFVBQVU7WUFDbEMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLEVBQXNCO1lBQ3JDLENBQUMsQ0FBQyxDQUFDLEdBQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQWEsQ0FBQyxDQUFDO1FBRWpELGlCQUFpQjtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBWSxDQUFDO1FBRW5DLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxQixJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILHFEQUFxRDtRQUNyRCxNQUFNLGdCQUFnQixHQUFxQyxFQUFFLENBQUM7UUFFOUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRTtZQUN2QyxxQkFBcUI7WUFDckIsTUFBTSxRQUFRLEdBQUc7Z0JBQ2YsRUFBRSxFQUFFLFNBQVMsVUFBVSxFQUFFO2dCQUN6QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFBVTtnQkFDVixVQUFVLEVBQUUsVUFBVTthQUNtQixDQUFDO1lBRTVDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRO1FBQ04seUNBQXlDO1FBQ3pDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLG1EQUFtRDtRQUNuRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN6RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUNoRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUNoQyxDQUFDO2dCQUNGLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztvQkFDckIsT0FBTzt3QkFDTCxHQUFHLE1BQU07d0JBQ1QsWUFBWSxFQUFFLGdCQUFnQixDQUFDLFlBQVk7d0JBQzNDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLGdCQUFnQjt3QkFDbkQsY0FBYyxFQUFFLGdCQUFnQixDQUFDLGNBQWM7d0JBQy9DLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxjQUFjO3FCQUNoRCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksR0FBRyxDQUFDLEdBQU0sRUFBRSxNQUEyQixFQUFPLEVBQUU7UUFDMUQsc0RBQXNEO1FBQ3RELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQVEsR0FBVyxDQUFDLFVBQVUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsaUNBQWlDO1FBQ2pDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZCLE9BQVEsR0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUYsWUFBWSxHQUFHLENBQUMsS0FBc0IsRUFBVyxFQUFFO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQztJQUVGLGFBQWEsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtRQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxLQUFzQjtRQUNqRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFzQjtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN0RSxJQUFJLGdCQUFnQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sVUFBVSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO2dCQUN2RSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxVQUFVLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyQixPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhLEdBQUcsQ0FBQyxLQUFzQixFQUFXLEVBQUU7UUFDbEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDO0lBRUYsa0JBQWtCLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUU7UUFDOUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLGVBQWUsR0FBRyxHQUFZLEVBQUU7UUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEUsT0FBTyxDQUNMLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUN2QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FDdkQsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLGdCQUFnQixHQUFHLEdBQVksRUFBRTtRQUMvQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RSxPQUFPLENBQ0wsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQ3JELENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixhQUFhLEdBQUcsR0FBRyxFQUFFO1FBQ25CLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUMsQ0FBQztJQUVNLG1CQUFtQjtRQUN6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDOUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDdEMsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUEyQjtRQUMxQyxPQUFPO1lBQ0wsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTTtZQUNOLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ3ZDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtTQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQXNCLEVBQUUsUUFBaUIsRUFBRSxLQUFVO1FBQ3JFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFLLEVBQW9CLENBQUM7WUFDM0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDckQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQ2pCLEtBQXNCLEVBQ3RCLE9BQTBCLEVBQzFCLEtBQVU7UUFFVixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSyxFQUFvQixDQUFDO1lBQzNELE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQXNCLEVBQUUsSUFBZ0I7UUFDdkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUssRUFBb0IsQ0FBQztZQUMzRCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMzQyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx1QkFBdUIsQ0FDckIsS0FBc0IsRUFDdEIsUUFBaUIsRUFDakIsV0FBbUIsRUFDbkIsS0FBVTtRQUVWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFLLEVBQW9CLENBQUM7WUFDM0QsTUFBTSxVQUFVLEdBQUksT0FBTyxDQUFDLFFBQVEsQ0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDaEIsR0FBRyxPQUFPO2dCQUNWLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ1YsR0FBRyxVQUFVO29CQUNiLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSztpQkFDckI7YUFDRixDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBTSxFQUFFLE1BQTJCLEVBQUUsUUFBZ0I7UUFDbEUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxJQUFJLEtBQVUsQ0FBQztRQUNmLElBQUksU0FBUyxJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUMsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3ZELEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxPQUFPO1lBQ0wsU0FBUyxFQUFFLEtBQUs7WUFDaEIsS0FBSztZQUNMLEdBQUc7WUFDSCxNQUFNO1lBQ04sUUFBUTtZQUNSLFNBQVM7WUFDVCxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDckMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztZQUN4RCxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDOUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQWEsRUFBRSxRQUFRLENBQUM7WUFDL0QsaUJBQWlCLEVBQUUsQ0FBQyxXQUFtQixFQUFFLFFBQWEsRUFBRSxFQUFFLENBQ3hELElBQUksQ0FBQyx1QkFBdUIsQ0FDMUIsS0FBSyxFQUNMLE1BQU0sQ0FBQyxFQUFhLEVBQ3BCLFdBQVcsRUFDWCxRQUFRLENBQ1Q7WUFFSCxhQUFhLEVBQUUsQ0FBQyxPQUEwQixFQUFFLFFBQWEsRUFBRSxFQUFFLENBQzNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztZQUNwRCxVQUFVLEVBQUUsQ0FBQyxPQUFtQixFQUFFLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7U0FDeEMsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUU7UUFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUNoRSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixnQkFBZ0IsQ0FBQyxNQUEyQjtRQUMxQyxPQUFPO1lBQ0wsU0FBUyxFQUFFLE1BQU07WUFDakIsTUFBTTtZQUNOLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsV0FBVztZQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVTtZQUN2QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO1lBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07WUFDL0IsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYztZQUMvQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhO1lBQzdDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVc7WUFDekMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSztTQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ2xFLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUN0RCxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLE1BQU07U0FDbEQsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNO1lBQzFCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUTtZQUNyRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU07WUFDNUQsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxNQUFNO1NBQ2xELENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ3hDLElBQUksU0FBUyxJQUFJLE1BQU0sSUFBSSxTQUFTLElBQUksS0FBSyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzNELE9BQU8sUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDN0QsQ0FBQzthQUFNLElBQUksU0FBUyxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzVELE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUMxQyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0QsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtRQUM3QyxNQUFNLGFBQWEsR0FBRyxRQUFRLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sWUFBWSxHQUFHLFFBQVEsS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVsRSxJQUFJLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUU5QyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLFNBQVMsR0FBRztnQkFDVixHQUFHLFNBQVM7Z0JBQ1osR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVc7Z0JBQy9CLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxVQUFVO29CQUNoRCxDQUFDLENBQUMsUUFBUTtvQkFDVixDQUFDLENBQUMsUUFBUTtnQkFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU07Z0JBQzdELE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksTUFBTTthQUN2RCxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksWUFBWSxFQUFFLENBQUM7WUFDeEIsU0FBUyxHQUFHO2dCQUNWLEdBQUcsU0FBUztnQkFDWixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVTtnQkFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFdBQVc7b0JBQ2hELENBQUMsQ0FBQyxRQUFRO29CQUNWLENBQUMsQ0FBQyxRQUFRO2dCQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTTtnQkFDOUQsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxNQUFNO2FBQ3RELENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEIsaUNBQWlDO1lBQ2pDLFNBQVMsR0FBRyxFQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6RCxDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzt1R0EvYVUsa0JBQWtCOzJGQUFsQixrQkFBa0IsNnNCQXdCWixlQUFlLDZCQ2xEbEMsMm1FQW1FQTs7MkZEekNhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTs4QkF3QnRDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR04sZUFBZTtzQkFEZCxlQUFlO3VCQUFDLGVBQWU7Z0JBR3RCLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07O0FBd1pULGlCQUFpQjtBQUNqQixNQUFNLGtCQUFrQixHQUFnQjtJQUN0QyxNQUFNLEVBQUUsbUJBQW1CO0lBQzNCLFlBQVksRUFBRSxLQUFLO0lBQ25CLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFNBQVMsRUFBRSwyQkFBMkI7SUFDdEMsS0FBSyxFQUFFLE1BQU07SUFDYixNQUFNLEVBQUU7UUFDTixlQUFlLEVBQUUsU0FBUztRQUMxQixVQUFVLEVBQUUsTUFBTTtRQUNsQixLQUFLLEVBQUUsTUFBTTtRQUNiLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLFlBQVksRUFBRSxtQkFBbUI7S0FDbEM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixlQUFlLEVBQUUsU0FBUztTQUMzQjtRQUNELEdBQUcsRUFBRTtZQUNILGVBQWUsRUFBRSxTQUFTO1NBQzNCO1FBQ0QsR0FBRyxFQUFFO1lBQ0gsUUFBUSxFQUFFLENBQUM7WUFDWCxLQUFLLEVBQUU7Z0JBQ0wsZUFBZSxFQUFFLFNBQVM7YUFDM0I7U0FDRjtLQUNGO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsT0FBTyxFQUFFLFdBQVc7UUFDcEIsWUFBWSxFQUFFLG1CQUFtQjtLQUNsQztJQUNELE1BQU0sRUFBRTtRQUNOLGVBQWUsRUFBRSxTQUFTO1FBQzFCLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLEtBQUssRUFBRSxNQUFNO1FBQ2IsU0FBUyxFQUFFLE1BQU07UUFDakIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsU0FBUyxFQUFFLG1CQUFtQjtLQUMvQjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2lnbmFsLFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbHVtbkRlZmluaXRpb24gfSBmcm9tICcuL2RhdGEtdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhc2VTdHlsZXMsIFRhYmxlU3R5bGVzIH0gZnJvbSAnLi9zdHlsZS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1kYXRhLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudDxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIHwgbnVtYmVyIH0+XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0XG57XG4gIC8vIE1vZGlmeSBkYXRhIGlucHV0IHRvIHVzZSBncm91cGVkIGRhdGFcbiAgZGF0YSA9IGlucHV0LnJlcXVpcmVkPFRbXT4oKTtcbiAgY29sdW1ucyA9IGlucHV0LnJlcXVpcmVkPENvbHVtbkRlZmluaXRpb248VD5bXT4oKTtcbiAgLy8gQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgLy8gc2V0IGRhdGEodmFsdWU6IFRbXSkge1xuICAvLyAgIHRoaXMuX2RhdGEgPSB2YWx1ZTtcbiAgLy8gfVxuICAvLyBnZXQgZGF0YSgpOiBUW10ge1xuICAvLyAgIHJldHVybiB0aGlzLmdyb3VwZWREYXRhKCk7XG4gIC8vIH1cbiAgLy8gcHJpdmF0ZSBfZGF0YTogVFtdID0gW107XG4gIC8vIE1vZGlmeSBjb2x1bW5zIGlucHV0IHRvIHVzZSBhIHNpZ25hbFxuICAvLyBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAvLyBzZXQgY29sdW1ucyh2YWx1ZTogQ29sdW1uRGVmaW5pdGlvbjxUPltdKSB7XG4gIC8vICAgdGhpcy5jb2x1bW5zU2lnbmFsLnNldCh2YWx1ZSk7XG4gIC8vIH1cbiAgLy8gTmV3IGlucHV0cyBmb3IgZ3JvdXBpbmdcbiAgZ3JvdXBCeSA9IGlucHV0PGtleW9mIFQgfCAoKHJvdzogVCkgPT4gYW55KT4oKTtcblxuICBASW5wdXQoKSBzdHlsZUNvbmZpZzogVGFibGVTdHlsZXMgPSBkZWZhdWx0VGFibGVTdHlsZXM7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDb2x1bW5EaXJlY3RpdmUpXG4gIGNvbHVtblRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxDb2x1bW5EaXJlY3RpdmU+O1xuXG4gIEBPdXRwdXQoKSByb3dFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgcm93U2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIHJvd0RlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gIHByaXZhdGUgZWRpdGluZ1Jvd3NTaWduYWwgPSBzaWduYWw8U2V0PHN0cmluZyB8IG51bWJlcj4+KG5ldyBTZXQoKSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRSb3dzU2lnbmFsID0gc2lnbmFsPFNldDxzdHJpbmcgfCBudW1iZXI+PihuZXcgU2V0KCkpO1xuICBwcml2YXRlIGVkaXRlZERhdGFTaWduYWwgPSBzaWduYWw8TWFwPHN0cmluZyB8IG51bWJlciwgRWRpdGVkRGF0YTxUPj4+KFxuICAgIG5ldyBNYXAoKVxuICApO1xuXG4gIGNvbHVtbnNTaWduYWw6IFdyaXRhYmxlU2lnbmFsPENvbHVtbkRlZmluaXRpb248VD5bXT4gPSBzaWduYWwoW10pO1xuXG4gIGhhc0Zvb3RlciA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5jb2x1bW5zU2lnbmFsKCkuc29tZSgoY29sKSA9PiBjb2wuZm9vdGVyVGVtcGxhdGUgIT09IHVuZGVmaW5lZClcbiAgKTtcblxuICAvLyBUeXBlIGd1YXJkIG1ldGhvZCB0byBjaGVjayBmb3IgZ3JvdXAgcm93c1xuICBpc0dyb3VwUm93KHJvdzogVCk6IHJvdyBpcyBUICYgeyBpc0dyb3VwUm93OiB0cnVlOyBncm91cFRpdGxlOiBhbnkgfSB7XG4gICAgcmV0dXJuICEhKHJvdyBhcyBhbnkpLmlzR3JvdXBSb3c7XG4gIH1cblxuICAvLyBDb21wdXRlZCBwcm9wZXJ0eSBmb3IgZ3JvdXBlZCBkYXRhXG4gIGdyb3VwZWREYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIC8vIElmIG5vIGdyb3VwaW5nIGlzIHNwZWNpZmllZCwgcmV0dXJuIG9yaWdpbmFsIGRhdGFcbiAgICBpZiAoIXRoaXMuZ3JvdXBCeSgpKSByZXR1cm4gdGhpcy5kYXRhKCk7XG5cbiAgICAvLyBEZXRlcm1pbmUgZ3JvdXAgZnVuY3Rpb24gYmFzZWQgb24gaW5wdXQgdHlwZVxuICAgIGNvbnN0IGdldEdyb3VwVmFsdWUgPVxuICAgICAgdHlwZW9mIHRoaXMuZ3JvdXBCeSgpID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gKHRoaXMuZ3JvdXBCeSgpIGFzIChyb3c6IFQpID0+IGFueSlcbiAgICAgICAgOiAocm93OiBUKSA9PiByb3dbdGhpcy5ncm91cEJ5KCkgYXMga2V5b2YgVF07XG5cbiAgICAvLyBHcm91cCB0aGUgZGF0YVxuICAgIGNvbnN0IGdyb3VwcyA9IG5ldyBNYXA8YW55LCBUW10+KCk7XG5cbiAgICB0aGlzLmRhdGEoKS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgIGlmIChnZXRHcm91cFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgZ3JvdXBWYWx1ZSA9IGdldEdyb3VwVmFsdWUocm93KTtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdHcm91cCA9IGdyb3Vwcy5nZXQoZ3JvdXBWYWx1ZSkgfHwgW107XG4gICAgICAgIGdyb3Vwcy5zZXQoZ3JvdXBWYWx1ZSwgWy4uLmV4aXN0aW5nR3JvdXAsIHJvd10pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gQ29uc3RydWN0IGZpbmFsIGdyb3VwZWQgZGF0YSBhcnJheSB3aXRoIGdyb3VwIHJvd3NcbiAgICBjb25zdCBncm91cGVkRGF0YUFycmF5OiAoVCAmIHsgaXNHcm91cFJvdz86IGJvb2xlYW4gfSlbXSA9IFtdO1xuXG4gICAgZ3JvdXBzLmZvckVhY2goKGdyb3VwUm93cywgZ3JvdXBWYWx1ZSkgPT4ge1xuICAgICAgLy8gQ3JlYXRlIGEgZ3JvdXAgcm93XG4gICAgICBjb25zdCBncm91cFJvdyA9IHtcbiAgICAgICAgaWQ6IGBncm91cC0ke2dyb3VwVmFsdWV9YCxcbiAgICAgICAgaXNHcm91cFJvdzogdHJ1ZSxcbiAgICAgICAgZ3JvdXBWYWx1ZSxcbiAgICAgICAgZ3JvdXBUaXRsZTogZ3JvdXBWYWx1ZSxcbiAgICAgIH0gYXMgdW5rbm93biBhcyBUICYgeyBpc0dyb3VwUm93OiBib29sZWFuIH07XG5cbiAgICAgIGdyb3VwZWREYXRhQXJyYXkucHVzaChncm91cFJvdyk7XG4gICAgICBncm91cGVkRGF0YUFycmF5LnB1c2goLi4uZ3JvdXBSb3dzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBncm91cGVkRGF0YUFycmF5O1xuICB9KTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBTZXQgaW5pdGlhbCBjb2x1bW5zIGlmIG5vdCBhbHJlYWR5IHNldFxuICAgIGlmICh0aGlzLmNvbHVtbnNTaWduYWwoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY29sdW1uc1NpZ25hbC5zZXQodGhpcy5jb2x1bW5zKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmNvbHVtblRlbXBsYXRlcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLm1lcmdlQ29sdW1uVGVtcGxhdGVzKCkpO1xuICAgIHRoaXMubWVyZ2VDb2x1bW5UZW1wbGF0ZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VDb2x1bW5UZW1wbGF0ZXMoKSB7XG4gICAgLy8gT25seSBtZXJnZSBpZiB3ZSBoYXZlIGJvdGggY29sdW1ucyBhbmQgdGVtcGxhdGVzXG4gICAgaWYgKHRoaXMuY29sdW1uc1NpZ25hbCgpLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWRDb2x1bW5zID0gdGhpcy5jb2x1bW5zU2lnbmFsKCkubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdUZW1wbGF0ZSA9IHRoaXMuY29sdW1uVGVtcGxhdGVzLmZpbmQoXG4gICAgICAgICAgKHQpID0+IHQuY29sdW1uSWQgPT09IGNvbHVtbi5pZFxuICAgICAgICApO1xuICAgICAgICBpZiAobWF0Y2hpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgICBjZWxsVGVtcGxhdGU6IG1hdGNoaW5nVGVtcGxhdGUuY2VsbFRlbXBsYXRlLFxuICAgICAgICAgICAgY2VsbEVkaXRUZW1wbGF0ZTogbWF0Y2hpbmdUZW1wbGF0ZS5jZWxsRWRpdFRlbXBsYXRlLFxuICAgICAgICAgICAgaGVhZGVyVGVtcGxhdGU6IG1hdGNoaW5nVGVtcGxhdGUuaGVhZGVyVGVtcGxhdGUsXG4gICAgICAgICAgICBmb290ZXJUZW1wbGF0ZTogbWF0Y2hpbmdUZW1wbGF0ZS5mb290ZXJUZW1wbGF0ZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29sdW1uc1NpZ25hbC5zZXQodXBkYXRlZENvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIGdldENlbGxWYWx1ZSA9IChyb3c6IFQsIGNvbHVtbjogQ29sdW1uRGVmaW5pdGlvbjxUPik6IGFueSA9PiB7XG4gICAgLy8gRm9yIGdyb3VwIHJvd3MsIHJldHVybiB0aGUgZ3JvdXAgdGl0bGUgaWYgaXQgZXhpc3RzXG4gICAgaWYgKHRoaXMuaXNHcm91cFJvdyhyb3cpKSB7XG4gICAgICByZXR1cm4gKHJvdyBhcyBhbnkpLmdyb3VwVGl0bGU7XG4gICAgfVxuXG4gICAgLy8gRXhpc3RpbmcgbG9naWMgZm9yIG5vcm1hbCByb3dzXG4gICAgaWYgKGNvbHVtbi5hY2Nlc3NvcktleSkge1xuICAgICAgcmV0dXJuIChyb3cgYXMgYW55KVtjb2x1bW4uYWNjZXNzb3JLZXldO1xuICAgIH1cbiAgICByZXR1cm4gY29sdW1uLmFjY2Vzc29yRm4gPyBjb2x1bW4uYWNjZXNzb3JGbihyb3cpIDogdW5kZWZpbmVkO1xuICB9O1xuXG4gIGlzUm93RWRpdGluZyA9IChyb3dJZDogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdGluZ1Jvd3NTaWduYWwoKS5oYXMocm93SWQpO1xuICB9O1xuXG4gIHRvZ2dsZVJvd0VkaXQgPSAocm93SWQ6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgIHRoaXMuZWRpdGluZ1Jvd3NTaWduYWwudXBkYXRlKChzZXQpID0+IHtcbiAgICAgIGNvbnN0IG5ld1NldCA9IG5ldyBTZXQoc2V0KTtcbiAgICAgIGlmIChuZXdTZXQuaGFzKHJvd0lkKSkge1xuICAgICAgICBuZXdTZXQuZGVsZXRlKHJvd0lkKTtcbiAgICAgICAgdGhpcy5zYXZlUm93KHJvd0lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NldC5hZGQocm93SWQpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVFZGl0ZWREYXRhKHJvd0lkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdTZXQ7XG4gICAgfSk7XG4gIH07XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRWRpdGVkRGF0YShyb3dJZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5kYXRhKCkuZmluZCgocikgPT4gci5pZCA9PT0gcm93SWQpO1xuICAgIGlmIChyb3cpIHtcbiAgICAgIHRoaXMuZWRpdGVkRGF0YVNpZ25hbC51cGRhdGUoKG1hcCkgPT4ge1xuICAgICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG1hcCk7XG4gICAgICAgIG5ld01hcC5zZXQocm93SWQsIHsgLi4ucm93IH0pO1xuICAgICAgICByZXR1cm4gbmV3TWFwO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzYXZlUm93KHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBjb25zdCBlZGl0ZWREYXRhID0gdGhpcy5lZGl0ZWREYXRhU2lnbmFsKCkuZ2V0KHJvd0lkKTtcbiAgICBpZiAoZWRpdGVkRGF0YSkge1xuICAgICAgY29uc3Qgb3JpZ2luYWxSb3dJbmRleCA9IHRoaXMuZGF0YSgpLmZpbmRJbmRleCgocikgPT4gci5pZCA9PT0gcm93SWQpO1xuICAgICAgaWYgKG9yaWdpbmFsUm93SW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRSb3cgPSB7IC4uLnRoaXMuZGF0YSgpW29yaWdpbmFsUm93SW5kZXhdLCAuLi5lZGl0ZWREYXRhIH07XG4gICAgICAgIHRoaXMuZGF0YSgpW29yaWdpbmFsUm93SW5kZXhdID0gdXBkYXRlZFJvdztcbiAgICAgICAgdGhpcy5yb3dTYXZlLmVtaXQodXBkYXRlZFJvdyk7XG4gICAgICAgIHRoaXMuZWRpdGVkRGF0YVNpZ25hbC51cGRhdGUoKG1hcCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICAgICAgICBuZXdNYXAuZGVsZXRlKHJvd0lkKTtcbiAgICAgICAgICByZXR1cm4gbmV3TWFwO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpc1Jvd1NlbGVjdGVkID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5oYXMocm93SWQpO1xuICB9O1xuXG4gIHRvZ2dsZVJvd1NlbGVjdGlvbiA9IChyb3dJZDogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwudXBkYXRlKChzZXQpID0+IHtcbiAgICAgIGNvbnN0IG5ld1NldCA9IG5ldyBTZXQoc2V0KTtcbiAgICAgIGlmIChuZXdTZXQuaGFzKHJvd0lkKSkge1xuICAgICAgICBuZXdTZXQuZGVsZXRlKHJvd0lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NldC5hZGQocm93SWQpO1xuICAgICAgfVxuICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCk7XG4gICAgICByZXR1cm4gbmV3U2V0O1xuICAgIH0pO1xuICB9O1xuXG4gIGFsbFJvd3NTZWxlY3RlZCA9ICgpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBub25Hcm91cFJvd3MgPSB0aGlzLmRhdGEoKS5maWx0ZXIoKHJvdykgPT4gIXRoaXMuaXNHcm91cFJvdyhyb3cpKTtcbiAgICByZXR1cm4gKFxuICAgICAgbm9uR3JvdXBSb3dzLmxlbmd0aCA+IDAgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzU2lnbmFsKCkuc2l6ZSA9PT0gbm9uR3JvdXBSb3dzLmxlbmd0aFxuICAgICk7XG4gIH07XG5cbiAgc29tZVJvd3NTZWxlY3RlZCA9ICgpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBub25Hcm91cFJvd3MgPSB0aGlzLmRhdGEoKS5maWx0ZXIoKHJvdykgPT4gIXRoaXMuaXNHcm91cFJvdyhyb3cpKTtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5zaXplID4gMCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5zaXplIDwgbm9uR3JvdXBSb3dzLmxlbmd0aFxuICAgICk7XG4gIH07XG5cbiAgdG9nZ2xlQWxsUm93cyA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5hbGxSb3dzU2VsZWN0ZWQoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwuc2V0KG5ldyBTZXQoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vbkdyb3VwUm93cyA9IHRoaXMuZGF0YSgpLmZpbHRlcigocm93KSA9PiAhdGhpcy5pc0dyb3VwUm93KHJvdykpO1xuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwuc2V0KG5ldyBTZXQobm9uR3JvdXBSb3dzLm1hcCgocm93KSA9PiByb3cuaWQpKSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZSgpO1xuICB9O1xuXG4gIHByaXZhdGUgZW1pdFNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3MgPSB0aGlzLmRhdGEoKS5maWx0ZXIoKHJvdykgPT5cbiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzU2lnbmFsKCkuaGFzKHJvdy5pZClcbiAgICApO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoc2VsZWN0ZWRSb3dzKTtcbiAgfVxuXG4gIGdldEhlYWRlckNvbnRleHQoY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uPFQ+KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogY29sdW1uLFxuICAgICAgY29sdW1uLFxuICAgICAgYWxsUm93c1NlbGVjdGVkOiB0aGlzLmFsbFJvd3NTZWxlY3RlZCxcbiAgICAgIHNvbWVSb3dzU2VsZWN0ZWQ6IHRoaXMuc29tZVJvd3NTZWxlY3RlZCxcbiAgICAgIHRvZ2dsZUFsbFJvd3M6IHRoaXMudG9nZ2xlQWxsUm93cyxcbiAgICB9O1xuICB9XG5cbiAgdXBkYXRlRWRpdGVkVmFsdWUocm93SWQ6IHN0cmluZyB8IG51bWJlciwgY29sdW1uSWQ6IGtleW9mIFQsIHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVkaXRlZERhdGFTaWduYWwudXBkYXRlKChtYXApID0+IHtcbiAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBuZXdNYXAuZ2V0KHJvd0lkKSB8fCAoe30gYXMgRWRpdGVkRGF0YTxUPik7XG4gICAgICBuZXdNYXAuc2V0KHJvd0lkLCB7IC4uLnJvd0RhdGEsIFtjb2x1bW5JZF06IHZhbHVlIH0pO1xuICAgICAgcmV0dXJuIG5ld01hcDtcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUVkaXRlZFZhbHVlRm4oXG4gICAgcm93SWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICB2YWx1ZUZuOiAodmFsdWU6IGFueSkgPT4gVCxcbiAgICB2YWx1ZTogYW55XG4gICkge1xuICAgIHRoaXMuZWRpdGVkRGF0YVNpZ25hbC51cGRhdGUoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChtYXApO1xuICAgICAgY29uc3Qgcm93RGF0YSA9IG5ld01hcC5nZXQocm93SWQpIHx8ICh7fSBhcyBFZGl0ZWREYXRhPFQ+KTtcbiAgICAgIG5ld01hcC5zZXQocm93SWQsIHsgLi4ucm93RGF0YSwgLi4udmFsdWVGbih2YWx1ZSkgfSk7XG4gICAgICByZXR1cm4gbmV3TWFwO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRWRpdGVkRGF0YShyb3dJZDogc3RyaW5nIHwgbnVtYmVyLCBkYXRhOiBQYXJ0aWFsPFQ+KSB7XG4gICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG1hcCk7XG4gICAgICBjb25zdCByb3dEYXRhID0gbmV3TWFwLmdldChyb3dJZCkgfHwgKHt9IGFzIEVkaXRlZERhdGE8VD4pO1xuICAgICAgbmV3TWFwLnNldChyb3dJZCwgeyAuLi5yb3dEYXRhLCAuLi5kYXRhIH0pO1xuICAgICAgcmV0dXJuIG5ld01hcDtcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZU5lc3RlZEVkaXRlZFZhbHVlKFxuICAgIHJvd0lkOiBzdHJpbmcgfCBudW1iZXIsXG4gICAgY29sdW1uSWQ6IGtleW9mIFQsXG4gICAgbmVzdGVkRmllbGQ6IHN0cmluZyxcbiAgICB2YWx1ZTogYW55XG4gICkge1xuICAgIHRoaXMuZWRpdGVkRGF0YVNpZ25hbC51cGRhdGUoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChtYXApO1xuICAgICAgY29uc3Qgcm93RGF0YSA9IG5ld01hcC5nZXQocm93SWQpIHx8ICh7fSBhcyBFZGl0ZWREYXRhPFQ+KTtcbiAgICAgIGNvbnN0IGNvbHVtbkRhdGEgPSAocm93RGF0YVtjb2x1bW5JZF0gYXMgYW55KSB8fCB7fTtcbiAgICAgIG5ld01hcC5zZXQocm93SWQsIHtcbiAgICAgICAgLi4ucm93RGF0YSxcbiAgICAgICAgW2NvbHVtbklkXToge1xuICAgICAgICAgIC4uLmNvbHVtbkRhdGEsXG4gICAgICAgICAgW25lc3RlZEZpZWxkXTogdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgfSk7XG4gIH1cblxuICBnZXRDZWxsQ29udGV4dChyb3c6IFQsIGNvbHVtbjogQ29sdW1uRGVmaW5pdGlvbjxUPiwgcm93SW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHJvd0lkID0gcm93LmlkO1xuICAgIGNvbnN0IGlzRWRpdGluZyA9IHRoaXMuaXNSb3dFZGl0aW5nKHJvd0lkKTtcbiAgICBjb25zdCBlZGl0ZWREYXRhID0gdGhpcy5lZGl0ZWREYXRhU2lnbmFsKCkuZ2V0KHJvd0lkKTtcblxuICAgIGxldCB2YWx1ZTogYW55O1xuICAgIGlmIChpc0VkaXRpbmcgJiYgZWRpdGVkRGF0YSAmJiBjb2x1bW4uaWQgaW4gZWRpdGVkRGF0YSkge1xuICAgICAgdmFsdWUgPSBlZGl0ZWREYXRhW2NvbHVtbi5pZCBhcyBrZXlvZiBUXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSB0aGlzLmdldENlbGxWYWx1ZShyb3csIGNvbHVtbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRpbXBsaWNpdDogdmFsdWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHJvdyxcbiAgICAgIGNvbHVtbixcbiAgICAgIHJvd0luZGV4LFxuICAgICAgaXNFZGl0aW5nLFxuICAgICAgaXNTZWxlY3RlZDogdGhpcy5pc1Jvd1NlbGVjdGVkKHJvd0lkKSxcbiAgICAgIHRvZ2dsZVJvd1NlbGVjdGlvbjogKCkgPT4gdGhpcy50b2dnbGVSb3dTZWxlY3Rpb24ocm93SWQpLFxuICAgICAgdG9nZ2xlUm93RWRpdDogKCkgPT4gdGhpcy50b2dnbGVSb3dFZGl0KHJvd0lkKSxcbiAgICAgIGRlbGV0ZVJvdzogKCkgPT4gdGhpcy5kZWxldGVSb3cocm93SWQpLFxuICAgICAgdXBkYXRlVmFsdWU6IChuZXdWYWx1ZTogYW55KSA9PlxuICAgICAgICB0aGlzLnVwZGF0ZUVkaXRlZFZhbHVlKHJvd0lkLCBjb2x1bW4uaWQgYXMga2V5b2YgVCwgbmV3VmFsdWUpLFxuICAgICAgdXBkYXRlTmVzdGVkVmFsdWU6IChuZXN0ZWRGaWVsZDogc3RyaW5nLCBuZXdWYWx1ZTogYW55KSA9PlxuICAgICAgICB0aGlzLnVwZGF0ZU5lc3RlZEVkaXRlZFZhbHVlKFxuICAgICAgICAgIHJvd0lkLFxuICAgICAgICAgIGNvbHVtbi5pZCBhcyBrZXlvZiBULFxuICAgICAgICAgIG5lc3RlZEZpZWxkLFxuICAgICAgICAgIG5ld1ZhbHVlXG4gICAgICAgICksXG5cbiAgICAgIHVwZGF0ZVZhbHVlRm46ICh2YWx1ZUZuOiAodmFsdWU6IGFueSkgPT4gVCwgbmV3VmFsdWU6IGFueSkgPT5cbiAgICAgICAgdGhpcy51cGRhdGVFZGl0ZWRWYWx1ZUZuKHJvd0lkLCB2YWx1ZUZuLCBuZXdWYWx1ZSksXG4gICAgICB1cGRhdGVEYXRhOiAobmV3RGF0YTogUGFydGlhbDxUPikgPT5cbiAgICAgICAgdGhpcy51cGRhdGVFZGl0ZWREYXRhKHJvd0lkLCBuZXdEYXRhKSxcbiAgICB9O1xuICB9XG5cbiAgZGVsZXRlUm93ID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICBjb25zdCByb3dUb0RlbGV0ZSA9IHRoaXMuZGF0YSgpLmZpbmQoKHJvdykgPT4gcm93LmlkID09PSByb3dJZCk7XG4gICAgaWYgKHJvd1RvRGVsZXRlKSB7XG4gICAgICB0aGlzLnJvd0RlbGV0ZS5lbWl0KHJvd1RvRGVsZXRlKTtcbiAgICB9XG4gIH07XG5cbiAgZ2V0Rm9vdGVyQ29udGV4dChjb2x1bW46IENvbHVtbkRlZmluaXRpb248VD4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICBjb2x1bW4sXG4gICAgICBkYXRhOiB0aGlzLmRhdGEsXG4gICAgfTtcbiAgfVxuXG4gIGdldFRhYmxlU3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5zdHlsZUNvbmZpZyxcbiAgICAgIGZvbnRGYW1pbHk6IHRoaXMuc3R5bGVDb25maWcuZm9udEZhbWlseSxcbiAgICAgIGZvbnRTaXplOiB0aGlzLnN0eWxlQ29uZmlnLmZvbnRTaXplLFxuICAgICAgd2hpdGVTcGFjZTogdGhpcy5zdHlsZUNvbmZpZy53aGl0ZVNwYWNlLFxuICAgICAgbWFyZ2luOiB0aGlzLnN0eWxlQ29uZmlnLm1hcmdpbixcbiAgICAgIGJvcmRlcjogdGhpcy5zdHlsZUNvbmZpZy5ib3JkZXIsXG4gICAgICBib3JkZXJDb2xsYXBzZTogdGhpcy5zdHlsZUNvbmZpZy5ib3JkZXJDb2xsYXBzZSxcbiAgICAgIGJvcmRlclNwYWNpbmc6IHRoaXMuc3R5bGVDb25maWcuYm9yZGVyU3BhY2luZyxcbiAgICAgIHRhYmxlTGF5b3V0OiB0aGlzLnN0eWxlQ29uZmlnLnRhYmxlTGF5b3V0LFxuICAgICAgd2lkdGg6IHRoaXMuc3R5bGVDb25maWcud2lkdGgsXG4gICAgfTtcbiAgfVxuXG4gIGdldEhlYWRlclN0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuc3R5bGVDb25maWcuaGVhZGVyLFxuICAgICAgcG9zaXRpb246IHRoaXMuc3R5bGVDb25maWcuaGVhZGVyPy5zdGlja3lUb3AgPyAnc3RpY2t5JyA6ICdzdGF0aWMnLFxuICAgICAgdG9wOiB0aGlzLnN0eWxlQ29uZmlnLmhlYWRlcj8uc3RpY2t5VG9wID8gJzAnIDogJ2F1dG8nLFxuICAgICAgekluZGV4OiB0aGlzLnN0eWxlQ29uZmlnLmhlYWRlcj8uekluZGV4IHx8ICdhdXRvJyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0Rm9vdGVyU3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5zdHlsZUNvbmZpZy5mb290ZXIsXG4gICAgICBwb3NpdGlvbjogdGhpcy5zdHlsZUNvbmZpZy5mb290ZXI/LnN0aWNreUJvdHRvbSA/ICdzdGlja3knIDogJ3N0YXRpYycsXG4gICAgICBib3R0b206IHRoaXMuc3R5bGVDb25maWcuZm9vdGVyPy5zdGlja3lCb3R0b20gPyAnMCcgOiAnYXV0bycsXG4gICAgICB6SW5kZXg6IHRoaXMuc3R5bGVDb25maWcuZm9vdGVyPy56SW5kZXggfHwgJ2F1dG8nLFxuICAgIH07XG4gIH1cblxuICBnZXRSb3dTdHlsZShyb3dJbmRleDogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCByb3dTdHlsZXMgPSB0aGlzLnN0eWxlQ29uZmlnLnJvd3M7XG4gICAgaWYgKHJvd1N0eWxlcyAmJiAnZXZlbicgaW4gcm93U3R5bGVzICYmICdvZGQnIGluIHJvd1N0eWxlcykge1xuICAgICAgcmV0dXJuIHJvd0luZGV4ICUgMiA9PT0gMCA/IHJvd1N0eWxlcy5ldmVuIDogcm93U3R5bGVzLm9kZDtcbiAgICB9IGVsc2UgaWYgKHJvd1N0eWxlcyAmJiAnbnRoJyBpbiByb3dTdHlsZXMgJiYgcm93U3R5bGVzLm50aCkge1xuICAgICAgY29uc3QgeyBpbnRlcnZhbCwgc3R5bGUgfSA9IHJvd1N0eWxlcy5udGg7XG4gICAgICByZXR1cm4gKHJvd0luZGV4ICsgMSkgJSAoaW50ZXJ2YWwgfHwgMSkgPT09IDAgPyBzdHlsZSA6IHt9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcm93U3R5bGVzIHx8IHt9O1xuICAgIH1cbiAgfVxuXG4gIGdldENlbGxTdHlsZShyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCBpc0ZpcnN0Q29sdW1uID0gY29sSW5kZXggPT09IDA7XG4gICAgY29uc3QgaXNMYXN0Q29sdW1uID0gY29sSW5kZXggPT09IHRoaXMuY29sdW1uc1NpZ25hbCgpLmxlbmd0aCAtIDE7XG5cbiAgICBsZXQgY2VsbFN0eWxlID0geyAuLi50aGlzLnN0eWxlQ29uZmlnLmNlbGxzIH07XG5cbiAgICBpZiAoaXNGaXJzdENvbHVtbikge1xuICAgICAgY2VsbFN0eWxlID0ge1xuICAgICAgICAuLi5jZWxsU3R5bGUsXG4gICAgICAgIC4uLnRoaXMuc3R5bGVDb25maWcuZmlyc3RDb2x1bW4sXG4gICAgICAgIHBvc2l0aW9uOiB0aGlzLnN0eWxlQ29uZmlnLmZpcnN0Q29sdW1uPy5zdGlja3lMZWZ0XG4gICAgICAgICAgPyAnc3RpY2t5J1xuICAgICAgICAgIDogJ3N0YXRpYycsXG4gICAgICAgIGxlZnQ6IHRoaXMuc3R5bGVDb25maWcuZmlyc3RDb2x1bW4/LnN0aWNreUxlZnQgPyAnMCcgOiAnYXV0bycsXG4gICAgICAgIHpJbmRleDogdGhpcy5zdHlsZUNvbmZpZy5maXJzdENvbHVtbj8uekluZGV4IHx8ICdhdXRvJyxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChpc0xhc3RDb2x1bW4pIHtcbiAgICAgIGNlbGxTdHlsZSA9IHtcbiAgICAgICAgLi4uY2VsbFN0eWxlLFxuICAgICAgICAuLi50aGlzLnN0eWxlQ29uZmlnLmxhc3RDb2x1bW4sXG4gICAgICAgIHBvc2l0aW9uOiB0aGlzLnN0eWxlQ29uZmlnLmxhc3RDb2x1bW4/LnN0aWNreVJpZ2h0XG4gICAgICAgICAgPyAnc3RpY2t5J1xuICAgICAgICAgIDogJ3N0YXRpYycsXG4gICAgICAgIHJpZ2h0OiB0aGlzLnN0eWxlQ29uZmlnLmxhc3RDb2x1bW4/LnN0aWNreVJpZ2h0ID8gJzAnIDogJ2F1dG8nLFxuICAgICAgICB6SW5kZXg6IHRoaXMuc3R5bGVDb25maWcubGFzdENvbHVtbj8uekluZGV4IHx8ICdhdXRvJyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHJvd0luZGV4ID49IDApIHtcbiAgICAgIC8vIEFwcGx5IGJvZHkgc3R5bGVzIHRvIGFsbCBjZWxsc1xuICAgICAgY2VsbFN0eWxlID0geyAuLi5jZWxsU3R5bGUsIC4uLnRoaXMuc3R5bGVDb25maWcuYm9keSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjZWxsU3R5bGUgPSB7IC4uLnRoaXMuc3R5bGVDb25maWcuaGVhZGVyIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNlbGxTdHlsZTtcbiAgfVxufVxuXG50eXBlIEVkaXRlZERhdGE8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdPzogVFtLXSBleHRlbmRzIG9iamVjdCA/IFBhcnRpYWw8VFtLXT4gOiBUW0tdO1xufTtcblxuLy8gRGVmYXVsdCBzdHlsZXNcbmNvbnN0IGRlZmF1bHRUYWJsZVN0eWxlczogVGFibGVTdHlsZXMgPSB7XG4gIGJvcmRlcjogJzFweCBzb2xpZCAjZTBlMGUwJyxcbiAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICBib3hTaGFkb3c6ICcwIDJweCA0cHggcmdiYSgwLDAsMCwwLjEpJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgaGVhZGVyOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2Y1ZjVmNScsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIGNvbG9yOiAnIzMzMycsXG4gICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgcGFkZGluZzogJzEycHggMTZweCcsXG4gICAgYm9yZGVyQm90dG9tOiAnMnB4IHNvbGlkICNlMGUwZTAnLFxuICB9LFxuICByb3dzOiB7XG4gICAgZXZlbjoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZmZmZicsXG4gICAgfSxcbiAgICBvZGQ6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmOWY5ZjknLFxuICAgIH0sXG4gICAgbnRoOiB7XG4gICAgICBpbnRlcnZhbDogNSxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmMGYwZjAnLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBjZWxsczoge1xuICAgIHBhZGRpbmc6ICcxMnB4IDE2cHgnLFxuICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTBlMGUwJyxcbiAgfSxcbiAgZm9vdGVyOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiAnI2Y1ZjVmNScsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgIGNvbG9yOiAnIzMzMycsXG4gICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgcGFkZGluZzogJzEycHggMTZweCcsXG4gICAgYm9yZGVyVG9wOiAnMnB4IHNvbGlkICNlMGUwZTAnLFxuICB9LFxufTtcbiIsIjx0YWJsZSBbbmdTdHlsZV09XCJnZXRUYWJsZVN0eWxlKClcIj5cbiAgPHRoZWFkPlxuICAgIDx0ciBbbmdTdHlsZV09XCJnZXRIZWFkZXJTdHlsZSgpXCI+XG4gICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uc1NpZ25hbCgpOyB0cmFjayBjb2x1bW4uaWQpIHtcbiAgICAgIDx0aCBbbmdTdHlsZV09XCJnZXRDZWxsU3R5bGUoLTEsICRpbmRleClcIj5cbiAgICAgICAgQGlmIChjb2x1bW4uaGVhZGVyVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEhlYWRlckNvbnRleHQoY29sdW1uKVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHt7IGNvbHVtbi5oZWFkZXIgfX1cbiAgICAgICAgfVxuICAgICAgPC90aD5cbiAgICAgIH1cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG4gICAgQGZvciAocm93IG9mIGRhdGEoKTsgdHJhY2sgcm93LmlkOyBsZXQgcm93SW5kZXggPSAkaW5kZXgpIHsgQGlmXG4gICAgKGlzR3JvdXBSb3cocm93KSkge1xuICAgIDx0ciBjbGFzcz1cImdyb3VwLXJvd1wiIFtuZ1N0eWxlXT1cImdldFJvd1N0eWxlKHJvd0luZGV4KVwiPlxuICAgICAgPHRkXG4gICAgICAgIFthdHRyLmNvbHNwYW5dPVwiY29sdW1uc1NpZ25hbCgpLmxlbmd0aFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImdldENlbGxTdHlsZShyb3dJbmRleCwgMClcIlxuICAgICAgPlxuICAgICAgICB7eyBnZXRDZWxsVmFsdWUocm93LCBjb2x1bW5zU2lnbmFsKClbMF0pIH19XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gICAgfSBAZWxzZSB7XG4gICAgPHRyIFtuZ1N0eWxlXT1cImdldFJvd1N0eWxlKHJvd0luZGV4KVwiPlxuICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnNTaWduYWwoKTsgdHJhY2sgY29sdW1uLmlkOyBsZXQgY29sSW5kZXggPSAkaW5kZXgpIHtcbiAgICAgIDx0ZCBbbmdTdHlsZV09XCJnZXRDZWxsU3R5bGUocm93SW5kZXgsIGNvbEluZGV4KVwiPlxuICAgICAgICBAaWYgKGlzUm93RWRpdGluZyhyb3cuaWQpICYmIGNvbHVtbi5jZWxsRWRpdFRlbXBsYXRlKSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4uY2VsbEVkaXRUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldENlbGxDb250ZXh0KHJvdywgY29sdW1uLCByb3dJbmRleClcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH0gQGVsc2UgaWYgKGNvbHVtbi5jZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5jZWxsVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRDZWxsQ29udGV4dChyb3csIGNvbHVtbiwgcm93SW5kZXgpXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgZ2V0Q2VsbFZhbHVlKHJvdywgY29sdW1uKSB9fVxuICAgICAgICB9XG4gICAgICA8L3RkPlxuICAgICAgfVxuICAgIDwvdHI+XG4gICAgfSB9XG4gIDwvdGJvZHk+XG4gIEBpZiAoaGFzRm9vdGVyKCkpIHtcbiAgPHRmb290PlxuICAgIDx0ciBbbmdTdHlsZV09XCJnZXRGb290ZXJTdHlsZSgpXCI+XG4gICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uc1NpZ25hbCgpOyB0cmFjayBjb2x1bW4uaWQpIHtcbiAgICAgIDx0ZCBbbmdTdHlsZV09XCJnZXRDZWxsU3R5bGUoLTEsICRpbmRleClcIj5cbiAgICAgICAgQGlmIChjb2x1bW4uZm9vdGVyVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5mb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEZvb3RlckNvbnRleHQoY29sdW1uKVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgICAgPC90ZD5cbiAgICAgIH1cbiAgICA8L3RyPlxuICA8L3Rmb290PlxuICB9XG48L3RhYmxlPlxuIl19
|
|
424
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFHTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFTckQsTUFBTSxPQUFPLGtCQUFrQjtJQUc3Qix3Q0FBd0M7SUFDeEMsSUFBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUM3QixPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBeUIsQ0FBQztJQUNsRCw2QkFBNkI7SUFDN0IseUJBQXlCO0lBQ3pCLHdCQUF3QjtJQUN4QixJQUFJO0lBQ0osb0JBQW9CO0lBQ3BCLCtCQUErQjtJQUMvQixJQUFJO0lBQ0osMkJBQTJCO0lBQzNCLHVDQUF1QztJQUN2Qyw2QkFBNkI7SUFDN0IsOENBQThDO0lBQzlDLG1DQUFtQztJQUNuQyxJQUFJO0lBQ0osMEJBQTBCO0lBQzFCLE9BQU8sR0FBRyxLQUFLLEVBQStCLENBQUM7SUFFdEMsV0FBVyxHQUFnQixrQkFBa0IsQ0FBQztJQUd2RCxlQUFlLENBQThCO0lBRW5DLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBQ2hDLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFD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YW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5wdXQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaWduYWwsXG4gIHNpZ25hbCxcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sdW1uRGVmaW5pdGlvbiB9IGZyb20gJy4vZGF0YS10YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmUgfSBmcm9tICcuL2NvbHVtbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFzZVN0eWxlcywgVGFibGVTdHlsZXMgfSBmcm9tICcuL3N0eWxlLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWRhdGEtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5jc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50PFQgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfCBudW1iZXIgfT5cbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXRcbntcbiAgLy8gTW9kaWZ5IGRhdGEgaW5wdXQgdG8gdXNlIGdyb3VwZWQgZGF0YVxuICBkYXRhID0gaW5wdXQucmVxdWlyZWQ8VFtdPigpO1xuICBjb2x1bW5zID0gaW5wdXQucmVxdWlyZWQ8Q29sdW1uRGVmaW5pdGlvbjxUPltdPigpO1xuICAvLyBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAvLyBzZXQgZGF0YSh2YWx1ZTogVFtdKSB7XG4gIC8vICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xuICAvLyB9XG4gIC8vIGdldCBkYXRhKCk6IFRbXSB7XG4gIC8vICAgcmV0dXJuIHRoaXMuZ3JvdXBlZERhdGEoKTtcbiAgLy8gfVxuICAvLyBwcml2YXRlIF9kYXRhOiBUW10gPSBbXTtcbiAgLy8gTW9kaWZ5IGNvbHVtbnMgaW5wdXQgdG8gdXNlIGEgc2lnbmFsXG4gIC8vIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIC8vIHNldCBjb2x1bW5zKHZhbHVlOiBDb2x1bW5EZWZpbml0aW9uPFQ+W10pIHtcbiAgLy8gICB0aGlzLmNvbHVtbnNTaWduYWwuc2V0KHZhbHVlKTtcbiAgLy8gfVxuICAvLyBOZXcgaW5wdXRzIGZvciBncm91cGluZ1xuICBncm91cEJ5ID0gaW5wdXQ8a2V5b2YgVCB8ICgocm93OiBUKSA9PiBhbnkpPigpO1xuXG4gIEBJbnB1dCgpIHN0eWxlQ29uZmlnOiBUYWJsZVN0eWxlcyA9IGRlZmF1bHRUYWJsZVN0eWxlcztcblxuICBAQ29udGVudENoaWxkcmVuKENvbHVtbkRpcmVjdGl2ZSlcbiAgY29sdW1uVGVtcGxhdGVzITogUXVlcnlMaXN0PENvbHVtbkRpcmVjdGl2ZT47XG5cbiAgQE91dHB1dCgpIHJvd0VkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIEBPdXRwdXQoKSByb3dTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgcm93RGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUW10+KCk7XG5cbiAgcHJpdmF0ZSBlZGl0aW5nUm93c1NpZ25hbCA9IHNpZ25hbDxTZXQ8c3RyaW5nIHwgbnVtYmVyPj4obmV3IFNldCgpKTtcbiAgcHJpdmF0ZSBzZWxlY3RlZFJvd3NTaWduYWwgPSBzaWduYWw8U2V0PHN0cmluZyB8IG51bWJlcj4+KG5ldyBTZXQoKSk7XG4gIHByaXZhdGUgZWRpdGVkRGF0YVNpZ25hbCA9IHNpZ25hbDxNYXA8c3RyaW5nIHwgbnVtYmVyLCBFZGl0ZWREYXRhPFQ+Pj4oXG4gICAgbmV3IE1hcCgpXG4gICk7XG5cbiAgY29sdW1uc1NpZ25hbDogV3JpdGFibGVTaWduYWw8Q29sdW1uRGVmaW5pdGlvbjxUPltdPiA9IHNpZ25hbChbXSk7XG5cbiAgaGFzRm9vdGVyID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmNvbHVtbnNTaWduYWwoKS5zb21lKChjb2wpID0+IGNvbC5mb290ZXJUZW1wbGF0ZSAhPT0gdW5kZWZpbmVkKVxuICApO1xuXG4gIC8vIFR5cGUgZ3VhcmQgbWV0aG9kIHRvIGNoZWNrIGZvciBncm91cCByb3dzXG4gIGlzR3JvdXBSb3cocm93OiBUKTogcm93IGlzIFQgJiB7IGlzR3JvdXBSb3c6IHRydWU7IGdyb3VwVGl0bGU6IGFueSB9IHtcbiAgICByZXR1cm4gISEocm93IGFzIGFueSkuaXNHcm91cFJvdztcbiAgfVxuXG4gIC8vIENvbXB1dGVkIHByb3BlcnR5IGZvciBncm91cGVkIGRhdGFcbiAgZ3JvdXBlZERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgLy8gSWYgbm8gZ3JvdXBpbmcgaXMgc3BlY2lmaWVkLCByZXR1cm4gb3JpZ2luYWwgZGF0YVxuICAgIGlmICghdGhpcy5ncm91cEJ5KCkpIHJldHVybiB0aGlzLmRhdGEoKTtcblxuICAgIC8vIERldGVybWluZSBncm91cCBmdW5jdGlvbiBiYXNlZCBvbiBpbnB1dCB0eXBlXG4gICAgY29uc3QgZ2V0R3JvdXBWYWx1ZSA9XG4gICAgICB0eXBlb2YgdGhpcy5ncm91cEJ5KCkgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyAodGhpcy5ncm91cEJ5KCkgYXMgKHJvdzogVCkgPT4gYW55KVxuICAgICAgICA6IChyb3c6IFQpID0+IHJvd1t0aGlzLmdyb3VwQnkoKSBhcyBrZXlvZiBUXTtcblxuICAgIC8vIEdyb3VwIHRoZSBkYXRhXG4gICAgY29uc3QgZ3JvdXBzID0gbmV3IE1hcDxhbnksIFRbXT4oKTtcblxuICAgIHRoaXMuZGF0YSgpLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgaWYgKGdldEdyb3VwVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBncm91cFZhbHVlID0gZ2V0R3JvdXBWYWx1ZShyb3cpO1xuICAgICAgICBjb25zdCBleGlzdGluZ0dyb3VwID0gZ3JvdXBzLmdldChncm91cFZhbHVlKSB8fCBbXTtcbiAgICAgICAgZ3JvdXBzLnNldChncm91cFZhbHVlLCBbLi4uZXhpc3RpbmdHcm91cCwgcm93XSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBDb25zdHJ1Y3QgZmluYWwgZ3JvdXBlZCBkYXRhIGFycmF5IHdpdGggZ3JvdXAgcm93c1xuICAgIGNvbnN0IGdyb3VwZWREYXRhQXJyYXk6IChUICYgeyBpc0dyb3VwUm93PzogYm9vbGVhbiB9KVtdID0gW107XG5cbiAgICBncm91cHMuZm9yRWFjaCgoZ3JvdXBSb3dzLCBncm91cFZhbHVlKSA9PiB7XG4gICAgICAvLyBDcmVhdGUgYSBncm91cCByb3dcbiAgICAgIGNvbnN0IGdyb3VwUm93ID0ge1xuICAgICAgICBpZDogYGdyb3VwLSR7Z3JvdXBWYWx1ZX1gLFxuICAgICAgICBpc0dyb3VwUm93OiB0cnVlLFxuICAgICAgICBncm91cFZhbHVlLFxuICAgICAgICBncm91cFRpdGxlOiBncm91cFZhbHVlLFxuICAgICAgfSBhcyB1bmtub3duIGFzIFQgJiB7IGlzR3JvdXBSb3c6IGJvb2xlYW4gfTtcblxuICAgICAgZ3JvdXBlZERhdGFBcnJheS5wdXNoKGdyb3VwUm93KTtcbiAgICAgIGdyb3VwZWREYXRhQXJyYXkucHVzaCguLi5ncm91cFJvd3MpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdyb3VwZWREYXRhQXJyYXk7XG4gIH0pO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIFNldCBpbml0aWFsIGNvbHVtbnMgaWYgbm90IGFscmVhZHkgc2V0XG4gICAgaWYgKHRoaXMuY29sdW1uc1NpZ25hbCgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb2x1bW5zU2lnbmFsLnNldCh0aGlzLmNvbHVtbnMoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuY29sdW1uVGVtcGxhdGVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMubWVyZ2VDb2x1bW5UZW1wbGF0ZXMoKSk7XG4gICAgdGhpcy5tZXJnZUNvbHVtblRlbXBsYXRlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZUNvbHVtblRlbXBsYXRlcygpIHtcbiAgICAvLyBPbmx5IG1lcmdlIGlmIHdlIGhhdmUgYm90aCBjb2x1bW5zIGFuZCB0ZW1wbGF0ZXNcbiAgICBpZiAodGhpcy5jb2x1bW5zU2lnbmFsKCkubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdXBkYXRlZENvbHVtbnMgPSB0aGlzLmNvbHVtbnNTaWduYWwoKS5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGluZ1RlbXBsYXRlID0gdGhpcy5jb2x1bW5UZW1wbGF0ZXMuZmluZChcbiAgICAgICAgICAodCkgPT4gdC5jb2x1bW5JZCA9PT0gY29sdW1uLmlkXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtYXRjaGluZ1RlbXBsYXRlKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmNvbHVtbixcbiAgICAgICAgICAgIGNlbGxUZW1wbGF0ZTogbWF0Y2hpbmdUZW1wbGF0ZS5jZWxsVGVtcGxhdGUsXG4gICAgICAgICAgICBjZWxsRWRpdFRlbXBsYXRlOiBtYXRjaGluZ1RlbXBsYXRlLmNlbGxFZGl0VGVtcGxhdGUsXG4gICAgICAgICAgICBoZWFkZXJUZW1wbGF0ZTogbWF0Y2hpbmdUZW1wbGF0ZS5oZWFkZXJUZW1wbGF0ZSxcbiAgICAgICAgICAgIGZvb3RlclRlbXBsYXRlOiBtYXRjaGluZ1RlbXBsYXRlLmZvb3RlclRlbXBsYXRlLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jb2x1bW5zU2lnbmFsLnNldCh1cGRhdGVkQ29sdW1ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2VsbFZhbHVlID0gKHJvdzogVCwgY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uPFQ+KTogYW55ID0+IHtcbiAgICAvLyBGb3IgZ3JvdXAgcm93cywgcmV0dXJuIHRoZSBncm91cCB0aXRsZSBpZiBpdCBleGlzdHNcbiAgICBpZiAodGhpcy5pc0dyb3VwUm93KHJvdykpIHtcbiAgICAgIHJldHVybiAocm93IGFzIGFueSkuZ3JvdXBUaXRsZTtcbiAgICB9XG5cbiAgICAvLyBFeGlzdGluZyBsb2dpYyBmb3Igbm9ybWFsIHJvd3NcbiAgICBpZiAoY29sdW1uLmFjY2Vzc29yS2V5KSB7XG4gICAgICByZXR1cm4gKHJvdyBhcyBhbnkpW2NvbHVtbi5hY2Nlc3NvcktleV07XG4gICAgfVxuICAgIHJldHVybiBjb2x1bW4uYWNjZXNzb3JGbiA/IGNvbHVtbi5hY2Nlc3NvckZuKHJvdykgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgaXNSb3dFZGl0aW5nID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5lZGl0aW5nUm93c1NpZ25hbCgpLmhhcyhyb3dJZCk7XG4gIH07XG5cbiAgdG9nZ2xlUm93RWRpdCA9IChyb3dJZDogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gICAgdGhpcy5lZGl0aW5nUm93c1NpZ25hbC51cGRhdGUoKHNldCkgPT4ge1xuICAgICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldChzZXQpO1xuICAgICAgaWYgKG5ld1NldC5oYXMocm93SWQpKSB7XG4gICAgICAgIG5ld1NldC5kZWxldGUocm93SWQpO1xuICAgICAgICAvLyB0aGlzLnNhdmVSb3cocm93SWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2V0LmFkZChyb3dJZCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUVkaXRlZERhdGEocm93SWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld1NldDtcbiAgICB9KTtcbiAgfTtcblxuICBwcml2YXRlIGluaXRpYWxpemVFZGl0ZWREYXRhKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLmRhdGEoKS5maW5kKChyKSA9PiByLmlkID09PSByb3dJZCk7XG4gICAgaWYgKHJvdykge1xuICAgICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICAgICAgbmV3TWFwLnNldChyb3dJZCwgeyAuLi5yb3cgfSk7XG4gICAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVSb3cocm93SWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGNvbnN0IGVkaXRlZERhdGEgPSB0aGlzLmVkaXRlZERhdGFTaWduYWwoKS5nZXQocm93SWQpO1xuICAgIGlmIChlZGl0ZWREYXRhKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbFJvd0luZGV4ID0gdGhpcy5kYXRhKCkuZmluZEluZGV4KChyKSA9PiByLmlkID09PSByb3dJZCk7XG4gICAgICBpZiAob3JpZ2luYWxSb3dJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZFJvdyA9IHsgLi4udGhpcy5kYXRhKClbb3JpZ2luYWxSb3dJbmRleF0sIC4uLmVkaXRlZERhdGEgfTtcbiAgICAgICAgdGhpcy5kYXRhKClbb3JpZ2luYWxSb3dJbmRleF0gPSB1cGRhdGVkUm93O1xuICAgICAgICB0aGlzLnJvd1NhdmUuZW1pdCh1cGRhdGVkUm93KTtcbiAgICAgICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChtYXApO1xuICAgICAgICAgIG5ld01hcC5kZWxldGUocm93SWQpO1xuICAgICAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzUm93U2VsZWN0ZWQgPSAocm93SWQ6IHN0cmluZyB8IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbCgpLmhhcyhyb3dJZCk7XG4gIH07XG5cbiAgdG9nZ2xlUm93U2VsZWN0aW9uID0gKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbC51cGRhdGUoKHNldCkgPT4ge1xuICAgICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldChzZXQpO1xuICAgICAgaWYgKG5ld1NldC5oYXMocm93SWQpKSB7XG4gICAgICAgIG5ld1NldC5kZWxldGUocm93SWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U2V0LmFkZChyb3dJZCk7XG4gICAgICB9XG4gICAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2UoKTtcbiAgICAgIHJldHVybiBuZXdTZXQ7XG4gICAgfSk7XG4gIH07XG5cbiAgYWxsUm93c1NlbGVjdGVkID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IG5vbkdyb3VwUm93cyA9IHRoaXMuZGF0YSgpLmZpbHRlcigocm93KSA9PiAhdGhpcy5pc0dyb3VwUm93KHJvdykpO1xuICAgIHJldHVybiAoXG4gICAgICBub25Hcm91cFJvd3MubGVuZ3RoID4gMCAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5zaXplID09PSBub25Hcm91cFJvd3MubGVuZ3RoXG4gICAgKTtcbiAgfTtcblxuICBzb21lUm93c1NlbGVjdGVkID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IG5vbkdyb3VwUm93cyA9IHRoaXMuZGF0YSgpLmZpbHRlcigocm93KSA9PiAhdGhpcy5pc0dyb3VwUm93KHJvdykpO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbCgpLnNpemUgPiAwICYmXG4gICAgICB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbCgpLnNpemUgPCBub25Hcm91cFJvd3MubGVuZ3RoXG4gICAgKTtcbiAgfTtcblxuICB0b2dnbGVBbGxSb3dzID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmFsbFJvd3NTZWxlY3RlZCgpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbC5zZXQobmV3IFNldCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uR3JvdXBSb3dzID0gdGhpcy5kYXRhKCkuZmlsdGVyKChyb3cpID0+ICF0aGlzLmlzR3JvdXBSb3cocm93KSk7XG4gICAgICB0aGlzLnNlbGVjdGVkUm93c1NpZ25hbC5zZXQobmV3IFNldChub25Hcm91cFJvd3MubWFwKChyb3cpID0+IHJvdy5pZCkpKTtcbiAgICB9XG4gICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0aW9uQ2hhbmdlKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IHRoaXMuZGF0YSgpLmZpbHRlcigocm93KSA9PlxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3NTaWduYWwoKS5oYXMocm93LmlkKVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzZWxlY3RlZFJvd3MpO1xuICB9XG5cbiAgZ2V0SGVhZGVyQ29udGV4dChjb2x1bW46IENvbHVtbkRlZmluaXRpb248VD4pIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiBjb2x1bW4sXG4gICAgICBjb2x1bW4sXG4gICAgICBhbGxSb3dzU2VsZWN0ZWQ6IHRoaXMuYWxsUm93c1NlbGVjdGVkLFxuICAgICAgc29tZVJvd3NTZWxlY3RlZDogdGhpcy5zb21lUm93c1NlbGVjdGVkLFxuICAgICAgdG9nZ2xlQWxsUm93czogdGhpcy50b2dnbGVBbGxSb3dzLFxuICAgIH07XG4gIH1cblxuICB1cGRhdGVFZGl0ZWRWYWx1ZShyb3dJZDogc3RyaW5nIHwgbnVtYmVyLCBjb2x1bW5JZDoga2V5b2YgVCwgdmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWRpdGVkRGF0YVNpZ25hbC51cGRhdGUoKG1hcCkgPT4ge1xuICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChtYXApO1xuICAgICAgY29uc3Qgcm93RGF0YSA9IG5ld01hcC5nZXQocm93SWQpIHx8ICh7fSBhcyBFZGl0ZWREYXRhPFQ+KTtcbiAgICAgIG5ld01hcC5zZXQocm93SWQsIHsgLi4ucm93RGF0YSwgW2NvbHVtbklkXTogdmFsdWUgfSk7XG4gICAgICByZXR1cm4gbmV3TWFwO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRWRpdGVkVmFsdWVGbihcbiAgICByb3dJZDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIHZhbHVlRm46ICh2YWx1ZTogYW55KSA9PiBULFxuICAgIHZhbHVlOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG1hcCk7XG4gICAgICBjb25zdCByb3dEYXRhID0gbmV3TWFwLmdldChyb3dJZCkgfHwgKHt9IGFzIEVkaXRlZERhdGE8VD4pO1xuICAgICAgbmV3TWFwLnNldChyb3dJZCwgeyAuLi5yb3dEYXRhLCAuLi52YWx1ZUZuKHZhbHVlKSB9KTtcbiAgICAgIHJldHVybiBuZXdNYXA7XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVFZGl0ZWREYXRhKHJvd0lkOiBzdHJpbmcgfCBudW1iZXIsIGRhdGE6IFBhcnRpYWw8VD4pIHtcbiAgICB0aGlzLmVkaXRlZERhdGFTaWduYWwudXBkYXRlKChtYXApID0+IHtcbiAgICAgIGNvbnN0IG5ld01hcCA9IG5ldyBNYXAobWFwKTtcbiAgICAgIGNvbnN0IHJvd0RhdGEgPSBuZXdNYXAuZ2V0KHJvd0lkKSB8fCAoe30gYXMgRWRpdGVkRGF0YTxUPik7XG4gICAgICBuZXdNYXAuc2V0KHJvd0lkLCB7IC4uLnJvd0RhdGEsIC4uLmRhdGEgfSk7XG4gICAgICByZXR1cm4gbmV3TWFwO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlTmVzdGVkRWRpdGVkVmFsdWUoXG4gICAgcm93SWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBjb2x1bW5JZDoga2V5b2YgVCxcbiAgICBuZXN0ZWRGaWVsZDogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5lZGl0ZWREYXRhU2lnbmFsLnVwZGF0ZSgobWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG1hcCk7XG4gICAgICBjb25zdCByb3dEYXRhID0gbmV3TWFwLmdldChyb3dJZCkgfHwgKHt9IGFzIEVkaXRlZERhdGE8VD4pO1xuICAgICAgY29uc3QgY29sdW1uRGF0YSA9IChyb3dEYXRhW2NvbHVtbklkXSBhcyBhbnkpIHx8IHt9O1xuICAgICAgbmV3TWFwLnNldChyb3dJZCwge1xuICAgICAgICAuLi5yb3dEYXRhLFxuICAgICAgICBbY29sdW1uSWRdOiB7XG4gICAgICAgICAgLi4uY29sdW1uRGF0YSxcbiAgICAgICAgICBbbmVzdGVkRmllbGRdOiB2YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ld01hcDtcbiAgICB9KTtcbiAgfVxuXG4gIGdldENlbGxDb250ZXh0KHJvdzogVCwgY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uPFQ+LCByb3dJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgcm93SWQgPSByb3cuaWQ7XG4gICAgY29uc3QgaXNFZGl0aW5nID0gdGhpcy5pc1Jvd0VkaXRpbmcocm93SWQpO1xuICAgIGNvbnN0IGVkaXRlZERhdGEgPSB0aGlzLmVkaXRlZERhdGFTaWduYWwoKS5nZXQocm93SWQpO1xuXG4gICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgaWYgKGlzRWRpdGluZyAmJiBlZGl0ZWREYXRhICYmIGNvbHVtbi5pZCBpbiBlZGl0ZWREYXRhKSB7XG4gICAgICB2YWx1ZSA9IGVkaXRlZERhdGFbY29sdW1uLmlkIGFzIGtleW9mIFRdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuZ2V0Q2VsbFZhbHVlKHJvdywgY29sdW1uKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiB2YWx1ZSxcbiAgICAgIHZhbHVlLFxuICAgICAgcm93LFxuICAgICAgY29sdW1uLFxuICAgICAgcm93SW5kZXgsXG4gICAgICBpc0VkaXRpbmcsXG4gICAgICBpc1NlbGVjdGVkOiB0aGlzLmlzUm93U2VsZWN0ZWQocm93SWQpLFxuICAgICAgdG9nZ2xlUm93U2VsZWN0aW9uOiAoKSA9PiB0aGlzLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3dJZCksXG4gICAgICB0b2dnbGVSb3dFZGl0OiAoKSA9PiB0aGlzLnRvZ2dsZVJvd0VkaXQocm93SWQpLFxuICAgICAgZGVsZXRlUm93OiAoKSA9PiB0aGlzLmRlbGV0ZVJvdyhyb3dJZCksXG4gICAgICB1cGRhdGVWYWx1ZTogKG5ld1ZhbHVlOiBhbnkpID0+XG4gICAgICAgIHRoaXMudXBkYXRlRWRpdGVkVmFsdWUocm93SWQsIGNvbHVtbi5pZCBhcyBrZXlvZiBULCBuZXdWYWx1ZSksXG4gICAgICB1cGRhdGVOZXN0ZWRWYWx1ZTogKG5lc3RlZEZpZWxkOiBzdHJpbmcsIG5ld1ZhbHVlOiBhbnkpID0+XG4gICAgICAgIHRoaXMudXBkYXRlTmVzdGVkRWRpdGVkVmFsdWUoXG4gICAgICAgICAgcm93SWQsXG4gICAgICAgICAgY29sdW1uLmlkIGFzIGtleW9mIFQsXG4gICAgICAgICAgbmVzdGVkRmllbGQsXG4gICAgICAgICAgbmV3VmFsdWVcbiAgICAgICAgKSxcblxuICAgICAgdXBkYXRlVmFsdWVGbjogKHZhbHVlRm46ICh2YWx1ZTogYW55KSA9PiBULCBuZXdWYWx1ZTogYW55KSA9PlxuICAgICAgICB0aGlzLnVwZGF0ZUVkaXRlZFZhbHVlRm4ocm93SWQsIHZhbHVlRm4sIG5ld1ZhbHVlKSxcbiAgICAgIHVwZGF0ZURhdGE6IChuZXdEYXRhOiBQYXJ0aWFsPFQ+KSA9PlxuICAgICAgICB0aGlzLnVwZGF0ZUVkaXRlZERhdGEocm93SWQsIG5ld0RhdGEpLFxuICAgIH07XG4gIH1cblxuICBkZWxldGVSb3cgPSAocm93SWQ6IHN0cmluZyB8IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHJvd1RvRGVsZXRlID0gdGhpcy5kYXRhKCkuZmluZCgocm93KSA9PiByb3cuaWQgPT09IHJvd0lkKTtcbiAgICBpZiAocm93VG9EZWxldGUpIHtcbiAgICAgIHRoaXMucm93RGVsZXRlLmVtaXQocm93VG9EZWxldGUpO1xuICAgIH1cbiAgfTtcblxuICBnZXRGb290ZXJDb250ZXh0KGNvbHVtbjogQ29sdW1uRGVmaW5pdGlvbjxUPikge1xuICAgIHJldHVybiB7XG4gICAgICAkaW1wbGljaXQ6IGNvbHVtbixcbiAgICAgIGNvbHVtbixcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VGFibGVTdHlsZSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLnN0eWxlQ29uZmlnLFxuICAgICAgZm9udEZhbWlseTogdGhpcy5zdHlsZUNvbmZpZy5mb250RmFtaWx5LFxuICAgICAgZm9udFNpemU6IHRoaXMuc3R5bGVDb25maWcuZm9udFNpemUsXG4gICAgICB3aGl0ZVNwYWNlOiB0aGlzLnN0eWxlQ29uZmlnLndoaXRlU3BhY2UsXG4gICAgICBtYXJnaW46IHRoaXMuc3R5bGVDb25maWcubWFyZ2luLFxuICAgICAgYm9yZGVyOiB0aGlzLnN0eWxlQ29uZmlnLmJvcmRlcixcbiAgICAgIGJvcmRlckNvbGxhcHNlOiB0aGlzLnN0eWxlQ29uZmlnLmJvcmRlckNvbGxhcHNlLFxuICAgICAgYm9yZGVyU3BhY2luZzogdGhpcy5zdHlsZUNvbmZpZy5ib3JkZXJTcGFjaW5nLFxuICAgICAgdGFibGVMYXlvdXQ6IHRoaXMuc3R5bGVDb25maWcudGFibGVMYXlvdXQsXG4gICAgICB3aWR0aDogdGhpcy5zdHlsZUNvbmZpZy53aWR0aCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0SGVhZGVyU3R5bGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5zdHlsZUNvbmZpZy5oZWFkZXIsXG4gICAgICBwb3NpdGlvbjogdGhpcy5zdHlsZUNvbmZpZy5oZWFkZXI/LnN0aWNreVRvcCA/ICdzdGlja3knIDogJ3N0YXRpYycsXG4gICAgICB0b3A6IHRoaXMuc3R5bGVDb25maWcuaGVhZGVyPy5zdGlja3lUb3AgPyAnMCcgOiAnYXV0bycsXG4gICAgICB6SW5kZXg6IHRoaXMuc3R5bGVDb25maWcuaGVhZGVyPy56SW5kZXggfHwgJ2F1dG8nLFxuICAgIH07XG4gIH1cblxuICBnZXRGb290ZXJTdHlsZSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLnN0eWxlQ29uZmlnLmZvb3RlcixcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnN0eWxlQ29uZmlnLmZvb3Rlcj8uc3RpY2t5Qm90dG9tID8gJ3N0aWNreScgOiAnc3RhdGljJyxcbiAgICAgIGJvdHRvbTogdGhpcy5zdHlsZUNvbmZpZy5mb290ZXI/LnN0aWNreUJvdHRvbSA/ICcwJyA6ICdhdXRvJyxcbiAgICAgIHpJbmRleDogdGhpcy5zdHlsZUNvbmZpZy5mb290ZXI/LnpJbmRleCB8fCAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIGdldFJvd1N0eWxlKHJvd0luZGV4OiBudW1iZXIpOiBhbnkge1xuICAgIGNvbnN0IHJvd1N0eWxlcyA9IHRoaXMuc3R5bGVDb25maWcucm93cztcbiAgICBpZiAocm93U3R5bGVzICYmICdldmVuJyBpbiByb3dTdHlsZXMgJiYgJ29kZCcgaW4gcm93U3R5bGVzKSB7XG4gICAgICByZXR1cm4gcm93SW5kZXggJSAyID09PSAwID8gcm93U3R5bGVzLmV2ZW4gOiByb3dTdHlsZXMub2RkO1xuICAgIH0gZWxzZSBpZiAocm93U3R5bGVzICYmICdudGgnIGluIHJvd1N0eWxlcyAmJiByb3dTdHlsZXMubnRoKSB7XG4gICAgICBjb25zdCB7IGludGVydmFsLCBzdHlsZSB9ID0gcm93U3R5bGVzLm50aDtcbiAgICAgIHJldHVybiAocm93SW5kZXggKyAxKSAlIChpbnRlcnZhbCB8fCAxKSA9PT0gMCA/IHN0eWxlIDoge307XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByb3dTdHlsZXMgfHwge307XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2VsbFN0eWxlKHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiBhbnkge1xuICAgIGNvbnN0IGlzRmlyc3RDb2x1bW4gPSBjb2xJbmRleCA9PT0gMDtcbiAgICBjb25zdCBpc0xhc3RDb2x1bW4gPSBjb2xJbmRleCA9PT0gdGhpcy5jb2x1bW5zU2lnbmFsKCkubGVuZ3RoIC0gMTtcblxuICAgIGxldCBjZWxsU3R5bGUgPSB7IC4uLnRoaXMuc3R5bGVDb25maWcuY2VsbHMgfTtcblxuICAgIGlmIChpc0ZpcnN0Q29sdW1uKSB7XG4gICAgICBjZWxsU3R5bGUgPSB7XG4gICAgICAgIC4uLmNlbGxTdHlsZSxcbiAgICAgICAgLi4udGhpcy5zdHlsZUNvbmZpZy5maXJzdENvbHVtbixcbiAgICAgICAgcG9zaXRpb246IHRoaXMuc3R5bGVDb25maWcuZmlyc3RDb2x1bW4/LnN0aWNreUxlZnRcbiAgICAgICAgICA/ICdzdGlja3knXG4gICAgICAgICAgOiAnc3RhdGljJyxcbiAgICAgICAgbGVmdDogdGhpcy5zdHlsZUNvbmZpZy5maXJzdENvbHVtbj8uc3RpY2t5TGVmdCA/ICcwJyA6ICdhdXRvJyxcbiAgICAgICAgekluZGV4OiB0aGlzLnN0eWxlQ29uZmlnLmZpcnN0Q29sdW1uPy56SW5kZXggfHwgJ2F1dG8nLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGlzTGFzdENvbHVtbikge1xuICAgICAgY2VsbFN0eWxlID0ge1xuICAgICAgICAuLi5jZWxsU3R5bGUsXG4gICAgICAgIC4uLnRoaXMuc3R5bGVDb25maWcubGFzdENvbHVtbixcbiAgICAgICAgcG9zaXRpb246IHRoaXMuc3R5bGVDb25maWcubGFzdENvbHVtbj8uc3RpY2t5UmlnaHRcbiAgICAgICAgICA/ICdzdGlja3knXG4gICAgICAgICAgOiAnc3RhdGljJyxcbiAgICAgICAgcmlnaHQ6IHRoaXMuc3R5bGVDb25maWcubGFzdENvbHVtbj8uc3RpY2t5UmlnaHQgPyAnMCcgOiAnYXV0bycsXG4gICAgICAgIHpJbmRleDogdGhpcy5zdHlsZUNvbmZpZy5sYXN0Q29sdW1uPy56SW5kZXggfHwgJ2F1dG8nLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAocm93SW5kZXggPj0gMCkge1xuICAgICAgLy8gQXBwbHkgYm9keSBzdHlsZXMgdG8gYWxsIGNlbGxzXG4gICAgICBjZWxsU3R5bGUgPSB7IC4uLmNlbGxTdHlsZSwgLi4udGhpcy5zdHlsZUNvbmZpZy5ib2R5IH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNlbGxTdHlsZSA9IHsgLi4udGhpcy5zdHlsZUNvbmZpZy5oZWFkZXIgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2VsbFN0eWxlO1xuICB9XG59XG5cbnR5cGUgRWRpdGVkRGF0YTxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0/OiBUW0tdIGV4dGVuZHMgb2JqZWN0ID8gUGFydGlhbDxUW0tdPiA6IFRbS107XG59O1xuXG4vLyBEZWZhdWx0IHN0eWxlc1xuY29uc3QgZGVmYXVsdFRhYmxlU3R5bGVzOiBUYWJsZVN0eWxlcyA9IHtcbiAgYm9yZGVyOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gIGJveFNoYWRvdzogJzAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMSknLFxuICB3aWR0aDogJzEwMCUnLFxuICBoZWFkZXI6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjVmNWY1JyxcbiAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgY29sb3I6ICcjMzMzJyxcbiAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICBwYWRkaW5nOiAnMTJweCAxNnB4JyxcbiAgICBib3JkZXJCb3R0b206ICcycHggc29saWQgI2UwZTBlMCcsXG4gIH0sXG4gIHJvd3M6IHtcbiAgICBldmVuOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZmZmJyxcbiAgICB9LFxuICAgIG9kZDoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2Y5ZjlmOScsXG4gICAgfSxcbiAgICBudGg6IHtcbiAgICAgIGludGVydmFsOiA1LFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2YwZjBmMCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGNlbGxzOiB7XG4gICAgcGFkZGluZzogJzEycHggMTZweCcsXG4gICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMGUwZTAnLFxuICB9LFxuICBmb290ZXI6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZjVmNWY1JyxcbiAgICBmb250V2VpZ2h0OiAnYm9sZCcsXG4gICAgY29sb3I6ICcjMzMzJyxcbiAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICBwYWRkaW5nOiAnMTJweCAxNnB4JyxcbiAgICBib3JkZXJUb3A6ICcycHggc29saWQgI2UwZTBlMCcsXG4gIH0sXG59O1xuIiwiPHRhYmxlIFtuZ1N0eWxlXT1cImdldFRhYmxlU3R5bGUoKVwiPlxuICA8dGhlYWQ+XG4gICAgPHRyIFtuZ1N0eWxlXT1cImdldEhlYWRlclN0eWxlKClcIj5cbiAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zU2lnbmFsKCk7IHRyYWNrIGNvbHVtbi5pZCkge1xuICAgICAgPHRoIFtuZ1N0eWxlXT1cImdldENlbGxTdHlsZSgtMSwgJGluZGV4KVwiPlxuICAgICAgICBAaWYgKGNvbHVtbi5oZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLmhlYWRlclRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SGVhZGVyQ29udGV4dChjb2x1bW4pXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgY29sdW1uLmhlYWRlciB9fVxuICAgICAgICB9XG4gICAgICA8L3RoPlxuICAgICAgfVxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cbiAgICBAZm9yIChyb3cgb2YgZGF0YSgpOyB0cmFjayByb3cuaWQ7IGxldCByb3dJbmRleCA9ICRpbmRleCkgeyBAaWZcbiAgICAoaXNHcm91cFJvdyhyb3cpKSB7XG4gICAgPHRyIGNsYXNzPVwiZ3JvdXAtcm93XCIgW25nU3R5bGVdPVwiZ2V0Um93U3R5bGUocm93SW5kZXgpXCI+XG4gICAgICA8dGRcbiAgICAgICAgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zU2lnbmFsKCkubGVuZ3RoXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0Q2VsbFN0eWxlKHJvd0luZGV4LCAwKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGdldENlbGxWYWx1ZShyb3csIGNvbHVtbnNTaWduYWwoKVswXSkgfX1cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgICB9IEBlbHNlIHtcbiAgICA8dHIgW25nU3R5bGVdPVwiZ2V0Um93U3R5bGUocm93SW5kZXgpXCI+XG4gICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uc1NpZ25hbCgpOyB0cmFjayBjb2x1bW4uaWQ7IGxldCBjb2xJbmRleCA9ICRpbmRleCkge1xuICAgICAgPHRkIFtuZ1N0eWxlXT1cImdldENlbGxTdHlsZShyb3dJbmRleCwgY29sSW5kZXgpXCI+XG4gICAgICAgIEBpZiAoaXNSb3dFZGl0aW5nKHJvdy5pZCkgJiYgY29sdW1uLmNlbGxFZGl0VGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbHVtbi5jZWxsRWRpdFRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0Q2VsbENvbnRleHQocm93LCBjb2x1bW4sIHJvd0luZGV4KVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfSBAZWxzZSBpZiAoY29sdW1uLmNlbGxUZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLmNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldENlbGxDb250ZXh0KHJvdywgY29sdW1uLCByb3dJbmRleClcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBnZXRDZWxsVmFsdWUocm93LCBjb2x1bW4pIH19XG4gICAgICAgIH1cbiAgICAgIDwvdGQ+XG4gICAgICB9XG4gICAgPC90cj5cbiAgICB9IH1cbiAgPC90Ym9keT5cbiAgQGlmIChoYXNGb290ZXIoKSkge1xuICA8dGZvb3Q+XG4gICAgPHRyIFtuZ1N0eWxlXT1cImdldEZvb3RlclN0eWxlKClcIj5cbiAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zU2lnbmFsKCk7IHRyYWNrIGNvbHVtbi5pZCkge1xuICAgICAgPHRkIFtuZ1N0eWxlXT1cImdldENlbGxTdHlsZSgtMSwgJGluZGV4KVwiPlxuICAgICAgICBAaWYgKGNvbHVtbi5mb290ZXJUZW1wbGF0ZSkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sdW1uLmZvb3RlclRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0Rm9vdGVyQ29udGV4dChjb2x1bW4pXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L3RkPlxuICAgICAgfVxuICAgIDwvdHI+XG4gIDwvdGZvb3Q+XG4gIH1cbjwvdGFibGU+XG4iXX0=
|