tango-app-ui-manage-settings 3.0.55-dev → 3.0.57-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/brand-details/billing-details/billing-details.component.mjs +3 -3
- package/esm2022/lib/components/brand-details/brand-info/brand-info.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 +8 -7
- package/esm2022/lib/components/configurations/domain-details/domain-details.component.mjs +3 -3
- package/esm2022/lib/components/configurations/feature-configuration/feature-configuration.component.mjs +5 -3
- package/esm2022/lib/components/configurations/report-configuration/report-configuration.component.mjs +3 -3
- package/esm2022/lib/components/configurations/user-configuration/user-configuration.component.mjs +3 -3
- package/esm2022/lib/components/documents/documents.component.mjs +3 -3
- package/fesm2022/tango-app-ui-manage-settings.mjs +100 -96
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -99,6 +99,8 @@ export class FeatureConfigurationComponent {
|
|
|
99
99
|
isNormalized: [],
|
|
100
100
|
isPasserByData: [],
|
|
101
101
|
isFootfallDirectory: [],
|
|
102
|
+
isExcludedArea: [],
|
|
103
|
+
updateFeatureConfig: []
|
|
102
104
|
});
|
|
103
105
|
this.featureConfigurationForm.disable();
|
|
104
106
|
this.featureConfigurationForm.get('bouncedLimitValue')?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((e) => {
|
|
@@ -171,10 +173,10 @@ export class FeatureConfigurationComponent {
|
|
|
171
173
|
this.apiService.clientFormData.next({ value: this.featureConfigurationForm.value, type: 'submit', form: 'feature-configuration' });
|
|
172
174
|
}
|
|
173
175
|
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" }] });
|
|
176
|
+
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\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\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-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 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 </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 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=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\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 mt-1 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:14px;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" }] });
|
|
175
177
|
}
|
|
176
178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FeatureConfigurationComponent, decorators: [{
|
|
177
179
|
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"] }]
|
|
180
|
+
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\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\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-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 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-3 col-xl-3 col-xxl-3 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 </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 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=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\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 mt-1 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:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"] }]
|
|
179
181
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ClientApiService }, { type: i3.GlobalStateService }, { type: i0.ChangeDetectorRef }] });
|
|
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
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbnMvZmVhdHVyZS1jb25maWd1cmF0aW9uL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2ZlYXR1cmUtY29uZmlndXJhdGlvbi9mZWF0dXJlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBUSxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzNCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBT3ZCLE1BQU0sT0FBTyw2QkFBNkI7SUFnRXBCO0lBQXlCO0lBQXFDO0lBQ3hFO0lBOURWLHdCQUF3QixDQUFXO0lBQ25DLDBCQUEwQixDQUFTO0lBQ25DLHdCQUF3QixDQUFTO0lBQ2hCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFHYixlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7S0FDN0IsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0tBQzlCLENBQUE7SUFFRCxxQkFBcUIsR0FBRztRQUN0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtLQUM5QixDQUFBO0lBRUQsaUJBQWlCLEdBQUc7UUFDbEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7S0FDOUIsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0tBQzNCLENBQUE7SUFFRCxlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVB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QUFLLENBQUMsY0FBYyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3JKLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3ZKLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQTtJQUNwSSxDQUFDO3dHQTdMVSw2QkFBNkI7NEZBQTdCLDZCQUE2QixpRUNqQjFDLG1pVUF3Sk87OzRGRHZJTSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCAgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmVhdHVyZS1jb25maWd1cmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVhdHVyZUNvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtOiBGb3JtR3JvdXBcclxuICBtaXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZTogc3RyaW5nO1xyXG4gIG1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGRheWpzID0gZGF5anNcclxuXHJcblxyXG4gIGluZnJhQWxlcnRWYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDEsIGxhYmVsOiBcIjEgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDIsIGxhYmVsOiBcIjIgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDMsIGxhYmVsOiBcIjMgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDQsIGxhYmVsOiBcIjQgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgaHJzXCIgfVxyXG4gIF1cclxuXHJcbiAgaW5mcmFBbGVydENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPFwiLCBsYWJlbDogXCI8XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPlwiLCBsYWJlbDogXCI+XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPT5cIiwgbGFiZWw6IFwiPSA+XCIgfSxcclxuICBdXHJcblxyXG4gIGJvdW5jZWRMaW1pdENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfVxyXG4gIF1cclxuXHJcbiAgYm91bmNlZExpbWl0VmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogXCIxIG1pblwiIH0sXHJcbiAgICB7IHZhbHVlOiAyLCBsYWJlbDogXCIyIG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMywgbGFiZWw6IFwiMyBtaW5zXCIgfSxcclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25Db25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIj5cIiwgbGFiZWw6IFwiPlwiIH1cclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25WYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxMCwgbGFiZWw6IFwiMTAgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxNSwgbGFiZWw6IFwiMTUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAyMCwgbGFiZWw6IFwiMjAgbWluc1wiIH1cclxuICBdXHJcblxyXG4gIGJpbGxhYmxlQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOiBcIkZvb3RmYWxsIENvdW50XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6IFwiRW5nYWdlcnMgQ291bnRcIiB9LFxyXG4gIF1cclxuXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY29udmVyc2lvblwiLCBsYWJlbDogXCJFbmdhZ2VycyAtIENvbnZlcnNpb25cIiB9LFxyXG4gICAgeyB2YWx1ZTogXCJncm91cC1jb252ZXJzaW9uXCIsIGxhYmVsOiBcIkJpbGxhYmxlIEVudGl0aWVzIC0gQ29udmVyc2lvblwiIH0sXHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7dmFsdWU6XCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDpcIkZvb3RmYWxsIENvdW50XCJ9LFxyXG4gICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6XCJFbmdhZ2VycyBDb3VudFwifSxcclxuICAgIHt2YWx1ZTpcImJpbGxhYmxlLWVudGl0aWVzXCIsIGxhYmVsOlwiQmlsbGFibGUgRW50aXRpZXNcIn0sXHJcbiAgXVxyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFwaVNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpXHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICBpZiAocmVzLnR5cGUgPT09ICdpbnB1dCcgJiYgcmVzLmZvcm0gPT09ICdmZWF0dXJlLWNvbmZpZ3VyYXRpb24nKSB7XHJcbiAgICAgICAgICB0aGlzLnBhdGNoRm9ybShyZXMudmFsdWUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRGb3JtKCkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgb3BlbjogW10sXHJcbiAgICAgIGNsb3NlOiBbXSxcclxuICAgICAgaW5mcmFBbGVydENvbmRpdGlvbjogW10sXHJcbiAgICAgIGluZnJhQWxlcnRWYWx1ZTogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdENvbmRpdGlvbjogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdFZhbHVlOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNvbmRpdGlvbjogW10sXHJcbiAgICAgIGNvbnZlcnNpb25WYWx1ZTogW10sXHJcbiAgICAgIGJpbGxhYmxlQ2FsY3VsYXRpb246IFtdLFxyXG4gICAgICBtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgaXNOb3JtYWxpemVkOiBbXSxcclxuICAgICAgaXNQYXNzZXJCeURhdGE6IFtdLFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5OiBbXSxcclxuICAgICAgaXNFeGNsdWRlZEFyZWE6W10sXHJcbiAgICAgIHVwZGF0ZUZlYXR1cmVDb25maWc6W11cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZSgpXHJcblxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdib3VuY2VkTGltaXRWYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkgeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5ib3VuY2VkQ29uZmlnVGltZUNoYW5nZShlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25WYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY29udmVyc2lvbkNvbmZpZ1RpbWVDaGFuZ2UoZSlcclxuICAgICAgICAvLyB0aGlzLnNldENvbnZlcnNpb25DYWxjdWxhdGlvbihlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBhdGNoRm9ybShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnBhdGNoVmFsdWUoXHJcbiAgICAgIHtcclxuICAgICAgICAuLi5kYXRhXHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGJvdW5jZWRDb25maWdUaW1lQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcclxuXHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MVwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDM6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjNcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb252ZXJzaW9uQ29uZmlnVGltZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDEwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE1OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDIwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb252ZXJzaW9uQ2FsY3VsYXRpb24oY29udmVyc2lvblZhbDpudW1iZXIpe1xyXG4gICAgdGhpcy5jb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICAgIHt2YWx1ZTpcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOmAke2NvbnZlcnNpb25WYWx9IG1pbnMvRm9vdGZhbGwgQ291bnRgfSxcclxuICAgICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6YCR7Y29udmVyc2lvblZhbH0gbWlucy9FbmdhZ2VycyBDb3VudGB9LFxyXG4gICAgICB7dmFsdWU6XCJiaWxsYWJsZS1lbnRpdGllc1wiLCBsYWJlbDpgJHtjb252ZXJzaW9uVmFsfSBtaW5zL0JpbGxhYmxlIEVudGl0aWVzYH0sXHJcbiAgICBdXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25DYWxjdWxhdGlvbicpPy5zZXRWYWx1ZSh0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybT8udmFsdWUuY29udmVyc2lvbkNhbGN1bGF0aW9uKSBcclxuICB9XHJcblxyXG5cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnY2FuY2VsJywgZm9ybTogJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicgfSlcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGUoKVxyXG5cclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUub3BlbiA9IHRoaXMuZGF5anMoYDE5OTEtMDEtMDEgJHt0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5vcGVufWAsJ1lZWVktTU0tREQgSEg6bW0nKS5mb3JtYXQoXCJISDptbTpzc1wiKVxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUuY2xvc2UgPSB0aGlzLmRheWpzKGAxOTkxLTAxLTAxICR7dGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUuY2xvc2V9YCwnWVlZWS1NTS1ERCBISDptbScpLmZvcm1hdChcIkhIOm1tOnNzXCIpICAgIFxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUsIHR5cGU6ICdzdWJtaXQnLCBmb3JtOiAnZmVhdHVyZS1jb25maWd1cmF0aW9uJyB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfY29uZmlndXJhdGlvbl9pc0VkaXQgXCIgPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZWRcIiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbmdJZj1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ3VwZGF0ZUZlYXR1cmVDb25maWcnKT8udmFsdWUgPT09IHRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGVkID8gZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmVuYWJsZSgpIDogZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGFsaWduLWl0ZW1zLWVuZFwiPjxzcGFuIGNsYXNzPVwibWUtMlwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjU3OV8yNTEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjE2NyAyLjQ5OTkzQzE0LjM4NTkgMi4yODEwNiAxNC42NDU3IDIuMTA3NDQgMTQuOTMxNyAxLjk4ODk5QzE1LjIxNzYgMS44NzA1NCAxNS41MjQxIDEuODA5NTcgMTUuODMzNyAxLjgwOTU3QzE2LjE0MzIgMS44MDk1NyAxNi40NDk3IDEuODcwNTQgMTYuNzM1NyAxLjk4ODk5QzE3LjAyMTYgMi4xMDc0NCAxNy4yODE1IDIuMjgxMDYgMTcuNTAwMyAyLjQ5OTkzQzE3LjcxOTIgMi43MTg4IDE3Ljg5MjggMi45Nzg2MyAxOC4wMTEzIDMuMjY0NkMxOC4xMjk3IDMuNTUwNTcgMTguMTkwNyAzLjg1NzA2IDE4LjE5MDcgNC4xNjY1OUMxOC4xOTA3IDQuNDc2MTIgMTguMTI5NyA0Ljc4MjYyIDE4LjAxMTMgNS4wNjg1OUMxNy44OTI4IDUuMzU0NTUgMTcuNzE5MiA1LjYxNDM5IDE3LjUwMDMgNS44MzMyNkw2LjI1MDMzIDE3LjA4MzNMMS42NjY5OSAxOC4zMzMzTDIuOTE2OTkgMTMuNzQ5OUwxNC4xNjcgMi40OTk5M1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yNTc5XzI1MTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPkVkaXQgRGV0YWlsczwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm9wZW5cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdG9yZSBPcGVuIFRpbWUgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJvcGVuXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIm9wZW5cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjbG9zZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlN0b3JlIENsb3NlIFRpbWUgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJjbG9zZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjbG9zZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkluZnJhIEFsZXJ0IDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImluZnJhQWxlcnRDb25kaXRpb25cIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiaW5mcmFBbGVydENvbmRpdGlvblwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmZyYUFsZXJ0VmFsdWVcIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiaW5mcmFBbGVydFZhbHVlXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkb3duVGltZVR5cGVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Cb3VuY2VkIExpbWl0PHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYm91bmNlZExpbWl0Q29uZGl0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImJvdW5jZWRMaW1pdENvbmRpdGlvblwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJib3VuY2VkTGltaXRWYWx1ZVwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJib3VuY2VkTGltaXRWYWx1ZVwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiTWluRmlsZXNDb3VudFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk1pc3NlZCBPcHBvcnR1bml0eSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCBtb2NrLWlucHV0IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3ttaXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSB9fSAtIHt7bWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lfX1cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29udmVyc2lvbiA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjb252ZXJzaW9uQ29uZGl0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImNvbnZlcnNpb25Db25kaXRpb25cIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY29udmVyc2lvblZhbHVlXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImNvbnZlcnNpb25WYWx1ZVwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJiaWxsYWJsZUNhbGN1bGF0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImJpbGxhYmxlQ2FsY3VsYXRpb25cIiBbbGFiZWxdPVwiJ0JpbGxhYmxlIENhbGN1bGF0aW9ucydcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwibWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uXCIgW2xhYmVsXT1cIidNaXNzZWQgT3Bwb3J0dW5pdHkgQ2FsY3VsYXRpb24nXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNvbnZlcnNpb25DYWxjdWxhdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJjb252ZXJzaW9uQ2FsY3VsYXRpb25cIiBbbGFiZWxdPVwiJ0NvbnZlcnNpb24gQ2FsY3VsYXRpb25zJ1wiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Tm9ybWFsaXplZCBkYXRhIGR1cmluZyBkb3dudGltZTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBub3JtYWxpemVkIGRhdGEgZHVyaW5nIGRvd250aW1lLiA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5QYXNzZXItYnkgZGF0YTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBQYXNzZXJieSBkYXRhLiA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Rm9vdGZhbGwgRGlyZWN0b3J5PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byB2aWV3IEZvb3RmYWxsIGRpcmVjdG9yeSA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+RXhjbHVkZWQgQXJlYTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgRXhjbHVkZWQgQXJlYSA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNOb3JtYWxpemVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc05vcm1hbGl6ZWRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNOb3JtYWxpemVkXCI+IFNob3cgTm9ybWFsaXplZCBkYXRhXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc1Bhc3NlckJ5RGF0YVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiaXNQYXNzZXJCeURhdGFcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNQYXNzZXJCeURhdGFcIj4gU2hvdyBQYXNzZXItYnkgZGF0YVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCIgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCI+IFNob3cgRm9vdGZhbGwgRGlyZWN0b3J5XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zIG1iLTUgcHgtNlwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LnVzZXJUeXBlID09PSAndGFuZ28nIFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNFeGNsdWRlZEFyZWFcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzRXhjbHVkZWRBcmVhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0V4bHVkZWRBcmVhXCI+IFNob3cgRXhjbHVkZWQgQXJlYVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmVuYWJsZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItNSB3LTEwMCBmb290ZXItc2VwZXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgIDxhIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBtdC0xIG1lLTRcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPkNhbmNlbDwvYT5cclxuICAgICAgICAgICAgPGEgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTQgXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj48c3Bhbj5TYXZlIENoYW5nZXM8L3NwYW4+PC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Zvcm0+Il19
|