@skyux/ag-grid 11.22.0 → 11.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/sky-ag-grid.css +5 -1
- package/documentation.json +1008 -976
- package/esm2022/lib/modules/ag-grid/ag-grid-wrapper.component.mjs +1 -2
- package/esm2022/lib/modules/ag-grid/ag-grid.service.mjs +7 -1
- package/esm2022/lib/modules/ag-grid/types/cell-class.mjs +2 -1
- package/esm2022/lib/modules/ag-grid/types/cell-type.mjs +7 -1
- package/fesm2022/skyux-ag-grid.mjs +13 -1
- package/fesm2022/skyux-ag-grid.mjs.map +1 -1
- package/lib/modules/ag-grid/types/cell-class.d.ts +1 -0
- package/lib/modules/ag-grid/types/cell-type.d.ts +6 -0
- package/package.json +13 -13
|
@@ -216,7 +216,6 @@ export class SkyAgGridWrapperComponent {
|
|
|
216
216
|
this.#adapterService.setFocusedElementById(this.#elementRef.nativeElement, idToFocus);
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
|
-
// eslint-disable-next-line complexity
|
|
220
219
|
onAnchorFocus(event) {
|
|
221
220
|
const relatedTarget = event.relatedTarget;
|
|
222
221
|
const previousWasGrid = relatedTarget && this.#elementRef.nativeElement.contains(relatedTarget);
|
|
@@ -292,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
292
291
|
type: Input,
|
|
293
292
|
args: [{ transform: booleanAttribute }]
|
|
294
293
|
}] } });
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUNMLGVBQWUsR0FHaEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFLTCxXQUFXLEVBQ1gsY0FBYyxHQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFt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QUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzs4R0E5VFUseUJBQXlCO2tHQUF6Qix5QkFBeUIsNkVBZWhCLGdCQUFnQixxSkFadEIsYUFBYSw4REMzRDdCLDZvQkE2QkE7OzJGRDJCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU07d0RBUXhDLE1BQU07c0JBSFosWUFBWTt1QkFBQyxhQUFhLEVBQUU7d0JBQzNCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQUlNLGNBQWM7c0JBRHBCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQVFuQyxPQUFPO3NCQURqQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5VGhlbWVTZXJ2aWNlLFxuICBTa3lUaGVtZVNldHRpbmdzLFxuICBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlLFxufSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50LFxuICBDZWxsRm9jdXNlZEV2ZW50LFxuICBEZXRhaWxHcmlkSW5mbyxcbiAgSGVhZGVyRm9jdXNlZEV2ZW50LFxuICBNb2R1bGVOYW1lcyxcbiAgTW9kdWxlUmVnaXN0cnksXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG9mLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBhZ0dyaWRUaGVtZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9hZy1ncmlkLXRoZW1lJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1hZy1ncmlkLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICBAQ29udGVudENoaWxkKEFnR3JpZEFuZ3VsYXIsIHtcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBhZ0dyaWQ6IEFnR3JpZEFuZ3VsYXIgfCB1bmRlZmluZWQ7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5za3ktYWctZ3JpZC1sYXlvdXQtbm9ybWFsJylcbiAgcHVibGljIGlzTm9ybWFsTGF5b3V0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhIGNvbXBhY3QgbGF5b3V0IGZvciB0aGUgZ3JpZCB3aGVuIHVzaW5nIG1vZGVybiB0aGVtZS4gQ29tcGFjdCBsYXlvdXQgdXNlc1xuICAgKiBhIHNtYWxsZXIgZm9udCBzaXplIGFuZCByb3cgaGVpZ2h0IHRvIGRpc3BsYXkgbW9yZSBkYXRhIGluIGEgc21hbGxlciBzcGFjZS5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGNvbXBhY3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNpc0NvbXBhY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgYWZ0ZXJBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgYmVmb3JlQW5jaG9ySWQ6IHN0cmluZztcbiAgcHVibGljIGdyaWRJZDogc3RyaW5nO1xuICBwdWJsaWMgd3JhcHBlckNsYXNzZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcblxuICBwdWJsaWMgZ2V0IHZpZXdrZWVwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZpZXdrZWVwZXJDbGFzc2VzO1xuICB9XG5cbiAgcHVibGljIHNldCB2aWV3a2VlcGVyQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXMgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCAjaXNJbkVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFnR3JpZCAmJiB0aGlzLmFnR3JpZC5hcGkpIHtcbiAgICAgIGNvbnN0IHByaW1hcnlHcmlkRWRpdGluZyA9IHRoaXMuYWdHcmlkLmFwaS5nZXRFZGl0aW5nQ2VsbHMoKS5sZW5ndGggPiAwO1xuICAgICAgaWYgKHByaW1hcnlHcmlkRWRpdGluZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIE1vZHVsZVJlZ2lzdHJ5Ll9faXNSZWdpc3RlcmVkKFxuICAgICAgICAgIE1vZHVsZU5hbWVzLkVudGVycHJpc2VDb3JlTW9kdWxlLFxuICAgICAgICAgICdza3ktYWctZ3JpZC13cmFwcGVyJyxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIC8vIEFHIEdyaWQgMzIrIHRocm93cyBhbiBlcnJvciBmb3IgY2FsbGluZyB0aGlzIEFQSSB3aXRob3V0IGVudGVycHJpc2UgbW9kdWxlcy5cbiAgICAgICAgbGV0IGlubmVyRWRpdGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFnR3JpZC5hcGkuZm9yRWFjaERldGFpbEdyaWRJbmZvKChkZXRhaWxHcmlkOiBEZXRhaWxHcmlkSW5mbykgPT4ge1xuICAgICAgICAgIGlmIChkZXRhaWxHcmlkPy5hcGkgJiYgZGV0YWlsR3JpZC5hcGkuZ2V0RWRpdGluZ0NlbGxzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaW5uZXJFZGl0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbm5lckVkaXRpbmc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNfdmlld2tlZXBlckNsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gIHJlYWRvbmx5ICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVhZG9ubHkgI3RoZW1lU3ZjID0gaW5qZWN0KFNreVRoZW1lU2VydmljZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcbiAgcmVhZG9ubHkgI3dyYXBwZXJDbGFzc2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW1xuICAgIGBhZy10aGVtZS1za3ktZGF0YS1ncmlkLWRlZmF1bHRgLFxuICBdKTtcbiAgcmVhZG9ubHkgI2FkYXB0ZXJTZXJ2aWNlID0gaW5qZWN0KFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcmVhZG9ubHkgI3BhcmVudENoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2tpcFNlbGY6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHJlYWRvbmx5ICNkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHJlYWRvbmx5ICNtdXRhdGlvbk9ic2VydmVyU2VydmljZSA9IGluamVjdChTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSk7XG4gIHJlYWRvbmx5ICNpc0NvbXBhY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgI2hhc0VkaXRhYmxlQ2xhc3MgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZEluZGV4Kys7XG4gICAgdGhpcy5hZnRlckFuY2hvcklkID0gJ3NreS1hZy1ncmlkLW5hdi1hbmNob3ItYWZ0ZXItJyArIGlkSW5kZXg7XG4gICAgdGhpcy5iZWZvcmVBbmNob3JJZCA9ICdza3ktYWctZ3JpZC1uYXYtYW5jaG9yLWJlZm9yZS0nICsgaWRJbmRleDtcbiAgICB0aGlzLmdyaWRJZCA9ICdza3ktYWctZ3JpZC0nICsgaWRJbmRleDtcbiAgICB0aGlzLndyYXBwZXJDbGFzc2VzJCA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQpIHtcbiAgICAgIGNvbnN0IGRvbUxheW91dCA9IHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5kb21MYXlvdXQ7XG4gICAgICBpZiAoZG9tTGF5b3V0ID09PSAnYXV0b0hlaWdodCcpIHtcbiAgICAgICAgaWYgKHRoaXMuYWdHcmlkLmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVUb3BTY3JvbGwpIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goXG4gICAgICAgICAgICAnLmFnLWhlYWRlcicsXG4gICAgICAgICAgICAnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5wdXNoKCcuYWctaGVhZGVyJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZG9tTGF5b3V0ID09PSAnbm9ybWFsJykge1xuICAgICAgICB0aGlzLmlzTm9ybWFsTGF5b3V0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy4jcGFyZW50Q2hhbmdlRGV0ZWN0b3I/LmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWdHcmlkLmdyaWRSZWFkeVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuZmlyc3REYXRhUmVuZGVyZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLnJvd0RhdGFVcGRhdGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRWRpdGluZ1N0YXJ0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChwYXJhbXM6IENlbGxFZGl0aW5nU3RhcnRlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHBhcmFtcy5jb2xEZWYudHlwZSkge1xuICAgICAgICAgICAgY29uc3QgdHlwZXMgPSBBcnJheS5pc0FycmF5KHBhcmFtcy5jb2xEZWYudHlwZSlcbiAgICAgICAgICAgICAgPyBwYXJhbXMuY29sRGVmLnR5cGVcbiAgICAgICAgICAgICAgOiBbcGFyYW1zLmNvbERlZi50eXBlXTtcbiAgICAgICAgICAgIGNvbnN0IGFkZENsYXNzZXMgPSB0eXBlcy5tYXAoXG4gICAgICAgICAgICAgICh0KSA9PiBgc2t5LWFnLWdyaWQtY2VsbC1lZGl0aW5nLSR7dH1gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoW1xuICAgICAgICAgICAgICAuLi50aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpLFxuICAgICAgICAgICAgICAuLi5hZGRDbGFzc2VzLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHR5cGVzLmluY2x1ZGVzKFNreUNlbGxUeXBlLlRlbXBsYXRlKSAmJlxuICAgICAgICAgICAgICBwYXJhbXMucm93SW5kZXggIT09IG51bGxcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLmFnR3JpZD8uYXBpLnNldEZvY3VzZWRDZWxsKHBhcmFtcy5yb3dJbmRleCwgcGFyYW1zLmNvbHVtbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RvcHBlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLm5leHQoXG4gICAgICAgICAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlc1xuICAgICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgICAuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdza3ktYWctZ3JpZC1jZWxsLWVkaXRpbmctJykpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEZvY3VzZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2VsbEZvY3VzZWRFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBldmVudC5jb250ZXh0IHx8IHt9O1xuXG4gICAgICAgICAgY29udGV4dFsnbGFzdEZvY3VzZWRDZWxsJ10gPSB7XG4gICAgICAgICAgICByb3dJbmRleDogZXZlbnQucm93SW5kZXgsXG4gICAgICAgICAgICBjb2x1bW46XG4gICAgICAgICAgICAgIHR5cGVvZiBldmVudC5jb2x1bW4gPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgPyBldmVudC5jb2x1bW4/LmdldENvbElkKClcbiAgICAgICAgICAgICAgICA6IGAke2V2ZW50LmNvbHVtbn1gLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBldmVudC5hcGk/LnNldEdyaWRPcHRpb24oJ2NvbnRleHQnLCBjb250ZXh0KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuYWdHcmlkLmhlYWRlckZvY3VzZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogSGVhZGVyRm9jdXNlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IGV2ZW50LmNvbnRleHQgfHwge307XG5cbiAgICAgICAgICBjb250ZXh0WydsYXN0Rm9jdXNlZENlbGwnXSA9IHtcbiAgICAgICAgICAgIHJvd0luZGV4OiBudWxsLFxuICAgICAgICAgICAgY29sdW1uOiBldmVudC5jb2x1bW4/LmdldFVuaXF1ZUlkXG4gICAgICAgICAgICAgID8gZXZlbnQuY29sdW1uLmdldFVuaXF1ZUlkKClcbiAgICAgICAgICAgICAgOiBgJHtldmVudC5jb2x1bW59YCxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgZXZlbnQuYXBpPy5zZXRHcmlkT3B0aW9uKCdjb250ZXh0JywgY29udGV4dCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2lzQ29tcGFjdC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdDxbYm9vbGVhbiwgYm9vbGVhbiwgU2t5VGhlbWVTZXR0aW5nc0NoYW5nZSB8IHVuZGVmaW5lZF0+KFtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuI2lzQ29tcGFjdC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy4jdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlID8/IG9mKHVuZGVmaW5lZCksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtoYXNFZGl0YWJsZUNsYXNzLCBpc0NvbXBhY3QsIHNldHRpbmdzXSkgPT4ge1xuICAgICAgICB0aGlzLiN1cGRhdGVHcmlkVGhlbWUoXG4gICAgICAgICAgaGFzRWRpdGFibGVDbGFzcyxcbiAgICAgICAgICBpc0NvbXBhY3QsXG4gICAgICAgICAgc2V0dGluZ3M/LmN1cnJlbnRTZXR0aW5ncyxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBhZ0dyaWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9XG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYWctZ3JpZC1hbmd1bGFyJyk7XG4gICAgY29uc3QgY2FsbGJhY2sgPSAoKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLm5leHQoXG4gICAgICAgICEhYWdHcmlkRWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktYWctZ3JpZC1lZGl0YWJsZScpLFxuICAgICAgKTtcbiAgICB9O1xuICAgIGlmIChhZ0dyaWRFbGVtZW50KSB7XG4gICAgICBjb25zdCBhZ0dyaWRDbGFzc09ic2VydmVyID1cbiAgICAgICAgdGhpcy4jbXV0YXRpb25PYnNlcnZlclNlcnZpY2UuY3JlYXRlKGNhbGxiYWNrKTtcbiAgICAgIGFnR3JpZENsYXNzT2JzZXJ2ZXIub2JzZXJ2ZShhZ0dyaWRFbGVtZW50LCB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcyddLFxuICAgICAgfSk7XG4gICAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY2FsbGJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV2ZW50IGNsb3NpbmcgYSBtb2RhbCB3aGVuIGZvY3VzZWQgaW4gQUcgR3JpZC5cbiAgICovXG4gIHB1YmxpYyBvbktleVVwRXNjYXBlKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hZ0dyaWQ/LmFwaS5zdG9wRWRpdGluZyh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkdyaWRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWdHcmlkICYmICF0aGlzLiNpc0luRWRpdE1vZGUgJiYgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgY29uc3QgaWRUb0ZvY3VzID0gZXZlbnQuc2hpZnRLZXlcbiAgICAgICAgPyB0aGlzLmJlZm9yZUFuY2hvcklkXG4gICAgICAgIDogdGhpcy5hZnRlckFuY2hvcklkO1xuICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2Uuc2V0Rm9jdXNlZEVsZW1lbnRCeUlkKFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGlkVG9Gb2N1cyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgcHVibGljIG9uQW5jaG9yRm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0gZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwcmV2aW91c1dhc0dyaWQgPVxuICAgICAgcmVsYXRlZFRhcmdldCAmJiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMocmVsYXRlZFRhcmdldCk7XG5cbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXByZXZpb3VzV2FzR3JpZCkge1xuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgIC5xdWVyeVNlbGVjdG9yKCcuYWctdGFiLWd1YXJkLmFnLXRhYi1ndWFyZC10b3AnKVxuICAgICAgICA/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk6IHZvaWQge1xuICAgIGNvbnN0IHRvVG9wID0gISF0aGlzLmFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbDtcbiAgICBjb25zdCByb290ID0gdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1yb290Jyk7XG4gICAgY29uc3QgaGVhZGVyID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWhlYWRlcicpO1xuICAgIGNvbnN0IGZsb2F0aW5nQm90dG9tID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWZsb2F0aW5nLWJvdHRvbScpO1xuICAgIGNvbnN0IHNjcm9sbGJhciA9IHJvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsJyk7XG4gICAgaWYgKHJvb3QgJiYgaGVhZGVyICYmIGZsb2F0aW5nQm90dG9tICYmIHNjcm9sbGJhcikge1xuICAgICAgaWYgKFxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuaGVpZ2h0ICE9PVxuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBzY3JvbGxiYXIuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAgICAgJy0tc2t5LWFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwtd2lkdGgnLFxuICAgICAgICAgIHNjcm9sbGJhci5zdHlsZS5oZWlnaHQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBpc1RvcCA9IHJvb3QuY2hpbGRyZW5bMV0ubWF0Y2hlcygnLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICAgIGlmICh0b1RvcCAmJiAhaXNUb3ApIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHNjcm9sbGJhcik7XG4gICAgICAgIGhlYWRlci5hZnRlcihmcmFnbWVudCk7XG4gICAgICB9IGVsc2UgaWYgKCF0b1RvcCAmJiBpc1RvcCkge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgZmxvYXRpbmdCb3R0b20uYWZ0ZXIoZnJhZ21lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVHcmlkVGhlbWUoXG4gICAgaGFzRWRpdGFibGVDbGFzczogYm9vbGVhbixcbiAgICBpc0NvbXBhY3Q6IGJvb2xlYW4sXG4gICAgdGhlbWVTZXR0aW5ncz86IFNreVRoZW1lU2V0dGluZ3MsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGFnVGhlbWUgPSBhZ0dyaWRUaGVtZShoYXNFZGl0YWJsZUNsYXNzLCB0aGVtZVNldHRpbmdzLCBpc0NvbXBhY3QpO1xuICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5nZXRWYWx1ZSgpO1xuICAgIGxldCB2YWx1ZSA9IFtcbiAgICAgIC4uLnByZXZpb3VzVmFsdWUuZmlsdGVyKChjKSA9PiAhYy5zdGFydHNXaXRoKCdhZy10aGVtZS0nKSksXG4gICAgICBhZ1RoZW1lLFxuICAgIF07XG4gICAgY29uc3QgdGV4dFNlbGVjdGlvbkNsYXNzID0gJ3NreS1hZy1ncmlkLXRleHQtc2VsZWN0aW9uJztcbiAgICBpZiAodGhpcy4jZ2V0VGV4dFNlbGVjdGlvbihoYXNFZGl0YWJsZUNsYXNzKSkge1xuICAgICAgdmFsdWUucHVzaCh0ZXh0U2VsZWN0aW9uQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigoYykgPT4gYyAhPT0gdGV4dFNlbGVjdGlvbkNsYXNzKTtcbiAgICB9XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChbLi4ubmV3IFNldCh2YWx1ZSldKTtcbiAgfVxuXG4gICNnZXRUZXh0U2VsZWN0aW9uKGhhc0VkaXRhYmxlQ2xhc3M6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0Py5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbikge1xuICAgICAgcmV0dXJuICFoYXNFZGl0YWJsZUNsYXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8c3BhblxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbaWRdPVwiYmVmb3JlQW5jaG9ySWRcIlxuICAoZm9jdXNpbik9XCJvbkFuY2hvckZvY3VzKCRldmVudClcIlxuPlxuPC9zcGFuPlxuPGRpdlxuICBjbGFzcz1cInNreS1hZy1ncmlkXCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW2NsYXNzLnNreS1hZy1ncmlkLXRvcC1zY3JvbGxiYXJdPVwiXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dCAmJlxuICAgIGFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHRbJ2VuYWJsZVRvcFNjcm9sbCddXG4gIFwiXG4gIFtuZ0NsYXNzXT1cIndyYXBwZXJDbGFzc2VzJCB8IGFzeW5jXCJcbiAgW2lkXT1cImdyaWRJZFwiXG4gIFtza3lWaWV3a2VlcGVyXT1cInZpZXdrZWVwZXJDbGFzc2VzXCJcbiAgKGtleWRvd24pPVwib25HcmlkS2V5ZG93bigkZXZlbnQpXCJcbiAgKGtleXVwLmVzY2FwZSk9XCJvbktleVVwRXNjYXBlKCRldmVudClcIlxuPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG48c3BhblxuICB0YWJpbmRleD1cIjBcIlxuICBjbGFzcz1cIm5hdi1hbmNob3JcIlxuICBbaWRdPVwiYWZ0ZXJBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG4iXX0=
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL2FnLWdyaWQtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekQsT0FBTyxFQUNMLGVBQWUsR0FHaEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFLTCxXQUFXLEVBQ1gsY0FBYyxHQUNmLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGVBQWUsRUFFZixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsRUFBRSxFQUNGLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFt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WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDOzhHQTdUVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qiw2RUFlaEIsZ0JBQWdCLHFKQVp0QixhQUFhLDhEQzNEN0IsNm9CQTZCQTs7MkZEMkJhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTTt3REFReEMsTUFBTTtzQkFIWixZQUFZO3VCQUFDLGFBQWEsRUFBRTt3QkFDM0IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBSU0sY0FBYztzQkFEcEIsV0FBVzt1QkFBQyxpQ0FBaUM7Z0JBUW5DLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQge1xuICBTa3lUaGVtZVNlcnZpY2UsXG4gIFNreVRoZW1lU2V0dGluZ3MsXG4gIFNreVRoZW1lU2V0dGluZ3NDaGFuZ2UsXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQsXG4gIENlbGxGb2N1c2VkRXZlbnQsXG4gIERldGFpbEdyaWRJbmZvLFxuICBIZWFkZXJGb2N1c2VkRXZlbnQsXG4gIE1vZHVsZU5hbWVzLFxuICBNb2R1bGVSZWdpc3RyeSxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgb2YsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGFnR3JpZFRoZW1lIH0gZnJvbSAnLi4vLi4vc3R5bGVzL2FnLWdyaWQtdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5Q2VsbFR5cGUgfSBmcm9tICcuL3R5cGVzL2NlbGwtdHlwZSc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWFnLWdyaWQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZy1ncmlkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0XG57XG4gIEBDb250ZW50Q2hpbGQoQWdHcmlkQW5ndWxhciwge1xuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGFnR3JpZDogQWdHcmlkQW5ndWxhciB8IHVuZGVmaW5lZDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNreS1hZy1ncmlkLWxheW91dC1ub3JtYWwnKVxuICBwdWJsaWMgaXNOb3JtYWxMYXlvdXQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRW5hYmxlIGEgY29tcGFjdCBsYXlvdXQgZm9yIHRoZSBncmlkIHdoZW4gdXNpbmcgbW9kZXJuIHRoZW1lLiBDb21wYWN0IGxheW91dCB1c2VzXG4gICAqIGEgc21hbGxlciBmb250IHNpemUgYW5kIHJvdyBoZWlnaHQgdG8gZGlzcGxheSBtb3JlIGRhdGEgaW4gYSBzbWFsbGVyIHNwYWNlLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgY29tcGFjdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI2lzQ29tcGFjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhZnRlckFuY2hvcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBiZWZvcmVBbmNob3JJZDogc3RyaW5nO1xuICBwdWJsaWMgZ3JpZElkOiBzdHJpbmc7XG4gIHB1YmxpYyB3cmFwcGVyQ2xhc3NlcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIHB1YmxpYyBnZXQgdmlld2tlZXBlckNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLiNfdmlld2tlZXBlckNsYXNzZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZpZXdrZWVwZXJDbGFzc2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuI192aWV3a2VlcGVyQ2xhc3NlcyA9IHZhbHVlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0ICNpc0luRWRpdE1vZGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWdHcmlkICYmIHRoaXMuYWdHcmlkLmFwaSkge1xuICAgICAgY29uc3QgcHJpbWFyeUdyaWRFZGl0aW5nID0gdGhpcy5hZ0dyaWQuYXBpLmdldEVkaXRpbmdDZWxscygpLmxlbmd0aCA+IDA7XG4gICAgICBpZiAocHJpbWFyeUdyaWRFZGl0aW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgTW9kdWxlUmVnaXN0cnkuX19pc1JlZ2lzdGVyZWQoXG4gICAgICAgICAgTW9kdWxlTmFtZXMuRW50ZXJwcmlzZUNvcmVNb2R1bGUsXG4gICAgICAgICAgJ3NreS1hZy1ncmlkLXdyYXBwZXInLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgLy8gQUcgR3JpZCAzMisgdGhyb3dzIGFuIGVycm9yIGZvciBjYWxsaW5nIHRoaXMgQVBJIHdpdGhvdXQgZW50ZXJwcmlzZSBtb2R1bGVzLlxuICAgICAgICBsZXQgaW5uZXJFZGl0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWdHcmlkLmFwaS5mb3JFYWNoRGV0YWlsR3JpZEluZm8oKGRldGFpbEdyaWQ6IERldGFpbEdyaWRJbmZvKSA9PiB7XG4gICAgICAgICAgaWYgKGRldGFpbEdyaWQ/LmFwaSAmJiBkZXRhaWxHcmlkLmFwaS5nZXRFZGl0aW5nQ2VsbHMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpbm5lckVkaXRpbmcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGlubmVyRWRpdGluZztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI192aWV3a2VlcGVyQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgcmVhZG9ubHkgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZWFkb25seSAjdGhlbWVTdmMgPSBpbmplY3QoU2t5VGhlbWVTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuICByZWFkb25seSAjd3JhcHBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXG4gICAgYGFnLXRoZW1lLXNreS1kYXRhLWdyaWQtZGVmYXVsdGAsXG4gIF0pO1xuICByZWFkb25seSAjYWRhcHRlclNlcnZpY2UgPSBpbmplY3QoU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UpO1xuICByZWFkb25seSAjY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICByZWFkb25seSAjcGFyZW50Q2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBza2lwU2VsZjogdHJ1ZSxcbiAgfSk7XG4gIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcbiAgcmVhZG9ubHkgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcmVhZG9ubHkgI211dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlID0gaW5qZWN0KFNreU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2lzQ29tcGFjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSAjaGFzRWRpdGFibGVDbGFzcyA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlkSW5kZXgrKztcbiAgICB0aGlzLmFmdGVyQW5jaG9ySWQgPSAnc2t5LWFnLWdyaWQtbmF2LWFuY2hvci1hZnRlci0nICsgaWRJbmRleDtcbiAgICB0aGlzLmJlZm9yZUFuY2hvcklkID0gJ3NreS1hZy1ncmlkLW5hdi1hbmNob3ItYmVmb3JlLScgKyBpZEluZGV4O1xuICAgIHRoaXMuZ3JpZElkID0gJ3NreS1hZy1ncmlkLScgKyBpZEluZGV4O1xuICAgIHRoaXMud3JhcHBlckNsYXNzZXMkID0gdGhpcy4jd3JhcHBlckNsYXNzZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFnR3JpZCkge1xuICAgICAgY29uc3QgZG9tTGF5b3V0ID0gdGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmRvbUxheW91dDtcbiAgICAgIGlmIChkb21MYXlvdXQgPT09ICdhdXRvSGVpZ2h0Jykge1xuICAgICAgICBpZiAodGhpcy5hZ0dyaWQuZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZVRvcFNjcm9sbCkge1xuICAgICAgICAgIHRoaXMudmlld2tlZXBlckNsYXNzZXMucHVzaChcbiAgICAgICAgICAgICcuYWctaGVhZGVyJyxcbiAgICAgICAgICAgICcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnB1c2goJy5hZy1oZWFkZXInKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChkb21MYXlvdXQgPT09ICdub3JtYWwnKSB7XG4gICAgICAgIHRoaXMuaXNOb3JtYWxMYXlvdXQgPSB0cnVlO1xuICAgICAgICB0aGlzLiNwYXJlbnRDaGFuZ2VEZXRlY3Rvcj8uZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgICAgdGhpcy5hZ0dyaWQuZ3JpZFJlYWR5XG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jbW92ZUhvcml6b250YWxTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5maXJzdERhdGFSZW5kZXJlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI21vdmVIb3Jpem9udGFsU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQucm93RGF0YVVwZGF0ZWRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNtb3ZlSG9yaXpvbnRhbFNjcm9sbCgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWdHcmlkLmNlbGxFZGl0aW5nU3RhcnRlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHBhcmFtczogQ2VsbEVkaXRpbmdTdGFydGVkRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAocGFyYW1zLmNvbERlZi50eXBlKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlcyA9IEFycmF5LmlzQXJyYXkocGFyYW1zLmNvbERlZi50eXBlKVxuICAgICAgICAgICAgICA/IHBhcmFtcy5jb2xEZWYudHlwZVxuICAgICAgICAgICAgICA6IFtwYXJhbXMuY29sRGVmLnR5cGVdO1xuICAgICAgICAgICAgY29uc3QgYWRkQ2xhc3NlcyA9IHR5cGVzLm1hcChcbiAgICAgICAgICAgICAgKHQpID0+IGBza3ktYWctZ3JpZC1jZWxsLWVkaXRpbmctJHt0fWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChbXG4gICAgICAgICAgICAgIC4uLnRoaXMuI3dyYXBwZXJDbGFzc2VzLmdldFZhbHVlKCksXG4gICAgICAgICAgICAgIC4uLmFkZENsYXNzZXMsXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdHlwZXMuaW5jbHVkZXMoU2t5Q2VsbFR5cGUuVGVtcGxhdGUpICYmXG4gICAgICAgICAgICAgIHBhcmFtcy5yb3dJbmRleCAhPT0gbnVsbFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRoaXMuYWdHcmlkPy5hcGkuc2V0Rm9jdXNlZENlbGwocGFyYW1zLnJvd0luZGV4LCBwYXJhbXMuY29sdW1uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZ0dyaWQuY2VsbEVkaXRpbmdTdG9wcGVkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4jd3JhcHBlckNsYXNzZXMubmV4dChcbiAgICAgICAgICAgIHRoaXMuI3dyYXBwZXJDbGFzc2VzXG4gICAgICAgICAgICAgIC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ3NreS1hZy1ncmlkLWNlbGwtZWRpdGluZy0nKSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLmFnR3JpZC5jZWxsRm9jdXNlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDZWxsRm9jdXNlZEV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IGV2ZW50LmNvbnRleHQgfHwge307XG5cbiAgICAgICAgICBjb250ZXh0WydsYXN0Rm9jdXNlZENlbGwnXSA9IHtcbiAgICAgICAgICAgIHJvd0luZGV4OiBldmVudC5yb3dJbmRleCxcbiAgICAgICAgICAgIGNvbHVtbjpcbiAgICAgICAgICAgICAgdHlwZW9mIGV2ZW50LmNvbHVtbiA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICA/IGV2ZW50LmNvbHVtbj8uZ2V0Q29sSWQoKVxuICAgICAgICAgICAgICAgIDogYCR7ZXZlbnQuY29sdW1ufWAsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGV2ZW50LmFwaT8uc2V0R3JpZE9wdGlvbignY29udGV4dCcsIGNvbnRleHQpO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5hZ0dyaWQuaGVhZGVyRm9jdXNlZFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBIZWFkZXJGb2N1c2VkRXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gZXZlbnQuY29udGV4dCB8fCB7fTtcblxuICAgICAgICAgIGNvbnRleHRbJ2xhc3RGb2N1c2VkQ2VsbCddID0ge1xuICAgICAgICAgICAgcm93SW5kZXg6IG51bGwsXG4gICAgICAgICAgICBjb2x1bW46IGV2ZW50LmNvbHVtbj8uZ2V0VW5pcXVlSWRcbiAgICAgICAgICAgICAgPyBldmVudC5jb2x1bW4uZ2V0VW5pcXVlSWQoKVxuICAgICAgICAgICAgICA6IGAke2V2ZW50LmNvbHVtbn1gLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBldmVudC5hcGk/LnNldEdyaWRPcHRpb24oJ2NvbnRleHQnLCBjb250ZXh0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNoYXNFZGl0YWJsZUNsYXNzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jaXNDb21wYWN0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jd3JhcHBlckNsYXNzZXMuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb21iaW5lTGF0ZXN0PFtib29sZWFuLCBib29sZWFuLCBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlIHwgdW5kZWZpbmVkXT4oW1xuICAgICAgdGhpcy4jaGFzRWRpdGFibGVDbGFzcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy4jaXNDb21wYWN0LnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLiN0aGVtZVN2Yz8uc2V0dGluZ3NDaGFuZ2UgPz8gb2YodW5kZWZpbmVkKSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoW2hhc0VkaXRhYmxlQ2xhc3MsIGlzQ29tcGFjdCwgc2V0dGluZ3NdKSA9PiB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZUdyaWRUaGVtZShcbiAgICAgICAgICBoYXNFZGl0YWJsZUNsYXNzLFxuICAgICAgICAgIGlzQ29tcGFjdCxcbiAgICAgICAgICBzZXR0aW5ncz8uY3VycmVudFNldHRpbmdzLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID1cbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhZy1ncmlkLWFuZ3VsYXInKTtcbiAgICBjb25zdCBjYWxsYmFjayA9ICgpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuI2hhc0VkaXRhYmxlQ2xhc3MubmV4dChcbiAgICAgICAgISFhZ0dyaWRFbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnMoJ3NreS1hZy1ncmlkLWVkaXRhYmxlJyksXG4gICAgICApO1xuICAgIH07XG4gICAgaWYgKGFnR3JpZEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGFnR3JpZENsYXNzT2JzZXJ2ZXIgPVxuICAgICAgICB0aGlzLiNtdXRhdGlvbk9ic2VydmVyU2VydmljZS5jcmVhdGUoY2FsbGJhY2spO1xuICAgICAgYWdHcmlkQ2xhc3NPYnNlcnZlci5vYnNlcnZlKGFnR3JpZEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJ10sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuI25nVW5zdWJzY3JpYmUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBhZ0dyaWRDbGFzc09ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgY2xvc2luZyBhIG1vZGFsIHdoZW4gZm9jdXNlZCBpbiBBRyBHcmlkLlxuICAgKi9cbiAgcHVibGljIG9uS2V5VXBFc2NhcGUoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFnR3JpZD8uYXBpLnN0b3BFZGl0aW5nKHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uR3JpZEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ0dyaWQgJiYgIXRoaXMuI2lzSW5FZGl0TW9kZSAmJiBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICBjb25zdCBpZFRvRm9jdXMgPSBldmVudC5zaGlmdEtleVxuICAgICAgICA/IHRoaXMuYmVmb3JlQW5jaG9ySWRcbiAgICAgICAgOiB0aGlzLmFmdGVyQW5jaG9ySWQ7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5zZXRGb2N1c2VkRWxlbWVudEJ5SWQoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgaWRUb0ZvY3VzLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BbmNob3JGb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByZXZpb3VzV2FzR3JpZCA9XG4gICAgICByZWxhdGVkVGFyZ2V0ICYmIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhyZWxhdGVkVGFyZ2V0KTtcblxuICAgIGlmICh0aGlzLmFnR3JpZCAmJiAhcHJldmlvdXNXYXNHcmlkKSB7XG4gICAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJy5hZy10YWItZ3VhcmQuYWctdGFiLWd1YXJkLXRvcCcpXG4gICAgICAgID8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAjbW92ZUhvcml6b250YWxTY3JvbGwoKTogdm9pZCB7XG4gICAgY29uc3QgdG9Ub3AgPSAhIXRoaXMuYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dD8uZW5hYmxlVG9wU2Nyb2xsO1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmFnLXJvb3QnKTtcbiAgICBjb25zdCBoZWFkZXIgPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctaGVhZGVyJyk7XG4gICAgY29uc3QgZmxvYXRpbmdCb3R0b20gPSByb290Py5xdWVyeVNlbGVjdG9yKCcuYWctZmxvYXRpbmctYm90dG9tJyk7XG4gICAgY29uc3Qgc2Nyb2xsYmFyID0gcm9vdD8ucXVlcnlTZWxlY3RvcignLmFnLWJvZHktaG9yaXpvbnRhbC1zY3JvbGwnKTtcbiAgICBpZiAocm9vdCAmJiBoZWFkZXIgJiYgZmxvYXRpbmdCb3R0b20gJiYgc2Nyb2xsYmFyKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5oZWlnaHQgIT09XG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFxuICAgICAgICAgICctLXNreS1hZy1ib2R5LWhvcml6b250YWwtc2Nyb2xsLXdpZHRoJyxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHNjcm9sbGJhci5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICAnLS1za3ktYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbC13aWR0aCcsXG4gICAgICAgICAgc2Nyb2xsYmFyLnN0eWxlLmhlaWdodCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlzVG9wID0gcm9vdC5jaGlsZHJlblsxXS5tYXRjaGVzKCcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcpO1xuICAgICAgaWYgKHRvVG9wICYmICFpc1RvcCkge1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IHRoaXMuI2RvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc2Nyb2xsYmFyKTtcbiAgICAgICAgaGVhZGVyLmFmdGVyKGZyYWdtZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoIXRvVG9wICYmIGlzVG9wKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gdGhpcy4jZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChzY3JvbGxiYXIpO1xuICAgICAgICBmbG9hdGluZ0JvdHRvbS5hZnRlcihmcmFnbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUdyaWRUaGVtZShcbiAgICBoYXNFZGl0YWJsZUNsYXNzOiBib29sZWFuLFxuICAgIGlzQ29tcGFjdDogYm9vbGVhbixcbiAgICB0aGVtZVNldHRpbmdzPzogU2t5VGhlbWVTZXR0aW5ncyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYWdUaGVtZSA9IGFnR3JpZFRoZW1lKGhhc0VkaXRhYmxlQ2xhc3MsIHRoZW1lU2V0dGluZ3MsIGlzQ29tcGFjdCk7XG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXMuI3dyYXBwZXJDbGFzc2VzLmdldFZhbHVlKCk7XG4gICAgbGV0IHZhbHVlID0gW1xuICAgICAgLi4ucHJldmlvdXNWYWx1ZS5maWx0ZXIoKGMpID0+ICFjLnN0YXJ0c1dpdGgoJ2FnLXRoZW1lLScpKSxcbiAgICAgIGFnVGhlbWUsXG4gICAgXTtcbiAgICBjb25zdCB0ZXh0U2VsZWN0aW9uQ2xhc3MgPSAnc2t5LWFnLWdyaWQtdGV4dC1zZWxlY3Rpb24nO1xuICAgIGlmICh0aGlzLiNnZXRUZXh0U2VsZWN0aW9uKGhhc0VkaXRhYmxlQ2xhc3MpKSB7XG4gICAgICB2YWx1ZS5wdXNoKHRleHRTZWxlY3Rpb25DbGFzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKChjKSA9PiBjICE9PSB0ZXh0U2VsZWN0aW9uQ2xhc3MpO1xuICAgIH1cbiAgICB0aGlzLiN3cmFwcGVyQ2xhc3Nlcy5uZXh0KFsuLi5uZXcgU2V0KHZhbHVlKV0pO1xuICB9XG5cbiAgI2dldFRleHRTZWxlY3Rpb24oaGFzRWRpdGFibGVDbGFzczogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFnR3JpZD8uZ3JpZE9wdGlvbnM/LmNvbnRleHQ/LmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gIWhhc0VkaXRhYmxlQ2xhc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzcGFuXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFtpZF09XCJiZWZvcmVBbmNob3JJZFwiXG4gIChmb2N1c2luKT1cIm9uQW5jaG9yRm9jdXMoJGV2ZW50KVwiXG4+XG48L3NwYW4+XG48ZGl2XG4gIGNsYXNzPVwic2t5LWFnLWdyaWRcIlxuICB0YWJpbmRleD1cIjBcIlxuICBbY2xhc3Muc2t5LWFnLWdyaWQtdG9wLXNjcm9sbGJhcl09XCJcbiAgICBhZ0dyaWQ/LmdyaWRPcHRpb25zPy5jb250ZXh0ICYmXG4gICAgYWdHcmlkPy5ncmlkT3B0aW9ucz8uY29udGV4dFsnZW5hYmxlVG9wU2Nyb2xsJ11cbiAgXCJcbiAgW25nQ2xhc3NdPVwid3JhcHBlckNsYXNzZXMkIHwgYXN5bmNcIlxuICBbaWRdPVwiZ3JpZElkXCJcbiAgW3NreVZpZXdrZWVwZXJdPVwidmlld2tlZXBlckNsYXNzZXNcIlxuICAoa2V5ZG93bik9XCJvbkdyaWRLZXlkb3duKCRldmVudClcIlxuICAoa2V5dXAuZXNjYXBlKT1cIm9uS2V5VXBFc2NhcGUoJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbjxzcGFuXG4gIHRhYmluZGV4PVwiMFwiXG4gIGNsYXNzPVwibmF2LWFuY2hvclwiXG4gIFtpZF09XCJhZnRlckFuY2hvcklkXCJcbiAgKGZvY3VzaW4pPVwib25BbmNob3JGb2N1cygkZXZlbnQpXCJcbj5cbjwvc3Bhbj5cbiJdfQ==
|
|
@@ -339,6 +339,12 @@ export class SkyAgGridService {
|
|
|
339
339
|
cellEditor: SkyAgGridCellEditorNumberComponent,
|
|
340
340
|
headerClass: getHeaderClass(SkyHeaderClass.RightAligned),
|
|
341
341
|
},
|
|
342
|
+
[SkyCellType.RightAligned]: {
|
|
343
|
+
cellClassRules: {
|
|
344
|
+
[SkyCellClass.RightAligned]: cellClassRuleTrueExpression,
|
|
345
|
+
},
|
|
346
|
+
headerClass: getHeaderClass(SkyHeaderClass.RightAligned),
|
|
347
|
+
},
|
|
342
348
|
[SkyCellType.RowSelector]: {
|
|
343
349
|
cellClassRules: {
|
|
344
350
|
[SkyCellClass.RowSelector]: cellClassRuleTrueExpression,
|
|
@@ -558,4 +564,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
558
564
|
}] }, { type: i3.SkyLibResourcesService, decorators: [{
|
|
559
565
|
type: Optional
|
|
560
566
|
}] }] });
|
|
561
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWlCakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDdEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDMUgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDaEksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDOUcsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDckosT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDbEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDN0ksT0FBTyxFQUFFLHNDQUFzQyxF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QUFDO1lBQ3RDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBbUM7UUFDaEQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0E5akJVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBYUksUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreURhdGVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2RhdGV0aW1lJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UsIFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIENvbERlZixcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIEhlYWRlckNsYXNzUGFyYW1zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBSb3dDbGFzc1BhcmFtcyxcbiAgUm93U2VsZWN0aW9uT3B0aW9ucyxcbiAgU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IGFwcGx5U2t5TG9va3VwUHJvcGVydGllc0RlZmF1bHRzIH0gZnJvbSAnLi9hcHBseS1sb29rdXAtcHJvcGVydGllcy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItY3VycmVuY3kvY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbG9va3VwL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLW51bWJlci9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWxvb2t1cC9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItcm93LXNlbGVjdG9yL2NlbGwtcmVuZGVyZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9oZWFkZXIvaGVhZGVyLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25NYXBUeXBlLCBpY29uTWFwIH0gZnJvbSAnLi9pY29ucy9pY29uLW1hcCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNlbGxDbGFzcyB9IGZyb20gJy4vdHlwZXMvY2VsbC1jbGFzcyc7XG5pbXBvcnQgeyBTa3lDZWxsVHlwZSB9IGZyb20gJy4vdHlwZXMvY2VsbC10eXBlJztcbmltcG9ydCB7IFNreUhlYWRlckNsYXNzIH0gZnJvbSAnLi90eXBlcy9oZWFkZXItY2xhc3MnO1xuaW1wb3J0IHsgTGFzdEZvY3VzZWRDZWxsIH0gZnJvbSAnLi90eXBlcy9sYXN0LWZvY3VzZWQuY2VsbCc7XG5pbXBvcnQgeyBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MgfSBmcm9tICcuL3R5cGVzL3NreS1ncmlkLW9wdGlvbnMnO1xuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVDb21wYXJhdG9yKFxuICB2YWx1ZTE6IHsgbmFtZTogc3RyaW5nIH0sXG4gIHZhbHVlMjogeyBuYW1lOiBzdHJpbmcgfSxcbik6IG51bWJlciB7XG4gIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XG4gICAgaWYgKHZhbHVlMS5uYW1lID4gdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZTEubmFtZSA8IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gdmFsdWUxID8gMSA6IC0xO1xufVxuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXJhbXMudmFsdWUgJiYgcGFyYW1zLnZhbHVlLm5hbWU7XG59XG5cbmZ1bmN0aW9uIGRhdGVDb21wYXJhdG9yKGRhdGUxOiBEYXRlIHwgc3RyaW5nLCBkYXRlMjogRGF0ZSB8IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBkYXRlMXZhbHVlID0gZGF0ZTE7XG4gIGxldCBkYXRlMnZhbHVlID0gZGF0ZTI7XG5cbiAgaWYgKHR5cGVvZiBkYXRlMXZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGRhdGUxdmFsdWUgPSBuZXcgRGF0ZShkYXRlMSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGUydmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTJ2YWx1ZSA9IG5ldyBEYXRlKGRhdGUyKTtcbiAgfVxuXG4gIGlmIChkYXRlMXZhbHVlICYmIGRhdGUydmFsdWUpIHtcbiAgICBpZiAoZGF0ZTF2YWx1ZSA+IGRhdGUydmFsdWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmIChkYXRlMXZhbHVlIDwgZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGUxdmFsdWUgPyAxIDogLTE7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5mdW5jdGlvbiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3Rvcihjb21wb25lbnQ6IHN0cmluZywgZmFsbGJhY2s/OiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBhbnkgPT4ge1xuICAgIGlmIChcbiAgICAgIHBhcmFtcy5jb2xEZWYgJiZcbiAgICAgIHR5cGVvZiBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICAhcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgIHBhcmFtcy5kYXRhLFxuICAgICAgICAgIHBhcmFtcz8ubm9kZT8ucm93SW5kZXgsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLnBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxsYmFjaztcbiAgfTtcbn1cblxubGV0IHJvd05vZGVJZCA9IC0xO1xuXG4vKipcbiAqIGBTa3lBZ0dyaWRTZXJ2aWNlYCBwcm92aWRlcyBtZXRob2RzIHRvIGdldCBBRyBHcmlkIGBncmlkT3B0aW9uc2AgdG8gZW5zdXJlIGdyaWRzIG1hdGNoIFNLWSBVWCBmdW5jdGlvbmFsaXR5LiBUaGUgYGdyaWRPcHRpb25zYCBjYW4gYmUgb3ZlcnJpZGRlbiwgYW5kIGluY2x1ZGUgcmVnaXN0ZXJlZCBTS1kgVVggY29sdW1uIHR5cGVzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICNrZXlNYXAgPSBuZXcgV2Vha01hcDxhbnksIHN0cmluZz4oKTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAjYWdHcmlkQWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAjcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjZGF0ZVNlcnZpY2UgPSBpbmplY3QoU2t5RGF0ZVNlcnZpY2UpO1xuICAjbG9nU2VydmljZSA9IGluamVjdChTa3lMb2dTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcmVzb3VyY2VzPzogU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UgPSBhZ0dyaWRBZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNyZXNvdXJjZXMgPSByZXNvdXJjZXM7XG5cbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhlbWVTdmMpIHtcbiAgICAgIHRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoc2V0dGluZ3NDaGFuZ2UpID0+IHtcbiAgICAgICAgICB0aGlzLiNjdXJyZW50VGhlbWUgPSBzZXR0aW5nc0NoYW5nZS5jdXJyZW50U2V0dGluZ3M7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBbQUcgR3JpZCBgZ3JpZE9wdGlvbnNgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcHJvcGVydGllcy8pIHdpdGggZGVmYXVsdCBTS1kgVVggb3B0aW9ucywgc3R5bGluZywgYW5kIGNlbGwgcmVuZGVyZXJzIHJlZ2lzdGVyZWQgZm9yIHJlYWQtb25seSBncmlkcy5cbiAgICogQHBhcmFtIGFyZ3NcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnMsXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCBlZGl0b3JzIHJlZ2lzdGVyZWQgZm9yIGVkaXRhYmxlIGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnMsXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGUgYGdldEhlYWRlckhlaWdodGAgbWV0aG9kIGlzIG5vIGxvbmdlciBuZWVkZWQuIEhlYWRlciBoZWlnaHQgaXMgbWFuYWdlZCBpbiBDU1MuXG4gICAqL1xuICBwdWJsaWMgZ2V0SGVhZGVySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gNjAgOiAzNztcbiAgfVxuXG4gICNtZXJnZUdyaWRPcHRpb25zKFxuICAgIGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgJiB7XG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpID0+IHN0cmluZ1tdO1xuICAgIH0sXG4gICAgcHJvdmlkZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMsXG4gICk6IEdyaWRPcHRpb25zIHtcbiAgICBpZiAoJ2VuYWJsZVJhbmdlU2VsZWN0aW9uJyBpbiBwcm92aWRlZEdyaWRPcHRpb25zKSB7XG4gICAgICBpZiAocHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVSYW5nZVNlbGVjdGlvbikge1xuICAgICAgICBwcm92aWRlZEdyaWRPcHRpb25zLmNlbGxTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgfVxuICAgICAgZGVsZXRlIHByb3ZpZGVkR3JpZE9wdGlvbnMuZW5hYmxlUmFuZ2VTZWxlY3Rpb247XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID09PSAnc2luZ2xlJyB8fFxuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPT09ICdtdWx0aXBsZSdcbiAgICApIHtcbiAgICAgIGNvbnN0IHJvd1NlbGVjdGlvbk9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIFJvd1NlbGVjdGlvbk9wdGlvbnM+ID0ge1xuICAgICAgICBzaW5nbGU6IHsgbW9kZTogJ3NpbmdsZVJvdycgfSxcbiAgICAgICAgbXVsdGlwbGU6IHsgbW9kZTogJ211bHRpUm93JyB9LFxuICAgICAgfTtcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID1cbiAgICAgICAgcm93U2VsZWN0aW9uT3B0aW9uc1twcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbl07XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gJiZcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uPy5tb2RlXG4gICAgKSB7XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHtcbiAgICAgICAgLi4uKGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gYXMgUm93U2VsZWN0aW9uT3B0aW9ucyksXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uLFxuICAgICAgfSBhcyBSb3dTZWxlY3Rpb25PcHRpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyA9IHtcbiAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29tcG9uZW50cyxcbiAgICAgICAgLy8gQXBwbHkgZGVmYXVsdCBjb21wb25lbnRzIGxhc3QgdG8gcHJldmVudCBjb25zdW1lcnMgZnJvbSBvdmVyd3JpdGluZyBvdXIgY29tcG9uZW50IHR5cGVzLlxuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29tcG9uZW50cyxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb250ZXh0LFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbnRleHQsXG4gICAgICB9LFxuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgICAgLy8gYXBwbHkgZGVmYXVsdCBzZWNvbmQgdG8gcHJldmVudCBjb25zdW1lcnMgZnJvbSBvdmVyd3JpdGluZyBvdXIgZGVmYXVsdCBjb2x1bW4gdHlwZXNcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xEZWY6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLy8gYWxsb3cgY29uc3VtZXJzIHRvIG92ZXJyaWRlIGFsbCBkZWZhdWx0Q29sRGVmIHByb3BlcnRpZXMgZXhjZXB0IGNlbGxDbGFzc1J1bGVzLCB3aGljaCB3ZSByZXNlcnZlIGZvciBzdHlsaW5nXG4gICAgICAgIGNlbGxDbGFzc1J1bGVzOiBkZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZj8uY2VsbENsYXNzUnVsZXMsXG4gICAgICAgIGhlYWRlckNsYXNzOiBkZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZj8uaGVhZGVyQ2xhc3MsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbEdyb3VwRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWYsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmLFxuICAgICAgICBoZWFkZXJDbGFzczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZj8uaGVhZGVyQ2xhc3MsXG4gICAgICB9LFxuICAgICAgZ2V0Um93Q2xhc3M6IChwYXJhbXMpOiBzdHJpbmdbXSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDbGFzc2VzID0gZGVmYXVsdEdyaWRPcHRpb25zLmdldFJvd0NsYXNzKFxuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgY29uc3QgcHJvdmlkZWRDbGFzc2VzID0gcHJvdmlkZWRHcmlkT3B0aW9ucy5nZXRSb3dDbGFzcz8uKHBhcmFtcykgPz8gW107XG4gICAgICAgIGNvbnN0IHByb3ZpZGVkQ2xhc3Nlc0FycmF5ID0gQXJyYXkuaXNBcnJheShwcm92aWRlZENsYXNzZXMpXG4gICAgICAgICAgPyBwcm92aWRlZENsYXNzZXNcbiAgICAgICAgICA6IFtwcm92aWRlZENsYXNzZXNdO1xuICAgICAgICByZXR1cm4gWy4uLmRlZmF1bHRDbGFzc2VzLCAuLi5wcm92aWRlZENsYXNzZXNBcnJheV07XG4gICAgICB9LFxuICAgICAgaWNvbnM6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmljb25zLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmljb25zLFxuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6IChldmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBkZWZhdWx0R3JpZE9wdGlvbnMub25DZWxsRm9jdXNlZD8uKGV2ZW50KTtcbiAgICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5vbkNlbGxGb2N1c2VkPy4oZXZlbnQpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gRW5hYmxlIHRleHQgc2VsZWN0aW9uIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkIG9yIGNvbmZsaWN0aW5nIHdpdGggYW5vdGhlciBzZXR0aW5nLlxuICAgIGlmIChcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uIHx8XG4gICAgICAoISgnZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24nIGluIG1lcmdlZEdyaWRPcHRpb25zKSAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY2VsbFNlbGVjdGlvbiAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY29sdW1uRGVmcz8uc29tZSgoY29sOiBDb2xEZWYpID0+IGNvbC5lZGl0YWJsZSkpXG4gICAgKSB7XG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5jb250ZXh0IHx8PSB7fTtcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uID8/PSB0cnVlO1xuICAgICAgbWVyZ2VkR3JpZE9wdGlvbnMuY29udGV4dC5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiA9XG4gICAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMgJiB7XG4gICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgLy8gY2VsbENsYXNzUnVsZXMgY2FuIGJlIGZ1bmN0aW9ucyBvciBzdHJpbmcgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24gPSAoKTogYm9vbGVhbiA9PiB0cnVlO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihcbiAgICAgIGlzVW5lZGl0YWJsZT86IGJvb2xlYW4sXG4gICAgKTogKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzRWRpdGFibGUgPSBwYXJhbXMuY29sRGVmLmVkaXRhYmxlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXNFZGl0YWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHBhcmFtcy5hcGkuZ2V0Q29sdW1uKHBhcmFtcy5jb2xEZWYpO1xuICAgICAgICAgIGlzRWRpdGFibGUgPSBpc0VkaXRhYmxlKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICB9IGFzIEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzVW5lZGl0YWJsZSA/ICFpc0VkaXRhYmxlIDogISFpc0VkaXRhYmxlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5FZGl0YWJsZV06IGdldEVkaXRhYmxlRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGdldEVkaXRhYmxlRm4odHJ1ZSksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldFZhbGlkYXRvckZuKCk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtOiBDZWxsQ2xhc3NQYXJhbXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhcmFtLmNvbERlZiAmJlxuICAgICAgICAgIHR5cGVvZiBwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gIXBhcmFtLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgICBwYXJhbS52YWx1ZSxcbiAgICAgICAgICAgIHBhcmFtLmRhdGEsXG4gICAgICAgICAgICBwYXJhbS5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRIZWFkZXJDbGFzcyhcbiAgICAgIC4uLmNsYXNzTmFtZXM6IHN0cmluZ1tdXG4gICAgKTogKHBhcmFtczogSGVhZGVyQ2xhc3NQYXJhbXMpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiAocGFyYW1zOiBIZWFkZXJDbGFzc1BhcmFtcyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgY29uc3QgbWluV2lkdGggPSBwYXJhbXMuY29sdW1uPy5nZXRNaW5XaWR0aCgpID8/IDA7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gcGFyYW1zLmNvbHVtbj8uZ2V0TWF4V2lkdGgoKSA/PyBJbmZpbml0eTtcbiAgICAgICAgaWYgKHBhcmFtcy5jb2x1bW4/LmlzUmVzaXphYmxlKCkgJiYgbWluV2lkdGggPCBtYXhXaWR0aCkge1xuICAgICAgICAgIHJldHVybiBbLi4uY2xhc3NOYW1lcywgU2t5SGVhZGVyQ2xhc3MuUmVzaXphYmxlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lcztcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdFNreUdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyAmIHtcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gICAgfSA9IHtcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIFtTa3lDZWxsVHlwZS5BdXRvY29tcGxldGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQXV0b2NvbXBsZXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IGF1dG9jb21wbGV0ZUZvcm1hdHRlcixcbiAgICAgICAgICBjb21wYXJhdG9yOiBhdXRvY29tcGxldGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5DdXJyZW5jeV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5DdXJyZW5jeV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gICAgICAgICAgICB7IGNvbXBvbmVudDogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knIH0sXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChwYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLiNzdXBwcmVzc0VudGVyKHBhcmFtcykgfHwgdGhpcy4jc3VwcHJlc3NUYWIocGFyYW1zKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgICBjb21wYXJhdG9yOiBkYXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyAxODAgOiAxNjAsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuI2RhdGVTZXJ2aWNlLmZvcm1hdChcbiAgICAgICAgICAgICAgICAgIHBhcmFtcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIGFyZ3MubG9jYWxlLFxuICAgICAgICAgICAgICAgICAgYXJncy5kYXRlRm9ybWF0IHx8ICdzaG9ydERhdGUnLFxuICAgICAgICAgICAgICAgICkgfHwgJydcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoKGVyciBhcyBFcnJvcikuc3RhY2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNsb2dTZXJ2aWNlLmVycm9yKGAkeyhlcnIgYXMgRXJyb3IpLnN0YWNrfWApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuI2xvZ1NlcnZpY2UuZXJyb3IoYCR7ZXJyfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTG9va3VwXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkxvb2t1cF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb29rdXBQcm9wZXJ0aWVzID0gYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMoXG4gICAgICAgICAgICAgIHBhcmFtcy5jb2xEZWY/LmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcyA/P1xuICAgICAgICAgICAgICAgIHBhcmFtcy5jb2xEZWY/LmNlbGxFZGl0b3JQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXMgPz9cbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gKHBhcmFtcy52YWx1ZSB8fCBbXSlcbiAgICAgICAgICAgICAgLm1hcCgodmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlW2xvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IGFzIHN0cmluZ107XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLmpvaW4oJzsgJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTnVtYmVyXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLk51bWJlcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Sb3dTZWxlY3Rvcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiB7XG4gICAgICAgICAgICBoZWFkZXJIaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBoZWFkZXJOYW1lOiAnUm93IHNlbGVjdGlvbicsXG4gICAgICAgICAgbWluV2lkdGg6IDU1LFxuICAgICAgICAgIG1heFdpZHRoOiA1NSxcbiAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxuICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3aWR0aDogNTUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZW1wbGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5UZW1wbGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZXh0XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRleHRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlZhbGlkYXRvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnLFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKCksXG4gICAgICAgIGhlYWRlckNvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBtaW5XaWR0aDogMTAwLFxuICAgICAgICBzdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnQ6IChcbiAgICAgICAgICBrZXlwcmVzczogU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICAgICAgICApID0+IGtleXByZXNzLmV2ZW50LmNvZGUgPT09ICdUYWInLFxuICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChrZXlwcmVzczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKSA9PlxuICAgICAgICAgIHRoaXMuI3N1cHByZXNzVGFiKGtleXByZXNzKSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sR3JvdXBEZWY6IHtcbiAgICAgICAgaGVhZGVyR3JvdXBDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIGRvbUxheW91dDogJ2F1dG9IZWlnaHQnLFxuICAgICAgZW5zdXJlRG9tT3JkZXI6IHRydWUsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZm9jdXNHcmlkSW5uZXJFbGVtZW50OiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RGb2N1c2VkQ2VsbCA9IHBhcmFtcy5jb250ZXh0Py5bJ2xhc3RGb2N1c2VkQ2VsbCddIGFzXG4gICAgICAgICAgfCBMYXN0Rm9jdXNlZENlbGxcbiAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGxhc3RGb2N1c2VkQ2VsbCkge1xuICAgICAgICAgIGlmIChsYXN0Rm9jdXNlZENlbGwucm93SW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcGkuc2V0Rm9jdXNlZENlbGwoXG4gICAgICAgICAgICAgIGxhc3RGb2N1c2VkQ2VsbC5yb3dJbmRleCxcbiAgICAgICAgICAgICAgbGFzdEZvY3VzZWRDZWxsLmNvbHVtbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcGkuc2V0Rm9jdXNlZEhlYWRlcihsYXN0Rm9jdXNlZENlbGwuY29sdW1uKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0lkOiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFJZCA9IHBhcmFtcy5kYXRhLmlkO1xuICAgICAgICBpZiAoZGF0YUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zLmRhdGEuaWR9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuI2tleU1hcC5oYXMocGFyYW1zLmRhdGEpKSB7XG4gICAgICAgICAgdGhpcy4ja2V5TWFwLnNldChwYXJhbXMuZGF0YSwgYCR7cm93Tm9kZUlkLS19YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuI2tleU1hcC5nZXQocGFyYW1zLmRhdGEpIGFzIHN0cmluZztcbiAgICAgIH0sXG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpOiBzdHJpbmdbXSA9PiB7XG4gICAgICAgIGlmIChwYXJhbXMubm9kZS5pZCkge1xuICAgICAgICAgIHJldHVybiBbYHNreS1hZy1ncmlkLXJvdy0ke3BhcmFtcy5ub2RlLmlkfWBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIHNvcnREZXNjZW5kaW5nOiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ3NvcnREZXNjZW5kaW5nJyksXG4gICAgICAgIHNvcnRBc2NlbmRpbmc6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnc29ydEFzY2VuZGluZycpLFxuICAgICAgICBjb2x1bW5Nb3ZlTW92ZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlTW92ZScpLFxuICAgICAgICBjb2x1bW5Nb3ZlSGlkZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlSGlkZScpLFxuICAgICAgICBjb2x1bW5Nb3ZlTGVmdDogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlTGVmdCcpLFxuICAgICAgICBjb2x1bW5Nb3ZlUmlnaHQ6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZVJpZ2h0JyksXG4gICAgICAgIGNvbHVtbk1vdmVQaW46IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZVBpbicpLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50OiBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50LFxuICAgICAgb25DZWxsRm9jdXNlZDogKCkgPT4gdGhpcy4jb25DZWxsRm9jdXNlZCgpLFxuICAgICAgcm93U2VsZWN0aW9uOiB7XG4gICAgICAgIG1vZGU6ICdtdWx0aVJvdycsXG4gICAgICAgIGVuYWJsZUNsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlU2VsZWN0aW9uV2l0aG91dEtleXM6IHRydWUsXG4gICAgICAgIGNoZWNrYm94ZXM6IGZhbHNlLFxuICAgICAgICBoZWFkZXJDaGVja2JveDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgc29ydGluZ09yZGVyOiBbJ2Rlc2MnLCAnYXNjJywgbnVsbF0sXG4gICAgICBzdXBwcmVzc0RyYWdMZWF2ZUhpZGVzQ29sdW1uczogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29sdW1uVHlwZXMgPSBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMgYXMgUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgQ29sRGVmXG4gICAgPjtcblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5XSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhYCR7dmFsdWUgfHwgJyd9YC5tYXRjaCgvXlteMC05XSooXFxkK1ssLl0/KStcXGQqW14wLTldKiQvKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBjdXJyZW5jeScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2UnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29sdW1uVHlwZXNbXG4gICAgICAgICAgICBTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXSxcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0sXG4gICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgfSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWUgJiYgIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNyZXNvdXJjZXMpIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmcnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuUm93U2VsZWN0b3JdLmhlYWRlck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRTa3lHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNvbkNlbGxGb2N1c2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcblxuICAgIHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihjdXJyZW50RWxlbWVudCk7XG4gIH1cblxuICAjZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMgJiB7XG4gICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGRlZmF1bHRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNnZXRJY29uVGVtcGxhdGUoaWNvbk5hbWU6IGtleW9mIEljb25NYXBUeXBlKTogKCkgPT4gc3RyaW5nIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaWNvbiA9IGljb25NYXBbaWNvbk5hbWVdO1xuICAgICAgaWYgKHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWUubmFtZSA9PT0gJ21vZGVybicgJiYgaWNvbi5za3lJY29uKSB7XG4gICAgICAgIHJldHVybiBgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJza3ktaS0ke2ljb24uc2t5SWNvbn1cIj48L2k+YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmYSBmYS0ke2ljb24uZmFJY29ufVwiPjwvaT5gO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAjc3VwcHJlc3NUYWIocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuIHtcbiAgICBpZiAocGFyYW1zLmV2ZW50LmNvZGUgPT09ICdUYWInKSB7XG4gICAgICBpZiAocGFyYW1zLmVkaXRpbmcpIHtcbiAgICAgICAgY29uc3QgY3VycmVudGx5Rm9jdXNlZEVsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgICAvLyBpbmxpbmUgY2VsbCBlZGl0b3JzIGhhdmUgdGhlICdhZy1jZWxsJyBjbGFzcywgd2hpbGUgcG9wdXAgZWRpdG9ycyBoYXZlIHRoZSAnYWctcG9wdXAtZWRpdG9yJyBjbGFzc1xuICAgICAgICBjb25zdCBjZWxsRWwgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1jZWxsJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcG9wdXBFbCA9IHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhcbiAgICAgICAgICBjdXJyZW50bHlGb2N1c2VkRWwsXG4gICAgICAgICAgJ2FnLXBvcHVwLWVkaXRvcicsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsID0gY2VsbEVsIHx8IHBvcHVwRWw7XG5cbiAgICAgICAgY29uc3QgbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGwgPVxuICAgICAgICAgIHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldE5leHRGb2N1c2FibGVFbGVtZW50KFxuICAgICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICAgcGFyZW50RWwsXG4gICAgICAgICAgICBwYXJhbXMuZXZlbnQuc2hpZnRLZXksXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuICEhbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI3N1cHByZXNzRW50ZXIocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuIHtcbiAgICBpZiAocGFyYW1zLmV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgIHJldHVybiBwYXJhbXMuZWRpdGluZztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
567
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWlCakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHMUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDdEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDMUgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDaEksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDOUcsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDckosT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDbEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDN0ksT0FBTyxFQUFFLHNDQUFzQyxF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QU8sQ0FBQztnQkFFbkMsTUFBTSwwQkFBMEIsR0FDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUNoRCxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUN0QixDQUFDO2dCQUNKLE9BQU8sQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1lBQ3RDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBbUM7UUFDaEQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0Fwa0JVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBYUksUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TG9nU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreURhdGVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2RhdGV0aW1lJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UsIFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQge1xuICBDZWxsQ2xhc3NQYXJhbXMsXG4gIENvbERlZixcbiAgRWRpdGFibGVDYWxsYmFja1BhcmFtcyxcbiAgR3JpZE9wdGlvbnMsXG4gIEhlYWRlckNsYXNzUGFyYW1zLFxuICBJQ2VsbFJlbmRlcmVyUGFyYW1zLFxuICBSb3dDbGFzc1BhcmFtcyxcbiAgUm93U2VsZWN0aW9uT3B0aW9ucyxcbiAgU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMsXG4gIFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxufSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL2FnLWdyaWQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IGFwcGx5U2t5TG9va3VwUHJvcGVydGllc0RlZmF1bHRzIH0gZnJvbSAnLi9hcHBseS1sb29rdXAtcHJvcGVydGllcy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlL2NlbGwtZWRpdG9yLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItY3VycmVuY3kvY2VsbC1lZGl0b3ItY3VycmVuY3kuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItZGF0ZXBpY2tlci9jZWxsLWVkaXRvci1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbG9va3VwL2NlbGwtZWRpdG9yLWxvb2t1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1lZGl0b3JzL2NlbGwtZWRpdG9yLW51bWJlci9jZWxsLWVkaXRvci1udW1iZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItdGV4dC9jZWxsLWVkaXRvci10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItY3VycmVuY3kvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWxvb2t1cC9jZWxsLXJlbmRlcmVyLWxvb2t1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItcm93LXNlbGVjdG9yL2NlbGwtcmVuZGVyZXItcm93LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci10ZW1wbGF0ZS9jZWxsLXJlbmRlcmVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJWYWxpZGF0b3JUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9oZWFkZXIvaGVhZGVyLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25NYXBUeXBlLCBpY29uTWFwIH0gZnJvbSAnLi9pY29ucy9pY29uLW1hcCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNlbGxDbGFzcyB9IGZyb20gJy4vdHlwZXMvY2VsbC1jbGFzcyc7XG5pbXBvcnQgeyBTa3lDZWxsVHlwZSB9IGZyb20gJy4vdHlwZXMvY2VsbC10eXBlJztcbmltcG9ydCB7IFNreUhlYWRlckNsYXNzIH0gZnJvbSAnLi90eXBlcy9oZWFkZXItY2xhc3MnO1xuaW1wb3J0IHsgTGFzdEZvY3VzZWRDZWxsIH0gZnJvbSAnLi90eXBlcy9sYXN0LWZvY3VzZWQuY2VsbCc7XG5pbXBvcnQgeyBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MgfSBmcm9tICcuL3R5cGVzL3NreS1ncmlkLW9wdGlvbnMnO1xuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVDb21wYXJhdG9yKFxuICB2YWx1ZTE6IHsgbmFtZTogc3RyaW5nIH0sXG4gIHZhbHVlMjogeyBuYW1lOiBzdHJpbmcgfSxcbik6IG51bWJlciB7XG4gIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XG4gICAgaWYgKHZhbHVlMS5uYW1lID4gdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZTEubmFtZSA8IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gdmFsdWUxID8gMSA6IC0xO1xufVxuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXJhbXMudmFsdWUgJiYgcGFyYW1zLnZhbHVlLm5hbWU7XG59XG5cbmZ1bmN0aW9uIGRhdGVDb21wYXJhdG9yKGRhdGUxOiBEYXRlIHwgc3RyaW5nLCBkYXRlMjogRGF0ZSB8IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBkYXRlMXZhbHVlID0gZGF0ZTE7XG4gIGxldCBkYXRlMnZhbHVlID0gZGF0ZTI7XG5cbiAgaWYgKHR5cGVvZiBkYXRlMXZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGRhdGUxdmFsdWUgPSBuZXcgRGF0ZShkYXRlMSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGUydmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTJ2YWx1ZSA9IG5ldyBEYXRlKGRhdGUyKTtcbiAgfVxuXG4gIGlmIChkYXRlMXZhbHVlICYmIGRhdGUydmFsdWUpIHtcbiAgICBpZiAoZGF0ZTF2YWx1ZSA+IGRhdGUydmFsdWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmIChkYXRlMXZhbHVlIDwgZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGUxdmFsdWUgPyAxIDogLTE7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5mdW5jdGlvbiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3Rvcihjb21wb25lbnQ6IHN0cmluZywgZmFsbGJhY2s/OiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBhbnkgPT4ge1xuICAgIGlmIChcbiAgICAgIHBhcmFtcy5jb2xEZWYgJiZcbiAgICAgIHR5cGVvZiBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICAhcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgIHBhcmFtcy5kYXRhLFxuICAgICAgICAgIHBhcmFtcz8ubm9kZT8ucm93SW5kZXgsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLnBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxsYmFjaztcbiAgfTtcbn1cblxubGV0IHJvd05vZGVJZCA9IC0xO1xuXG4vKipcbiAqIGBTa3lBZ0dyaWRTZXJ2aWNlYCBwcm92aWRlcyBtZXRob2RzIHRvIGdldCBBRyBHcmlkIGBncmlkT3B0aW9uc2AgdG8gZW5zdXJlIGdyaWRzIG1hdGNoIFNLWSBVWCBmdW5jdGlvbmFsaXR5LiBUaGUgYGdyaWRPcHRpb25zYCBjYW4gYmUgb3ZlcnJpZGRlbiwgYW5kIGluY2x1ZGUgcmVnaXN0ZXJlZCBTS1kgVVggY29sdW1uIHR5cGVzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICNrZXlNYXAgPSBuZXcgV2Vha01hcDxhbnksIHN0cmluZz4oKTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAjYWdHcmlkQWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAjcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjZGF0ZVNlcnZpY2UgPSBpbmplY3QoU2t5RGF0ZVNlcnZpY2UpO1xuICAjbG9nU2VydmljZSA9IGluamVjdChTa3lMb2dTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgdGhlbWVTdmM/OiBTa3lUaGVtZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcmVzb3VyY2VzPzogU2t5TGliUmVzb3VyY2VzU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UgPSBhZ0dyaWRBZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNyZXNvdXJjZXMgPSByZXNvdXJjZXM7XG5cbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhlbWVTdmMpIHtcbiAgICAgIHRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoc2V0dGluZ3NDaGFuZ2UpID0+IHtcbiAgICAgICAgICB0aGlzLiNjdXJyZW50VGhlbWUgPSBzZXR0aW5nc0NoYW5nZS5jdXJyZW50U2V0dGluZ3M7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBbQUcgR3JpZCBgZ3JpZE9wdGlvbnNgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcHJvcGVydGllcy8pIHdpdGggZGVmYXVsdCBTS1kgVVggb3B0aW9ucywgc3R5bGluZywgYW5kIGNlbGwgcmVuZGVyZXJzIHJlZ2lzdGVyZWQgZm9yIHJlYWQtb25seSBncmlkcy5cbiAgICogQHBhcmFtIGFyZ3NcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnMsXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCBlZGl0b3JzIHJlZ2lzdGVyZWQgZm9yIGVkaXRhYmxlIGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnMsXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGUgYGdldEhlYWRlckhlaWdodGAgbWV0aG9kIGlzIG5vIGxvbmdlciBuZWVkZWQuIEhlYWRlciBoZWlnaHQgaXMgbWFuYWdlZCBpbiBDU1MuXG4gICAqL1xuICBwdWJsaWMgZ2V0SGVhZGVySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gNjAgOiAzNztcbiAgfVxuXG4gICNtZXJnZUdyaWRPcHRpb25zKFxuICAgIGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgJiB7XG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpID0+IHN0cmluZ1tdO1xuICAgIH0sXG4gICAgcHJvdmlkZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMsXG4gICk6IEdyaWRPcHRpb25zIHtcbiAgICBpZiAoJ2VuYWJsZVJhbmdlU2VsZWN0aW9uJyBpbiBwcm92aWRlZEdyaWRPcHRpb25zKSB7XG4gICAgICBpZiAocHJvdmlkZWRHcmlkT3B0aW9ucy5lbmFibGVSYW5nZVNlbGVjdGlvbikge1xuICAgICAgICBwcm92aWRlZEdyaWRPcHRpb25zLmNlbGxTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgfVxuICAgICAgZGVsZXRlIHByb3ZpZGVkR3JpZE9wdGlvbnMuZW5hYmxlUmFuZ2VTZWxlY3Rpb247XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID09PSAnc2luZ2xlJyB8fFxuICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPT09ICdtdWx0aXBsZSdcbiAgICApIHtcbiAgICAgIGNvbnN0IHJvd1NlbGVjdGlvbk9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIFJvd1NlbGVjdGlvbk9wdGlvbnM+ID0ge1xuICAgICAgICBzaW5nbGU6IHsgbW9kZTogJ3NpbmdsZVJvdycgfSxcbiAgICAgICAgbXVsdGlwbGU6IHsgbW9kZTogJ211bHRpUm93JyB9LFxuICAgICAgfTtcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID1cbiAgICAgICAgcm93U2VsZWN0aW9uT3B0aW9uc1twcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbl07XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gJiZcbiAgICAgIHByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uPy5tb2RlXG4gICAgKSB7XG4gICAgICBwcm92aWRlZEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHtcbiAgICAgICAgLi4uKGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gYXMgUm93U2VsZWN0aW9uT3B0aW9ucyksXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMucm93U2VsZWN0aW9uLFxuICAgICAgfSBhcyBSb3dTZWxlY3Rpb25PcHRpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyA9IHtcbiAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29tcG9uZW50cyxcbiAgICAgICAgLy8gQXBwbHkgZGVmYXVsdCBjb21wb25lbnRzIGxhc3QgdG8gcHJldmVudCBjb25zdW1lcnMgZnJvbSBvdmVyd3JpdGluZyBvdXIgY29tcG9uZW50IHR5cGVzLlxuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29tcG9uZW50cyxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5jb250ZXh0LFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbnRleHQsXG4gICAgICB9LFxuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgICAgLy8gYXBwbHkgZGVmYXVsdCBzZWNvbmQgdG8gcHJldmVudCBjb25zdW1lcnMgZnJvbSBvdmVyd3JpdGluZyBvdXIgZGVmYXVsdCBjb2x1bW4gdHlwZXNcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xEZWY6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLy8gYWxsb3cgY29uc3VtZXJzIHRvIG92ZXJyaWRlIGFsbCBkZWZhdWx0Q29sRGVmIHByb3BlcnRpZXMgZXhjZXB0IGNlbGxDbGFzc1J1bGVzLCB3aGljaCB3ZSByZXNlcnZlIGZvciBzdHlsaW5nXG4gICAgICAgIGNlbGxDbGFzc1J1bGVzOiBkZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZj8uY2VsbENsYXNzUnVsZXMsXG4gICAgICAgIGhlYWRlckNsYXNzOiBkZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZj8uaGVhZGVyQ2xhc3MsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbEdyb3VwRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWYsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmLFxuICAgICAgICBoZWFkZXJDbGFzczogZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZj8uaGVhZGVyQ2xhc3MsXG4gICAgICB9LFxuICAgICAgZ2V0Um93Q2xhc3M6IChwYXJhbXMpOiBzdHJpbmdbXSA9PiB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDbGFzc2VzID0gZGVmYXVsdEdyaWRPcHRpb25zLmdldFJvd0NsYXNzKFxuICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgY29uc3QgcHJvdmlkZWRDbGFzc2VzID0gcHJvdmlkZWRHcmlkT3B0aW9ucy5nZXRSb3dDbGFzcz8uKHBhcmFtcykgPz8gW107XG4gICAgICAgIGNvbnN0IHByb3ZpZGVkQ2xhc3Nlc0FycmF5ID0gQXJyYXkuaXNBcnJheShwcm92aWRlZENsYXNzZXMpXG4gICAgICAgICAgPyBwcm92aWRlZENsYXNzZXNcbiAgICAgICAgICA6IFtwcm92aWRlZENsYXNzZXNdO1xuICAgICAgICByZXR1cm4gWy4uLmRlZmF1bHRDbGFzc2VzLCAuLi5wcm92aWRlZENsYXNzZXNBcnJheV07XG4gICAgICB9LFxuICAgICAgaWNvbnM6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmljb25zLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmljb25zLFxuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6IChldmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBkZWZhdWx0R3JpZE9wdGlvbnMub25DZWxsRm9jdXNlZD8uKGV2ZW50KTtcbiAgICAgICAgcHJvdmlkZWRHcmlkT3B0aW9ucy5vbkNlbGxGb2N1c2VkPy4oZXZlbnQpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gRW5hYmxlIHRleHQgc2VsZWN0aW9uIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkIG9yIGNvbmZsaWN0aW5nIHdpdGggYW5vdGhlciBzZXR0aW5nLlxuICAgIGlmIChcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uIHx8XG4gICAgICAoISgnZW5hYmxlQ2VsbFRleHRTZWxlY3Rpb24nIGluIG1lcmdlZEdyaWRPcHRpb25zKSAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY2VsbFNlbGVjdGlvbiAmJlxuICAgICAgICAhbWVyZ2VkR3JpZE9wdGlvbnMuY29sdW1uRGVmcz8uc29tZSgoY29sOiBDb2xEZWYpID0+IGNvbC5lZGl0YWJsZSkpXG4gICAgKSB7XG4gICAgICBtZXJnZWRHcmlkT3B0aW9ucy5jb250ZXh0IHx8PSB7fTtcbiAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uID8/PSB0cnVlO1xuICAgICAgbWVyZ2VkR3JpZE9wdGlvbnMuY29udGV4dC5lbmFibGVDZWxsVGV4dFNlbGVjdGlvbiA9XG4gICAgICAgIG1lcmdlZEdyaWRPcHRpb25zLmVuYWJsZUNlbGxUZXh0U2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMgJiB7XG4gICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgLy8gY2VsbENsYXNzUnVsZXMgY2FuIGJlIGZ1bmN0aW9ucyBvciBzdHJpbmcgZXhwcmVzc2lvbnNcbiAgICBjb25zdCBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24gPSAoKTogYm9vbGVhbiA9PiB0cnVlO1xuXG4gICAgZnVuY3Rpb24gZ2V0RWRpdGFibGVGbihcbiAgICAgIGlzVW5lZGl0YWJsZT86IGJvb2xlYW4sXG4gICAgKTogKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzRWRpdGFibGUgPSBwYXJhbXMuY29sRGVmLmVkaXRhYmxlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXNFZGl0YWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHBhcmFtcy5hcGkuZ2V0Q29sdW1uKHBhcmFtcy5jb2xEZWYpO1xuICAgICAgICAgIGlzRWRpdGFibGUgPSBpc0VkaXRhYmxlKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICB9IGFzIEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzVW5lZGl0YWJsZSA/ICFpc0VkaXRhYmxlIDogISFpc0VkaXRhYmxlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5FZGl0YWJsZV06IGdldEVkaXRhYmxlRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGdldEVkaXRhYmxlRm4odHJ1ZSksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldFZhbGlkYXRvckZuKCk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtOiBDZWxsQ2xhc3NQYXJhbXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhcmFtLmNvbERlZiAmJlxuICAgICAgICAgIHR5cGVvZiBwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gIXBhcmFtLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgICBwYXJhbS52YWx1ZSxcbiAgICAgICAgICAgIHBhcmFtLmRhdGEsXG4gICAgICAgICAgICBwYXJhbS5ub2RlPy5yb3dJbmRleCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRIZWFkZXJDbGFzcyhcbiAgICAgIC4uLmNsYXNzTmFtZXM6IHN0cmluZ1tdXG4gICAgKTogKHBhcmFtczogSGVhZGVyQ2xhc3NQYXJhbXMpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiAocGFyYW1zOiBIZWFkZXJDbGFzc1BhcmFtcyk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgY29uc3QgbWluV2lkdGggPSBwYXJhbXMuY29sdW1uPy5nZXRNaW5XaWR0aCgpID8/IDA7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gcGFyYW1zLmNvbHVtbj8uZ2V0TWF4V2lkdGgoKSA/PyBJbmZpbml0eTtcbiAgICAgICAgaWYgKHBhcmFtcy5jb2x1bW4/LmlzUmVzaXphYmxlKCkgJiYgbWluV2lkdGggPCBtYXhXaWR0aCkge1xuICAgICAgICAgIHJldHVybiBbLi4uY2xhc3NOYW1lcywgU2t5SGVhZGVyQ2xhc3MuUmVzaXphYmxlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lcztcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdFNreUdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyAmIHtcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4gc3RyaW5nW107XG4gICAgfSA9IHtcbiAgICAgIGNvbHVtblR5cGVzOiB7XG4gICAgICAgIFtTa3lDZWxsVHlwZS5BdXRvY29tcGxldGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQXV0b2NvbXBsZXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IGF1dG9jb21wbGV0ZUZvcm1hdHRlcixcbiAgICAgICAgICBjb21wYXJhdG9yOiBhdXRvY29tcGxldGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5DdXJyZW5jeV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5DdXJyZW5jeV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LXZhbGlkYXRvcicsXG4gICAgICAgICAgICB7IGNvbXBvbmVudDogJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knIH0sXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChwYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLiNzdXBwcmVzc0VudGVyKHBhcmFtcykgfHwgdGhpcy4jc3VwcHJlc3NUYWIocGFyYW1zKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgICBjb21wYXJhdG9yOiBkYXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyAxODAgOiAxNjAsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuI2RhdGVTZXJ2aWNlLmZvcm1hdChcbiAgICAgICAgICAgICAgICAgIHBhcmFtcy52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIGFyZ3MubG9jYWxlLFxuICAgICAgICAgICAgICAgICAgYXJncy5kYXRlRm9ybWF0IHx8ICdzaG9ydERhdGUnLFxuICAgICAgICAgICAgICAgICkgfHwgJydcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgICBpZiAoKGVyciBhcyBFcnJvcikuc3RhY2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLiNsb2dTZXJ2aWNlLmVycm9yKGAkeyhlcnIgYXMgRXJyb3IpLnN0YWNrfWApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuI2xvZ1NlcnZpY2UuZXJyb3IoYCR7ZXJyfWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTG9va3VwXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkxvb2t1cF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb29rdXBQcm9wZXJ0aWVzID0gYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMoXG4gICAgICAgICAgICAgIHBhcmFtcy5jb2xEZWY/LmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllcyA/P1xuICAgICAgICAgICAgICAgIHBhcmFtcy5jb2xEZWY/LmNlbGxFZGl0b3JQYXJhbXM/LnNreUNvbXBvbmVudFByb3BlcnRpZXMgPz9cbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gKHBhcmFtcy52YWx1ZSB8fCBbXSlcbiAgICAgICAgICAgICAgLm1hcCgodmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlW2xvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IGFzIHN0cmluZ107XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLmpvaW4oJzsgJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTnVtYmVyXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLk51bWJlcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJyxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JOdW1iZXJDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5SaWdodEFsaWduZWRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuUmlnaHRBbGlnbmVkXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Sb3dTZWxlY3Rvcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiB7XG4gICAgICAgICAgICBoZWFkZXJIaWRkZW46IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBoZWFkZXJOYW1lOiAnUm93IHNlbGVjdGlvbicsXG4gICAgICAgICAgbWluV2lkdGg6IDU1LFxuICAgICAgICAgIG1heFdpZHRoOiA1NSxcbiAgICAgICAgICByZXNpemFibGU6IGZhbHNlLFxuICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICB3aWR0aDogNTUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZW1wbGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5UZW1wbGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5UZXh0XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlRleHRdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yVGV4dENvbXBvbmVudCxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCcsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlZhbGlkYXRvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnLFxuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgaGVhZGVyQ2xhc3M6IGdldEhlYWRlckNsYXNzKCksXG4gICAgICAgIGhlYWRlckNvbXBvbmVudDogU2t5QWdHcmlkSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBtaW5XaWR0aDogMTAwLFxuICAgICAgICBzdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnQ6IChcbiAgICAgICAgICBrZXlwcmVzczogU3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50UGFyYW1zLFxuICAgICAgICApID0+IGtleXByZXNzLmV2ZW50LmNvZGUgPT09ICdUYWInLFxuICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChrZXlwcmVzczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKSA9PlxuICAgICAgICAgIHRoaXMuI3N1cHByZXNzVGFiKGtleXByZXNzKSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sR3JvdXBEZWY6IHtcbiAgICAgICAgaGVhZGVyR3JvdXBDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIGRvbUxheW91dDogJ2F1dG9IZWlnaHQnLFxuICAgICAgZW5zdXJlRG9tT3JkZXI6IHRydWUsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZm9jdXNHcmlkSW5uZXJFbGVtZW50OiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RGb2N1c2VkQ2VsbCA9IHBhcmFtcy5jb250ZXh0Py5bJ2xhc3RGb2N1c2VkQ2VsbCddIGFzXG4gICAgICAgICAgfCBMYXN0Rm9jdXNlZENlbGxcbiAgICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGxhc3RGb2N1c2VkQ2VsbCkge1xuICAgICAgICAgIGlmIChsYXN0Rm9jdXNlZENlbGwucm93SW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcGkuc2V0Rm9jdXNlZENlbGwoXG4gICAgICAgICAgICAgIGxhc3RGb2N1c2VkQ2VsbC5yb3dJbmRleCxcbiAgICAgICAgICAgICAgbGFzdEZvY3VzZWRDZWxsLmNvbHVtbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtcy5hcGkuc2V0Rm9jdXNlZEhlYWRlcihsYXN0Rm9jdXNlZENlbGwuY29sdW1uKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0lkOiAocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFJZCA9IHBhcmFtcy5kYXRhLmlkO1xuICAgICAgICBpZiAoZGF0YUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gYCR7cGFyYW1zLmRhdGEuaWR9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuI2tleU1hcC5oYXMocGFyYW1zLmRhdGEpKSB7XG4gICAgICAgICAgdGhpcy4ja2V5TWFwLnNldChwYXJhbXMuZGF0YSwgYCR7cm93Tm9kZUlkLS19YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuI2tleU1hcC5nZXQocGFyYW1zLmRhdGEpIGFzIHN0cmluZztcbiAgICAgIH0sXG4gICAgICBnZXRSb3dDbGFzczogKHBhcmFtczogUm93Q2xhc3NQYXJhbXMpOiBzdHJpbmdbXSA9PiB7XG4gICAgICAgIGlmIChwYXJhbXMubm9kZS5pZCkge1xuICAgICAgICAgIHJldHVybiBbYHNreS1hZy1ncmlkLXJvdy0ke3BhcmFtcy5ub2RlLmlkfWBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIHNvcnREZXNjZW5kaW5nOiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ3NvcnREZXNjZW5kaW5nJyksXG4gICAgICAgIHNvcnRBc2NlbmRpbmc6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnc29ydEFzY2VuZGluZycpLFxuICAgICAgICBjb2x1bW5Nb3ZlTW92ZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlTW92ZScpLFxuICAgICAgICBjb2x1bW5Nb3ZlSGlkZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlSGlkZScpLFxuICAgICAgICBjb2x1bW5Nb3ZlTGVmdDogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlTGVmdCcpLFxuICAgICAgICBjb2x1bW5Nb3ZlUmlnaHQ6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZVJpZ2h0JyksXG4gICAgICAgIGNvbHVtbk1vdmVQaW46IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZVBpbicpLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdPdmVybGF5Q29tcG9uZW50OiBTa3lBZ0dyaWRMb2FkaW5nQ29tcG9uZW50LFxuICAgICAgb25DZWxsRm9jdXNlZDogKCkgPT4gdGhpcy4jb25DZWxsRm9jdXNlZCgpLFxuICAgICAgcm93U2VsZWN0aW9uOiB7XG4gICAgICAgIG1vZGU6ICdtdWx0aVJvdycsXG4gICAgICAgIGVuYWJsZUNsaWNrU2VsZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlU2VsZWN0aW9uV2l0aG91dEtleXM6IHRydWUsXG4gICAgICAgIGNoZWNrYm94ZXM6IGZhbHNlLFxuICAgICAgICBoZWFkZXJDaGVja2JveDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgc29ydGluZ09yZGVyOiBbJ2Rlc2MnLCAnYXNjJywgbnVsbF0sXG4gICAgICBzdXBwcmVzc0RyYWdMZWF2ZUhpZGVzQ29sdW1uczogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29sdW1uVHlwZXMgPSBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMgYXMgUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgQ29sRGVmXG4gICAgPjtcblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5XSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhYCR7dmFsdWUgfHwgJyd9YC5tYXRjaCgvXlteMC05XSooXFxkK1ssLl0/KStcXGQqW14wLTldKiQvKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBjdXJyZW5jeScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2UnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29sdW1uVHlwZXNbXG4gICAgICAgICAgICBTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJWYWxpZGF0b3JdID0ge1xuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXSxcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0sXG4gICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJdLmNlbGxDbGFzc1J1bGVzLFxuICAgICAgfSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWUgJiYgIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNyZXNvdXJjZXMpIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX251bWJlcl92YWxpZGF0b3JfbWVzc2FnZScpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9yb3dfc2VsZWN0b3JfY29sdW1uX2hlYWRpbmcnKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuUm93U2VsZWN0b3JdLmhlYWRlck5hbWUgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmF1bHRTa3lHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNvbkNlbGxGb2N1c2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcblxuICAgIHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmZvY3VzT25Gb2N1c2FibGVDaGlsZHJlbihjdXJyZW50RWxlbWVudCk7XG4gIH1cblxuICAjZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMgJiB7XG4gICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGRlZmF1bHRHcmlkT3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGRlZmF1bHRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNnZXRJY29uVGVtcGxhdGUoaWNvbk5hbWU6IGtleW9mIEljb25NYXBUeXBlKTogKCkgPT4gc3RyaW5nIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaWNvbiA9IGljb25NYXBbaWNvbk5hbWVdO1xuICAgICAgaWYgKHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWUubmFtZSA9PT0gJ21vZGVybicgJiYgaWNvbi5za3lJY29uKSB7XG4gICAgICAgIHJldHVybiBgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJza3ktaS0ke2ljb24uc2t5SWNvbn1cIj48L2k+YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmYSBmYS0ke2ljb24uZmFJY29ufVwiPjwvaT5gO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAjc3VwcHJlc3NUYWIocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuIHtcbiAgICBpZiAocGFyYW1zLmV2ZW50LmNvZGUgPT09ICdUYWInKSB7XG4gICAgICBpZiAocGFyYW1zLmVkaXRpbmcpIHtcbiAgICAgICAgY29uc3QgY3VycmVudGx5Rm9jdXNlZEVsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgICAvLyBpbmxpbmUgY2VsbCBlZGl0b3JzIGhhdmUgdGhlICdhZy1jZWxsJyBjbGFzcywgd2hpbGUgcG9wdXAgZWRpdG9ycyBoYXZlIHRoZSAnYWctcG9wdXAtZWRpdG9yJyBjbGFzc1xuICAgICAgICBjb25zdCBjZWxsRWwgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1jZWxsJyxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcG9wdXBFbCA9IHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhcbiAgICAgICAgICBjdXJyZW50bHlGb2N1c2VkRWwsXG4gICAgICAgICAgJ2FnLXBvcHVwLWVkaXRvcicsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsID0gY2VsbEVsIHx8IHBvcHVwRWw7XG5cbiAgICAgICAgY29uc3QgbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGwgPVxuICAgICAgICAgIHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldE5leHRGb2N1c2FibGVFbGVtZW50KFxuICAgICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICAgcGFyZW50RWwsXG4gICAgICAgICAgICBwYXJhbXMuZXZlbnQuc2hpZnRLZXksXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuICEhbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI3N1cHByZXNzRW50ZXIocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuIHtcbiAgICBpZiAocGFyYW1zLmV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgIHJldHVybiBwYXJhbXMuZWRpdGluZztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
@@ -10,9 +10,10 @@ export var SkyCellClass;
|
|
|
10
10
|
SkyCellClass["Invalid"] = "sky-ag-grid-cell-invalid";
|
|
11
11
|
SkyCellClass["Lookup"] = "sky-ag-grid-cell-lookup";
|
|
12
12
|
SkyCellClass["Number"] = "sky-ag-grid-cell-number";
|
|
13
|
+
SkyCellClass["RightAligned"] = "sky-ag-grid-cell-right-aligned";
|
|
13
14
|
SkyCellClass["RowSelector"] = "sky-ag-grid-cell-row-selector";
|
|
14
15
|
SkyCellClass["Template"] = "sky-ag-grid-cell-template";
|
|
15
16
|
SkyCellClass["Text"] = "sky-ag-grid-cell-text";
|
|
16
17
|
SkyCellClass["Uneditable"] = "sky-ag-grid-cell-uneditable";
|
|
17
18
|
})(SkyCellClass || (SkyCellClass = {}));
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hZy1ncmlkL3NyYy9saWIvbW9kdWxlcy9hZy1ncmlkL3R5cGVzL2NlbGwtY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxZQWFYO0FBYkQsV0FBWSxZQUFZO0lBQ3RCLDhEQUE4QyxDQUFBO0lBQzlDLHNEQUFzQyxDQUFBO0lBQ3RDLDhDQUE4QixDQUFBO0lBQzlCLHNEQUFzQyxDQUFBO0lBQ3RDLG9EQUFvQyxDQUFBO0lBQ3BDLGtEQUFrQyxDQUFBO0lBQ2xDLGtEQUFrQyxDQUFBO0lBQ2xDLCtEQUErQyxDQUFBO0lBQy9DLDZEQUE2QyxDQUFBO0lBQzdDLHNEQUFzQyxDQUFBO0lBQ3RDLDhDQUE4QixDQUFBO0lBQzlCLDBEQUEwQyxDQUFBO0FBQzVDLENBQUMsRUFiVyxZQUFZLEtBQVosWUFBWSxRQWF2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBlbnVtIFNreUNlbGxDbGFzcyB7XG4gIEF1dG9jb21wbGV0ZSA9ICdza3ktYWctZ3JpZC1jZWxsLWF1dG9jb21wbGV0ZScsXG4gIEN1cnJlbmN5ID0gJ3NreS1hZy1ncmlkLWNlbGwtY3VycmVuY3knLFxuICBEYXRlID0gJ3NreS1hZy1ncmlkLWNlbGwtZGF0ZScsXG4gIEVkaXRhYmxlID0gJ3NreS1hZy1ncmlkLWNlbGwtZWRpdGFibGUnLFxuICBJbnZhbGlkID0gJ3NreS1hZy1ncmlkLWNlbGwtaW52YWxpZCcsXG4gIExvb2t1cCA9ICdza3ktYWctZ3JpZC1jZWxsLWxvb2t1cCcsXG4gIE51bWJlciA9ICdza3ktYWctZ3JpZC1jZWxsLW51bWJlcicsXG4gIFJpZ2h0QWxpZ25lZCA9ICdza3ktYWctZ3JpZC1jZWxsLXJpZ2h0LWFsaWduZWQnLFxuICBSb3dTZWxlY3RvciA9ICdza3ktYWctZ3JpZC1jZWxsLXJvdy1zZWxlY3RvcicsXG4gIFRlbXBsYXRlID0gJ3NreS1hZy1ncmlkLWNlbGwtdGVtcGxhdGUnLFxuICBUZXh0ID0gJ3NreS1hZy1ncmlkLWNlbGwtdGV4dCcsXG4gIFVuZWRpdGFibGUgPSAnc2t5LWFnLWdyaWQtY2VsbC11bmVkaXRhYmxlJyxcbn1cbiJdfQ==
|
|
@@ -67,6 +67,12 @@ export var SkyCellType;
|
|
|
67
67
|
* Combines SkyCellType.Number and SkyCellType.Validator, where the value is displayed as a number and passed to a validator function.
|
|
68
68
|
*/
|
|
69
69
|
SkyCellType["NumberValidator"] = "skyCellNumberValidator";
|
|
70
|
+
/**
|
|
71
|
+
* **Edit and read-only modes**
|
|
72
|
+
* <br/>
|
|
73
|
+
* The header and cells in the column will render right aligned.
|
|
74
|
+
*/
|
|
75
|
+
SkyCellType["RightAligned"] = "skyCellRightAligned";
|
|
70
76
|
/**
|
|
71
77
|
* **Edit and read-only modes**
|
|
72
78
|
* <br/>
|
|
@@ -96,4 +102,4 @@ export var SkyCellType;
|
|
|
96
102
|
*/
|
|
97
103
|
SkyCellType["Validator"] = "skyCellValidator";
|
|
98
104
|
})(SkyCellType || (SkyCellType = {}));
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxNQUFNLENBQU4sSUFBWSxXQTJGWDtBQTNGRCxXQUFZLFdBQVc7SUFDckI7Ozs7Ozs7O09BUUc7SUFDSCxtREFBb0MsQ0FBQTtJQUNwQzs7Ozs7Ozs7T0FRRztJQUNILDJDQUE0QixDQUFBO0lBQzVCOzs7O09BSUc7SUFDSCw2REFBOEMsQ0FBQTtJQUM5Qzs7Ozs7Ozs7T0FRRztJQUNILG1DQUFvQixDQUFBO0lBQ3BCOzs7Ozs7OztPQVFHO0lBQ0gsdUNBQXdCLENBQUE7SUFDeEI7Ozs7Ozs7O09BUUc7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7OztPQUlHO0lBQ0gseURBQTBDLENBQUE7SUFDMUM7Ozs7T0FJRztJQUNILGlEQUFrQyxDQUFBO0lBQ2xDOzs7O09BSUc7SUFDSCwyQ0FBNEIsQ0FBQTtJQUM1Qjs7Ozs7Ozs7T0FRRztJQUNILG1DQUFvQixDQUFBO0lBQ3BCOzs7O09BSUc7SUFDSCw2Q0FBOEIsQ0FBQTtBQUNoQyxDQUFDLEVBM0ZXLFdBQVcsS0FBWCxXQUFXLFFBMkZ0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlc2UgY29sdW1uIHR5cGVzIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIEFHIEdyaWQgW2NvbHVtbiBkZWZpbml0aW9uIGB0eXBlYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKSB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXMuXG4gKiA8YnIvPlxuICogQW55IFtTS1kgVVggY29tcG9uZW50XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMpIGNhbiBiZSBtYWRlIGludG8gYSBbY2VsbCBlZGl0b3JdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLWVkaXRvci8pIG9yIFtjZWxsIHJlbmRlcmVyXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtY2VsbC1yZW5kZXJpbmctY29tcG9uZW50cy8pIGNvbXBvbmVudC4gSWYgeW91IHdvdWxkIGxpa2UgdG8gdXNlIGEgY29tcG9uZW50IHRoYXQgZG9lcyBub3QgaGF2ZSBhIGNvbHVtbiBkZWZpbml0aW9uIHlldCwgcGxlYXNlIGNvbnNpZGVyIFtjb250cmlidXRpbmcgaXRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29udHJpYnV0ZS9jb250cmlidXRpb24tcHJvY2VzcykgdG8gdGhlIFNLWSBVWCBkYXRhIGVudHJ5IGdyaWQgbW9kdWxlLCBvciBbZmlsZSBhbiBpc3N1ZV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb250cmlidXRlL2NvbnRyaWJ1dGlvbi1wcm9jZXNzL2ZpbGUtaXNzdWUpIGluIHRoZSBbYEBza3l1eC9hZy1ncmlkYCByZXBvXShodHRwczovL2dpdGh1Yi5jb20vYmxhY2tiYXVkL3NreXV4LWFnLWdyaWQpLlxuICovXG5leHBvcnQgZW51bSBTa3lDZWxsVHlwZSB7XG4gIC8qKlxuICAgKiAqKkVkaXQgbW9kZSoqXG4gICAqIDxici8+XG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCBiZSBlZGl0ZWQgYXMgIFtTS1kgVVggYXV0b2NvbXBsZXRlIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9hdXRvY29tcGxldGUpLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGF1dG9jb21wbGV0ZSBjb21wb25lbnQncyBwcm9wZXJ0aWVzIGJ5IHBhc3NpbmcgYFNreUNlbGxFZGl0b3JBdXRvY29tcGxldGVQYXJhbXNgIGluIHRoZSBbY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbEVkaXRvclBhcmFtc2AgcHJvcGVydHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1wcm9wZXJ0aWVzLyNyZWZlcmVuY2UtZWRpdGluZykuIFRoZXNlIHBhcmFtcyBjYW4gYmUgdXBkYXRlZCBhcyBvdGhlciBjZWxsIGVkaXRzIGFyZSBtYWRlIG9yIFtwcm92aWRlZCBkeW5hbWljYWxseV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdGluZy8jZHluYW1pYy1wYXJhbWV0ZXJzKSBiYXNlZCBvbiBvdGhlciBjZWxsIHZhbHVlcy4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLiBUZXh0IGNhbiBiZSBlbnRlcmVkIGFuZCBhIHZhbHVlIHNlbGVjdGVkIGZyb20gdGhlIHByb3ZpZGVkIGxpc3QuXG4gICAqIDxici8+PGJyLz5cbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqIDxici8+XG4gICAqIENlbGxzIHRoZSBjb2x1bW4gd2lsbCBkaXNwbGF5IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdmFsdWUncyBuYW1lIHByb3BlcnR5IGJ5IGRlZmF1bHQuIElmIHRoZSBhdXRvY29tcGxldGUgbmVlZHMgdG8gc2hvdyBhIGRpZmZlcmVudCBwcm9wZXJ0eSBvciBuZWVkcyB0byBiZSBmb3JtYXR0ZWQgaW4gYW55IHdheSwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uXG4gICAqL1xuICBBdXRvY29tcGxldGUgPSAnc2t5Q2VsbEF1dG9jb21wbGV0ZScsXG4gIC8qKlxuICAgKiAqKkVkaXQgbW9kZSoqXG4gICAqIDxici8+XG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCBiZSBlZGl0ZWQgYXMgYSBjdXJyZW5jeSBhbW91bnQuXG4gICAqIDxici8+PGJyLz5cbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqIDxici8+XG4gICAqIEZvcm1hdHMgdGhlIGRpc3BsYXkgYXMgY3VycmVuY3kgdXNpbmcgW1NLWSBVWCBudW1lcmljIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9udW1lcmljKS5cbiAgICovXG4gIEN1cnJlbmN5ID0gJ3NreUNlbGxDdXJyZW5jeScsXG4gIC8qKlxuICAgKiAqKkVkaXQgYW5kIHJlYWQtb25seSBtb2RlcyoqXG4gICAqIDxici8+XG4gICAqIENvbWJpbmVzIFNreUNlbGxUeXBlLkN1cnJlbmN5IGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBjdXJyZW5jeSBhbmQgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uLlxuICAgKi9cbiAgQ3VycmVuY3lWYWxpZGF0b3IgPSAnc2t5Q2VsbEN1cnJlbmN5VmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICogPGJyLz5cbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBbU0tZIFVYIGRhdGVwaWNrZXIgY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGVwaWNrZXIpLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGRhdGVwaWNrZXIgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yRGF0ZXBpY2tlclBhcmFtc2AgaW4gdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsRWRpdG9yUGFyYW1zYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS4gVGhlc2UgcGFyYW1zIGNhbiBiZSB1cGRhdGVkIGFzIG90aGVyIGNlbGwgZWRpdHMgYXJlIG1hZGUgb3IgW3Byb3ZpZGVkIGR5bmFtaWNhbGx5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtY2VsbC1lZGl0aW5nLyNkeW5hbWljLXBhcmFtZXRlcnMpIGJhc2VkIG9uIG90aGVyIGNlbGwgdmFsdWVzLiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuIERhdGUgdmFsdWVzIGNhbiBiZSBlbnRlcmVkLlxuICAgKiA8YnIvPjxici8+XG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgZGlzcGxheSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgZm9ybWF0dGVkIGFzIGBNTS1ERC1ZWVlZYCwgb3IgdGhlIGRhdGUgZm9ybWF0IG9mIHRoZSBsb2NhbGUgcGFzc2VkIHRvIGBnZXRHcmlkT3B0aW9ucygpYC4gSWYgeW91IHdvdWxkIGxpa2UgdG8gb3ZlcndyaXRlIHRoaXMgZm9ybWF0LCB5b3UgY2FuIFtkZWZpbmUgYSBgdmFsdWVGb3JtYXR0ZXJgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtdmFsdWUtZm9ybWF0dGVycy8pIG9uIHRoZSBjb2x1bW4gZGVmaW5pdGlvbi4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLlxuICAgKi9cbiAgRGF0ZSA9ICdza3lDZWxsRGF0ZScsXG4gIC8qKlxuICAgKiAqKkVkaXQgbW9kZSoqXG4gICAqIDxici8+XG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCBiZSBlZGl0ZWQgYXMgW1NLWSBVWCBsb29rdXAgY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC12NS9jb21wb25lbnRzL2xvb2t1cCkuIFlvdSBjYW4gc2V0IGFueSBvZiB0aGUgbG9va3VwIGNvbXBvbmVudCdzIHByb3BlcnRpZXMgYnkgcGFzc2luZyBgU2t5Q2VsbEVkaXRvckxvb2t1cFBhcmFtc2AgaW4gdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsRWRpdG9yUGFyYW1zYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS4gVGhlc2UgcGFyYW1zIGNhbiBiZSB1cGRhdGVkIGFzIG90aGVyIGNlbGwgZWRpdHMgYXJlIG1hZGUgb3IgW3Byb3ZpZGVkIGR5bmFtaWNhbGx5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtY2VsbC1lZGl0aW5nLyNkeW5hbWljLXBhcmFtZXRlcnMpIGJhc2VkIG9uIG90aGVyIGNlbGwgdmFsdWVzLiBTZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuIFRleHQgY2FuIGJlIGVudGVyZWQgYW5kIGEgdmFsdWUgc2VsZWN0ZWQgZnJvbSB0aGUgcHJvdmlkZWQgbGlzdC5cbiAgICogPGJyLz48YnIvPlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICogPGJyLz5cbiAgICogQ2VsbHMgdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXksIGJ5IGRlZmF1bHQsIGVpdGhlcjogdGhlIG5hbWUocykgb2YgdGhlIHNlbGVjdGVkIHZhbHVlKHMpIGlmIHRoZXJlIGFyZSBsZXNzIHRoYW4gNiwgb3IgYSBzdW1tYXJ5IGNvdW50IG9mIHRoZSB2YWx1ZXMgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiA1LiBJZiB0aGUgbG9va3VwIG5lZWRzIHRvIHNob3cgYSBkaWZmZXJlbnQgcHJvcGVydHkgb3IgbmVlZHMgdG8gYmUgZm9ybWF0dGVkIGluIGFueSB3YXksIHlvdSBjYW4gW2RlZmluZSBhIGB2YWx1ZUZvcm1hdHRlcmBdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC12YWx1ZS1mb3JtYXR0ZXJzLykgb24gdGhlIGNvbHVtbiBkZWZpbml0aW9uLlxuICAgKi9cbiAgTG9va3VwID0gJ3NreUNlbGxMb29rdXAnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIEhUTUwgbnVtYmVyIGBpbnB1dHNgLiBPbmx5IG51bWJlcnMgY2FuIGJlIGVudGVyZWQuXG4gICAqIDxici8+PGJyLz5cbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqIDxici8+XG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgYXMgdGhlIG51bWJlciB2YWx1ZS5cbiAgICovXG4gIE51bWJlciA9ICdza3lDZWxsTnVtYmVyJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICogPGJyLz5cbiAgICogQ29tYmluZXMgU2t5Q2VsbFR5cGUuTnVtYmVyIGFuZCBTa3lDZWxsVHlwZS5WYWxpZGF0b3IsIHdoZXJlIHRoZSB2YWx1ZSBpcyBkaXNwbGF5ZWQgYXMgYSBudW1iZXIgYW5kIHBhc3NlZCB0byBhIHZhbGlkYXRvciBmdW5jdGlvbi5cbiAgICovXG4gIE51bWJlclZhbGlkYXRvciA9ICdza3lDZWxsTnVtYmVyVmFsaWRhdG9yJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICogPGJyLz5cbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIHJlbmRlciBhcyBbU0tZIFVYIGNoZWNrYm94IGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGVja2JveCkuIEl0IGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgbXVsdGlwbGUgcm93cywgYW5kIGFkZHMgYSBoaWdobGlnaHQgdG8gc2VsZWN0ZWQgcm93cy4gVGhlIFtBZyBHcmlkIGByb3dOb2RlYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXJvdy1ub2RlLykgd2lsbCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIHNlbGVjdGVkIHN0YXRlLlxuICAgKi9cbiAgUm93U2VsZWN0b3IgPSAnc2t5Q2VsbFJvd1NlbGVjdG9yJyxcbiAgLyoqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGluIGEgYFRlbXBsYXRlUmVmYCBwYXNzZWQgaW4gdGhlIGNvbHVtbiBkZWZpbml0aW9uJ3MgYGNlbGxSZW5kZXJlclBhcmFtcy50ZW1wbGF0ZWAgcHJvcGVydHksIHdpdGggYHZhbHVlYCBhbmQgYHJvd2AgY29udGV4dC4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLlxuICAgKi9cbiAgVGVtcGxhdGUgPSAnc2t5Q2VsbFRlbXBsYXRlJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICogPGJyLz5cbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBIVE1MIHRleHQgYGlucHV0c2AuIEFueSBjaGFyYWN0ZXJzIGNhbiBiZSBlbnRlcmVkLlxuICAgKiA8YnIvPjxici8+XG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIHRoZWlyIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIFRleHQgPSAnc2t5Q2VsbFRleHQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgZmxhZ3MgZXJyb25lb3VzIGVudHJpZXMuIFlvdSBjYW4gc2V0IHRoZSB2YWxpZGF0b3IgZnVuY3Rpb24gYW5kIG1lc3NhZ2UgYnkgcGFzc2luZyB0aGVtIHRvIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsUmVuZGVyZXJQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpIGFzIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcmAgYW5kIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2VgLiBTa3lDZWxsVHlwZS5WYWxpZGF0b3IgY2FuIGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgY2VsbCB0eXBlcywgc3VjaCBhcyBTa3lDZWxsVHlwZS5BdXRvY29tcGxldGUgb3IgU2t5Q2VsbFR5cGUuRGF0ZSwgYnkgdXNpbmcgdGhlIGFycmF5IHN5bnRheCBmb3IgdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGB0eXBlYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS5cbiAgICovXG4gIFZhbGlkYXRvciA9ICdza3lDZWxsVmFsaWRhdG9yJyxcbn1cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvdHlwZXMvY2VsbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxNQUFNLENBQU4sSUFBWSxXQWlHWDtBQWpHRCxXQUFZLFdBQVc7SUFDckI7Ozs7Ozs7O09BUUc7SUFDSCxtREFBb0MsQ0FBQTtJQUNwQzs7Ozs7Ozs7T0FRRztJQUNILDJDQUE0QixDQUFBO0lBQzVCOzs7O09BSUc7SUFDSCw2REFBOEMsQ0FBQTtJQUM5Qzs7Ozs7Ozs7T0FRRztJQUNILG1DQUFvQixDQUFBO0lBQ3BCOzs7Ozs7OztPQVFHO0lBQ0gsdUNBQXdCLENBQUE7SUFDeEI7Ozs7Ozs7O09BUUc7SUFDSCx1Q0FBd0IsQ0FBQTtJQUN4Qjs7OztPQUlHO0lBQ0gseURBQTBDLENBQUE7SUFDMUM7Ozs7T0FJRztJQUNILG1EQUFvQyxDQUFBO0lBQ3BDOzs7O09BSUc7SUFDSCxpREFBa0MsQ0FBQTtJQUNsQzs7OztPQUlHO0lBQ0gsMkNBQTRCLENBQUE7SUFDNUI7Ozs7Ozs7O09BUUc7SUFDSCxtQ0FBb0IsQ0FBQTtJQUNwQjs7OztPQUlHO0lBQ0gsNkNBQThCLENBQUE7QUFDaEMsQ0FBQyxFQWpHVyxXQUFXLEtBQVgsV0FBVyxRQWlHdEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZXNlIGNvbHVtbiB0eXBlcyBjYW4gYmUgdXNlZCBieSBzZXR0aW5nIHRoZSBBRyBHcmlkIFtjb2x1bW4gZGVmaW5pdGlvbiBgdHlwZWBdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1wcm9wZXJ0aWVzLyNyZWZlcmVuY2UtZWRpdGluZykgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzLlxuICogPGJyLz5cbiAqIEFueSBbU0tZIFVYIGNvbXBvbmVudF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzKSBjYW4gYmUgbWFkZSBpbnRvIGEgW2NlbGwgZWRpdG9yXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtY2VsbC1lZGl0b3IvKSBvciBbY2VsbCByZW5kZXJlcl0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtcmVuZGVyaW5nLWNvbXBvbmVudHMvKSBjb21wb25lbnQuIElmIHlvdSB3b3VsZCBsaWtlIHRvIHVzZSBhIGNvbXBvbmVudCB0aGF0IGRvZXMgbm90IGhhdmUgYSBjb2x1bW4gZGVmaW5pdGlvbiB5ZXQsIHBsZWFzZSBjb25zaWRlciBbY29udHJpYnV0aW5nIGl0XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbnRyaWJ1dGUvY29udHJpYnV0aW9uLXByb2Nlc3MpIHRvIHRoZSBTS1kgVVggZGF0YSBlbnRyeSBncmlkIG1vZHVsZSwgb3IgW2ZpbGUgYW4gaXNzdWVdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29udHJpYnV0ZS9jb250cmlidXRpb24tcHJvY2Vzcy9maWxlLWlzc3VlKSBpbiB0aGUgW2BAc2t5dXgvYWctZ3JpZGAgcmVwb10oaHR0cHM6Ly9naXRodWIuY29tL2JsYWNrYmF1ZC9za3l1eC1hZy1ncmlkKS5cbiAqL1xuZXhwb3J0IGVudW0gU2t5Q2VsbFR5cGUge1xuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzICBbU0tZIFVYIGF1dG9jb21wbGV0ZSBjb21wb25lbnRzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlKS4gWW91IGNhbiBzZXQgYW55IG9mIHRoZSBhdXRvY29tcGxldGUgY29tcG9uZW50J3MgcHJvcGVydGllcyBieSBwYXNzaW5nIGBTa3lDZWxsRWRpdG9yQXV0b2NvbXBsZXRlUGFyYW1zYCBpbiB0aGUgW2NvbHVtbiBkZWZpbml0aW9uJ3MgYGNlbGxFZGl0b3JQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpLiBUaGVzZSBwYXJhbXMgY2FuIGJlIHVwZGF0ZWQgYXMgb3RoZXIgY2VsbCBlZGl0cyBhcmUgbWFkZSBvciBbcHJvdmlkZWQgZHluYW1pY2FsbHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1jZWxsLWVkaXRpbmcvI2R5bmFtaWMtcGFyYW1ldGVycykgYmFzZWQgb24gb3RoZXIgY2VsbCB2YWx1ZXMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS4gVGV4dCBjYW4gYmUgZW50ZXJlZCBhbmQgYSB2YWx1ZSBzZWxlY3RlZCBmcm9tIHRoZSBwcm92aWRlZCBsaXN0LlxuICAgKiA8YnIvPjxici8+XG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyB0aGUgY29sdW1uIHdpbGwgZGlzcGxheSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHZhbHVlJ3MgbmFtZSBwcm9wZXJ0eSBieSBkZWZhdWx0LiBJZiB0aGUgYXV0b2NvbXBsZXRlIG5lZWRzIHRvIHNob3cgYSBkaWZmZXJlbnQgcHJvcGVydHkgb3IgbmVlZHMgdG8gYmUgZm9ybWF0dGVkIGluIGFueSB3YXksIHlvdSBjYW4gW2RlZmluZSBhIGB2YWx1ZUZvcm1hdHRlcmBdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC12YWx1ZS1mb3JtYXR0ZXJzLykgb24gdGhlIGNvbHVtbiBkZWZpbml0aW9uLlxuICAgKi9cbiAgQXV0b2NvbXBsZXRlID0gJ3NreUNlbGxBdXRvY29tcGxldGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIGEgY3VycmVuY3kgYW1vdW50LlxuICAgKiA8YnIvPjxici8+XG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBGb3JtYXRzIHRoZSBkaXNwbGF5IGFzIGN1cnJlbmN5IHVzaW5nIFtTS1kgVVggbnVtZXJpYyBjb21wb25lbnRzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvbnVtZXJpYykuXG4gICAqL1xuICBDdXJyZW5jeSA9ICdza3lDZWxsQ3VycmVuY3knLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKiA8YnIvPlxuICAgKiBDb21iaW5lcyBTa3lDZWxsVHlwZS5DdXJyZW5jeSBhbmQgU2t5Q2VsbFR5cGUuVmFsaWRhdG9yLCB3aGVyZSB0aGUgdmFsdWUgaXMgZGlzcGxheWVkIGFzIGEgY3VycmVuY3kgYW5kIHBhc3NlZCB0byBhIHZhbGlkYXRvciBmdW5jdGlvbi5cbiAgICovXG4gIEN1cnJlbmN5VmFsaWRhdG9yID0gJ3NreUNlbGxDdXJyZW5jeVZhbGlkYXRvcicsXG4gIC8qKlxuICAgKiAqKkVkaXQgbW9kZSoqXG4gICAqIDxici8+XG4gICAqIENlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCBiZSBlZGl0ZWQgYXMgW1NLWSBVWCBkYXRlcGlja2VyIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9kYXRlcGlja2VyKS4gWW91IGNhbiBzZXQgYW55IG9mIHRoZSBkYXRlcGlja2VyIGNvbXBvbmVudCdzIHByb3BlcnRpZXMgYnkgcGFzc2luZyBgU2t5Q2VsbEVkaXRvckRhdGVwaWNrZXJQYXJhbXNgIGluIHRoZSBbY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbEVkaXRvclBhcmFtc2AgcHJvcGVydHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1wcm9wZXJ0aWVzLyNyZWZlcmVuY2UtZWRpdGluZykuIFRoZXNlIHBhcmFtcyBjYW4gYmUgdXBkYXRlZCBhcyBvdGhlciBjZWxsIGVkaXRzIGFyZSBtYWRlIG9yIFtwcm92aWRlZCBkeW5hbWljYWxseV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdGluZy8jZHluYW1pYy1wYXJhbWV0ZXJzKSBiYXNlZCBvbiBvdGhlciBjZWxsIHZhbHVlcy4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLiBEYXRlIHZhbHVlcyBjYW4gYmUgZW50ZXJlZC5cbiAgICogPGJyLz48YnIvPlxuICAgKiAqKlJlYWQtb25seSBtb2RlKipcbiAgICogPGJyLz5cbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXRlIGZvcm1hdHRlZCBhcyBgTU0tREQtWVlZWWAsIG9yIHRoZSBkYXRlIGZvcm1hdCBvZiB0aGUgbG9jYWxlIHBhc3NlZCB0byBgZ2V0R3JpZE9wdGlvbnMoKWAuIElmIHlvdSB3b3VsZCBsaWtlIHRvIG92ZXJ3cml0ZSB0aGlzIGZvcm1hdCwgeW91IGNhbiBbZGVmaW5lIGEgYHZhbHVlRm9ybWF0dGVyYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXZhbHVlLWZvcm1hdHRlcnMvKSBvbiB0aGUgY29sdW1uIGRlZmluaXRpb24uIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIERhdGUgPSAnc2t5Q2VsbERhdGUnLFxuICAvKipcbiAgICogKipFZGl0IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgZWRpdGVkIGFzIFtTS1kgVVggbG9va3VwIGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgtdjUvY29tcG9uZW50cy9sb29rdXApLiBZb3UgY2FuIHNldCBhbnkgb2YgdGhlIGxvb2t1cCBjb21wb25lbnQncyBwcm9wZXJ0aWVzIGJ5IHBhc3NpbmcgYFNreUNlbGxFZGl0b3JMb29rdXBQYXJhbXNgIGluIHRoZSBbY29sdW1uIGRlZmluaXRpb24ncyBgY2VsbEVkaXRvclBhcmFtc2AgcHJvcGVydHldKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2FuZ3VsYXItZGF0YS1ncmlkL2NvbHVtbi1wcm9wZXJ0aWVzLyNyZWZlcmVuY2UtZWRpdGluZykuIFRoZXNlIHBhcmFtcyBjYW4gYmUgdXBkYXRlZCBhcyBvdGhlciBjZWxsIGVkaXRzIGFyZSBtYWRlIG9yIFtwcm92aWRlZCBkeW5hbWljYWxseV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLWNlbGwtZWRpdGluZy8jZHluYW1pYy1wYXJhbWV0ZXJzKSBiYXNlZCBvbiBvdGhlciBjZWxsIHZhbHVlcy4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLiBUZXh0IGNhbiBiZSBlbnRlcmVkIGFuZCBhIHZhbHVlIHNlbGVjdGVkIGZyb20gdGhlIHByb3ZpZGVkIGxpc3QuXG4gICAqIDxici8+PGJyLz5cbiAgICogKipSZWFkLW9ubHkgbW9kZSoqXG4gICAqIDxici8+XG4gICAqIENlbGxzIHRoZSBjb2x1bW4gd2lsbCBkaXNwbGF5LCBieSBkZWZhdWx0LCBlaXRoZXI6IHRoZSBuYW1lKHMpIG9mIHRoZSBzZWxlY3RlZCB2YWx1ZShzKSBpZiB0aGVyZSBhcmUgbGVzcyB0aGFuIDYsIG9yIGEgc3VtbWFyeSBjb3VudCBvZiB0aGUgdmFsdWVzIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gNS4gSWYgdGhlIGxvb2t1cCBuZWVkcyB0byBzaG93IGEgZGlmZmVyZW50IHByb3BlcnR5IG9yIG5lZWRzIHRvIGJlIGZvcm1hdHRlZCBpbiBhbnkgd2F5LCB5b3UgY2FuIFtkZWZpbmUgYSBgdmFsdWVGb3JtYXR0ZXJgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtdmFsdWUtZm9ybWF0dGVycy8pIG9uIHRoZSBjb2x1bW4gZGVmaW5pdGlvbi5cbiAgICovXG4gIExvb2t1cCA9ICdza3lDZWxsTG9va3VwJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICogPGJyLz5cbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBIVE1MIG51bWJlciBgaW5wdXRzYC4gT25seSBudW1iZXJzIGNhbiBiZSBlbnRlcmVkLlxuICAgKiA8YnIvPjxici8+XG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIHRoZSBudW1iZXIgdmFsdWUuXG4gICAqL1xuICBOdW1iZXIgPSAnc2t5Q2VsbE51bWJlcicsXG4gIC8qKlxuICAgKiAqKkVkaXQgYW5kIHJlYWQtb25seSBtb2RlcyoqXG4gICAqIDxici8+XG4gICAqIENvbWJpbmVzIFNreUNlbGxUeXBlLk51bWJlciBhbmQgU2t5Q2VsbFR5cGUuVmFsaWRhdG9yLCB3aGVyZSB0aGUgdmFsdWUgaXMgZGlzcGxheWVkIGFzIGEgbnVtYmVyIGFuZCBwYXNzZWQgdG8gYSB2YWxpZGF0b3IgZnVuY3Rpb24uXG4gICAqL1xuICBOdW1iZXJWYWxpZGF0b3IgPSAnc2t5Q2VsbE51bWJlclZhbGlkYXRvcicsXG4gIC8qKlxuICAgKiAqKkVkaXQgYW5kIHJlYWQtb25seSBtb2RlcyoqXG4gICAqIDxici8+XG4gICAqIFRoZSBoZWFkZXIgYW5kIGNlbGxzIGluIHRoZSBjb2x1bW4gd2lsbCByZW5kZXIgcmlnaHQgYWxpZ25lZC5cbiAgICovXG4gIFJpZ2h0QWxpZ25lZCA9ICdza3lDZWxsUmlnaHRBbGlnbmVkJyxcbiAgLyoqXG4gICAqICoqRWRpdCBhbmQgcmVhZC1vbmx5IG1vZGVzKipcbiAgICogPGJyLz5cbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIHJlbmRlciBhcyBbU0tZIFVYIGNoZWNrYm94IGNvbXBvbmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9jaGVja2JveCkuIEl0IGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgbXVsdGlwbGUgcm93cywgYW5kIGFkZHMgYSBoaWdobGlnaHQgdG8gc2VsZWN0ZWQgcm93cy4gVGhlIFtBZyBHcmlkIGByb3dOb2RlYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXJvdy1ub2RlLykgd2lsbCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIHNlbGVjdGVkIHN0YXRlLlxuICAgKi9cbiAgUm93U2VsZWN0b3IgPSAnc2t5Q2VsbFJvd1NlbGVjdG9yJyxcbiAgLyoqXG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGluIGEgYFRlbXBsYXRlUmVmYCBwYXNzZWQgaW4gdGhlIGNvbHVtbiBkZWZpbml0aW9uJ3MgYGNlbGxSZW5kZXJlclBhcmFtcy50ZW1wbGF0ZWAgcHJvcGVydHksIHdpdGggYHZhbHVlYCBhbmQgYHJvd2AgY29udGV4dC4gU2VlIHRoZSBkZW1vIGZvciBhbiBleGFtcGxlLlxuICAgKi9cbiAgVGVtcGxhdGUgPSAnc2t5Q2VsbFRlbXBsYXRlJyxcbiAgLyoqXG4gICAqICoqRWRpdCBtb2RlKipcbiAgICogPGJyLz5cbiAgICogQ2VsbHMgaW4gdGhlIGNvbHVtbiB3aWxsIGJlIGVkaXRlZCBhcyBIVE1MIHRleHQgYGlucHV0c2AuIEFueSBjaGFyYWN0ZXJzIGNhbiBiZSBlbnRlcmVkLlxuICAgKiA8YnIvPjxici8+XG4gICAqICoqUmVhZC1vbmx5IG1vZGUqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgcmVuZGVyIGFzIHRoZWlyIHN0cmluZyB2YWx1ZS5cbiAgICovXG4gIFRleHQgPSAnc2t5Q2VsbFRleHQnLFxuICAvKipcbiAgICogKipFZGl0IGFuZCByZWFkLW9ubHkgbW9kZXMqKlxuICAgKiA8YnIvPlxuICAgKiBDZWxscyBpbiB0aGUgY29sdW1uIHdpbGwgYmUgcGFzc2VkIHRvIGEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgZmxhZ3MgZXJyb25lb3VzIGVudHJpZXMuIFlvdSBjYW4gc2V0IHRoZSB2YWxpZGF0b3IgZnVuY3Rpb24gYW5kIG1lc3NhZ2UgYnkgcGFzc2luZyB0aGVtIHRvIFtjb2x1bW4gZGVmaW5pdGlvbidzIGBjZWxsUmVuZGVyZXJQYXJhbXNgIHByb3BlcnR5XShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9hbmd1bGFyLWRhdGEtZ3JpZC9jb2x1bW4tcHJvcGVydGllcy8jcmVmZXJlbmNlLWVkaXRpbmcpIGFzIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcmAgYW5kIGBza3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2VgLiBTa3lDZWxsVHlwZS5WYWxpZGF0b3IgY2FuIGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgY2VsbCB0eXBlcywgc3VjaCBhcyBTa3lDZWxsVHlwZS5BdXRvY29tcGxldGUgb3IgU2t5Q2VsbFR5cGUuRGF0ZSwgYnkgdXNpbmcgdGhlIGFycmF5IHN5bnRheCBmb3IgdGhlIFtjb2x1bW4gZGVmaW5pdGlvbidzIGB0eXBlYCBwcm9wZXJ0eV0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vYW5ndWxhci1kYXRhLWdyaWQvY29sdW1uLXByb3BlcnRpZXMvI3JlZmVyZW5jZS1lZGl0aW5nKS5cbiAgICovXG4gIFZhbGlkYXRvciA9ICdza3lDZWxsVmFsaWRhdG9yJyxcbn1cbiJdfQ==
|
|
@@ -249,6 +249,12 @@ var SkyCellType;
|
|
|
249
249
|
* Combines SkyCellType.Number and SkyCellType.Validator, where the value is displayed as a number and passed to a validator function.
|
|
250
250
|
*/
|
|
251
251
|
SkyCellType["NumberValidator"] = "skyCellNumberValidator";
|
|
252
|
+
/**
|
|
253
|
+
* **Edit and read-only modes**
|
|
254
|
+
* <br/>
|
|
255
|
+
* The header and cells in the column will render right aligned.
|
|
256
|
+
*/
|
|
257
|
+
SkyCellType["RightAligned"] = "skyCellRightAligned";
|
|
252
258
|
/**
|
|
253
259
|
* **Edit and read-only modes**
|
|
254
260
|
* <br/>
|
|
@@ -484,7 +490,6 @@ class SkyAgGridWrapperComponent {
|
|
|
484
490
|
this.#adapterService.setFocusedElementById(this.#elementRef.nativeElement, idToFocus);
|
|
485
491
|
}
|
|
486
492
|
}
|
|
487
|
-
// eslint-disable-next-line complexity
|
|
488
493
|
onAnchorFocus(event) {
|
|
489
494
|
const relatedTarget = event.relatedTarget;
|
|
490
495
|
const previousWasGrid = relatedTarget && this.#elementRef.nativeElement.contains(relatedTarget);
|
|
@@ -2919,6 +2924,7 @@ var SkyCellClass;
|
|
|
2919
2924
|
SkyCellClass["Invalid"] = "sky-ag-grid-cell-invalid";
|
|
2920
2925
|
SkyCellClass["Lookup"] = "sky-ag-grid-cell-lookup";
|
|
2921
2926
|
SkyCellClass["Number"] = "sky-ag-grid-cell-number";
|
|
2927
|
+
SkyCellClass["RightAligned"] = "sky-ag-grid-cell-right-aligned";
|
|
2922
2928
|
SkyCellClass["RowSelector"] = "sky-ag-grid-cell-row-selector";
|
|
2923
2929
|
SkyCellClass["Template"] = "sky-ag-grid-cell-template";
|
|
2924
2930
|
SkyCellClass["Text"] = "sky-ag-grid-cell-text";
|
|
@@ -3247,6 +3253,12 @@ class SkyAgGridService {
|
|
|
3247
3253
|
cellEditor: SkyAgGridCellEditorNumberComponent,
|
|
3248
3254
|
headerClass: getHeaderClass(SkyHeaderClass.RightAligned),
|
|
3249
3255
|
},
|
|
3256
|
+
[SkyCellType.RightAligned]: {
|
|
3257
|
+
cellClassRules: {
|
|
3258
|
+
[SkyCellClass.RightAligned]: cellClassRuleTrueExpression,
|
|
3259
|
+
},
|
|
3260
|
+
headerClass: getHeaderClass(SkyHeaderClass.RightAligned),
|
|
3261
|
+
},
|
|
3250
3262
|
[SkyCellType.RowSelector]: {
|
|
3251
3263
|
cellClassRules: {
|
|
3252
3264
|
[SkyCellClass.RowSelector]: cellClassRuleTrueExpression,
|