tango-app-ui-manage-settings 3.0.53-dev → 3.0.55-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/activity-logs/activity-logs.component.mjs +3 -3
- package/esm2022/lib/components/brand-details/billing-details/billing-details.component.mjs +3 -3
- package/esm2022/lib/components/brand-details/brand-details.component.mjs +5 -7
- package/esm2022/lib/components/brand-details/brand-info/brand-info.component.mjs +5 -5
- package/esm2022/lib/components/brand-details/signatory-details/signatory-details.component.mjs +3 -3
- package/esm2022/lib/components/configurations/audit-configuration/audit-configuration.component.mjs +3 -3
- package/esm2022/lib/components/configurations/configurations.component.mjs +3 -3
- package/esm2022/lib/components/configurations/domain-details/domain-details.component.mjs +3 -3
- package/esm2022/lib/components/configurations/email-configuration/email-configuration.component.mjs +3 -3
- package/esm2022/lib/components/configurations/employee-training/employee-training.component.mjs +3 -3
- package/esm2022/lib/components/configurations/feature-configuration/feature-configuration.component.mjs +5 -5
- package/esm2022/lib/components/configurations/report-configuration/add-report/add-report.component.mjs +6 -6
- package/esm2022/lib/components/configurations/report-configuration/report-configuration.component.mjs +8 -7
- package/esm2022/lib/components/configurations/ticket-configuration/ticket-configuration.component.mjs +5 -5
- package/esm2022/lib/components/configurations/user-configuration/user-configuration.component.mjs +3 -3
- package/esm2022/lib/components/contact-directory/contact-directory.component.mjs +67 -10
- package/esm2022/lib/components/contact-directory/detele-spoc/detele-spoc.component.mjs +3 -3
- package/esm2022/lib/components/contact-directory/edit-spoc/edit-spoc.component.mjs +10 -5
- package/esm2022/lib/components/documents/documents.component.mjs +5 -5
- package/esm2022/lib/components/payments-subscription/payments-subscription.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/add-stepprice/add-stepprice.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/model-content/model-content.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/multidropdown/multidropdown.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/pricing-revised/pricing-revised.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/product-confirmation/product-confirmation.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/skip-trail/skip-trail.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/successfull-subscription/successfull-subscription.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/suspended/suspended.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/trail-expired/trail-expired.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/trail-settings/trail-settings.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/unsubscribe-request/unsubscribe-request.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/update/update.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.mjs +3 -3
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +3 -3
- package/esm2022/lib/components/tango-manage-settings/tango-manage-settings.component.mjs +5 -5
- package/esm2022/lib/directives/dnd.directive.mjs +3 -3
- package/esm2022/lib/services/client-api.service.mjs +7 -4
- package/esm2022/lib/services/payment-subscription.service.mjs +3 -3
- package/esm2022/lib/tango-manage-settings-routing.module.mjs +4 -4
- package/esm2022/lib/tango-manage-settings.module.mjs +4 -4
- package/fesm2022/tango-app-ui-manage-settings.mjs +341 -275
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
- package/lib/components/configurations/report-configuration/report-configuration.component.d.ts +1 -1
- package/lib/components/contact-directory/contact-directory.component.d.ts +4 -0
- package/lib/components/contact-directory/edit-spoc/edit-spoc.component.d.ts +1 -0
- package/lib/services/client-api.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -170,11 +170,11 @@ export class FeatureConfigurationComponent {
|
|
|
170
170
|
this.featureConfigurationForm.value.close = this.dayjs(`1991-01-01 ${this.featureConfigurationForm.value.close}`, 'YYYY-MM-DD HH:mm').format("HH:mm:ss");
|
|
171
171
|
this.apiService.clientFormData.next({ value: this.featureConfigurationForm.value, type: 'submit', form: 'feature-configuration' });
|
|
172
172
|
}
|
|
173
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
174
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: FeatureConfigurationComponent, selector: "lib-feature-configuration", ngImport: i0, template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:16px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
173
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FeatureConfigurationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ClientApiService }, { token: i3.GlobalStateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
174
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: FeatureConfigurationComponent, selector: "lib-feature-configuration", ngImport: i0, template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <!-- <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n \r\n </div> -->\r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:16px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
175
175
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FeatureConfigurationComponent, decorators: [{
|
|
177
177
|
type: Component,
|
|
178
|
-
args: [{ selector: 'lib-feature-configuration', template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n \r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:16px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"] }]
|
|
178
|
+
args: [{ selector: 'lib-feature-configuration', template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <!-- <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n \r\n </div> -->\r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:16px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"] }]
|
|
179
179
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ClientApiService }, { type: i3.GlobalStateService }, { type: i0.ChangeDetectorRef }] });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbnMvZmVhdHVyZS1jb25maWd1cmF0aW9uL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2ZlYXR1cmUtY29uZmlndXJhdGlvbi9mZWF0dXJlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBUSxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzNCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBT3ZCLE1BQU0sT0FBTyw2QkFBNkI7SUFnRXBCO0lBQXlCO0lBQXFDO0lBQ3hFO0lBOURWLHdCQUF3QixDQUFXO0lBQ25DLDBCQUEwQixDQUFTO0lBQ25DLHdCQUF3QixDQUFTO0lBQ2hCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFHYixlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7S0FDN0IsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0tBQzlCLENBQUE7SUFFRCxxQkFBcUIsR0FBRztRQUN0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtLQUM5QixDQUFBO0lBRUQsaUJBQWlCLEdBQUc7UUFDbEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7S0FDOUIsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0tBQzNCLENBQUE7SUFFRCxlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVB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QyxJQUFJLEVBQUUsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNySixJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN2SixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUE7SUFDcEksQ0FBQzt3R0EzTFUsNkJBQTZCOzRGQUE3Qiw2QkFBNkIsaUVDakIxQyw4Z1NBd0lPOzs0RkR2SE0sNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgIGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgXCJkYXlqcy9sb2NhbGUvZW5cIjtcclxuaW1wb3J0IHV0YyBmcm9tIFwiZGF5anMvcGx1Z2luL3V0Y1wiO1xyXG5pbXBvcnQgdGltZXpvbmUgZnJvbSBcImRheWpzL3BsdWdpbi90aW1lem9uZVwiO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZlYXR1cmUtY29uZmlndXJhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcblxyXG4gIGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybTogRm9ybUdyb3VwXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlTdGFydFRpbWU6IHN0cmluZztcclxuICBtaXNzZWRPcHBvcnR1bml0eUVuZFRpbWU6IHN0cmluZztcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBkYXlqcyA9IGRheWpzXHJcblxyXG5cclxuICBpbmZyYUFsZXJ0VmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogXCIxIGhyc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAyLCBsYWJlbDogXCIyIGhyc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAzLCBsYWJlbDogXCIzIGhyc1wiIH0sXHJcbiAgICB7IHZhbHVlOiA0LCBsYWJlbDogXCI0IGhyc1wiIH0sXHJcbiAgICB7IHZhbHVlOiA1LCBsYWJlbDogXCI1IGhyc1wiIH1cclxuICBdXHJcblxyXG4gIGluZnJhQWxlcnRDb25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIjxcIiwgbGFiZWw6IFwiPFwiIH0sXHJcbiAgICB7IHZhbHVlOiBcIj5cIiwgbGFiZWw6IFwiPlwiIH0sXHJcbiAgICB7IHZhbHVlOiBcIjw9XCIsIGxhYmVsOiBcIjwgPVwiIH0sXHJcbiAgICB7IHZhbHVlOiBcIj0+XCIsIGxhYmVsOiBcIj0gPlwiIH0sXHJcbiAgXVxyXG5cclxuICBib3VuY2VkTGltaXRDb25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIjw9XCIsIGxhYmVsOiBcIjwgPVwiIH1cclxuICBdXHJcblxyXG4gIGJvdW5jZWRMaW1pdFZhbHVlID0gW1xyXG4gICAgeyB2YWx1ZTogMSwgbGFiZWw6IFwiMSBtaW5cIiB9LFxyXG4gICAgeyB2YWx1ZTogMiwgbGFiZWw6IFwiMiBtaW5zXCIgfSxcclxuICAgIHsgdmFsdWU6IDMsIGxhYmVsOiBcIjMgbWluc1wiIH0sXHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uQ29uZGl0aW9uID0gW1xyXG4gICAgeyB2YWx1ZTogXCI+XCIsIGxhYmVsOiBcIj5cIiB9XHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uVmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiA1LCBsYWJlbDogXCI1IG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMTAsIGxhYmVsOiBcIjEwIG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMTUsIGxhYmVsOiBcIjE1IG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMjAsIGxhYmVsOiBcIjIwIG1pbnNcIiB9XHJcbiAgXVxyXG5cclxuICBiaWxsYWJsZUNhbGN1bGF0aW9uID0gW1xyXG4gICAgeyB2YWx1ZTogXCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDogXCJGb290ZmFsbCBDb3VudFwiIH0sXHJcbiAgICB7IHZhbHVlOiBcImVuZ2FnZXJzLWNvdW50XCIsIGxhYmVsOiBcIkVuZ2FnZXJzIENvdW50XCIgfSxcclxuICBdXHJcblxyXG4gIG1pc3NlZE9wcG9ydHVuaXR5Q2FsY3VsYXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcImVuZ2FnZXJzLWNvbnZlcnNpb25cIiwgbGFiZWw6IFwiRW5nYWdlcnMgLSBDb252ZXJzaW9uXCIgfSxcclxuICAgIHsgdmFsdWU6IFwiZ3JvdXAtY29udmVyc2lvblwiLCBsYWJlbDogXCJCaWxsYWJsZSBFbnRpdGllcyAtIENvbnZlcnNpb25cIiB9LFxyXG4gIF1cclxuXHJcbiAgY29udmVyc2lvbkNhbGN1bGF0aW9uID0gW1xyXG4gICAge3ZhbHVlOlwiZm9vdGZhbGwtY291bnRcIiwgbGFiZWw6XCJGb290ZmFsbCBDb3VudFwifSxcclxuICAgIHt2YWx1ZTpcImVuZ2FnZXJzLWNvdW50XCIsIGxhYmVsOlwiRW5nYWdlcnMgQ291bnRcIn0sXHJcbiAgICB7dmFsdWU6XCJiaWxsYWJsZS1lbnRpdGllc1wiLCBsYWJlbDpcIkJpbGxhYmxlIEVudGl0aWVzXCJ9LFxyXG4gIF1cclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBDbGllbnRBcGlTZXJ2aWNlLCBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuaW5pdEZvcm0oKVxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgaWYgKHJlcy50eXBlID09PSAnaW5wdXQnICYmIHJlcy5mb3JtID09PSAnZmVhdHVyZS1jb25maWd1cmF0aW9uJykge1xyXG4gICAgICAgICAgdGhpcy5wYXRjaEZvcm0ocmVzLnZhbHVlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBpbml0Rm9ybSgpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIG9wZW46IFtdLFxyXG4gICAgICBjbG9zZTogW10sXHJcbiAgICAgIGluZnJhQWxlcnRDb25kaXRpb246IFtdLFxyXG4gICAgICBpbmZyYUFsZXJ0VmFsdWU6IFtdLFxyXG4gICAgICBib3VuY2VkTGltaXRDb25kaXRpb246IFtdLFxyXG4gICAgICBib3VuY2VkTGltaXRWYWx1ZTogW10sXHJcbiAgICAgIGNvbnZlcnNpb25Db25kaXRpb246IFtdLFxyXG4gICAgICBjb252ZXJzaW9uVmFsdWU6IFtdLFxyXG4gICAgICBiaWxsYWJsZUNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgbWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvbjogW10sXHJcbiAgICAgIGNvbnZlcnNpb25DYWxjdWxhdGlvbjogW10sXHJcbiAgICAgIGlzTm9ybWFsaXplZDogW10sXHJcbiAgICAgIGlzUGFzc2VyQnlEYXRhOiBbXSxcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeTogW10sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGUoKVxyXG5cclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmdldCgnYm91bmNlZExpbWl0VmFsdWUnKT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUpIHsgICAgICAgIFxyXG4gICAgICAgIHRoaXMuYm91bmNlZENvbmZpZ1RpbWVDaGFuZ2UoZSlcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdjb252ZXJzaW9uVmFsdWUnKT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUpIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnNpb25Db25maWdUaW1lQ2hhbmdlKGUpXHJcbiAgICAgICAgLy8gdGhpcy5zZXRDb252ZXJzaW9uQ2FsY3VsYXRpb24oZSlcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwYXRjaEZvcm0oZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5wYXRjaFZhbHVlKFxyXG4gICAgICB7XHJcbiAgICAgICAgLi4uZGF0YVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBib3VuY2VkQ29uZmlnVGltZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XHJcblxyXG4gICAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjFcIlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjJcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlTdGFydFRpbWUgPSBcIj4zXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29udmVyc2lvbkNvbmZpZ1RpbWVDaGFuZ2UodmFsdWU6IG51bWJlcikge1xyXG4gICAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgICBjYXNlIDU6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eUVuZFRpbWUgPSAnPD01JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxMDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTEwJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxNTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTE1JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyMDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTIwJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICcnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29udmVyc2lvbkNhbGN1bGF0aW9uKGNvbnZlcnNpb25WYWw6bnVtYmVyKXtcclxuICAgIHRoaXMuY29udmVyc2lvbkNhbGN1bGF0aW9uID0gW1xyXG4gICAgICB7dmFsdWU6XCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDpgJHtjb252ZXJzaW9uVmFsfSBtaW5zL0Zvb3RmYWxsIENvdW50YH0sXHJcbiAgICAgIHt2YWx1ZTpcImVuZ2FnZXJzLWNvdW50XCIsIGxhYmVsOmAke2NvbnZlcnNpb25WYWx9IG1pbnMvRW5nYWdlcnMgQ291bnRgfSxcclxuICAgICAge3ZhbHVlOlwiYmlsbGFibGUtZW50aXRpZXNcIiwgbGFiZWw6YCR7Y29udmVyc2lvblZhbH0gbWlucy9CaWxsYWJsZSBFbnRpdGllc2B9LFxyXG4gICAgXVxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdjb252ZXJzaW9uQ2FsY3VsYXRpb24nKT8uc2V0VmFsdWUodGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0/LnZhbHVlLmNvbnZlcnNpb25DYWxjdWxhdGlvbikgXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogbnVsbCwgdHlwZTogJ2NhbmNlbCcsIGZvcm06ICdmZWF0dXJlLWNvbmZpZ3VyYXRpb24nIH0pXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlKClcclxuXHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLm9wZW4gPSB0aGlzLmRheWpzKGAxOTkxLTAxLTAxICR7dGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUub3Blbn1gLCdZWVlZLU1NLUREIEhIOm1tJykuZm9ybWF0KFwiSEg6bW06c3NcIilcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLmNsb3NlID0gdGhpcy5kYXlqcyhgMTk5MS0wMS0wMSAke3RoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLmNsb3NlfWAsJ1lZWVktTU0tREQgSEg6bW0nKS5mb3JtYXQoXCJISDptbTpzc1wiKSAgICBcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLCB0eXBlOiAnc3VibWl0JywgZm9ybTogJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnNldHRpbmdzX2NvbmZpZ3VyYXRpb25faXNFZGl0IFwiID5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGVkXCIgY2xhc3M9XCJjb2wtMTIgbWItNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlZCA/IGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5lbmFibGUoKSA6IGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBhbGlnbi1pdGVtcy1lbmRcIj48c3BhbiBjbGFzcz1cIm1lLTJcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzI1NzlfMjUxMjUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjcgMi40OTk5M0MxNC4zODU5IDIuMjgxMDYgMTQuNjQ1NyAyLjEwNzQ0IDE0LjkzMTcgMS45ODg5OUMxNS4yMTc2IDEuODcwNTQgMTUuNTI0MSAxLjgwOTU3IDE1LjgzMzcgMS44MDk1N0MxNi4xNDMyIDEuODA5NTcgMTYuNDQ5NyAxLjg3MDU0IDE2LjczNTcgMS45ODg5OUMxNy4wMjE2IDIuMTA3NDQgMTcuMjgxNSAyLjI4MTA2IDE3LjUwMDMgMi40OTk5M0MxNy43MTkyIDIuNzE4OCAxNy44OTI4IDIuOTc4NjMgMTguMDExMyAzLjI2NDZDMTguMTI5NyAzLjU1MDU3IDE4LjE5MDcgMy44NTcwNiAxOC4xOTA3IDQuMTY2NTlDMTguMTkwNyA0LjQ3NjEyIDE4LjEyOTcgNC43ODI2MiAxOC4wMTEzIDUuMDY4NTlDMTcuODkyOCA1LjM1NDU1IDE3LjcxOTIgNS42MTQzOSAxNy41MDAzIDUuODMzMjZMNi4yNTAzMyAxNy4wODMzTDEuNjY2OTkgMTguMzMzM0wyLjkxNjk5IDEzLjc0OTlMMTQuMTY3IDIuNDk5OTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjU3OV8yNTEyNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5FZGl0IERldGFpbHM8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvcGVuXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3RvcmUgT3BlbiBUaW1lIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0aW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwib3BlblwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJvcGVuXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2xvc2VcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdG9yZSBDbG9zZSBUaW1lIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0aW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiY2xvc2VcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiY2xvc2VcIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5JbmZyYSBBbGVydCA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmZyYUFsZXJ0Q29uZGl0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImluZnJhQWxlcnRDb25kaXRpb25cIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaW5mcmFBbGVydFZhbHVlXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImluZnJhQWxlcnRWYWx1ZVwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZG93blRpbWVUeXBlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Qm91bmNlZCBMaW1pdDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImJvdW5jZWRMaW1pdENvbmRpdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJib3VuY2VkTGltaXRDb25kaXRpb25cIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYm91bmNlZExpbWl0VmFsdWVcIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiYm91bmNlZExpbWl0VmFsdWVcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIk1pbkZpbGVzQ291bnRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5NaXNzZWQgT3Bwb3J0dW5pdHkgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbW9jay1pbnB1dCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtaXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7bWlzc2VkT3Bwb3J0dW5pdHlTdGFydFRpbWUgfX0gLSB7e21pc3NlZE9wcG9ydHVuaXR5RW5kVGltZX19XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNvbnZlcnNpb24gPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY29udmVyc2lvbkNvbmRpdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJjb252ZXJzaW9uQ29uZGl0aW9uXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNvbnZlcnNpb25WYWx1ZVwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJjb252ZXJzaW9uVmFsdWVcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYmlsbGFibGVDYWxjdWxhdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJiaWxsYWJsZUNhbGN1bGF0aW9uXCIgW2xhYmVsXT1cIidCaWxsYWJsZSBDYWxjdWxhdGlvbnMnXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm1pc3NlZE9wcG9ydHVuaXR5Q2FsY3VsYXRpb25cIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwibWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvblwiIFtsYWJlbF09XCInTWlzc2VkIE9wcG9ydHVuaXR5IENhbGN1bGF0aW9uJ1wiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjb252ZXJzaW9uQ2FsY3VsYXRpb25cIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiY29udmVyc2lvbkNhbGN1bGF0aW9uXCIgW2xhYmVsXT1cIidDb252ZXJzaW9uIENhbGN1bGF0aW9ucydcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTUgcHgtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPk5vcm1hbGl6ZWQgZGF0YSBkdXJpbmcgZG93bnRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgbm9ybWFsaXplZCBkYXRhIGR1cmluZyBkb3dudGltZS4gPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+UGFzc2VyLWJ5IGRhdGE8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgUGFzc2VyYnkgZGF0YS4gPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPkZvb3RmYWxsIERpcmVjdG9yeTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBGb290ZmFsbCBkaXJlY3RvcnkgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNOb3JtYWxpemVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc05vcm1hbGl6ZWRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNOb3JtYWxpemVkXCI+IFNob3cgTm9ybWFsaXplZCBkYXRhXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc1Bhc3NlckJ5RGF0YVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiaXNQYXNzZXJCeURhdGFcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNQYXNzZXJCeURhdGFcIj4gU2hvdyBQYXNzZXItYnkgZGF0YVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCI+IFNob3cgRm9vdGZhbGwgRGlyZWN0b3J5XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZW5hYmxlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IHctMTAwIGZvb3Rlci1zZXBlcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG1lLTRcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPkNhbmNlbDwvYT5cclxuICAgICAgICAgICAgPGEgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTQgXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj48c3Bhbj5TYXZlIENoYW5nZXM8L3NwYW4+PC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Zvcm0+Il19
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbnMvZmVhdHVyZS1jb25maWd1cmF0aW9uL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2ZlYXR1cmUtY29uZmlndXJhdGlvbi9mZWF0dXJlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBUSxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzNCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBT3ZCLE1BQU0sT0FBTyw2QkFBNkI7SUFnRXBCO0lBQXlCO0lBQXFDO0lBQ3hFO0lBOURWLHdCQUF3QixDQUFXO0lBQ25DLDBCQUEwQixDQUFTO0lBQ25DLHdCQUF3QixDQUFTO0lBQ2hCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFHYixlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7S0FDN0IsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0tBQzlCLENBQUE7SUFFRCxxQkFBcUIsR0FBRztRQUN0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtLQUM5QixDQUFBO0lBRUQsaUJBQWlCLEdBQUc7UUFDbEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7S0FDOUIsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0tBQzNCLENBQUE7SUFFRCxlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVB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QyxJQUFJLEVBQUUsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNySixJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUN2SixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUE7SUFDcEksQ0FBQzt3R0EzTFUsNkJBQTZCOzRGQUE3Qiw2QkFBNkIsaUVDakIxQyx1aFNBd0lPOzs0RkR2SE0sNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDbGllbnRBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgIGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgXCJkYXlqcy9sb2NhbGUvZW5cIjtcclxuaW1wb3J0IHV0YyBmcm9tIFwiZGF5anMvcGx1Z2luL3V0Y1wiO1xyXG5pbXBvcnQgdGltZXpvbmUgZnJvbSBcImRheWpzL3BsdWdpbi90aW1lem9uZVwiO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZlYXR1cmUtY29uZmlndXJhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVDb25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcblxyXG4gIGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybTogRm9ybUdyb3VwXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlTdGFydFRpbWU6IHN0cmluZztcclxuICBtaXNzZWRPcHBvcnR1bml0eUVuZFRpbWU6IHN0cmluZztcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBkYXlqcyA9IGRheWpzXHJcblxyXG5cclxuICBpbmZyYUFsZXJ0VmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogXCIxIGhyc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAyLCBsYWJlbDogXCIyIGhyc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAzLCBsYWJlbDogXCIzIGhyc1wiIH0sXHJcbiAgICB7IHZhbHVlOiA0LCBsYWJlbDogXCI0IGhyc1wiIH0sXHJcbiAgICB7IHZhbHVlOiA1LCBsYWJlbDogXCI1IGhyc1wiIH1cclxuICBdXHJcblxyXG4gIGluZnJhQWxlcnRDb25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIjxcIiwgbGFiZWw6IFwiPFwiIH0sXHJcbiAgICB7IHZhbHVlOiBcIj5cIiwgbGFiZWw6IFwiPlwiIH0sXHJcbiAgICB7IHZhbHVlOiBcIjw9XCIsIGxhYmVsOiBcIjwgPVwiIH0sXHJcbiAgICB7IHZhbHVlOiBcIj0+XCIsIGxhYmVsOiBcIj0gPlwiIH0sXHJcbiAgXVxyXG5cclxuICBib3VuY2VkTGltaXRDb25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIjw9XCIsIGxhYmVsOiBcIjwgPVwiIH1cclxuICBdXHJcblxyXG4gIGJvdW5jZWRMaW1pdFZhbHVlID0gW1xyXG4gICAgeyB2YWx1ZTogMSwgbGFiZWw6IFwiMSBtaW5cIiB9LFxyXG4gICAgeyB2YWx1ZTogMiwgbGFiZWw6IFwiMiBtaW5zXCIgfSxcclxuICAgIHsgdmFsdWU6IDMsIGxhYmVsOiBcIjMgbWluc1wiIH0sXHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uQ29uZGl0aW9uID0gW1xyXG4gICAgeyB2YWx1ZTogXCI+XCIsIGxhYmVsOiBcIj5cIiB9XHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uVmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiA1LCBsYWJlbDogXCI1IG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMTAsIGxhYmVsOiBcIjEwIG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMTUsIGxhYmVsOiBcIjE1IG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMjAsIGxhYmVsOiBcIjIwIG1pbnNcIiB9XHJcbiAgXVxyXG5cclxuICBiaWxsYWJsZUNhbGN1bGF0aW9uID0gW1xyXG4gICAgeyB2YWx1ZTogXCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDogXCJGb290ZmFsbCBDb3VudFwiIH0sXHJcbiAgICB7IHZhbHVlOiBcImVuZ2FnZXJzLWNvdW50XCIsIGxhYmVsOiBcIkVuZ2FnZXJzIENvdW50XCIgfSxcclxuICBdXHJcblxyXG4gIG1pc3NlZE9wcG9ydHVuaXR5Q2FsY3VsYXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcImVuZ2FnZXJzLWNvbnZlcnNpb25cIiwgbGFiZWw6IFwiRW5nYWdlcnMgLSBDb252ZXJzaW9uXCIgfSxcclxuICAgIHsgdmFsdWU6IFwiZ3JvdXAtY29udmVyc2lvblwiLCBsYWJlbDogXCJCaWxsYWJsZSBFbnRpdGllcyAtIENvbnZlcnNpb25cIiB9LFxyXG4gIF1cclxuXHJcbiAgY29udmVyc2lvbkNhbGN1bGF0aW9uID0gW1xyXG4gICAge3ZhbHVlOlwiZm9vdGZhbGwtY291bnRcIiwgbGFiZWw6XCJGb290ZmFsbCBDb3VudFwifSxcclxuICAgIHt2YWx1ZTpcImVuZ2FnZXJzLWNvdW50XCIsIGxhYmVsOlwiRW5nYWdlcnMgQ291bnRcIn0sXHJcbiAgICB7dmFsdWU6XCJiaWxsYWJsZS1lbnRpdGllc1wiLCBsYWJlbDpcIkJpbGxhYmxlIEVudGl0aWVzXCJ9LFxyXG4gIF1cclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBDbGllbnRBcGlTZXJ2aWNlLCBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuaW5pdEZvcm0oKVxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgaWYgKHJlcy50eXBlID09PSAnaW5wdXQnICYmIHJlcy5mb3JtID09PSAnZmVhdHVyZS1jb25maWd1cmF0aW9uJykge1xyXG4gICAgICAgICAgdGhpcy5wYXRjaEZvcm0ocmVzLnZhbHVlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBpbml0Rm9ybSgpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIG9wZW46IFtdLFxyXG4gICAgICBjbG9zZTogW10sXHJcbiAgICAgIGluZnJhQWxlcnRDb25kaXRpb246IFtdLFxyXG4gICAgICBpbmZyYUFsZXJ0VmFsdWU6IFtdLFxyXG4gICAgICBib3VuY2VkTGltaXRDb25kaXRpb246IFtdLFxyXG4gICAgICBib3VuY2VkTGltaXRWYWx1ZTogW10sXHJcbiAgICAgIGNvbnZlcnNpb25Db25kaXRpb246IFtdLFxyXG4gICAgICBjb252ZXJzaW9uVmFsdWU6IFtdLFxyXG4gICAgICBiaWxsYWJsZUNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgbWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvbjogW10sXHJcbiAgICAgIGNvbnZlcnNpb25DYWxjdWxhdGlvbjogW10sXHJcbiAgICAgIGlzTm9ybWFsaXplZDogW10sXHJcbiAgICAgIGlzUGFzc2VyQnlEYXRhOiBbXSxcclxuICAgICAgaXNGb290ZmFsbERpcmVjdG9yeTogW10sXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGUoKVxyXG5cclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmdldCgnYm91bmNlZExpbWl0VmFsdWUnKT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUpIHsgICAgICAgIFxyXG4gICAgICAgIHRoaXMuYm91bmNlZENvbmZpZ1RpbWVDaGFuZ2UoZSlcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdjb252ZXJzaW9uVmFsdWUnKT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUpIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnNpb25Db25maWdUaW1lQ2hhbmdlKGUpXHJcbiAgICAgICAgLy8gdGhpcy5zZXRDb252ZXJzaW9uQ2FsY3VsYXRpb24oZSlcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwYXRjaEZvcm0oZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5wYXRjaFZhbHVlKFxyXG4gICAgICB7XHJcbiAgICAgICAgLi4uZGF0YVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBib3VuY2VkQ29uZmlnVGltZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XHJcblxyXG4gICAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjFcIlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDI6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjJcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlTdGFydFRpbWUgPSBcIj4zXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiXCI7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29udmVyc2lvbkNvbmZpZ1RpbWVDaGFuZ2UodmFsdWU6IG51bWJlcikge1xyXG4gICAgc3dpdGNoICh2YWx1ZSkge1xyXG4gICAgICBjYXNlIDU6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eUVuZFRpbWUgPSAnPD01JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxMDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTEwJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAxNTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTE1JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAyMDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTIwJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICcnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29udmVyc2lvbkNhbGN1bGF0aW9uKGNvbnZlcnNpb25WYWw6bnVtYmVyKXtcclxuICAgIHRoaXMuY29udmVyc2lvbkNhbGN1bGF0aW9uID0gW1xyXG4gICAgICB7dmFsdWU6XCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDpgJHtjb252ZXJzaW9uVmFsfSBtaW5zL0Zvb3RmYWxsIENvdW50YH0sXHJcbiAgICAgIHt2YWx1ZTpcImVuZ2FnZXJzLWNvdW50XCIsIGxhYmVsOmAke2NvbnZlcnNpb25WYWx9IG1pbnMvRW5nYWdlcnMgQ291bnRgfSxcclxuICAgICAge3ZhbHVlOlwiYmlsbGFibGUtZW50aXRpZXNcIiwgbGFiZWw6YCR7Y29udmVyc2lvblZhbH0gbWlucy9CaWxsYWJsZSBFbnRpdGllc2B9LFxyXG4gICAgXVxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdjb252ZXJzaW9uQ2FsY3VsYXRpb24nKT8uc2V0VmFsdWUodGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0/LnZhbHVlLmNvbnZlcnNpb25DYWxjdWxhdGlvbikgXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogbnVsbCwgdHlwZTogJ2NhbmNlbCcsIGZvcm06ICdmZWF0dXJlLWNvbmZpZ3VyYXRpb24nIH0pXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlKClcclxuXHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLm9wZW4gPSB0aGlzLmRheWpzKGAxOTkxLTAxLTAxICR7dGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUub3Blbn1gLCdZWVlZLU1NLUREIEhIOm1tJykuZm9ybWF0KFwiSEg6bW06c3NcIilcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLmNsb3NlID0gdGhpcy5kYXlqcyhgMTk5MS0wMS0wMSAke3RoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLmNsb3NlfWAsJ1lZWVktTU0tREQgSEg6bW0nKS5mb3JtYXQoXCJISDptbTpzc1wiKSAgICBcclxuICAgIHRoaXMuYXBpU2VydmljZS5jbGllbnRGb3JtRGF0YS5uZXh0KHsgdmFsdWU6IHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnZhbHVlLCB0eXBlOiAnc3VibWl0JywgZm9ybTogJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnNldHRpbmdzX2NvbmZpZ3VyYXRpb25faXNFZGl0IFwiID5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGVkXCIgY2xhc3M9XCJjb2wtMTIgbWItNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlZCA/IGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5lbmFibGUoKSA6IGZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5kaXNhYmxlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBhbGlnbi1pdGVtcy1lbmRcIj48c3BhbiBjbGFzcz1cIm1lLTJcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzI1NzlfMjUxMjUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjcgMi40OTk5M0MxNC4zODU5IDIuMjgxMDYgMTQuNjQ1NyAyLjEwNzQ0IDE0LjkzMTcgMS45ODg5OUMxNS4yMTc2IDEuODcwNTQgMTUuNTI0MSAxLjgwOTU3IDE1LjgzMzcgMS44MDk1N0MxNi4xNDMyIDEuODA5NTcgMTYuNDQ5NyAxLjg3MDU0IDE2LjczNTcgMS45ODg5OUMxNy4wMjE2IDIuMTA3NDQgMTcuMjgxNSAyLjI4MTA2IDE3LjUwMDMgMi40OTk5M0MxNy43MTkyIDIuNzE4OCAxNy44OTI4IDIuOTc4NjMgMTguMDExMyAzLjI2NDZDMTguMTI5NyAzLjU1MDU3IDE4LjE5MDcgMy44NTcwNiAxOC4xOTA3IDQuMTY2NTlDMTguMTkwNyA0LjQ3NjEyIDE4LjEyOTcgNC43ODI2MiAxOC4wMTEzIDUuMDY4NTlDMTcuODkyOCA1LjM1NDU1IDE3LjcxOTIgNS42MTQzOSAxNy41MDAzIDUuODMzMjZMNi4yNTAzMyAxNy4wODMzTDEuNjY2OTkgMTguMzMzM0wyLjkxNjk5IDEzLjc0OTlMMTQuMTY3IDIuNDk5OTNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjU3OV8yNTEyNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5FZGl0IERldGFpbHM8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvcGVuXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3RvcmUgT3BlbiBUaW1lIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0aW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwib3BlblwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJvcGVuXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2xvc2VcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdG9yZSBDbG9zZSBUaW1lIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0aW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwiY2xvc2VcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiY2xvc2VcIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5JbmZyYSBBbGVydCA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmZyYUFsZXJ0Q29uZGl0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImluZnJhQWxlcnRDb25kaXRpb25cIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiaW5mcmFBbGVydFZhbHVlXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImluZnJhQWxlcnRWYWx1ZVwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZG93blRpbWVUeXBlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Qm91bmNlZCBMaW1pdDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImJvdW5jZWRMaW1pdENvbmRpdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJib3VuY2VkTGltaXRDb25kaXRpb25cIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYm91bmNlZExpbWl0VmFsdWVcIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiYm91bmNlZExpbWl0VmFsdWVcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIk1pbkZpbGVzQ291bnRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5NaXNzZWQgT3Bwb3J0dW5pdHkgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbW9jay1pbnB1dCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtaXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7bWlzc2VkT3Bwb3J0dW5pdHlTdGFydFRpbWUgfX0gLSB7e21pc3NlZE9wcG9ydHVuaXR5RW5kVGltZX19XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNvbnZlcnNpb24gPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY29udmVyc2lvbkNvbmRpdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJjb252ZXJzaW9uQ29uZGl0aW9uXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNvbnZlcnNpb25WYWx1ZVwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJjb252ZXJzaW9uVmFsdWVcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYmlsbGFibGVDYWxjdWxhdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJiaWxsYWJsZUNhbGN1bGF0aW9uXCIgW2xhYmVsXT1cIidCaWxsYWJsZSBDYWxjdWxhdGlvbnMnXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm1pc3NlZE9wcG9ydHVuaXR5Q2FsY3VsYXRpb25cIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwibWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvblwiIFtsYWJlbF09XCInTWlzc2VkIE9wcG9ydHVuaXR5IENhbGN1bGF0aW9uJ1wiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjb252ZXJzaW9uQ2FsY3VsYXRpb25cIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiY29udmVyc2lvbkNhbGN1bGF0aW9uXCIgW2xhYmVsXT1cIidDb252ZXJzaW9uIENhbGN1bGF0aW9ucydcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTUgcHgtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPk5vcm1hbGl6ZWQgZGF0YSBkdXJpbmcgZG93bnRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgbm9ybWFsaXplZCBkYXRhIGR1cmluZyBkb3dudGltZS4gPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+UGFzc2VyLWJ5IGRhdGE8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgUGFzc2VyYnkgZGF0YS4gPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRlclwiPkZvb3RmYWxsIERpcmVjdG9yeTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBGb290ZmFsbCBkaXJlY3RvcnkgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05vcm1hbGl6ZWRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImlzTm9ybWFsaXplZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc05vcm1hbGl6ZWRcIj4gU2hvdyBOb3JtYWxpemVkIGRhdGFcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTUgcHgtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzUGFzc2VyQnlEYXRhXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc1Bhc3NlckJ5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc1Bhc3NlckJ5RGF0YVwiPiBTaG93IFBhc3Nlci1ieSBkYXRhXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIj4gU2hvdyBGb290ZmFsbCBEaXJlY3RvcnlcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PiAgICBcclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIDwvZGl2PiAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZW5hYmxlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IHctMTAwIGZvb3Rlci1zZXBlcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG1lLTRcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPkNhbmNlbDwvYT5cclxuICAgICAgICAgICAgPGEgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTQgXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj48c3Bhbj5TYXZlIENoYW5nZXM8L3NwYW4+PC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Zvcm0+Il19
|
|
@@ -39,7 +39,7 @@ export class AddReportComponent {
|
|
|
39
39
|
this.addReportForm = this.fb.group({
|
|
40
40
|
fileName: ['', Validators.required],
|
|
41
41
|
fileType: ['', Validators.required],
|
|
42
|
-
email: [''
|
|
42
|
+
email: ['']
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
emailValidator(value) {
|
|
@@ -87,11 +87,11 @@ export class AddReportComponent {
|
|
|
87
87
|
}
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
|
91
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
|
90
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AddReportComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ClientApiService }, { token: i3.NgbActiveModal }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
91
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: AddReportComponent, selector: "lib-add-report", ngImport: i0, template: "<form [formGroup]=\"addReportForm\">\r\n <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M30 18H22C21.4696 18 20.9609 18.2107 20.5858 18.5858C20.2107 18.9609 20 19.4696 20 20V36C20 36.5304 20.2107 37.0391 20.5858 37.4142C20.9609 37.7893 21.4696 38 22 38H34C34.5304 38 35.0391 37.7893 35.4142 37.4142C35.7893 37.0391 36 36.5304 36 36V24M30 18L36 24M30 18V24H36M28 34V28M25 31H31\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <div class=\"col-12 mb-10 header\">\r\n Add Report\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileName\" class=\"form-label\">Report Name<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileName\" type=\"text\" class=\"form-control disabled-input\" id=\"fileName\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileType\" class=\"form-label\">File Type<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileType\" type=\"text\" class=\"form-control disabled-input\" id=\"fileType\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Receivers Email <span class=\"alert-required\"></span></label>\r\n <div class=\"outer-container\">\r\n <div class=\"input-container form-control\">\r\n <ng-container *ngFor=\"let email of emailList; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{email}}</span>\r\n <span *ngIf=\"addReportForm.enabled\" (click)=\"removeChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <!-- <textarea rows=\"5\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\"></textarea> -->\r\n <input class=\"emailinput\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"emailValidation.includes(false)\" class=\"text-danger mt-3\">Invalid Email Format</div>\r\n <div class=\"col-12 mt-10\">\r\n <div class=\"row\" >\r\n <div class=\"col \">\r\n <a type=\"button\" class=\"btn btn-outline w-100 \" (click)=\"onCancel()\">Cancel</a>\r\n </div>\r\n <div class=\"col\">\r\n <button type=\"button\" class=\"btn btn-primary w-100\" (click)=\"onSubmit()\" [disabled]=\"addReportForm.invalid || !emailList.length || emailValidation.includes(false)\"><span>Save Changes</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [":host{padding:1.5rem}.header{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.emailinput{border:none;outline:none;background:none;box-shadow:none;min-height:44px!important}.emailinput:focus,.emailinput:active{border:none;outline:none;background:none;box-shadow:none}.form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap}.outer-container .input-container textarea,.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px;height:25px}.outer-container .input-container .chip:nth-child(1){margin-left:0}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
92
92
|
}
|
|
93
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: AddReportComponent, decorators: [{
|
|
94
94
|
type: Component,
|
|
95
|
-
args: [{ selector: 'lib-add-report', template: "<form [formGroup]=\"addReportForm\">\r\n <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M30 18H22C21.4696 18 20.9609 18.2107 20.5858 18.5858C20.2107 18.9609 20 19.4696 20 20V36C20 36.5304 20.2107 37.0391 20.5858 37.4142C20.9609 37.7893 21.4696 38 22 38H34C34.5304 38 35.0391 37.7893 35.4142 37.4142C35.7893 37.0391 36 36.5304 36 36V24M30 18L36 24M30 18V24H36M28 34V28M25 31H31\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <div class=\"col-12 mb-10 header\">\r\n Add Report\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileName\" class=\"form-label\">Report Name<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileName\" type=\"text\" class=\"form-control disabled-input\" id=\"fileName\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileType\" class=\"form-label\">File Type<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileType\" type=\"text\" class=\"form-control disabled-input\" id=\"fileType\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Receivers Email <span class=\"alert-required\"></span></label>\r\n <div class=\"outer-container\">\r\n <div class=\"
|
|
95
|
+
args: [{ selector: 'lib-add-report', template: "<form [formGroup]=\"addReportForm\">\r\n <div class=\"row\">\r\n <div class=\"col-12 mb-5\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M30 18H22C21.4696 18 20.9609 18.2107 20.5858 18.5858C20.2107 18.9609 20 19.4696 20 20V36C20 36.5304 20.2107 37.0391 20.5858 37.4142C20.9609 37.7893 21.4696 38 22 38H34C34.5304 38 35.0391 37.7893 35.4142 37.4142C35.7893 37.0391 36 36.5304 36 36V24M30 18L36 24M30 18V24H36M28 34V28M25 31H31\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <div class=\"col-12 mb-10 header\">\r\n Add Report\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileName\" class=\"form-label\">Report Name<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileName\" type=\"text\" class=\"form-control disabled-input\" id=\"fileName\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-12 mb-5\">\r\n <label for=\"fileType\" class=\"form-label\">File Type<span class=\"alert-required\"></span></label>\r\n <input formControlName=\"fileType\" type=\"text\" class=\"form-control disabled-input\" id=\"fileType\"\r\n autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12\">\r\n <label for=\"infraDownTime\" class=\"form-label\">Receivers Email <span class=\"alert-required\"></span></label>\r\n <div class=\"outer-container\">\r\n <div class=\"input-container form-control\">\r\n <ng-container *ngFor=\"let email of emailList; let i = index\">\r\n <span class=\"chip\">\r\n <span class=\"me-3\">{{email}}</span>\r\n <span *ngIf=\"addReportForm.enabled\" (click)=\"removeChip(i)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\" stroke-width=\"1.5\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </ng-container>\r\n <!-- <textarea rows=\"5\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\"></textarea> -->\r\n <input class=\"emailinput\" formControlName=\"email\" (keydown)=\"onKeyDown($event)\" type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"emailValidation.includes(false)\" class=\"text-danger mt-3\">Invalid Email Format</div>\r\n <div class=\"col-12 mt-10\">\r\n <div class=\"row\" >\r\n <div class=\"col \">\r\n <a type=\"button\" class=\"btn btn-outline w-100 \" (click)=\"onCancel()\">Cancel</a>\r\n </div>\r\n <div class=\"col\">\r\n <button type=\"button\" class=\"btn btn-primary w-100\" (click)=\"onSubmit()\" [disabled]=\"addReportForm.invalid || !emailList.length || emailValidation.includes(false)\"><span>Save Changes</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [":host{padding:1.5rem}.header{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.emailinput{border:none;outline:none;background:none;box-shadow:none;min-height:44px!important}.emailinput:focus,.emailinput:active{border:none;outline:none;background:none;box-shadow:none}.form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}.outer-container{position:relative}.outer-container .form-control{padding-top:0;padding-bottom:0}.outer-container .input-container{border:1px solid black;height:100%;width:100%;display:flex;flex-wrap:wrap}.outer-container .input-container textarea,.outer-container .input-container input{all:unset;flex:1;min-width:50px}.outer-container .input-container .chip{margin:10px 0 10px 10px;padding:3px 10px;border-radius:16px;background:var(--Gray-100, #F2F4F7);color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-weight:500;line-height:20px;height:25px}.outer-container .input-container .chip:nth-child(1){margin-left:0}\n"] }]
|
|
96
96
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ClientApiService }, { type: i3.NgbActiveModal }, { type: i4.ToastService }] });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL3JlcG9ydC1jb25maWd1cmF0aW9uL2FkZC1yZXBvcnQvYWRkLXJlcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL3JlcG9ydC1jb25maWd1cmF0aW9uL2FkZC1yZXBvcnQvYWRkLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUF5QixVQUFVLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFRM0UsTUFBTSxPQUFPLGtCQUFrQjtJQVVUO0lBQXlCO0lBQXNDO0lBQXFDO0lBVHhILGFBQWEsQ0FBVztJQUN4QixTQUFTLEdBQU8sRUFBRSxDQUFBO0lBQ2xCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNqRCxRQUFRLENBQVM7SUFDQSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxzREFBc0Q7SUFDdEQsZUFBZSxHQUFTLEVBQUUsQ0FBQztJQUczQixZQUFvQixFQUFlLEVBQVUsVUFBNEIsRUFBVSxXQUEyQixFQUFVLE9BQW9CO1FBQXhILE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFVLGdC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QUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLFZhbGlkYXRvcnMsQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQ2xpZW50QXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2NsaWVudC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgc3dpdGNoTWFwLCBtYXAsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkZC1yZXBvcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWRkLXJlcG9ydC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFJlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgYWRkUmVwb3J0Rm9ybTogRm9ybUdyb3VwXHJcbiAgZW1haWxMaXN0OmFueSA9IFtdXHJcbiAgJGVtYWlsSW50ZXJydXB0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKVxyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLy8gZW1haWxWYWxpZGF0aW9uOiB7IGludmFsaWRFbWFpbDogYm9vbGVhbjsgfSB8IG51bGw7XHJcbiAgZW1haWxWYWxpZGF0aW9uOmFueVtdID0gW107XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBDbGllbnRBcGlTZXJ2aWNlLCBwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSB0b2FzdGVyOlRvYXN0U2VydmljZSwpIHtcclxuICAgIHRoaXMuaW5pdEZvcm0oKVxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBlPy5jbGllbnRJZFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaW5pdEZvcm0oKSB7XHJcbiAgICB0aGlzLmFkZFJlcG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZmlsZU5hbWU6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZmlsZVR5cGU6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZW1haWw6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbWFpbFZhbGlkYXRvcih2YWx1ZTphbnkpe1xyXG4gICAgY29uc3QgZW1haWxSZWdleCA9IC9eW2EtekEtWjAtOS5fJSstXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLH0kLztcclxuICAgIGNvbnN0IHZhbGlkID0gZW1haWxSZWdleC50ZXN0KHZhbHVlKTtcclxuICAgIHRoaXMuZW1haWxWYWxpZGF0aW9uLnB1c2godmFsaWQpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRSZXBvcnRGb3JtLmdldCgnZW1haWwnKT8udmFsdWVDaGFuZ2VzXHJcbiAgICAucGlwZShtYXAoKHZhbHVlKT0+IHZhbHVlLnJlcGxhY2UoL1xcbi9nLCAnJykpKVxyXG4gICAgLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgodmFsKSA9PiB7ICAgICAgICBcclxuICAgICAgICByZXR1cm4gdGhpcy4kZW1haWxJbnRlcnJ1cHQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnBpcGUobWFwKChpbnRlcnJ1cHQpPT57XHJcbiAgICAgICAgICBpZihpbnRlcnJ1cHQgPT09ICdFbnRlcicpe1xyXG4gICAgICAgICAgICB0aGlzLiRlbWFpbEludGVycnVwdC5uZXh0KCcnKVxyXG4gICAgICAgICAgICB0aGlzLmVtYWlsVmFsaWRhdGlvbj1bXTtcclxuICAgICAgICAgICAgdGhpcy5lbWFpbExpc3QucHVzaCh2YWwpXHJcbiAgICAgICAgICAgIHRoaXMuZW1haWxMaXN0LmZvckVhY2goKGVsZW1lbnQ6YW55KSA9PiB7dGhpcy5lbWFpbFZhbGlkYXRvcihlbGVtZW50KX0pO1xyXG4gICAgICAgICAgICB0aGlzLmFkZFJlcG9ydEZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZSgnJylcclxuICAgICAgICAgIH1lbHNlIGlmKGludGVycnVwdCA9PT0gJ0JhY2tzcGFjZScgJiYgIXZhbCAmJiB0aGlzLmVtYWlsTGlzdC5sZW5ndGgpe1xyXG4gICAgICAgICAgICB0aGlzLmVtYWlsTGlzdC5wb3AoKVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWxcclxuICAgICAgICAgIH1cclxuICAgICAgICAgfSkpXHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBvbktleURvd24oZXZlbnQ6YW55KXtcclxuICAgICAgdGhpcy4kZW1haWxJbnRlcnJ1cHQubmV4dChldmVudC5jb2RlKVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2hpcChpOm51bWJlcil7XHJcbiAgICB0aGlzLmVtYWlsTGlzdC5zcGxpY2UoaSwgMSkgICAgXHJcbiAgICB0aGlzLmVtYWlsVmFsaWRhdGlvbj1bXTtcclxuICAgIHRoaXMuZW1haWxMaXN0LmZvckVhY2goKGVsZW1lbnQ6YW55KSA9PiB7dGhpcy5lbWFpbFZhbGlkYXRvcihlbGVtZW50KX0pO1xyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5hZGRSZXBvcnQodGhpcy5jbGllbnRJZCwgey4uLnRoaXMuYWRkUmVwb3J0Rm9ybS52YWx1ZSwgZW1haWw6dGhpcy5lbWFpbExpc3R9ICkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KGUpPT57dGhpcy5hY3RpdmVNb2RhbC5jbG9zZSh7dHlwZTonYWRkJ30pfSxcclxuICAgICAgZXJyb3I6KGVycik9PntcclxuICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0RXJyb3JUb2FzdChlcnIuZXJyb3I/LmVycm9yKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImFkZFJlcG9ydEZvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTVcIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMzAgMThIMjJDMjEuNDY5NiAxOCAyMC45NjA5IDE4LjIxMDcgMjAuNTg1OCAxOC41ODU4QzIwLjIxMDcgMTguOTYwOSAyMCAxOS40Njk2IDIwIDIwVjM2QzIwIDM2LjUzMDQgMjAuMjEwNyAzNy4wMzkxIDIwLjU4NTggMzcuNDE0MkMyMC45NjA5IDM3Ljc4OTMgMjEuNDY5NiAzOCAyMiAzOEgzNEMzNC41MzA0IDM4IDM1LjAzOTEgMzcuNzg5MyAzNS40MTQyIDM3LjQxNDJDMzUuNzg5MyAzNy4wMzkxIDM2IDM2LjUzMDQgMzYgMzZWMjRNMzAgMThMMzYgMjRNMzAgMThWMjRIMzZNMjggMzRWMjhNMjUgMzFIMzFcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPiAgICAgICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItMTAgaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIEFkZCBSZXBvcnRcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpbGVOYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UmVwb3J0IE5hbWU8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJmaWxlTmFtZVwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZGlzYWJsZWQtaW5wdXRcIiBpZD1cImZpbGVOYW1lXCJcclxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmlsZVR5cGVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5GaWxlIFR5cGU8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJmaWxlVHlwZVwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZGlzYWJsZWQtaW5wdXRcIiBpZD1cImZpbGVUeXBlXCJcclxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImluZnJhRG93blRpbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5SZWNlaXZlcnMgRW1haWwgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGlucHV0LWNvbnRhaW5lciBmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbWFpbCBvZiBlbWFpbExpc3Q7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTNcIj57e2VtYWlsfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFkZFJlcG9ydEZvcm0uZW5hYmxlZFwiIChjbGljayk9XCJyZW1vdmVDaGlwKGkpXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSAzTDMgOU0zIDNMOSA5XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHJvd3M9XCI1XCIgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW5wdXQgc3R5bGU9XCJtaW4taGVpZ2h0OiA0NHB4O1wiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIiB0eXBlPVwidGV4dFwiPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgPGRpdiAqbmdJZj1cImVtYWlsVmFsaWRhdGlvbi5pbmNsdWRlcyhmYWxzZSlcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG10LTNcIj5JbnZhbGlkIEVtYWlsIEZvcm1hdDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbXQtMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDBcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiIFtkaXNhYmxlZF09XCJhZGRSZXBvcnRGb3JtLmludmFsaWQgfHwgIWVtYWlsTGlzdC5sZW5ndGggfHwgZW1haWxWYWxpZGF0aW9uLmluY2x1ZGVzKGZhbHNlKVwiPjxzcGFuPlNhdmUgQ2hhbmdlczwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlcG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL3JlcG9ydC1jb25maWd1cmF0aW9uL2FkZC1yZXBvcnQvYWRkLXJlcG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL3JlcG9ydC1jb25maWd1cmF0aW9uL2FkZC1yZXBvcnQvYWRkLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUF5QixVQUFVLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFRM0UsTUFBTSxPQUFPLGtCQUFrQjtJQVVUO0lBQXlCO0lBQXNDO0lBQXFDO0lBVHhILGFBQWEsQ0FBVztJQUN4QixTQUFTLEdBQU8sRUFBRSxDQUFBO0lBQ2xCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNqRCxRQUFRLENBQVM7SUFDQSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxzREFBc0Q7SUFDdEQsZUFBZSxHQUFTLEVBQUUsQ0FBQztJQUczQixZQUFvQixFQUFlLEVBQVUsVUFBNEIsRUFBVSxXQUEyQixFQUFVLE9BQW9CO1FBQXhILE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFVLGdC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IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLFZhbGlkYXRvcnMsQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQ2xpZW50QXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2NsaWVudC1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgc3dpdGNoTWFwLCBtYXAsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkZC1yZXBvcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWRkLXJlcG9ydC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFJlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgYWRkUmVwb3J0Rm9ybTogRm9ybUdyb3VwXHJcbiAgZW1haWxMaXN0OmFueSA9IFtdXHJcbiAgJGVtYWlsSW50ZXJydXB0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKVxyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgLy8gZW1haWxWYWxpZGF0aW9uOiB7IGludmFsaWRFbWFpbDogYm9vbGVhbjsgfSB8IG51bGw7XHJcbiAgZW1haWxWYWxpZGF0aW9uOmFueVtdID0gW107XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBDbGllbnRBcGlTZXJ2aWNlLCBwcml2YXRlIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSB0b2FzdGVyOlRvYXN0U2VydmljZSwpIHtcclxuICAgIHRoaXMuaW5pdEZvcm0oKVxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY2xpZW50SWQgPSBlPy5jbGllbnRJZFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaW5pdEZvcm0oKSB7XHJcbiAgICB0aGlzLmFkZFJlcG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZmlsZU5hbWU6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZmlsZVR5cGU6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZW1haWw6IFsnJ11cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZW1haWxWYWxpZGF0b3IodmFsdWU6YW55KXtcclxuICAgIGNvbnN0IGVtYWlsUmVnZXggPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgICBjb25zdCB2YWxpZCA9IGVtYWlsUmVnZXgudGVzdCh2YWx1ZSk7XHJcbiAgICB0aGlzLmVtYWlsVmFsaWRhdGlvbi5wdXNoKHZhbGlkKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkUmVwb3J0Rm9ybS5nZXQoJ2VtYWlsJyk/LnZhbHVlQ2hhbmdlc1xyXG4gICAgLnBpcGUobWFwKCh2YWx1ZSk9PiB2YWx1ZS5yZXBsYWNlKC9cXG4vZywgJycpKSlcclxuICAgIC5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHZhbCkgPT4geyAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuJGVtYWlsSW50ZXJydXB0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5waXBlKG1hcCgoaW50ZXJydXB0KT0+e1xyXG4gICAgICAgICAgaWYoaW50ZXJydXB0ID09PSAnRW50ZXInKXtcclxuICAgICAgICAgICAgdGhpcy4kZW1haWxJbnRlcnJ1cHQubmV4dCgnJylcclxuICAgICAgICAgICAgdGhpcy5lbWFpbFZhbGlkYXRpb249W107XHJcbiAgICAgICAgICAgIHRoaXMuZW1haWxMaXN0LnB1c2godmFsKVxyXG4gICAgICAgICAgICB0aGlzLmVtYWlsTGlzdC5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge3RoaXMuZW1haWxWYWxpZGF0b3IoZWxlbWVudCl9KTtcclxuICAgICAgICAgICAgdGhpcy5hZGRSZXBvcnRGb3JtLmdldCgnZW1haWwnKT8uc2V0VmFsdWUoJycpXHJcbiAgICAgICAgICB9ZWxzZSBpZihpbnRlcnJ1cHQgPT09ICdCYWNrc3BhY2UnICYmICF2YWwgJiYgdGhpcy5lbWFpbExpc3QubGVuZ3RoKXtcclxuICAgICAgICAgICAgdGhpcy5lbWFpbExpc3QucG9wKClcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgIH0pKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICkuc3Vic2NyaWJlKClcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgb25LZXlEb3duKGV2ZW50OmFueSl7XHJcbiAgICAgIHRoaXMuJGVtYWlsSW50ZXJydXB0Lm5leHQoZXZlbnQuY29kZSlcclxuICB9XHJcblxyXG4gIHJlbW92ZUNoaXAoaTpudW1iZXIpe1xyXG4gICAgdGhpcy5lbWFpbExpc3Quc3BsaWNlKGksIDEpICAgIFxyXG4gICAgdGhpcy5lbWFpbFZhbGlkYXRpb249W107XHJcbiAgICB0aGlzLmVtYWlsTGlzdC5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge3RoaXMuZW1haWxWYWxpZGF0b3IoZWxlbWVudCl9KTtcclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuYWRkUmVwb3J0KHRoaXMuY2xpZW50SWQsIHsuLi50aGlzLmFkZFJlcG9ydEZvcm0udmFsdWUsIGVtYWlsOnRoaXMuZW1haWxMaXN0fSApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihlKT0+e3RoaXMuYWN0aXZlTW9kYWwuY2xvc2Uoe3R5cGU6J2FkZCd9KX0sXHJcbiAgICAgIGVycm9yOihlcnIpPT57XHJcbiAgICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoZXJyLmVycm9yPy5lcnJvcilcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJhZGRSZXBvcnRGb3JtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0RBRjFGRlwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMwIDE4SDIyQzIxLjQ2OTYgMTggMjAuOTYwOSAxOC4yMTA3IDIwLjU4NTggMTguNTg1OEMyMC4yMTA3IDE4Ljk2MDkgMjAgMTkuNDY5NiAyMCAyMFYzNkMyMCAzNi41MzA0IDIwLjIxMDcgMzcuMDM5MSAyMC41ODU4IDM3LjQxNDJDMjAuOTYwOSAzNy43ODkzIDIxLjQ2OTYgMzggMjIgMzhIMzRDMzQuNTMwNCAzOCAzNS4wMzkxIDM3Ljc4OTMgMzUuNDE0MiAzNy40MTQyQzM1Ljc4OTMgMzcuMDM5MSAzNiAzNi41MzA0IDM2IDM2VjI0TTMwIDE4TDM2IDI0TTMwIDE4VjI0SDM2TTI4IDM0VjI4TTI1IDMxSDMxXCIgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz4gICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTEwIGhlYWRlclwiPlxyXG4gICAgICAgICAgICBBZGQgUmVwb3J0XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWxlTmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlJlcG9ydCBOYW1lPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZmlsZU5hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGRpc2FibGVkLWlucHV0XCIgaWQ9XCJmaWxlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZpbGVUeXBlXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RmlsZSBUeXBlPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZmlsZVR5cGVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGRpc2FibGVkLWlucHV0XCIgaWQ9XCJmaWxlVHlwZVwiXHJcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpbmZyYURvd25UaW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UmVjZWl2ZXJzIEVtYWlsIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm91dGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbWFpbCBvZiBlbWFpbExpc3Q7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTNcIj57e2VtYWlsfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFkZFJlcG9ydEZvcm0uZW5hYmxlZFwiIChjbGljayk9XCJyZW1vdmVDaGlwKGkpXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOSAzTDMgOU0zIDNMOSA5XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGV4dGFyZWEgcm93cz1cIjVcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCI+PC90ZXh0YXJlYT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZW1haWxpbnB1dFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIiB0eXBlPVwidGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICA8ZGl2ICpuZ0lmPVwiZW1haWxWYWxpZGF0aW9uLmluY2x1ZGVzKGZhbHNlKVwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbXQtM1wiPkludmFsaWQgRW1haWwgRm9ybWF0PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtdC0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgXCIgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5DYW5jZWw8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiIChjbGljayk9XCJvblN1Ym1pdCgpXCIgW2Rpc2FibGVkXT1cImFkZFJlcG9ydEZvcm0uaW52YWxpZCB8fCAhZW1haWxMaXN0Lmxlbmd0aCB8fCBlbWFpbFZhbGlkYXRpb24uaW5jbHVkZXMoZmFsc2UpXCI+PHNwYW4+U2F2ZSBDaGFuZ2VzPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|