@cqa-lib/cqa-ui 1.1.382 → 1.1.384

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.
@@ -57,10 +57,10 @@ export class RunExecutionAlertComponent {
57
57
  }
58
58
  }
59
59
  RunExecutionAlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RunExecutionAlertComponent, deps: [{ token: MAT_DIALOG_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
60
- RunExecutionAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RunExecutionAlertComponent, selector: "cqa-run-execution-alert", inputs: { title: "title", message: "message", prerequisiteForm: "prerequisiteForm", prerequisiteSelectConfig: "prerequisiteSelectConfig" }, outputs: { runWithPrerequisites: "runWithPrerequisites", runAnyway: "runAnyway", cancelled: "cancelled" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div\n class=\"cqa-bg-white cqa-rounded-[12px] cqa-shadow-lg cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-w-full cqa-max-w-[500px] cqa-flex cqa-flex-col cqa-gap-4 cqa-p-6 cqa-box-border cqa-min-h-0\">\n <!-- Header: title + close (X) -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-min-w-0\">\n <h2 class=\"cqa-font-medium cqa-text-[22px] cqa-leading-[28px] cqa-tracking-normal cqa-text-[#101828] cqa-m-0\">\n {{ title }}\n </h2>\n <p class=\"cqa-font-normal cqa-text-[14px] cqa-leading-[21px] cqa-tracking-[-0.15px] cqa-text-[#4A5565] cqa-m-0\">\n {{ message }}\n </p>\n </div>\n <button\n type=\"button\"\n (click)=\"onCancel()\"\n class=\"cqa-flex cqa-items-center cqa-justify-center cqa-min-h-7 cqa-min-w-7 cqa-rounded cqa-text-[#6B7280] hover:cqa-bg-[#F3F4F6] cqa-p-0 cqa-flex-shrink-0\"\n title=\"Close\"\n aria-label=\"Close\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n <!-- Optional prerequisite selector (rendered when inputs are provided) -->\n <div *ngIf=\"prerequisiteForm && prerequisiteSelectConfig\" class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <label class=\"cqa-font-medium cqa-text-[13px] cqa-text-[#374151]\">Select Prerequisites</label>\n <cqa-dynamic-select\n [form]=\"prerequisiteForm\"\n [config]=\"prerequisiteSelectConfig\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Actions: Cancel | Run Anyway (right-aligned) -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-end cqa-w-full cqa-gap-3\">\n <cqa-button\n variant=\"outlined\"\n btnSize=\"lg\"\n text=\"Cancel\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-bg-white cqa-border cqa-border-solid cqa-border-[#414146] cqa-text-[#414146]'\"\n (clicked)=\"onCancel()\">\n </cqa-button>\n <cqa-button\n variant=\"filled\"\n btnSize=\"lg\"\n text=\"Run Anyway\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-rounded-[8px] cqa-border-0 cqa-bg-[#3F43EE] cqa-text-white'\"\n (clicked)=\"onRunAnyway()\">\n </cqa-button>\n <cqa-button\n variant=\"filled\"\n btnSize=\"lg\"\n text=\"Run with Prerequisites\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-rounded-[8px] cqa-border-0 cqa-bg-[#3F43EE] cqa-text-white'\"\n [disabled]=\"disableRunWithPrereq\"\n (clicked)=\"onRunWithPrerequisites()\">\n </cqa-button>\n </div>\n</div>\n", components: [{ type: i1.DynamicSelectFieldComponent, selector: "cqa-dynamic-select", inputs: ["form", "config"], outputs: ["selectionChange", "selectClick", "searchChange", "loadMore", "addCustomValue"] }, { type: i2.ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
60
+ RunExecutionAlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RunExecutionAlertComponent, selector: "cqa-run-execution-alert", inputs: { title: "title", message: "message", prerequisiteForm: "prerequisiteForm", prerequisiteSelectConfig: "prerequisiteSelectConfig" }, outputs: { runWithPrerequisites: "runWithPrerequisites", runAnyway: "runAnyway", cancelled: "cancelled" }, host: { classAttribute: "cqa-ui-root" }, ngImport: i0, template: "<div\n class=\"cqa-bg-white cqa-rounded-[12px] cqa-shadow-lg cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-w-full cqa-max-w-[500px] cqa-flex cqa-flex-col cqa-gap-4 cqa-p-6 cqa-box-border cqa-min-h-0\">\n <!-- Header: title + close (X) -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-min-w-0\">\n <h2 class=\"cqa-font-medium cqa-text-[22px] cqa-leading-[28px] cqa-tracking-normal cqa-text-[#101828] cqa-m-0\">\n {{ title }}\n </h2>\n <p class=\"cqa-font-normal cqa-text-[14px] cqa-leading-[21px] cqa-tracking-[-0.15px] cqa-text-[#4A5565] cqa-m-0\">\n {{ message }}\n </p>\n </div>\n <button\n type=\"button\"\n (click)=\"onCancel()\"\n class=\"cqa-flex cqa-items-center cqa-justify-center cqa-min-h-7 cqa-min-w-7 cqa-rounded cqa-text-[#6B7280] hover:cqa-bg-[#F3F4F6] cqa-p-0 cqa-flex-shrink-0\"\n title=\"Close\"\n aria-label=\"Close\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n <!-- Optional prerequisite selector (rendered when inputs are provided) -->\n <div *ngIf=\"prerequisiteForm && prerequisiteSelectConfig\" class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <label class=\"cqa-font-medium cqa-text-[13px] cqa-text-[#374151]\">Select Prerequisites</label>\n <cqa-dynamic-select\n [form]=\"prerequisiteForm\"\n [config]=\"prerequisiteSelectConfig\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Actions: Cancel | Run Anyway (right-aligned) -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-end cqa-w-full cqa-gap-3\">\n <cqa-button\n variant=\"outlined\"\n btnSize=\"lg\"\n text=\"Cancel\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-bg-white cqa-border cqa-border-solid cqa-border-[#414146] cqa-text-[#414146]'\"\n (clicked)=\"onCancel()\">\n </cqa-button>\n <cqa-button\n variant=\"filled\"\n btnSize=\"lg\"\n text=\"Run Anyway\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-rounded-[8px] cqa-border-0 cqa-bg-[#3F43EE] cqa-text-white'\"\n (clicked)=\"onRunAnyway()\">\n </cqa-button>\n <cqa-button\n variant=\"filled\"\n btnSize=\"lg\"\n text=\"Run with Prerequisites\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-rounded-[8px] cqa-border-0 cqa-bg-[#3F43EE] !cqa-text-white'\"\n [disabled]=\"disableRunWithPrereq\"\n (clicked)=\"onRunWithPrerequisites()\">\n </cqa-button>\n </div>\n</div>\n", components: [{ type: i1.DynamicSelectFieldComponent, selector: "cqa-dynamic-select", inputs: ["form", "config"], outputs: ["selectionChange", "selectClick", "searchChange", "loadMore", "addCustomValue"] }, { type: i2.ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RunExecutionAlertComponent, decorators: [{
62
62
  type: Component,
63
- args: [{ selector: 'cqa-run-execution-alert', host: { class: 'cqa-ui-root' }, template: "<div\n class=\"cqa-bg-white cqa-rounded-[12px] cqa-shadow-lg cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-w-full cqa-max-w-[500px] cqa-flex cqa-flex-col cqa-gap-4 cqa-p-6 cqa-box-border cqa-min-h-0\">\n <!-- Header: title + close (X) -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-min-w-0\">\n <h2 class=\"cqa-font-medium cqa-text-[22px] cqa-leading-[28px] cqa-tracking-normal cqa-text-[#101828] cqa-m-0\">\n {{ title }}\n </h2>\n <p class=\"cqa-font-normal cqa-text-[14px] cqa-leading-[21px] cqa-tracking-[-0.15px] cqa-text-[#4A5565] cqa-m-0\">\n {{ message }}\n </p>\n </div>\n <button\n type=\"button\"\n (click)=\"onCancel()\"\n class=\"cqa-flex cqa-items-center cqa-justify-center cqa-min-h-7 cqa-min-w-7 cqa-rounded cqa-text-[#6B7280] hover:cqa-bg-[#F3F4F6] cqa-p-0 cqa-flex-shrink-0\"\n title=\"Close\"\n aria-label=\"Close\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n <!-- Optional prerequisite selector (rendered when inputs are provided) -->\n <div *ngIf=\"prerequisiteForm && prerequisiteSelectConfig\" class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <label class=\"cqa-font-medium cqa-text-[13px] cqa-text-[#374151]\">Select Prerequisites</label>\n <cqa-dynamic-select\n [form]=\"prerequisiteForm\"\n [config]=\"prerequisiteSelectConfig\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Actions: Cancel | Run Anyway (right-aligned) -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-end cqa-w-full cqa-gap-3\">\n <cqa-button\n variant=\"outlined\"\n btnSize=\"lg\"\n text=\"Cancel\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-bg-white cqa-border cqa-border-solid cqa-border-[#414146] cqa-text-[#414146]'\"\n (clicked)=\"onCancel()\">\n </cqa-button>\n <cqa-button\n variant=\"filled\"\n btnSize=\"lg\"\n text=\"Run Anyway\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-rounded-[8px] cqa-border-0 cqa-bg-[#3F43EE] cqa-text-white'\"\n (clicked)=\"onRunAnyway()\">\n </cqa-button>\n <cqa-button\n variant=\"filled\"\n btnSize=\"lg\"\n text=\"Run with Prerequisites\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-rounded-[8px] cqa-border-0 cqa-bg-[#3F43EE] cqa-text-white'\"\n [disabled]=\"disableRunWithPrereq\"\n (clicked)=\"onRunWithPrerequisites()\">\n </cqa-button>\n </div>\n</div>\n" }]
63
+ args: [{ selector: 'cqa-run-execution-alert', host: { class: 'cqa-ui-root' }, template: "<div\n class=\"cqa-bg-white cqa-rounded-[12px] cqa-shadow-lg cqa-border cqa-border-solid cqa-border-[#E5E7EB] cqa-w-full cqa-max-w-[500px] cqa-flex cqa-flex-col cqa-gap-4 cqa-p-6 cqa-box-border cqa-min-h-0\">\n <!-- Header: title + close (X) -->\n <div class=\"cqa-flex cqa-items-start cqa-justify-between cqa-gap-2\">\n <div class=\"cqa-flex cqa-flex-col cqa-gap-1 cqa-min-w-0\">\n <h2 class=\"cqa-font-medium cqa-text-[22px] cqa-leading-[28px] cqa-tracking-normal cqa-text-[#101828] cqa-m-0\">\n {{ title }}\n </h2>\n <p class=\"cqa-font-normal cqa-text-[14px] cqa-leading-[21px] cqa-tracking-[-0.15px] cqa-text-[#4A5565] cqa-m-0\">\n {{ message }}\n </p>\n </div>\n <button\n type=\"button\"\n (click)=\"onCancel()\"\n class=\"cqa-flex cqa-items-center cqa-justify-center cqa-min-h-7 cqa-min-w-7 cqa-rounded cqa-text-[#6B7280] hover:cqa-bg-[#F3F4F6] cqa-p-0 cqa-flex-shrink-0\"\n title=\"Close\"\n aria-label=\"Close\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n <!-- Optional prerequisite selector (rendered when inputs are provided) -->\n <div *ngIf=\"prerequisiteForm && prerequisiteSelectConfig\" class=\"cqa-flex cqa-flex-col cqa-gap-1\">\n <label class=\"cqa-font-medium cqa-text-[13px] cqa-text-[#374151]\">Select Prerequisites</label>\n <cqa-dynamic-select\n [form]=\"prerequisiteForm\"\n [config]=\"prerequisiteSelectConfig\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Actions: Cancel | Run Anyway (right-aligned) -->\n <div class=\"cqa-flex cqa-items-center cqa-justify-end cqa-w-full cqa-gap-3\">\n <cqa-button\n variant=\"outlined\"\n btnSize=\"lg\"\n text=\"Cancel\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-bg-white cqa-border cqa-border-solid cqa-border-[#414146] cqa-text-[#414146]'\"\n (clicked)=\"onCancel()\">\n </cqa-button>\n <cqa-button\n variant=\"filled\"\n btnSize=\"lg\"\n text=\"Run Anyway\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-rounded-[8px] cqa-border-0 cqa-bg-[#3F43EE] cqa-text-white'\"\n (clicked)=\"onRunAnyway()\">\n </cqa-button>\n <cqa-button\n variant=\"filled\"\n btnSize=\"lg\"\n text=\"Run with Prerequisites\"\n [customClass]=\"'cqa-text-[14px] cqa-py-[9px] cqa-rounded-[8px] cqa-border-0 cqa-bg-[#3F43EE] !cqa-text-white'\"\n [disabled]=\"disableRunWithPrereq\"\n (clicked)=\"onRunWithPrerequisites()\">\n </cqa-button>\n </div>\n</div>\n" }]
64
64
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
65
65
  type: Optional
66
66
  }, {
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
81
81
  }], cancelled: [{
82
82
  type: Output
83
83
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWV4ZWN1dGlvbi1hbGVydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3J1bi1leGVjdXRpb24tYWxlcnQvcnVuLWV4ZWN1dGlvbi1hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3J1bi1leGVjdXRpb24tYWxlcnQvcnVuLWV4ZWN1dGlvbi1hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUkzRDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sMEJBQTBCO0lBdUJyQyxZQUN1QyxJQUEyQztRQXZCbEY7OztXQUdHO1FBQ00sVUFBSyxHQUFHLGtCQUFrQixDQUFDO1FBRXBDOzs7V0FHRztRQUNNLFlBQU8sR0FBRywyRUFBMkUsQ0FBQztRQVMvRix5REFBeUQ7UUFDL0MseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVkxRCxvRUFBb0U7UUFDMUQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFL0Msa0RBQWtEO1FBQ3hDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBWDdDLHFFQUFxRTtRQUNyRSxrRUFBa0U7UUFDbEUsMERBQTBEO1FBQzFELElBQUksSUFBSSxFQUFFLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekMsSUFBSSxJQUFJLEVBQUUsT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNqRCxDQUFDO0lBUUQsNEVBQTRFO0lBQzVFLElBQUksb0JBQW9CO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDO1FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7O3VIQTlEVSwwQkFBMEIsa0JBd0JmLGVBQWU7MkdBeEIxQiwwQkFBMEIsK1ZDZHZDLG9yRkEyREE7MkZEN0NhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUIsUUFFN0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzswQkEwQjNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs0Q0FuQjVCLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFHSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBYUcsU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5qZWN0LCBPcHRpb25hbCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0RmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJ1biBFeGVjdXRpb24gYWxlcnQgbW9kYWwgd2hlbiB0aGUgdXNlciBjbGlja3MgRXhlY3V0aW9uIGJ1dCB0aGUgdGVzdCBjYXNlIGhhcyBubyBwcmVyZXF1aXNpdGVzLlxuICogU2ltaWxhciB0byBkZWxldGUtc3RlcHM6IHR3byBhY3Rpb25zIOKAlCBcIkNhbmNlbFwiIChhYm9ydCkgYW5kIFwiUnVuIEFueXdheVwiIChwcm9jZWVkIHdpdGggZXhlY3V0aW9uKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXJ1bi1leGVjdXRpb24tYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcnVuLWV4ZWN1dGlvbi1hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfSxcbn0pXG5leHBvcnQgY2xhc3MgUnVuRXhlY3V0aW9uQWxlcnRDb21wb25lbnQge1xuICAvKipcbiAgICogVGl0bGUgdGV4dCBzaG93biBpbiB0aGUgaGVhZGVyLlxuICAgKiBDYW4gYmUgcHJvdmlkZWQgZWl0aGVyIHZpYSBASW5wdXQoKSBvciBNQVRfRElBTE9HX0RBVEEuXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZSA9ICdObyBwcmVyZXF1aXNpdGVzJztcblxuICAvKipcbiAgICogQm9keSBtZXNzYWdlIHNob3duIHVuZGVyIHRoZSB0aXRsZS5cbiAgICogQ2FuIGJlIHByb3ZpZGVkIGVpdGhlciB2aWEgQElucHV0KCkgb3IgTUFUX0RJQUxPR19EQVRBLlxuICAgKi9cbiAgQElucHV0KCkgbWVzc2FnZSA9ICdUaGlzIHRlc3QgY2FzZSBoYXMgbm8gcHJlcmVxdWlzaXRlcy4gRG8geW91IHdhbnQgdG8gcnVuIGV4ZWN1dGlvbiBhbnl3YXk/JztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZm9ybSBhbmQgY29uZmlnIGZvciBhIHByZXJlcXVpc2l0ZSBzZWxlY3QgZmllbGQuXG4gICAqIFdoZW4gcHJvdmlkZWQsIGEgY3FhLWR5bmFtaWMtc2VsZWN0IHdpbGwgYmUgcmVuZGVyZWQgaW5zaWRlIHRoaXMgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCkgcHJlcmVxdWlzaXRlRm9ybT86IEZvcm1Hcm91cCB8IG51bGw7XG4gIEBJbnB1dCgpIHByZXJlcXVpc2l0ZVNlbGVjdENvbmZpZz86IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB8IG51bGw7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIHdhbnRzIHRvIHJ1biB3aXRoIHByZXJlcXVpc2l0ZXMuICovXG4gIEBPdXRwdXQoKSBydW5XaXRoUHJlcmVxdWlzaXRlcyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZGF0YT86IHsgdGl0bGU/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmcgfVxuICApIHtcbiAgICAvLyBXaGVuIHVzZWQgaW5zaWRlIGFuIEFuZ3VsYXIgTWF0ZXJpYWwgZGlhbG9nLCBhbGxvdyBNQVRfRElBTE9HX0RBVEFcbiAgICAvLyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCB0aXRsZS9tZXNzYWdlLiBASW5wdXQoKSBiaW5kaW5ncyBmcm9tIGFcbiAgICAvLyBwYXJlbnQgY29tcG9uZW50IHdpbGwgc3RpbGwgcnVuIGFmdGVyIHRoaXMgY29uc3RydWN0b3IuXG4gICAgaWYgKGRhdGE/LnRpdGxlKSB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcbiAgICBpZiAoZGF0YT8ubWVzc2FnZSkgdGhpcy5tZXNzYWdlID0gZGF0YS5tZXNzYWdlO1xuICB9XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIGNvbmZpcm1zIHRoZXkgd2FudCB0byBwcm9jZWVkIChSdW4gQW55d2F5KS4gKi9cbiAgQE91dHB1dCgpIHJ1bkFueXdheSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgY2FuY2Vscy9jbG9zZXMgdGhlIGFsZXJ0LiAqL1xuICBAT3V0cHV0KCkgY2FuY2VsbGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBUcnVlIHdoZW4gXCJSdW4gd2l0aCBQcmVyZXF1aXNpdGVzXCIgc2hvdWxkIGJlIGRpc2FibGVkIChubyBzZWxlY3Rpb24pLiAqL1xuICBnZXQgZGlzYWJsZVJ1bldpdGhQcmVyZXEoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnByZXJlcXVpc2l0ZUZvcm0gfHwgIXRoaXMucHJlcmVxdWlzaXRlU2VsZWN0Q29uZmlnPy5rZXkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBjdHJsID0gdGhpcy5wcmVyZXF1aXNpdGVGb3JtLmdldCh0aGlzLnByZXJlcXVpc2l0ZVNlbGVjdENvbmZpZy5rZXkpO1xuICAgIGNvbnN0IHZhbHVlID0gY3RybD8udmFsdWU7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoID09PSAwO1xuICAgIH1cbiAgICByZXR1cm4gIXZhbHVlO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxsZWQuZW1pdCgpO1xuICB9XG5cbiAgb25SdW5Bbnl3YXkoKTogdm9pZCB7XG4gICAgdGhpcy5ydW5Bbnl3YXkuZW1pdCgpO1xuICB9XG5cbiAgb25SdW5XaXRoUHJlcmVxdWlzaXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLnJ1bldpdGhQcmVyZXF1aXNpdGVzLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1bMTJweF0gY3FhLXNoYWRvdy1sZyBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXctZnVsbCBjcWEtbWF4LXctWzUwMHB4XSBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC00IGNxYS1wLTYgY3FhLWJveC1ib3JkZXIgY3FhLW1pbi1oLTBcIj5cbiAgPCEtLSBIZWFkZXI6IHRpdGxlICsgY2xvc2UgKFgpIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0YXJ0IGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLW1pbi13LTBcIj5cbiAgICAgIDxoMiBjbGFzcz1cImNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bMjJweF0gY3FhLWxlYWRpbmctWzI4cHhdIGNxYS10cmFja2luZy1ub3JtYWwgY3FhLXRleHQtWyMxMDE4MjhdIGNxYS1tLTBcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvaDI+XG4gICAgICA8cCBjbGFzcz1cImNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzIxcHhdIGNxYS10cmFja2luZy1bLTAuMTVweF0gY3FhLXRleHQtWyM0QTU1NjVdIGNxYS1tLTBcIj5cbiAgICAgICAge3sgbWVzc2FnZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtbWluLWgtNyBjcWEtbWluLXctNyBjcWEtcm91bmRlZCBjcWEtdGV4dC1bIzZCNzI4MF0gaG92ZXI6Y3FhLWJnLVsjRjNGNEY2XSBjcWEtcC0wIGNxYS1mbGV4LXNocmluay0wXCJcbiAgICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPHBhdGggZD1cIk0xOCA2TDYgMThNNiA2bDEyIDEyXCIgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8IS0tIE9wdGlvbmFsIHByZXJlcXVpc2l0ZSBzZWxlY3RvciAocmVuZGVyZWQgd2hlbiBpbnB1dHMgYXJlIHByb3ZpZGVkKSAtLT5cbiAgPGRpdiAqbmdJZj1cInByZXJlcXVpc2l0ZUZvcm0gJiYgcHJlcmVxdWlzaXRlU2VsZWN0Q29uZmlnXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsxM3B4XSBjcWEtdGV4dC1bIzM3NDE1MV1cIj5TZWxlY3QgUHJlcmVxdWlzaXRlczwvbGFiZWw+XG4gICAgPGNxYS1keW5hbWljLXNlbGVjdFxuICAgICAgW2Zvcm1dPVwicHJlcmVxdWlzaXRlRm9ybVwiXG4gICAgICBbY29uZmlnXT1cInByZXJlcXVpc2l0ZVNlbGVjdENvbmZpZ1wiPlxuICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8IS0tIEFjdGlvbnM6IENhbmNlbCB8IFJ1biBBbnl3YXkgKHJpZ2h0LWFsaWduZWQpIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1lbmQgY3FhLXctZnVsbCBjcWEtZ2FwLTNcIj5cbiAgICA8Y3FhLWJ1dHRvblxuICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgIGJ0blNpemU9XCJsZ1wiXG4gICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLXRleHQtWzE0cHhdIGNxYS1weS1bOXB4XSBjcWEtYmctd2hpdGUgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyM0MTQxNDZdIGNxYS10ZXh0LVsjNDE0MTQ2XSdcIlxuICAgICAgKGNsaWNrZWQpPVwib25DYW5jZWwoKVwiPlxuICAgIDwvY3FhLWJ1dHRvbj5cbiAgICA8Y3FhLWJ1dHRvblxuICAgICAgdmFyaWFudD1cImZpbGxlZFwiXG4gICAgICBidG5TaXplPVwibGdcIlxuICAgICAgdGV4dD1cIlJ1biBBbnl3YXlcIlxuICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtdGV4dC1bMTRweF0gY3FhLXB5LVs5cHhdIGNxYS1yb3VuZGVkLVs4cHhdIGNxYS1ib3JkZXItMCBjcWEtYmctWyMzRjQzRUVdIGNxYS10ZXh0LXdoaXRlJ1wiXG4gICAgICAoY2xpY2tlZCk9XCJvblJ1bkFueXdheSgpXCI+XG4gICAgPC9jcWEtYnV0dG9uPlxuICAgIDxjcWEtYnV0dG9uXG4gICAgICB2YXJpYW50PVwiZmlsbGVkXCJcbiAgICAgIGJ0blNpemU9XCJsZ1wiXG4gICAgICB0ZXh0PVwiUnVuIHdpdGggUHJlcmVxdWlzaXRlc1wiXG4gICAgICBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS10ZXh0LVsxNHB4XSBjcWEtcHktWzlweF0gY3FhLXJvdW5kZWQtWzhweF0gY3FhLWJvcmRlci0wIGNxYS1iZy1bIzNGNDNFRV0gY3FhLXRleHQtd2hpdGUnXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlUnVuV2l0aFByZXJlcVwiXG4gICAgICAoY2xpY2tlZCk9XCJvblJ1bldpdGhQcmVyZXF1aXNpdGVzKClcIj5cbiAgICA8L2NxYS1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWV4ZWN1dGlvbi1hbGVydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3J1bi1leGVjdXRpb24tYWxlcnQvcnVuLWV4ZWN1dGlvbi1hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3Rlc3QtY2FzZS1kZXRhaWxzL3J1bi1leGVjdXRpb24tYWxlcnQvcnVuLWV4ZWN1dGlvbi1hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUkzRDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sMEJBQTBCO0lBdUJyQyxZQUN1QyxJQUEyQztRQXZCbEY7OztXQUdHO1FBQ00sVUFBSyxHQUFHLGtCQUFrQixDQUFDO1FBRXBDOzs7V0FHRztRQUNNLFlBQU8sR0FBRywyRUFBMkUsQ0FBQztRQVMvRix5REFBeUQ7UUFDL0MseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVkxRCxvRUFBb0U7UUFDMUQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFL0Msa0RBQWtEO1FBQ3hDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBWDdDLHFFQUFxRTtRQUNyRSxrRUFBa0U7UUFDbEUsMERBQTBEO1FBQzFELElBQUksSUFBSSxFQUFFLEtBQUs7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekMsSUFBSSxJQUFJLEVBQUUsT0FBTztZQUFFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNqRCxDQUFDO0lBUUQsNEVBQTRFO0lBQzVFLElBQUksb0JBQW9CO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDO1FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7O3VIQTlEVSwwQkFBMEIsa0JBd0JmLGVBQWU7MkdBeEIxQiwwQkFBMEIsK1ZDZHZDLHFyRkEyREE7MkZEN0NhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUIsUUFFN0IsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzswQkEwQjNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs0Q0FuQjVCLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFHSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBYUcsU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5qZWN0LCBPcHRpb25hbCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0RmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuXG4vKipcbiAqIFJ1biBFeGVjdXRpb24gYWxlcnQgbW9kYWwgd2hlbiB0aGUgdXNlciBjbGlja3MgRXhlY3V0aW9uIGJ1dCB0aGUgdGVzdCBjYXNlIGhhcyBubyBwcmVyZXF1aXNpdGVzLlxuICogU2ltaWxhciB0byBkZWxldGUtc3RlcHM6IHR3byBhY3Rpb25zIOKAlCBcIkNhbmNlbFwiIChhYm9ydCkgYW5kIFwiUnVuIEFueXdheVwiIChwcm9jZWVkIHdpdGggZXhlY3V0aW9uKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXJ1bi1leGVjdXRpb24tYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcnVuLWV4ZWN1dGlvbi1hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCcgfSxcbn0pXG5leHBvcnQgY2xhc3MgUnVuRXhlY3V0aW9uQWxlcnRDb21wb25lbnQge1xuICAvKipcbiAgICogVGl0bGUgdGV4dCBzaG93biBpbiB0aGUgaGVhZGVyLlxuICAgKiBDYW4gYmUgcHJvdmlkZWQgZWl0aGVyIHZpYSBASW5wdXQoKSBvciBNQVRfRElBTE9HX0RBVEEuXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZSA9ICdObyBwcmVyZXF1aXNpdGVzJztcblxuICAvKipcbiAgICogQm9keSBtZXNzYWdlIHNob3duIHVuZGVyIHRoZSB0aXRsZS5cbiAgICogQ2FuIGJlIHByb3ZpZGVkIGVpdGhlciB2aWEgQElucHV0KCkgb3IgTUFUX0RJQUxPR19EQVRBLlxuICAgKi9cbiAgQElucHV0KCkgbWVzc2FnZSA9ICdUaGlzIHRlc3QgY2FzZSBoYXMgbm8gcHJlcmVxdWlzaXRlcy4gRG8geW91IHdhbnQgdG8gcnVuIGV4ZWN1dGlvbiBhbnl3YXk/JztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZm9ybSBhbmQgY29uZmlnIGZvciBhIHByZXJlcXVpc2l0ZSBzZWxlY3QgZmllbGQuXG4gICAqIFdoZW4gcHJvdmlkZWQsIGEgY3FhLWR5bmFtaWMtc2VsZWN0IHdpbGwgYmUgcmVuZGVyZWQgaW5zaWRlIHRoaXMgY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KCkgcHJlcmVxdWlzaXRlRm9ybT86IEZvcm1Hcm91cCB8IG51bGw7XG4gIEBJbnB1dCgpIHByZXJlcXVpc2l0ZVNlbGVjdENvbmZpZz86IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB8IG51bGw7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIHdhbnRzIHRvIHJ1biB3aXRoIHByZXJlcXVpc2l0ZXMuICovXG4gIEBPdXRwdXQoKSBydW5XaXRoUHJlcmVxdWlzaXRlcyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZGF0YT86IHsgdGl0bGU/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmcgfVxuICApIHtcbiAgICAvLyBXaGVuIHVzZWQgaW5zaWRlIGFuIEFuZ3VsYXIgTWF0ZXJpYWwgZGlhbG9nLCBhbGxvdyBNQVRfRElBTE9HX0RBVEFcbiAgICAvLyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCB0aXRsZS9tZXNzYWdlLiBASW5wdXQoKSBiaW5kaW5ncyBmcm9tIGFcbiAgICAvLyBwYXJlbnQgY29tcG9uZW50IHdpbGwgc3RpbGwgcnVuIGFmdGVyIHRoaXMgY29uc3RydWN0b3IuXG4gICAgaWYgKGRhdGE/LnRpdGxlKSB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcbiAgICBpZiAoZGF0YT8ubWVzc2FnZSkgdGhpcy5tZXNzYWdlID0gZGF0YS5tZXNzYWdlO1xuICB9XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB1c2VyIGNvbmZpcm1zIHRoZXkgd2FudCB0byBwcm9jZWVkIChSdW4gQW55d2F5KS4gKi9cbiAgQE91dHB1dCgpIHJ1bkFueXdheSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogRW1pdHRlZCB3aGVuIHVzZXIgY2FuY2Vscy9jbG9zZXMgdGhlIGFsZXJ0LiAqL1xuICBAT3V0cHV0KCkgY2FuY2VsbGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBUcnVlIHdoZW4gXCJSdW4gd2l0aCBQcmVyZXF1aXNpdGVzXCIgc2hvdWxkIGJlIGRpc2FibGVkIChubyBzZWxlY3Rpb24pLiAqL1xuICBnZXQgZGlzYWJsZVJ1bldpdGhQcmVyZXEoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnByZXJlcXVpc2l0ZUZvcm0gfHwgIXRoaXMucHJlcmVxdWlzaXRlU2VsZWN0Q29uZmlnPy5rZXkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBjdHJsID0gdGhpcy5wcmVyZXF1aXNpdGVGb3JtLmdldCh0aGlzLnByZXJlcXVpc2l0ZVNlbGVjdENvbmZpZy5rZXkpO1xuICAgIGNvbnN0IHZhbHVlID0gY3RybD8udmFsdWU7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoID09PSAwO1xuICAgIH1cbiAgICByZXR1cm4gIXZhbHVlO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxsZWQuZW1pdCgpO1xuICB9XG5cbiAgb25SdW5Bbnl3YXkoKTogdm9pZCB7XG4gICAgdGhpcy5ydW5Bbnl3YXkuZW1pdCgpO1xuICB9XG5cbiAgb25SdW5XaXRoUHJlcmVxdWlzaXRlcygpOiB2b2lkIHtcbiAgICB0aGlzLnJ1bldpdGhQcmVyZXF1aXNpdGVzLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNxYS1iZy13aGl0ZSBjcWEtcm91bmRlZC1bMTJweF0gY3FhLXNoYWRvdy1sZyBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1bI0U1RTdFQl0gY3FhLXctZnVsbCBjcWEtbWF4LXctWzUwMHB4XSBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC00IGNxYS1wLTYgY3FhLWJveC1ib3JkZXIgY3FhLW1pbi1oLTBcIj5cbiAgPCEtLSBIZWFkZXI6IHRpdGxlICsgY2xvc2UgKFgpIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0YXJ0IGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTEgY3FhLW1pbi13LTBcIj5cbiAgICAgIDxoMiBjbGFzcz1cImNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bMjJweF0gY3FhLWxlYWRpbmctWzI4cHhdIGNxYS10cmFja2luZy1ub3JtYWwgY3FhLXRleHQtWyMxMDE4MjhdIGNxYS1tLTBcIj5cbiAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgIDwvaDI+XG4gICAgICA8cCBjbGFzcz1cImNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1bMTRweF0gY3FhLWxlYWRpbmctWzIxcHhdIGNxYS10cmFja2luZy1bLTAuMTVweF0gY3FhLXRleHQtWyM0QTU1NjVdIGNxYS1tLTBcIj5cbiAgICAgICAge3sgbWVzc2FnZSB9fVxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtbWluLWgtNyBjcWEtbWluLXctNyBjcWEtcm91bmRlZCBjcWEtdGV4dC1bIzZCNzI4MF0gaG92ZXI6Y3FhLWJnLVsjRjNGNEY2XSBjcWEtcC0wIGNxYS1mbGV4LXNocmluay0wXCJcbiAgICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCI+XG4gICAgICA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPHBhdGggZD1cIk0xOCA2TDYgMThNNiA2bDEyIDEyXCIgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8IS0tIE9wdGlvbmFsIHByZXJlcXVpc2l0ZSBzZWxlY3RvciAocmVuZGVyZWQgd2hlbiBpbnB1dHMgYXJlIHByb3ZpZGVkKSAtLT5cbiAgPGRpdiAqbmdJZj1cInByZXJlcXVpc2l0ZUZvcm0gJiYgcHJlcmVxdWlzaXRlU2VsZWN0Q29uZmlnXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsxM3B4XSBjcWEtdGV4dC1bIzM3NDE1MV1cIj5TZWxlY3QgUHJlcmVxdWlzaXRlczwvbGFiZWw+XG4gICAgPGNxYS1keW5hbWljLXNlbGVjdFxuICAgICAgW2Zvcm1dPVwicHJlcmVxdWlzaXRlRm9ybVwiXG4gICAgICBbY29uZmlnXT1cInByZXJlcXVpc2l0ZVNlbGVjdENvbmZpZ1wiPlxuICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8IS0tIEFjdGlvbnM6IENhbmNlbCB8IFJ1biBBbnl3YXkgKHJpZ2h0LWFsaWduZWQpIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1lbmQgY3FhLXctZnVsbCBjcWEtZ2FwLTNcIj5cbiAgICA8Y3FhLWJ1dHRvblxuICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgIGJ0blNpemU9XCJsZ1wiXG4gICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLXRleHQtWzE0cHhdIGNxYS1weS1bOXB4XSBjcWEtYmctd2hpdGUgY3FhLWJvcmRlciBjcWEtYm9yZGVyLXNvbGlkIGNxYS1ib3JkZXItWyM0MTQxNDZdIGNxYS10ZXh0LVsjNDE0MTQ2XSdcIlxuICAgICAgKGNsaWNrZWQpPVwib25DYW5jZWwoKVwiPlxuICAgIDwvY3FhLWJ1dHRvbj5cbiAgICA8Y3FhLWJ1dHRvblxuICAgICAgdmFyaWFudD1cImZpbGxlZFwiXG4gICAgICBidG5TaXplPVwibGdcIlxuICAgICAgdGV4dD1cIlJ1biBBbnl3YXlcIlxuICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtdGV4dC1bMTRweF0gY3FhLXB5LVs5cHhdIGNxYS1yb3VuZGVkLVs4cHhdIGNxYS1ib3JkZXItMCBjcWEtYmctWyMzRjQzRUVdIGNxYS10ZXh0LXdoaXRlJ1wiXG4gICAgICAoY2xpY2tlZCk9XCJvblJ1bkFueXdheSgpXCI+XG4gICAgPC9jcWEtYnV0dG9uPlxuICAgIDxjcWEtYnV0dG9uXG4gICAgICB2YXJpYW50PVwiZmlsbGVkXCJcbiAgICAgIGJ0blNpemU9XCJsZ1wiXG4gICAgICB0ZXh0PVwiUnVuIHdpdGggUHJlcmVxdWlzaXRlc1wiXG4gICAgICBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS10ZXh0LVsxNHB4XSBjcWEtcHktWzlweF0gY3FhLXJvdW5kZWQtWzhweF0gY3FhLWJvcmRlci0wIGNxYS1iZy1bIzNGNDNFRV0gIWNxYS10ZXh0LXdoaXRlJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZVJ1bldpdGhQcmVyZXFcIlxuICAgICAgKGNsaWNrZWQpPVwib25SdW5XaXRoUHJlcmVxdWlzaXRlcygpXCI+XG4gICAgPC9jcWEtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19