@koobiq/components 16.0.0-beta.11 → 16.0.0-beta.12
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/esm2022/button/button.component.mjs +6 -3
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/navbar/navbar-item.component.mjs +7 -7
- package/fesm2022/koobiq-components-button.mjs +5 -2
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +1 -1
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +6 -6
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/navbar/_navbar-theme.scss +5 -3
- package/navbar/navbar-item.component.d.ts +1 -1
- package/package.json +10 -10
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
|
@@ -33,6 +33,11 @@ export class KbqButtonCssStyler {
|
|
|
33
33
|
updateClassModifierForIcons() {
|
|
34
34
|
this.renderer.removeClass(this.nativeElement, buttonLeftIconClassName);
|
|
35
35
|
this.renderer.removeClass(this.nativeElement, buttonRightIconClassName);
|
|
36
|
+
this.icons.map((item) => item.getHostElement())
|
|
37
|
+
.forEach((iconHostElement) => {
|
|
38
|
+
this.renderer.removeClass(iconHostElement, leftIconClassName);
|
|
39
|
+
this.renderer.removeClass(iconHostElement, rightIconClassName);
|
|
40
|
+
});
|
|
36
41
|
const twoIcons = 2;
|
|
37
42
|
const filteredNodesWithoutComments = getNodesWithoutComments(this.nativeElement.querySelector('.kbq-button-wrapper').childNodes);
|
|
38
43
|
const currentIsIconButtonValue = !!this.icons.length &&
|
|
@@ -44,8 +49,6 @@ export class KbqButtonCssStyler {
|
|
|
44
49
|
if (this.icons.length && filteredNodesWithoutComments.length > 1) {
|
|
45
50
|
this.icons.map((item) => item.getHostElement())
|
|
46
51
|
.forEach((iconHostElement) => {
|
|
47
|
-
this.renderer.removeClass(iconHostElement, leftIconClassName);
|
|
48
|
-
this.renderer.removeClass(iconHostElement, rightIconClassName);
|
|
49
52
|
const iconIndex = filteredNodesWithoutComments.findIndex((node) => node === iconHostElement);
|
|
50
53
|
if (iconIndex === 0) {
|
|
51
54
|
this.renderer.addClass(iconHostElement, leftIconClassName);
|
|
@@ -162,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
162
165
|
}], disabled: [{
|
|
163
166
|
type: Input
|
|
164
167
|
}] } });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUVWLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFFZixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLGFBQWEsRUFLYixrQkFBa0IsRUFDckIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFHbEQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2QixvQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBbUIsQ0FBQTtJQUNuQiw4Q0FBMkIsQ0FBQTtBQUMvQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFHRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsc0JBQXNCLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsdUJBQXVCLENBQUM7QUFFaEUsTUFBTSxDQUFD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QUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEUsQ0FBQztpSUFqRlEsU0FBUztxSEFBVCxTQUFTLDJYQzVJdEIsOE1BSUE7OzJGRHdJYSxTQUFTO2tCQWpCckIsU0FBUzsrQkFDSSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksVUFDN0IsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFFBQ3ZCO3dCQUNGLGlCQUFpQixFQUFFLGtCQUFrQjt3QkFDckMsc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsaUJBQWlCLEVBQUUsVUFBVTt3QkFDN0IsU0FBUyxFQUFFLFVBQVU7d0JBRXJCLFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLFFBQVEsRUFBRSxVQUFVO3FCQUN2QjswSkFNRyxRQUFRO3NCQURYLEtBQUs7Z0JBWUYsUUFBUTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBSZW5kZXJlcjIsXG4gICAgUXVlcnlMaXN0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIFNraXBTZWxmLFxuICAgIElucHV0LFxuICAgIGZvcndhcmRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIG1peGluQ29sb3IsXG4gICAgbWl4aW5UYWJJbmRleCxcbiAgICBDYW5Db2xvcixcbiAgICBDYW5EaXNhYmxlLFxuICAgIENhbkNvbG9yQ3RvcixcbiAgICBIYXNUYWJJbmRleEN0b3IsXG4gICAgS2JxQ29tcG9uZW50Q29sb3JzXG59IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5cblxuZXhwb3J0IGVudW0gS2JxQnV0dG9uU3R5bGVzIHtcbiAgICBGaWxsZWQgPSAnZmlsbGVkJyxcbiAgICBPdXRsaW5lID0gJ291dGxpbmUnLFxuICAgIFRyYW5zcGFyZW50ID0gJ3RyYW5zcGFyZW50J1xufVxuXG5cbmV4cG9ydCBjb25zdCBsZWZ0SWNvbkNsYXNzTmFtZSA9ICdrYnEtaWNvbl9sZWZ0JztcbmV4cG9ydCBjb25zdCByaWdodEljb25DbGFzc05hbWUgPSAna2JxLWljb25fcmlnaHQnO1xuXG5leHBvcnQgY29uc3QgYnV0dG9uTGVmdEljb25DbGFzc05hbWUgPSAna2JxLWJ1dHRvbi1pY29uX2xlZnQnO1xuZXhwb3J0IGNvbnN0IGJ1dHRvblJpZ2h0SWNvbkNsYXNzTmFtZSA9ICdrYnEtYnV0dG9uLWljb25fcmlnaHQnO1xuXG5leHBvcnQgY29uc3QgZ2V0Tm9kZXNXaXRob3V0Q29tbWVudHMgPSAobm9kZXM6IE5vZGVMaXN0KTogTm9kZVtdID0+IHtcbiAgICBjb25zdCBDT01NRU5UX05PREUgPSA4O1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20obm9kZXMpLmZpbHRlcigobm9kZSkgPT4gbm9kZS5ub2RlVHlwZSAhPT0gQ09NTUVOVF9OT0RFKTtcbn07XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticS1idXR0b25dJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLWJ1dHRvbl0nOiAnIWlzSWNvbkJ1dHRvbicsXG4gICAgICAgICdbY2xhc3Mua2JxLWJ1dHRvbi1pY29uXSc6ICdpc0ljb25CdXR0b24nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFCdXR0b25Dc3NTdHlsZXIgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkcmVuKChmb3J3YXJkUmVmKCgpID0+IEticUljb24pKSkgaWNvbnM6IFF1ZXJ5TGlzdDxLYnFJY29uPjtcblxuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgaXNJY29uQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIEBTa2lwU2VsZigpIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTW9kaWZpZXJGb3JJY29ucygpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNsYXNzTW9kaWZpZXJGb3JJY29ucygpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGJ1dHRvbkxlZnRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGJ1dHRvblJpZ2h0SWNvbkNsYXNzTmFtZSk7XG5cbiAgICAgICAgY29uc3QgdHdvSWNvbnMgPSAyO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzID0gZ2V0Tm9kZXNXaXRob3V0Q29tbWVudHMoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmticS1idXR0b24td3JhcHBlcicpIS5jaGlsZE5vZGVzIGFzIE5vZGVMaXN0XG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudElzSWNvbkJ1dHRvblZhbHVlID0gISF0aGlzLmljb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5pY29ucy5sZW5ndGggPT09IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMubGVuZ3RoICYmIHRoaXMuaWNvbnMubGVuZ3RoIDw9IHR3b0ljb25zO1xuXG4gICAgICAgIGlmIChjdXJyZW50SXNJY29uQnV0dG9uVmFsdWUgIT09IHRoaXMuaXNJY29uQnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLmlzSWNvbkJ1dHRvbiA9IGN1cnJlbnRJc0ljb25CdXR0b25WYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmljb25zLmxlbmd0aCAmJiBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbnMubWFwKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGljb25Ib3N0RWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGljb25Ib3N0RWxlbWVudCwgbGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGljb25Ib3N0RWxlbWVudCwgcmlnaHRJY29uQ2xhc3NOYW1lKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpY29uSW5kZXggPSBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgICAgICAgIChub2RlKSA9PiBub2RlID09PSBpY29uSG9zdEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaWNvbkluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGljb25Ib3N0RWxlbWVudCwgbGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGJ1dHRvbkxlZnRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpY29uSW5kZXggPT09IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhpY29uSG9zdEVsZW1lbnQsIHJpZ2h0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uUmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY2xhc3MgS2JxQnV0dG9uQmFzZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG59XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgY29uc3QgS2JxQnV0dG9uTWl4aW5CYXNlOiBIYXNUYWJJbmRleEN0b3IgJiBDYW5Db2xvckN0b3IgJlxuICAgIHR5cGVvZiBLYnFCdXR0b25CYXNlID0gbWl4aW5UYWJJbmRleChtaXhpbkNvbG9yKEticUJ1dHRvbkJhc2UsIEticUNvbXBvbmVudENvbG9ycy5Db250cmFzdEZhZGUpKTtcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1trYnEtYnV0dG9uXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGlucHV0czogWydjb2xvcicsICd0YWJJbmRleCddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAgICAgJ1thdHRyLnRhYkluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgICAgICdbY2xhc3NdJzogJ2ticVN0eWxlJyxcblxuICAgICAgICAnKGZvY3VzKSc6ICdvbkZvY3VzKCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ29uQmx1cigpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxQnV0dG9uIGV4dGVuZHMgS2JxQnV0dG9uTWl4aW5CYXNlIGltcGxlbWVudHMgT25EZXN0cm95LCBDYW5EaXNhYmxlLCBDYW5Db2xvciB7XG4gICAgaGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGticVN0eWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBga2JxLWJ1dHRvbl8ke3RoaXMuX2ticVN0eWxlfWA7XG4gICAgfVxuXG4gICAgc2V0IGticVN0eWxlKHZhbHVlOiBzdHJpbmcgfCBLYnFCdXR0b25TdHlsZXMpIHtcbiAgICAgICAgdGhpcy5fa2JxU3R5bGUgPSB2YWx1ZSB8fCBLYnFCdXR0b25TdHlsZXMuRmlsbGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2ticVN0eWxlOiBzdHJpbmcgfCBLYnFCdXR0b25TdHlsZXMgPSBLYnFCdXR0b25TdHlsZXMuRmlsbGVkO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPyB0aGlzLnN0b3BGb2N1c01vbml0b3IoKSA6IHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsIHByaXZhdGUgc3R5bGVyOiBLYnFCdXR0b25Dc3NTdHlsZXIpIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZik7XG5cbiAgICAgICAgdGhpcy5ydW5Gb2N1c01vbml0b3IoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdG9wRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgb25Gb2N1cygkZXZlbnQpIHtcbiAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldEhvc3RFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5mb2N1cygpO1xuICAgIH1cblxuICAgIGZvY3VzVmlhS2V5Ym9hcmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSwgJ2tleWJvYXJkJyk7XG4gICAgfVxuXG4gICAgaGFsdERpc2FibGVkRXZlbnRzKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9qZWN0Q29udGVudENoYW5nZWQoKSB7XG4gICAgICAgIHRoaXMuc3R5bGVyLnVwZGF0ZUNsYXNzTW9kaWZpZXJGb3JJY29ucygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcnVuRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BGb2N1c01vbml0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJrYnEtYnV0dG9uLXdyYXBwZXJcIiAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwicHJvamVjdENvbnRlbnRDaGFuZ2VkKClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJrYnEtYnV0dG9uLW92ZXJsYXlcIiAoY2xpY2spPVwiaGFsdERpc2FibGVkRXZlbnRzKCRldmVudClcIj48L2Rpdj5cbiJdfQ==
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUVWLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFFZixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsVUFBVSxFQUNWLGFBQWEsRUFLYixrQkFBa0IsRUFDckIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFHbEQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUN2QixvQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBbUIsQ0FBQTtJQUNuQiw4Q0FBMkIsQ0FBQTtBQUMvQixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFHRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsc0JBQXNCLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsdUJBQXVCLENBQUM7QUFFaEUsTUFBTSxDQUFD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QUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVk7UUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRSxDQUFDO2lJQWpGUSxTQUFTO3FIQUFULFNBQVMsMlhDN0l0Qiw4TUFJQTs7MkZEeUlhLFNBQVM7a0JBakJyQixTQUFTOytCQUNJLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxVQUM3QixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsUUFDdkI7d0JBQ0YsaUJBQWlCLEVBQUUsa0JBQWtCO3dCQUNyQyxzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyxpQkFBaUIsRUFBRSxVQUFVO3dCQUM3QixTQUFTLEVBQUUsVUFBVTt3QkFFckIsU0FBUyxFQUFFLGlCQUFpQjt3QkFDNUIsUUFBUSxFQUFFLFVBQVU7cUJBQ3ZCOzBKQU1HLFFBQVE7c0JBRFgsS0FBSztnQkFZRixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIFJlbmRlcmVyMixcbiAgICBRdWVyeUxpc3QsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgU2tpcFNlbGYsXG4gICAgSW5wdXQsXG4gICAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgbWl4aW5Db2xvcixcbiAgICBtaXhpblRhYkluZGV4LFxuICAgIENhbkNvbG9yLFxuICAgIENhbkRpc2FibGUsXG4gICAgQ2FuQ29sb3JDdG9yLFxuICAgIEhhc1RhYkluZGV4Q3RvcixcbiAgICBLYnFDb21wb25lbnRDb2xvcnNcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxSWNvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcblxuXG5leHBvcnQgZW51bSBLYnFCdXR0b25TdHlsZXMge1xuICAgIEZpbGxlZCA9ICdmaWxsZWQnLFxuICAgIE91dGxpbmUgPSAnb3V0bGluZScsXG4gICAgVHJhbnNwYXJlbnQgPSAndHJhbnNwYXJlbnQnXG59XG5cblxuZXhwb3J0IGNvbnN0IGxlZnRJY29uQ2xhc3NOYW1lID0gJ2ticS1pY29uX2xlZnQnO1xuZXhwb3J0IGNvbnN0IHJpZ2h0SWNvbkNsYXNzTmFtZSA9ICdrYnEtaWNvbl9yaWdodCc7XG5cbmV4cG9ydCBjb25zdCBidXR0b25MZWZ0SWNvbkNsYXNzTmFtZSA9ICdrYnEtYnV0dG9uLWljb25fbGVmdCc7XG5leHBvcnQgY29uc3QgYnV0dG9uUmlnaHRJY29uQ2xhc3NOYW1lID0gJ2ticS1idXR0b24taWNvbl9yaWdodCc7XG5cbmV4cG9ydCBjb25zdCBnZXROb2Rlc1dpdGhvdXRDb21tZW50cyA9IChub2RlczogTm9kZUxpc3QpOiBOb2RlW10gPT4ge1xuICAgIGNvbnN0IENPTU1FTlRfTk9ERSA9IDg7XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbShub2RlcykuZmlsdGVyKChub2RlKSA9PiBub2RlLm5vZGVUeXBlICE9PSBDT01NRU5UX05PREUpO1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdba2JxLWJ1dHRvbl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5rYnEtYnV0dG9uXSc6ICchaXNJY29uQnV0dG9uJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtYnV0dG9uLWljb25dJzogJ2lzSWNvbkJ1dHRvbidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUJ1dHRvbkNzc1N0eWxlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBDb250ZW50Q2hpbGRyZW4oKGZvcndhcmRSZWYoKCkgPT4gS2JxSWNvbikpKSBpY29uczogUXVlcnlMaXN0PEticUljb24+O1xuXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBpc0ljb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgQFNraXBTZWxmKCkgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNb2RpZmllckZvckljb25zKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2xhc3NNb2RpZmllckZvckljb25zKCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uTGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uUmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgdGhpcy5pY29ucy5tYXAoKGl0ZW0pID0+IGl0ZW0uZ2V0SG9zdEVsZW1lbnQoKSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChpY29uSG9zdEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGljb25Ib3N0RWxlbWVudCwgbGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaWNvbkhvc3RFbGVtZW50LCByaWdodEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgdHdvSWNvbnMgPSAyO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzID0gZ2V0Tm9kZXNXaXRob3V0Q29tbWVudHMoXG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmticS1idXR0b24td3JhcHBlcicpIS5jaGlsZE5vZGVzIGFzIE5vZGVMaXN0XG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudElzSWNvbkJ1dHRvblZhbHVlID0gISF0aGlzLmljb25zLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5pY29ucy5sZW5ndGggPT09IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMubGVuZ3RoICYmIHRoaXMuaWNvbnMubGVuZ3RoIDw9IHR3b0ljb25zO1xuXG4gICAgICAgIGlmIChjdXJyZW50SXNJY29uQnV0dG9uVmFsdWUgIT09IHRoaXMuaXNJY29uQnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLmlzSWNvbkJ1dHRvbiA9IGN1cnJlbnRJc0ljb25CdXR0b25WYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmljb25zLmxlbmd0aCAmJiBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbnMubWFwKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGljb25Ib3N0RWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpY29uSW5kZXggPSBmaWx0ZXJlZE5vZGVzV2l0aG91dENvbW1lbnRzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAgICAgICAgIChub2RlKSA9PiBub2RlID09PSBpY29uSG9zdEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaWNvbkluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGljb25Ib3N0RWxlbWVudCwgbGVmdEljb25DbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGJ1dHRvbkxlZnRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpY29uSW5kZXggPT09IGZpbHRlcmVkTm9kZXNXaXRob3V0Q29tbWVudHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhpY29uSG9zdEVsZW1lbnQsIHJpZ2h0SWNvbkNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYnV0dG9uUmlnaHRJY29uQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNsYXNzIEticUJ1dHRvbkJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IEticUJ1dHRvbk1peGluQmFzZTogSGFzVGFiSW5kZXhDdG9yICYgQ2FuQ29sb3JDdG9yICZcbiAgICB0eXBlb2YgS2JxQnV0dG9uQmFzZSA9IG1peGluVGFiSW5kZXgobWl4aW5Db2xvcihLYnFCdXR0b25CYXNlLCBLYnFDb21wb25lbnRDb2xvcnMuQ29udHJhc3RGYWRlKSk7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdba2JxLWJ1dHRvbl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBpbnB1dHM6IFsnY29sb3InLCAndGFiSW5kZXgnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgICAgICdbYXR0ci50YWJJbmRleF0nOiAndGFiSW5kZXgnLFxuICAgICAgICAnW2NsYXNzXSc6ICdrYnFTdHlsZScsXG5cbiAgICAgICAgJyhmb2N1cyknOiAnb25Gb2N1cygkZXZlbnQpJyxcbiAgICAgICAgJyhibHVyKSc6ICdvbkJsdXIoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticUJ1dHRvbiBleHRlbmRzIEticUJ1dHRvbk1peGluQmFzZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQ2FuRGlzYWJsZSwgQ2FuQ29sb3Ige1xuICAgIGhhc0ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBrYnFTdHlsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYGticS1idXR0b25fJHt0aGlzLl9rYnFTdHlsZX1gO1xuICAgIH1cblxuICAgIHNldCBrYnFTdHlsZSh2YWx1ZTogc3RyaW5nIHwgS2JxQnV0dG9uU3R5bGVzKSB7XG4gICAgICAgIHRoaXMuX2ticVN0eWxlID0gdmFsdWUgfHwgS2JxQnV0dG9uU3R5bGVzLkZpbGxlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9rYnFTdHlsZTogc3RyaW5nIHwgS2JxQnV0dG9uU3R5bGVzID0gS2JxQnV0dG9uU3R5bGVzLkZpbGxlZDtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID8gdGhpcy5zdG9wRm9jdXNNb25pdG9yKCkgOiB0aGlzLnJ1bkZvY3VzTW9uaXRvcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLCBwcml2YXRlIHN0eWxlcjogS2JxQnV0dG9uQ3NzU3R5bGVyKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuXG4gICAgICAgIHRoaXMucnVuRm9jdXNNb25pdG9yKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3RvcEZvY3VzTW9uaXRvcigpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoJGV2ZW50KSB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXRIb3N0RWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBmb2N1c1ZpYUtleWJvYXJkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmdldEhvc3RFbGVtZW50KCksICdrZXlib2FyZCcpO1xuICAgIH1cblxuICAgIGhhbHREaXNhYmxlZEV2ZW50cyhldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvamVjdENvbnRlbnRDaGFuZ2VkKCkge1xuICAgICAgICB0aGlzLnN0eWxlci51cGRhdGVDbGFzc01vZGlmaWVyRm9ySWNvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ1bkZvY3VzTW9uaXRvcigpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3IubW9uaXRvcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wRm9jdXNNb25pdG9yKCkge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwia2JxLWJ1dHRvbi13cmFwcGVyXCIgKGNka09ic2VydmVDb250ZW50KT1cInByb2plY3RDb250ZW50Q2hhbmdlZCgpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwia2JxLWJ1dHRvbi1vdmVybGF5XCIgKGNsaWNrKT1cImhhbHREaXNhYmxlZEV2ZW50cygkZXZlbnQpXCI+PC9kaXY+XG4iXX0=
|
package/esm2022/core/version.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Version } from '@angular/core';
|
|
2
|
-
export const VERSION = new Version('16.0.0-beta.
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
export const VERSION = new Version('16.0.0-beta.12+sha-9edb2bb');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29yZS92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHeEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZXJzaW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBuZXcgVmVyc2lvbignMTYuMC4wLWJldGEuMTIrc2hhLTllZGIyYmInKTtcbiJdfQ==
|
|
@@ -547,10 +547,10 @@ export class KbqNavbarToggle extends KbqTooltipTrigger {
|
|
|
547
547
|
return this.document?.defaultView || window;
|
|
548
548
|
}
|
|
549
549
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: KbqNavbarToggle, deps: [{ token: i1.KbqVerticalNavbar }, { token: i0.ChangeDetectorRef }, { token: i3.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i3.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: KBQ_TOOLTIP_SCROLL_STRATEGY }, { token: i4.Directionality, optional: true }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
550
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqNavbarToggle, selector: "kbq-navbar-toggle", inputs: { content: ["
|
|
550
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: KbqNavbarToggle, selector: "kbq-navbar-toggle", inputs: { content: ["kbqCollapsedTooltip", "content"] }, host: { listeners: { "keydown": "onKeydown($event)", "click": "toggle()", "touchend": "handleTouchend()" }, properties: { "class.kbq-tooltip_open": "isOpen" }, classAttribute: "kbq-navbar-item kbq-navbar-toggle kbq-vertical" }, queries: [{ propertyName: "customIcon", first: true, predicate: KbqIcon, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
551
551
|
<i kbq-icon
|
|
552
|
-
[class.
|
|
553
|
-
[class.
|
|
552
|
+
[class.mc-angle-left-M_24]="navbar.expanded"
|
|
553
|
+
[class.mc-angle-right-M_24]="!navbar.expanded"
|
|
554
554
|
*ngIf="!customIcon">
|
|
555
555
|
</i>
|
|
556
556
|
|
|
@@ -567,8 +567,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
567
567
|
type: Component,
|
|
568
568
|
args: [{ selector: 'kbq-navbar-toggle', template: `
|
|
569
569
|
<i kbq-icon
|
|
570
|
-
[class.
|
|
571
|
-
[class.
|
|
570
|
+
[class.mc-angle-left-M_24]="navbar.expanded"
|
|
571
|
+
[class.mc-angle-right-M_24]="!navbar.expanded"
|
|
572
572
|
*ngIf="!customIcon">
|
|
573
573
|
</i>
|
|
574
574
|
|
|
@@ -601,6 +601,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
|
|
|
601
601
|
args: [KbqIcon]
|
|
602
602
|
}], content: [{
|
|
603
603
|
type: Input,
|
|
604
|
-
args: ['
|
|
604
|
+
args: ['kbqCollapsedTooltip']
|
|
605
605
|
}] } });
|
|
606
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixRQUFRLEVBRVIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7O0FBaUJoRSxNQUFNLE9BQU8sYUFBYTtJQVIxQjtRQVNhLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0tBQzdDO2lJQUZZLGFBQWE7cUhBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFSekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGlCQUFpQjt3QkFDeEIsY0FBYyxFQUFFLG9CQUFvQjt3QkFDcEMsY0FBYyxFQUFFLHFCQUFxQjtxQkFDeEM7aUJBQ0o7O0FBWUQsTUFBTSxPQUFPLGNBQWM7aUlBQWQsY0FBYztxSEFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrREFBa0Q7b0JBQzVELElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsa0JBQWtCO3FCQUM1QjtpQkFDSjs7QUFjRCxNQUFNLE9BQU8sY0FBYztJQU12QixJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBYmpDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRzFDLG9CQUFlLEdBQVksS0FBSyxDQUFDO0lBVVksQ0FBQztJQUU5QyxvQkFBb0I7UUFDaEIsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFbEcsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELGtCQUFrQjtRQUNkLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN6RCxDQUFDO2lJQTdCUSxjQUFjO3FIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBVjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLGdDQUFnQyxFQUFFLGlCQUFpQjt3QkFFbkQsY0FBYyxFQUFFLG9CQUFvQjt3QkFDcEMsY0FBYyxFQUFFLHFCQUFxQjtxQkFDeEM7aUJBQ0o7O0FBeUNELE1BQU0sT0FBTyxpQkFBaUI7SUFLMUIsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNqRyxDQUFDO0lBRUQsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVpqQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQVlHLENBQUM7SUFFOUMsb0JBQW9CO1FBQ2hCLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDekQsQ0FBQztpSUF2QlEsaUJBQWlCO3FIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRDQUE0QztvQkFDdEQsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxxQkFBcUI7d0JBQzVCLGNBQWMsRUFBRSxvQkFBb0I7d0JBQ3BDLGNBQWMsRUFBRSxxQkFBcUI7cUJBQ3hDO2lCQUNKOztBQXdDRCxNQUFNLE9BQU8sY0FBYztJQU12QixJQUFJLFFBQVE7UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBSUQsWUFBZ0MsTUFBeUI7UUFBekIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFSekQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQU1SLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBR3hDLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxLQUFLLENBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQVksRUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQVksQ0FDakQ7YUFDQSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYTthQUNyQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztpSUE5QlEsY0FBYztxSEFBZCxjQUFjLDRNQUNULGFBQWEsd0VBQ2IsY0FBYyw4RUFYbEI7OztLQUdUOzsyRkFNUSxjQUFjO2tCQVoxQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRTs7O0tBR1Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLHFCQUFxQixFQUFFLFNBQVM7cUJBQ25DO2lCQUNKOzswQkFhZ0IsUUFBUTs0Q0FYUSxJQUFJO3NCQUFoQyxZQUFZO3VCQUFDLGFBQWE7Z0JBQ0csS0FBSztzQkFBbEMsWUFBWTt1QkFBQyxjQUFjOztBQXNDaEMsTUFBTSxPQUFPLGdCQUFnQjtpSUFBaEIsZ0JBQWdCO3FIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxvQkFBb0I7cUJBQzlCO2lCQUNKOztBQWtCRCxNQUFNLE9BQU8sc0JBQXNCO0lBSy9CLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBUUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBSUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFVO1FBQ25CLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsQyxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBSUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUNZLFVBQW1DLEVBQ25DLGNBQWlDLEVBQ2pDLFlBQTBCLEVBQzFCLE1BQWM7UUFIZCxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXRDakIsWUFBTyxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO1FBRXJELFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBK0IsQ0FBQztRQVVyRCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBZ0IzQixjQUFTLEdBQUcsS0FBSyxDQUFDO0lBV3ZCLENBQUM7SUFFSixrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQXdCO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVyQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRW5DLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBb0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFL0MsSUFBSSxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUVuQyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSTtRQUNBLDRGQUE0RjtRQUM1RixzRkFBc0Y7UUFDdEYsNEZBQTRGO1FBQzVGLDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7YUFDZixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBRXZCLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBRXJCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7b0JBQUUsT0FBTztpQkFBRTtnQkFFdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO2lJQTFIUSxzQkFBc0I7cUhBQXRCLHNCQUFzQiwyZEFDakIsY0FBYyx5RUFFZCxTQUFTOzsyRkFIZCxzQkFBc0I7a0JBZGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDZGQUE2RjtvQkFDdkcsSUFBSSxFQUFFO3dCQUNGLGlCQUFpQixFQUFFLFVBQVU7d0JBQzdCLGlCQUFpQixFQUFFLGtCQUFrQjt3QkFFckMsS0FBSyxFQUFFLDJCQUEyQjt3QkFDbEMsZ0NBQWdDLEVBQUUsUUFBUTt3QkFDMUMsc0JBQXNCLEVBQUUsVUFBVTt3QkFFbEMsU0FBUyxFQUFFLGtCQUFrQjt3QkFDN0IsUUFBUSxFQUFFLFFBQVE7cUJBQ3JCO2lCQUNKO2lMQUVpQyxLQUFLO3NCQUFsQyxZQUFZO3VCQUFDLGNBQWM7Z0JBRUgsTUFBTTtzQkFBOUIsWUFBWTt1QkFBQyxTQUFTO2dCQXVCbkIsUUFBUTtzQkFEWCxLQUFLOztBQStHVixNQUFNLE9BQU8seUJBQXlCO0lBR2xDLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFJRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBSUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQU1ELFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF4Q2hDLFVBQUssR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBd0NPLENBQUM7SUFFN0Msb0JBQW9CO1FBQ2hCLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWxHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztpSUEvQ1EseUJBQXlCO3FIQUF6Qix5QkFBeUIsMFdBdUNwQixrQkFBa0I7OzJGQXZDdkIseUJBQXlCO2tCQVZyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw4RkFBOEY7b0JBQ3hHLElBQUksRUFBRTt3QkFDRixzQkFBc0IsRUFBRSxVQUFVO3dCQUNsQyx3QkFBd0IsRUFBRSxZQUFZO3dCQUV0QyxzQkFBc0IsRUFBRSx3QkFBd0I7d0JBQ2hELHVCQUF1QixFQUFFLHVCQUF1QjtxQkFDbkQ7aUJBQ0o7aUdBd0NxQyxNQUFNO3NCQUF2QyxZQUFZO3VCQUFDLGtCQUFrQjs7QUF5QnBDLE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBUWhELElBQ0ksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsS0FBYTtRQUNyQixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBRXRCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFFeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQU1ELElBQUksV0FBVztRQUNYLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFaEYsT0FBTyxHQUFHLGdCQUFnQixNQUFNLG1CQUFtQixFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQ0ksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBYztRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFJRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDekI7UUFFRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUkseUJBQXlCO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN6RyxDQUFDO0lBRUQsSUFBSSwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUYsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsWUFDVyxnQkFBMkMsRUFDM0MsbUJBQTJDLEVBQzFDLGlCQUFvQyxFQUM1QyxPQUFnQixFQUNoQixVQUFzQixFQUN0QixNQUFjLEVBQ2QsZ0JBQWtDLEVBQ2xDLFFBQTBCLEVBQ1csY0FBYyxFQUN2QyxTQUF5QixFQUNqQixlQUFtQyxFQUNuQyxLQUFxQjtRQUV6QyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQWJuRixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQzNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVF4QixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUF0RXJDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFvQm5CLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBc0RqQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7U0FDaEQ7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSzthQUN0QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1lBRWpELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFekMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxNQUFNLElBQUksQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLENBQUM7U0FDbkU7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtZQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFxQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQUUsT0FBTztTQUFFO1FBRXpDLElBQ0ksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLFVBQVU7WUFDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFDbEU7WUFDRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUU1QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixPQUFPLENBQUMsT0FBTyxFQUFFO2FBQ1osSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7aUlBaEtRLGFBQWEsbVFBaUdWLDJCQUEyQjtxSEFqRzlCLGFBQWEsdVhBQ1IsY0FBYywyRUFDZCxpQkFBaUIsdUVBRWpCLE9BQU8sb0dDOVp6QixpcUJBZ0JBOzsyRkQwWWEsYUFBYTtrQkFiekIsU0FBUzsrQkFDSSxvQ0FBb0MsWUFDcEMsZUFBZSxRQUVuQjt3QkFDRixLQUFLLEVBQUUsaUJBQWlCO3dCQUN4QixtQ0FBbUMsRUFBRSxhQUFhO3dCQUVsRCxXQUFXLEVBQUUsbUJBQW1CO3FCQUNuQyxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs7MEJBbUdoQyxNQUFNOzJCQUFDLDJCQUEyQjs7MEJBQ2xDLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUNSLFFBQVE7NENBbkdpQixLQUFLO3NCQUFsQyxZQUFZO3VCQUFDLGNBQWM7Z0JBQ0ssUUFBUTtzQkFBeEMsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBRVIsSUFBSTtzQkFBMUIsWUFBWTt1QkFBQyxPQUFPO2dCQUVaLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO3VCQUFDLFlBQVk7Z0JBa0NmLFdBQVc7c0JBRGQsS0FBSzs7QUF3SlYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO0lBR2xELElBQ0ksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBa0M7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFeEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFJRCxZQUNXLE1BQXlCLEVBQ3hCLGlCQUFvQyxFQUM1QyxPQUFnQixFQUNoQixVQUFzQixFQUN0QixNQUFjLEVBQ2QsZ0JBQWtDLEVBQ2xDLFFBQTBCLEVBQ1csY0FBYyxFQUN2QyxTQUF5QixFQUNDLFFBQWE7UUFFbkQsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFYbkYsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVFOLGFBQVEsR0FBUixRQUFRLENBQUs7UUFaN0MsYUFBUSxHQUFvQixlQUFlLENBQUMsT0FBTyxDQUFDO1FBOEM5RCxXQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQTtRQU1PLHdCQUFtQixHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFO1lBQ25ELElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDaEM7UUFDTCxDQUFDLENBQUE7UUE5Q0csSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBRXZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVoQyxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUMvQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXFCO1FBQzNCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFZCxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQzNCO1FBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNQLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVoQyxJQUFJLE1BQU0sRUFBRTtZQUNSLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDbkU7SUFDTCxDQUFDO0lBVU8sU0FBUztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDO0lBQ2hELENBQUM7aUlBMUVRLGVBQWUsMk5BNEJaLDJCQUEyQiwyREFFZixRQUFRO3FIQTlCdkIsZUFBZSw2WEFDVixPQUFPLHVFQTVCWDs7Ozs7Ozs7Ozs7Ozs7S0FjVDs7MkZBYVEsZUFBZTtrQkE3QjNCLFNBQVM7K0JBQ0ksbUJBQW1CLFlBQ25COzs7Ozs7Ozs7Ozs7OztLQWNULFFBRUs7d0JBQ0YsS0FBSyxFQUFFLGdEQUFnRDt3QkFDdkQsMEJBQTBCLEVBQUUsUUFBUTt3QkFFcEMsV0FBVyxFQUFFLG1CQUFtQjt3QkFDaEMsU0FBUyxFQUFFLFVBQVU7d0JBQ3JCLFlBQVksRUFBRSxrQkFBa0I7cUJBQ25DLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkE4QmhDLE1BQU07MkJBQUMsMkJBQTJCOzswQkFDbEMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzRDQTdCVCxVQUFVO3NCQUFoQyxZQUFZO3VCQUFDLE9BQU87Z0JBR2pCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgT3ZlcmxheSwgU2Nyb2xsRGlzcGF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAa29vYmlxL2Nkay9hMTF5JztcbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBOVU1QQURfRElWSURFLCBSSUdIVF9BUlJPVywgU0xBU0gsIFNQQUNFIH0gZnJvbSAnQGtvb2JpcS9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgS2JxQnV0dG9uLCBLYnFCdXR0b25Dc3NTdHlsZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IFBvcFVwUGxhY2VtZW50cywgUG9wVXBUcmlnZ2VycywgdG9Cb29sZWFuIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1ksIEticVRvb2x0aXBUcmlnZ2VyLCBUb29sdGlwTW9kaWZpZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBFTVBUWSwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgS2JxVmVydGljYWxOYXZiYXIgfSBmcm9tICcuL3ZlcnRpY2FsLW5hdmJhci5jb21wb25lbnQnO1xuXG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGludGVyZmFjZSBLYnFOYXZiYXJGb2N1c2FibGVJdGVtRXZlbnQge1xuICAgIGl0ZW06IEticU5hdmJhckZvY3VzYWJsZUl0ZW07XG59XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWxvZ28sIFtrYnEtbmF2YmFyLWxvZ29dJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1sb2dvJyxcbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJMb2dvIHtcbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbn1cblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbVtiZW50b10sIFtrYnEtbmF2YmFyLWl0ZW1dW2JlbnRvXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItYmVudG8nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJCZW50byB7fVxuXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci10aXRsZSwgW2ticS1uYXZiYXItdGl0bGVdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci10aXRsZScsXG4gICAgICAgICdbY2xhc3Mua2JxLW5hdmJhci10aXRsZV9zbWFsbF0nOiAnaXNUZXh0T3ZlcmZsb3duJyxcblxuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ2hvdmVyZWQubmV4dCh0cnVlKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnaG92ZXJlZC5uZXh0KGZhbHNlKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhclRpdGxlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcmVhZG9ubHkgaG92ZXJlZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBvdXRlckVsZW1lbnRXaWR0aDogbnVtYmVyO1xuICAgIGlzVGV4dE92ZXJmbG93bjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dDtcbiAgICB9XG5cbiAgICBnZXQgaXNPdmVyZmxvd24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCA+IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIGdldE91dGVyRWxlbWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIFt3aWR0aCwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHRdLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBhY2MgKyBwYXJzZUludChpdGVtKSB8fCAwLCAwKTtcbiAgICB9XG5cbiAgICBjaGVja1RleHRPdmVyZmxvd24oKSB7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1tYWdpYy1udW1iZXJzXG4gICAgICAgIHRoaXMuaXNUZXh0T3ZlcmZsb3duID0gdGhpcy50ZXh0Lmxlbmd0aCA+IDE4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdXRlckVsZW1lbnRXaWR0aCA9IHRoaXMuZ2V0T3V0ZXJFbGVtZW50V2lkdGgoKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci1zdWJ0aXRsZSwgW2ticS1uYXZiYXItc3VidGl0bGVdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1zdWJ0aXRsZScsXG4gICAgICAgICcobW91c2VlbnRlciknOiAnaG92ZXJlZC5uZXh0KHRydWUpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdob3ZlcmVkLm5leHQoZmFsc2UpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyU3ViVGl0bGUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIG91dGVyRWxlbWVudFdpZHRoOiBudW1iZXI7XG5cbiAgICBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0O1xuICAgIH1cblxuICAgIGdldCBpc092ZXJmbG93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoID4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgZ2V0T3V0ZXJFbGVtZW50V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHQgfSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gW3dpZHRoLCBtYXJnaW5MZWZ0LCBtYXJnaW5SaWdodF0ucmVkdWNlKChhY2MsIGl0ZW0pID0+IGFjYyArIHBhcnNlSW50KGl0ZW0pIHx8IDAsIDApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdXRlckVsZW1lbnRXaWR0aCA9IHRoaXMuZ2V0T3V0ZXJFbGVtZW50V2lkdGgoKTtcbiAgICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWJyYW5kLCBba2JxLW5hdmJhci1icmFuZF0nLFxuICAgIGV4cG9ydEFzOiAna2JxTmF2YmFyQnJhbmQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1uYXZiYXItaXRlbV9fb3ZlcmxheVwiPjwvZGl2PlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItYnJhbmQnLFxuICAgICAgICAnW2NsYXNzLmticS1ob3ZlcmVkXSc6ICdob3ZlcmVkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyQnJhbmQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFyTG9nbykgbG9nbzogS2JxTmF2YmFyTG9nbztcbiAgICBAQ29udGVudENoaWxkKEticU5hdmJhclRpdGxlKSB0aXRsZTogS2JxTmF2YmFyVGl0bGU7XG5cbiAgICBob3ZlcmVkID0gZmFsc2U7XG5cbiAgICBnZXQgaGFzQmVudG8oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubmF2YmFyPy5iZW50bztcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIG5hdmJhcjogS2JxVmVydGljYWxOYXZiYXIpIHtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5sb2dvID8gdGhpcy5sb2dvLmhvdmVyZWQgOiBFTVBUWSBhcyBhbnksXG4gICAgICAgICAgICB0aGlzLnRpdGxlID8gdGhpcy50aXRsZS5ob3ZlcmVkIDogRU1QVFkgYXMgYW55XG4gICAgICAgIClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuaG92ZXJlZCA9ICEhdmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF2YmFyPy5hbmltYXRpb25Eb25lXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudGl0bGU/LmNoZWNrVGV4dE92ZXJmbG93bigpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItZGl2aWRlcicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItZGl2aWRlcidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhckRpdmlkZXIge31cblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbSwgW2ticS1uYXZiYXItaXRlbV0sIGticS1uYXZiYXItYnJhbmQsIFtrYnEtbmF2YmFyLWJyYW5kXSwga2JxLW5hdmJhci10b2dnbGUnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG5cbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLWZvY3VzYWJsZS1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtbmF2YmFyLWl0ZW1fYnV0dG9uXSc6ICdidXR0b24nLFxuICAgICAgICAnW2NsYXNzLmticS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuXG4gICAgICAgICcoZm9jdXMpJzogJ29uRm9jdXNIYW5kbGVyKCknLFxuICAgICAgICAnKGJsdXIpJzogJ2JsdXIoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhckZvY3VzYWJsZUl0ZW0gaW1wbGVtZW50cyBJRm9jdXNhYmxlT3B0aW9uLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFyVGl0bGUpIHRpdGxlOiBLYnFOYXZiYXJUaXRsZTtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxQnV0dG9uKSBidXR0b246IEticUJ1dHRvbjtcblxuICAgIGdldCB0b29sdGlwKCk6IEticVRvb2x0aXBUcmlnZ2VyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdG9vbHRpcDogS2JxVG9vbHRpcFRyaWdnZXI7XG5cbiAgICByZWFkb25seSBvbkZvY3VzID0gbmV3IFN1YmplY3Q8S2JxTmF2YmFyRm9jdXNhYmxlSXRlbUV2ZW50PigpO1xuXG4gICAgcmVhZG9ubHkgb25CbHVyID0gbmV3IFN1YmplY3Q8S2JxTmF2YmFyRm9jdXNhYmxlSXRlbUV2ZW50PigpO1xuXG4gICAgZ2V0IGhhc0ZvY3VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmJ1dHRvbj8uaGFzRm9jdXMgfHwgdGhpcy5faGFzRm9jdXM7XG4gICAgfVxuXG4gICAgc2V0IGhhc0ZvY3VzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2hhc0ZvY3VzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0b0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3VmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5idXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgc2V0VG9vbHRpcCh2YWx1ZTogS2JxVG9vbHRpcFRyaWdnZXIpIHtcbiAgICAgICAgdGhpcy5fdG9vbHRpcCA9IHZhbHVlO1xuICAgIH1cblxuICAgIG9uRm9jdXNIYW5kbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmhhc0ZvY3VzKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMub25Gb2N1cy5uZXh0KHsgaXRlbTogdGhpcyB9KTtcblxuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXMob3JpZ2luPzogRm9jdXNPcmlnaW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5oYXNGb2N1cykgeyByZXR1cm47IH1cblxuICAgICAgICBpZiAob3JpZ2luID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmVsZW1lbnRSZWYsIG9yaWdpbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5idXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uLmZvY3VzVmlhS2V5Ym9hcmQoKTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwPy5zaG93KCk7XG4gICAgICAgIHRoaXMub25Gb2N1c0hhbmRsZXIoKTtcbiAgICB9XG5cbiAgICBibHVyKCk6IHZvaWQge1xuICAgICAgICAvLyBXaGVuIGFuaW1hdGlvbnMgYXJlIGVuYWJsZWQsIEFuZ3VsYXIgbWF5IGVuZCB1cCByZW1vdmluZyB0aGUgb3B0aW9uIGZyb20gdGhlIERPTSBhIGxpdHRsZVxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdXN1YWwsIGNhdXNpbmcgaXQgdG8gYmUgYmx1cnJlZCBhbmQgdGhyb3dpbmcgb2ZmIHRoZSBsb2dpYyBpbiB0aGUgbGlzdFxuICAgICAgICAvLyB0aGF0IG1vdmVzIGZvY3VzIG5vdCB0aGUgbmV4dCBpdGVtLiBUbyB3b3JrIGFyb3VuZCB0aGUgaXNzdWUsIHdlIGRlZmVyIG1hcmtpbmcgdGhlIG9wdGlvblxuICAgICAgICAvLyBhcyBub3QgZm9jdXNlZCB1bnRpbCB0aGUgbmV4dCB0aW1lIHRoZSB6b25lIHN0YWJpbGl6ZXMuXG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbHRpcD8uaGlkZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJ1dHRvbj8uaGFzRm9jdXMpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkJsdXIubmV4dCh7IGl0ZW06IHRoaXMgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50aXRsZT8udGV4dCB8fCAnJztcbiAgICB9XG59XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWl0ZW0sIFtrYnEtbmF2YmFyLWl0ZW1dLCBrYnEtbmF2YmFyLWRpdmlkZXIsIGticS1uYXZiYXItYnJhbmQsIFtrYnEtbmF2YmFyLWJyYW5kXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmticS12ZXJ0aWNhbF0nOiAndmVydGljYWwnLFxuICAgICAgICAnW2NsYXNzLmticS1ob3Jpem9udGFsXSc6ICdob3Jpem9udGFsJyxcblxuICAgICAgICAnW2NsYXNzLmticS1leHBhbmRlZF0nOiAndmVydGljYWwgJiYgIWNvbGxhcHNlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvbGxhcHNlZF0nOiAndmVydGljYWwgJiYgY29sbGFwc2VkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyUmVjdGFuZ2xlRWxlbWVudCB7XG4gICAgcmVhZG9ubHkgc3RhdGUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGhvcml6b250YWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIHNldCBob3Jpem9udGFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2hvcml6b250YWwgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnN0YXRlLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9ob3Jpem9udGFsOiBib29sZWFuO1xuXG4gICAgZ2V0IHZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmVydGljYWw7XG4gICAgfVxuXG4gICAgc2V0IHZlcnRpY2FsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3ZlcnRpY2FsID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmVydGljYWw6IGJvb2xlYW47XG5cbiAgICBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHNldCBjb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VkID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VkOiBib29sZWFuO1xuXG4gICAgQENvbnRlbnRDaGlsZChLYnFCdXR0b25Dc3NTdHlsZXIpIGJ1dHRvbjogS2JxQnV0dG9uQ3NzU3R5bGVyO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBnZXRPdXRlckVsZW1lbnRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBtYXJnaW5MZWZ0LCBtYXJnaW5SaWdodCB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIHJldHVybiBbd2lkdGgsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0XS5yZWR1Y2UoKGFjYywgaXRlbSkgPT4gYWNjICsgcGFyc2VJbnQoaXRlbSksIDApO1xuICAgIH1cbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbSwgW2ticS1uYXZiYXItaXRlbV0nLFxuICAgIGV4cG9ydEFzOiAna2JxTmF2YmFySXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtbmF2YmFyLWl0ZW1fY29sbGFwc2VkXSc6ICdpc0NvbGxhcHNlZCcsXG5cbiAgICAgICAgJyhrZXlkb3duKSc6ICdvbktleURvd24oJGV2ZW50KSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFySXRlbSBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIHtcbiAgICBAQ29udGVudENoaWxkKEticU5hdmJhclRpdGxlKSB0aXRsZTogS2JxTmF2YmFyVGl0bGU7XG4gICAgQENvbnRlbnRDaGlsZChLYnFOYXZiYXJTdWJUaXRsZSkgc3ViVGl0bGU6IEticU5hdmJhclN1YlRpdGxlO1xuXG4gICAgQENvbnRlbnRDaGlsZChLYnFJY29uKSBpY29uOiBLYnFJY29uO1xuXG4gICAgQElucHV0KCkgY29sbGFwc2VkVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdrYnFUcmlnZ2VyJylcbiAgICBnZXQgdHJpZ2dlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcjtcbiAgICB9XG5cbiAgICBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlciA9IHZhbHVlO1xuXG4gICAgICAgICAgICB0aGlzLmluaXRMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldCBjb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbGxhcHNlZCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbGxhcHNlZCA9IHZhbHVlO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRvb2x0aXAoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sbGFwc2VkU3RhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgaXNDb2xsYXBzZWQ6IGJvb2xlYW47XG5cbiAgICBnZXQgY3JvcHBlZFRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY3JvcHBlZFRpdGxlVGV4dCA9IHRoaXMudGl0bGU/LmlzT3ZlcmZsb3duID8gdGhpcy50aXRsZVRleHQgOiAnJztcbiAgICAgICAgY29uc3QgY3JvcHBlZFN1YlRpdGxlVGV4dCA9IHRoaXMuc3ViVGl0bGU/LmlzT3ZlcmZsb3duID8gdGhpcy5zdWJUaXRsZVRleHQgOiAnJztcblxuICAgICAgICByZXR1cm4gYCR7Y3JvcHBlZFRpdGxlVGV4dH1cXG4gJHtjcm9wcGVkU3ViVGl0bGVUZXh0fWA7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgY29sbGFwc2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xsYXBzYWJsZTtcbiAgICB9XG5cbiAgICBzZXQgY29sbGFwc2FibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2FibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNhYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGdldCB0aXRsZVRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZFRleHQgfHwgdGhpcy50aXRsZT8udGV4dCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBzdWJUaXRsZVRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YlRpdGxlPy50ZXh0IHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICghdGhpcy5pc0NvbGxhcHNlZCAmJiAhdGhpcy5oYXNDcm9wcGVkVGV4dCkgfHwgIXRoaXMudGl0bGU7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRHJvcERvd25UcmlnZ2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmRyb3Bkb3duVHJpZ2dlcjtcbiAgICB9XG5cbiAgICBnZXQgc2hvd1ZlcnRpY2FsRHJvcERvd25BbmdsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmJlbnRvICYmIHRoaXMuaGFzRHJvcERvd25UcmlnZ2VyICYmIHRoaXMucmVjdGFuZ2xlRWxlbWVudC52ZXJ0aWNhbCAmJiAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0hvcml6b250YWxEcm9wRG93bkFuZ2xlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNEcm9wRG93blRyaWdnZXIgJiYgdGhpcy5yZWN0YW5nbGVFbGVtZW50Lmhvcml6b250YWwgJiYgIXRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0Nyb3BwZWRUZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy50aXRsZT8uaXNPdmVyZmxvd24gfHwgdGhpcy5zdWJUaXRsZT8uaXNPdmVyZmxvd24pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVjdGFuZ2xlRWxlbWVudDogS2JxTmF2YmFyUmVjdGFuZ2xlRWxlbWVudCxcbiAgICAgICAgcHVibGljIG5hdmJhckZvY3VzYWJsZUl0ZW06IEticU5hdmJhckZvY3VzYWJsZUl0ZW0sXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgaG9zdFZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoS0JRX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneSxcbiAgICAgICAgQE9wdGlvbmFsKCkgZGlyZWN0aW9uOiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkcm9wZG93blRyaWdnZXI6IEticURyb3Bkb3duVHJpZ2dlcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBiZW50bzogS2JxTmF2YmFyQmVudG9cbiAgICApIHtcbiAgICAgICAgc3VwZXIob3ZlcmxheSwgZWxlbWVudFJlZiwgbmdab25lLCBzY3JvbGxEaXNwYXRjaGVyLCBob3N0Vmlldywgc2Nyb2xsU3RyYXRlZ3ksIGRpcmVjdGlvbik7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzRHJvcERvd25UcmlnZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duVHJpZ2dlci5vcGVuQnlBcnJvd0Rvd24gPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVjdGFuZ2xlRWxlbWVudC5zdGF0ZVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSB0aGlzLnJlY3RhbmdsZUVsZW1lbnQuY29sbGFwc2VkO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl90cmlnZ2VyID0gYCR7UG9wVXBUcmlnZ2Vycy5Ib3Zlcn1gO1xuXG4gICAgICAgIHRoaXMubmF2YmFyRm9jdXNhYmxlSXRlbS5zZXRUb29sdGlwKHRoaXMpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVUb29sdGlwKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudCA9IGAke3RoaXMudGl0bGVUZXh0fVxcbiAke3RoaXMuc3ViVGl0bGVUZXh0IHx8ICcnfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNDb2xsYXBzZWQgJiYgdGhpcy5oYXNDcm9wcGVkVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5jcm9wcGVkVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJlY3RhbmdsZUVsZW1lbnQudmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50ID0gUG9wVXBQbGFjZW1lbnRzLlJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXRUaXRsZVdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpdGxlLm91dGVyRWxlbWVudFdpZHRoO1xuICAgIH1cblxuICAgIG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Ryb3BEb3duVHJpZ2dlcikgeyByZXR1cm47IH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnJlY3RhbmdsZUVsZW1lbnQuaG9yaXpvbnRhbCAmJiAkZXZlbnQua2V5Q29kZSA9PT0gRE9XTl9BUlJPVyB8fFxuICAgICAgICAgICAgdGhpcy5yZWN0YW5nbGVFbGVtZW50LnZlcnRpY2FsICYmICRldmVudC5rZXlDb2RlID09PSBSSUdIVF9BUlJPV1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25UcmlnZ2VyLm9wZW5lZEJ5ID0gJ2tleWJvYXJkJztcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25UcmlnZ2VyLm9wZW4oKTtcblxuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvbGxhcHNlZFN0YXRlKCkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5pc0NvbGxhcHNlZCA9IHRoaXMuX2NvbGxhcHNlZCk7XG4gICAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci10b2dnbGUnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxpIGticS1pY29uXG4gICAgICAgICAgIFtjbGFzcy5rYnEtYW5nbGUtbGVmdC1NXzI0XT1cIm5hdmJhci5leHBhbmRlZFwiXG4gICAgICAgICAgIFtjbGFzcy5rYnEtYW5nbGUtcmlnaHQtTV8yNF09XCIhbmF2YmFyLmV4cGFuZGVkXCJcbiAgICAgICAgICAgKm5nSWY9XCIhY3VzdG9tSWNvblwiPlxuICAgICAgICA8L2k+XG5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ticS1pY29uXVwiPjwvbmctY29udGVudD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX190aXRsZVwiICpuZ0lmPVwibmF2YmFyLmV4cGFuZGVkXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJrYnEtbmF2YmFyLXRpdGxlXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX19vdmVybGF5XCI+PC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZiYXIuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLWl0ZW0ga2JxLW5hdmJhci10b2dnbGUga2JxLXZlcnRpY2FsJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtdG9vbHRpcF9vcGVuXSc6ICdpc09wZW4nLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlkb3duKCRldmVudCknLFxuICAgICAgICAnKGNsaWNrKSc6ICd0b2dnbGUoKScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhclRvZ2dsZSBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBAQ29udGVudENoaWxkKEticUljb24pIGN1c3RvbUljb246IEticUljb247XG5cbiAgICBASW5wdXQoJ21jQ29sbGFwc2VkVG9vbHRpcCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZiYXIuZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuRGVmYXVsdDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmF2YmFyOiBLYnFWZXJ0aWNhbE5hdmJhcixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgICBzY3JvbGxEaXNwYXRjaGVyOiBTY3JvbGxEaXNwYXRjaGVyLFxuICAgICAgICBob3N0VmlldzogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQEluamVjdChLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5LFxuICAgICAgICBAT3B0aW9uYWwoKSBkaXJlY3Rpb246IERpcmVjdGlvbmFsaXR5LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcbiAgICApIHtcbiAgICAgICAgc3VwZXIob3ZlcmxheSwgZWxlbWVudFJlZiwgbmdab25lLCBzY3JvbGxEaXNwYXRjaGVyLCBob3N0Vmlldywgc2Nyb2xsU3RyYXRlZ3ksIGRpcmVjdGlvbik7XG5cbiAgICAgICAgdGhpcy5wbGFjZW1lbnQgPSBQb3BVcFBsYWNlbWVudHMuUmlnaHQ7XG5cbiAgICAgICAgY29uc3Qgd2luZG93ID0gdGhpcy5nZXRXaW5kb3coKTtcblxuICAgICAgICBpZiAod2luZG93KSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLndpbmRvd1RvZ2dsZUhhbmRsZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChbU1BBQ0UsIEVOVEVSXS5pbmNsdWRlcygkZXZlbnQua2V5Q29kZSkpIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG5cbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIuaGFuZGxlS2V5ZG93bigkZXZlbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLmdldFdpbmRvdygpO1xuXG4gICAgICAgIGlmICh3aW5kb3cpIHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy53aW5kb3dUb2dnbGVIYW5kbGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZSA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5uYXZiYXIudG9nZ2xlKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFdpbmRvdygpOiBXaW5kb3cge1xuICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudD8uZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICAgIH1cblxuICAgIHByaXZhdGUgd2luZG93VG9nZ2xlSGFuZGxlciA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQuY3RybEtleSAmJiBbTlVNUEFEX0RJVklERSwgU0xBU0hdLmluY2x1ZGVzKGV2ZW50LmtleUNvZGUpKSB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4odGhpcy50b2dnbGUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ticS1pY29uXVwiPjwvbmctY29udGVudD5cblxuPGRpdiBjbGFzcz1cImticS1uYXZiYXItaXRlbV9fY29udGFpbmVyXCIgKm5nSWY9XCJ0aXRsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtbmF2YmFyLWl0ZW1fX3RpdGxlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1uYXZiYXItdGl0bGUsIFtrYnEtbmF2YmFyLXRpdGxlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLW5hdmJhci1zdWJ0aXRsZSwgW2ticS1uYXZiYXItc3VidGl0bGVdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGkgY2xhc3M9XCJrYnEtbmF2YmFyLWl0ZW1fX2Fycm93LWljb25cIiBrYnEtaWNvbj1cIm1jLWFuZ2xlLXJpZ2h0LU1fMjRcIiAqbmdJZj1cInNob3dWZXJ0aWNhbERyb3BEb3duQW5nbGVcIj48L2k+XG4gICAgPGkgY2xhc3M9XCJrYnEtbmF2YmFyLWl0ZW1fX2Fycm93LWljb25cIiBrYnEtaWNvbj1cIm1jLWFuZ2xlLWRvd24tU18xNlwiICpuZ0lmPVwic2hvd0hvcml6b250YWxEcm9wRG93bkFuZ2xlXCI+PC9pPlxuXG48L2Rpdj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX19vdmVybGF5XCI+PC9kaXY+XG4iXX0=
|
|
606
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFHSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixRQUFRLEVBRVIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8s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QUM7aUlBMUVRLGVBQWUsMk5BNEJaLDJCQUEyQiwyREFFZixRQUFRO3FIQTlCdkIsZUFBZSw4WEFDVixPQUFPLHVFQTVCWDs7Ozs7Ozs7Ozs7Ozs7S0FjVDs7MkZBYVEsZUFBZTtrQkE3QjNCLFNBQVM7K0JBQ0ksbUJBQW1CLFlBQ25COzs7Ozs7Ozs7Ozs7OztLQWNULFFBRUs7d0JBQ0YsS0FBSyxFQUFFLGdEQUFnRDt3QkFDdkQsMEJBQTBCLEVBQUUsUUFBUTt3QkFFcEMsV0FBVyxFQUFFLG1CQUFtQjt3QkFDaEMsU0FBUyxFQUFFLFVBQVU7d0JBQ3JCLFlBQVksRUFBRSxrQkFBa0I7cUJBQ25DLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkE4QmhDLE1BQU07MkJBQUMsMkJBQTJCOzswQkFDbEMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzRDQTdCVCxVQUFVO3NCQUFoQyxZQUFZO3VCQUFDLE9BQU87Z0JBR2pCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgT3ZlcmxheSwgU2Nyb2xsRGlzcGF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAa29vYmlxL2Nkay9hMTF5JztcbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBOVU1QQURfRElWSURFLCBSSUdIVF9BUlJPVywgU0xBU0gsIFNQQUNFIH0gZnJvbSAnQGtvb2JpcS9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgS2JxQnV0dG9uLCBLYnFCdXR0b25Dc3NTdHlsZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IFBvcFVwUGxhY2VtZW50cywgUG9wVXBUcmlnZ2VycywgdG9Cb29sZWFuIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLQlFfVE9PTFRJUF9TQ1JPTExfU1RSQVRFR1ksIEticVRvb2x0aXBUcmlnZ2VyLCBUb29sdGlwTW9kaWZpZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBFTVBUWSwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgS2JxVmVydGljYWxOYXZiYXIgfSBmcm9tICcuL3ZlcnRpY2FsLW5hdmJhci5jb21wb25lbnQnO1xuXG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGludGVyZmFjZSBLYnFOYXZiYXJGb2N1c2FibGVJdGVtRXZlbnQge1xuICAgIGl0ZW06IEticU5hdmJhckZvY3VzYWJsZUl0ZW07XG59XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWxvZ28sIFtrYnEtbmF2YmFyLWxvZ29dJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1sb2dvJyxcbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJMb2dvIHtcbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbn1cblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbVtiZW50b10sIFtrYnEtbmF2YmFyLWl0ZW1dW2JlbnRvXScsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItYmVudG8nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJCZW50byB7fVxuXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci10aXRsZSwgW2ticS1uYXZiYXItdGl0bGVdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci10aXRsZScsXG4gICAgICAgICdbY2xhc3Mua2JxLW5hdmJhci10aXRsZV9zbWFsbF0nOiAnaXNUZXh0T3ZlcmZsb3duJyxcblxuICAgICAgICAnKG1vdXNlZW50ZXIpJzogJ2hvdmVyZWQubmV4dCh0cnVlKScsXG4gICAgICAgICcobW91c2VsZWF2ZSknOiAnaG92ZXJlZC5uZXh0KGZhbHNlKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhclRpdGxlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcmVhZG9ubHkgaG92ZXJlZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBvdXRlckVsZW1lbnRXaWR0aDogbnVtYmVyO1xuICAgIGlzVGV4dE92ZXJmbG93bjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dDtcbiAgICB9XG5cbiAgICBnZXQgaXNPdmVyZmxvd24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCA+IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIGdldE91dGVyRWxlbWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIFt3aWR0aCwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHRdLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBhY2MgKyBwYXJzZUludChpdGVtKSB8fCAwLCAwKTtcbiAgICB9XG5cbiAgICBjaGVja1RleHRPdmVyZmxvd24oKSB7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1tYWdpYy1udW1iZXJzXG4gICAgICAgIHRoaXMuaXNUZXh0T3ZlcmZsb3duID0gdGhpcy50ZXh0Lmxlbmd0aCA+IDE4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdXRlckVsZW1lbnRXaWR0aCA9IHRoaXMuZ2V0T3V0ZXJFbGVtZW50V2lkdGgoKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci1zdWJ0aXRsZSwgW2ticS1uYXZiYXItc3VidGl0bGVdJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1zdWJ0aXRsZScsXG4gICAgICAgICcobW91c2VlbnRlciknOiAnaG92ZXJlZC5uZXh0KHRydWUpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdob3ZlcmVkLm5leHQoZmFsc2UpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyU3ViVGl0bGUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIG91dGVyRWxlbWVudFdpZHRoOiBudW1iZXI7XG5cbiAgICBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0O1xuICAgIH1cblxuICAgIGdldCBpc092ZXJmbG93bigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoID4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgZ2V0T3V0ZXJFbGVtZW50V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgeyB3aWR0aCwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHQgfSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gW3dpZHRoLCBtYXJnaW5MZWZ0LCBtYXJnaW5SaWdodF0ucmVkdWNlKChhY2MsIGl0ZW0pID0+IGFjYyArIHBhcnNlSW50KGl0ZW0pIHx8IDAsIDApO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdXRlckVsZW1lbnRXaWR0aCA9IHRoaXMuZ2V0T3V0ZXJFbGVtZW50V2lkdGgoKTtcbiAgICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWJyYW5kLCBba2JxLW5hdmJhci1icmFuZF0nLFxuICAgIGV4cG9ydEFzOiAna2JxTmF2YmFyQnJhbmQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1uYXZiYXItaXRlbV9fb3ZlcmxheVwiPjwvZGl2PlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItYnJhbmQnLFxuICAgICAgICAnW2NsYXNzLmticS1ob3ZlcmVkXSc6ICdob3ZlcmVkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyQnJhbmQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFyTG9nbykgbG9nbzogS2JxTmF2YmFyTG9nbztcbiAgICBAQ29udGVudENoaWxkKEticU5hdmJhclRpdGxlKSB0aXRsZTogS2JxTmF2YmFyVGl0bGU7XG5cbiAgICBob3ZlcmVkID0gZmFsc2U7XG5cbiAgICBnZXQgaGFzQmVudG8oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubmF2YmFyPy5iZW50bztcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIG5hdmJhcjogS2JxVmVydGljYWxOYXZiYXIpIHtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5sb2dvID8gdGhpcy5sb2dvLmhvdmVyZWQgOiBFTVBUWSBhcyBhbnksXG4gICAgICAgICAgICB0aGlzLnRpdGxlID8gdGhpcy50aXRsZS5ob3ZlcmVkIDogRU1QVFkgYXMgYW55XG4gICAgICAgIClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuaG92ZXJlZCA9ICEhdmFsdWUpO1xuXG4gICAgICAgIHRoaXMubmF2YmFyPy5hbmltYXRpb25Eb25lXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudGl0bGU/LmNoZWNrVGV4dE92ZXJmbG93bigpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItZGl2aWRlcicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItZGl2aWRlcidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhckRpdmlkZXIge31cblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbSwgW2ticS1uYXZiYXItaXRlbV0sIGticS1uYXZiYXItYnJhbmQsIFtrYnEtbmF2YmFyLWJyYW5kXSwga2JxLW5hdmJhci10b2dnbGUnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICd0YWJJbmRleCcsXG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG5cbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLWZvY3VzYWJsZS1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtbmF2YmFyLWl0ZW1fYnV0dG9uXSc6ICdidXR0b24nLFxuICAgICAgICAnW2NsYXNzLmticS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuXG4gICAgICAgICcoZm9jdXMpJzogJ29uRm9jdXNIYW5kbGVyKCknLFxuICAgICAgICAnKGJsdXIpJzogJ2JsdXIoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhckZvY3VzYWJsZUl0ZW0gaW1wbGVtZW50cyBJRm9jdXNhYmxlT3B0aW9uLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFyVGl0bGUpIHRpdGxlOiBLYnFOYXZiYXJUaXRsZTtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxQnV0dG9uKSBidXR0b246IEticUJ1dHRvbjtcblxuICAgIGdldCB0b29sdGlwKCk6IEticVRvb2x0aXBUcmlnZ2VyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdG9vbHRpcDogS2JxVG9vbHRpcFRyaWdnZXI7XG5cbiAgICByZWFkb25seSBvbkZvY3VzID0gbmV3IFN1YmplY3Q8S2JxTmF2YmFyRm9jdXNhYmxlSXRlbUV2ZW50PigpO1xuXG4gICAgcmVhZG9ubHkgb25CbHVyID0gbmV3IFN1YmplY3Q8S2JxTmF2YmFyRm9jdXNhYmxlSXRlbUV2ZW50PigpO1xuXG4gICAgZ2V0IGhhc0ZvY3VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmJ1dHRvbj8uaGFzRm9jdXMgfHwgdGhpcy5faGFzRm9jdXM7XG4gICAgfVxuXG4gICAgc2V0IGhhc0ZvY3VzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2hhc0ZvY3VzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0b0Jvb2xlYW4odmFsdWUpO1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3VmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5idXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgc2V0VG9vbHRpcCh2YWx1ZTogS2JxVG9vbHRpcFRyaWdnZXIpIHtcbiAgICAgICAgdGhpcy5fdG9vbHRpcCA9IHZhbHVlO1xuICAgIH1cblxuICAgIG9uRm9jdXNIYW5kbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmhhc0ZvY3VzKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMub25Gb2N1cy5uZXh0KHsgaXRlbTogdGhpcyB9KTtcblxuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXMob3JpZ2luPzogRm9jdXNPcmlnaW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5oYXNGb2N1cykgeyByZXR1cm47IH1cblxuICAgICAgICBpZiAob3JpZ2luID09PSAna2V5Ym9hcmQnKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLmVsZW1lbnRSZWYsIG9yaWdpbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5idXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uLmZvY3VzVmlhS2V5Ym9hcmQoKTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwPy5zaG93KCk7XG4gICAgICAgIHRoaXMub25Gb2N1c0hhbmRsZXIoKTtcbiAgICB9XG5cbiAgICBibHVyKCk6IHZvaWQge1xuICAgICAgICAvLyBXaGVuIGFuaW1hdGlvbnMgYXJlIGVuYWJsZWQsIEFuZ3VsYXIgbWF5IGVuZCB1cCByZW1vdmluZyB0aGUgb3B0aW9uIGZyb20gdGhlIERPTSBhIGxpdHRsZVxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdXN1YWwsIGNhdXNpbmcgaXQgdG8gYmUgYmx1cnJlZCBhbmQgdGhyb3dpbmcgb2ZmIHRoZSBsb2dpYyBpbiB0aGUgbGlzdFxuICAgICAgICAvLyB0aGF0IG1vdmVzIGZvY3VzIG5vdCB0aGUgbmV4dCBpdGVtLiBUbyB3b3JrIGFyb3VuZCB0aGUgaXNzdWUsIHdlIGRlZmVyIG1hcmtpbmcgdGhlIG9wdGlvblxuICAgICAgICAvLyBhcyBub3QgZm9jdXNlZCB1bnRpbCB0aGUgbmV4dCB0aW1lIHRoZSB6b25lIHN0YWJpbGl6ZXMuXG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbHRpcD8uaGlkZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJ1dHRvbj8uaGFzRm9jdXMpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkJsdXIubmV4dCh7IGl0ZW06IHRoaXMgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50aXRsZT8udGV4dCB8fCAnJztcbiAgICB9XG59XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWl0ZW0sIFtrYnEtbmF2YmFyLWl0ZW1dLCBrYnEtbmF2YmFyLWRpdmlkZXIsIGticS1uYXZiYXItYnJhbmQsIFtrYnEtbmF2YmFyLWJyYW5kXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmticS12ZXJ0aWNhbF0nOiAndmVydGljYWwnLFxuICAgICAgICAnW2NsYXNzLmticS1ob3Jpem9udGFsXSc6ICdob3Jpem9udGFsJyxcblxuICAgICAgICAnW2NsYXNzLmticS1leHBhbmRlZF0nOiAndmVydGljYWwgJiYgIWNvbGxhcHNlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvbGxhcHNlZF0nOiAndmVydGljYWwgJiYgY29sbGFwc2VkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyUmVjdGFuZ2xlRWxlbWVudCB7XG4gICAgcmVhZG9ubHkgc3RhdGUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGhvcml6b250YWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIHNldCBob3Jpem9udGFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2hvcml6b250YWwgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnN0YXRlLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9ob3Jpem9udGFsOiBib29sZWFuO1xuXG4gICAgZ2V0IHZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmVydGljYWw7XG4gICAgfVxuXG4gICAgc2V0IHZlcnRpY2FsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3ZlcnRpY2FsID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmVydGljYWw6IGJvb2xlYW47XG5cbiAgICBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHNldCBjb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2VkID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2VkOiBib29sZWFuO1xuXG4gICAgQENvbnRlbnRDaGlsZChLYnFCdXR0b25Dc3NTdHlsZXIpIGJ1dHRvbjogS2JxQnV0dG9uQ3NzU3R5bGVyO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBnZXRPdXRlckVsZW1lbnRXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB7IHdpZHRoLCBtYXJnaW5MZWZ0LCBtYXJnaW5SaWdodCB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIHJldHVybiBbd2lkdGgsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0XS5yZWR1Y2UoKGFjYywgaXRlbSkgPT4gYWNjICsgcGFyc2VJbnQoaXRlbSksIDApO1xuICAgIH1cbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbSwgW2ticS1uYXZiYXItaXRlbV0nLFxuICAgIGV4cG9ydEFzOiAna2JxTmF2YmFySXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtbmF2YmFyLWl0ZW1fY29sbGFwc2VkXSc6ICdpc0NvbGxhcHNlZCcsXG5cbiAgICAgICAgJyhrZXlkb3duKSc6ICdvbktleURvd24oJGV2ZW50KSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFySXRlbSBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIHtcbiAgICBAQ29udGVudENoaWxkKEticU5hdmJhclRpdGxlKSB0aXRsZTogS2JxTmF2YmFyVGl0bGU7XG4gICAgQENvbnRlbnRDaGlsZChLYnFOYXZiYXJTdWJUaXRsZSkgc3ViVGl0bGU6IEticU5hdmJhclN1YlRpdGxlO1xuXG4gICAgQENvbnRlbnRDaGlsZChLYnFJY29uKSBpY29uOiBLYnFJY29uO1xuXG4gICAgQElucHV0KCkgY29sbGFwc2VkVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KCdrYnFUcmlnZ2VyJylcbiAgICBnZXQgdHJpZ2dlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcjtcbiAgICB9XG5cbiAgICBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlciA9IHZhbHVlO1xuXG4gICAgICAgICAgICB0aGlzLmluaXRMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldCBjb2xsYXBzZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbGxhcHNlZCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbGxhcHNlZCA9IHZhbHVlO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRvb2x0aXAoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sbGFwc2VkU3RhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgaXNDb2xsYXBzZWQ6IGJvb2xlYW47XG5cbiAgICBnZXQgY3JvcHBlZFRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY3JvcHBlZFRpdGxlVGV4dCA9IHRoaXMudGl0bGU/LmlzT3ZlcmZsb3duID8gdGhpcy50aXRsZVRleHQgOiAnJztcbiAgICAgICAgY29uc3QgY3JvcHBlZFN1YlRpdGxlVGV4dCA9IHRoaXMuc3ViVGl0bGU/LmlzT3ZlcmZsb3duID8gdGhpcy5zdWJUaXRsZVRleHQgOiAnJztcblxuICAgICAgICByZXR1cm4gYCR7Y3JvcHBlZFRpdGxlVGV4dH1cXG4gJHtjcm9wcGVkU3ViVGl0bGVUZXh0fWA7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgY29sbGFwc2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xsYXBzYWJsZTtcbiAgICB9XG5cbiAgICBzZXQgY29sbGFwc2FibGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY29sbGFwc2FibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNhYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGdldCB0aXRsZVRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZFRleHQgfHwgdGhpcy50aXRsZT8udGV4dCB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldCBzdWJUaXRsZVRleHQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YlRpdGxlPy50ZXh0IHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICghdGhpcy5pc0NvbGxhcHNlZCAmJiAhdGhpcy5oYXNDcm9wcGVkVGV4dCkgfHwgIXRoaXMudGl0bGU7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRHJvcERvd25UcmlnZ2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmRyb3Bkb3duVHJpZ2dlcjtcbiAgICB9XG5cbiAgICBnZXQgc2hvd1ZlcnRpY2FsRHJvcERvd25BbmdsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmJlbnRvICYmIHRoaXMuaGFzRHJvcERvd25UcmlnZ2VyICYmIHRoaXMucmVjdGFuZ2xlRWxlbWVudC52ZXJ0aWNhbCAmJiAhdGhpcy5pc0NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0hvcml6b250YWxEcm9wRG93bkFuZ2xlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNEcm9wRG93blRyaWdnZXIgJiYgdGhpcy5yZWN0YW5nbGVFbGVtZW50Lmhvcml6b250YWwgJiYgIXRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0Nyb3BwZWRUZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy50aXRsZT8uaXNPdmVyZmxvd24gfHwgdGhpcy5zdWJUaXRsZT8uaXNPdmVyZmxvd24pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVjdGFuZ2xlRWxlbWVudDogS2JxTmF2YmFyUmVjdGFuZ2xlRWxlbWVudCxcbiAgICAgICAgcHVibGljIG5hdmJhckZvY3VzYWJsZUl0ZW06IEticU5hdmJhckZvY3VzYWJsZUl0ZW0sXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICAgICAgaG9zdFZpZXc6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIEBJbmplY3QoS0JRX1RPT0xUSVBfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneSxcbiAgICAgICAgQE9wdGlvbmFsKCkgZGlyZWN0aW9uOiBEaXJlY3Rpb25hbGl0eSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkcm9wZG93blRyaWdnZXI6IEticURyb3Bkb3duVHJpZ2dlcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBiZW50bzogS2JxTmF2YmFyQmVudG9cbiAgICApIHtcbiAgICAgICAgc3VwZXIob3ZlcmxheSwgZWxlbWVudFJlZiwgbmdab25lLCBzY3JvbGxEaXNwYXRjaGVyLCBob3N0Vmlldywgc2Nyb2xsU3RyYXRlZ3ksIGRpcmVjdGlvbik7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzRHJvcERvd25UcmlnZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duVHJpZ2dlci5vcGVuQnlBcnJvd0Rvd24gPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVjdGFuZ2xlRWxlbWVudC5zdGF0ZVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSB0aGlzLnJlY3RhbmdsZUVsZW1lbnQuY29sbGFwc2VkO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl90cmlnZ2VyID0gYCR7UG9wVXBUcmlnZ2Vycy5Ib3Zlcn1gO1xuXG4gICAgICAgIHRoaXMubmF2YmFyRm9jdXNhYmxlSXRlbS5zZXRUb29sdGlwKHRoaXMpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVUb29sdGlwKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudCA9IGAke3RoaXMudGl0bGVUZXh0fVxcbiAke3RoaXMuc3ViVGl0bGVUZXh0IHx8ICcnfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNDb2xsYXBzZWQgJiYgdGhpcy5oYXNDcm9wcGVkVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5jcm9wcGVkVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJlY3RhbmdsZUVsZW1lbnQudmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50ID0gUG9wVXBQbGFjZW1lbnRzLlJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXRUaXRsZVdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpdGxlLm91dGVyRWxlbWVudFdpZHRoO1xuICAgIH1cblxuICAgIG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Ryb3BEb3duVHJpZ2dlcikgeyByZXR1cm47IH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnJlY3RhbmdsZUVsZW1lbnQuaG9yaXpvbnRhbCAmJiAkZXZlbnQua2V5Q29kZSA9PT0gRE9XTl9BUlJPVyB8fFxuICAgICAgICAgICAgdGhpcy5yZWN0YW5nbGVFbGVtZW50LnZlcnRpY2FsICYmICRldmVudC5rZXlDb2RlID09PSBSSUdIVF9BUlJPV1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25UcmlnZ2VyLm9wZW5lZEJ5ID0gJ2tleWJvYXJkJztcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25UcmlnZ2VyLm9wZW4oKTtcblxuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvbGxhcHNlZFN0YXRlKCkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5pc0NvbGxhcHNlZCA9IHRoaXMuX2NvbGxhcHNlZCk7XG4gICAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci10b2dnbGUnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxpIGticS1pY29uXG4gICAgICAgICAgIFtjbGFzcy5tYy1hbmdsZS1sZWZ0LU1fMjRdPVwibmF2YmFyLmV4cGFuZGVkXCJcbiAgICAgICAgICAgW2NsYXNzLm1jLWFuZ2xlLXJpZ2h0LU1fMjRdPVwiIW5hdmJhci5leHBhbmRlZFwiXG4gICAgICAgICAgICpuZ0lmPVwiIWN1c3RvbUljb25cIj5cbiAgICAgICAgPC9pPlxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltrYnEtaWNvbl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1uYXZiYXItaXRlbV9fdGl0bGVcIiAqbmdJZj1cIm5hdmJhci5leHBhbmRlZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLW5hdmJhci10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1uYXZiYXItaXRlbV9fb3ZlcmxheVwiPjwvZGl2PlxuICAgIGAsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2YmFyLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1pdGVtIGticS1uYXZiYXItdG9nZ2xlIGticS12ZXJ0aWNhbCcsXG4gICAgICAgICdbY2xhc3Mua2JxLXRvb2x0aXBfb3Blbl0nOiAnaXNPcGVuJyxcblxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJyxcbiAgICAgICAgJyhjbGljayknOiAndG9nZ2xlKCknLFxuICAgICAgICAnKHRvdWNoZW5kKSc6ICdoYW5kbGVUb3VjaGVuZCgpJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJUb2dnbGUgZXh0ZW5kcyBLYnFUb29sdGlwVHJpZ2dlciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQENvbnRlbnRDaGlsZChLYnFJY29uKSBjdXN0b21JY29uOiBLYnFJY29uO1xuXG4gICAgQElucHV0KCdrYnFDb2xsYXBzZWRUb29sdGlwJylcbiAgICBnZXQgY29udGVudCgpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnQ7XG4gICAgfVxuXG4gICAgc2V0IGNvbnRlbnQoY29udGVudDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmJhci5leHBhbmRlZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbW9kaWZpZXI6IFRvb2x0aXBNb2RpZmllciA9IFRvb2x0aXBNb2RpZmllci5EZWZhdWx0O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuYXZiYXI6IEticVZlcnRpY2FsTmF2YmFyLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG4gICAgICAgIGhvc3RWaWV3OiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBASW5qZWN0KEtCUV9UT09MVElQX1NDUk9MTF9TVFJBVEVHWSkgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgIEBPcHRpb25hbCgpIGRpcmVjdGlvbjogRGlyZWN0aW9uYWxpdHksXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihvdmVybGF5LCBlbGVtZW50UmVmLCBuZ1pvbmUsIHNjcm9sbERpc3BhdGNoZXIsIGhvc3RWaWV3LCBzY3JvbGxTdHJhdGVneSwgZGlyZWN0aW9uKTtcblxuICAgICAgICB0aGlzLnBsYWNlbWVudCA9IFBvcFVwUGxhY2VtZW50cy5SaWdodDtcblxuICAgICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLmdldFdpbmRvdygpO1xuXG4gICAgICAgIGlmICh3aW5kb3cpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMud2luZG93VG9nZ2xlSGFuZGxlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKFtTUEFDRSwgRU5URVJdLmluY2x1ZGVzKCRldmVudC5rZXlDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcblxuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5oYW5kbGVLZXlkb3duKCRldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZ2V0V2luZG93KCk7XG5cbiAgICAgICAgaWYgKHdpbmRvdykge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLndpbmRvd1RvZ2dsZUhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9nZ2xlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5hdmJhci50b2dnbGUoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0V2luZG93KCk6IFdpbmRvdyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50Py5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3aW5kb3dUb2dnbGVIYW5kbGVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5jdHJsS2V5ICYmIFtOVU1QQURfRElWSURFLCBTTEFTSF0uaW5jbHVkZXMoZXZlbnQua2V5Q29kZSkpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bih0aGlzLnRvZ2dsZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJba2JxLWljb25dXCI+PC9uZy1jb250ZW50PlxuXG48ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX19jb250YWluZXJcIiAqbmdJZj1cInRpdGxlXCI+XG4gICAgPGRpdiBjbGFzcz1cImticS1uYXZiYXItaXRlbV9fdGl0bGVcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLW5hdmJhci10aXRsZSwgW2ticS1uYXZiYXItdGl0bGVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJrYnEtbmF2YmFyLXN1YnRpdGxlLCBba2JxLW5hdmJhci1zdWJ0aXRsZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8aSBjbGFzcz1cImticS1uYXZiYXItaXRlbV9fYXJyb3ctaWNvblwiIGticS1pY29uPVwibWMtYW5nbGUtcmlnaHQtTV8yNFwiICpuZ0lmPVwic2hvd1ZlcnRpY2FsRHJvcERvd25BbmdsZVwiPjwvaT5cbiAgICA8aSBjbGFzcz1cImticS1uYXZiYXItaXRlbV9fYXJyb3ctaWNvblwiIGticS1pY29uPVwibWMtYW5nbGUtZG93bi1TXzE2XCIgKm5nSWY9XCJzaG93SG9yaXpvbnRhbERyb3BEb3duQW5nbGVcIj48L2k+XG5cbjwvZGl2PlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjxkaXYgY2xhc3M9XCJrYnEtbmF2YmFyLWl0ZW1fX292ZXJsYXlcIj48L2Rpdj5cbiJdfQ==
|
|
@@ -37,6 +37,11 @@ class KbqButtonCssStyler {
|
|
|
37
37
|
updateClassModifierForIcons() {
|
|
38
38
|
this.renderer.removeClass(this.nativeElement, buttonLeftIconClassName);
|
|
39
39
|
this.renderer.removeClass(this.nativeElement, buttonRightIconClassName);
|
|
40
|
+
this.icons.map((item) => item.getHostElement())
|
|
41
|
+
.forEach((iconHostElement) => {
|
|
42
|
+
this.renderer.removeClass(iconHostElement, leftIconClassName);
|
|
43
|
+
this.renderer.removeClass(iconHostElement, rightIconClassName);
|
|
44
|
+
});
|
|
40
45
|
const twoIcons = 2;
|
|
41
46
|
const filteredNodesWithoutComments = getNodesWithoutComments(this.nativeElement.querySelector('.kbq-button-wrapper').childNodes);
|
|
42
47
|
const currentIsIconButtonValue = !!this.icons.length &&
|
|
@@ -48,8 +53,6 @@ class KbqButtonCssStyler {
|
|
|
48
53
|
if (this.icons.length && filteredNodesWithoutComments.length > 1) {
|
|
49
54
|
this.icons.map((item) => item.getHostElement())
|
|
50
55
|
.forEach((iconHostElement) => {
|
|
51
|
-
this.renderer.removeClass(iconHostElement, leftIconClassName);
|
|
52
|
-
this.renderer.removeClass(iconHostElement, rightIconClassName);
|
|
53
56
|
const iconIndex = filteredNodesWithoutComments.findIndex((node) => node === iconHostElement);
|
|
54
57
|
if (iconIndex === 0) {
|
|
55
58
|
this.renderer.addClass(iconHostElement, leftIconClassName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-button.mjs","sources":["../../../packages/components/button/button.component.ts","../../../packages/components/button/button.component.html","../../../packages/components/button/button.module.ts","../../../packages/components/button/koobiq-components-button.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n Renderer2,\n QueryList,\n ContentChildren,\n AfterContentInit,\n SkipSelf,\n Input,\n forwardRef\n} from '@angular/core';\nimport {\n mixinColor,\n mixinTabIndex,\n CanColor,\n CanDisable,\n CanColorCtor,\n HasTabIndexCtor,\n KbqComponentColors\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\n\nexport enum KbqButtonStyles {\n Filled = 'filled',\n Outline = 'outline',\n Transparent = 'transparent'\n}\n\n\nexport const leftIconClassName = 'kbq-icon_left';\nexport const rightIconClassName = 'kbq-icon_right';\n\nexport const buttonLeftIconClassName = 'kbq-button-icon_left';\nexport const buttonRightIconClassName = 'kbq-button-icon_right';\n\nexport const getNodesWithoutComments = (nodes: NodeList): Node[] => {\n const COMMENT_NODE = 8;\n\n return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);\n};\n\n@Directive({\n selector: '[kbq-button]',\n host: {\n '[class.kbq-button]': '!isIconButton',\n '[class.kbq-button-icon]': 'isIconButton'\n }\n})\nexport class KbqButtonCssStyler implements AfterContentInit {\n @ContentChildren((forwardRef(() => KbqIcon))) icons: QueryList<KbqIcon>;\n\n nativeElement: HTMLElement;\n\n isIconButton: boolean = false;\n\n constructor(elementRef: ElementRef, private renderer: Renderer2, @SkipSelf() private cdr: ChangeDetectorRef) {\n this.nativeElement = elementRef.nativeElement;\n }\n\n ngAfterContentInit() {\n this.updateClassModifierForIcons();\n }\n\n updateClassModifierForIcons() {\n this.renderer.removeClass(this.nativeElement, buttonLeftIconClassName);\n this.renderer.removeClass(this.nativeElement, buttonRightIconClassName);\n\n const twoIcons = 2;\n const filteredNodesWithoutComments = getNodesWithoutComments(\n this.nativeElement.querySelector('.kbq-button-wrapper')!.childNodes as NodeList\n );\n\n const currentIsIconButtonValue = !!this.icons.length &&\n this.icons.length === filteredNodesWithoutComments.length && this.icons.length <= twoIcons;\n\n if (currentIsIconButtonValue !== this.isIconButton) {\n this.isIconButton = currentIsIconButtonValue;\n this.cdr.detectChanges();\n }\n\n if (this.icons.length && filteredNodesWithoutComments.length > 1) {\n this.icons.map((item) => item.getHostElement())\n .forEach((iconHostElement) => {\n this.renderer.removeClass(iconHostElement, leftIconClassName);\n this.renderer.removeClass(iconHostElement, rightIconClassName);\n\n const iconIndex = filteredNodesWithoutComments.findIndex(\n (node) => node === iconHostElement\n );\n\n if (iconIndex === 0) {\n this.renderer.addClass(iconHostElement, leftIconClassName);\n this.renderer.addClass(this.nativeElement, buttonLeftIconClassName);\n }\n\n if (iconIndex === filteredNodesWithoutComments.length - 1) {\n this.renderer.addClass(iconHostElement, rightIconClassName);\n this.renderer.addClass(this.nativeElement, buttonRightIconClassName);\n }\n });\n }\n\n }\n}\n\n/** @docs-private */\nexport class KbqButtonBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqButtonMixinBase: HasTabIndexCtor & CanColorCtor &\n typeof KbqButtonBase = mixinTabIndex(mixinColor(KbqButtonBase, KbqComponentColors.ContrastFade));\n\n\n@Component({\n selector: '[kbq-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['color', 'tabIndex'],\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.kbq-disabled]': 'disabled',\n '[attr.tabIndex]': 'tabIndex',\n '[class]': 'kbqStyle',\n\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur()'\n }\n})\nexport class KbqButton extends KbqButtonMixinBase implements OnDestroy, CanDisable, CanColor {\n hasFocus: boolean = false;\n\n @Input()\n get kbqStyle(): string {\n return `kbq-button_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: string | KbqButtonStyles) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n }\n\n private _kbqStyle: string | KbqButtonStyles = KbqButtonStyles.Filled;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n\n this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();\n }\n\n private _disabled: boolean = false;\n\n constructor(elementRef: ElementRef, private focusMonitor: FocusMonitor, private styler: KbqButtonCssStyler) {\n super(elementRef);\n\n this.runFocusMonitor();\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n onFocus($event) {\n $event.stopPropagation();\n\n this.hasFocus = true;\n }\n\n onBlur() {\n this.hasFocus = false;\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n focus(): void {\n this.hasFocus = true;\n\n this.getHostElement().focus();\n }\n\n focusViaKeyboard(): void {\n this.hasFocus = true;\n\n this.focusMonitor.focusVia(this.getHostElement(), 'keyboard');\n }\n\n haltDisabledEvents(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n }\n\n projectContentChanged() {\n this.styler.updateClassModifierForIcons();\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n\n","<div class=\"kbq-button-wrapper\" (cdkObserveContent)=\"projectContentChanged()\">\n <ng-content></ng-content>\n</div>\n<div class=\"kbq-button-overlay\" (click)=\"haltDisabledEvents($event)\"></div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n KbqButton,\n KbqButtonCssStyler\n} from './button.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n ObserversModule\n ],\n exports: [\n KbqButton,\n KbqButtonCssStyler\n ],\n declarations: [\n KbqButton,\n KbqButtonCssStyler\n ]\n})\nexport class KbqButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-button.mjs","sources":["../../../packages/components/button/button.component.ts","../../../packages/components/button/button.component.html","../../../packages/components/button/button.module.ts","../../../packages/components/button/koobiq-components-button.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n Renderer2,\n QueryList,\n ContentChildren,\n AfterContentInit,\n SkipSelf,\n Input,\n forwardRef\n} from '@angular/core';\nimport {\n mixinColor,\n mixinTabIndex,\n CanColor,\n CanDisable,\n CanColorCtor,\n HasTabIndexCtor,\n KbqComponentColors\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\n\nexport enum KbqButtonStyles {\n Filled = 'filled',\n Outline = 'outline',\n Transparent = 'transparent'\n}\n\n\nexport const leftIconClassName = 'kbq-icon_left';\nexport const rightIconClassName = 'kbq-icon_right';\n\nexport const buttonLeftIconClassName = 'kbq-button-icon_left';\nexport const buttonRightIconClassName = 'kbq-button-icon_right';\n\nexport const getNodesWithoutComments = (nodes: NodeList): Node[] => {\n const COMMENT_NODE = 8;\n\n return Array.from(nodes).filter((node) => node.nodeType !== COMMENT_NODE);\n};\n\n@Directive({\n selector: '[kbq-button]',\n host: {\n '[class.kbq-button]': '!isIconButton',\n '[class.kbq-button-icon]': 'isIconButton'\n }\n})\nexport class KbqButtonCssStyler implements AfterContentInit {\n @ContentChildren((forwardRef(() => KbqIcon))) icons: QueryList<KbqIcon>;\n\n nativeElement: HTMLElement;\n\n isIconButton: boolean = false;\n\n constructor(elementRef: ElementRef, private renderer: Renderer2, @SkipSelf() private cdr: ChangeDetectorRef) {\n this.nativeElement = elementRef.nativeElement;\n }\n\n ngAfterContentInit() {\n this.updateClassModifierForIcons();\n }\n\n updateClassModifierForIcons() {\n this.renderer.removeClass(this.nativeElement, buttonLeftIconClassName);\n this.renderer.removeClass(this.nativeElement, buttonRightIconClassName);\n this.icons.map((item) => item.getHostElement())\n .forEach((iconHostElement) => {\n this.renderer.removeClass(iconHostElement, leftIconClassName);\n this.renderer.removeClass(iconHostElement, rightIconClassName);\n });\n\n const twoIcons = 2;\n const filteredNodesWithoutComments = getNodesWithoutComments(\n this.nativeElement.querySelector('.kbq-button-wrapper')!.childNodes as NodeList\n );\n\n const currentIsIconButtonValue = !!this.icons.length &&\n this.icons.length === filteredNodesWithoutComments.length && this.icons.length <= twoIcons;\n\n if (currentIsIconButtonValue !== this.isIconButton) {\n this.isIconButton = currentIsIconButtonValue;\n this.cdr.detectChanges();\n }\n\n if (this.icons.length && filteredNodesWithoutComments.length > 1) {\n this.icons.map((item) => item.getHostElement())\n .forEach((iconHostElement) => {\n const iconIndex = filteredNodesWithoutComments.findIndex(\n (node) => node === iconHostElement\n );\n\n if (iconIndex === 0) {\n this.renderer.addClass(iconHostElement, leftIconClassName);\n this.renderer.addClass(this.nativeElement, buttonLeftIconClassName);\n }\n\n if (iconIndex === filteredNodesWithoutComments.length - 1) {\n this.renderer.addClass(iconHostElement, rightIconClassName);\n this.renderer.addClass(this.nativeElement, buttonRightIconClassName);\n }\n });\n }\n }\n}\n\n/** @docs-private */\nexport class KbqButtonBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n/** @docs-private */\nexport const KbqButtonMixinBase: HasTabIndexCtor & CanColorCtor &\n typeof KbqButtonBase = mixinTabIndex(mixinColor(KbqButtonBase, KbqComponentColors.ContrastFade));\n\n\n@Component({\n selector: '[kbq-button]',\n templateUrl: './button.component.html',\n styleUrls: ['./button.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['color', 'tabIndex'],\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class.kbq-disabled]': 'disabled',\n '[attr.tabIndex]': 'tabIndex',\n '[class]': 'kbqStyle',\n\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur()'\n }\n})\nexport class KbqButton extends KbqButtonMixinBase implements OnDestroy, CanDisable, CanColor {\n hasFocus: boolean = false;\n\n @Input()\n get kbqStyle(): string {\n return `kbq-button_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: string | KbqButtonStyles) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n }\n\n private _kbqStyle: string | KbqButtonStyles = KbqButtonStyles.Filled;\n\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n set disabled(value: any) {\n this._disabled = coerceBooleanProperty(value);\n\n this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();\n }\n\n private _disabled: boolean = false;\n\n constructor(elementRef: ElementRef, private focusMonitor: FocusMonitor, private styler: KbqButtonCssStyler) {\n super(elementRef);\n\n this.runFocusMonitor();\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n onFocus($event) {\n $event.stopPropagation();\n\n this.hasFocus = true;\n }\n\n onBlur() {\n this.hasFocus = false;\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n focus(): void {\n this.hasFocus = true;\n\n this.getHostElement().focus();\n }\n\n focusViaKeyboard(): void {\n this.hasFocus = true;\n\n this.focusMonitor.focusVia(this.getHostElement(), 'keyboard');\n }\n\n haltDisabledEvents(event: Event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n }\n\n projectContentChanged() {\n this.styler.updateClassModifierForIcons();\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n\n","<div class=\"kbq-button-wrapper\" (cdkObserveContent)=\"projectContentChanged()\">\n <ng-content></ng-content>\n</div>\n<div class=\"kbq-button-overlay\" (click)=\"haltDisabledEvents($event)\"></div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport {\n KbqButton,\n KbqButtonCssStyler\n} from './button.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n PlatformModule,\n ObserversModule\n ],\n exports: [\n KbqButton,\n KbqButtonCssStyler\n ],\n declarations: [\n KbqButton,\n KbqButtonCssStyler\n ]\n})\nexport class KbqButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -2817,7 +2817,7 @@ const validationTooltipShowDelay = 10;
|
|
|
2817
2817
|
const validationTooltipHideDelay = 3000;
|
|
2818
2818
|
const KBQ_VALIDATION = new InjectionToken('KbqUseValidation', { factory: () => ({ useValidation: true }) });
|
|
2819
2819
|
|
|
2820
|
-
const VERSION = new Version('16.0.0-beta.
|
|
2820
|
+
const VERSION = new Version('16.0.0-beta.12+sha-9edb2bb');
|
|
2821
2821
|
|
|
2822
2822
|
/**
|
|
2823
2823
|
* Generated bundle index. Do not edit.
|