@cqa-lib/cqa-ui 1.1.201 → 1.1.202
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/esm2020/lib/step-builder/step-builder-action/step-builder-action.component.mjs +75 -13
- package/esm2020/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.mjs +3 -3
- package/esm2020/lib/step-builder/step-builder-document/step-builder-document.component.mjs +5 -6
- package/esm2020/lib/step-builder/step-builder-group/step-builder-group.component.mjs +148 -0
- package/esm2020/lib/test-case-details/condition-step/condition-step.component.mjs +7 -5
- package/esm2020/lib/test-case-details/loop-step/loop-step.component.mjs +7 -5
- package/esm2020/lib/test-case-details/step-group/step-group.component.mjs +6 -5
- package/esm2020/lib/ui-kit.module.mjs +6 -6
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/cqa-lib-cqa-ui.mjs +192 -617
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +195 -612
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/step-builder/step-builder-action/step-builder-action.component.d.ts +10 -2
- package/lib/step-builder/step-builder-group/step-builder-group.component.d.ts +48 -0
- package/lib/ui-kit.module.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/styles.css +1 -1
- package/esm2020/lib/step-builder/step-builder-api/step-builder-api.component.mjs +0 -636
- package/lib/step-builder/step-builder-api/step-builder-api.component.d.ts +0 -121
|
@@ -175,10 +175,10 @@ export class StepBuilderAiAgentComponent {
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
StepBuilderAiAgentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: StepBuilderAiAgentComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
178
|
-
StepBuilderAiAgentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: StepBuilderAiAgentComponent, selector: "cqa-step-builder-ai-agent", inputs: { typeOptions: "typeOptions", environmentOptions: "environmentOptions", retryCountOptions: "retryCountOptions", iframeLocatorOptions: "iframeLocatorOptions", otherLocatorsOptions: "otherLocatorsOptions", initialQuery: "initialQuery", initialType: "initialType", initialDescription: "initialDescription", initialEnvironments: "initialEnvironments", initialMetadata: "initialMetadata", initialDisabled: "initialDisabled", initialContinueOnError: "initialContinueOnError", initialRetryCount: "initialRetryCount", initialIframeLocator: "initialIframeLocator", initialOtherLocators: "initialOtherLocators", editMode: "editMode" }, outputs: { createStep: "createStep", cancelled: "cancelled" }, host: { classAttribute: "cqa-ui-root" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-bg-white cqa-px-4 cqa-py-2 cqa-h-full\">\n <!-- Header -->\n <h2 class=\"cqa-text-[12px] cqa-font-semibold cqa-text-black-100 cqa-mb-4\">\n {{ editMode ? 'Edit AI Step' : 'Create AI Step' }}\n </h2>\n\n <div class=\"cqa-flex cqa-flex-col cqa-flex-1 cqa-overflow-y-auto\">\n <!-- What should the agent achieve? -->\n <div class=\"cqa-mb-6\">\n <label class=\"cqa-text-[
|
|
178
|
+
StepBuilderAiAgentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: StepBuilderAiAgentComponent, selector: "cqa-step-builder-ai-agent", inputs: { typeOptions: "typeOptions", environmentOptions: "environmentOptions", retryCountOptions: "retryCountOptions", iframeLocatorOptions: "iframeLocatorOptions", otherLocatorsOptions: "otherLocatorsOptions", initialQuery: "initialQuery", initialType: "initialType", initialDescription: "initialDescription", initialEnvironments: "initialEnvironments", initialMetadata: "initialMetadata", initialDisabled: "initialDisabled", initialContinueOnError: "initialContinueOnError", initialRetryCount: "initialRetryCount", initialIframeLocator: "initialIframeLocator", initialOtherLocators: "initialOtherLocators", editMode: "editMode" }, outputs: { createStep: "createStep", cancelled: "cancelled" }, host: { classAttribute: "cqa-ui-root" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"cqa-flex cqa-flex-col cqa-bg-white cqa-px-4 cqa-py-2 cqa-h-full\">\n <!-- Header -->\n <h2 class=\"cqa-text-[12px] cqa-font-semibold cqa-text-black-100 cqa-mb-4\">\n {{ editMode ? 'Edit AI Step' : 'Create AI Step' }}\n </h2>\n\n <div class=\"cqa-flex cqa-flex-col cqa-flex-1 cqa-overflow-y-auto\">\n <!-- What should the agent achieve? -->\n <div class=\"cqa-mb-6\">\n <label class=\"cqa-text-[14px] cqa-font-medium cqa-text-gray-700 cqa-mb-1 cqa-block\">\n What should the agent achieve?<span class=\"cqa-text-[#EF4444] cqa-ml-0.5\">*</span>\n </label>\n <cqa-custom-textarea\n class=\"cqa-step-builder-ai-agent-textarea\"\n [placeholder]=\"'What should the agent achieve?'\"\n [value]=\"aiAgentForm.get('query')?.value\"\n [fullWidth]=\"true\"\n [rows]=\"4\"\n (valueChange)=\"aiAgentForm.get('query')?.setValue($event)\">\n </cqa-custom-textarea>\n <p class=\"cqa-text-[12px] cqa-text-[#0A0A0A] \">\n Tip: Use numbered steps or bullet points for complex tasks.\n </p>\n </div>\n <div class=\"cqa-flex cqa-flex-wrap cqa-custom-form-fields\">\n <!-- Type Dropdown -->\n <div class=\"cqa-mb-6 cqa-w-1/2 cqa-pr-2\">\n <label class=\"cqa-leading-[100%] cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1\">\n Type<span class=\"cqa-text-[#EF4444] cqa-ml-0.5\">*</span>\n </label>\n <cqa-dynamic-select class=\"cqa-w-full\" [form]=\"aiAgentForm\" [config]=\"getTypeConfig()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Environments Dropdown -->\n <div class=\"cqa-mb-6 cqa-w-1/2 cqa-pl-2\">\n <label class=\"cqa-leading-[100%] cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1\">\n Envioronments<span class=\"cqa-text-[#EF4444] cqa-ml-0.5\">*</span>\n </label>\n <cqa-dynamic-select [form]=\"aiAgentForm\" [config]=\"getEnvironmentConfig()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Metadata Input -->\n <div class=\"cqa-mb-2 cqa-w-1/2 cqa-pr-2\">\n <label class=\"cqa-leading-[100%] cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1\">\n Metadata\n </label>\n <cqa-custom-input\n [placeholder]=\"'Text Input'\"\n [value]=\"aiAgentForm.get('metadata')?.value\"\n [fullWidth]=\"true\"\n (valueChange)=\"aiAgentForm.get('metadata')?.setValue($event)\">\n </cqa-custom-input>\n </div>\n\n <!-- Description Input -->\n <div class=\"cqa-w-1/2 cqa-pl-2 \">\n <label class=\"cqa-leading-[100%] cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1\">\n Description\n </label>\n <cqa-custom-input\n [placeholder]=\"'Text Input'\"\n [value]=\"aiAgentForm.get('description')?.value\"\n [fullWidth]=\"true\"\n (valueChange)=\"aiAgentForm.get('description')?.setValue($event)\">\n </cqa-custom-input>\n </div>\n </div>\n\n\n <!-- Advanced Section -->\n <div class=\"cqa-mb-2\">\n <button\n type=\"button\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-w-full cqa-text-left cqa-text-[12px] cqa-font-medium cqa-text-gray-700 cqa-py-2 cqa-border-b cqa-border-gray-200\"\n (click)=\"toggleAdvanced()\">\n <span class=\"cqa-text-[10px]\">Advanced</span>\n <mat-icon class=\"cqa-text-lg cqa-transition-transform\" [class.cqa-rotate-180]=\"showAdvanced\">\n expand_more\n </mat-icon>\n </button>\n <div *ngIf=\"showAdvanced\" class=\" cqa-custom-form-fields cqa-flex cqa-flex-col\">\n <!-- Continue on Error -->\n <div class=\"cqa-mb-4\">\n <div class=\"cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-font-medium cqa-text-[#737373]\">Continue on Error</span>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <cqa-custom-toggle\n [checked]=\"aiAgentForm.get('continueOnError')?.value || false\"\n (checkedChange)=\"aiAgentForm.get('continueOnError')?.setValue($event)\">\n </cqa-custom-toggle>\n <label class=\"cqa-text-[12px] cqa-font-normal cqa-text-[#0A0A0A]\">\n Don't fail the test if this step fails.\n </label>\n </div>\n </div>\n\n <!-- Disabled -->\n <div class=\"cqa-mb-4\">\n <div class=\"cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-font-medium cqa-text-[#737373]\">Disabled</span>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <cqa-custom-toggle\n [checked]=\"aiAgentForm.get('disabled')?.value || false\"\n (checkedChange)=\"aiAgentForm.get('disabled')?.setValue($event)\">\n </cqa-custom-toggle>\n <label class=\"cqa-text-[12px] cqa-font-normal cqa-text-[#0A0A0A]\">\n Skip this step during execution.\n </label>\n </div>\n </div>\n\n <!-- Retry Count -->\n <div class=\"cqa-flex cqa-flex-col cqa-mb-4\">\n <label class=\"cqa-leading-[100%] cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1 cqa-block\">\n Retry Count\n </label>\n <cqa-dynamic-select [form]=\"aiAgentForm\" [config]=\"getRetryCountConfig()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Iframe locator -->\n <div class=\"cqa-flex cqa-flex-col cqa-mb-4\">\n <label class=\"cqa-leading-[100%] cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1 cqa-block\">\n Iframe locator\n </label>\n <cqa-dynamic-select class=\"cqa-text-[#414146]\" [form]=\"aiAgentForm\" [config]=\"getIframeLocatorConfig()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Other Locators -->\n <div class=\"cqa-flex cqa-flex-col cqa-mb-4\">\n <label class=\"cqa-leading-[100%] cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1 cqa-block\">\n Other Locators\n </label>\n <cqa-dynamic-select [form]=\"aiAgentForm\" [config]=\"getOtherLocatorsConfig()\">\n </cqa-dynamic-select>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Action Buttons -->\n <div class=\"cqa-flex cqa-w-full cqa-gap-2 cqa-mt-auto cqa-pt-4 cqa-border-t cqa-border-gray-200\">\n <cqa-button class=\"cqa-w-1/2 cqa-rounded-[10px]\" variant=\"outlined\" text=\"Cancel\" [customClass]=\"'cqa-flex-1 cqa-w-full'\"\n (clicked)=\"onCancel()\">\n </cqa-button>\n <cqa-button class=\"cqa-border-solid cqa-rounded-[9px] cqa-w-1/2 cqa-border cqa-border-[#3F43EE]\" variant=\"filled\" [text]=\"editMode ? 'Update Step' : 'Create Step'\" [customClass]=\"'cqa-flex-1 cqa-w-full'\"\n [disabled]=\"!aiAgentForm.valid\"\n (clicked)=\"onCreateStep()\">\n </cqa-button>\n </div>\n</div>\n\n", components: [{ type: i2.CustomTextareaComponent, selector: "cqa-custom-textarea", inputs: ["label", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "rows", "cols", "resize", "textareaInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused"] }, { type: i3.DynamicSelectFieldComponent, selector: "cqa-dynamic-select", inputs: ["form", "config"], outputs: ["selectionChange", "selectClick", "searchChange", "loadMore", "addCustomValue"] }, { type: i4.CustomInputComponent, selector: "cqa-custom-input", inputs: ["label", "type", "placeholder", "value", "disabled", "errors", "required", "ariaLabel", "size", "fullWidth", "maxLength", "showCharCount", "inputInlineStyle", "labelInlineStyle"], outputs: ["valueChange", "blurred", "focused", "enterPressed"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.CustomToggleComponent, selector: "cqa-custom-toggle", inputs: ["checked", "disabled", "ariaLabel"], outputs: ["checkedChange", "change"] }, { type: i7.ButtonComponent, selector: "cqa-button", inputs: ["variant", "btnSize", "disabled", "icon", "iconPosition", "fullWidth", "iconColor", "type", "text", "customClass", "inlineStyles", "tooltip", "tooltipPosition"], outputs: ["clicked"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
179
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: StepBuilderAiAgentComponent, decorators: [{
|
|
180
180
|
type: Component,
|
|
181
|
-
args: [{ selector: 'cqa-step-builder-ai-agent', host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-flex cqa-flex-col cqa-bg-white cqa-px-4 cqa-py-2 cqa-h-full\">\n <!-- Header -->\n <h2 class=\"cqa-text-[12px] cqa-font-semibold cqa-text-black-100 cqa-mb-4\">\n {{ editMode ? 'Edit AI Step' : 'Create AI Step' }}\n </h2>\n\n <div class=\"cqa-flex cqa-flex-col cqa-flex-1 cqa-overflow-y-auto\">\n <!-- What should the agent achieve? -->\n <div class=\"cqa-mb-6\">\n <label class=\"cqa-text-[
|
|
181
|
+
args: [{ selector: 'cqa-step-builder-ai-agent', host: { class: 'cqa-ui-root' }, template: "<div class=\"cqa-flex cqa-flex-col cqa-bg-white cqa-px-4 cqa-py-2 cqa-h-full\">\n <!-- Header -->\n <h2 class=\"cqa-text-[12px] cqa-font-semibold cqa-text-black-100 cqa-mb-4\">\n {{ editMode ? 'Edit AI Step' : 'Create AI Step' }}\n </h2>\n\n <div class=\"cqa-flex cqa-flex-col cqa-flex-1 cqa-overflow-y-auto\">\n <!-- What should the agent achieve? -->\n <div class=\"cqa-mb-6\">\n <label class=\"cqa-text-[14px] cqa-font-medium cqa-text-gray-700 cqa-mb-1 cqa-block\">\n What should the agent achieve?<span class=\"cqa-text-[#EF4444] cqa-ml-0.5\">*</span>\n </label>\n <cqa-custom-textarea\n class=\"cqa-step-builder-ai-agent-textarea\"\n [placeholder]=\"'What should the agent achieve?'\"\n [value]=\"aiAgentForm.get('query')?.value\"\n [fullWidth]=\"true\"\n [rows]=\"4\"\n (valueChange)=\"aiAgentForm.get('query')?.setValue($event)\">\n </cqa-custom-textarea>\n <p class=\"cqa-text-[12px] cqa-text-[#0A0A0A] \">\n Tip: Use numbered steps or bullet points for complex tasks.\n </p>\n </div>\n <div class=\"cqa-flex cqa-flex-wrap cqa-custom-form-fields\">\n <!-- Type Dropdown -->\n <div class=\"cqa-mb-6 cqa-w-1/2 cqa-pr-2\">\n <label class=\"cqa-leading-[100%] cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1\">\n Type<span class=\"cqa-text-[#EF4444] cqa-ml-0.5\">*</span>\n </label>\n <cqa-dynamic-select class=\"cqa-w-full\" [form]=\"aiAgentForm\" [config]=\"getTypeConfig()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Environments Dropdown -->\n <div class=\"cqa-mb-6 cqa-w-1/2 cqa-pl-2\">\n <label class=\"cqa-leading-[100%] cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1\">\n Envioronments<span class=\"cqa-text-[#EF4444] cqa-ml-0.5\">*</span>\n </label>\n <cqa-dynamic-select [form]=\"aiAgentForm\" [config]=\"getEnvironmentConfig()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Metadata Input -->\n <div class=\"cqa-mb-2 cqa-w-1/2 cqa-pr-2\">\n <label class=\"cqa-leading-[100%] cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1\">\n Metadata\n </label>\n <cqa-custom-input\n [placeholder]=\"'Text Input'\"\n [value]=\"aiAgentForm.get('metadata')?.value\"\n [fullWidth]=\"true\"\n (valueChange)=\"aiAgentForm.get('metadata')?.setValue($event)\">\n </cqa-custom-input>\n </div>\n\n <!-- Description Input -->\n <div class=\"cqa-w-1/2 cqa-pl-2 \">\n <label class=\"cqa-leading-[100%] cqa-block cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1\">\n Description\n </label>\n <cqa-custom-input\n [placeholder]=\"'Text Input'\"\n [value]=\"aiAgentForm.get('description')?.value\"\n [fullWidth]=\"true\"\n (valueChange)=\"aiAgentForm.get('description')?.setValue($event)\">\n </cqa-custom-input>\n </div>\n </div>\n\n\n <!-- Advanced Section -->\n <div class=\"cqa-mb-2\">\n <button\n type=\"button\"\n class=\"cqa-flex cqa-items-center cqa-justify-between cqa-w-full cqa-text-left cqa-text-[12px] cqa-font-medium cqa-text-gray-700 cqa-py-2 cqa-border-b cqa-border-gray-200\"\n (click)=\"toggleAdvanced()\">\n <span class=\"cqa-text-[10px]\">Advanced</span>\n <mat-icon class=\"cqa-text-lg cqa-transition-transform\" [class.cqa-rotate-180]=\"showAdvanced\">\n expand_more\n </mat-icon>\n </button>\n <div *ngIf=\"showAdvanced\" class=\" cqa-custom-form-fields cqa-flex cqa-flex-col\">\n <!-- Continue on Error -->\n <div class=\"cqa-mb-4\">\n <div class=\"cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-font-medium cqa-text-[#737373]\">Continue on Error</span>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <cqa-custom-toggle\n [checked]=\"aiAgentForm.get('continueOnError')?.value || false\"\n (checkedChange)=\"aiAgentForm.get('continueOnError')?.setValue($event)\">\n </cqa-custom-toggle>\n <label class=\"cqa-text-[12px] cqa-font-normal cqa-text-[#0A0A0A]\">\n Don't fail the test if this step fails.\n </label>\n </div>\n </div>\n\n <!-- Disabled -->\n <div class=\"cqa-mb-4\">\n <div class=\"cqa-mb-2\">\n <span class=\"cqa-text-[10px] cqa-font-medium cqa-text-[#737373]\">Disabled</span>\n </div>\n <div class=\"cqa-flex cqa-items-center cqa-gap-2\">\n <cqa-custom-toggle\n [checked]=\"aiAgentForm.get('disabled')?.value || false\"\n (checkedChange)=\"aiAgentForm.get('disabled')?.setValue($event)\">\n </cqa-custom-toggle>\n <label class=\"cqa-text-[12px] cqa-font-normal cqa-text-[#0A0A0A]\">\n Skip this step during execution.\n </label>\n </div>\n </div>\n\n <!-- Retry Count -->\n <div class=\"cqa-flex cqa-flex-col cqa-mb-4\">\n <label class=\"cqa-leading-[100%] cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1 cqa-block\">\n Retry Count\n </label>\n <cqa-dynamic-select [form]=\"aiAgentForm\" [config]=\"getRetryCountConfig()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Iframe locator -->\n <div class=\"cqa-flex cqa-flex-col cqa-mb-4\">\n <label class=\"cqa-leading-[100%] cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1 cqa-block\">\n Iframe locator\n </label>\n <cqa-dynamic-select class=\"cqa-text-[#414146]\" [form]=\"aiAgentForm\" [config]=\"getIframeLocatorConfig()\">\n </cqa-dynamic-select>\n </div>\n\n <!-- Other Locators -->\n <div class=\"cqa-flex cqa-flex-col cqa-mb-4\">\n <label class=\"cqa-leading-[100%] cqa-text-[14px] cqa-font-medium cqa-text-[#161617] cqa-mb-1 cqa-block\">\n Other Locators\n </label>\n <cqa-dynamic-select [form]=\"aiAgentForm\" [config]=\"getOtherLocatorsConfig()\">\n </cqa-dynamic-select>\n </div>\n </div>\n </div>\n </div>\n\n <!-- Action Buttons -->\n <div class=\"cqa-flex cqa-w-full cqa-gap-2 cqa-mt-auto cqa-pt-4 cqa-border-t cqa-border-gray-200\">\n <cqa-button class=\"cqa-w-1/2 cqa-rounded-[10px]\" variant=\"outlined\" text=\"Cancel\" [customClass]=\"'cqa-flex-1 cqa-w-full'\"\n (clicked)=\"onCancel()\">\n </cqa-button>\n <cqa-button class=\"cqa-border-solid cqa-rounded-[9px] cqa-w-1/2 cqa-border cqa-border-[#3F43EE]\" variant=\"filled\" [text]=\"editMode ? 'Update Step' : 'Create Step'\" [customClass]=\"'cqa-flex-1 cqa-w-full'\"\n [disabled]=\"!aiAgentForm.valid\"\n (clicked)=\"onCreateStep()\">\n </cqa-button>\n </div>\n</div>\n\n", styles: [] }]
|
|
182
182
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { typeOptions: [{
|
|
183
183
|
type: Input
|
|
184
184
|
}], environmentOptions: [{
|
|
@@ -216,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
216
216
|
}], cancelled: [{
|
|
217
217
|
type: Output
|
|
218
218
|
}] } });
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1idWlsZGVyLWFpLWFnZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlcC1idWlsZGVyL3N0ZXAtYnVpbGRlci1haS1hZ2VudC9zdGVwLWJ1aWxkZXItYWktYWdlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWFpLWFnZW50L3N0ZXAtYnVpbGRlci1haS1hZ2VudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBc0JwRSxNQUFNLE9BQU8sMkJBQTJCO0lBdUN0QyxZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXRDbkMsZ0NBQWdDO1FBQ3ZCLGdCQUFXLEdBQW1CLEVBQUUsQ0FBQztRQUUxQyx3Q0FBd0M7UUFDL0IsdUJBQWtCLEdBQW1CLEVBQUUsQ0FBQztRQUVqRCx1Q0FBdUM7UUFDOUIsc0JBQWlCLEdBQW1CLEVBQUUsQ0FBQztRQUVoRCwwQ0FBMEM7UUFDakMseUJBQW9CLEdBQW1CLEVBQUUsQ0FBQztRQUVuRCwwQ0FBMEM7UUFDakMseUJBQW9CLEdBQW1CLEVBQUUsQ0FBQztRQWExQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRW5DLGdDQUFnQztRQUN0QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFM0QsMEJBQTBCO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRy9DLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQ3RCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUc1QyxJQUFJLENB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QVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0RmllbGRDb25maWcsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWlBZ2VudEZvcm1EYXRhIHtcbiAgcXVlcnk6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBlbnZpcm9ubWVudHM6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHJldHJ5Q291bnQ/OiBzdHJpbmc7XG4gIGlmcmFtZUxvY2F0b3I/OiBzdHJpbmc7XG4gIG90aGVyTG9jYXRvcnM/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1zdGVwLWJ1aWxkZXItYWktYWdlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcC1idWlsZGVyLWFpLWFnZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBCdWlsZGVyQWlBZ2VudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIE9wdGlvbnMgZm9yIHR5cGUgZHJvcGRvd24gKi9cbiAgQElucHV0KCkgdHlwZU9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqIE9wdGlvbnMgZm9yIGVudmlyb25tZW50cyBkcm9wZG93biAqL1xuICBASW5wdXQoKSBlbnZpcm9ubWVudE9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqIE9wdGlvbnMgZm9yIHJldHJ5IGNvdW50IGRyb3Bkb3duICovXG4gIEBJbnB1dCgpIHJldHJ5Q291bnRPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xuXG4gIC8qKiBPcHRpb25zIGZvciBpZnJhbWUgbG9jYXRvciBkcm9wZG93biAqL1xuICBASW5wdXQoKSBpZnJhbWVMb2NhdG9yT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcblxuICAvKiogT3B0aW9ucyBmb3Igb3RoZXIgbG9jYXRvcnMgZHJvcGRvd24gKi9cbiAgQElucHV0KCkgb3RoZXJMb2NhdG9yc09wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqIEluaXRpYWwgdmFsdWVzIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbFF1ZXJ5Pzogc3RyaW5nO1xuICBASW5wdXQoKSBpbml0aWFsVHlwZT86IHN0cmluZztcbiAgQElucHV0KCkgaW5pdGlhbERlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbml0aWFsRW52aXJvbm1lbnRzPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbml0aWFsTWV0YWRhdGE/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluaXRpYWxEaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGluaXRpYWxDb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xuICBASW5wdXQoKSBpbml0aWFsUmV0cnlDb3VudD86IG51bWJlcjtcbiAgQElucHV0KCkgaW5pdGlhbElmcmFtZUxvY2F0b3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluaXRpYWxPdGhlckxvY2F0b3JzPzogc3RyaW5nO1xuICBASW5wdXQoKSBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBFbWl0IHdoZW4gc3RlcCBpcyBjcmVhdGVkICovXG4gIEBPdXRwdXQoKSBjcmVhdGVTdGVwID0gbmV3IEV2ZW50RW1pdHRlcjxBaUFnZW50Rm9ybURhdGE+KCk7XG5cbiAgLyoqIEVtaXQgd2hlbiBjYW5jZWxsZWQgKi9cbiAgQE91dHB1dCgpIGNhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBhaUFnZW50Rm9ybTogRm9ybUdyb3VwO1xuICBzaG93QWR2YW5jZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBoYXNMb2FkZWRJbml0aWFsRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5haUFnZW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcXVlcnk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICB0eXBlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZW52aXJvbm1lbnRzOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgbWV0YWRhdGE6IFsnJ10sXG4gICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICAgIGNvbnRpbnVlT25FcnJvcjogW2ZhbHNlXSxcbiAgICAgIGRpc2FibGVkOiBbZmFsc2VdLFxuICAgICAgcmV0cnlDb3VudDogWycnXSxcbiAgICAgIGlmcmFtZUxvY2F0b3I6IFsnJ10sXG4gICAgICBvdGhlckxvY2F0b3JzOiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBMb2FkIGluaXRpYWwgZGF0YSBpZiBwcm92aWRlZCAoZWRpdCBtb2RlKVxuICAgIGlmICh0aGlzLmhhc0luaXRpYWxEYXRhKCkpIHtcbiAgICAgIHRoaXMubG9hZEluaXRpYWxEYXRhKCk7XG4gICAgICB0aGlzLmhhc0xvYWRlZEluaXRpYWxEYXRhID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgYW55IGluaXRpYWwgdmFsdWUgaW5wdXRzIGNoYW5nZWRcbiAgICBjb25zdCBpbml0aWFsVmFsdWVLZXlzID0gW1xuICAgICAgJ2luaXRpYWxRdWVyeScsICdpbml0aWFsVHlwZScsICdpbml0aWFsRGVzY3JpcHRpb24nLCAnaW5pdGlhbEVudmlyb25tZW50cycsXG4gICAgICAnaW5pdGlhbE1ldGFkYXRhJywgJ2luaXRpYWxEaXNhYmxlZCcsICdpbml0aWFsQ29udGludWVPbkVycm9yJyxcbiAgICAgICdpbml0aWFsUmV0cnlDb3VudCcsICdpbml0aWFsSWZyYW1lTG9jYXRvcicsICdpbml0aWFsT3RoZXJMb2NhdG9ycycsICdlZGl0TW9kZSdcbiAgICBdO1xuICAgIFxuICAgIGNvbnN0IGhhc0luaXRpYWxWYWx1ZUNoYW5nZXMgPSBpbml0aWFsVmFsdWVLZXlzLnNvbWUoa2V5ID0+IFxuICAgICAgY2hhbmdlc1trZXldICYmICFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2VcbiAgICApO1xuICAgIFxuICAgIC8vIExvYWQgaW5pdGlhbCBkYXRhIGlmIGl0J3Mgc2V0IGFmdGVyIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbiBvciBpZiBpbml0aWFsIHZhbHVlcyBjaGFuZ2VkXG4gICAgaWYgKGhhc0luaXRpYWxWYWx1ZUNoYW5nZXMgfHwgKHRoaXMuaGFzSW5pdGlhbERhdGEoKSAmJiAhdGhpcy5oYXNMb2FkZWRJbml0aWFsRGF0YSkpIHtcbiAgICAgIHRoaXMubG9hZEluaXRpYWxEYXRhKCk7XG4gICAgICB0aGlzLmhhc0xvYWRlZEluaXRpYWxEYXRhID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc0luaXRpYWxEYXRhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmluaXRpYWxRdWVyeSB8fCB0aGlzLmluaXRpYWxUeXBlIHx8IHRoaXMuaW5pdGlhbERlc2NyaXB0aW9uIHx8IFxuICAgICAgICAgICAgICB0aGlzLmluaXRpYWxFbnZpcm9ubWVudHMgfHwgdGhpcy5pbml0aWFsTWV0YWRhdGEgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICB0aGlzLmluaXRpYWxEaXNhYmxlZCAhPT0gdW5kZWZpbmVkIHx8IHRoaXMuaW5pdGlhbENvbnRpbnVlT25FcnJvciAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFJldHJ5Q291bnQgIT09IHVuZGVmaW5lZCB8fCB0aGlzLmluaXRpYWxJZnJhbWVMb2NhdG9yIHx8IFxuICAgICAgICAgICAgICB0aGlzLmluaXRpYWxPdGhlckxvY2F0b3JzKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEluaXRpYWxEYXRhKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdsb2FkSW5pdGlhbERhdGE6IExvYWRpbmcgQUktYWdlbnQgZGF0YScsIHtcbiAgICAgIGluaXRpYWxRdWVyeTogdGhpcy5pbml0aWFsUXVlcnksXG4gICAgICBpbml0aWFsVHlwZTogdGhpcy5pbml0aWFsVHlwZSxcbiAgICAgIGluaXRpYWxEZXNjcmlwdGlvbjogdGhpcy5pbml0aWFsRGVzY3JpcHRpb24sXG4gICAgICBpbml0aWFsRW52aXJvbm1lbnRzOiB0aGlzLmluaXRpYWxFbnZpcm9ubWVudHMsXG4gICAgICBpbml0aWFsTWV0YWRhdGE6IHRoaXMuaW5pdGlhbE1ldGFkYXRhLFxuICAgICAgaW5pdGlhbERpc2FibGVkOiB0aGlzLmluaXRpYWxEaXNhYmxlZCxcbiAgICAgIGluaXRpYWxDb250aW51ZU9uRXJyb3I6IHRoaXMuaW5pdGlhbENvbnRpbnVlT25FcnJvcixcbiAgICAgIGluaXRpYWxSZXRyeUNvdW50OiB0aGlzLmluaXRpYWxSZXRyeUNvdW50LFxuICAgICAgaW5pdGlhbElmcmFtZUxvY2F0b3I6IHRoaXMuaW5pdGlhbElmcmFtZUxvY2F0b3IsXG4gICAgICBpbml0aWFsT3RoZXJMb2NhdG9yczogdGhpcy5pbml0aWFsT3RoZXJMb2NhdG9ycyxcbiAgICAgIGVkaXRNb2RlOiB0aGlzLmVkaXRNb2RlXG4gICAgfSk7XG5cbiAgICAvLyBQb3B1bGF0ZSBmb3JtIHdpdGggaW5pdGlhbCB2YWx1ZXNcbiAgICB0aGlzLmFpQWdlbnRGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgcXVlcnk6IHRoaXMuaW5pdGlhbFF1ZXJ5IHx8ICcnLFxuICAgICAgdHlwZTogdGhpcy5pbml0aWFsVHlwZSB8fCAnJyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmluaXRpYWxEZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIGVudmlyb25tZW50czogdGhpcy5pbml0aWFsRW52aXJvbm1lbnRzIHx8ICcnLFxuICAgICAgbWV0YWRhdGE6IHRoaXMuaW5pdGlhbE1ldGFkYXRhIHx8ICcnLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuaW5pdGlhbERpc2FibGVkICE9PSB1bmRlZmluZWQgPyB0aGlzLmluaXRpYWxEaXNhYmxlZCA6IGZhbHNlLFxuICAgICAgY29udGludWVPbkVycm9yOiB0aGlzLmluaXRpYWxDb250aW51ZU9uRXJyb3IgIT09IHVuZGVmaW5lZCA/IHRoaXMuaW5pdGlhbENvbnRpbnVlT25FcnJvciA6IHRydWUsXG4gICAgICByZXRyeUNvdW50OiB0aGlzLmluaXRpYWxSZXRyeUNvdW50ICE9PSB1bmRlZmluZWQgPyBTdHJpbmcodGhpcy5pbml0aWFsUmV0cnlDb3VudCkgOiAnJyxcbiAgICAgIGlmcmFtZUxvY2F0b3I6IHRoaXMuaW5pdGlhbElmcmFtZUxvY2F0b3IgfHwgJycsXG4gICAgICBvdGhlckxvY2F0b3JzOiB0aGlzLmluaXRpYWxPdGhlckxvY2F0b3JzIHx8ICcnXG4gICAgfSk7XG5cbiAgICAvLyBFeHBhbmQgYWR2YW5jZWQgc2VjdGlvbiBpZiBhbnkgYWR2YW5jZWQgZmllbGRzIGhhdmUgdmFsdWVzXG4gICAgaWYgKHRoaXMuaW5pdGlhbERpc2FibGVkICE9PSB1bmRlZmluZWQgfHwgdGhpcy5pbml0aWFsQ29udGludWVPbkVycm9yICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgdGhpcy5pbml0aWFsUmV0cnlDb3VudCAhPT0gdW5kZWZpbmVkIHx8IHRoaXMuaW5pdGlhbElmcmFtZUxvY2F0b3IgfHwgXG4gICAgICAgIHRoaXMuaW5pdGlhbE90aGVyTG9jYXRvcnMpIHtcbiAgICAgIHRoaXMuc2hvd0FkdmFuY2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXRUeXBlQ29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ3R5cGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgdHlwZScsXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMudHlwZU9wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgZ2V0RW52aXJvbm1lbnRDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnZW52aXJvbm1lbnRzJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IGVudmlyb25tZW50JyxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIHNlYXJjaGFibGU6IGZhbHNlLFxuICAgICAgb3B0aW9uczogdGhpcy5lbnZpcm9ubWVudE9wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgZ2V0UmV0cnlDb3VudENvbmZpZygpOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6ICdyZXRyeUNvdW50JyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnRHluYW1pYyBzZWFyY2ggc2VsZWN0b3IgZnJvbSBsaWJyYXJ5IG9yIG1hbnVhbCcsXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgICAgb3B0aW9uczogdGhpcy5yZXRyeUNvdW50T3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBnZXRJZnJhbWVMb2NhdG9yQ29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ2lmcmFtZUxvY2F0b3InLFxuICAgICAgcGxhY2Vob2xkZXI6ICdEeW5hbWljIHNlYXJjaCBzZWxlY3RvciBmcm9tIGxpYnJhcnkgb3IgbWFudWFsJyxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgICBvcHRpb25zOiB0aGlzLmlmcmFtZUxvY2F0b3JPcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIGdldE90aGVyTG9jYXRvcnNDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnb3RoZXJMb2NhdG9ycycsXG4gICAgICBwbGFjZWhvbGRlcjogJ0R5bmFtaWMgc2VhcmNoIHNlbGVjdG9yIGZyb20gbGlicmFyeSBvciBtYW51YWwnLFxuICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMub3RoZXJMb2NhdG9yc09wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgdG9nZ2xlQWR2YW5jZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93QWR2YW5jZWQgPSAhdGhpcy5zaG93QWR2YW5jZWQ7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBvbkNyZWF0ZVN0ZXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWlBZ2VudEZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuYWlBZ2VudEZvcm0udmFsdWU7XG4gICAgICBjb25zdCBzdGVwRGF0YTogQWlBZ2VudEZvcm1EYXRhID0ge1xuICAgICAgICBxdWVyeTogZm9ybVZhbHVlLnF1ZXJ5IHx8ICcnLFxuICAgICAgICB0eXBlOiBmb3JtVmFsdWUudHlwZSB8fCAnJyxcbiAgICAgICAgZW52aXJvbm1lbnRzOiBmb3JtVmFsdWUuZW52aXJvbm1lbnRzIHx8ICcnLFxuICAgICAgICBtZXRhZGF0YTogZm9ybVZhbHVlLm1ldGFkYXRhIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogZm9ybVZhbHVlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICBjb250aW51ZU9uRXJyb3I6IGZvcm1WYWx1ZS5jb250aW51ZU9uRXJyb3IgfHwgZmFsc2UsXG4gICAgICAgIGRpc2FibGVkOiBmb3JtVmFsdWUuZGlzYWJsZWQgfHwgZmFsc2UsXG4gICAgICAgIHJldHJ5Q291bnQ6IGZvcm1WYWx1ZS5yZXRyeUNvdW50IHx8ICcnLFxuICAgICAgICBpZnJhbWVMb2NhdG9yOiBmb3JtVmFsdWUuaWZyYW1lTG9jYXRvciB8fCAnJyxcbiAgICAgICAgb3RoZXJMb2NhdG9yczogZm9ybVZhbHVlLm90aGVyTG9jYXRvcnMgfHwgJydcbiAgICAgIH07XG4gICAgICB0aGlzLmNyZWF0ZVN0ZXAuZW1pdChzdGVwRGF0YSk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWJnLXdoaXRlIGNxYS1weC00IGNxYS1weS0yIGNxYS1oLWZ1bGxcIj5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxoMiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1ibGFjay0xMDAgY3FhLW1iLTRcIj5cbiAgICB7eyBlZGl0TW9kZSA/ICdFZGl0IEFJIFN0ZXAnIDogJ0NyZWF0ZSBBSSBTdGVwJyB9fVxuICA8L2gyPlxuXG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWZsZXgtMSBjcWEtb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgPCEtLSBXaGF0IHNob3VsZCB0aGUgYWdlbnQgYWNoaWV2ZT8gLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1tYi02XCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwIGNxYS1tYi0xIGNxYS1ibG9ja1wiPlxuICAgICAgICBXaGF0IHNob3VsZCB0aGUgYWdlbnQgYWNoaWV2ZT88c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjRUY0NDQ0XSBjcWEtbWwtMC41XCI+Kjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8Y3FhLWN1c3RvbS10ZXh0YXJlYVxuICAgICAgIGNsYXNzPVwiY3FhLXN0ZXAtYnVpbGRlci1haS1hZ2VudC10ZXh0YXJlYVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInV2hhdCBzaG91bGQgdGhlIGFnZW50IGFjaGlldmU/J1wiXG4gICAgICAgIFt2YWx1ZV09XCJhaUFnZW50Rm9ybS5nZXQoJ3F1ZXJ5Jyk/LnZhbHVlXCJcbiAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgW3Jvd3NdPVwiNFwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJhaUFnZW50Rm9ybS5nZXQoJ3F1ZXJ5Jyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWN1c3RvbS10ZXh0YXJlYT5cbiAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS10ZXh0LVsjMEEwQTBBXSBcIj5cbiAgICAgICAgVGlwOiBVc2UgbnVtYmVyZWQgc3RlcHMgb3IgYnVsbGV0IHBvaW50cyBmb3IgY29tcGxleCB0YXNrcy5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtY3VzdG9tLWZvcm0tZmllbGRzXCI+XG4gICAgPCEtLSBUeXBlIERyb3Bkb3duIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtbWItNiBjcWEtdy0xLzIgY3FhLXByLTJcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtYmxvY2sgY3FhLXRleHQtWzEycHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzE2MTYxN10gY3FhLW1iLTFcIj5cbiAgICAgICAgVHlwZTxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyNFRjQ0NDRdIGNxYS1tbC0wLjVcIj4qPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgY2xhc3M9XCJjcWEtdy1mdWxsXCIgW2Zvcm1dPVwiYWlBZ2VudEZvcm1cIiBbY29uZmlnXT1cImdldFR5cGVDb25maWcoKVwiPlxuICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEVudmlyb25tZW50cyBEcm9wZG93biAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLW1iLTYgY3FhLXctMS8yIGNxYS1wbC0yXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtbGVhZGluZy1bMTAwJV0gY3FhLWJsb2NrIGNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMxNjE2MTddIGNxYS1tYi0xXCI+XG4gICAgICAgIEVudmlvcm9ubWVudHM8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjRUY0NDQ0XSBjcWEtbWwtMC41XCI+Kjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImFpQWdlbnRGb3JtXCIgW2NvbmZpZ109XCJnZXRFbnZpcm9ubWVudENvbmZpZygpXCI+XG4gICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gTWV0YWRhdGEgSW5wdXQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1tYi0yIGNxYS13LTEvMiBjcWEtcHItMlwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLWxlYWRpbmctWzEwMCVdIGNxYS1ibG9jayBjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTYxNjE3XSBjcWEtbWItMVwiPlxuICAgICAgICBNZXRhZGF0YVxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInVGV4dCBJbnB1dCdcIlxuICAgICAgICBbdmFsdWVdPVwiYWlBZ2VudEZvcm0uZ2V0KCdtZXRhZGF0YScpPy52YWx1ZVwiXG4gICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJhaUFnZW50Rm9ybS5nZXQoJ21ldGFkYXRhJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRGVzY3JpcHRpb24gSW5wdXQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS13LTEvMiBjcWEtcGwtMiBcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtYmxvY2sgY3FhLXRleHQtWzEycHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzE2MTYxN10gY3FhLW1iLTFcIj5cbiAgICAgICAgRGVzY3JpcHRpb25cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RleHQgSW5wdXQnXCJcbiAgICAgICAgW3ZhbHVlXT1cImFpQWdlbnRGb3JtLmdldCgnZGVzY3JpcHRpb24nKT8udmFsdWVcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiYWlBZ2VudEZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpPy5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cblxuICAgIDwhLS0gQWR2YW5jZWQgU2VjdGlvbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLW1iLTJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS13LWZ1bGwgY3FhLXRleHQtbGVmdCBjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwIGNxYS1weS0yIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFkdmFuY2VkKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF1cIj5BZHZhbmNlZDwvc3Bhbj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtbGcgY3FhLXRyYW5zaXRpb24tdHJhbnNmb3JtXCIgW2NsYXNzLmNxYS1yb3RhdGUtMTgwXT1cInNob3dBZHZhbmNlZFwiPlxuICAgICAgICAgIGV4cGFuZF9tb3JlXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93QWR2YW5jZWRcIiBjbGFzcz1cIiBjcWEtY3VzdG9tLWZvcm0tZmllbGRzIGNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgICAgICA8IS0tIENvbnRpbnVlIG9uIEVycm9yIC0tPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzczNzM3M11cIj5Db250aW51ZSBvbiBFcnJvcjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICAgIDxjcWEtY3VzdG9tLXRvZ2dsZVxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiYWlBZ2VudEZvcm0uZ2V0KCdjb250aW51ZU9uRXJyb3InKT8udmFsdWUgfHwgZmFsc2VcIlxuICAgICAgICAgICAgKGNoZWNrZWRDaGFuZ2UpPVwiYWlBZ2VudEZvcm0uZ2V0KCdjb250aW51ZU9uRXJyb3InKT8uc2V0VmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvY3FhLWN1c3RvbS10b2dnbGU+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1bIzBBMEEwQV1cIj5cbiAgICAgICAgICAgIERvbid0IGZhaWwgdGhlIHRlc3QgaWYgdGhpcyBzdGVwIGZhaWxzLlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gRGlzYWJsZWQgLS0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNzM3MzczXVwiPkRpc2FibGVkPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi00XCI+XG4gICAgICAgICAgPGNxYS1jdXN0b20tdG9nZ2xlXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJhaUFnZW50Rm9ybS5nZXQoJ2Rpc2FibGVkJyk/LnZhbHVlIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIChjaGVja2VkQ2hhbmdlKT1cImFpQWdlbnRGb3JtLmdldCgnZGlzYWJsZWQnKT8uc2V0VmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvY3FhLWN1c3RvbS10b2dnbGU+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1mb250LW5vcm1hbCBjcWEtdGV4dC1bIzBBMEEwQV1cIj5cbiAgICAgICAgICAgIFNraXAgdGhpcyBzdGVwIGR1cmluZyBleGVjdXRpb24uXG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBSZXRyeSBDb3VudCAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtbWItNFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTYxNjE3XSBjcWEtbWItMSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICAgIFJldHJ5IENvdW50XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImFpQWdlbnRGb3JtXCIgW2NvbmZpZ109XCJnZXRSZXRyeUNvdW50Q29uZmlnKClcIj5cbiAgICAgICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBJZnJhbWUgbG9jYXRvciAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtbWItNFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTYxNjE3XSBjcWEtbWItMSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICAgIElmcmFtZSBsb2NhdG9yXG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IGNsYXNzPVwiY3FhLXRleHQtWyM0MTQxNDZdXCIgW2Zvcm1dPVwiYWlBZ2VudEZvcm1cIiBbY29uZmlnXT1cImdldElmcmFtZUxvY2F0b3JDb25maWcoKVwiPlxuICAgICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIE90aGVyIExvY2F0b3JzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1tYi00XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLWxlYWRpbmctWzEwMCVdIGNxYS10ZXh0LVsxNHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMxNjE2MTddIGNxYS1tYi0xIGNxYS1ibG9ja1wiPlxuICAgICAgICAgICAgT3RoZXIgTG9jYXRvcnNcbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgW2Zvcm1dPVwiYWlBZ2VudEZvcm1cIiBbY29uZmlnXT1cImdldE90aGVyTG9jYXRvcnNDb25maWcoKVwiPlxuICAgICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLXctZnVsbCBjcWEtZ2FwLTIgY3FhLW10LWF1dG8gY3FhLXB0LTQgY3FhLWJvcmRlci10IGNxYS1ib3JkZXItZ3JheS0yMDBcIj5cbiAgICA8Y3FhLWJ1dHRvbiBjbGFzcz1cImNxYS13LTEvMiBjcWEtcm91bmRlZC1bMTBweF1cIiB2YXJpYW50PVwib3V0bGluZWRcIiB0ZXh0PVwiQ2FuY2VsXCIgW2N1c3RvbUNsYXNzXT1cIidjcWEtZmxleC0xIGNxYS13LWZ1bGwnXCJcbiAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIj5cbiAgICA8L2NxYS1idXR0b24+XG4gICAgPGNxYS1idXR0b24gY2xhc3M9XCJjcWEtYm9yZGVyLXNvbGlkIGNxYS1yb3VuZGVkLVs5cHhdIGNxYS13LTEvMiBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyMzRjQzRUVdXCIgdmFyaWFudD1cImZpbGxlZFwiIFt0ZXh0XT1cImVkaXRNb2RlID8gJ1VwZGF0ZSBTdGVwJyA6ICdDcmVhdGUgU3RlcCdcIiBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS1mbGV4LTEgY3FhLXctZnVsbCdcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFhaUFnZW50Rm9ybS52YWxpZFwiXG4gICAgICAoY2xpY2tlZCk9XCJvbkNyZWF0ZVN0ZXAoKVwiPlxuICAgIDwvY3FhLWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1idWlsZGVyLWFpLWFnZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlcC1idWlsZGVyL3N0ZXAtYnVpbGRlci1haS1hZ2VudC9zdGVwLWJ1aWxkZXItYWktYWdlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWFpLWFnZW50L3N0ZXAtYnVpbGRlci1haS1hZ2VudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBc0JwRSxNQUFNLE9BQU8sMkJBQTJCO0lBdUN0QyxZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXRDbkMsZ0NBQWdDO1FBQ3ZCLGdCQUFXLEdBQW1CLEVBQUUsQ0FBQztRQUUxQyx3Q0FBd0M7UUFDL0IsdUJBQWtCLEdBQW1CLEVBQUUsQ0FBQztRQUVqRCx1Q0FBdUM7UUFDOUIsc0JBQWlCLEdBQW1CLEVBQUUsQ0FBQztRQUVoRCwwQ0FBMEM7UUFDakMseUJBQW9CLEdBQW1CLEVBQUUsQ0FBQztRQUVuRCwwQ0FBMEM7UUFDakMseUJBQW9CLEdBQW1CLEVBQUUsQ0FBQztRQWExQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRW5DLGdDQUFnQztRQUN0QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFM0QsMEJBQTBCO1FBQ2hCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRy9DLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQ3RCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUc1QyxJQUFJLENB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QVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFHSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0RmllbGRDb25maWcsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWlBZ2VudEZvcm1EYXRhIHtcbiAgcXVlcnk6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBlbnZpcm9ubWVudHM6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHJldHJ5Q291bnQ/OiBzdHJpbmc7XG4gIGlmcmFtZUxvY2F0b3I/OiBzdHJpbmc7XG4gIG90aGVyTG9jYXRvcnM/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1zdGVwLWJ1aWxkZXItYWktYWdlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcC1idWlsZGVyLWFpLWFnZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290JyB9XG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBCdWlsZGVyQWlBZ2VudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqIE9wdGlvbnMgZm9yIHR5cGUgZHJvcGRvd24gKi9cbiAgQElucHV0KCkgdHlwZU9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqIE9wdGlvbnMgZm9yIGVudmlyb25tZW50cyBkcm9wZG93biAqL1xuICBASW5wdXQoKSBlbnZpcm9ubWVudE9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqIE9wdGlvbnMgZm9yIHJldHJ5IGNvdW50IGRyb3Bkb3duICovXG4gIEBJbnB1dCgpIHJldHJ5Q291bnRPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xuXG4gIC8qKiBPcHRpb25zIGZvciBpZnJhbWUgbG9jYXRvciBkcm9wZG93biAqL1xuICBASW5wdXQoKSBpZnJhbWVMb2NhdG9yT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcblxuICAvKiogT3B0aW9ucyBmb3Igb3RoZXIgbG9jYXRvcnMgZHJvcGRvd24gKi9cbiAgQElucHV0KCkgb3RoZXJMb2NhdG9yc09wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqIEluaXRpYWwgdmFsdWVzIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbFF1ZXJ5Pzogc3RyaW5nO1xuICBASW5wdXQoKSBpbml0aWFsVHlwZT86IHN0cmluZztcbiAgQElucHV0KCkgaW5pdGlhbERlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbml0aWFsRW52aXJvbm1lbnRzPzogc3RyaW5nO1xuICBASW5wdXQoKSBpbml0aWFsTWV0YWRhdGE/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluaXRpYWxEaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGluaXRpYWxDb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xuICBASW5wdXQoKSBpbml0aWFsUmV0cnlDb3VudD86IG51bWJlcjtcbiAgQElucHV0KCkgaW5pdGlhbElmcmFtZUxvY2F0b3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGluaXRpYWxPdGhlckxvY2F0b3JzPzogc3RyaW5nO1xuICBASW5wdXQoKSBlZGl0TW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBFbWl0IHdoZW4gc3RlcCBpcyBjcmVhdGVkICovXG4gIEBPdXRwdXQoKSBjcmVhdGVTdGVwID0gbmV3IEV2ZW50RW1pdHRlcjxBaUFnZW50Rm9ybURhdGE+KCk7XG5cbiAgLyoqIEVtaXQgd2hlbiBjYW5jZWxsZWQgKi9cbiAgQE91dHB1dCgpIGNhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBhaUFnZW50Rm9ybTogRm9ybUdyb3VwO1xuICBzaG93QWR2YW5jZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBoYXNMb2FkZWRJbml0aWFsRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5haUFnZW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgcXVlcnk6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICB0eXBlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZW52aXJvbm1lbnRzOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgbWV0YWRhdGE6IFsnJ10sXG4gICAgICBkZXNjcmlwdGlvbjogWycnXSxcbiAgICAgIGNvbnRpbnVlT25FcnJvcjogW2ZhbHNlXSxcbiAgICAgIGRpc2FibGVkOiBbZmFsc2VdLFxuICAgICAgcmV0cnlDb3VudDogWycnXSxcbiAgICAgIGlmcmFtZUxvY2F0b3I6IFsnJ10sXG4gICAgICBvdGhlckxvY2F0b3JzOiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBMb2FkIGluaXRpYWwgZGF0YSBpZiBwcm92aWRlZCAoZWRpdCBtb2RlKVxuICAgIGlmICh0aGlzLmhhc0luaXRpYWxEYXRhKCkpIHtcbiAgICAgIHRoaXMubG9hZEluaXRpYWxEYXRhKCk7XG4gICAgICB0aGlzLmhhc0xvYWRlZEluaXRpYWxEYXRhID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgYW55IGluaXRpYWwgdmFsdWUgaW5wdXRzIGNoYW5nZWRcbiAgICBjb25zdCBpbml0aWFsVmFsdWVLZXlzID0gW1xuICAgICAgJ2luaXRpYWxRdWVyeScsICdpbml0aWFsVHlwZScsICdpbml0aWFsRGVzY3JpcHRpb24nLCAnaW5pdGlhbEVudmlyb25tZW50cycsXG4gICAgICAnaW5pdGlhbE1ldGFkYXRhJywgJ2luaXRpYWxEaXNhYmxlZCcsICdpbml0aWFsQ29udGludWVPbkVycm9yJyxcbiAgICAgICdpbml0aWFsUmV0cnlDb3VudCcsICdpbml0aWFsSWZyYW1lTG9jYXRvcicsICdpbml0aWFsT3RoZXJMb2NhdG9ycycsICdlZGl0TW9kZSdcbiAgICBdO1xuICAgIFxuICAgIGNvbnN0IGhhc0luaXRpYWxWYWx1ZUNoYW5nZXMgPSBpbml0aWFsVmFsdWVLZXlzLnNvbWUoa2V5ID0+IFxuICAgICAgY2hhbmdlc1trZXldICYmICFjaGFuZ2VzW2tleV0uZmlyc3RDaGFuZ2VcbiAgICApO1xuICAgIFxuICAgIC8vIExvYWQgaW5pdGlhbCBkYXRhIGlmIGl0J3Mgc2V0IGFmdGVyIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbiBvciBpZiBpbml0aWFsIHZhbHVlcyBjaGFuZ2VkXG4gICAgaWYgKGhhc0luaXRpYWxWYWx1ZUNoYW5nZXMgfHwgKHRoaXMuaGFzSW5pdGlhbERhdGEoKSAmJiAhdGhpcy5oYXNMb2FkZWRJbml0aWFsRGF0YSkpIHtcbiAgICAgIHRoaXMubG9hZEluaXRpYWxEYXRhKCk7XG4gICAgICB0aGlzLmhhc0xvYWRlZEluaXRpYWxEYXRhID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc0luaXRpYWxEYXRhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmluaXRpYWxRdWVyeSB8fCB0aGlzLmluaXRpYWxUeXBlIHx8IHRoaXMuaW5pdGlhbERlc2NyaXB0aW9uIHx8IFxuICAgICAgICAgICAgICB0aGlzLmluaXRpYWxFbnZpcm9ubWVudHMgfHwgdGhpcy5pbml0aWFsTWV0YWRhdGEgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgICB0aGlzLmluaXRpYWxEaXNhYmxlZCAhPT0gdW5kZWZpbmVkIHx8IHRoaXMuaW5pdGlhbENvbnRpbnVlT25FcnJvciAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAgIHRoaXMuaW5pdGlhbFJldHJ5Q291bnQgIT09IHVuZGVmaW5lZCB8fCB0aGlzLmluaXRpYWxJZnJhbWVMb2NhdG9yIHx8IFxuICAgICAgICAgICAgICB0aGlzLmluaXRpYWxPdGhlckxvY2F0b3JzKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEluaXRpYWxEYXRhKCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdsb2FkSW5pdGlhbERhdGE6IExvYWRpbmcgQUktYWdlbnQgZGF0YScsIHtcbiAgICAgIGluaXRpYWxRdWVyeTogdGhpcy5pbml0aWFsUXVlcnksXG4gICAgICBpbml0aWFsVHlwZTogdGhpcy5pbml0aWFsVHlwZSxcbiAgICAgIGluaXRpYWxEZXNjcmlwdGlvbjogdGhpcy5pbml0aWFsRGVzY3JpcHRpb24sXG4gICAgICBpbml0aWFsRW52aXJvbm1lbnRzOiB0aGlzLmluaXRpYWxFbnZpcm9ubWVudHMsXG4gICAgICBpbml0aWFsTWV0YWRhdGE6IHRoaXMuaW5pdGlhbE1ldGFkYXRhLFxuICAgICAgaW5pdGlhbERpc2FibGVkOiB0aGlzLmluaXRpYWxEaXNhYmxlZCxcbiAgICAgIGluaXRpYWxDb250aW51ZU9uRXJyb3I6IHRoaXMuaW5pdGlhbENvbnRpbnVlT25FcnJvcixcbiAgICAgIGluaXRpYWxSZXRyeUNvdW50OiB0aGlzLmluaXRpYWxSZXRyeUNvdW50LFxuICAgICAgaW5pdGlhbElmcmFtZUxvY2F0b3I6IHRoaXMuaW5pdGlhbElmcmFtZUxvY2F0b3IsXG4gICAgICBpbml0aWFsT3RoZXJMb2NhdG9yczogdGhpcy5pbml0aWFsT3RoZXJMb2NhdG9ycyxcbiAgICAgIGVkaXRNb2RlOiB0aGlzLmVkaXRNb2RlXG4gICAgfSk7XG5cbiAgICAvLyBQb3B1bGF0ZSBmb3JtIHdpdGggaW5pdGlhbCB2YWx1ZXNcbiAgICB0aGlzLmFpQWdlbnRGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgcXVlcnk6IHRoaXMuaW5pdGlhbFF1ZXJ5IHx8ICcnLFxuICAgICAgdHlwZTogdGhpcy5pbml0aWFsVHlwZSB8fCAnJyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmluaXRpYWxEZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIGVudmlyb25tZW50czogdGhpcy5pbml0aWFsRW52aXJvbm1lbnRzIHx8ICcnLFxuICAgICAgbWV0YWRhdGE6IHRoaXMuaW5pdGlhbE1ldGFkYXRhIHx8ICcnLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuaW5pdGlhbERpc2FibGVkICE9PSB1bmRlZmluZWQgPyB0aGlzLmluaXRpYWxEaXNhYmxlZCA6IGZhbHNlLFxuICAgICAgY29udGludWVPbkVycm9yOiB0aGlzLmluaXRpYWxDb250aW51ZU9uRXJyb3IgIT09IHVuZGVmaW5lZCA/IHRoaXMuaW5pdGlhbENvbnRpbnVlT25FcnJvciA6IHRydWUsXG4gICAgICByZXRyeUNvdW50OiB0aGlzLmluaXRpYWxSZXRyeUNvdW50ICE9PSB1bmRlZmluZWQgPyBTdHJpbmcodGhpcy5pbml0aWFsUmV0cnlDb3VudCkgOiAnJyxcbiAgICAgIGlmcmFtZUxvY2F0b3I6IHRoaXMuaW5pdGlhbElmcmFtZUxvY2F0b3IgfHwgJycsXG4gICAgICBvdGhlckxvY2F0b3JzOiB0aGlzLmluaXRpYWxPdGhlckxvY2F0b3JzIHx8ICcnXG4gICAgfSk7XG5cbiAgICAvLyBFeHBhbmQgYWR2YW5jZWQgc2VjdGlvbiBpZiBhbnkgYWR2YW5jZWQgZmllbGRzIGhhdmUgdmFsdWVzXG4gICAgaWYgKHRoaXMuaW5pdGlhbERpc2FibGVkICE9PSB1bmRlZmluZWQgfHwgdGhpcy5pbml0aWFsQ29udGludWVPbkVycm9yICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgdGhpcy5pbml0aWFsUmV0cnlDb3VudCAhPT0gdW5kZWZpbmVkIHx8IHRoaXMuaW5pdGlhbElmcmFtZUxvY2F0b3IgfHwgXG4gICAgICAgIHRoaXMuaW5pdGlhbE90aGVyTG9jYXRvcnMpIHtcbiAgICAgIHRoaXMuc2hvd0FkdmFuY2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBnZXRUeXBlQ29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ3R5cGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgdHlwZScsXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMudHlwZU9wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgZ2V0RW52aXJvbm1lbnRDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnZW52aXJvbm1lbnRzJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IGVudmlyb25tZW50JyxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIHNlYXJjaGFibGU6IGZhbHNlLFxuICAgICAgb3B0aW9uczogdGhpcy5lbnZpcm9ubWVudE9wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgZ2V0UmV0cnlDb3VudENvbmZpZygpOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6ICdyZXRyeUNvdW50JyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnRHluYW1pYyBzZWFyY2ggc2VsZWN0b3IgZnJvbSBsaWJyYXJ5IG9yIG1hbnVhbCcsXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgICAgb3B0aW9uczogdGhpcy5yZXRyeUNvdW50T3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBnZXRJZnJhbWVMb2NhdG9yQ29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ2lmcmFtZUxvY2F0b3InLFxuICAgICAgcGxhY2Vob2xkZXI6ICdEeW5hbWljIHNlYXJjaCBzZWxlY3RvciBmcm9tIGxpYnJhcnkgb3IgbWFudWFsJyxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgICBvcHRpb25zOiB0aGlzLmlmcmFtZUxvY2F0b3JPcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIGdldE90aGVyTG9jYXRvcnNDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnb3RoZXJMb2NhdG9ycycsXG4gICAgICBwbGFjZWhvbGRlcjogJ0R5bmFtaWMgc2VhcmNoIHNlbGVjdG9yIGZyb20gbGlicmFyeSBvciBtYW51YWwnLFxuICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMub3RoZXJMb2NhdG9yc09wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgdG9nZ2xlQWR2YW5jZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93QWR2YW5jZWQgPSAhdGhpcy5zaG93QWR2YW5jZWQ7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBvbkNyZWF0ZVN0ZXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWlBZ2VudEZvcm0udmFsaWQpIHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuYWlBZ2VudEZvcm0udmFsdWU7XG4gICAgICBjb25zdCBzdGVwRGF0YTogQWlBZ2VudEZvcm1EYXRhID0ge1xuICAgICAgICBxdWVyeTogZm9ybVZhbHVlLnF1ZXJ5IHx8ICcnLFxuICAgICAgICB0eXBlOiBmb3JtVmFsdWUudHlwZSB8fCAnJyxcbiAgICAgICAgZW52aXJvbm1lbnRzOiBmb3JtVmFsdWUuZW52aXJvbm1lbnRzIHx8ICcnLFxuICAgICAgICBtZXRhZGF0YTogZm9ybVZhbHVlLm1ldGFkYXRhIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogZm9ybVZhbHVlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICBjb250aW51ZU9uRXJyb3I6IGZvcm1WYWx1ZS5jb250aW51ZU9uRXJyb3IgfHwgZmFsc2UsXG4gICAgICAgIGRpc2FibGVkOiBmb3JtVmFsdWUuZGlzYWJsZWQgfHwgZmFsc2UsXG4gICAgICAgIHJldHJ5Q291bnQ6IGZvcm1WYWx1ZS5yZXRyeUNvdW50IHx8ICcnLFxuICAgICAgICBpZnJhbWVMb2NhdG9yOiBmb3JtVmFsdWUuaWZyYW1lTG9jYXRvciB8fCAnJyxcbiAgICAgICAgb3RoZXJMb2NhdG9yczogZm9ybVZhbHVlLm90aGVyTG9jYXRvcnMgfHwgJydcbiAgICAgIH07XG4gICAgICB0aGlzLmNyZWF0ZVN0ZXAuZW1pdChzdGVwRGF0YSk7XG4gICAgfVxuICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWJnLXdoaXRlIGNxYS1weC00IGNxYS1weS0yIGNxYS1oLWZ1bGxcIj5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxoMiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1ibGFjay0xMDAgY3FhLW1iLTRcIj5cbiAgICB7eyBlZGl0TW9kZSA/ICdFZGl0IEFJIFN0ZXAnIDogJ0NyZWF0ZSBBSSBTdGVwJyB9fVxuICA8L2gyPlxuXG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWZsZXgtMSBjcWEtb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgPCEtLSBXaGF0IHNob3VsZCB0aGUgYWdlbnQgYWNoaWV2ZT8gLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1tYi02XCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwIGNxYS1tYi0xIGNxYS1ibG9ja1wiPlxuICAgICAgICBXaGF0IHNob3VsZCB0aGUgYWdlbnQgYWNoaWV2ZT88c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjRUY0NDQ0XSBjcWEtbWwtMC41XCI+Kjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8Y3FhLWN1c3RvbS10ZXh0YXJlYVxuICAgICAgIGNsYXNzPVwiY3FhLXN0ZXAtYnVpbGRlci1haS1hZ2VudC10ZXh0YXJlYVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInV2hhdCBzaG91bGQgdGhlIGFnZW50IGFjaGlldmU/J1wiXG4gICAgICAgIFt2YWx1ZV09XCJhaUFnZW50Rm9ybS5nZXQoJ3F1ZXJ5Jyk/LnZhbHVlXCJcbiAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgW3Jvd3NdPVwiNFwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJhaUFnZW50Rm9ybS5nZXQoJ3F1ZXJ5Jyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWN1c3RvbS10ZXh0YXJlYT5cbiAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS10ZXh0LVsjMEEwQTBBXSBcIj5cbiAgICAgICAgVGlwOiBVc2UgbnVtYmVyZWQgc3RlcHMgb3IgYnVsbGV0IHBvaW50cyBmb3IgY29tcGxleCB0YXNrcy5cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtY3VzdG9tLWZvcm0tZmllbGRzXCI+XG4gICAgPCEtLSBUeXBlIERyb3Bkb3duIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtbWItNiBjcWEtdy0xLzIgY3FhLXByLTJcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtYmxvY2sgY3FhLXRleHQtWzE0cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzE2MTYxN10gY3FhLW1iLTFcIj5cbiAgICAgICAgVHlwZTxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyNFRjQ0NDRdIGNxYS1tbC0wLjVcIj4qPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgY2xhc3M9XCJjcWEtdy1mdWxsXCIgW2Zvcm1dPVwiYWlBZ2VudEZvcm1cIiBbY29uZmlnXT1cImdldFR5cGVDb25maWcoKVwiPlxuICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEVudmlyb25tZW50cyBEcm9wZG93biAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLW1iLTYgY3FhLXctMS8yIGNxYS1wbC0yXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtbGVhZGluZy1bMTAwJV0gY3FhLWJsb2NrIGNxYS10ZXh0LVsxNHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMxNjE2MTddIGNxYS1tYi0xXCI+XG4gICAgICAgIEVudmlvcm9ubWVudHM8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsjRUY0NDQ0XSBjcWEtbWwtMC41XCI+Kjwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImFpQWdlbnRGb3JtXCIgW2NvbmZpZ109XCJnZXRFbnZpcm9ubWVudENvbmZpZygpXCI+XG4gICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gTWV0YWRhdGEgSW5wdXQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1tYi0yIGNxYS13LTEvMiBjcWEtcHItMlwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLWxlYWRpbmctWzEwMCVdIGNxYS1ibG9jayBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTYxNjE3XSBjcWEtbWItMVwiPlxuICAgICAgICBNZXRhZGF0YVxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInVGV4dCBJbnB1dCdcIlxuICAgICAgICBbdmFsdWVdPVwiYWlBZ2VudEZvcm0uZ2V0KCdtZXRhZGF0YScpPy52YWx1ZVwiXG4gICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJhaUFnZW50Rm9ybS5nZXQoJ21ldGFkYXRhJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gRGVzY3JpcHRpb24gSW5wdXQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS13LTEvMiBjcWEtcGwtMiBcIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtYmxvY2sgY3FhLXRleHQtWzE0cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzE2MTYxN10gY3FhLW1iLTFcIj5cbiAgICAgICAgRGVzY3JpcHRpb25cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RleHQgSW5wdXQnXCJcbiAgICAgICAgW3ZhbHVlXT1cImFpQWdlbnRGb3JtLmdldCgnZGVzY3JpcHRpb24nKT8udmFsdWVcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiYWlBZ2VudEZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpPy5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cblxuICAgIDwhLS0gQWR2YW5jZWQgU2VjdGlvbiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLW1iLTJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS13LWZ1bGwgY3FhLXRleHQtbGVmdCBjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LWdyYXktNzAwIGNxYS1weS0yIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFkdmFuY2VkKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF1cIj5BZHZhbmNlZDwvc3Bhbj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtbGcgY3FhLXRyYW5zaXRpb24tdHJhbnNmb3JtXCIgW2NsYXNzLmNxYS1yb3RhdGUtMTgwXT1cInNob3dBZHZhbmNlZFwiPlxuICAgICAgICAgIGV4cGFuZF9tb3JlXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93QWR2YW5jZWRcIiBjbGFzcz1cIiBjcWEtY3VzdG9tLWZvcm0tZmllbGRzIGNxYS1mbGV4IGNxYS1mbGV4LWNvbFwiPlxuICAgICAgICA8IS0tIENvbnRpbnVlIG9uIEVycm9yIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW1iLTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLW1iLTJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWzEwcHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzczNzM3M11cIj5Db250aW51ZSBvbiBFcnJvcjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTJcIj5cbiAgICAgICAgICAgIDxjcWEtY3VzdG9tLXRvZ2dsZVxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJhaUFnZW50Rm9ybS5nZXQoJ2NvbnRpbnVlT25FcnJvcicpPy52YWx1ZSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgIChjaGVja2VkQ2hhbmdlKT1cImFpQWdlbnRGb3JtLmdldCgnY29udGludWVPbkVycm9yJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvY3FhLWN1c3RvbS10b2dnbGU+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtbm9ybWFsIGNxYS10ZXh0LVsjMEEwQTBBXVwiPlxuICAgICAgICAgICAgICBEb24ndCBmYWlsIHRoZSB0ZXN0IGlmIHRoaXMgc3RlcCBmYWlscy5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gRGlzYWJsZWQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWItNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWItMlwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNzM3MzczXVwiPkRpc2FibGVkPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgICAgICAgPGNxYS1jdXN0b20tdG9nZ2xlXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cImFpQWdlbnRGb3JtLmdldCgnZGlzYWJsZWQnKT8udmFsdWUgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAoY2hlY2tlZENoYW5nZSk9XCJhaUFnZW50Rm9ybS5nZXQoJ2Rpc2FibGVkJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvY3FhLWN1c3RvbS10b2dnbGU+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtbm9ybWFsIGNxYS10ZXh0LVsjMEEwQTBBXVwiPlxuICAgICAgICAgICAgICBTa2lwIHRoaXMgc3RlcCBkdXJpbmcgZXhlY3V0aW9uLlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBSZXRyeSBDb3VudCAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtbWItNFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTYxNjE3XSBjcWEtbWItMSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICAgIFJldHJ5IENvdW50XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImFpQWdlbnRGb3JtXCIgW2NvbmZpZ109XCJnZXRSZXRyeUNvdW50Q29uZmlnKClcIj5cbiAgICAgICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBJZnJhbWUgbG9jYXRvciAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtbWItNFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMTYxNjE3XSBjcWEtbWItMSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICAgIElmcmFtZSBsb2NhdG9yXG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IGNsYXNzPVwiY3FhLXRleHQtWyM0MTQxNDZdXCIgW2Zvcm1dPVwiYWlBZ2VudEZvcm1cIiBbY29uZmlnXT1cImdldElmcmFtZUxvY2F0b3JDb25maWcoKVwiPlxuICAgICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIE90aGVyIExvY2F0b3JzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1tYi00XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLWxlYWRpbmctWzEwMCVdIGNxYS10ZXh0LVsxNHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMxNjE2MTddIGNxYS1tYi0xIGNxYS1ibG9ja1wiPlxuICAgICAgICAgICAgT3RoZXIgTG9jYXRvcnNcbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgW2Zvcm1dPVwiYWlBZ2VudEZvcm1cIiBbY29uZmlnXT1cImdldE90aGVyTG9jYXRvcnNDb25maWcoKVwiPlxuICAgICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLXctZnVsbCBjcWEtZ2FwLTIgY3FhLW10LWF1dG8gY3FhLXB0LTQgY3FhLWJvcmRlci10IGNxYS1ib3JkZXItZ3JheS0yMDBcIj5cbiAgICA8Y3FhLWJ1dHRvbiBjbGFzcz1cImNxYS13LTEvMiBjcWEtcm91bmRlZC1bMTBweF1cIiB2YXJpYW50PVwib3V0bGluZWRcIiB0ZXh0PVwiQ2FuY2VsXCIgW2N1c3RvbUNsYXNzXT1cIidjcWEtZmxleC0xIGNxYS13LWZ1bGwnXCJcbiAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIj5cbiAgICA8L2NxYS1idXR0b24+XG4gICAgPGNxYS1idXR0b24gY2xhc3M9XCJjcWEtYm9yZGVyLXNvbGlkIGNxYS1yb3VuZGVkLVs5cHhdIGNxYS13LTEvMiBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyMzRjQzRUVdXCIgdmFyaWFudD1cImZpbGxlZFwiIFt0ZXh0XT1cImVkaXRNb2RlID8gJ1VwZGF0ZSBTdGVwJyA6ICdDcmVhdGUgU3RlcCdcIiBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS1mbGV4LTEgY3FhLXctZnVsbCdcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFhaUFnZW50Rm9ybS52YWxpZFwiXG4gICAgICAoY2xpY2tlZCk9XCJvbkNyZWF0ZVN0ZXAoKVwiPlxuICAgIDwvY3FhLWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
|