@tet/tet-components-angular 1.4.2-testing → 1.4.3-staging
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.
|
@@ -1639,11 +1639,11 @@ export let TetTable = class TetTable {
|
|
|
1639
1639
|
this.el = r.nativeElement;
|
|
1640
1640
|
}
|
|
1641
1641
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TetTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1642
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TetTable, selector: "tet-table", inputs: { caption: "caption", cellTextAlign: "cellTextAlign", gappedColumnLayout: "gappedColumnLayout", tableData: "tableData", tableHeader: "tableHeader", tableHeaderColumnSpan: "tableHeaderColumnSpan", tableHeaderTextAlign: "tableHeaderTextAlign", tableHeaderWidth: "tableHeaderWidth", theme: "theme" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1642
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: TetTable, selector: "tet-table", inputs: { caption: "caption", cellTextAlign: "cellTextAlign", fixedFirstColumn: "fixedFirstColumn", gappedColumnLayout: "gappedColumnLayout", tableData: "tableData", tableHeader: "tableHeader", tableHeaderColumnSpan: "tableHeaderColumnSpan", tableHeaderTextAlign: "tableHeaderTextAlign", tableHeaderWidth: "tableHeaderWidth", theme: "theme" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1643
1643
|
};
|
|
1644
1644
|
TetTable = __decorate([
|
|
1645
1645
|
ProxyCmp({
|
|
1646
|
-
inputs: ['caption', 'cellTextAlign', 'gappedColumnLayout', 'tableData', 'tableHeader', 'tableHeaderColumnSpan', 'tableHeaderTextAlign', 'tableHeaderWidth', 'theme']
|
|
1646
|
+
inputs: ['caption', 'cellTextAlign', 'fixedFirstColumn', 'gappedColumnLayout', 'tableData', 'tableHeader', 'tableHeaderColumnSpan', 'tableHeaderTextAlign', 'tableHeaderWidth', 'theme']
|
|
1647
1647
|
})
|
|
1648
1648
|
], TetTable);
|
|
1649
1649
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TetTable, decorators: [{
|
|
@@ -1653,7 +1653,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1653
1653
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1654
1654
|
template: '<ng-content></ng-content>',
|
|
1655
1655
|
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
|
|
1656
|
-
inputs: ['caption', 'cellTextAlign', 'gappedColumnLayout', 'tableData', 'tableHeader', 'tableHeaderColumnSpan', 'tableHeaderTextAlign', 'tableHeaderWidth', 'theme'],
|
|
1656
|
+
inputs: ['caption', 'cellTextAlign', 'fixedFirstColumn', 'gappedColumnLayout', 'tableData', 'tableHeader', 'tableHeaderColumnSpan', 'tableHeaderTextAlign', 'tableHeaderWidth', 'theme'],
|
|
1657
1657
|
}]
|
|
1658
1658
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1659
1659
|
export let TetTag = class TetTag {
|
|
@@ -1852,4 +1852,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1852
1852
|
inputs: ['doNotShowOnHover', 'hoverElement', 'position', 'targetElementSelector', 'theme'],
|
|
1853
1853
|
}]
|
|
1854
1854
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
1855
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RldC1jb21wb25lbnRzLWFuZ3VsYXIvc3JjL2xpYi9zdGVuY2lsLWdlbmVyYXRlZC9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWdCaEUsV0FBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBTlUsWUFBWTtrR0FBWixZQUFZLG1ZQUpiLDJCQUEyQjs7QUFJMUIsWUFBWTtJQVh4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLFlBQVksQ0FBQztRQUNwTCxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO0tBQzdELENBQUM7R0FRVyxZQUFZLENBT3hCOzJGQVBZLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1Qs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SUFYdEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxPQUFPLENBQUM7UUFDMUYsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUM7S0FDcEMsQ0FBQztHQVFXLFVBQVUsQ0FNdEI7MkZBTlksVUFBVTtrQkFQdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxPQUFPLENBQUM7aUJBQzNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JyZWFrcG9pbnQnLCAnaGVhZGVyJywgJ2hlYWRlckltYWdlQWx0JywgJ2hlYWRlckltYWdlU3JjJywgJ2hlYWRpbmdUYWcnLCAnaW5kaWNhdG9yRGlyZWN0aW9uJywgJ2lzT3BlbicsICd0aGVtZScsICd0cmFuc3BhcmVudEJhY2tncm91bmQnLCAnd2l0aEF1dG9TY3JvbGwnLCAnd2l0aEJvcmRlciddLFxuICBtZXRob2RzOiBbJ29wZW4nLCAnY2xvc2UnLCAndG9nZ2xlJywgJ2dldFN0YXRlJywgJ3NldFN0YXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydicmVha3BvaW50JywgJ2hlYWRlcicsICdoZWFkZXJJbWFnZUFsdCcsICdoZWFkZXJJbWFnZVNyYycsICdoZWFkaW5nVGFnJywgJ2luZGljYXRvckRpcmVjdGlvbicsICdpc09wZW4nLCAndGhlbWUnLCAndHJhbnNwYXJlbnRCYWNrZ3JvdW5kJywgJ3dpdGhBdXRvU2Nyb2xsJywgJ3dpdGhCb3JkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QWNjb3JkaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnb3BlbkNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRBY2NvcmRpb24ge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgb24gdGhlIGBpc09wZW5gIHZhbHVlIGNoYW5nZS5cbiAgICovXG4gIG9wZW5DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXRhbG9nJywgJ2NhdGVnb3J5JywgJ2NsZWFyRmlsdGVyQnV0dG9uJywgJ2xhbmd1YWdlJywgJ3Byb2R1Y3RDb2RlcycsICdzdWJjYXRlZ29yeUlkJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYWRkcmVzcy1vZmZlcnMtZmlsdGVycy1wcm9kdWN0cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2F0YWxvZycsICdjYXRlZ29yeScsICdjbGVhckZpbHRlckJ1dHRvbicsICdsYW5ndWFnZScsICdwcm9kdWN0Q29kZXMnLCAnc3ViY2F0ZWdvcnlJZCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBZGRyZXNzT2ZmZXJzRmlsdGVyc1Byb2R1Y3RzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYWN0aXZlRmlsdGVyc0NoYW5nZWQnLCAnZmlsdGVyZWRQcm9kdWN0c0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QWRkcmVzc09mZmVyc0ZpbHRlcnNQcm9kdWN0cyBleHRlbmRzIENvbXBvbmVudHMuVGV0QWRkcmVzc09mZmVyc0ZpbHRlcnNQcm9kdWN0cyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYWN0aXZlIGZpbHRlcnMgY2hhbmdlLCBzZW5kaW5nIGFycmF5IG9mIGFjdGl2ZSBmaWx0ZXIgSURzLlxuICAgKi9cbiAgYWN0aXZlRmlsdGVyc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGZpbHRlcmVkIHByb2R1Y3RzIGNoYW5nZSwgc2VuZGluZyBzdWJjYXRlZ29yeSBJRCBhbmQgYXJyYXkgb2YgZmlsdGVyZWQgcHJvZHVjdCBJRHMuXG4gICAqL1xuICBmaWx0ZXJlZFByb2R1Y3RzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3ViY2F0ZWdvcnlJZDogc3RyaW5nOyBmaWx0ZXJlZFByb2R1Y3RJZHM6IHN0cmluZ1tdIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2FkZHJlc3NLZXknLCAnY2xvc2VCdXR0b25UZXh0JywgJ2lucHV0RGlzYWJsZWQnLCAnaXNJbnB1dEludmFsaWQnLCAnbGFiZWwnLCAnbGFuZ3VhZ2UnLCAnbWFudWFsQWRkcmVzc1RyaWdnZXJzJywgJ21pblNlYXJjaEtleXdvcmRMZW5ndGgnLCAnbmV3Rm9ybXNTdHlsZScsICduZXdTdHlsZScsICdwbGFjZWhvbGRlcicsICdyZWRlc2lnbmVkU3R5bGUnLCAnc2VhcmNoQnV0dG9uVGV4dCcsICd0aGVtZSddLFxuICBtZXRob2RzOiBbJ3Jlc2V0SW5wdXRTdGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWFkZHJlc3Mtc2VhcmNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnYWRkcmVzc0tleScsICdjbG9zZUJ1dHRvblRleHQnLCAnaW5wdXREaXNhYmxlZCcsICdpc0lucHV0SW52YWxpZCcsICdsYWJlbCcsICdsYW5ndWFnZScsICdtYW51YWxBZGRyZXNzVHJpZ2dlcnMnLCAnbWluU2VhcmNoS2V5d29yZExlbmd0aCcsICduZXdGb3Jtc1N0eWxlJywgJ25ld1N0eWxlJywgJ3BsYWNlaG9sZGVyJywgJ3JlZGVzaWduZWRTdHlsZScsICdzZWFyY2hCdXR0b25UZXh0JywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEFkZHJlc3NTZWFyY2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhZGRyZXNzU2VsZWN0ZWQnLCAnY2xlYXJJbnB1dEZpZWxkJywgJ21hbnVhbEFkZHJlc3NJbnB1dCcsICdzZWFyY2hTdWJtaXR0ZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEFkZHJlc3NJbnRlcmZhY2UgYXMgSVRldEFkZHJlc3NTZWFyY2hBZGRyZXNzSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRBZGRyZXNzU2VhcmNoIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRBZGRyZXNzU2VhcmNoIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGFuIGFkZHJlc3MgdmlhIGF1dG9jb21wbGV0ZS5cbiAgICovXG4gIGFkZHJlc3NTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRBZGRyZXNzU2VhcmNoQWRkcmVzc0ludGVyZmFjZT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBmaWVsZCBpcyBjbGVhcmVkIGF1dG9tYXRpY2FsbHkuXG4gICAqL1xuICBjbGVhcklucHV0RmllbGQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIHRoZSBtYW51YWwgYWRkcmVzcyBpbnB1dCBvcHRpb24uXG4gICAqL1xuICBtYW51YWxBZGRyZXNzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhlIHNlYXJjaCBidXR0b24uXG4gICAqL1xuICBzZWFyY2hTdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzVG9rZW4nLCAnYWRkcmVzc1NlYXJjaExhYmVsJywgJ2FkZHJlc3NTZWFyY2hQbGFjZWhvbGRlcicsICdwaWQnLCAnc2FsZXNmb3JjZUFjY291bnRJZCcsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWFzc2V0LWFkZHJlc3NlcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzVG9rZW4nLCAnYWRkcmVzc1NlYXJjaExhYmVsJywgJ2FkZHJlc3NTZWFyY2hQbGFjZWhvbGRlcicsICdwaWQnLCAnc2FsZXNmb3JjZUFjY291bnRJZCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBc3NldEFkZHJlc3NlcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Fzc2V0QWRkcmVzc1NlbGVjdGVkJywgJ2FkZHJlc3Nlc1VwZGF0ZWQnLCAnY3VzdG9tZXJOb3RGb3VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgVW5pcXVlQWRkcmVzc0ludGVyZmFjZSBhcyBJVGV0QXNzZXRBZGRyZXNzZXNVbmlxdWVBZGRyZXNzSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbWVyTm90Rm91bmQgYXMgSVRldEFzc2V0QWRkcmVzc2VzQ3VzdG9tZXJOb3RGb3VuZCB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QXNzZXRBZGRyZXNzZXMgZXh0ZW5kcyBDb21wb25lbnRzLlRldEFzc2V0QWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB1c2VyIHNlbGVjdHMgYW4gYWRkcmVzcyBmcm9tIHRoZSBsaXN0LlxuICAgKi9cbiAgYXNzZXRBZGRyZXNzU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXNzZXRBZGRyZXNzZXNVbmlxdWVBZGRyZXNzSW50ZXJmYWNlPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW5ldmVyIGFkZHJlc3NlcyBjaGFuZ2UuXG4gICAqL1xuICBhZGRyZXNzZXNVcGRhdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEFzc2V0QWRkcmVzc2VzVW5pcXVlQWRkcmVzc0ludGVyZmFjZVtdPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gbm8gU2FsZXNmb3JjZSBjdXN0b21lciBpcyBmb3VuZCBmb3IgdGhlIGdpdmVuIFBJRC5cbiAgICovXG4gIGN1c3RvbWVyTm90Rm91bmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXNzZXRBZGRyZXNzZXNDdXN0b21lck5vdEZvdW5kPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2Vzc1Rva2VuJywgJ2FkZHJlc3NTZWFyY2hMYWJlbCcsICdhZGRyZXNzU2VhcmNoUGxhY2Vob2xkZXInLCAncGlkJywgJ3NhbGVzZm9yY2VBY2NvdW50SWQnLCAndGhlbWUnXSxcbiAgbWV0aG9kczogWyd1bnNlbGVjdEFzc2V0QWRkcmVzc2VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYXNzZXQtYXZhaWxhYmlsaXR5LWFkZHJlc3NlcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzVG9rZW4nLCAnYWRkcmVzc1NlYXJjaExhYmVsJywgJ2FkZHJlc3NTZWFyY2hQbGFjZWhvbGRlcicsICdwaWQnLCAnc2FsZXNmb3JjZUFjY291bnRJZCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBc3NldEF2YWlsYWJpbGl0eUFkZHJlc3NlcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Fzc2V0QWRkcmVzc1NlbGVjdGVkJywgJ2FkZHJlc3Nlc1VwZGF0ZWQnLCAnY3VzdG9tZXJOb3RGb3VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgVW5pcXVlQWRkcmVzc0ludGVyZmFjZSBhcyBJVGV0QXNzZXRBdmFpbGFiaWxpdHlBZGRyZXNzZXNVbmlxdWVBZGRyZXNzSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbWVyTm90Rm91bmQgYXMgSVRldEFzc2V0QXZhaWxhYmlsaXR5QWRkcmVzc2VzQ3VzdG9tZXJOb3RGb3VuZCB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QXNzZXRBdmFpbGFiaWxpdHlBZGRyZXNzZXMgZXh0ZW5kcyBDb21wb25lbnRzLlRldEFzc2V0QXZhaWxhYmlsaXR5QWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB1c2VyIHNlbGVjdHMgYW4gYWRkcmVzcyBmcm9tIHRoZSBsc2l0LlxuICAgKi9cbiAgYXNzZXRBZGRyZXNzU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXNzZXRBdmFpbGFiaWxpdHlBZGRyZXNzZXNVbmlxdWVBZGRyZXNzSW50ZXJmYWNlPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW5ldmVyIGFkZHJlc3NlcyBjaGFuZ2UuXG4gICAqL1xuICBhZGRyZXNzZXNVcGRhdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEFzc2V0QXZhaWxhYmlsaXR5QWRkcmVzc2VzVW5pcXVlQWRkcmVzc0ludGVyZmFjZVtdPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gbm8gU2FsZXNmb3JjZSBjdXN0b21lciBpcyBmb3VuZCBmb3IgdGhlIGdpdmVuIFBJRC5cbiAgICovXG4gIGN1c3RvbWVyTm90Rm91bmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXNzZXRBdmFpbGFiaWxpdHlBZGRyZXNzZXNDdXN0b21lck5vdEZvdW5kPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyQ2FsbGJhY2snLCAnZGFya1RoZW1lJywgJ2RlZmF1bHRPcHRpb25zJywgJ2ZpbmlzaGVkTG9hZGluZycsICdoaWdobGlnaHRPcHRpb25zS2V5d29yZCcsICduZXdTdHlsZScsICdub09wdGlvbnNNZXNzYWdlJywgJ25vT3B0aW9uc1JlbmRlckZ1bmN0aW9uJywgJ29wdGlvbnNGaWx0ZXJBY3Rpb24nLCAnb3B0aW9uc0ljb24nLCAncmVkZXNpZ25lZFN0eWxlJywgJ3Nob3dPcHRpb25zT25Fc2NhcGVDbGVhciddLFxuICBtZXRob2RzOiBbJ2NsZWFyJywgJ2ZvY3VzT25OYXRpdmVJbnB1dCcsICdzZWxlY3RPcHRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1hdXRvY29tcGxldGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsZWFyQ2FsbGJhY2snLCAnZGFya1RoZW1lJywgJ2RlZmF1bHRPcHRpb25zJywgJ2ZpbmlzaGVkTG9hZGluZycsICdoaWdobGlnaHRPcHRpb25zS2V5d29yZCcsICduZXdTdHlsZScsICdub09wdGlvbnNNZXNzYWdlJywgJ25vT3B0aW9uc1JlbmRlckZ1bmN0aW9uJywgJ29wdGlvbnNGaWx0ZXJBY3Rpb24nLCAnb3B0aW9uc0ljb24nLCAncmVkZXNpZ25lZFN0eWxlJywgJ3Nob3dPcHRpb25zT25Fc2NhcGVDbGVhciddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBdXRvY29tcGxldGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydvcHRpb25TZWxlY3RlZCcsICdhY3RpdmVDb21wb25lbnRTdGF0ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE9wdGlvbkludGVyZmFjZSBhcyBJVGV0QXV0b2NvbXBsZXRlT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRBdXRvY29tcGxldGUgZXh0ZW5kcyBDb21wb25lbnRzLlRldEF1dG9jb21wbGV0ZSB7XG4gIC8qKlxuICAgKiBUaGUgYXV0b2NvbXBsZXRlIG9wdGlvbiBzZWxlY3Rpb24gZXZlbnQuXG4gICAqL1xuICBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRBdXRvY29tcGxldGVPcHRpb25JbnRlcmZhY2U+PjtcbiAgLyoqXG4gICAqIEVtaXRzIFwidGV0LWF1dG9jb21wbGV0ZVwiIHVuaXF1ZSBpZCwgd2hlbiBhbiBhdHRlbXB0IHRvIG9wZW4gc2VsZWN0aW9uIG9wdGlvbnMgaXMgaWRlbnRpZmllZC5cbiAgICovXG4gIGFjdGl2ZUNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IG51bGw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdE9wdGlvbicsICdlcnJvck1lc3NhZ2UnLCAnaGFzRXJyb3InLCAnbGFiZWwnLCAnbm9PcHRpb25zTWVzc2FnZScsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3RoZW1lJ10sXG4gIG1ldGhvZHM6IFsnY2xlYXJJbnB1dCcsICdmb2N1c09uTmF0aXZlSW5wdXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1hdXRvY29tcGxldGUtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRPcHRpb24nLCAnZXJyb3JNZXNzYWdlJywgJ2hhc0Vycm9yJywgJ2xhYmVsJywgJ25vT3B0aW9uc01lc3NhZ2UnLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBdXRvY29tcGxldGVEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wdGlvblNlbGVjdGVkJywgJ2lucHV0VmFsdWVDbGVhcmVkJywgJ2lucHV0VmFsdWVDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBPcHRpb25JbnRlcmZhY2UgYXMgSVRldEF1dG9jb21wbGV0ZURyb3Bkb3duT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRBdXRvY29tcGxldGVEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGV0QXV0b2NvbXBsZXRlRHJvcGRvd24ge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgb3B0aW9uU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXV0b2NvbXBsZXRlRHJvcGRvd25PcHRpb25JbnRlcmZhY2U+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBpcyBjbGVhcmVkLlxuICAgKi9cbiAgaW5wdXRWYWx1ZUNsZWFyZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgb3B0aW9uIGlucHV0IHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAqL1xuICBpbnB1dFZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXJrVGhlbWUnLCAnbGFuZ3VhZ2UnLCAnc2hvd0F2YWlsYWJpbGl0eUNvbnRhY3RGb3JtJywgJ3Nob3dJbnB1dExhYmVsJywgJ3Nob3dUaXRsZScsICdzdWJtaXRCdXR0b25Qcm9wcycsICdzdWJ0aXRsZScsICdzdWNjZXNzJywgJ3Rhc2tPcHRpb25zJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYXZhaWxhYmlsaXR5LWNvbnRhY3QtZm9ybScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGFya1RoZW1lJywgJ2xhbmd1YWdlJywgJ3Nob3dBdmFpbGFiaWxpdHlDb250YWN0Rm9ybScsICdzaG93SW5wdXRMYWJlbCcsICdzaG93VGl0bGUnLCAnc3VibWl0QnV0dG9uUHJvcHMnLCAnc3VidGl0bGUnLCAnc3VjY2VzcycsICd0YXNrT3B0aW9ucycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBdmFpbGFiaWxpdHlDb250YWN0Rm9ybSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rhc2tDcmVhdGlvblN1Y2Nlc3MnLCAndGFza0NyZWF0aW9uRmFpbGVkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEF2YWlsYWJpbGl0eUNvbnRhY3RGb3JtIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRBdmFpbGFiaWxpdHlDb250YWN0Rm9ybSB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgZW1pdHRlZCBpZiB0aGUgdGFzayBjcmVhdGlvbiB3YXMgc3VjY2Vzc2Z1bC5cbiAgICovXG4gIHRhc2tDcmVhdGlvblN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBlbWl0dGVkIGlmIHRoZSB0YXNrIGNyZWF0aW9uIGZhaWxlZC5cbiAgICovXG4gIHRhc2tDcmVhdGlvbkZhaWxlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFuZ3VhZ2UnLCAndGhlbWUnXSxcbiAgbWV0aG9kczogWydvcGVuJywgJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYjJiLWNoZWNrLW91dC1mb3JtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYW5ndWFnZScsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRCMmJDaGVja091dEZvcm0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdWJtaXQtY2hlY2stb3V0LWZvcm0nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QjJiQ2hlY2tPdXRGb3JtIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRCMmJDaGVja091dEZvcm0ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdCB3aGVuIGZvcm0gZmlsbGVkIHN1Y2Nlc3NmdWxseVxuICAgKi9cbiAgJ3N1Ym1pdC1jaGVjay1vdXQtZm9ybSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY291bnQnLCAnaXNTZWxlY3RlZCcsICdvcHRpb25zJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYjJiLWNvbXBhcmUtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY291bnQnLCAnaXNTZWxlY3RlZCcsICdvcHRpb25zJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEIyYkNvbXBhcmVDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY291bnRDaGFuZ2UnLCAnc2VsZWN0ZWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEIyYkNhcmRVcGRhdGVFdmVudCBhcyBJVGV0QjJiQ29tcGFyZUNhcmRCMmJDYXJkVXBkYXRlRXZlbnQgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEIyYkNvbXBhcmVDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRCMmJDb21wYXJlQ2FyZCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2hhbmdlcyB0aGUgcXVhbnRpdHkgY291bnRlciB2YWx1ZSBhbmQgc3VibWl0czsgb3Igb24gY2FyZCBjbG9zZSBldmVudC4gQGV2ZW50IHVuZGVmaW5lZFxuICAgKi9cbiAgY291bnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QjJiQ29tcGFyZUNhcmRCMmJDYXJkVXBkYXRlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBpcyBjbGlja2VkIHRvIGNoYW5nZSBpdHMgc2VsZWN0ZWQgc3RhdGUgQGV2ZW50IHVuZGVmaW5lZFxuICAgKi9cbiAgc2VsZWN0ZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3N0aWNreVJlZkVsJywgJ3RoZW1lJ10sXG4gIG1ldGhvZHM6IFsnc2V0U3VibWl0Rm9ybVN0YXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYjJiLWNvbmZpZ3VyYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RpY2t5UmVmRWwnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QjJiQ29uZmlndXJhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY29tcGFyZUxpbmtDbGljaycsICdiMmJDb25maWd1cmF0b3JTdWJtaXQnLCAnc3VjY2Vzc0Nsb3NlQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEIyQlN1Ym1pdCBhcyBJVGV0QjJiQ29uZmlndXJhdG9yQjJCU3VibWl0IH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRCMmJDb25maWd1cmF0b3IgZXh0ZW5kcyBDb21wb25lbnRzLlRldEIyYkNvbmZpZ3VyYXRvciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbXBhcmUgbGluayBmb3IgYSBjYXRlZ29yeSBpcyBjbGlja2VkLlxuICAgKi9cbiAgY29tcGFyZUxpbmtDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogVGhlIHN1Ym1pdCBldmVudCBvZiB0aGUgQjJCIGNvbmZpZ3VyYXRvci5cbiAgICovXG4gIGIyYkNvbmZpZ3VyYXRvclN1Ym1pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRCMmJDb25maWd1cmF0b3JCMkJTdWJtaXQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xvc2UgYnV0dG9uIG9mIHN1Y2Nlc3MgbW9kYWwgaXMgY2xpY2tlZC5cbiAgICovXG4gIHN1Y2Nlc3NDbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRleHQnLCAnZGF0YScsICdpc0NhcnRFbXB0eScsICdpc0Rlc2t0b3BSZXNvbHV0aW9uJywgJ3RoZW1lJ10sXG4gIG1ldGhvZHM6IFsnY2hhbmdlQmxvY2tTdGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWIyYi1jb25maWd1cmF0b3ItY2FydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGV4dCcsICdkYXRhJywgJ2lzQ2FydEVtcHR5JywgJ2lzRGVza3RvcFJlc29sdXRpb24nLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QjJiQ29uZmlndXJhdG9yQ2FydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEIyYkNvbmZpZ3VyYXRvckNhcnQgZXh0ZW5kcyBDb21wb25lbnRzLlRldEIyYkNvbmZpZ3VyYXRvckNhcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZHVyYXRpb24nLCAnbGFuZ3VhZ2UnLCAnbW9iaWxlTGF5b3V0JywgJ3BhdXNlZCcsICdzbGlkZXMnLCAndGhlbWUnXSxcbiAgbWV0aG9kczogWydwYXVzZScsICdwbGF5JywgJ2dvVG8nLCAnbmV4dCcsICdwcmV2aW91cycsICdnZXRDdXJyZW50U2xpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1iYW5uZXItbmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkdXJhdGlvbicsICdsYW5ndWFnZScsICdtb2JpbGVMYXlvdXQnLCAncGF1c2VkJywgJ3NsaWRlcycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRCYW5uZXJOYXYge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzbGlkZUNoYW5nZScsICdwYXVzZVN0YXRlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEJhbm5lck5hdiBleHRlbmRzIENvbXBvbmVudHMuVGV0QmFubmVyTmF2IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBzbGlkZSBjaGFuZ2VzXG4gICAqL1xuICBzbGlkZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgcHJldmlvdXNJbmRleDogbnVtYmVyOyBzb3VyY2UgOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHBhdXNlIHN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHBhdXNlU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHBhdXNlZDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2RhdGEnLCAnZGF0YU9yZGVyJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4VmFsdWUnLCAnbWluVmFsdWUnLCAncGFyZW50Q29udGFpbmVyJywgJ3NpemUnLCAndGhlbWUnLCAndmFsdWVQb3NpdGlvbicsICd2YWx1ZVVuaXQnLCAnd2l0aEdyaWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1iYXItZ3JhcGgnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2RhdGEnLCAnZGF0YU9yZGVyJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4VmFsdWUnLCAnbWluVmFsdWUnLCAncGFyZW50Q29udGFpbmVyJywgJ3NpemUnLCAndGhlbWUnLCAndmFsdWVQb3NpdGlvbicsICd2YWx1ZVVuaXQnLCAnd2l0aEdyaWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QmFyR3JhcGgge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRCYXJHcmFwaCBleHRlbmRzIENvbXBvbmVudHMuVGV0QmFyR3JhcGgge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWRkcmVzc0tleScsICdsYW5ndWFnZScsICdzaG93SGVhZGluZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1idXNpbmVzcy1saW5lcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWRkcmVzc0tleScsICdsYW5ndWFnZScsICdzaG93SGVhZGluZ3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QnVzaW5lc3NMaW5lcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2J1c2luZXNzTGluZVNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBCdXNpbmVzc0xpbmUgYXMgSVRldEJ1c2luZXNzTGluZXNCdXNpbmVzc0xpbmUgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEJ1c2luZXNzTGluZXMgZXh0ZW5kcyBDb21wb25lbnRzLlRldEJ1c2luZXNzTGluZXMge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIGJ1c2luZXNzIGxpbmUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBidXNpbmVzc0xpbmVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRCdXNpbmVzc0xpbmVzQnVzaW5lc3NMaW5lPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21lbnVJdGVtcycsICd0aGVtZSddLFxuICBtZXRob2RzOiBbJ3NlbGVjdE1lbnVJdGVtJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYnVzaW5lc3MtbmF2aWdhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbWVudUl0ZW1zJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEJ1c2luZXNzTmF2aWdhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21lbnUtY2xpY2stZXZlbnQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QnVzaW5lc3NOYXZpZ2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRCdXNpbmVzc05hdmlnYXRpb24ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlciBmb3IgbWVudSBpdGVtIGNsaWNrIHBhc3NpbmcgbWVudSBpZFxuICAgKi9cbiAgJ21lbnUtY2xpY2stZXZlbnQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpZDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGF5b3V0JywgJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYnVzaW5lc3Mtcm91bmQtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGF5b3V0JywgJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEJ1c2luZXNzUm91bmRTdGVwcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QnVzaW5lc3NSb3VuZFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldEJ1c2luZXNzUm91bmRTdGVwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRleHQnLCAnY29udHJhY3RUZXJtJywgJ2N1cnJlbmN5JywgJ2Rpc2NvdW50UHJpY2UnLCAnbGFuZ3VhZ2UnLCAnbWF4VmFsdWUnLCAnbWluVmFsdWUnLCAncHJpY2UnLCAncHJvZHVjdERlc2NyaXB0aW9uJywgJ3Byb2R1Y3ROYW1lJywgJ3N0ZXBwZXJMYWJlbCcsICd0aGVtZScsICd2YWx1ZScsICd3aXRoU3RlcHBlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWJ1c2luZXNzLXN1bW1hcnktY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGV4dCcsICdjb250cmFjdFRlcm0nLCAnY3VycmVuY3knLCAnZGlzY291bnRQcmljZScsICdsYW5ndWFnZScsICdtYXhWYWx1ZScsICdtaW5WYWx1ZScsICdwcmljZScsICdwcm9kdWN0RGVzY3JpcHRpb24nLCAncHJvZHVjdE5hbWUnLCAnc3RlcHBlckxhYmVsJywgJ3RoZW1lJywgJ3ZhbHVlJywgJ3dpdGhTdGVwcGVyJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEJ1c2luZXNzU3VtbWFyeUNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydlZGl0QnV0dG9uQ2xpY2snLCAnZGVsZXRlQnV0dG9uQ2xpY2snLCAnYW1vdW50Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEJ1c2luZXNzU3VtbWFyeUNhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlRldEJ1c2luZXNzU3VtbWFyeUNhcmQge1xuICAvKipcbiAgICogRW1pdCBldmVudCB3aGVuIEVkaXQgYnV0dG9uIGNsaWNrZWRcbiAgICovXG4gIGVkaXRCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogRW1pdCBldmVudCB3aGVuIERlbGV0ZSBidXR0b24gY2xpY2tlZFxuICAgKi9cbiAgZGVsZXRlQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEVtaXQgZXZlbnQgd2hlbiBhbW91bnQgb2YgcHJvZHVjdHMgY2hhbmdlZFxuICAgKi9cbiAgYW1vdW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2Vzc2liaWxpdHlMYWJlbCcsICdjbGlja0NhbGxiYWNrJywgJ2Rpc2FibGVkJywgJ2VsZW1lbnRJZCcsICdpY29uTW9kZScsICdpY29uTmFtZScsICdpY29uUG9zaXRpb24nLCAnc2l6ZScsICd0aGVtZScsICd0eXBlJywgJ3VybCcsICd1cmxUYXJnZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2Vzc2liaWxpdHlMYWJlbCcsICdjbGlja0NhbGxiYWNrJywgJ2Rpc2FibGVkJywgJ2VsZW1lbnRJZCcsICdpY29uTW9kZScsICdpY29uTmFtZScsICdpY29uUG9zaXRpb24nLCAnc2l6ZScsICd0aGVtZScsICd0eXBlJywgJ3VybCcsICd1cmxUYXJnZXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uSWNvbkxlZnQnLCAnYnV0dG9uSWNvblJpZ2h0JywgJ2xhYmVsJywgJ2xhbmd1YWdlJywgJ21heERvdHMnLCAnc2hvd0J1dHRvbnMnLCAnc2hvd0RvdHMnLCAnc2hvd0dyYWRpZW50JywgJ3N3aXBlVGhyZXNob2xkJywgJ3RoZW1lJywgJ3RyYW5zaXRpb25EdXJhdGlvbicsICd0cmFuc2l0aW9uVGltaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkljb25MZWZ0JywgJ2J1dHRvbkljb25SaWdodCcsICdsYWJlbCcsICdsYW5ndWFnZScsICdtYXhEb3RzJywgJ3Nob3dCdXR0b25zJywgJ3Nob3dEb3RzJywgJ3Nob3dHcmFkaWVudCcsICdzd2lwZVRocmVzaG9sZCcsICd0aGVtZScsICd0cmFuc2l0aW9uRHVyYXRpb24nLCAndHJhbnNpdGlvblRpbWluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldENhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRDYXJvdXNlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldENoZWNrZWQnLCAnc2V0SW5kZXRlcm1pbmF0ZScsICdzZXRFcnJvciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NoZWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBDaGVja2JveENoZWNrRXZlbnRJbnRlcmZhY2UgYXMgSVRldENoZWNrYm94Q2hlY2tib3hDaGVja0V2ZW50SW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuVGV0Q2hlY2tib3gge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciB0aGUgY29udHJvbCBlbGVtZW50IGlzIGNoZWNrZWQuXG4gICAqL1xuICBjaGVjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRDaGVja2JveENoZWNrYm94Q2hlY2tFdmVudEludGVyZmFjZT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYW5ndWFnZScsICdsb2FkaW5nJywgJ3ByaXZhY3lQb2xpY3lMaW5rVXJsJywgJ3Nob3dPdmVybGF5JywgJ3RoZW1lJ10sXG4gIG1ldGhvZHM6IFsnb3BlbicsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWNsb3VkLWFwcGxpY2F0aW9uLWZvcm0tZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYW5ndWFnZScsICdsb2FkaW5nJywgJ3ByaXZhY3lQb2xpY3lMaW5rVXJsJywgJ3Nob3dPdmVybGF5JywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldENsb3VkQXBwbGljYXRpb25Gb3JtRGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3VibWl0dGVkJywgJ2Nsb3NlRGlhbG9nJywgJ29wZW5EaWFsb2cnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFRldEFwcGxpY2F0aW9uRm9ybURpYWxvZ1N1Ym1pc3Npb25EYXRhIGFzIElUZXRDbG91ZEFwcGxpY2F0aW9uRm9ybURpYWxvZ1RldEFwcGxpY2F0aW9uRm9ybURpYWxvZ1N1Ym1pc3Npb25EYXRhIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDbG91ZEFwcGxpY2F0aW9uRm9ybURpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuVGV0Q2xvdWRBcHBsaWNhdGlvbkZvcm1EaWFsb2cge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciBhcHBsaWNhdGlvbiBmb3JtIGlzIHN1Y2Nlc3NmdWxseSBzdWJtaXR0ZWQuXG4gICAqL1xuICBzdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0Q2xvdWRBcHBsaWNhdGlvbkZvcm1EaWFsb2dUZXRBcHBsaWNhdGlvbkZvcm1EaWFsb2dTdWJtaXNzaW9uRGF0YT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgb24gdGhlIGBjbG9zZWAgaWNvbiBjbGljaywgb3ZlcmxheSBjbGljayBvciB0aGUgYGVzY2Aga2V5IHByZXNzLlxuICAgKi9cbiAgY2xvc2VEaWFsb2c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdG8gYmUgZW1pdHRlZCB3aGVuIHRoZSBkaWFsb2cgaXMgb3BlbmVkLlxuICAgKi9cbiAgb3BlbkRpYWxvZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyU2VsZWN0b3InLCAnbGFuZ3VhZ2UnLCAnc2VsZWN0T25Gb2N1cycsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWNsb3VkLWNvbmZpZ3VyYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyU2VsZWN0b3InLCAnbGFuZ3VhZ2UnLCAnc2VsZWN0T25Gb2N1cycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDbG91ZENvbmZpZ3VyYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3VkQ2FsY3VsYXRvclN1Ym1pdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDbG91ZENvbmZpZ3VyYXRvciBleHRlbmRzIENvbXBvbmVudHMuVGV0Q2xvdWRDb25maWd1cmF0b3Ige1xuICAvKipcbiAgICogVGhlIHN1Ym1pdCBldmVudCBvZiB0aGUgZm9ybS5cbiAgICovXG4gIGNsb3VkQ2FsY3VsYXRvclN1Ym1pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiZW5lZml0VGl0bGUnLCAnYmVuZWZpdHMnLCAnYmVzdENob2ljZScsICdiZXN0Q2hvaWNlVGV4dCcsICdiZXN0Q2hvaWNlVGV4dFBvc2l0aW9uJywgJ2JvbnVzZXMnLCAnYnV0dG9uVGl0bGUnLCAnY2FyZEJhY2tncm91bmRDb2xvcicsICdjYXJkU2NyaXB0JywgJ2NhcmRUeXBlJywgJ2NsaWNrQ2FsbGJhY2snLCAnY29sb3JJY29ucycsICdjb250cmFjdFRlcm0nLCAnY3VycmVuY3knLCAnZGFya01vZGUnLCAnZHJvcGRvd25PcHRpb25zJywgJ2xhbmd1YWdlJywgJ2xpbmtPcGVuQmxhbmsnLCAnb3B0aW9ucycsICdzZWNvbmRhcnlMaW5rJywgJ3NlY29uZGFyeUxpbmtPcGVuQmxhbmsnLCAnc2Vjb25kYXJ5TGlua1RleHQnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1jb21wYXJlLWNhcmQtdjInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JlbmVmaXRUaXRsZScsICdiZW5lZml0cycsICdiZXN0Q2hvaWNlJywgJ2Jlc3RDaG9pY2VUZXh0JywgJ2Jlc3RDaG9pY2VUZXh0UG9zaXRpb24nLCAnYm9udXNlcycsICdidXR0b25UaXRsZScsICdjYXJkQmFja2dyb3VuZENvbG9yJywgJ2NhcmRTY3JpcHQnLCAnY2FyZFR5cGUnLCAnY2xpY2tDYWxsYmFjaycsICdjb2xvckljb25zJywgJ2NvbnRyYWN0VGVybScsICdjdXJyZW5jeScsICdkYXJrTW9kZScsICdkcm9wZG93bk9wdGlvbnMnLCAnbGFuZ3VhZ2UnLCAnbGlua09wZW5CbGFuaycsICdvcHRpb25zJywgJ3NlY29uZGFyeUxpbmsnLCAnc2Vjb25kYXJ5TGlua09wZW5CbGFuaycsICdzZWNvbmRhcnlMaW5rVGV4dCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDb21wYXJlQ2FyZFYyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2FyZExvYWRlZCcsICdwcm9kdWN0Q2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDb21wYXJlQ2FyZFYyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRDb21wYXJlQ2FyZFYyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBoYXMgbG9hZGVkLlxuICAgKi9cbiAgY2FyZExvYWRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgcHJvZHVjdCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHByb2R1Y3RDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXJrVGhlbWUnLCAnbGFuZ3VhZ2UnLCAnc2hvd0lucHV0TGFiZWwnLCAnc2hvd1RpdGxlJywgJ3N1Ym1pdEJ1dHRvblByb3BzJywgJ3N1YnRpdGxlJywgJ3Rhc2tPcHRpb25zJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtY29udGFjdC1mb3JtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXJrVGhlbWUnLCAnbGFuZ3VhZ2UnLCAnc2hvd0lucHV0TGFiZWwnLCAnc2hvd1RpdGxlJywgJ3N1Ym1pdEJ1dHRvblByb3BzJywgJ3N1YnRpdGxlJywgJ3Rhc2tPcHRpb25zJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldENvbnRhY3RGb3JtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGFza0NyZWF0aW9uU3VjY2VzcycsICd0YXNrQ3JlYXRpb25GYWlsZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0Q29udGFjdEZvcm0gZXh0ZW5kcyBDb21wb25lbnRzLlRldENvbnRhY3RGb3JtIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBlbWl0dGVkIGlmIHRoZSB0YXNrIGNyZWF0aW9uIHdhcyBzdWNjZXNzZnVsLlxuICAgKi9cbiAgdGFza0NyZWF0aW9uU3VjY2VzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IGVtaXR0ZWQgaWYgdGhlIHRhc2sgY3JlYXRpb24gZmFpbGVkLlxuICAgKi9cbiAgdGFza0NyZWF0aW9uRmFpbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRhY3RCbG9ja3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1jb250YWN0LWluZm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRhY3RCbG9ja3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0Q29udGFjdEluZm8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDb250YWN0SW5mbyBleHRlbmRzIENvbXBvbmVudHMuVGV0Q29udGFjdEluZm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlnaGxpZ2h0YWJsZScsICdzZWxlY3RlZCcsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlnaGxpZ2h0YWJsZScsICdzZWxlY3RlZCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2Nlc3NUb2tlbicsICdkYXJrVGhlbWUnLCAnZ3JvdXBCeUFkZHJlc3MnLCAnaGlkZUFzc2V0cycsICdsb2FkZXJFbGVtZW50c0NvdW50JywgJ3BpZCcsICdzYWxlc2ZvcmNlQWNjb3VudElkJywgJ3NpbmdsZUxvYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWN1c3RvbWVyLWFzc2V0cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzVG9rZW4nLCAnZGFya1RoZW1lJywgJ2dyb3VwQnlBZGRyZXNzJywgJ2hpZGVBc3NldHMnLCAnbG9hZGVyRWxlbWVudHNDb3VudCcsICdwaWQnLCAnc2FsZXNmb3JjZUFjY291bnRJZCcsICdzaW5nbGVMb2FkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0Q3VzdG9tZXJBc3NldHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhc3NldFNlbGVjdGVkJywgJ2Fzc2V0c1VwZGF0ZWQnLCAnY3VzdG9tZXJOb3RGb3VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ3VzdG9tZXJBc3NldCBhcyBJVGV0Q3VzdG9tZXJBc3NldHNDdXN0b21lckFzc2V0IH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbWVyTm90Rm91bmQgYXMgSVRldEN1c3RvbWVyQXNzZXRzQ3VzdG9tZXJOb3RGb3VuZCB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0Q3VzdG9tZXJBc3NldHMgZXh0ZW5kcyBDb21wb25lbnRzLlRldEN1c3RvbWVyQXNzZXRzIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB1c2VyIHNlbGVjdHMgYW4gYXNzZXQuXG4gICAqL1xuICBhc3NldFNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEN1c3RvbWVyQXNzZXRzQ3VzdG9tZXJBc3NldD4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciBhc3NldHMgY2hhbmdlLlxuICAgKi9cbiAgYXNzZXRzVXBkYXRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRDdXN0b21lckFzc2V0c0N1c3RvbWVyQXNzZXRbXT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIG5vIFNhbGVzZm9yY2UgY3VzdG9tZXIgaXMgZm91bmQgZm9yIHRoZSBnaXZlbiBQSUQuXG4gICAqL1xuICBjdXN0b21lck5vdEZvdW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEN1c3RvbWVyQXNzZXRzQ3VzdG9tZXJOb3RGb3VuZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRlJywgJ2RhdGVwaWNrZXJWaWV3JywgJ2lzT3BlbicsICdsb2NhbGUnLCAnb3ZlcmxheUVmZmVjdCcsICdyYW5nZVBpY2tlck1vZGUnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVJc09wZW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRlJywgJ2RhdGVwaWNrZXJWaWV3JywgJ2lzT3BlbicsICdsb2NhbGUnLCAnb3ZlcmxheUVmZmVjdCcsICdyYW5nZVBpY2tlck1vZGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2RhdGVDaGFuZ2VkJywgJ3JhbmdlRGF0ZXNDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldERhdGVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldERhdGVwaWNrZXIge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiBkYXRlIHdpbGwgY2hhbmdlLlxuICAgKi9cbiAgZGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxEYXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZCB3aGVuIGF0IGxlYXN0IG9uZSBvZiB0aGUgcmFuZ2UgZGF0ZXMgd2lsbCBjaGFuZ2UuXG4gICAqL1xuICByYW5nZURhdGVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PERhdGVbXT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRlcGlja2VyVmlldycsICdpbnRlcm5hbERhdGUnLCAnbG9jYWxlJywgJ3NlbGVjdGVkRGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWRhdGVwaWNrZXItaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRlcGlja2VyVmlldycsICdpbnRlcm5hbERhdGUnLCAnbG9jYWxlJywgJ3NlbGVjdGVkRGF0ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXREYXRlcGlja2VySGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW50ZXJuYWxEYXRlQ2hhbmdlZCcsICdkYXRlcGlja2VyVmlld0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERhdGVwaWNrZXJWaWV3IGFzIElUZXREYXRlcGlja2VySGVhZGVyRGF0ZXBpY2tlclZpZXcgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldERhdGVwaWNrZXJIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldERhdGVwaWNrZXJIZWFkZXIge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiB0aGUgaW50ZXJuYWwgZGF0ZSB3aWxsIGNoYW5nZS5cbiAgICovXG4gIGludGVybmFsRGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxEYXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZCB3aGVuIHRoZSBkYXRlcGlja2VyIHZpZXcgd2lsbCBjaGFuZ2UuXG4gICAqL1xuICBkYXRlcGlja2VyVmlld0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0RGF0ZXBpY2tlckhlYWRlckRhdGVwaWNrZXJWaWV3Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ludGVybmFsRGF0ZScsICdyYW5nZURhdGVzJywgJ3JhbmdlUGlja2VyTW9kZScsICdzZWxlY3RlZERhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1kYXRlcGlja2VyLW1vbnRoLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ludGVybmFsRGF0ZScsICdyYW5nZURhdGVzJywgJ3JhbmdlUGlja2VyTW9kZScsICdzZWxlY3RlZERhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGF0ZXBpY2tlck1vbnRoVmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2ludGVybmFsRGF0ZUNoYW5nZWQnLCAnZGF0ZUNoYW5nZWQnLCAnZGF0ZXBpY2tlckNsb3NlZCcsICdyYW5nZURhdGVTZXQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERhdGVwaWNrZXJSYW5nZVNldERhdGEgYXMgSVRldERhdGVwaWNrZXJNb250aFZpZXdEYXRlcGlja2VyUmFuZ2VTZXREYXRhIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXREYXRlcGlja2VyTW9udGhWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXREYXRlcGlja2VyTW9udGhWaWV3IHtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgd2lsbCBiZSBlbWl0dGVkIHdoZW4gdGhlIGludGVybmFsIGRhdGUgd2lsbCBjaGFuZ2UuXG4gICAqL1xuICBpbnRlcm5hbERhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8RGF0ZT4+O1xuICAvKipcbiAgICogRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiBkYXRlIHdpbGwgY2hhbmdlLlxuICAgKi9cbiAgZGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxEYXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZCB3aGVuIHRoZSBkYXRlcGlja2VyIHdpbGwgYmUgY2xvc2VkLlxuICAgKi9cbiAgZGF0ZXBpY2tlckNsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgd2lsbCBiZSBlbWl0dGVkIHdoZW4gb25lIG9mIHRoZSByYW5nZSBkYXRlcyB3aWxsIGJlIHNldC5cbiAgICovXG4gIHJhbmdlRGF0ZVNldDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXREYXRlcGlja2VyTW9udGhWaWV3RGF0ZXBpY2tlclJhbmdlU2V0RGF0YT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbnRlcm5hbERhdGUnLCAnc2VsZWN0ZWREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtZGF0ZXBpY2tlci1tdWx0aS15ZWFyLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ludGVybmFsRGF0ZScsICdzZWxlY3RlZERhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGF0ZXBpY2tlck11bHRpWWVhclZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnRlcm5hbERhdGVDaGFuZ2VkJywgJ2RhdGVwaWNrZXJWaWV3Q2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRGF0ZXBpY2tlclZpZXcgYXMgSVRldERhdGVwaWNrZXJNdWx0aVllYXJWaWV3RGF0ZXBpY2tlclZpZXcgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldERhdGVwaWNrZXJNdWx0aVllYXJWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXREYXRlcGlja2VyTXVsdGlZZWFyVmlldyB7XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBkYXRlIGNoYW5nZWQgZXZlbnQuXG4gICAqL1xuICBpbnRlcm5hbERhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8RGF0ZT4+O1xuICAvKipcbiAgICogRGF0ZXBpY2tlciB2aWV3IGNoYW5nZWQgZXZlbnQuXG4gICAqL1xuICBkYXRlcGlja2VyVmlld0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0RGF0ZXBpY2tlck11bHRpWWVhclZpZXdEYXRlcGlja2VyVmlldz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbnRlcm5hbERhdGUnLCAnc2VsZWN0ZWREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtZGF0ZXBpY2tlci15ZWFyLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ludGVybmFsRGF0ZScsICdzZWxlY3RlZERhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGF0ZXBpY2tlclllYXJWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW50ZXJuYWxEYXRlQ2hhbmdlZCcsICdkYXRlcGlja2VyVmlld0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERhdGVwaWNrZXJWaWV3IGFzIElUZXREYXRlcGlja2VyWWVhclZpZXdEYXRlcGlja2VyVmlldyB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0RGF0ZXBpY2tlclllYXJWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXREYXRlcGlja2VyWWVhclZpZXcge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiB0aGUgaW50ZXJuYWwgZGF0ZSB3aWxsIGNoYW5nZS5cbiAgICovXG4gIGludGVybmFsRGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxEYXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZCB3aGVuIHRoZSBkYXRlcGlja2VyIHZpZXcgd2lsbCBjaGFuZ2UuXG4gICAqL1xuICBkYXRlcGlja2VyVmlld0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0RGF0ZXBpY2tlclllYXJWaWV3RGF0ZXBpY2tlclZpZXc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VPbkVzY2FwZScsICdjbG9zZU9uT3ZlcmxheUNsaWNrJywgJ2Zvb3RlckRpc3BsYXknLCAnaGVhZGVyVGl0bGUnLCAnaGlkZUNsb3NlQnV0dG9uJywgJ2hpZGVIZWFkZXInLCAnaXNPcGVuJywgJ3ByZXZlbnREZWZhdWx0Q2xvc2UnLCAnc2hvd0hlYWRlckRpdmlkZXInLCAndGhlbWUnLCAndGl0bGVJZCddLFxuICBtZXRob2RzOiBbJ29wZW4nLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlT25Fc2NhcGUnLCAnY2xvc2VPbk92ZXJsYXlDbGljaycsICdmb290ZXJEaXNwbGF5JywgJ2hlYWRlclRpdGxlJywgJ2hpZGVDbG9zZUJ1dHRvbicsICdoaWRlSGVhZGVyJywgJ2lzT3BlbicsICdwcmV2ZW50RGVmYXVsdENsb3NlJywgJ3Nob3dIZWFkZXJEaXZpZGVyJywgJ3RoZW1lJywgJ3RpdGxlSWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2VEaWFsb2cnLCAnb3BlbkRpYWxvZyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXREaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLlRldERpYWxvZyB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdG8gYmUgZW1pdHRlZCBvbiB0aGUgYGNsb3NlYCBpY29uIGNsaWNrLCBvdmVybGF5IGNsaWNrIG9yIHRoZSBgZXNjYCBrZXkgcHJlc3MuXG4gICAqL1xuICBjbG9zZURpYWxvZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIGlzIG9wZW5lZC5cbiAgICovXG4gIG9wZW5EaWFsb2c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV2ZW50VHlwZTogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsb3dNdWx0aXBsZScsICdidXR0b25MYWJlbCcsICdjbG9zZU9uU2VsZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2ZsZXhMYXlvdXQnLCAnbGFiZWwnLCAnbGFiZWxMb2dvJywgJ2xhYmVsTG9nb0dyYXlzY2FsZScsICdsYWJlbFJpZ2h0JywgJ2xhYmVsUmlnaHRDb2xvcicsICdsYWJlbFN1YlRleHQnLCAnb3B0aW9ucycsICd0aGVtZSddLFxuICBtZXRob2RzOiBbJ2dldFNlbGVjdGVkT3B0aW9ucycsICdzZWxlY3RPcHRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dNdWx0aXBsZScsICdidXR0b25MYWJlbCcsICdjbG9zZU9uU2VsZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2ZsZXhMYXlvdXQnLCAnbGFiZWwnLCAnbGFiZWxMb2dvJywgJ2xhYmVsTG9nb0dyYXlzY2FsZScsICdsYWJlbFJpZ2h0JywgJ2xhYmVsUmlnaHRDb2xvcicsICdsYWJlbFN1YlRleHQnLCAnb3B0aW9ucycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXREcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wdGlvblNlbGVjdGVkJywgJ29wdGlvbkNoZWNrZWQnLCAnb3B0aW9uc0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERyb3Bkb3duT3B0aW9uSW50ZXJmYWNlIGFzIElUZXREcm9wZG93bkRyb3Bkb3duT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdGVkT3B0aW9uSW50ZXJmYWNlIGFzIElUZXREcm9wZG93blNlbGVjdGVkT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXREcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGV0RHJvcGRvd24ge1xuICAvKipcbiAgICogVHJpZ2dlcnMgd2hlbmV2ZXIgYSBzaW5nbGUgb3B0aW9uIGlzIHNlbGVjdGVkIGFuZCByZXR1cm5zIHRoZSBvcHRpb24uXG4gICAqL1xuICBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXREcm9wZG93bkRyb3Bkb3duT3B0aW9uSW50ZXJmYWNlPj47XG4gIC8qKlxuICAgKiBUcmlnZ2VycyB3aGVuZXZlciBhIG11bHRpLXNlbGVjdGFibGUgb3B0aW9uIGlzIGNoZWNrZWQvdW5jaGVja2VkLlxuICAgKi9cbiAgb3B0aW9uQ2hlY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXREcm9wZG93blNlbGVjdGVkT3B0aW9uSW50ZXJmYWNlPj47XG4gIC8qKlxuICAgKiBUcmlnZ2VycyB3aGVuZXZlciBhbiBvcHRpb24gaXMgY2hhbmdlZCBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgYWxsIHNlbGVjdGVkIG9wdGlvbnMuXG4gICAqL1xuICBvcHRpb25zQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXREcm9wZG93bkRyb3Bkb3duT3B0aW9uSW50ZXJmYWNlW10+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FyZFRpdGxlJywgJ2RhdGVUYWcnLCAnZGF0ZVRhZ0NvbG9yRGFyaycsICdkYXRlVGFnQ29sb3JMaWdodCcsICdpbmRleCcsICdpc0luQ2Fyb3VzZWwnLCAnbGlua0hyZWYnLCAnbGlua05ld1RhYicsICdsaW5rVGV4dCcsICdwaWN0dXJlTGF5b3V0U2hpZnRQb3NpdGlvbicsICdwcmljZVRhZ09wdGlvbnMnLCAnc2l6ZScsICdzaXplQ2hhbmdlQnJlYWtwb2ludCcsICdzdWJ0aXRsZScsICd0YWdzJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtZHluYW1pYy1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXJkVGl0bGUnLCAnZGF0ZVRhZycsICdkYXRlVGFnQ29sb3JEYXJrJywgJ2RhdGVUYWdDb2xvckxpZ2h0JywgJ2luZGV4JywgJ2lzSW5DYXJvdXNlbCcsICdsaW5rSHJlZicsICdsaW5rTmV3VGFiJywgJ2xpbmtUZXh0JywgJ3BpY3R1cmVMYXlvdXRTaGlmdFBvc2l0aW9uJywgJ3ByaWNlVGFnT3B0aW9ucycsICdzaXplJywgJ3NpemVDaGFuZ2VCcmVha3BvaW50JywgJ3N1YnRpdGxlJywgJ3RhZ3MnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RHluYW1pY0NhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZXREeW5hbWljQ2FyZENsaWNrRXZlbnQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0RHluYW1pY0NhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlRldER5bmFtaWNDYXJkIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBpcyBjbGlja2VkXG4gICAqL1xuICB0ZXREeW5hbWljQ2FyZENsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2Vzc2liaWxpdHlMYWJlbCcsICdhbmltYXRpb25EdXJhdGlvbicsICdjbGFzcycsICdjbG9zZUlucHV0VGV4dCcsICdjbG9zZWRXaWR0aCcsICdkYXJrTW9kZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdpY29uTGVmdCcsICdpY29uUmlnaHQnLCAnaWNvblJpZ2h0Q2xpY2tDYWxsYmFjaycsICdtYW51YWxWYWxpZGF0aW9uJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAnc2l6ZScsICd0aGVtZScsICd2YWxpZGF0b3JzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0SW5wdXRIdG1sRWxlbWVudCcsICdnZXRFcnJvcnMnLCAndmFsaWRhdGVJbnB1dCcsICdzZXRTdGF0ZScsICdjbGVhciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWV4cGFuZGFibGUtaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2Vzc2liaWxpdHlMYWJlbCcsICdhbmltYXRpb25EdXJhdGlvbicsICdjbGFzcycsICdjbG9zZUlucHV0VGV4dCcsICdjbG9zZWRXaWR0aCcsICdkYXJrTW9kZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdpY29uTGVmdCcsICdpY29uUmlnaHQnLCAnaWNvblJpZ2h0Q2xpY2tDYWxsYmFjaycsICdtYW51YWxWYWxpZGF0aW9uJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAnc2l6ZScsICd0aGVtZScsICd2YWxpZGF0b3JzJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEV4cGFuZGFibGVJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JlZm9yZS1zdGF0ZS1jaGFuZ2UnLCAnYWZ0ZXItc3RhdGUtY2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZUNoYW5nZUludGVyZmFjZSBhcyBJVGV0RXhwYW5kYWJsZUlucHV0U3RhdGVDaGFuZ2VJbnRlcmZhY2UgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEV4cGFuZGFibGVJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuVGV0RXhwYW5kYWJsZUlucHV0IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBlbWl0dGVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGV4cGFuZGluZyBvciBzaHJpbmtpbmcgYW5pbWF0aW9uIG9mIHRoZSBpbnB1dC5cbiAgICovXG4gICdiZWZvcmUtc3RhdGUtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRFeHBhbmRhYmxlSW5wdXRTdGF0ZUNoYW5nZUludGVyZmFjZT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgZXhwYW5kaW5nIG9yIHNocmlua2luZyBhbmltYXRpb24gb2YgdGhlIGlucHV0LlxuICAgKi9cbiAgJ2FmdGVyLXN0YXRlLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0RXhwYW5kYWJsZUlucHV0U3RhdGVDaGFuZ2VJbnRlcmZhY2U+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW5pdGlhbFN0YXRlJywgJ3RvZ2dsZUVsZW1lbnQnXSxcbiAgbWV0aG9kczogWydvcGVuJywgJ2Nsb3NlJywgJ3RvZ2dsZScsICdnZXRTdGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWV4cGFuc2lvbi1wYW5lbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaW5pdGlhbFN0YXRlJywgJ3RvZ2dsZUVsZW1lbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RXhwYW5zaW9uUGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRFeHBhbnNpb25QYW5lbCBleHRlbmRzIENvbXBvbmVudHMuVGV0RXhwYW5zaW9uUGFuZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xlYXJGaWx0ZXJCdXR0b25UaXRsZScsICdzaG93Q2xlYXJGaWx0ZXJCdXR0b24nLCAndGFncycsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWZpbHRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xlYXJGaWx0ZXJCdXR0b25UaXRsZScsICdzaG93Q2xlYXJGaWx0ZXJCdXR0b24nLCAndGFncycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRGaWx0ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydmaWx0ZXJDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEZpbHRlclN0YXRlIGFzIElUZXRGaWx0ZXJGaWx0ZXJTdGF0ZSB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0RmlsdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRGaWx0ZXIge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBmaWx0ZXJzIGNoYW5nZVxuICAgKi9cbiAgZmlsdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEZpbHRlckZpbHRlclN0YXRlW10+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2ZvY3VzYWJsZScsICduYW1lJywgJ3RoZW1lJywgJ3R5cGUnLCAndXNlRGVmYXVsdENvbG9yJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2ZvY3VzYWJsZScsICduYW1lJywgJ3RoZW1lJywgJ3R5cGUnLCAndXNlRGVmYXVsdENvbG9yJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3RoZW1lJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1pbmxpbmUtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGhlbWUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRJbmxpbmVNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0SW5saW5lTWVzc2FnZSBleHRlbmRzIENvbXBvbmVudHMuVGV0SW5saW5lTWVzc2FnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnYXV0b2NvbXBsZXRlJywgJ2NsYXNzJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ljb25MZWZ0JywgJ2ljb25MZWZ0Q2xpY2tDYWxsYmFjaycsICdpY29uUmlnaHQnLCAnaWNvblJpZ2h0Q2xpY2tDYWxsYmFjaycsICdpbnB1dFRhYmluZGV4JywgJ2lzUGhvbmVOdW1iZXInLCAnbGFiZWwnLCAnbWFudWFsVmFsaWRhdGlvbicsICdtYXhsZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAndGhlbWUnLCAndHlwZScsICd2YWxpZGF0b3JzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0SW5wdXRIdG1sRWxlbWVudCcsICdnZXRFcnJvcnMnLCAnY2xlYXJFcnJvcnMnLCAndmFsaWRhdGVJbnB1dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnYXV0b2NvbXBsZXRlJywgJ2NsYXNzJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ljb25MZWZ0JywgJ2ljb25MZWZ0Q2xpY2tDYWxsYmFjaycsICdpY29uUmlnaHQnLCAnaWNvblJpZ2h0Q2xpY2tDYWxsYmFjaycsICdpbnB1dFRhYmluZGV4JywgJ2lzUGhvbmVOdW1iZXInLCAnbGFiZWwnLCAnbWFudWFsVmFsaWRhdGlvbicsICdtYXhsZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAndGhlbWUnLCAndHlwZScsICd2YWxpZGF0b3JzJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldElucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0SW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlRldElucHV0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdsYWJlbFRpdGxlJywgJ3Nob3dJY29uJywgJ3RoZW1lJywgJ3RyYW5zbGF0ZVRpdGxlJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2xhYmVsVGl0bGUnLCAnc2hvd0ljb24nLCAndGhlbWUnLCAndHJhbnNsYXRlVGl0bGUnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRMYWJlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRMb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRMb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldExvYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2xpY2thYmxlJywgJ2RhcmtNb2RlJywgJ2ZpcnN0TGV2ZWxJY29uJywgJ2ZpcnN0TGV2ZWxJZCcsICdmaXJzdExldmVsTGluaycsICdmaXJzdExldmVsVGl0bGUnLCAnc3ViTGV2ZWxzJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2xpY2thYmxlJywgJ2RhcmtNb2RlJywgJ2ZpcnN0TGV2ZWxJY29uJywgJ2ZpcnN0TGV2ZWxJZCcsICdmaXJzdExldmVsTGluaycsICdmaXJzdExldmVsVGl0bGUnLCAnc3ViTGV2ZWxzJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0TWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLlRldE1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGFya01vZGUnLCAnZmlyc3RMZXZlbElkJywgJ2ZpcnN0TGV2ZWxMaW5rJywgJ2ZpcnN0TGV2ZWxUaXRsZScsICdpc0FjdGl2ZScsICdzdWJMZXZlbHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1tZW51LW1vYmlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGFya01vZGUnLCAnZmlyc3RMZXZlbElkJywgJ2ZpcnN0TGV2ZWxMaW5rJywgJ2ZpcnN0TGV2ZWxUaXRsZScsICdpc0FjdGl2ZScsICdzdWJMZXZlbHMnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0TWVudU1vYmlsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldE1lbnVNb2JpbGUgZXh0ZW5kcyBDb21wb25lbnRzLlRldE1lbnVNb2JpbGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdkaWFsb2dEYXRhU2NyZWVuS2V5JywgJ2lzT3BlbicsICdsYW5ndWFnZScsICdzdGVwcycsICd0ZXREaWFsb2dDbGFzcycsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LW11bHRpLXN0ZXAtZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2RpYWxvZ0RhdGFTY3JlZW5LZXknLCAnaXNPcGVuJywgJ2xhbmd1YWdlJywgJ3N0ZXBzJywgJ3RldERpYWxvZ0NsYXNzJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldE11bHRpU3RlcERpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlRGlhbG9nJywgJ29wZW5EaWFsb2cnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0TXVsdGlTdGVwRGlhbG9nIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRNdWx0aVN0ZXBEaWFsb2cge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgb24gdGhlIGBjbG9zZWAgaWNvbiBjbGljaywgb3ZlcmxheSBjbGljayBvciB0aGUgYGVzY2Aga2V5IHByZXNzLlxuICAgKi9cbiAgY2xvc2VEaWFsb2c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0byBiZSBlbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuZWQuXG4gICAqL1xuICBvcGVuRGlhbG9nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhcmtNb2RlJ10sXG4gIG1ldGhvZHM6IFsnc2hvd1RvZ2dsZXInLCAnaGlkZVRvZ2dsZXInLCAnb3BlbicsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LW5hdmlnYXRpb24tbW9iaWxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXJrTW9kZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXROYXZpZ2F0aW9uTW9iaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWFpbkRyb3Bkb3duVG9nZ2xlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldE5hdmlnYXRpb25Nb2JpbGUgZXh0ZW5kcyBDb21wb25lbnRzLlRldE5hdmlnYXRpb25Nb2JpbGUge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgb24gdGhlIGBpc1RvZ2dsZXJFeHBhbmRlZGAgdmFsdWUgY2hhbmdlLlxuICAgKi9cbiAgbWFpbkRyb3Bkb3duVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd0Nsb3NlJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2NvbnRlbnQnLCAnaGVhZGVyVGl0bGUnLCAnaWNvbicsICd0aGVtZScsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1ub3RpZmljYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93Q2xvc2UnLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnY29udGVudCcsICdoZWFkZXJUaXRsZScsICdpY29uJywgJ3RoZW1lJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0Tm90aWZpY2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0Tm90aWZpY2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXROb3RpZmljYXRpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2J1dHRvbkFjY2Vzc2liaWxpdHlMYWJlbCcsICdjb21wbGV0ZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGVscGVyVGV4dCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ3NlbGVjdE9uRm9jdXMnLCAnc3VmZml4ZXMnLCAndGhlbWUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydnZXRWYWx1ZScsICdyZXNldFN1ZmZpeCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LW51bWJlci1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2J1dHRvbkFjY2Vzc2liaWxpdHlMYWJlbCcsICdjb21wbGV0ZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGVscGVyVGV4dCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ3NlbGVjdE9uRm9jdXMnLCAnc3VmZml4ZXMnLCAndGhlbWUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0TnVtYmVySW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dFZhbHVlQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXROdW1iZXJJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuVGV0TnVtYmVySW5wdXQge1xuICAvKipcbiAgICogRW1pdHMgaW5wdXQgZXZlbnRcbiAgICovXG4gIGlucHV0VmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhcmtUaGVtZScsICdoZWlnaHQnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1wbGFjZWhvbGRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGFya1RoZW1lJywgJ2hlaWdodCcsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRQbGFjZWhvbGRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFBsYWNlaG9sZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRQbGFjZWhvbGRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2NlbnRzUHJpY2UnLCAnZXVyb1ByaWNlJywgJ2ZvbnQnLCAnZm9vdGVyVGV4dCcsICdmb290ZXJUZXh0VHlwZScsICdoZWFkaW5nVGV4dCcsICdwcmljZVR5cGUnLCAnc2l6ZScsICdzdGF0aWNDb2xvcnMnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1wcmljZS12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2NlbnRzUHJpY2UnLCAnZXVyb1ByaWNlJywgJ2ZvbnQnLCAnZm9vdGVyVGV4dCcsICdmb290ZXJUZXh0VHlwZScsICdoZWFkaW5nVGV4dCcsICdwcmljZVR5cGUnLCAnc2l6ZScsICdzdGF0aWNDb2xvcnMnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0UHJpY2VWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0UHJpY2VWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXRQcmljZVZpZXcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5wdXRBdXRvZm9jdXMnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldENoZWNrZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5wdXRBdXRvZm9jdXMnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NoZWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBSYWRpb0NoZWNrRXZlbnRJbnRlcmZhY2UgYXMgSVRldFJhZGlvUmFkaW9DaGVja0V2ZW50SW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRSYWRpbyBleHRlbmRzIENvbXBvbmVudHMuVGV0UmFkaW8ge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciB0aGUgY29udHJvbCBlbGVtZW50IGlzIGNoZWNrZWQuXG4gICAqL1xuICBjaGVjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRSYWRpb1JhZGlvQ2hlY2tFdmVudEludGVyZmFjZT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhZGRCdXR0b25BY2Nlc3NpYmlsaXR5TGFiZWwnLCAnZGF0YVBvaW50cycsICdkYXRhVW5pdHMnLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc3BsYXlEYXRhUG9pbnRzJywgJ2lucHV0TWF4VmFsdWUnLCAnbG9ja1RvRGF0YVBvaW50JywgJ21heFZhbHVlJywgJ21pblZhbHVlJywgJ251bWJlcklucHV0QWNjZXNzaWJpbGl0eUxhYmVsJywgJ3BhcmVudENvbnRhaW5lcicsICdyZWR1Y2VCdXR0b25BY2Nlc3NpYmlsaXR5TGFiZWwnLCAnc2l6ZScsICdzbGlkZXJJbnB1dEFjY2Vzc2liaWxpdHlMYWJlbCcsICdzdGVwJywgJ3RoZW1lJywgJ3R5cGUnLCAnd2l0aENvbnRyb2xzJywgJ3dpdGhDdXJyZW50U3RlcENvdW50ZXInLCAnd2l0aElucHV0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtcmFuZ2Utc2xpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhZGRCdXR0b25BY2Nlc3NpYmlsaXR5TGFiZWwnLCAnZGF0YVBvaW50cycsICdkYXRhVW5pdHMnLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc3BsYXlEYXRhUG9pbnRzJywgJ2lucHV0TWF4VmFsdWUnLCAnbG9ja1RvRGF0YVBvaW50JywgJ21heFZhbHVlJywgJ21pblZhbHVlJywgJ251bWJlcklucHV0QWNjZXNzaWJpbGl0eUxhYmVsJywgJ3BhcmVudENvbnRhaW5lcicsICdyZWR1Y2VCdXR0b25BY2Nlc3NpYmlsaXR5TGFiZWwnLCAnc2l6ZScsICdzbGlkZXJJbnB1dEFjY2Vzc2liaWxpdHlMYWJlbCcsICdzdGVwJywgJ3RoZW1lJywgJ3R5cGUnLCAnd2l0aENvbnRyb2xzJywgJ3dpdGhDdXJyZW50U3RlcENvdW50ZXInLCAnd2l0aElucHV0J10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFJhbmdlU2xpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2xpZGVyLWlucHV0JywgJ3NsaWRlci1jaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0UmFuZ2VTbGlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldFJhbmdlU2xpZGVyIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgb24gc2xpZGVyIGlucHV0LlxuICAgKi9cbiAgJ3NsaWRlci1pbnB1dCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgb24gc2xpZGVyIGNoYW5nZS5cbiAgICovXG4gICdzbGlkZXItY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRhJywgJ2xhbmd1YWdlJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtcmVmZXJyYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RhdGEnLCAnbGFuZ3VhZ2UnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0UmVmZXJyYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd1cmxDb3BpZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0UmVmZXJyYWwgZXh0ZW5kcyBDb21wb25lbnRzLlRldFJlZmVycmFsIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0byBiZSBlbWl0dGVkIHdoZW4gdGhlIGxpbmsgaXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuXG4gICAqL1xuICB1cmxDb3BpZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZvcmNlZENvbHVtbicsICdoaWRlSWNvbnMnLCAnc3RlcHBlckRhdGEnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1yb3VuZC1zdGVwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmb3JjZWRDb2x1bW4nLCAnaGlkZUljb25zJywgJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFJvdW5kU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFJvdW5kU3RlcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGV0Um91bmRTdGVwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2lkZW50aWZpZXInLCAnaXRlbVJlbmRlckZ1bmN0aW9uJywgJ2l0ZW1zJywgJ211bHRpcGxlU2VsZWN0aW9ucycsICdwcmVTZWxlY3RlZEl0ZW1zJ10sXG4gIG1ldGhvZHM6IFsndW5zZXRTZWxlY3RlZEl0ZW1zJywgJ2dldFNlbGVjdGVkSXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1zZWxlY3Rpb24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWRlbnRpZmllcicsICdpdGVtUmVuZGVyRnVuY3Rpb24nLCAnaXRlbXMnLCAnbXVsdGlwbGVTZWxlY3Rpb25zJywgJ3ByZVNlbGVjdGVkSXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0U2VsZWN0aW9uTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2l0ZW1TZWxlY3RlZCcsICdzZWxlY3Rpb25MaXN0UmVuZGVyZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0U2VsZWN0aW9uTGlzdCBleHRlbmRzIENvbXBvbmVudHMuVGV0U2VsZWN0aW9uTGlzdCB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gaXRlbSBpcyBzZWxlY3RlZCBvciBkZS1zZWxlY3RlZC5cbiAgICovXG4gIGl0ZW1TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuICAgKi9cbiAgc2VsZWN0aW9uTGlzdFJlbmRlcmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnLCAndGhlbWUnLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3NldFByb2dyZXNzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtc3Bpbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZScsICd0aGVtZScsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFNwaW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRTcGlubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRTcGlubmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3N0ZXBwZXJEYXRhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RlcHBlckRhdGEnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0U3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldFN0ZXBwZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2xhbmd1YWdlJywgJ21heCcsICdtaW4nLCAnc2VsZWN0T25Gb2N1cycsICdzdGVwJywgJ3RoZW1lJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0VmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1zdGVwcGVyLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnbGFuZ3VhZ2UnLCAnbWF4JywgJ21pbicsICdzZWxlY3RPbkZvY3VzJywgJ3N0ZXAnLCAndGhlbWUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0U3RlcHBlcklucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRWYWx1ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0U3RlcHBlcklucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5UZXRTdGVwcGVySW5wdXQge1xuICAvKipcbiAgICogRW1pdHMgaW5wdXQgZXZlbnRcbiAgICovXG4gIGlucHV0VmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtc3RlcHBlci12MicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RlcHBlckRhdGEnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0U3RlcHBlclYyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0U3RlcHBlclYyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRTdGVwcGVyVjIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc3RlcHBlckRhdGEnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1zdGVwcGVyLXYzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzdGVwcGVyRGF0YScsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRTdGVwcGVyVjMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRTdGVwcGVyVjMgZXh0ZW5kcyBDb21wb25lbnRzLlRldFN0ZXBwZXJWMyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdsYWJlbCcsICduYW1lJywgJ3RoZW1lJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Q2hlY2tlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRTd2l0Y2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGVjayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3dpdGNoQ2hlY2tFdmVudEludGVyZmFjZSBhcyBJVGV0U3dpdGNoU3dpdGNoQ2hlY2tFdmVudEludGVyZmFjZSB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0U3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRTd2l0Y2gge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciB0aGUgY29udHJvbCBlbGVtZW50IGlzIGNoZWNrZWQuXG4gICAqL1xuICBjaGVjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRTd2l0Y2hTd2l0Y2hDaGVja0V2ZW50SW50ZXJmYWNlPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhdGFOYW1lJywgJ2RlZmF1bHRUYWInLCAncGFyZW50Q29udGFpbmVyJywgJ3VzZVZpc2liaWxpdHknXSxcbiAgbWV0aG9kczogWydpbml0JywgJ3NlbGVjdFRhYiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LXRhYi1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRhTmFtZScsICdkZWZhdWx0VGFiJywgJ3BhcmVudENvbnRhaW5lcicsICd1c2VWaXNpYmlsaXR5J10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRhYkNvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0YWJTZWxlY3RlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgVGFiU2VsZWN0RXZlbnREYXRhIGFzIElUZXRUYWJDb250ZW50VGFiU2VsZWN0RXZlbnREYXRhIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRUYWJDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUYWJDb250ZW50IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0cmlnZ2VyZWQgb24gc2VsZWN0aW9uIG9mIHRoZSB0YWIuXG4gICAqL1xuICB0YWJTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRUYWJDb250ZW50VGFiU2VsZWN0RXZlbnREYXRhPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5RGVsYXknLCAnZGFya01vZGUnLCAnZGF0YU5hbWUnLCAnZGVmYXVsdFRhYicsICdoaWRlQWN0aXZlSGVhZGVyVW5kZXJsaW5lJywgJ2hpZGVIZWFkZXJVbmRlcmxpbmUnLCAncG9zaXRpb24nLCAnc2VnbWVudGVkJywgJ3NpemluZycsICdzdG9wQXV0b3BsYXlPbkNvbnRlbnRIb3ZlcicsICdzdG9wQXV0b3BsYXlPbkhlYWRlckhvdmVyJywgJ3RoZW1lJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVBdXRvcGxheScsICdzdG9wQXV0b3BsYXknLCAnc3RhcnRBdXRvcGxheScsICdzZWxlY3RUYWInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10YWItaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheURlbGF5JywgJ2RhcmtNb2RlJywgJ2RhdGFOYW1lJywgJ2RlZmF1bHRUYWInLCAnaGlkZUFjdGl2ZUhlYWRlclVuZGVybGluZScsICdoaWRlSGVhZGVyVW5kZXJsaW5lJywgJ3Bvc2l0aW9uJywgJ3NlZ21lbnRlZCcsICdzaXppbmcnLCAnc3RvcEF1dG9wbGF5T25Db250ZW50SG92ZXInLCAnc3RvcEF1dG9wbGF5T25IZWFkZXJIb3ZlcicsICd0aGVtZScsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRhYkhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RhYlNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBUYWJTZWxlY3RFdmVudERhdGEgYXMgSVRldFRhYkhlYWRlclRhYlNlbGVjdEV2ZW50RGF0YSB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0VGFiSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUYWJIZWFkZXIge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRyaWdnZXJlZCBvbiB0YWIgc2VsZWN0aW9uLlxuICAgKi9cbiAgdGFiU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0VGFiSGVhZGVyVGFiU2VsZWN0RXZlbnREYXRhPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY2VsbFRleHRBbGlnbicsICdnYXBwZWRDb2x1bW5MYXlvdXQnLCAndGFibGVEYXRhJywgJ3RhYmxlSGVhZGVyJywgJ3RhYmxlSGVhZGVyQ29sdW1uU3BhbicsICd0YWJsZUhlYWRlclRleHRBbGlnbicsICd0YWJsZUhlYWRlcldpZHRoJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY2VsbFRleHRBbGlnbicsICdnYXBwZWRDb2x1bW5MYXlvdXQnLCAndGFibGVEYXRhJywgJ3RhYmxlSGVhZGVyJywgJ3RhYmxlSGVhZGVyQ29sdW1uU3BhbicsICd0YWJsZUhlYWRlclRleHRBbGlnbicsICd0YWJsZUhlYWRlcldpZHRoJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0VGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlRldFRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjb3VudCcsICdkaXNhYmxlZCcsICdsYW5ndWFnZScsICdzaG93SWNvbicsICd0YWdUaXRsZScsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LXRhZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2NvdW50JywgJ2Rpc2FibGVkJywgJ2xhbmd1YWdlJywgJ3Nob3dJY29uJywgJ3RhZ1RpdGxlJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRhZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFRhZyBleHRlbmRzIENvbXBvbmVudHMuVGV0VGFnIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhbmd1YWdlJywgJ3RhZ3MnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10YWctZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhbmd1YWdlJywgJ3RhZ3MnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0VGFnR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRUYWdHcm91cCBleHRlbmRzIENvbXBvbmVudHMuVGV0VGFnR3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVjaW1hbFByZWZpeCcsICdkZWNpbWFsU3RhcnQnLCAnbGlzdEljb24nLCAnbGlzdFR5cGUnLCAndGhlbWUnLCAnd2l0aEljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10ZXh0LWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlY2ltYWxQcmVmaXgnLCAnZGVjaW1hbFN0YXJ0JywgJ2xpc3RJY29uJywgJ2xpc3RUeXBlJywgJ3RoZW1lJywgJ3dpdGhJY29uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRleHRMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0VGV4dExpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlRldFRleHRMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yTWVzc2FnZXMnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAndGhlbWUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10ZXh0YXJlYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3JNZXNzYWdlcycsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICd0aGVtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRUZXh0YXJlYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUZXh0YXJlYSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdGFCdXR0b25EZXNjcmlwdGlvbicsICdjdGFCdXR0b25MYWJlbCcsICdjdGFCdXR0b25TaXplJywgJ2N0YUJ1dHRvblR5cGUnLCAnbWFpbkJsb2NrRGVzY3JpcHRpb24nLCAnbWFpbkJsb2NrSWNvbicsICdtYWluQmxvY2tUaXRsZScsICdzdGVwcGVyRGF0YScsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LXRoYW5rLXlvdS12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdGFCdXR0b25EZXNjcmlwdGlvbicsICdjdGFCdXR0b25MYWJlbCcsICdjdGFCdXR0b25TaXplJywgJ2N0YUJ1dHRvblR5cGUnLCAnbWFpbkJsb2NrRGVzY3JpcHRpb24nLCAnbWFpbkJsb2NrSWNvbicsICdtYWluQmxvY2tUaXRsZScsICdzdGVwcGVyRGF0YScsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRUaGFua1lvdVZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdGFCdXR0b25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRUaGFua1lvdVZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLlRldFRoYW5rWW91VmlldyB7XG4gIC8qKlxuICAgKiBUaGUgY2xpY2sgZXZlbnQgZW1pdHRlciBvZiB0aGUgQ1RBIGJ1dHRvbi5cbiAgICovXG4gIGN0YUJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjdGFCdXR0b25JZCcsICdjdGFCdXR0b25MYWJlbCcsICdjdGFCdXR0b25TaXplJywgJ2N0YUJ1dHRvblRoZW1lJywgJ2N0YUJ1dHRvblR5cGUnLCAnaWNvbicsICdsYW5ndWFnZScsICdtYWluQmxvY2tEZXNjcmlwdGlvbicsICdtYWluQmxvY2tUaXRsZScsICdzdGVwcGVyRGF0YScsICd0aGVtZScsICd0cmFuc2xhdGlvbkdyb3VwJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtdGhhbmsteW91LXZpZXctdjInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N0YUJ1dHRvbklkJywgJ2N0YUJ1dHRvbkxhYmVsJywgJ2N0YUJ1dHRvblNpemUnLCAnY3RhQnV0dG9uVGhlbWUnLCAnY3RhQnV0dG9uVHlwZScsICdpY29uJywgJ2xhbmd1YWdlJywgJ21haW5CbG9ja0Rlc2NyaXB0aW9uJywgJ21haW5CbG9ja1RpdGxlJywgJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJywgJ3RyYW5zbGF0aW9uR3JvdXAnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0VGhhbmtZb3VWaWV3VjIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjdGFCdXR0b25DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRUaGFua1lvdVZpZXdWMiBleHRlbmRzIENvbXBvbmVudHMuVGV0VGhhbmtZb3VWaWV3VjIge1xuICAvKipcbiAgICogVGhlIGNsaWNrIGV2ZW50IGVtaXR0ZXIgb2YgdGhlIENUQSBidXR0b24uXG4gICAqL1xuICBjdGFCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3RhQnV0dG9uSWQnLCAnY3RhQnV0dG9uTGFiZWwnLCAnY3RhQnV0dG9uU2l6ZScsICdjdGFCdXR0b25UaGVtZScsICdjdGFCdXR0b25UeXBlJywgJ2ljb24nLCAnbGFuZ3VhZ2UnLCAnbWFpbkJsb2NrRGVzY3JpcHRpb24nLCAnbWFpbkJsb2NrVGl0bGUnLCAnc3RlcHBlckRhdGEnLCAndGhlbWUnLCAndHJhbnNsYXRpb25Hcm91cCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LXRoYW5rLXlvdS12aWV3LXYzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdGFCdXR0b25JZCcsICdjdGFCdXR0b25MYWJlbCcsICdjdGFCdXR0b25TaXplJywgJ2N0YUJ1dHRvblRoZW1lJywgJ2N0YUJ1dHRvblR5cGUnLCAnaWNvbicsICdsYW5ndWFnZScsICdtYWluQmxvY2tEZXNjcmlwdGlvbicsICdtYWluQmxvY2tUaXRsZScsICdzdGVwcGVyRGF0YScsICd0aGVtZScsICd0cmFuc2xhdGlvbkdyb3VwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRoYW5rWW91Vmlld1YzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3RhQnV0dG9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0VGhhbmtZb3VWaWV3VjMgZXh0ZW5kcyBDb21wb25lbnRzLlRldFRoYW5rWW91Vmlld1YzIHtcbiAgLyoqXG4gICAqIFRoZSBjbGljayBldmVudCBlbWl0dGVyIG9mIHRoZSBDVEEgYnV0dG9uLlxuICAgKi9cbiAgY3RhQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RvTm90U2hvd09uSG92ZXInLCAnaG92ZXJFbGVtZW50JywgJ3Bvc2l0aW9uJywgJ3RhcmdldEVsZW1lbnRTZWxlY3RvcicsICd0aGVtZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkb05vdFNob3dPbkhvdmVyJywgJ2hvdmVyRWxlbWVudCcsICdwb3NpdGlvbicsICd0YXJnZXRFbGVtZW50U2VsZWN0b3InLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0VG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFRvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLlRldFRvb2x0aXAge31cblxuXG4iXX0=
|
|
1855
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RldC1jb21wb25lbnRzLWFuZ3VsYXIvc3JjL2xpYi9zdGVuY2lsLWdlbmVyYXRlZC9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUV4SCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWdCaEUsV0FBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBTlUsWUFBWTtrR0FBWixZQUFZLG1ZQUpiLDJCQUEyQjs7QUFJMUIsWUFBWTtJQVh4QixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLFlBQVksQ0FBQztRQUNwTCxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO0tBQzdELENBQUM7R0FRVyxZQUFZLENBT3hCOzJGQVBZLFlBQVk7a0JBUHhCLFNBQVM7bUJBQUM7b0JBQ1Qs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TkFKWCwyQkFBMkI7O0FBSTFCLFVBQVU7SUFYdEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxPQUFPLENBQUM7UUFDMUYsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUM7S0FDcEMsQ0FBQztHQVFXLFVBQVUsQ0FNdEI7MkZBTlksVUFBVTtrQkFQdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxPQUFPLENBQUM7aUJBQzNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGF1dG8tZ2VuZXJhdGVkIGFuZ3VsYXIgZGlyZWN0aXZlIHByb3hpZXMgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb21wb25lbnRzIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JyZWFrcG9pbnQnLCAnaGVhZGVyJywgJ2hlYWRlckltYWdlQWx0JywgJ2hlYWRlckltYWdlU3JjJywgJ2hlYWRpbmdUYWcnLCAnaW5kaWNhdG9yRGlyZWN0aW9uJywgJ2lzT3BlbicsICd0aGVtZScsICd0cmFuc3BhcmVudEJhY2tncm91bmQnLCAnd2l0aEF1dG9TY3JvbGwnLCAnd2l0aEJvcmRlciddLFxuICBtZXRob2RzOiBbJ29wZW4nLCAnY2xvc2UnLCAndG9nZ2xlJywgJ2dldFN0YXRlJywgJ3NldFN0YXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydicmVha3BvaW50JywgJ2hlYWRlcicsICdoZWFkZXJJbWFnZUFsdCcsICdoZWFkZXJJbWFnZVNyYycsICdoZWFkaW5nVGFnJywgJ2luZGljYXRvckRpcmVjdGlvbicsICdpc09wZW4nLCAndGhlbWUnLCAndHJhbnNwYXJlbnRCYWNrZ3JvdW5kJywgJ3dpdGhBdXRvU2Nyb2xsJywgJ3dpdGhCb3JkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QWNjb3JkaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnb3BlbkNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRBY2NvcmRpb24ge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgb24gdGhlIGBpc09wZW5gIHZhbHVlIGNoYW5nZS5cbiAgICovXG4gIG9wZW5DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXRhbG9nJywgJ2NhdGVnb3J5JywgJ2NsZWFyRmlsdGVyQnV0dG9uJywgJ2xhbmd1YWdlJywgJ3Byb2R1Y3RDb2RlcycsICdzdWJjYXRlZ29yeUlkJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYWRkcmVzcy1vZmZlcnMtZmlsdGVycy1wcm9kdWN0cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2F0YWxvZycsICdjYXRlZ29yeScsICdjbGVhckZpbHRlckJ1dHRvbicsICdsYW5ndWFnZScsICdwcm9kdWN0Q29kZXMnLCAnc3ViY2F0ZWdvcnlJZCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBZGRyZXNzT2ZmZXJzRmlsdGVyc1Byb2R1Y3RzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYWN0aXZlRmlsdGVyc0NoYW5nZWQnLCAnZmlsdGVyZWRQcm9kdWN0c0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QWRkcmVzc09mZmVyc0ZpbHRlcnNQcm9kdWN0cyBleHRlbmRzIENvbXBvbmVudHMuVGV0QWRkcmVzc09mZmVyc0ZpbHRlcnNQcm9kdWN0cyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYWN0aXZlIGZpbHRlcnMgY2hhbmdlLCBzZW5kaW5nIGFycmF5IG9mIGFjdGl2ZSBmaWx0ZXIgSURzLlxuICAgKi9cbiAgYWN0aXZlRmlsdGVyc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmdbXT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGZpbHRlcmVkIHByb2R1Y3RzIGNoYW5nZSwgc2VuZGluZyBzdWJjYXRlZ29yeSBJRCBhbmQgYXJyYXkgb2YgZmlsdGVyZWQgcHJvZHVjdCBJRHMuXG4gICAqL1xuICBmaWx0ZXJlZFByb2R1Y3RzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc3ViY2F0ZWdvcnlJZDogc3RyaW5nOyBmaWx0ZXJlZFByb2R1Y3RJZHM6IHN0cmluZ1tdIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2FkZHJlc3NLZXknLCAnY2xvc2VCdXR0b25UZXh0JywgJ2lucHV0RGlzYWJsZWQnLCAnaXNJbnB1dEludmFsaWQnLCAnbGFiZWwnLCAnbGFuZ3VhZ2UnLCAnbWFudWFsQWRkcmVzc1RyaWdnZXJzJywgJ21pblNlYXJjaEtleXdvcmRMZW5ndGgnLCAnbmV3Rm9ybXNTdHlsZScsICduZXdTdHlsZScsICdwbGFjZWhvbGRlcicsICdyZWRlc2lnbmVkU3R5bGUnLCAnc2VhcmNoQnV0dG9uVGV4dCcsICd0aGVtZSddLFxuICBtZXRob2RzOiBbJ3Jlc2V0SW5wdXRTdGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWFkZHJlc3Mtc2VhcmNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnYWRkcmVzc0tleScsICdjbG9zZUJ1dHRvblRleHQnLCAnaW5wdXREaXNhYmxlZCcsICdpc0lucHV0SW52YWxpZCcsICdsYWJlbCcsICdsYW5ndWFnZScsICdtYW51YWxBZGRyZXNzVHJpZ2dlcnMnLCAnbWluU2VhcmNoS2V5d29yZExlbmd0aCcsICduZXdGb3Jtc1N0eWxlJywgJ25ld1N0eWxlJywgJ3BsYWNlaG9sZGVyJywgJ3JlZGVzaWduZWRTdHlsZScsICdzZWFyY2hCdXR0b25UZXh0JywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEFkZHJlc3NTZWFyY2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhZGRyZXNzU2VsZWN0ZWQnLCAnY2xlYXJJbnB1dEZpZWxkJywgJ21hbnVhbEFkZHJlc3NJbnB1dCcsICdzZWFyY2hTdWJtaXR0ZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEFkZHJlc3NJbnRlcmZhY2UgYXMgSVRldEFkZHJlc3NTZWFyY2hBZGRyZXNzSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRBZGRyZXNzU2VhcmNoIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRBZGRyZXNzU2VhcmNoIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGFuIGFkZHJlc3MgdmlhIGF1dG9jb21wbGV0ZS5cbiAgICovXG4gIGFkZHJlc3NTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRBZGRyZXNzU2VhcmNoQWRkcmVzc0ludGVyZmFjZT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBmaWVsZCBpcyBjbGVhcmVkIGF1dG9tYXRpY2FsbHkuXG4gICAqL1xuICBjbGVhcklucHV0RmllbGQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIHRoZSBtYW51YWwgYWRkcmVzcyBpbnB1dCBvcHRpb24uXG4gICAqL1xuICBtYW51YWxBZGRyZXNzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhlIHNlYXJjaCBidXR0b24uXG4gICAqL1xuICBzZWFyY2hTdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzVG9rZW4nLCAnYWRkcmVzc1NlYXJjaExhYmVsJywgJ2FkZHJlc3NTZWFyY2hQbGFjZWhvbGRlcicsICdwaWQnLCAnc2FsZXNmb3JjZUFjY291bnRJZCcsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWFzc2V0LWFkZHJlc3NlcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzVG9rZW4nLCAnYWRkcmVzc1NlYXJjaExhYmVsJywgJ2FkZHJlc3NTZWFyY2hQbGFjZWhvbGRlcicsICdwaWQnLCAnc2FsZXNmb3JjZUFjY291bnRJZCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBc3NldEFkZHJlc3NlcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Fzc2V0QWRkcmVzc1NlbGVjdGVkJywgJ2FkZHJlc3Nlc1VwZGF0ZWQnLCAnY3VzdG9tZXJOb3RGb3VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgVW5pcXVlQWRkcmVzc0ludGVyZmFjZSBhcyBJVGV0QXNzZXRBZGRyZXNzZXNVbmlxdWVBZGRyZXNzSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbWVyTm90Rm91bmQgYXMgSVRldEFzc2V0QWRkcmVzc2VzQ3VzdG9tZXJOb3RGb3VuZCB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QXNzZXRBZGRyZXNzZXMgZXh0ZW5kcyBDb21wb25lbnRzLlRldEFzc2V0QWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB1c2VyIHNlbGVjdHMgYW4gYWRkcmVzcyBmcm9tIHRoZSBsaXN0LlxuICAgKi9cbiAgYXNzZXRBZGRyZXNzU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXNzZXRBZGRyZXNzZXNVbmlxdWVBZGRyZXNzSW50ZXJmYWNlPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW5ldmVyIGFkZHJlc3NlcyBjaGFuZ2UuXG4gICAqL1xuICBhZGRyZXNzZXNVcGRhdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEFzc2V0QWRkcmVzc2VzVW5pcXVlQWRkcmVzc0ludGVyZmFjZVtdPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gbm8gU2FsZXNmb3JjZSBjdXN0b21lciBpcyBmb3VuZCBmb3IgdGhlIGdpdmVuIFBJRC5cbiAgICovXG4gIGN1c3RvbWVyTm90Rm91bmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXNzZXRBZGRyZXNzZXNDdXN0b21lck5vdEZvdW5kPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2Vzc1Rva2VuJywgJ2FkZHJlc3NTZWFyY2hMYWJlbCcsICdhZGRyZXNzU2VhcmNoUGxhY2Vob2xkZXInLCAncGlkJywgJ3NhbGVzZm9yY2VBY2NvdW50SWQnLCAndGhlbWUnXSxcbiAgbWV0aG9kczogWyd1bnNlbGVjdEFzc2V0QWRkcmVzc2VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYXNzZXQtYXZhaWxhYmlsaXR5LWFkZHJlc3NlcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzVG9rZW4nLCAnYWRkcmVzc1NlYXJjaExhYmVsJywgJ2FkZHJlc3NTZWFyY2hQbGFjZWhvbGRlcicsICdwaWQnLCAnc2FsZXNmb3JjZUFjY291bnRJZCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBc3NldEF2YWlsYWJpbGl0eUFkZHJlc3NlcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Fzc2V0QWRkcmVzc1NlbGVjdGVkJywgJ2FkZHJlc3Nlc1VwZGF0ZWQnLCAnY3VzdG9tZXJOb3RGb3VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgVW5pcXVlQWRkcmVzc0ludGVyZmFjZSBhcyBJVGV0QXNzZXRBdmFpbGFiaWxpdHlBZGRyZXNzZXNVbmlxdWVBZGRyZXNzSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbWVyTm90Rm91bmQgYXMgSVRldEFzc2V0QXZhaWxhYmlsaXR5QWRkcmVzc2VzQ3VzdG9tZXJOb3RGb3VuZCB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QXNzZXRBdmFpbGFiaWxpdHlBZGRyZXNzZXMgZXh0ZW5kcyBDb21wb25lbnRzLlRldEFzc2V0QXZhaWxhYmlsaXR5QWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB1c2VyIHNlbGVjdHMgYW4gYWRkcmVzcyBmcm9tIHRoZSBsc2l0LlxuICAgKi9cbiAgYXNzZXRBZGRyZXNzU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXNzZXRBdmFpbGFiaWxpdHlBZGRyZXNzZXNVbmlxdWVBZGRyZXNzSW50ZXJmYWNlPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW5ldmVyIGFkZHJlc3NlcyBjaGFuZ2UuXG4gICAqL1xuICBhZGRyZXNzZXNVcGRhdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEFzc2V0QXZhaWxhYmlsaXR5QWRkcmVzc2VzVW5pcXVlQWRkcmVzc0ludGVyZmFjZVtdPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gbm8gU2FsZXNmb3JjZSBjdXN0b21lciBpcyBmb3VuZCBmb3IgdGhlIGdpdmVuIFBJRC5cbiAgICovXG4gIGN1c3RvbWVyTm90Rm91bmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXNzZXRBdmFpbGFiaWxpdHlBZGRyZXNzZXNDdXN0b21lck5vdEZvdW5kPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyQ2FsbGJhY2snLCAnZGFya1RoZW1lJywgJ2RlZmF1bHRPcHRpb25zJywgJ2ZpbmlzaGVkTG9hZGluZycsICdoaWdobGlnaHRPcHRpb25zS2V5d29yZCcsICduZXdTdHlsZScsICdub09wdGlvbnNNZXNzYWdlJywgJ25vT3B0aW9uc1JlbmRlckZ1bmN0aW9uJywgJ29wdGlvbnNGaWx0ZXJBY3Rpb24nLCAnb3B0aW9uc0ljb24nLCAncmVkZXNpZ25lZFN0eWxlJywgJ3Nob3dPcHRpb25zT25Fc2NhcGVDbGVhciddLFxuICBtZXRob2RzOiBbJ2NsZWFyJywgJ2ZvY3VzT25OYXRpdmVJbnB1dCcsICdzZWxlY3RPcHRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1hdXRvY29tcGxldGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsZWFyQ2FsbGJhY2snLCAnZGFya1RoZW1lJywgJ2RlZmF1bHRPcHRpb25zJywgJ2ZpbmlzaGVkTG9hZGluZycsICdoaWdobGlnaHRPcHRpb25zS2V5d29yZCcsICduZXdTdHlsZScsICdub09wdGlvbnNNZXNzYWdlJywgJ25vT3B0aW9uc1JlbmRlckZ1bmN0aW9uJywgJ29wdGlvbnNGaWx0ZXJBY3Rpb24nLCAnb3B0aW9uc0ljb24nLCAncmVkZXNpZ25lZFN0eWxlJywgJ3Nob3dPcHRpb25zT25Fc2NhcGVDbGVhciddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBdXRvY29tcGxldGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydvcHRpb25TZWxlY3RlZCcsICdhY3RpdmVDb21wb25lbnRTdGF0ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IE9wdGlvbkludGVyZmFjZSBhcyBJVGV0QXV0b2NvbXBsZXRlT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRBdXRvY29tcGxldGUgZXh0ZW5kcyBDb21wb25lbnRzLlRldEF1dG9jb21wbGV0ZSB7XG4gIC8qKlxuICAgKiBUaGUgYXV0b2NvbXBsZXRlIG9wdGlvbiBzZWxlY3Rpb24gZXZlbnQuXG4gICAqL1xuICBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRBdXRvY29tcGxldGVPcHRpb25JbnRlcmZhY2U+PjtcbiAgLyoqXG4gICAqIEVtaXRzIFwidGV0LWF1dG9jb21wbGV0ZVwiIHVuaXF1ZSBpZCwgd2hlbiBhbiBhdHRlbXB0IHRvIG9wZW4gc2VsZWN0aW9uIG9wdGlvbnMgaXMgaWRlbnRpZmllZC5cbiAgICovXG4gIGFjdGl2ZUNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZyB8IG51bGw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdE9wdGlvbicsICdlcnJvck1lc3NhZ2UnLCAnaGFzRXJyb3InLCAnbGFiZWwnLCAnbm9PcHRpb25zTWVzc2FnZScsICdvcHRpb25zJywgJ3BsYWNlaG9sZGVyJywgJ3RoZW1lJ10sXG4gIG1ldGhvZHM6IFsnY2xlYXJJbnB1dCcsICdmb2N1c09uTmF0aXZlSW5wdXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1hdXRvY29tcGxldGUtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRPcHRpb24nLCAnZXJyb3JNZXNzYWdlJywgJ2hhc0Vycm9yJywgJ2xhYmVsJywgJ25vT3B0aW9uc01lc3NhZ2UnLCAnb3B0aW9ucycsICdwbGFjZWhvbGRlcicsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBdXRvY29tcGxldGVEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wdGlvblNlbGVjdGVkJywgJ2lucHV0VmFsdWVDbGVhcmVkJywgJ2lucHV0VmFsdWVDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBPcHRpb25JbnRlcmZhY2UgYXMgSVRldEF1dG9jb21wbGV0ZURyb3Bkb3duT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRBdXRvY29tcGxldGVEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGV0QXV0b2NvbXBsZXRlRHJvcGRvd24ge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgb3B0aW9uU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QXV0b2NvbXBsZXRlRHJvcGRvd25PcHRpb25JbnRlcmZhY2U+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBpbnB1dCB2YWx1ZSBpcyBjbGVhcmVkLlxuICAgKi9cbiAgaW5wdXRWYWx1ZUNsZWFyZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgb3B0aW9uIGlucHV0IHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAqL1xuICBpbnB1dFZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXJrVGhlbWUnLCAnbGFuZ3VhZ2UnLCAnc2hvd0F2YWlsYWJpbGl0eUNvbnRhY3RGb3JtJywgJ3Nob3dJbnB1dExhYmVsJywgJ3Nob3dUaXRsZScsICdzdWJtaXRCdXR0b25Qcm9wcycsICdzdWJ0aXRsZScsICdzdWNjZXNzJywgJ3Rhc2tPcHRpb25zJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYXZhaWxhYmlsaXR5LWNvbnRhY3QtZm9ybScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGFya1RoZW1lJywgJ2xhbmd1YWdlJywgJ3Nob3dBdmFpbGFiaWxpdHlDb250YWN0Rm9ybScsICdzaG93SW5wdXRMYWJlbCcsICdzaG93VGl0bGUnLCAnc3VibWl0QnV0dG9uUHJvcHMnLCAnc3VidGl0bGUnLCAnc3VjY2VzcycsICd0YXNrT3B0aW9ucycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRBdmFpbGFiaWxpdHlDb250YWN0Rm9ybSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3Rhc2tDcmVhdGlvblN1Y2Nlc3MnLCAndGFza0NyZWF0aW9uRmFpbGVkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEF2YWlsYWJpbGl0eUNvbnRhY3RGb3JtIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRBdmFpbGFiaWxpdHlDb250YWN0Rm9ybSB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgZW1pdHRlZCBpZiB0aGUgdGFzayBjcmVhdGlvbiB3YXMgc3VjY2Vzc2Z1bC5cbiAgICovXG4gIHRhc2tDcmVhdGlvblN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBlbWl0dGVkIGlmIHRoZSB0YXNrIGNyZWF0aW9uIGZhaWxlZC5cbiAgICovXG4gIHRhc2tDcmVhdGlvbkZhaWxlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFuZ3VhZ2UnLCAndGhlbWUnXSxcbiAgbWV0aG9kczogWydvcGVuJywgJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYjJiLWNoZWNrLW91dC1mb3JtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYW5ndWFnZScsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRCMmJDaGVja091dEZvcm0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzdWJtaXQtY2hlY2stb3V0LWZvcm0nXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QjJiQ2hlY2tPdXRGb3JtIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRCMmJDaGVja091dEZvcm0ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdCB3aGVuIGZvcm0gZmlsbGVkIHN1Y2Nlc3NmdWxseVxuICAgKi9cbiAgJ3N1Ym1pdC1jaGVjay1vdXQtZm9ybSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY291bnQnLCAnaXNTZWxlY3RlZCcsICdvcHRpb25zJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYjJiLWNvbXBhcmUtY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY291bnQnLCAnaXNTZWxlY3RlZCcsICdvcHRpb25zJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEIyYkNvbXBhcmVDYXJkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY291bnRDaGFuZ2UnLCAnc2VsZWN0ZWRDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEIyYkNhcmRVcGRhdGVFdmVudCBhcyBJVGV0QjJiQ29tcGFyZUNhcmRCMmJDYXJkVXBkYXRlRXZlbnQgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEIyYkNvbXBhcmVDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRCMmJDb21wYXJlQ2FyZCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2hhbmdlcyB0aGUgcXVhbnRpdHkgY291bnRlciB2YWx1ZSBhbmQgc3VibWl0czsgb3Igb24gY2FyZCBjbG9zZSBldmVudC4gQGV2ZW50IHVuZGVmaW5lZFxuICAgKi9cbiAgY291bnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0QjJiQ29tcGFyZUNhcmRCMmJDYXJkVXBkYXRlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBpcyBjbGlja2VkIHRvIGNoYW5nZSBpdHMgc2VsZWN0ZWQgc3RhdGUgQGV2ZW50IHVuZGVmaW5lZFxuICAgKi9cbiAgc2VsZWN0ZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3N0aWNreVJlZkVsJywgJ3RoZW1lJ10sXG4gIG1ldGhvZHM6IFsnc2V0U3VibWl0Rm9ybVN0YXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYjJiLWNvbmZpZ3VyYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RpY2t5UmVmRWwnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QjJiQ29uZmlndXJhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY29tcGFyZUxpbmtDbGljaycsICdiMmJDb25maWd1cmF0b3JTdWJtaXQnLCAnc3VjY2Vzc0Nsb3NlQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEIyQlN1Ym1pdCBhcyBJVGV0QjJiQ29uZmlndXJhdG9yQjJCU3VibWl0IH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRCMmJDb25maWd1cmF0b3IgZXh0ZW5kcyBDb21wb25lbnRzLlRldEIyYkNvbmZpZ3VyYXRvciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbXBhcmUgbGluayBmb3IgYSBjYXRlZ29yeSBpcyBjbGlja2VkLlxuICAgKi9cbiAgY29tcGFyZUxpbmtDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogVGhlIHN1Ym1pdCBldmVudCBvZiB0aGUgQjJCIGNvbmZpZ3VyYXRvci5cbiAgICovXG4gIGIyYkNvbmZpZ3VyYXRvclN1Ym1pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRCMmJDb25maWd1cmF0b3JCMkJTdWJtaXQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xvc2UgYnV0dG9uIG9mIHN1Y2Nlc3MgbW9kYWwgaXMgY2xpY2tlZC5cbiAgICovXG4gIHN1Y2Nlc3NDbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRleHQnLCAnZGF0YScsICdpc0NhcnRFbXB0eScsICdpc0Rlc2t0b3BSZXNvbHV0aW9uJywgJ3RoZW1lJ10sXG4gIG1ldGhvZHM6IFsnY2hhbmdlQmxvY2tTdGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWIyYi1jb25maWd1cmF0b3ItY2FydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGV4dCcsICdkYXRhJywgJ2lzQ2FydEVtcHR5JywgJ2lzRGVza3RvcFJlc29sdXRpb24nLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QjJiQ29uZmlndXJhdG9yQ2FydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEIyYkNvbmZpZ3VyYXRvckNhcnQgZXh0ZW5kcyBDb21wb25lbnRzLlRldEIyYkNvbmZpZ3VyYXRvckNhcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZHVyYXRpb24nLCAnbGFuZ3VhZ2UnLCAnbW9iaWxlTGF5b3V0JywgJ3BhdXNlZCcsICdzbGlkZXMnLCAndGhlbWUnXSxcbiAgbWV0aG9kczogWydwYXVzZScsICdwbGF5JywgJ2dvVG8nLCAnbmV4dCcsICdwcmV2aW91cycsICdnZXRDdXJyZW50U2xpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1iYW5uZXItbmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkdXJhdGlvbicsICdsYW5ndWFnZScsICdtb2JpbGVMYXlvdXQnLCAncGF1c2VkJywgJ3NsaWRlcycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRCYW5uZXJOYXYge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzbGlkZUNoYW5nZScsICdwYXVzZVN0YXRlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEJhbm5lck5hdiBleHRlbmRzIENvbXBvbmVudHMuVGV0QmFubmVyTmF2IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBzbGlkZSBjaGFuZ2VzXG4gICAqL1xuICBzbGlkZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgaW5kZXg6IG51bWJlcjsgcHJldmlvdXNJbmRleDogbnVtYmVyOyBzb3VyY2UgOiBzdHJpbmcgfT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHBhdXNlIHN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHBhdXNlU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHBhdXNlZDogYm9vbGVhbiB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2RhdGEnLCAnZGF0YU9yZGVyJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4VmFsdWUnLCAnbWluVmFsdWUnLCAncGFyZW50Q29udGFpbmVyJywgJ3NpemUnLCAndGhlbWUnLCAndmFsdWVQb3NpdGlvbicsICd2YWx1ZVVuaXQnLCAnd2l0aEdyaWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1iYXItZ3JhcGgnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2RhdGEnLCAnZGF0YU9yZGVyJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4VmFsdWUnLCAnbWluVmFsdWUnLCAncGFyZW50Q29udGFpbmVyJywgJ3NpemUnLCAndGhlbWUnLCAndmFsdWVQb3NpdGlvbicsICd2YWx1ZVVuaXQnLCAnd2l0aEdyaWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QmFyR3JhcGgge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRCYXJHcmFwaCBleHRlbmRzIENvbXBvbmVudHMuVGV0QmFyR3JhcGgge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWRkcmVzc0tleScsICdsYW5ndWFnZScsICdzaG93SGVhZGluZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1idXNpbmVzcy1saW5lcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWRkcmVzc0tleScsICdsYW5ndWFnZScsICdzaG93SGVhZGluZ3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QnVzaW5lc3NMaW5lcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2J1c2luZXNzTGluZVNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBCdXNpbmVzc0xpbmUgYXMgSVRldEJ1c2luZXNzTGluZXNCdXNpbmVzc0xpbmUgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEJ1c2luZXNzTGluZXMgZXh0ZW5kcyBDb21wb25lbnRzLlRldEJ1c2luZXNzTGluZXMge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIGJ1c2luZXNzIGxpbmUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBidXNpbmVzc0xpbmVTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRCdXNpbmVzc0xpbmVzQnVzaW5lc3NMaW5lPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21lbnVJdGVtcycsICd0aGVtZSddLFxuICBtZXRob2RzOiBbJ3NlbGVjdE1lbnVJdGVtJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYnVzaW5lc3MtbmF2aWdhdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbWVudUl0ZW1zJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEJ1c2luZXNzTmF2aWdhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21lbnUtY2xpY2stZXZlbnQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QnVzaW5lc3NOYXZpZ2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRCdXNpbmVzc05hdmlnYXRpb24ge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlciBmb3IgbWVudSBpdGVtIGNsaWNrIHBhc3NpbmcgbWVudSBpZFxuICAgKi9cbiAgJ21lbnUtY2xpY2stZXZlbnQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpZDogbnVtYmVyIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGF5b3V0JywgJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtYnVzaW5lc3Mtcm91bmQtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGF5b3V0JywgJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEJ1c2luZXNzUm91bmRTdGVwcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QnVzaW5lc3NSb3VuZFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldEJ1c2luZXNzUm91bmRTdGVwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRleHQnLCAnY29udHJhY3RUZXJtJywgJ2N1cnJlbmN5JywgJ2Rpc2NvdW50UHJpY2UnLCAnbGFuZ3VhZ2UnLCAnbWF4VmFsdWUnLCAnbWluVmFsdWUnLCAncHJpY2UnLCAncHJvZHVjdERlc2NyaXB0aW9uJywgJ3Byb2R1Y3ROYW1lJywgJ3N0ZXBwZXJMYWJlbCcsICd0aGVtZScsICd2YWx1ZScsICd3aXRoU3RlcHBlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWJ1c2luZXNzLXN1bW1hcnktY2FyZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGV4dCcsICdjb250cmFjdFRlcm0nLCAnY3VycmVuY3knLCAnZGlzY291bnRQcmljZScsICdsYW5ndWFnZScsICdtYXhWYWx1ZScsICdtaW5WYWx1ZScsICdwcmljZScsICdwcm9kdWN0RGVzY3JpcHRpb24nLCAncHJvZHVjdE5hbWUnLCAnc3RlcHBlckxhYmVsJywgJ3RoZW1lJywgJ3ZhbHVlJywgJ3dpdGhTdGVwcGVyJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEJ1c2luZXNzU3VtbWFyeUNhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydlZGl0QnV0dG9uQ2xpY2snLCAnZGVsZXRlQnV0dG9uQ2xpY2snLCAnYW1vdW50Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEJ1c2luZXNzU3VtbWFyeUNhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlRldEJ1c2luZXNzU3VtbWFyeUNhcmQge1xuICAvKipcbiAgICogRW1pdCBldmVudCB3aGVuIEVkaXQgYnV0dG9uIGNsaWNrZWRcbiAgICovXG4gIGVkaXRCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogRW1pdCBldmVudCB3aGVuIERlbGV0ZSBidXR0b24gY2xpY2tlZFxuICAgKi9cbiAgZGVsZXRlQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEVtaXQgZXZlbnQgd2hlbiBhbW91bnQgb2YgcHJvZHVjdHMgY2hhbmdlZFxuICAgKi9cbiAgYW1vdW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVtYmVyPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2Vzc2liaWxpdHlMYWJlbCcsICdjbGlja0NhbGxiYWNrJywgJ2Rpc2FibGVkJywgJ2VsZW1lbnRJZCcsICdpY29uTW9kZScsICdpY29uTmFtZScsICdpY29uUG9zaXRpb24nLCAnc2l6ZScsICd0aGVtZScsICd0eXBlJywgJ3VybCcsICd1cmxUYXJnZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2Vzc2liaWxpdHlMYWJlbCcsICdjbGlja0NhbGxiYWNrJywgJ2Rpc2FibGVkJywgJ2VsZW1lbnRJZCcsICdpY29uTW9kZScsICdpY29uTmFtZScsICdpY29uUG9zaXRpb24nLCAnc2l6ZScsICd0aGVtZScsICd0eXBlJywgJ3VybCcsICd1cmxUYXJnZXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0QnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uSWNvbkxlZnQnLCAnYnV0dG9uSWNvblJpZ2h0JywgJ2xhYmVsJywgJ2xhbmd1YWdlJywgJ21heERvdHMnLCAnc2hvd0J1dHRvbnMnLCAnc2hvd0RvdHMnLCAnc2hvd0dyYWRpZW50JywgJ3N3aXBlVGhyZXNob2xkJywgJ3RoZW1lJywgJ3RyYW5zaXRpb25EdXJhdGlvbicsICd0cmFuc2l0aW9uVGltaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkljb25MZWZ0JywgJ2J1dHRvbkljb25SaWdodCcsICdsYWJlbCcsICdsYW5ndWFnZScsICdtYXhEb3RzJywgJ3Nob3dCdXR0b25zJywgJ3Nob3dEb3RzJywgJ3Nob3dHcmFkaWVudCcsICdzd2lwZVRocmVzaG9sZCcsICd0aGVtZScsICd0cmFuc2l0aW9uRHVyYXRpb24nLCAndHJhbnNpdGlvblRpbWluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldENhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRDYXJvdXNlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldENoZWNrZWQnLCAnc2V0SW5kZXRlcm1pbmF0ZScsICdzZXRFcnJvciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2luZGV0ZXJtaW5hdGUnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NoZWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBDaGVja2JveENoZWNrRXZlbnRJbnRlcmZhY2UgYXMgSVRldENoZWNrYm94Q2hlY2tib3hDaGVja0V2ZW50SW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuVGV0Q2hlY2tib3gge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciB0aGUgY29udHJvbCBlbGVtZW50IGlzIGNoZWNrZWQuXG4gICAqL1xuICBjaGVjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRDaGVja2JveENoZWNrYm94Q2hlY2tFdmVudEludGVyZmFjZT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYW5ndWFnZScsICdsb2FkaW5nJywgJ3ByaXZhY3lQb2xpY3lMaW5rVXJsJywgJ3Nob3dPdmVybGF5JywgJ3RoZW1lJ10sXG4gIG1ldGhvZHM6IFsnb3BlbicsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWNsb3VkLWFwcGxpY2F0aW9uLWZvcm0tZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYW5ndWFnZScsICdsb2FkaW5nJywgJ3ByaXZhY3lQb2xpY3lMaW5rVXJsJywgJ3Nob3dPdmVybGF5JywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldENsb3VkQXBwbGljYXRpb25Gb3JtRGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3VibWl0dGVkJywgJ2Nsb3NlRGlhbG9nJywgJ29wZW5EaWFsb2cnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFRldEFwcGxpY2F0aW9uRm9ybURpYWxvZ1N1Ym1pc3Npb25EYXRhIGFzIElUZXRDbG91ZEFwcGxpY2F0aW9uRm9ybURpYWxvZ1RldEFwcGxpY2F0aW9uRm9ybURpYWxvZ1N1Ym1pc3Npb25EYXRhIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDbG91ZEFwcGxpY2F0aW9uRm9ybURpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuVGV0Q2xvdWRBcHBsaWNhdGlvbkZvcm1EaWFsb2cge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciBhcHBsaWNhdGlvbiBmb3JtIGlzIHN1Y2Nlc3NmdWxseSBzdWJtaXR0ZWQuXG4gICAqL1xuICBzdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0Q2xvdWRBcHBsaWNhdGlvbkZvcm1EaWFsb2dUZXRBcHBsaWNhdGlvbkZvcm1EaWFsb2dTdWJtaXNzaW9uRGF0YT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgb24gdGhlIGBjbG9zZWAgaWNvbiBjbGljaywgb3ZlcmxheSBjbGljayBvciB0aGUgYGVzY2Aga2V5IHByZXNzLlxuICAgKi9cbiAgY2xvc2VEaWFsb2c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdG8gYmUgZW1pdHRlZCB3aGVuIHRoZSBkaWFsb2cgaXMgb3BlbmVkLlxuICAgKi9cbiAgb3BlbkRpYWxvZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyU2VsZWN0b3InLCAnbGFuZ3VhZ2UnLCAnc2VsZWN0T25Gb2N1cycsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWNsb3VkLWNvbmZpZ3VyYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyU2VsZWN0b3InLCAnbGFuZ3VhZ2UnLCAnc2VsZWN0T25Gb2N1cycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDbG91ZENvbmZpZ3VyYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3VkQ2FsY3VsYXRvclN1Ym1pdCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDbG91ZENvbmZpZ3VyYXRvciBleHRlbmRzIENvbXBvbmVudHMuVGV0Q2xvdWRDb25maWd1cmF0b3Ige1xuICAvKipcbiAgICogVGhlIHN1Ym1pdCBldmVudCBvZiB0aGUgZm9ybS5cbiAgICovXG4gIGNsb3VkQ2FsY3VsYXRvclN1Ym1pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiZW5lZml0VGl0bGUnLCAnYmVuZWZpdHMnLCAnYmVzdENob2ljZScsICdiZXN0Q2hvaWNlVGV4dCcsICdiZXN0Q2hvaWNlVGV4dFBvc2l0aW9uJywgJ2JvbnVzZXMnLCAnYnV0dG9uVGl0bGUnLCAnY2FyZEJhY2tncm91bmRDb2xvcicsICdjYXJkU2NyaXB0JywgJ2NhcmRUeXBlJywgJ2NsaWNrQ2FsbGJhY2snLCAnY29sb3JJY29ucycsICdjb250cmFjdFRlcm0nLCAnY3VycmVuY3knLCAnZGFya01vZGUnLCAnZHJvcGRvd25PcHRpb25zJywgJ2xhbmd1YWdlJywgJ2xpbmtPcGVuQmxhbmsnLCAnb3B0aW9ucycsICdzZWNvbmRhcnlMaW5rJywgJ3NlY29uZGFyeUxpbmtPcGVuQmxhbmsnLCAnc2Vjb25kYXJ5TGlua1RleHQnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1jb21wYXJlLWNhcmQtdjInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JlbmVmaXRUaXRsZScsICdiZW5lZml0cycsICdiZXN0Q2hvaWNlJywgJ2Jlc3RDaG9pY2VUZXh0JywgJ2Jlc3RDaG9pY2VUZXh0UG9zaXRpb24nLCAnYm9udXNlcycsICdidXR0b25UaXRsZScsICdjYXJkQmFja2dyb3VuZENvbG9yJywgJ2NhcmRTY3JpcHQnLCAnY2FyZFR5cGUnLCAnY2xpY2tDYWxsYmFjaycsICdjb2xvckljb25zJywgJ2NvbnRyYWN0VGVybScsICdjdXJyZW5jeScsICdkYXJrTW9kZScsICdkcm9wZG93bk9wdGlvbnMnLCAnbGFuZ3VhZ2UnLCAnbGlua09wZW5CbGFuaycsICdvcHRpb25zJywgJ3NlY29uZGFyeUxpbmsnLCAnc2Vjb25kYXJ5TGlua09wZW5CbGFuaycsICdzZWNvbmRhcnlMaW5rVGV4dCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDb21wYXJlQ2FyZFYyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2FyZExvYWRlZCcsICdwcm9kdWN0Q2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDb21wYXJlQ2FyZFYyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRDb21wYXJlQ2FyZFYyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBoYXMgbG9hZGVkLlxuICAgKi9cbiAgY2FyZExvYWRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgcHJvZHVjdCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHByb2R1Y3RDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXJrVGhlbWUnLCAnbGFuZ3VhZ2UnLCAnc2hvd0lucHV0TGFiZWwnLCAnc2hvd1RpdGxlJywgJ3N1Ym1pdEJ1dHRvblByb3BzJywgJ3N1YnRpdGxlJywgJ3Rhc2tPcHRpb25zJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtY29udGFjdC1mb3JtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXJrVGhlbWUnLCAnbGFuZ3VhZ2UnLCAnc2hvd0lucHV0TGFiZWwnLCAnc2hvd1RpdGxlJywgJ3N1Ym1pdEJ1dHRvblByb3BzJywgJ3N1YnRpdGxlJywgJ3Rhc2tPcHRpb25zJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldENvbnRhY3RGb3JtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGFza0NyZWF0aW9uU3VjY2VzcycsICd0YXNrQ3JlYXRpb25GYWlsZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0Q29udGFjdEZvcm0gZXh0ZW5kcyBDb21wb25lbnRzLlRldENvbnRhY3RGb3JtIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBlbWl0dGVkIGlmIHRoZSB0YXNrIGNyZWF0aW9uIHdhcyBzdWNjZXNzZnVsLlxuICAgKi9cbiAgdGFza0NyZWF0aW9uU3VjY2VzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IGVtaXR0ZWQgaWYgdGhlIHRhc2sgY3JlYXRpb24gZmFpbGVkLlxuICAgKi9cbiAgdGFza0NyZWF0aW9uRmFpbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRhY3RCbG9ja3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1jb250YWN0LWluZm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRhY3RCbG9ja3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0Q29udGFjdEluZm8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDb250YWN0SW5mbyBleHRlbmRzIENvbXBvbmVudHMuVGV0Q29udGFjdEluZm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlnaGxpZ2h0YWJsZScsICdzZWxlY3RlZCcsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlnaGxpZ2h0YWJsZScsICdzZWxlY3RlZCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRDb250YWluZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2Nlc3NUb2tlbicsICdkYXJrVGhlbWUnLCAnZ3JvdXBCeUFkZHJlc3MnLCAnaGlkZUFzc2V0cycsICdsb2FkZXJFbGVtZW50c0NvdW50JywgJ3BpZCcsICdzYWxlc2ZvcmNlQWNjb3VudElkJywgJ3NpbmdsZUxvYWRlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWN1c3RvbWVyLWFzc2V0cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzVG9rZW4nLCAnZGFya1RoZW1lJywgJ2dyb3VwQnlBZGRyZXNzJywgJ2hpZGVBc3NldHMnLCAnbG9hZGVyRWxlbWVudHNDb3VudCcsICdwaWQnLCAnc2FsZXNmb3JjZUFjY291bnRJZCcsICdzaW5nbGVMb2FkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0Q3VzdG9tZXJBc3NldHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhc3NldFNlbGVjdGVkJywgJ2Fzc2V0c1VwZGF0ZWQnLCAnY3VzdG9tZXJOb3RGb3VuZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ3VzdG9tZXJBc3NldCBhcyBJVGV0Q3VzdG9tZXJBc3NldHNDdXN0b21lckFzc2V0IH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbWVyTm90Rm91bmQgYXMgSVRldEN1c3RvbWVyQXNzZXRzQ3VzdG9tZXJOb3RGb3VuZCB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0Q3VzdG9tZXJBc3NldHMgZXh0ZW5kcyBDb21wb25lbnRzLlRldEN1c3RvbWVyQXNzZXRzIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB1c2VyIHNlbGVjdHMgYW4gYXNzZXQuXG4gICAqL1xuICBhc3NldFNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEN1c3RvbWVyQXNzZXRzQ3VzdG9tZXJBc3NldD4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciBhc3NldHMgY2hhbmdlLlxuICAgKi9cbiAgYXNzZXRzVXBkYXRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRDdXN0b21lckFzc2V0c0N1c3RvbWVyQXNzZXRbXT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIG5vIFNhbGVzZm9yY2UgY3VzdG9tZXIgaXMgZm91bmQgZm9yIHRoZSBnaXZlbiBQSUQuXG4gICAqL1xuICBjdXN0b21lck5vdEZvdW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEN1c3RvbWVyQXNzZXRzQ3VzdG9tZXJOb3RGb3VuZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRlJywgJ2RhdGVwaWNrZXJWaWV3JywgJ2lzT3BlbicsICdsb2NhbGUnLCAnb3ZlcmxheUVmZmVjdCcsICdyYW5nZVBpY2tlck1vZGUnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVJc09wZW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRlJywgJ2RhdGVwaWNrZXJWaWV3JywgJ2lzT3BlbicsICdsb2NhbGUnLCAnb3ZlcmxheUVmZmVjdCcsICdyYW5nZVBpY2tlck1vZGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2RhdGVDaGFuZ2VkJywgJ3JhbmdlRGF0ZXNDaGFuZ2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldERhdGVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldERhdGVwaWNrZXIge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiBkYXRlIHdpbGwgY2hhbmdlLlxuICAgKi9cbiAgZGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxEYXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZCB3aGVuIGF0IGxlYXN0IG9uZSBvZiB0aGUgcmFuZ2UgZGF0ZXMgd2lsbCBjaGFuZ2UuXG4gICAqL1xuICByYW5nZURhdGVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PERhdGVbXT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRlcGlja2VyVmlldycsICdpbnRlcm5hbERhdGUnLCAnbG9jYWxlJywgJ3NlbGVjdGVkRGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWRhdGVwaWNrZXItaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRlcGlja2VyVmlldycsICdpbnRlcm5hbERhdGUnLCAnbG9jYWxlJywgJ3NlbGVjdGVkRGF0ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXREYXRlcGlja2VySGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW50ZXJuYWxEYXRlQ2hhbmdlZCcsICdkYXRlcGlja2VyVmlld0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERhdGVwaWNrZXJWaWV3IGFzIElUZXREYXRlcGlja2VySGVhZGVyRGF0ZXBpY2tlclZpZXcgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldERhdGVwaWNrZXJIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldERhdGVwaWNrZXJIZWFkZXIge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiB0aGUgaW50ZXJuYWwgZGF0ZSB3aWxsIGNoYW5nZS5cbiAgICovXG4gIGludGVybmFsRGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxEYXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZCB3aGVuIHRoZSBkYXRlcGlja2VyIHZpZXcgd2lsbCBjaGFuZ2UuXG4gICAqL1xuICBkYXRlcGlja2VyVmlld0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0RGF0ZXBpY2tlckhlYWRlckRhdGVwaWNrZXJWaWV3Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ludGVybmFsRGF0ZScsICdyYW5nZURhdGVzJywgJ3JhbmdlUGlja2VyTW9kZScsICdzZWxlY3RlZERhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1kYXRlcGlja2VyLW1vbnRoLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ludGVybmFsRGF0ZScsICdyYW5nZURhdGVzJywgJ3JhbmdlUGlja2VyTW9kZScsICdzZWxlY3RlZERhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGF0ZXBpY2tlck1vbnRoVmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2ludGVybmFsRGF0ZUNoYW5nZWQnLCAnZGF0ZUNoYW5nZWQnLCAnZGF0ZXBpY2tlckNsb3NlZCcsICdyYW5nZURhdGVTZXQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERhdGVwaWNrZXJSYW5nZVNldERhdGEgYXMgSVRldERhdGVwaWNrZXJNb250aFZpZXdEYXRlcGlja2VyUmFuZ2VTZXREYXRhIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXREYXRlcGlja2VyTW9udGhWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXREYXRlcGlja2VyTW9udGhWaWV3IHtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgd2lsbCBiZSBlbWl0dGVkIHdoZW4gdGhlIGludGVybmFsIGRhdGUgd2lsbCBjaGFuZ2UuXG4gICAqL1xuICBpbnRlcm5hbERhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8RGF0ZT4+O1xuICAvKipcbiAgICogRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiBkYXRlIHdpbGwgY2hhbmdlLlxuICAgKi9cbiAgZGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxEYXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZCB3aGVuIHRoZSBkYXRlcGlja2VyIHdpbGwgYmUgY2xvc2VkLlxuICAgKi9cbiAgZGF0ZXBpY2tlckNsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgd2lsbCBiZSBlbWl0dGVkIHdoZW4gb25lIG9mIHRoZSByYW5nZSBkYXRlcyB3aWxsIGJlIHNldC5cbiAgICovXG4gIHJhbmdlRGF0ZVNldDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXREYXRlcGlja2VyTW9udGhWaWV3RGF0ZXBpY2tlclJhbmdlU2V0RGF0YT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbnRlcm5hbERhdGUnLCAnc2VsZWN0ZWREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtZGF0ZXBpY2tlci1tdWx0aS15ZWFyLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ludGVybmFsRGF0ZScsICdzZWxlY3RlZERhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGF0ZXBpY2tlck11bHRpWWVhclZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnRlcm5hbERhdGVDaGFuZ2VkJywgJ2RhdGVwaWNrZXJWaWV3Q2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRGF0ZXBpY2tlclZpZXcgYXMgSVRldERhdGVwaWNrZXJNdWx0aVllYXJWaWV3RGF0ZXBpY2tlclZpZXcgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldERhdGVwaWNrZXJNdWx0aVllYXJWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXREYXRlcGlja2VyTXVsdGlZZWFyVmlldyB7XG4gIC8qKlxuICAgKiBJbnRlcm5hbCBkYXRlIGNoYW5nZWQgZXZlbnQuXG4gICAqL1xuICBpbnRlcm5hbERhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8RGF0ZT4+O1xuICAvKipcbiAgICogRGF0ZXBpY2tlciB2aWV3IGNoYW5nZWQgZXZlbnQuXG4gICAqL1xuICBkYXRlcGlja2VyVmlld0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0RGF0ZXBpY2tlck11bHRpWWVhclZpZXdEYXRlcGlja2VyVmlldz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbnRlcm5hbERhdGUnLCAnc2VsZWN0ZWREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtZGF0ZXBpY2tlci15ZWFyLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ludGVybmFsRGF0ZScsICdzZWxlY3RlZERhdGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGF0ZXBpY2tlclllYXJWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW50ZXJuYWxEYXRlQ2hhbmdlZCcsICdkYXRlcGlja2VyVmlld0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERhdGVwaWNrZXJWaWV3IGFzIElUZXREYXRlcGlja2VyWWVhclZpZXdEYXRlcGlja2VyVmlldyB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0RGF0ZXBpY2tlclllYXJWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXREYXRlcGlja2VyWWVhclZpZXcge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiB0aGUgaW50ZXJuYWwgZGF0ZSB3aWxsIGNoYW5nZS5cbiAgICovXG4gIGludGVybmFsRGF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxEYXRlPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IHdpbGwgYmUgZW1pdHRlZCB3aGVuIHRoZSBkYXRlcGlja2VyIHZpZXcgd2lsbCBjaGFuZ2UuXG4gICAqL1xuICBkYXRlcGlja2VyVmlld0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0RGF0ZXBpY2tlclllYXJWaWV3RGF0ZXBpY2tlclZpZXc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VPbkVzY2FwZScsICdjbG9zZU9uT3ZlcmxheUNsaWNrJywgJ2Zvb3RlckRpc3BsYXknLCAnaGVhZGVyVGl0bGUnLCAnaGlkZUNsb3NlQnV0dG9uJywgJ2hpZGVIZWFkZXInLCAnaXNPcGVuJywgJ3ByZXZlbnREZWZhdWx0Q2xvc2UnLCAnc2hvd0hlYWRlckRpdmlkZXInLCAndGhlbWUnLCAndGl0bGVJZCddLFxuICBtZXRob2RzOiBbJ29wZW4nLCAnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlT25Fc2NhcGUnLCAnY2xvc2VPbk92ZXJsYXlDbGljaycsICdmb290ZXJEaXNwbGF5JywgJ2hlYWRlclRpdGxlJywgJ2hpZGVDbG9zZUJ1dHRvbicsICdoaWRlSGVhZGVyJywgJ2lzT3BlbicsICdwcmV2ZW50RGVmYXVsdENsb3NlJywgJ3Nob3dIZWFkZXJEaXZpZGVyJywgJ3RoZW1lJywgJ3RpdGxlSWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2VEaWFsb2cnLCAnb3BlbkRpYWxvZyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXREaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLlRldERpYWxvZyB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdG8gYmUgZW1pdHRlZCBvbiB0aGUgYGNsb3NlYCBpY29uIGNsaWNrLCBvdmVybGF5IGNsaWNrIG9yIHRoZSBgZXNjYCBrZXkgcHJlc3MuXG4gICAqL1xuICBjbG9zZURpYWxvZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIGlzIG9wZW5lZC5cbiAgICovXG4gIG9wZW5EaWFsb2c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV2ZW50VHlwZTogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsb3dNdWx0aXBsZScsICdidXR0b25MYWJlbCcsICdjbG9zZU9uU2VsZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2ZsZXhMYXlvdXQnLCAnbGFiZWwnLCAnbGFiZWxMb2dvJywgJ2xhYmVsTG9nb0dyYXlzY2FsZScsICdsYWJlbFJpZ2h0JywgJ2xhYmVsUmlnaHRDb2xvcicsICdsYWJlbFN1YlRleHQnLCAnb3B0aW9ucycsICd0aGVtZSddLFxuICBtZXRob2RzOiBbJ2dldFNlbGVjdGVkT3B0aW9ucycsICdzZWxlY3RPcHRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dNdWx0aXBsZScsICdidXR0b25MYWJlbCcsICdjbG9zZU9uU2VsZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2ZsZXhMYXlvdXQnLCAnbGFiZWwnLCAnbGFiZWxMb2dvJywgJ2xhYmVsTG9nb0dyYXlzY2FsZScsICdsYWJlbFJpZ2h0JywgJ2xhYmVsUmlnaHRDb2xvcicsICdsYWJlbFN1YlRleHQnLCAnb3B0aW9ucycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXREcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ29wdGlvblNlbGVjdGVkJywgJ29wdGlvbkNoZWNrZWQnLCAnb3B0aW9uc0NoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IERyb3Bkb3duT3B0aW9uSW50ZXJmYWNlIGFzIElUZXREcm9wZG93bkRyb3Bkb3duT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFNlbGVjdGVkT3B0aW9uSW50ZXJmYWNlIGFzIElUZXREcm9wZG93blNlbGVjdGVkT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXREcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGV0RHJvcGRvd24ge1xuICAvKipcbiAgICogVHJpZ2dlcnMgd2hlbmV2ZXIgYSBzaW5nbGUgb3B0aW9uIGlzIHNlbGVjdGVkIGFuZCByZXR1cm5zIHRoZSBvcHRpb24uXG4gICAqL1xuICBvcHRpb25TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXREcm9wZG93bkRyb3Bkb3duT3B0aW9uSW50ZXJmYWNlPj47XG4gIC8qKlxuICAgKiBUcmlnZ2VycyB3aGVuZXZlciBhIG11bHRpLXNlbGVjdGFibGUgb3B0aW9uIGlzIGNoZWNrZWQvdW5jaGVja2VkLlxuICAgKi9cbiAgb3B0aW9uQ2hlY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXREcm9wZG93blNlbGVjdGVkT3B0aW9uSW50ZXJmYWNlPj47XG4gIC8qKlxuICAgKiBUcmlnZ2VycyB3aGVuZXZlciBhbiBvcHRpb24gaXMgY2hhbmdlZCBhbmQgcmV0dXJucyBhIGxpc3Qgb2YgYWxsIHNlbGVjdGVkIG9wdGlvbnMuXG4gICAqL1xuICBvcHRpb25zQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXREcm9wZG93bkRyb3Bkb3duT3B0aW9uSW50ZXJmYWNlW10+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FyZFRpdGxlJywgJ2RhdGVUYWcnLCAnZGF0ZVRhZ0NvbG9yRGFyaycsICdkYXRlVGFnQ29sb3JMaWdodCcsICdpbmRleCcsICdpc0luQ2Fyb3VzZWwnLCAnbGlua0hyZWYnLCAnbGlua05ld1RhYicsICdsaW5rVGV4dCcsICdwaWN0dXJlTGF5b3V0U2hpZnRQb3NpdGlvbicsICdwcmljZVRhZ09wdGlvbnMnLCAnc2l6ZScsICdzaXplQ2hhbmdlQnJlYWtwb2ludCcsICdzdWJ0aXRsZScsICd0YWdzJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtZHluYW1pYy1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXJkVGl0bGUnLCAnZGF0ZVRhZycsICdkYXRlVGFnQ29sb3JEYXJrJywgJ2RhdGVUYWdDb2xvckxpZ2h0JywgJ2luZGV4JywgJ2lzSW5DYXJvdXNlbCcsICdsaW5rSHJlZicsICdsaW5rTmV3VGFiJywgJ2xpbmtUZXh0JywgJ3BpY3R1cmVMYXlvdXRTaGlmdFBvc2l0aW9uJywgJ3ByaWNlVGFnT3B0aW9ucycsICdzaXplJywgJ3NpemVDaGFuZ2VCcmVha3BvaW50JywgJ3N1YnRpdGxlJywgJ3RhZ3MnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RHluYW1pY0NhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0ZXREeW5hbWljQ2FyZENsaWNrRXZlbnQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0RHluYW1pY0NhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlRldER5bmFtaWNDYXJkIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2FyZCBpcyBjbGlja2VkXG4gICAqL1xuICB0ZXREeW5hbWljQ2FyZENsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2Vzc2liaWxpdHlMYWJlbCcsICdhbmltYXRpb25EdXJhdGlvbicsICdjbGFzcycsICdjbG9zZUlucHV0VGV4dCcsICdjbG9zZWRXaWR0aCcsICdkYXJrTW9kZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdpY29uTGVmdCcsICdpY29uUmlnaHQnLCAnaWNvblJpZ2h0Q2xpY2tDYWxsYmFjaycsICdtYW51YWxWYWxpZGF0aW9uJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAnc2l6ZScsICd0aGVtZScsICd2YWxpZGF0b3JzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0SW5wdXRIdG1sRWxlbWVudCcsICdnZXRFcnJvcnMnLCAndmFsaWRhdGVJbnB1dCcsICdzZXRTdGF0ZScsICdjbGVhciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWV4cGFuZGFibGUtaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2Vzc2liaWxpdHlMYWJlbCcsICdhbmltYXRpb25EdXJhdGlvbicsICdjbGFzcycsICdjbG9zZUlucHV0VGV4dCcsICdjbG9zZWRXaWR0aCcsICdkYXJrTW9kZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdpY29uTGVmdCcsICdpY29uUmlnaHQnLCAnaWNvblJpZ2h0Q2xpY2tDYWxsYmFjaycsICdtYW51YWxWYWxpZGF0aW9uJywgJ21vZGUnLCAncGxhY2Vob2xkZXInLCAnc2l6ZScsICd0aGVtZScsICd2YWxpZGF0b3JzJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEV4cGFuZGFibGVJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2JlZm9yZS1zdGF0ZS1jaGFuZ2UnLCAnYWZ0ZXItc3RhdGUtY2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZUNoYW5nZUludGVyZmFjZSBhcyBJVGV0RXhwYW5kYWJsZUlucHV0U3RhdGVDaGFuZ2VJbnRlcmZhY2UgfSBmcm9tICdAdGV0L3RldC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldEV4cGFuZGFibGVJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuVGV0RXhwYW5kYWJsZUlucHV0IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBlbWl0dGVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGV4cGFuZGluZyBvciBzaHJpbmtpbmcgYW5pbWF0aW9uIG9mIHRoZSBpbnB1dC5cbiAgICovXG4gICdiZWZvcmUtc3RhdGUtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRFeHBhbmRhYmxlSW5wdXRTdGF0ZUNoYW5nZUludGVyZmFjZT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgZXhwYW5kaW5nIG9yIHNocmlua2luZyBhbmltYXRpb24gb2YgdGhlIGlucHV0LlxuICAgKi9cbiAgJ2FmdGVyLXN0YXRlLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0RXhwYW5kYWJsZUlucHV0U3RhdGVDaGFuZ2VJbnRlcmZhY2U+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW5pdGlhbFN0YXRlJywgJ3RvZ2dsZUVsZW1lbnQnXSxcbiAgbWV0aG9kczogWydvcGVuJywgJ2Nsb3NlJywgJ3RvZ2dsZScsICdnZXRTdGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWV4cGFuc2lvbi1wYW5lbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaW5pdGlhbFN0YXRlJywgJ3RvZ2dsZUVsZW1lbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0RXhwYW5zaW9uUGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRFeHBhbnNpb25QYW5lbCBleHRlbmRzIENvbXBvbmVudHMuVGV0RXhwYW5zaW9uUGFuZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xlYXJGaWx0ZXJCdXR0b25UaXRsZScsICdzaG93Q2xlYXJGaWx0ZXJCdXR0b24nLCAndGFncycsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWZpbHRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xlYXJGaWx0ZXJCdXR0b25UaXRsZScsICdzaG93Q2xlYXJGaWx0ZXJCdXR0b24nLCAndGFncycsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRGaWx0ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydmaWx0ZXJDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEZpbHRlclN0YXRlIGFzIElUZXRGaWx0ZXJGaWx0ZXJTdGF0ZSB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0RmlsdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRGaWx0ZXIge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiBmaWx0ZXJzIGNoYW5nZVxuICAgKi9cbiAgZmlsdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRldEZpbHRlckZpbHRlclN0YXRlW10+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2ZvY3VzYWJsZScsICduYW1lJywgJ3RoZW1lJywgJ3R5cGUnLCAndXNlRGVmYXVsdENvbG9yJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2ZvY3VzYWJsZScsICduYW1lJywgJ3RoZW1lJywgJ3R5cGUnLCAndXNlRGVmYXVsdENvbG9yJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldEljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3RoZW1lJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1pbmxpbmUtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGhlbWUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRJbmxpbmVNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0SW5saW5lTWVzc2FnZSBleHRlbmRzIENvbXBvbmVudHMuVGV0SW5saW5lTWVzc2FnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnYXV0b2NvbXBsZXRlJywgJ2NsYXNzJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ljb25MZWZ0JywgJ2ljb25MZWZ0Q2xpY2tDYWxsYmFjaycsICdpY29uUmlnaHQnLCAnaWNvblJpZ2h0Q2xpY2tDYWxsYmFjaycsICdpbnB1dFRhYmluZGV4JywgJ2lzUGhvbmVOdW1iZXInLCAnbGFiZWwnLCAnbWFudWFsVmFsaWRhdGlvbicsICdtYXhsZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAndGhlbWUnLCAndHlwZScsICd2YWxpZGF0b3JzJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0SW5wdXRIdG1sRWxlbWVudCcsICdnZXRFcnJvcnMnLCAnY2xlYXJFcnJvcnMnLCAndmFsaWRhdGVJbnB1dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnYXV0b2NvbXBsZXRlJywgJ2NsYXNzJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ljb25MZWZ0JywgJ2ljb25MZWZ0Q2xpY2tDYWxsYmFjaycsICdpY29uUmlnaHQnLCAnaWNvblJpZ2h0Q2xpY2tDYWxsYmFjaycsICdpbnB1dFRhYmluZGV4JywgJ2lzUGhvbmVOdW1iZXInLCAnbGFiZWwnLCAnbWFudWFsVmFsaWRhdGlvbicsICdtYXhsZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAndGhlbWUnLCAndHlwZScsICd2YWxpZGF0b3JzJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldElucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0SW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlRldElucHV0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdsYWJlbFRpdGxlJywgJ3Nob3dJY29uJywgJ3RoZW1lJywgJ3RyYW5zbGF0ZVRpdGxlJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2xhYmVsVGl0bGUnLCAnc2hvd0ljb24nLCAndGhlbWUnLCAndHJhbnNsYXRlVGl0bGUnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldExhYmVsIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRMYWJlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LWxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRMb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRMb2FkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldExvYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2xpY2thYmxlJywgJ2RhcmtNb2RlJywgJ2ZpcnN0TGV2ZWxJY29uJywgJ2ZpcnN0TGV2ZWxJZCcsICdmaXJzdExldmVsTGluaycsICdmaXJzdExldmVsVGl0bGUnLCAnc3ViTGV2ZWxzJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2xpY2thYmxlJywgJ2RhcmtNb2RlJywgJ2ZpcnN0TGV2ZWxJY29uJywgJ2ZpcnN0TGV2ZWxJZCcsICdmaXJzdExldmVsTGluaycsICdmaXJzdExldmVsVGl0bGUnLCAnc3ViTGV2ZWxzJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0TWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLlRldE1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGFya01vZGUnLCAnZmlyc3RMZXZlbElkJywgJ2ZpcnN0TGV2ZWxMaW5rJywgJ2ZpcnN0TGV2ZWxUaXRsZScsICdpc0FjdGl2ZScsICdzdWJMZXZlbHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1tZW51LW1vYmlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGFya01vZGUnLCAnZmlyc3RMZXZlbElkJywgJ2ZpcnN0TGV2ZWxMaW5rJywgJ2ZpcnN0TGV2ZWxUaXRsZScsICdpc0FjdGl2ZScsICdzdWJMZXZlbHMnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0TWVudU1vYmlsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldE1lbnVNb2JpbGUgZXh0ZW5kcyBDb21wb25lbnRzLlRldE1lbnVNb2JpbGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdkaWFsb2dEYXRhU2NyZWVuS2V5JywgJ2lzT3BlbicsICdsYW5ndWFnZScsICdzdGVwcycsICd0ZXREaWFsb2dDbGFzcycsICd0aGVtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LW11bHRpLXN0ZXAtZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2RpYWxvZ0RhdGFTY3JlZW5LZXknLCAnaXNPcGVuJywgJ2xhbmd1YWdlJywgJ3N0ZXBzJywgJ3RldERpYWxvZ0NsYXNzJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldE11bHRpU3RlcERpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2Nsb3NlRGlhbG9nJywgJ29wZW5EaWFsb2cnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0TXVsdGlTdGVwRGlhbG9nIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRNdWx0aVN0ZXBEaWFsb2cge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgb24gdGhlIGBjbG9zZWAgaWNvbiBjbGljaywgb3ZlcmxheSBjbGljayBvciB0aGUgYGVzY2Aga2V5IHByZXNzLlxuICAgKi9cbiAgY2xvc2VEaWFsb2c6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0byBiZSBlbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuZWQuXG4gICAqL1xuICBvcGVuRGlhbG9nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhcmtNb2RlJ10sXG4gIG1ldGhvZHM6IFsnc2hvd1RvZ2dsZXInLCAnaGlkZVRvZ2dsZXInLCAnb3BlbicsICdjbG9zZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LW5hdmlnYXRpb24tbW9iaWxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXJrTW9kZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXROYXZpZ2F0aW9uTW9iaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnbWFpbkRyb3Bkb3duVG9nZ2xlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldE5hdmlnYXRpb25Nb2JpbGUgZXh0ZW5kcyBDb21wb25lbnRzLlRldE5hdmlnYXRpb25Nb2JpbGUge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRvIGJlIGVtaXR0ZWQgb24gdGhlIGBpc1RvZ2dsZXJFeHBhbmRlZGAgdmFsdWUgY2hhbmdlLlxuICAgKi9cbiAgbWFpbkRyb3Bkb3duVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd0Nsb3NlJywgJ2FuaW1hdGlvbkR1cmF0aW9uJywgJ2NvbnRlbnQnLCAnaGVhZGVyVGl0bGUnLCAnaWNvbicsICd0aGVtZScsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1ub3RpZmljYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93Q2xvc2UnLCAnYW5pbWF0aW9uRHVyYXRpb24nLCAnY29udGVudCcsICdoZWFkZXJUaXRsZScsICdpY29uJywgJ3RoZW1lJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0Tm90aWZpY2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0Tm90aWZpY2F0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZXROb3RpZmljYXRpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2J1dHRvbkFjY2Vzc2liaWxpdHlMYWJlbCcsICdjb21wbGV0ZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGVscGVyVGV4dCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ3NlbGVjdE9uRm9jdXMnLCAnc3VmZml4ZXMnLCAndGhlbWUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydnZXRWYWx1ZScsICdyZXNldFN1ZmZpeCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LW51bWJlci1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2J1dHRvbkFjY2Vzc2liaWxpdHlMYWJlbCcsICdjb21wbGV0ZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGVscGVyVGV4dCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ3NlbGVjdE9uRm9jdXMnLCAnc3VmZml4ZXMnLCAndGhlbWUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0TnVtYmVySW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpbnB1dFZhbHVlQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXROdW1iZXJJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuVGV0TnVtYmVySW5wdXQge1xuICAvKipcbiAgICogRW1pdHMgaW5wdXQgZXZlbnRcbiAgICovXG4gIGlucHV0VmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhcmtUaGVtZScsICdoZWlnaHQnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1wbGFjZWhvbGRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGFya1RoZW1lJywgJ2hlaWdodCcsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRQbGFjZWhvbGRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFBsYWNlaG9sZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRQbGFjZWhvbGRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2NlbnRzUHJpY2UnLCAnZXVyb1ByaWNlJywgJ2ZvbnQnLCAnZm9vdGVyVGV4dCcsICdmb290ZXJUZXh0VHlwZScsICdoZWFkaW5nVGV4dCcsICdwcmljZVR5cGUnLCAnc2l6ZScsICdzdGF0aWNDb2xvcnMnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1wcmljZS12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2NlbnRzUHJpY2UnLCAnZXVyb1ByaWNlJywgJ2ZvbnQnLCAnZm9vdGVyVGV4dCcsICdmb290ZXJUZXh0VHlwZScsICdoZWFkaW5nVGV4dCcsICdwcmljZVR5cGUnLCAnc2l6ZScsICdzdGF0aWNDb2xvcnMnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0UHJpY2VWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0UHJpY2VWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXRQcmljZVZpZXcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5wdXRBdXRvZm9jdXMnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldENoZWNrZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5wdXRBdXRvZm9jdXMnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2NoZWNrJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBSYWRpb0NoZWNrRXZlbnRJbnRlcmZhY2UgYXMgSVRldFJhZGlvUmFkaW9DaGVja0V2ZW50SW50ZXJmYWNlIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRSYWRpbyBleHRlbmRzIENvbXBvbmVudHMuVGV0UmFkaW8ge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciB0aGUgY29udHJvbCBlbGVtZW50IGlzIGNoZWNrZWQuXG4gICAqL1xuICBjaGVjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRSYWRpb1JhZGlvQ2hlY2tFdmVudEludGVyZmFjZT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhZGRCdXR0b25BY2Nlc3NpYmlsaXR5TGFiZWwnLCAnZGF0YVBvaW50cycsICdkYXRhVW5pdHMnLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc3BsYXlEYXRhUG9pbnRzJywgJ2lucHV0TWF4VmFsdWUnLCAnbG9ja1RvRGF0YVBvaW50JywgJ21heFZhbHVlJywgJ21pblZhbHVlJywgJ251bWJlcklucHV0QWNjZXNzaWJpbGl0eUxhYmVsJywgJ3BhcmVudENvbnRhaW5lcicsICdyZWR1Y2VCdXR0b25BY2Nlc3NpYmlsaXR5TGFiZWwnLCAnc2l6ZScsICdzbGlkZXJJbnB1dEFjY2Vzc2liaWxpdHlMYWJlbCcsICdzdGVwJywgJ3RoZW1lJywgJ3R5cGUnLCAnd2l0aENvbnRyb2xzJywgJ3dpdGhDdXJyZW50U3RlcENvdW50ZXInLCAnd2l0aElucHV0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtcmFuZ2Utc2xpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhZGRCdXR0b25BY2Nlc3NpYmlsaXR5TGFiZWwnLCAnZGF0YVBvaW50cycsICdkYXRhVW5pdHMnLCAnZGVmYXVsdFZhbHVlJywgJ2Rpc3BsYXlEYXRhUG9pbnRzJywgJ2lucHV0TWF4VmFsdWUnLCAnbG9ja1RvRGF0YVBvaW50JywgJ21heFZhbHVlJywgJ21pblZhbHVlJywgJ251bWJlcklucHV0QWNjZXNzaWJpbGl0eUxhYmVsJywgJ3BhcmVudENvbnRhaW5lcicsICdyZWR1Y2VCdXR0b25BY2Nlc3NpYmlsaXR5TGFiZWwnLCAnc2l6ZScsICdzbGlkZXJJbnB1dEFjY2Vzc2liaWxpdHlMYWJlbCcsICdzdGVwJywgJ3RoZW1lJywgJ3R5cGUnLCAnd2l0aENvbnRyb2xzJywgJ3dpdGhDdXJyZW50U3RlcENvdW50ZXInLCAnd2l0aElucHV0J10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFJhbmdlU2xpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2xpZGVyLWlucHV0JywgJ3NsaWRlci1jaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0UmFuZ2VTbGlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldFJhbmdlU2xpZGVyIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgb24gc2xpZGVyIGlucHV0LlxuICAgKi9cbiAgJ3NsaWRlci1pbnB1dCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGVtaXR0ZWQgb24gc2xpZGVyIGNoYW5nZS5cbiAgICovXG4gICdzbGlkZXItY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRhJywgJ2xhbmd1YWdlJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtcmVmZXJyYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RhdGEnLCAnbGFuZ3VhZ2UnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0UmVmZXJyYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd1cmxDb3BpZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0UmVmZXJyYWwgZXh0ZW5kcyBDb21wb25lbnRzLlRldFJlZmVycmFsIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0byBiZSBlbWl0dGVkIHdoZW4gdGhlIGxpbmsgaXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuXG4gICAqL1xuICB1cmxDb3BpZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZvcmNlZENvbHVtbicsICdoaWRlSWNvbnMnLCAnc3RlcHBlckRhdGEnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1yb3VuZC1zdGVwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmb3JjZWRDb2x1bW4nLCAnaGlkZUljb25zJywgJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFJvdW5kU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFJvdW5kU3RlcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGV0Um91bmRTdGVwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2lkZW50aWZpZXInLCAnaXRlbVJlbmRlckZ1bmN0aW9uJywgJ2l0ZW1zJywgJ211bHRpcGxlU2VsZWN0aW9ucycsICdwcmVTZWxlY3RlZEl0ZW1zJ10sXG4gIG1ldGhvZHM6IFsndW5zZXRTZWxlY3RlZEl0ZW1zJywgJ2dldFNlbGVjdGVkSXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1zZWxlY3Rpb24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWRlbnRpZmllcicsICdpdGVtUmVuZGVyRnVuY3Rpb24nLCAnaXRlbXMnLCAnbXVsdGlwbGVTZWxlY3Rpb25zJywgJ3ByZVNlbGVjdGVkSXRlbXMnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0U2VsZWN0aW9uTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2l0ZW1TZWxlY3RlZCcsICdzZWxlY3Rpb25MaXN0UmVuZGVyZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0U2VsZWN0aW9uTGlzdCBleHRlbmRzIENvbXBvbmVudHMuVGV0U2VsZWN0aW9uTGlzdCB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gaXRlbSBpcyBzZWxlY3RlZCBvciBkZS1zZWxlY3RlZC5cbiAgICovXG4gIGl0ZW1TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuICAgKi9cbiAgc2VsZWN0aW9uTGlzdFJlbmRlcmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnLCAndGhlbWUnLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3NldFByb2dyZXNzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtc3Bpbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZScsICd0aGVtZScsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFNwaW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRTcGlubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRTcGlubmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3N0ZXBwZXJEYXRhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RlcHBlckRhdGEnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0U3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRldFN0ZXBwZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2xhbmd1YWdlJywgJ21heCcsICdtaW4nLCAnc2VsZWN0T25Gb2N1cycsICdzdGVwJywgJ3RoZW1lJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0VmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1zdGVwcGVyLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnbGFuZ3VhZ2UnLCAnbWF4JywgJ21pbicsICdzZWxlY3RPbkZvY3VzJywgJ3N0ZXAnLCAndGhlbWUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0U3RlcHBlcklucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnaW5wdXRWYWx1ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0U3RlcHBlcklucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5UZXRTdGVwcGVySW5wdXQge1xuICAvKipcbiAgICogRW1pdHMgaW5wdXQgZXZlbnRcbiAgICovXG4gIGlucHV0VmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtc3RlcHBlci12MicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RlcHBlckRhdGEnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0U3RlcHBlclYyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0U3RlcHBlclYyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRTdGVwcGVyVjIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc3RlcHBlckRhdGEnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC1zdGVwcGVyLXYzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzdGVwcGVyRGF0YScsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRTdGVwcGVyVjMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRTdGVwcGVyVjMgZXh0ZW5kcyBDb21wb25lbnRzLlRldFN0ZXBwZXJWMyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2Nlc3NpYmlsaXR5TGFiZWwnLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdsYWJlbCcsICduYW1lJywgJ3RoZW1lJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Q2hlY2tlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LXN3aXRjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXNzaWJpbGl0eUxhYmVsJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbGFiZWwnLCAnbmFtZScsICd0aGVtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRTd2l0Y2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGVjayddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3dpdGNoQ2hlY2tFdmVudEludGVyZmFjZSBhcyBJVGV0U3dpdGNoU3dpdGNoQ2hlY2tFdmVudEludGVyZmFjZSB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0U3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRTd2l0Y2gge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZW1pdHRlZCB3aGVuZXZlciB0aGUgY29udHJvbCBlbGVtZW50IGlzIGNoZWNrZWQuXG4gICAqL1xuICBjaGVjazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRTd2l0Y2hTd2l0Y2hDaGVja0V2ZW50SW50ZXJmYWNlPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RhdGFOYW1lJywgJ2RlZmF1bHRUYWInLCAncGFyZW50Q29udGFpbmVyJywgJ3VzZVZpc2liaWxpdHknXSxcbiAgbWV0aG9kczogWydpbml0JywgJ3NlbGVjdFRhYiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LXRhYi1jb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRhTmFtZScsICdkZWZhdWx0VGFiJywgJ3BhcmVudENvbnRhaW5lcicsICd1c2VWaXNpYmlsaXR5J10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRhYkNvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0YWJTZWxlY3RlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgVGFiU2VsZWN0RXZlbnREYXRhIGFzIElUZXRUYWJDb250ZW50VGFiU2VsZWN0RXZlbnREYXRhIH0gZnJvbSAnQHRldC90ZXQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRUYWJDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUYWJDb250ZW50IHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0cmlnZ2VyZWQgb24gc2VsZWN0aW9uIG9mIHRoZSB0YWIuXG4gICAqL1xuICB0YWJTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZXRUYWJDb250ZW50VGFiU2VsZWN0RXZlbnREYXRhPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5RGVsYXknLCAnZGFya01vZGUnLCAnZGF0YU5hbWUnLCAnZGVmYXVsdFRhYicsICdoaWRlQWN0aXZlSGVhZGVyVW5kZXJsaW5lJywgJ2hpZGVIZWFkZXJVbmRlcmxpbmUnLCAncG9zaXRpb24nLCAnc2VnbWVudGVkJywgJ3NpemluZycsICdzdG9wQXV0b3BsYXlPbkNvbnRlbnRIb3ZlcicsICdzdG9wQXV0b3BsYXlPbkhlYWRlckhvdmVyJywgJ3RoZW1lJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVBdXRvcGxheScsICdzdG9wQXV0b3BsYXknLCAnc3RhcnRBdXRvcGxheScsICdzZWxlY3RUYWInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10YWItaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheURlbGF5JywgJ2RhcmtNb2RlJywgJ2RhdGFOYW1lJywgJ2RlZmF1bHRUYWInLCAnaGlkZUFjdGl2ZUhlYWRlclVuZGVybGluZScsICdoaWRlSGVhZGVyVW5kZXJsaW5lJywgJ3Bvc2l0aW9uJywgJ3NlZ21lbnRlZCcsICdzaXppbmcnLCAnc3RvcEF1dG9wbGF5T25Db250ZW50SG92ZXInLCAnc3RvcEF1dG9wbGF5T25IZWFkZXJIb3ZlcicsICd0aGVtZScsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRhYkhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RhYlNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBUYWJTZWxlY3RFdmVudERhdGEgYXMgSVRldFRhYkhlYWRlclRhYlNlbGVjdEV2ZW50RGF0YSB9IGZyb20gJ0B0ZXQvdGV0LWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0VGFiSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUYWJIZWFkZXIge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRyaWdnZXJlZCBvbiB0YWIgc2VsZWN0aW9uLlxuICAgKi9cbiAgdGFiU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGV0VGFiSGVhZGVyVGFiU2VsZWN0RXZlbnREYXRhPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY2VsbFRleHRBbGlnbicsICdmaXhlZEZpcnN0Q29sdW1uJywgJ2dhcHBlZENvbHVtbkxheW91dCcsICd0YWJsZURhdGEnLCAndGFibGVIZWFkZXInLCAndGFibGVIZWFkZXJDb2x1bW5TcGFuJywgJ3RhYmxlSGVhZGVyVGV4dEFsaWduJywgJ3RhYmxlSGVhZGVyV2lkdGgnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjZWxsVGV4dEFsaWduJywgJ2ZpeGVkRmlyc3RDb2x1bW4nLCAnZ2FwcGVkQ29sdW1uTGF5b3V0JywgJ3RhYmxlRGF0YScsICd0YWJsZUhlYWRlcicsICd0YWJsZUhlYWRlckNvbHVtblNwYW4nLCAndGFibGVIZWFkZXJUZXh0QWxpZ24nLCAndGFibGVIZWFkZXJXaWR0aCcsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRUYWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUYWJsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnY291bnQnLCAnZGlzYWJsZWQnLCAnbGFuZ3VhZ2UnLCAnc2hvd0ljb24nLCAndGFnVGl0bGUnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjb3VudCcsICdkaXNhYmxlZCcsICdsYW5ndWFnZScsICdzaG93SWNvbicsICd0YWdUaXRsZScsICd0aGVtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRUYWcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRUYWcgZXh0ZW5kcyBDb21wb25lbnRzLlRldFRhZyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYW5ndWFnZScsICd0YWdzJywgJ3RoZW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtdGFnLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYW5ndWFnZScsICd0YWdzJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRhZ0dyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0VGFnR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlRldFRhZ0dyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RlY2ltYWxQcmVmaXgnLCAnZGVjaW1hbFN0YXJ0JywgJ2xpc3RJY29uJywgJ2xpc3RUeXBlJywgJ3RoZW1lJywgJ3dpdGhJY29uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtdGV4dC1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWNpbWFsUHJlZml4JywgJ2RlY2ltYWxTdGFydCcsICdsaXN0SWNvbicsICdsaXN0VHlwZScsICd0aGVtZScsICd3aXRoSWNvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRUZXh0TGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFRleHRMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUZXh0TGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlcnJvck1lc3NhZ2VzJywgJ2xhYmVsJywgJ3BsYWNlaG9sZGVyJywgJ3RoZW1lJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtdGV4dGFyZWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yTWVzc2FnZXMnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAndGhlbWUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0VGV4dGFyZWEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRUZXh0YXJlYSBleHRlbmRzIENvbXBvbmVudHMuVGV0VGV4dGFyZWEge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3RhQnV0dG9uRGVzY3JpcHRpb24nLCAnY3RhQnV0dG9uTGFiZWwnLCAnY3RhQnV0dG9uU2l6ZScsICdjdGFCdXR0b25UeXBlJywgJ21haW5CbG9ja0Rlc2NyaXB0aW9uJywgJ21haW5CbG9ja0ljb24nLCAnbWFpbkJsb2NrVGl0bGUnLCAnc3RlcHBlckRhdGEnLCAndGhlbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10aGFuay15b3UtdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3RhQnV0dG9uRGVzY3JpcHRpb24nLCAnY3RhQnV0dG9uTGFiZWwnLCAnY3RhQnV0dG9uU2l6ZScsICdjdGFCdXR0b25UeXBlJywgJ21haW5CbG9ja0Rlc2NyaXB0aW9uJywgJ21haW5CbG9ja0ljb24nLCAnbWFpbkJsb2NrVGl0bGUnLCAnc3RlcHBlckRhdGEnLCAndGhlbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV0VGhhbmtZb3VWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3RhQnV0dG9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0VGhhbmtZb3VWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUaGFua1lvdVZpZXcge1xuICAvKipcbiAgICogVGhlIGNsaWNrIGV2ZW50IGVtaXR0ZXIgb2YgdGhlIENUQSBidXR0b24uXG4gICAqL1xuICBjdGFCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3RhQnV0dG9uSWQnLCAnY3RhQnV0dG9uTGFiZWwnLCAnY3RhQnV0dG9uU2l6ZScsICdjdGFCdXR0b25UaGVtZScsICdjdGFCdXR0b25UeXBlJywgJ2ljb24nLCAnbGFuZ3VhZ2UnLCAnbWFpbkJsb2NrRGVzY3JpcHRpb24nLCAnbWFpbkJsb2NrVGl0bGUnLCAnc3RlcHBlckRhdGEnLCAndGhlbWUnLCAndHJhbnNsYXRpb25Hcm91cCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0LXRoYW5rLXlvdS12aWV3LXYyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdGFCdXR0b25JZCcsICdjdGFCdXR0b25MYWJlbCcsICdjdGFCdXR0b25TaXplJywgJ2N0YUJ1dHRvblRoZW1lJywgJ2N0YUJ1dHRvblR5cGUnLCAnaWNvbicsICdsYW5ndWFnZScsICdtYWluQmxvY2tEZXNjcmlwdGlvbicsICdtYWluQmxvY2tUaXRsZScsICdzdGVwcGVyRGF0YScsICd0aGVtZScsICd0cmFuc2xhdGlvbkdyb3VwJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRoYW5rWW91Vmlld1YyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY3RhQnV0dG9uQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGV0VGhhbmtZb3VWaWV3VjIgZXh0ZW5kcyBDb21wb25lbnRzLlRldFRoYW5rWW91Vmlld1YyIHtcbiAgLyoqXG4gICAqIFRoZSBjbGljayBldmVudCBlbWl0dGVyIG9mIHRoZSBDVEEgYnV0dG9uLlxuICAgKi9cbiAgY3RhQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N0YUJ1dHRvbklkJywgJ2N0YUJ1dHRvbkxhYmVsJywgJ2N0YUJ1dHRvblNpemUnLCAnY3RhQnV0dG9uVGhlbWUnLCAnY3RhQnV0dG9uVHlwZScsICdpY29uJywgJ2xhbmd1YWdlJywgJ21haW5CbG9ja0Rlc2NyaXB0aW9uJywgJ21haW5CbG9ja1RpdGxlJywgJ3N0ZXBwZXJEYXRhJywgJ3RoZW1lJywgJ3RyYW5zbGF0aW9uR3JvdXAnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldC10aGFuay15b3Utdmlldy12MycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3RhQnV0dG9uSWQnLCAnY3RhQnV0dG9uTGFiZWwnLCAnY3RhQnV0dG9uU2l6ZScsICdjdGFCdXR0b25UaGVtZScsICdjdGFCdXR0b25UeXBlJywgJ2ljb24nLCAnbGFuZ3VhZ2UnLCAnbWFpbkJsb2NrRGVzY3JpcHRpb24nLCAnbWFpbkJsb2NrVGl0bGUnLCAnc3RlcHBlckRhdGEnLCAndGhlbWUnLCAndHJhbnNsYXRpb25Hcm91cCddLFxufSlcbmV4cG9ydCBjbGFzcyBUZXRUaGFua1lvdVZpZXdWMyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2N0YUJ1dHRvbkNsaWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRldFRoYW5rWW91Vmlld1YzIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUaGFua1lvdVZpZXdWMyB7XG4gIC8qKlxuICAgKiBUaGUgY2xpY2sgZXZlbnQgZW1pdHRlciBvZiB0aGUgQ1RBIGJ1dHRvbi5cbiAgICovXG4gIGN0YUJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkb05vdFNob3dPbkhvdmVyJywgJ2hvdmVyRWxlbWVudCcsICdwb3NpdGlvbicsICd0YXJnZXRFbGVtZW50U2VsZWN0b3InLCAndGhlbWUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXQtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZG9Ob3RTaG93T25Ib3ZlcicsICdob3ZlckVsZW1lbnQnLCAncG9zaXRpb24nLCAndGFyZ2V0RWxlbWVudFNlbGVjdG9yJywgJ3RoZW1lJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRldFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZXRUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5UZXRUb29sdGlwIHt9XG5cblxuIl19
|