nuxeo-development-framework 3.1.8 → 3.1.9

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.
@@ -161,7 +161,7 @@ export class AddPermissionsDialogComponent {
161
161
  }
162
162
  }
163
163
  AddPermissionsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: AddPermissionsDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.PermissionService }, { token: i3.CustomToastrService }, { token: i4.FormBuilder }, { token: i5.TranslationService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
164
- AddPermissionsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: AddPermissionsDialogComponent, selector: "app-add-permissions-dialog", ngImport: i0, template: "<form [formGroup]=\"permissionForm\" class=\"h-full\" SetRtl>\r\n\r\n <div class=\"flex flex-col h-full\">\r\n <div class=\"add-permsion-wrapper\">\r\n <span class=\"text-gray-900 text-lg\" *ngIf=\"state == 'update'\">\r\n {{ \"permission.edit_permission\" | translate }}\r\n </span>\r\n <span class=\"text-gray-900 text-lg\" *ngIf=\"state !== 'update'\">\r\n {{ \"permission.add_new_permission\" | translate }}\r\n </span>\r\n \r\n <div class=\"user-select mt-5\" *ngIf=\"state != 'update'\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ 'permission.username' | translate}}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"permissionService.departmentUsers\"\r\n [placeholder]=\"'permission.placeholder' | translate\"\r\n [multiple]=\"true\"\r\n [loading]=\"refreshUsers\"\r\n bindLabel=\"displayLabel\"\r\n bindValue=\"properties.username\"\r\n formControlName=\"users\"\r\n >\r\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\r\n <div class=\"ng-option disabled\">\r\n {{'permission.ngSelect_resultNotFound' | translate}}\r\n </div>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <div class=\"flex flex-col h-full\">\r\n <div class=\"flex flex-row\">\r\n <div class=\"flex-0 w-8 h-8 rounded-full overflow-hidden\" >\r\n <cts-avatar [user]=\"{\r\n properties: {\r\n firstName: item.properties.firstName,\r\n lastName: item.properties.lastName\r\n }\r\n }\">\r\n </cts-avatar>\r\n </div>\r\n <div class=\"flex flex-col pt-0 px-2\">\r\n <span>{{item.displayLabel}}</span>\r\n <span>{{item.properties.email}}-{{item.properties.username}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"mt-3 rights-select\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ \"permission.Rights\" | translate }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"rights\"\r\n [placeholder]=\"'permission.rightsPlaceholder' | translate\"\r\n bindLabel=\"label\"\r\n bindValue=\"value\"\r\n formControlName=\"permission\" \r\n [(ngModel)]=\"editableRight\"\r\n >\r\n </ng-select>\r\n </div>\r\n \r\n <!--<div class=\"flex flex-row mt-5\">\r\n <span class=\"text-gray-900 text-base font-bold\">\r\n {{ \"permission.timeframe\" | translate }}\r\n <span class=\"text-danger\">*</span>:</span>\r\n <div class=\"mx-2\">\r\n <label class=\"inline-flex items-center\">\r\n <input type=\"radio\" class=\"form-radio\" name=\"radio\" value=\"Permanent\" [checked]=\"timeFrame == 'Permanent'\"\r\n (click)=\"timeFrame = 'Permanent'\" />\r\n <span class=\"mx-2 mt-1 text-gray-900 text-sm font-bold\">{{\r\n \"permission.permanent\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div rtl>\r\n <label class=\"inline-flex items-center\">\r\n <input type=\"radio\" class=\"form-radio\" name=\"radio\" value=\"Date-Based\" [checked]=\"timeFrame == 'Date-Based'\"\r\n (click)=\"timeFrame = 'Date-Based'\" />\r\n <span class=\"mx-2 mt-1 text-gray-900 text-sm font-bold\">{{\r\n \"permission.Date_based\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col mt-2\">\r\n <label class=\"text-base font-bold text-gray-900 mb-0\">{{ \"permission.from\" | translate }}</label>\r\n <cts-dynamic-form-hijri-dateitem \r\n formControlName=\"begin\" \r\n [isDisabled]=\"timeFrame == 'Permanent'\"\r\n [(ngModel)]=\"editableBegin\">\r\n </cts-dynamic-form-hijri-dateitem>\r\n <label class=\"text-base font-bold text-gray-900 mb-0\">{{ \"permission.to\" | translate }}</label>\r\n <cts-dynamic-form-hijri-dateitem \r\n formControlName=\"end\" \r\n [isDisabled]=\"timeFrame == 'Permanent'\"\r\n [(ngModel)]=\"editableEnd\">\r\n </cts-dynamic-form-hijri-dateitem>\r\n <div *ngIf=\"permissionForm?.errors?.notValid\">\r\n <span class=\"text-red-500 text-base -mt-3 \">{{\r\n \"permission.endStartError\" | translate\r\n }}</span>\r\n </div>\r\n </div>-->\r\n </div>\r\n\r\n <div class=\"flex flex-row justify-between mt-5 flex-wrap\">\r\n <div>\r\n <button\r\n class=\"cancelation-button mb-3\"\r\n (click)=\"cancel(false)\">\r\n {{ \"BUTTONS.Cancel\" | translate }}\r\n </button>\r\n </div>\r\n <div class=\"d-flex\">\r\n <button *ngIf=\"state != 'update'\"\r\n [disabled]=\"createAndAdd\"\r\n class=\"submission-button\"\r\n (click)=\"create(permissionForm.value)\">\r\n <span *ngIf=\"!creating;else loader\">{{ \"permission.create\" | translate }}</span>\r\n </button>\r\n <button\r\n class=\"submission-button\"\r\n (click)=\"edit(permissionForm.value)\" *ngIf=\"state == 'update'\">\r\n <span *ngIf=\"!updating;else loader\">{{ \"permission.update\" | translate }}</span>\r\n </button>\r\n <button *ngIf=\"state != 'update'\"\r\n class=\"submission-button w-44\"\r\n (click)=\"\r\n createandAddAnother(permissionForm, permissionForm.value)\r\n \">\r\n <span *ngIf=\"!createAndAdd;else loader\">{{ \"permission.createAndAdd\" | translate }}</span>\r\n </button>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #loader>\r\n <mat-spinner [value]=\"90\" [strokeWidth]=\"3\" overlay=\"true\" [diameter]=\"25\" color=\"warn\">\r\n </mat-spinner>\r\n</ng-template>\r\n", styles: [".form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;user-select:none;flex-shrink:0;border-radius:100%;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px}.form-radio:checked{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;box-shadow:0 0 0 3px #4299e180;border-color:#63b3ed}.select-label{color:#8f98aa;font-size:12px;margin-bottom:0}.user-select .ng-select-container,.rights-select .ng-select-container{border:1px solid #ccc!important;border-radius:5px!important;background-color:#8f98aa1a!important}.user-select .ng-select-container .ng-value-container,.rights-select .ng-select-container .ng-value-container{padding:unset!important}.user-select .ng-select-container .ng-value-container .ng-placeholder,.rights-select .ng-select-container .ng-value-container .ng-placeholder{font-size:12px}.user-select .ng-select-container .ng-value-container .ng-value,.rights-select .ng-select-container .ng-value-container .ng-value{color:#495057}.user-select .ng-select-container .ng-arrow-wrapper,.rights-select .ng-select-container .ng-arrow-wrapper{padding:0 20px}.user-select .ng-select-container .ng-input,.rights-select .ng-select-container .ng-input{left:10px;right:10px;width:auto}.user-select .ng-select-container .ng-value-container .ng-placeholder{padding-top:4px!important}.ng-select-disabled .ng-select-container{background-color:#e9ecef!important}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper{position:relative}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper input{visibility:hidden;width:20px;height:20px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper .icon-wrapper{position:absolute;top:0px;left:0px;width:20px;height:20px;border:1px solid blue;display:flex;justify-content:center;align-items:center}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper .icon-wrapper .icon{color:#00f;display:none;justify-content:center;align-items:center;font-weight:bold}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option-selected .option-wrapper .check-box-wrapper .icon-wrapper .icon{display:flex}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option-selected .option-wrapper .label-wrapper{color:#00f}.ng-select .ng-select-focused:not(.ng-select-opened) .ng-select-container{border-color:#ccc;box-shadow:none}.add-permsion-wrapper{height:calc(100% - 50px);overflow:auto}\n"], components: [{ type: i6.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i7.AvatarComponent, selector: "cts-avatar", inputs: ["user"] }, { type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.SetRtlDirective, selector: "[SetRtl]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ɵl, selector: "[ng-notfound-tmp]" }, { type: i6.ɵf, selector: "[ng-option-tmp]" }], pipes: { "translate": i11.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
164
+ AddPermissionsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: AddPermissionsDialogComponent, selector: "app-add-permissions-dialog", ngImport: i0, template: "<form [formGroup]=\"permissionForm\" class=\"h-full\" SetRtl>\r\n\r\n <div class=\"flex flex-col h-full\">\r\n <div class=\"add-permsion-wrapper\">\r\n <span class=\"text-gray-900 text-lg\" *ngIf=\"state == 'update'\">\r\n {{ \"permission.edit_permission\" | translate }}\r\n </span>\r\n <span class=\"text-gray-900 text-lg\" *ngIf=\"state !== 'update'\">\r\n {{ \"permission.add_new_permission\" | translate }}\r\n </span>\r\n \r\n <div class=\"user-select mt-5\" *ngIf=\"state != 'update'\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ 'permission.username' | translate}}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"permissionService.departmentUsers\"\r\n [placeholder]=\"'permission.placeholder' | translate\"\r\n [multiple]=\"true\"\r\n [loading]=\"refreshUsers\"\r\n bindLabel=\"displayLabel\"\r\n bindValue=\"properties.username\"\r\n formControlName=\"users\"\r\n >\r\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\r\n <div class=\"ng-option disabled\">\r\n {{'permission.ngSelect_resultNotFound' | translate}}\r\n </div>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <div class=\"flex flex-col h-full\">\r\n <div class=\"flex flex-row\">\r\n <div class=\"flex-0 w-8 h-8 rounded-full overflow-hidden\" >\r\n <cts-avatar [user]=\"{\r\n properties: {\r\n firstName: item.properties.firstName,\r\n lastName: item.properties.lastName\r\n }\r\n }\">\r\n </cts-avatar>\r\n </div>\r\n <div class=\"flex flex-col pt-0 px-2\">\r\n <span>{{item.displayLabel}}</span>\r\n <span>{{item.properties.email}}-{{item.properties.username}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"mt-3 rights-select\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ \"permission.Rights\" | translate }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"rights\"\r\n [placeholder]=\"'permission.rightsPlaceholder' | translate\"\r\n bindLabel=\"label\"\r\n bindValue=\"value\"\r\n formControlName=\"permission\" \r\n [(ngModel)]=\"editableRight\"\r\n >\r\n </ng-select>\r\n </div>\r\n \r\n <!--<div class=\"flex flex-row mt-5\">\r\n <span class=\"text-gray-900 text-base font-bold\">\r\n {{ \"permission.timeframe\" | translate }}\r\n <span class=\"text-danger\">*</span>:</span>\r\n <div class=\"mx-2\">\r\n <label class=\"inline-flex items-center\">\r\n <input type=\"radio\" class=\"form-radio\" name=\"radio\" value=\"Permanent\" [checked]=\"timeFrame == 'Permanent'\"\r\n (click)=\"timeFrame = 'Permanent'\" />\r\n <span class=\"mx-2 mt-1 text-gray-900 text-sm font-bold\">{{\r\n \"permission.permanent\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div rtl>\r\n <label class=\"inline-flex items-center\">\r\n <input type=\"radio\" class=\"form-radio\" name=\"radio\" value=\"Date-Based\" [checked]=\"timeFrame == 'Date-Based'\"\r\n (click)=\"timeFrame = 'Date-Based'\" />\r\n <span class=\"mx-2 mt-1 text-gray-900 text-sm font-bold\">{{\r\n \"permission.Date_based\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col mt-2\">\r\n <label class=\"text-base font-bold text-gray-900 mb-0\">{{ \"permission.from\" | translate }}</label>\r\n <cts-dynamic-form-hijri-dateitem \r\n formControlName=\"begin\" \r\n [isDisabled]=\"timeFrame == 'Permanent'\"\r\n [(ngModel)]=\"editableBegin\">\r\n </cts-dynamic-form-hijri-dateitem>\r\n <label class=\"text-base font-bold text-gray-900 mb-0\">{{ \"permission.to\" | translate }}</label>\r\n <cts-dynamic-form-hijri-dateitem \r\n formControlName=\"end\" \r\n [isDisabled]=\"timeFrame == 'Permanent'\"\r\n [(ngModel)]=\"editableEnd\">\r\n </cts-dynamic-form-hijri-dateitem>\r\n <div *ngIf=\"permissionForm?.errors?.notValid\">\r\n <span class=\"text-red-500 text-base -mt-3 \">{{\r\n \"permission.endStartError\" | translate\r\n }}</span>\r\n </div>\r\n </div>-->\r\n </div>\r\n\r\n <div class=\"flex flex-row justify-between mt-5 flex-wrap\">\r\n <div class=\"d-flex\">\r\n <button *ngIf=\"state != 'update'\" [disabled]=\"createAndAdd\" class=\"submission-button\"\r\n (click)=\"create(permissionForm.value)\">\r\n <span *ngIf=\"!creating;else loader\">{{ \"permission.create\" | translate }}</span>\r\n </button>\r\n <button class=\"submission-button\" (click)=\"edit(permissionForm.value)\" *ngIf=\"state == 'update'\">\r\n <span *ngIf=\"!updating;else loader\">{{ \"permission.update\" | translate }}</span>\r\n </button>\r\n <button *ngIf=\"state != 'update'\" class=\"submission-button w-44\" (click)=\"\r\n createandAddAnother(permissionForm, permissionForm.value)\r\n \">\r\n <span *ngIf=\"!createAndAdd;else loader\">{{ \"permission.createAndAdd\" | translate }}</span>\r\n </button>\r\n </div>\r\n <div>\r\n <button class=\"cancelation-button mb-3\" (click)=\"cancel(false)\">\r\n {{ \"BUTTONS.Cancel\" | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #loader>\r\n <mat-spinner [value]=\"90\" [strokeWidth]=\"3\" overlay=\"true\" [diameter]=\"25\" color=\"warn\">\r\n </mat-spinner>\r\n</ng-template>\r\n", styles: [".form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;user-select:none;flex-shrink:0;border-radius:100%;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px}.form-radio:checked{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;box-shadow:0 0 0 3px #4299e180;border-color:#63b3ed}.select-label{color:#8f98aa;font-size:12px;margin-bottom:0}.user-select .ng-select-container,.rights-select .ng-select-container{border:1px solid #ccc!important;border-radius:5px!important;background-color:#8f98aa1a!important}.user-select .ng-select-container .ng-value-container,.rights-select .ng-select-container .ng-value-container{padding:unset!important}.user-select .ng-select-container .ng-value-container .ng-placeholder,.rights-select .ng-select-container .ng-value-container .ng-placeholder{font-size:12px}.user-select .ng-select-container .ng-value-container .ng-value,.rights-select .ng-select-container .ng-value-container .ng-value{color:#495057}.user-select .ng-select-container .ng-arrow-wrapper,.rights-select .ng-select-container .ng-arrow-wrapper{padding:0 20px}.user-select .ng-select-container .ng-input,.rights-select .ng-select-container .ng-input{left:10px;right:10px;width:auto}.user-select .ng-select-container .ng-value-container .ng-placeholder{padding-top:4px!important}.ng-select-disabled .ng-select-container{background-color:#e9ecef!important}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper{position:relative}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper input{visibility:hidden;width:20px;height:20px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper .icon-wrapper{position:absolute;top:0px;left:0px;width:20px;height:20px;border:1px solid blue;display:flex;justify-content:center;align-items:center}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper .icon-wrapper .icon{color:#00f;display:none;justify-content:center;align-items:center;font-weight:bold}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option-selected .option-wrapper .check-box-wrapper .icon-wrapper .icon{display:flex}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option-selected .option-wrapper .label-wrapper{color:#00f}.ng-select .ng-select-focused:not(.ng-select-opened) .ng-select-container{border-color:#ccc;box-shadow:none}.add-permsion-wrapper{height:calc(100% - 50px);overflow:auto}\n"], components: [{ type: i6.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i7.AvatarComponent, selector: "cts-avatar", inputs: ["user"] }, { type: i8.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.SetRtlDirective, selector: "[SetRtl]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.ɵl, selector: "[ng-notfound-tmp]" }, { type: i6.ɵf, selector: "[ng-option-tmp]" }], pipes: { "translate": i11.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
165
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: AddPermissionsDialogComponent, decorators: [{
166
166
  type: Component,
167
167
  args: [{
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
174
174
  type: Inject,
175
175
  args: [MAT_DIALOG_DATA]
176
176
  }] }]; } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBlcm1pc3Npb25zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cvYWRkLXBlcm1pc3Npb25zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cvYWRkLXBlcm1pc3Npb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBZ0MsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFlLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBY3pFLE1BQU0sT0FBTyw2QkFBNkI7SUFpQnhDLFlBQ1UsU0FBc0QsRUFDdkQsaUJBQW9DLEVBQ25DLGFBQWtDLEVBQ2xDLEVBQWUsRUFDZixTQUE2QixFQUNaLElBQUk7UUFMckIsY0FBUyxHQUFULFNBQVMsQ0FBNkM7UUFDdkQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBckJ2QyxXQUFNLEdBQUMsRUFBRSxDQUFDO1FBQ1YsT0FBRSxHQUFHLElBQUksQ0FBQztRQUNWLGNBQVMsR0FBRSxXQUFXLENBQUM7UUFD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LEVBQUMsaUJBQWlCLENBQUMsSUFBSTtpQkFDckM7OzBCQXdCSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTmdTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Blcm1pc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLXBlcm1pc3Npb25zLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOlZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFBlcm1pc3Npb25zRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJpZ2h0cz1bXTtcclxuICBpZCA9IG51bGw7XHJcbiAgdGltZUZyYW1lPSAnUGVybWFuZW50JztcclxuICBuZXdQZXJtaXNzaW9uID0ge31cclxuICBzdGF0ZSA9IG51bGw7XHJcbiAgYWNsSWQgPSBudWxsO1xyXG4gIHVzZXJuYW1lID0gbnVsbDtcclxuICBlZGl0YWJsZVJpZ2h0Oy8vdG8gcGFzcyBSaWdodHMgdG8gZGlhbG9nIGlmIHdlIGFyZSBpbiB1cGRhdGUgbW9kZVxyXG4gIGVkaXRhYmxlQmVnaW47Ly90byBwYXNzIGJlZ2luRGF0ZSB0byBkaWFsb2cgaWYgd2UgYXJlIGluIHVwZGF0ZSBtb2RlXHJcbiAgZWRpdGFibGVFbmQ7Ly90byBwYXNzIGVuZERhdGUgdG8gZGlhbG9nIGlmIHdlIGFyZSBpbiB1cGRhdGUgbW9kZVxyXG4gIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHBlcm1pc3Npb25Gb3JtOiBGb3JtR3JvdXA7XHJcbiAgY3JlYXRpbmcgPSBmYWxzZTtcclxuICB1cGRhdGluZyA9IGZhbHNlO1xyXG4gIGNyZWF0ZUFuZEFkZCA9IGZhbHNlO1xyXG4gIHJlZnJlc2hVc2VycyA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBZGRQZXJtaXNzaW9uc0RpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICBwdWJsaWMgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b3N0ZXJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGEpIHtcclxuICAgIHRoaXMuaWQgPSBkYXRhLmlkO1xyXG4gICAgZGF0YS5yaWdodHMubWFwKGUgPT4ge1xyXG4gICAgICBpZiAoW1xyXG4gICAgICAgIFwiQ29uc3VtZXJcIixcclxuICAgICAgICBcIkVkaXRvclwiLFxyXG4gICAgICAgIFwiQ29udHJpYnV0b3JcIixcclxuICAgICAgICBcIkNvbGxhYm9yYXRvclwiLFxyXG4gICAgICAgIFwiQ29vcmRpbmF0b3JcIixcclxuICAgICAgXS5pbmNsdWRlcyhlKSkge1xyXG4gICAgICAgIHRoaXMucmlnaHRzLnB1c2goeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgcmlnaHRzLiR7ZX1gKSwgdmFsdWU6IGUgfSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuc3RhdGUgPSBkYXRhLnN0YXRlIHx8IG51bGw7XHJcbiAgICB0aGlzLmFjbElkID0gZGF0YS5hY2xJZCB8fCBudWxsO1xyXG4gICAgdGhpcy51c2VybmFtZSA9IGRhdGEudXNlcm5hbWUgfHwgbnVsbDtcclxuICAgIHRoaXMuZWRpdGFibGVSaWdodCA9IGRhdGEuZWRpdGFibGVSaWdodCB8fCBudWxsO1xyXG4gICAgdGhpcy5lZGl0YWJsZUJlZ2luID0gZGF0YS5lZGl0YWJsZUJlZ2luIHx8IG51bGw7XHJcbiAgICB0aGlzLmVkaXRhYmxlRW5kID0gZGF0YS5lZGl0YWJsZUVuZCB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGJlZ2luOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIGVuZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBwZXJtaXNzaW9uOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB1c2VyczogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIH0sIHsgdmFsaWRhdG9yOiB0aGlzLmNoZWNrRGF0ZXMgfSk7XHJcbiAgICAvLyh0aGlzLmVkaXRhYmxlQmVnaW4gPT0gbnVsbCAmJiB0aGlzLmVkaXRhYmxlRW5kID09IG51bGwpID8gdGhpcy50aW1lRnJhbWUgPSAnUGVybWFuZW50JyA6IHRoaXMudGltZUZyYW1lID0gJ0RhdGUtQmFzZWQnXHJcblxyXG4gIH1cclxuICBjaGVja0RhdGVzKGdyb3VwOiBGb3JtR3JvdXApIHtcclxuICAgIGlmIChncm91cC5jb250cm9scy5lbmQudmFsdWUgPCBncm91cC5jb250cm9scy5iZWdpbi52YWx1ZSkge1xyXG4gICAgICByZXR1cm4geyBub3RWYWxpZDogdHJ1ZSB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgY3JlYXRlYW5kQWRkQW5vdGhlcihwZXJtaXNzaW9uRm9ybSwgbmV3UGVybWlzc2lvbjogYW55KSB7XHJcbiAgICBpZiAodGhpcy5wZXJtaXNzaW9uRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIGFsZXJ0KHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJwZXJtaXNzaW9uLkZJTExfUkVRVUlSRURfRklFTERcIikpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNyZWF0ZUFuZEFkZCA9IHRydWU7XHJcbiAgICAgIHRoaXMubmV3UGVybWlzc2lvbiA9IHtcclxuICAgICAgICAuLi5uZXdQZXJtaXNzaW9uLFxyXG4gICAgICAgIHBlcm1pc3Npb246IG5ld1Blcm1pc3Npb24ucGVybWlzc2lvbixcclxuICAgICAgICB1c2VyczogbmV3UGVybWlzc2lvbi51c2VycyxcclxuICAgICAgICBhY2w6IFwibG9jYWxcIixcclxuICAgICAgICBibG9ja0luaGVyaXRhbmNlOiB0cnVlLFxyXG4gICAgICAgIG5vdGlmeTogdHJ1ZSxcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbdGhpcy5wZXJtaXNzaW9uU2VydmljZS5hZGROZXdMb2NhbFBlcm1pc3Npb25zKHRoaXMuaWQsIHRoaXMubmV3UGVybWlzc2lvbikuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ3N1Y2Nlc3MnLCAnVE9BU1RFUi5TVUNDRVNTJywgXCJUT0FTVEVSLkFERF9QRVJNSVNTSU9OX1NVQ0NFU1NcIik7XHJcbiAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmNyZWF0ZUFuZEFkZEFub3RoZXIuZW1pdCgpO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoVXNlckFycmF5KG5ld1Blcm1pc3Npb24udXNlcnMpO1xyXG4gICAgICAgICAgdGhpcy5wZXJtaXNzaW9uRm9ybS5yZXNldCgpO1xyXG4gICAgICAgICAgdGhpcy50aW1lRnJhbWUgPSAnUGVybWFuZW50JztcclxuICAgICAgICAgIHRoaXMuY3JlYXRlQW5kQWRkID1mYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVBbmRBZGQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRvc3RlclNlcnZpY2Uuc2hvdygnZXJyb3InLCAnVE9BU1RFUi5FUlJPUicsIFwiVE9BU1RFUi5BRERfUEVSTUlTU0lPTl9GQUlMXCIpXHJcbiAgICAgIH0pXSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHJlZnJlc2hVc2VyQXJyYXkodXNlcnMpIHtcclxuICAgIHRoaXMucmVmcmVzaFVzZXJzID0gdHJ1ZTtcclxuICAgIGxldCB0ZW1wQXJyPSBbXTtcclxuICAgIHRlbXBBcnIucHVzaCguLi50aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2Vycyk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2VycyA9IFtdO1xyXG4gICAgICB1c2Vycy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIHRlbXBBcnIuZm9yRWFjaCgodXNlcixpbmRleCkgPT4ge1xyXG4gICAgICAgICAgaWYodXNlci5wcm9wZXJ0aWVzLnVzZXJuYW1lID09PSBlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRlbXBBcnIuc3BsaWNlKGluZGV4LDEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2VycyA9IHRlbXBBcnI7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5yZWZyZXNoVXNlcnMgPSBmYWxzZTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG4gIGNyZWF0ZShuZXdQZXJtaXNzaW9uOiBhbnkpIHtcclxuICAgIC8qXHJcbiAgICBuZXdQZXJtaXNzaW9uID0ge1xyXG4gICAgICBiZWdpbjpudWxsLFxyXG4gICAgICBlbmQ6bnVsbCxcclxuICAgICAgcGVybWlzc2lvbjogUmVhZCxSZWFkV3JpdGUuLi4uZXRjLFxyXG4gICAgICB1c2VyczpbXCJmbV91c2VyXCJdLi4uLmV0Y1xyXG4gICAgfVxyXG4gICAgKi9cclxuICBpZiAodGhpcy5wZXJtaXNzaW9uRm9ybS5pbnZhbGlkKSB7XHJcbiAgICBhbGVydCh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwicGVybWlzc2lvbi5GSUxMX1JFUVVJUkVEX0ZJRUxEXCIpKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLm5ld1Blcm1pc3Npb24gPSB7XHJcbiAgICAgICAgLi4ubmV3UGVybWlzc2lvbixcclxuICAgICAgICBwZXJtaXNzaW9uOiBuZXdQZXJtaXNzaW9uLnBlcm1pc3Npb24sXHJcbiAgICAgICAgY29tbWVudDogXCJcIixcclxuICAgICAgICBlbWFpbDogbnVsbCxcclxuICAgICAgICBub3RpZnk6IHRydWUsXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zJC5jb25jYXQoW3RoaXMucGVybWlzc2lvblNlcnZpY2UuYWRkTmV3TG9jYWxQZXJtaXNzaW9ucyh0aGlzLmlkLCB0aGlzLm5ld1Blcm1pc3Npb24pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5BRERfUEVSTUlTU0lPTl9TVUNDRVNTXCIpO1xyXG4gICAgICAgICAgdGhpcy5jYW5jZWwodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgIHRoaXMuY3JlYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRvc3RlclNlcnZpY2Uuc2hvdygnZXJyb3InLCAnVE9BU1RFUi5FUlJPUicsIFwiVE9BU1RFUi5BRERfUEVSTUlTU0lPTl9GQUlMXCIpXHJcbiAgICAgIH1cclxuICAgICAgKV0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZWRpdChuZXdQZXJtaXNzaW9uOiBhbnkpIHtcclxuICAgIHRoaXMucGVybWlzc2lvbkZvcm0uZ2V0KCd1c2VycycpLnNldFZhbHVlKFt0aGlzLnVzZXJuYW1lXSlcclxuICAgIGlmKHRoaXMudGltZUZyYW1lID09ICdQZXJtYW5lbnQnKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0YWJsZUJlZ2luID0gdGhpcy5lZGl0YWJsZUVuZCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wZXJtaXNzaW9uRm9ybS5pbnZhbGlkKSB7IFxyXG4gICAgICBhbGVydCh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwicGVybWlzc2lvbi5GSUxMX1JFUVVJUkVEX0ZJRUxEXCIpKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMubmV3UGVybWlzc2lvbiA9IHtcclxuICAgICAgICAuLi5uZXdQZXJtaXNzaW9uLFxyXG4gICAgICAgIHBlcm1pc3Npb246IG5ld1Blcm1pc3Npb24ucGVybWlzc2lvbixcclxuICAgICAgICBiZWdpbjp0aGlzLmVkaXRhYmxlQmVnaW4sXHJcbiAgICAgICAgZW5kOnRoaXMuZWRpdGFibGVFbmQsXHJcbiAgICAgICAgY29tbWVudDogXCJcIixcclxuICAgICAgICBlbWFpbDogbnVsbCxcclxuICAgICAgICBub3RpZnk6IGZhbHNlLFxyXG4gICAgICAgIHVzZXJuYW1lOiB0aGlzLnVzZXJuYW1lLnByb3BlcnRpZXMudXNlcm5hbWUsXHJcbiAgICAgICAgaWQ6IHRoaXMuYWNsSWRcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbdGhpcy5wZXJtaXNzaW9uU2VydmljZS5lZGl0TG9jYWxQZXJtaXNzaW9ucyh0aGlzLmlkLCB0aGlzLm5ld1Blcm1pc3Npb24pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5FRElUX1BFUk1JU1NJT05fU1VDQ0VTU1wiKTtcclxuICAgICAgICAgIHRoaXMuY2FuY2VsKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ2Vycm9yJywgJ1RPQVNURVIuRVJST1InLCBcIlRPQVNURVIuRURJVF9QRVJNSVNTSU9OX0ZBSUxcIilcclxuICAgICAgfVxyXG4gICAgICApXSlcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY2FuY2VsKHJlc3VsdCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5mb3JFYWNoKGUgPT4gZS51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cInBlcm1pc3Npb25Gb3JtXCIgY2xhc3M9XCJoLWZ1bGxcIiBTZXRSdGw+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1wZXJtc2lvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LWxnXCIgKm5nSWY9XCJzdGF0ZSA9PSAndXBkYXRlJ1wiPlxyXG4gICAgICAgIHt7IFwicGVybWlzc2lvbi5lZGl0X3Blcm1pc3Npb25cIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LWxnXCIgKm5nSWY9XCJzdGF0ZSAhPT0gJ3VwZGF0ZSdcIj5cclxuICAgICAgICB7eyBcInBlcm1pc3Npb24uYWRkX25ld19wZXJtaXNzaW9uXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gIFxyXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1zZWxlY3QgbXQtNVwiICpuZ0lmPVwic3RhdGUgIT0gJ3VwZGF0ZSdcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkIG1iLTBcIj5cclxuICAgICAgICAgIHt7ICdwZXJtaXNzaW9uLnVzZXJuYW1lJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8c3BhbiAgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8bmctc2VsZWN0IFxyXG4gICAgICAgICAgW2l0ZW1zXT1cInBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2Vyc1wiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3Blcm1pc3Npb24ucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcclxuICAgICAgICAgIFtsb2FkaW5nXT1cInJlZnJlc2hVc2Vyc1wiXHJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJkaXNwbGF5TGFiZWxcIlxyXG4gICAgICAgICAgYmluZFZhbHVlPVwicHJvcGVydGllcy51c2VybmFtZVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2Vyc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1ub3Rmb3VuZC10bXAgbGV0LXNlYXJjaFRlcm09XCJzZWFyY2hUZXJtXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmctb3B0aW9uIGRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAge3sncGVybWlzc2lvbi5uZ1NlbGVjdF9yZXN1bHROb3RGb3VuZCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0wIHctOCBoLTggcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlblwiID5cclxuICAgICAgICAgICAgICAgICAgPGN0cy1hdmF0YXIgW3VzZXJdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZTogaXRlbS5wcm9wZXJ0aWVzLmZpcnN0TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiBpdGVtLnByb3BlcnRpZXMubGFzdE5hbWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9jdHMtYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCAgcHQtMCBweC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5kaXNwbGF5TGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3tpdGVtLnByb3BlcnRpZXMuZW1haWx9fS17e2l0ZW0ucHJvcGVydGllcy51c2VybmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIHJpZ2h0cy1zZWxlY3RcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkIG1iLTBcIj5cclxuICAgICAgICAgIHt7IFwicGVybWlzc2lvbi5SaWdodHNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8bmctc2VsZWN0IFxyXG4gICAgICAgICAgW2l0ZW1zXT1cInJpZ2h0c1wiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3Blcm1pc3Npb24ucmlnaHRzUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcclxuICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBlcm1pc3Npb25cIiBcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGFibGVSaWdodFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgPCEtLTxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG10LTVcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1iYXNlIGZvbnQtYm9sZFwiPlxyXG4gICAgICAgICAge3sgXCJwZXJtaXNzaW9uLnRpbWVmcmFtZVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj46PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiZm9ybS1yYWRpb1wiIG5hbWU9XCJyYWRpb1wiIHZhbHVlPVwiUGVybWFuZW50XCIgW2NoZWNrZWRdPVwidGltZUZyYW1lID09ICdQZXJtYW5lbnQnXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidGltZUZyYW1lID0gJ1Blcm1hbmVudCdcIiAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTIgbXQtMSB0ZXh0LWdyYXktOTAwIHRleHQtc20gZm9udC1ib2xkXCI+e3tcclxuICAgICAgICAgICAgICBcInBlcm1pc3Npb24ucGVybWFuZW50XCIgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBydGw+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiZm9ybS1yYWRpb1wiIG5hbWU9XCJyYWRpb1wiIHZhbHVlPVwiRGF0ZS1CYXNlZFwiIFtjaGVja2VkXT1cInRpbWVGcmFtZSA9PSAnRGF0ZS1CYXNlZCdcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0aW1lRnJhbWUgPSAnRGF0ZS1CYXNlZCdcIiAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTIgbXQtMSB0ZXh0LWdyYXktOTAwIHRleHQtc20gZm9udC1ib2xkXCI+e3tcclxuICAgICAgICAgICAgICBcInBlcm1pc3Npb24uRGF0ZV9iYXNlZFwiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbXQtMlwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGQgdGV4dC1ncmF5LTkwMCBtYi0wXCI+e3sgXCJwZXJtaXNzaW9uLmZyb21cIiB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgPGN0cy1keW5hbWljLWZvcm0taGlqcmktZGF0ZWl0ZW0gXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJiZWdpblwiIFxyXG4gICAgICAgICAgW2lzRGlzYWJsZWRdPVwidGltZUZyYW1lID09ICdQZXJtYW5lbnQnXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGFibGVCZWdpblwiPlxyXG4gICAgICAgIDwvY3RzLWR5bmFtaWMtZm9ybS1oaWpyaS1kYXRlaXRlbT5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkIHRleHQtZ3JheS05MDAgbWItMFwiPnt7IFwicGVybWlzc2lvbi50b1wiIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICA8Y3RzLWR5bmFtaWMtZm9ybS1oaWpyaS1kYXRlaXRlbSBcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVuZFwiIFxyXG4gICAgICAgICAgW2lzRGlzYWJsZWRdPVwidGltZUZyYW1lID09ICdQZXJtYW5lbnQnXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGFibGVFbmRcIj5cclxuICAgICAgICA8L2N0cy1keW5hbWljLWZvcm0taGlqcmktZGF0ZWl0ZW0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInBlcm1pc3Npb25Gb3JtPy5lcnJvcnM/Lm5vdFZhbGlkXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2UgLW10LTMgXCI+e3tcclxuICAgICAgICAgICAgXCJwZXJtaXNzaW9uLmVuZFN0YXJ0RXJyb3JcIiB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+LS0+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gbXQtNSBmbGV4LXdyYXBcIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImNhbmNlbGF0aW9uLWJ1dHRvbiBtYi0zXCJcclxuICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoZmFsc2UpXCI+XHJcbiAgICAgICAgICB7eyBcIkJVVFRPTlMuQ2FuY2VsXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic3RhdGUgIT0gJ3VwZGF0ZSdcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNyZWF0ZUFuZEFkZFwiXHJcbiAgICAgICAgICBjbGFzcz1cInN1Ym1pc3Npb24tYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJjcmVhdGUocGVybWlzc2lvbkZvcm0udmFsdWUpXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFjcmVhdGluZztlbHNlIGxvYWRlclwiPnt7IFwicGVybWlzc2lvbi5jcmVhdGVcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cImVkaXQocGVybWlzc2lvbkZvcm0udmFsdWUpXCIgKm5nSWY9XCJzdGF0ZSA9PSAndXBkYXRlJ1wiPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIXVwZGF0aW5nO2Vsc2UgbG9hZGVyXCI+e3sgXCJwZXJtaXNzaW9uLnVwZGF0ZVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic3RhdGUgIT0gJ3VwZGF0ZSdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzdWJtaXNzaW9uLWJ1dHRvbiB3LTQ0XCJcclxuICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWFuZEFkZEFub3RoZXIocGVybWlzc2lvbkZvcm0sIHBlcm1pc3Npb25Gb3JtLnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICBcIj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWNyZWF0ZUFuZEFkZDtlbHNlIGxvYWRlclwiPnt7IFwicGVybWlzc2lvbi5jcmVhdGVBbmRBZGRcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcblxyXG48bmctdGVtcGxhdGUgI2xvYWRlcj5cclxuICA8bWF0LXNwaW5uZXIgW3ZhbHVlXT1cIjkwXCIgW3N0cm9rZVdpZHRoXT1cIjNcIiBvdmVybGF5PVwidHJ1ZVwiIFtkaWFtZXRlcl09XCIyNVwiIGNvbG9yPVwid2FyblwiPlxyXG4gIDwvbWF0LXNwaW5uZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXBlcm1pc3Npb25zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cvYWRkLXBlcm1pc3Npb25zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cvYWRkLXBlcm1pc3Npb25zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBZ0MsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFlLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBY3pFLE1BQU0sT0FBTyw2QkFBNkI7SUFpQnhDLFlBQ1UsU0FBc0QsRUFDdkQsaUJBQW9DLEVBQ25DLGFBQWtDLEVBQ2xDLEVBQWUsRUFDZixTQUE2QixFQUNaLElBQUk7UUFMckIsY0FBUyxHQUFULFNBQVMsQ0FBNkM7UUFDdkQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbEMsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBckJ2QyxXQUFNLEdBQUMsRUFBRSxDQUFDO1FBQ1YsT0FBRSxHQUFHLElBQUksQ0FBQztRQUNWLGNBQVMsR0FBRSxXQUFXLENBQUM7UUFD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LEVBQUMsaUJBQWlCLENBQUMsSUFBSTtpQkFDckM7OzBCQXdCSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTmdTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Blcm1pc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLXBlcm1pc3Npb25zLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOlZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFBlcm1pc3Npb25zRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJpZ2h0cz1bXTtcclxuICBpZCA9IG51bGw7XHJcbiAgdGltZUZyYW1lPSAnUGVybWFuZW50JztcclxuICBuZXdQZXJtaXNzaW9uID0ge31cclxuICBzdGF0ZSA9IG51bGw7XHJcbiAgYWNsSWQgPSBudWxsO1xyXG4gIHVzZXJuYW1lID0gbnVsbDtcclxuICBlZGl0YWJsZVJpZ2h0Oy8vdG8gcGFzcyBSaWdodHMgdG8gZGlhbG9nIGlmIHdlIGFyZSBpbiB1cGRhdGUgbW9kZVxyXG4gIGVkaXRhYmxlQmVnaW47Ly90byBwYXNzIGJlZ2luRGF0ZSB0byBkaWFsb2cgaWYgd2UgYXJlIGluIHVwZGF0ZSBtb2RlXHJcbiAgZWRpdGFibGVFbmQ7Ly90byBwYXNzIGVuZERhdGUgdG8gZGlhbG9nIGlmIHdlIGFyZSBpbiB1cGRhdGUgbW9kZVxyXG4gIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHBlcm1pc3Npb25Gb3JtOiBGb3JtR3JvdXA7XHJcbiAgY3JlYXRpbmcgPSBmYWxzZTtcclxuICB1cGRhdGluZyA9IGZhbHNlO1xyXG4gIGNyZWF0ZUFuZEFkZCA9IGZhbHNlO1xyXG4gIHJlZnJlc2hVc2VycyA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBZGRQZXJtaXNzaW9uc0RpYWxvZ0NvbXBvbmVudD4sXHJcbiAgICBwdWJsaWMgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b3N0ZXJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRhdGEpIHtcclxuICAgIHRoaXMuaWQgPSBkYXRhLmlkO1xyXG4gICAgZGF0YS5yaWdodHMubWFwKGUgPT4ge1xyXG4gICAgICBpZiAoW1xyXG4gICAgICAgIFwiQ29uc3VtZXJcIixcclxuICAgICAgICBcIkVkaXRvclwiLFxyXG4gICAgICAgIFwiQ29udHJpYnV0b3JcIixcclxuICAgICAgICBcIkNvbGxhYm9yYXRvclwiLFxyXG4gICAgICAgIFwiQ29vcmRpbmF0b3JcIixcclxuICAgICAgXS5pbmNsdWRlcyhlKSkge1xyXG4gICAgICAgIHRoaXMucmlnaHRzLnB1c2goeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChgcmlnaHRzLiR7ZX1gKSwgdmFsdWU6IGUgfSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuc3RhdGUgPSBkYXRhLnN0YXRlIHx8IG51bGw7XHJcbiAgICB0aGlzLmFjbElkID0gZGF0YS5hY2xJZCB8fCBudWxsO1xyXG4gICAgdGhpcy51c2VybmFtZSA9IGRhdGEudXNlcm5hbWUgfHwgbnVsbDtcclxuICAgIHRoaXMuZWRpdGFibGVSaWdodCA9IGRhdGEuZWRpdGFibGVSaWdodCB8fCBudWxsO1xyXG4gICAgdGhpcy5lZGl0YWJsZUJlZ2luID0gZGF0YS5lZGl0YWJsZUJlZ2luIHx8IG51bGw7XHJcbiAgICB0aGlzLmVkaXRhYmxlRW5kID0gZGF0YS5lZGl0YWJsZUVuZCB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGJlZ2luOiBuZXcgRm9ybUNvbnRyb2wobnVsbCksXHJcbiAgICAgIGVuZDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgICBwZXJtaXNzaW9uOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB1c2VyczogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgIH0sIHsgdmFsaWRhdG9yOiB0aGlzLmNoZWNrRGF0ZXMgfSk7XHJcbiAgICAvLyh0aGlzLmVkaXRhYmxlQmVnaW4gPT0gbnVsbCAmJiB0aGlzLmVkaXRhYmxlRW5kID09IG51bGwpID8gdGhpcy50aW1lRnJhbWUgPSAnUGVybWFuZW50JyA6IHRoaXMudGltZUZyYW1lID0gJ0RhdGUtQmFzZWQnXHJcblxyXG4gIH1cclxuICBjaGVja0RhdGVzKGdyb3VwOiBGb3JtR3JvdXApIHtcclxuICAgIGlmIChncm91cC5jb250cm9scy5lbmQudmFsdWUgPCBncm91cC5jb250cm9scy5iZWdpbi52YWx1ZSkge1xyXG4gICAgICByZXR1cm4geyBub3RWYWxpZDogdHJ1ZSB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgY3JlYXRlYW5kQWRkQW5vdGhlcihwZXJtaXNzaW9uRm9ybSwgbmV3UGVybWlzc2lvbjogYW55KSB7XHJcbiAgICBpZiAodGhpcy5wZXJtaXNzaW9uRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIGFsZXJ0KHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJwZXJtaXNzaW9uLkZJTExfUkVRVUlSRURfRklFTERcIikpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNyZWF0ZUFuZEFkZCA9IHRydWU7XHJcbiAgICAgIHRoaXMubmV3UGVybWlzc2lvbiA9IHtcclxuICAgICAgICAuLi5uZXdQZXJtaXNzaW9uLFxyXG4gICAgICAgIHBlcm1pc3Npb246IG5ld1Blcm1pc3Npb24ucGVybWlzc2lvbixcclxuICAgICAgICB1c2VyczogbmV3UGVybWlzc2lvbi51c2VycyxcclxuICAgICAgICBhY2w6IFwibG9jYWxcIixcclxuICAgICAgICBibG9ja0luaGVyaXRhbmNlOiB0cnVlLFxyXG4gICAgICAgIG5vdGlmeTogdHJ1ZSxcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbdGhpcy5wZXJtaXNzaW9uU2VydmljZS5hZGROZXdMb2NhbFBlcm1pc3Npb25zKHRoaXMuaWQsIHRoaXMubmV3UGVybWlzc2lvbikuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ3N1Y2Nlc3MnLCAnVE9BU1RFUi5TVUNDRVNTJywgXCJUT0FTVEVSLkFERF9QRVJNSVNTSU9OX1NVQ0NFU1NcIik7XHJcbiAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmNyZWF0ZUFuZEFkZEFub3RoZXIuZW1pdCgpO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoVXNlckFycmF5KG5ld1Blcm1pc3Npb24udXNlcnMpO1xyXG4gICAgICAgICAgdGhpcy5wZXJtaXNzaW9uRm9ybS5yZXNldCgpO1xyXG4gICAgICAgICAgdGhpcy50aW1lRnJhbWUgPSAnUGVybWFuZW50JztcclxuICAgICAgICAgIHRoaXMuY3JlYXRlQW5kQWRkID1mYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVBbmRBZGQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRvc3RlclNlcnZpY2Uuc2hvdygnZXJyb3InLCAnVE9BU1RFUi5FUlJPUicsIFwiVE9BU1RFUi5BRERfUEVSTUlTU0lPTl9GQUlMXCIpXHJcbiAgICAgIH0pXSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHJlZnJlc2hVc2VyQXJyYXkodXNlcnMpIHtcclxuICAgIHRoaXMucmVmcmVzaFVzZXJzID0gdHJ1ZTtcclxuICAgIGxldCB0ZW1wQXJyPSBbXTtcclxuICAgIHRlbXBBcnIucHVzaCguLi50aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2Vycyk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2VycyA9IFtdO1xyXG4gICAgICB1c2Vycy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIHRlbXBBcnIuZm9yRWFjaCgodXNlcixpbmRleCkgPT4ge1xyXG4gICAgICAgICAgaWYodXNlci5wcm9wZXJ0aWVzLnVzZXJuYW1lID09PSBlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRlbXBBcnIuc3BsaWNlKGluZGV4LDEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2VycyA9IHRlbXBBcnI7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5yZWZyZXNoVXNlcnMgPSBmYWxzZTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG4gIGNyZWF0ZShuZXdQZXJtaXNzaW9uOiBhbnkpIHtcclxuICAgIC8qXHJcbiAgICBuZXdQZXJtaXNzaW9uID0ge1xyXG4gICAgICBiZWdpbjpudWxsLFxyXG4gICAgICBlbmQ6bnVsbCxcclxuICAgICAgcGVybWlzc2lvbjogUmVhZCxSZWFkV3JpdGUuLi4uZXRjLFxyXG4gICAgICB1c2VyczpbXCJmbV91c2VyXCJdLi4uLmV0Y1xyXG4gICAgfVxyXG4gICAgKi9cclxuICBpZiAodGhpcy5wZXJtaXNzaW9uRm9ybS5pbnZhbGlkKSB7XHJcbiAgICBhbGVydCh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwicGVybWlzc2lvbi5GSUxMX1JFUVVJUkVEX0ZJRUxEXCIpKVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLm5ld1Blcm1pc3Npb24gPSB7XHJcbiAgICAgICAgLi4ubmV3UGVybWlzc2lvbixcclxuICAgICAgICBwZXJtaXNzaW9uOiBuZXdQZXJtaXNzaW9uLnBlcm1pc3Npb24sXHJcbiAgICAgICAgY29tbWVudDogXCJcIixcclxuICAgICAgICBlbWFpbDogbnVsbCxcclxuICAgICAgICBub3RpZnk6IHRydWUsXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zJC5jb25jYXQoW3RoaXMucGVybWlzc2lvblNlcnZpY2UuYWRkTmV3TG9jYWxQZXJtaXNzaW9ucyh0aGlzLmlkLCB0aGlzLm5ld1Blcm1pc3Npb24pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5BRERfUEVSTUlTU0lPTl9TVUNDRVNTXCIpO1xyXG4gICAgICAgICAgdGhpcy5jYW5jZWwodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgIHRoaXMuY3JlYXRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRvc3RlclNlcnZpY2Uuc2hvdygnZXJyb3InLCAnVE9BU1RFUi5FUlJPUicsIFwiVE9BU1RFUi5BRERfUEVSTUlTU0lPTl9GQUlMXCIpXHJcbiAgICAgIH1cclxuICAgICAgKV0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZWRpdChuZXdQZXJtaXNzaW9uOiBhbnkpIHtcclxuICAgIHRoaXMucGVybWlzc2lvbkZvcm0uZ2V0KCd1c2VycycpLnNldFZhbHVlKFt0aGlzLnVzZXJuYW1lXSlcclxuICAgIGlmKHRoaXMudGltZUZyYW1lID09ICdQZXJtYW5lbnQnKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0YWJsZUJlZ2luID0gdGhpcy5lZGl0YWJsZUVuZCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wZXJtaXNzaW9uRm9ybS5pbnZhbGlkKSB7IFxyXG4gICAgICBhbGVydCh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwicGVybWlzc2lvbi5GSUxMX1JFUVVJUkVEX0ZJRUxEXCIpKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMubmV3UGVybWlzc2lvbiA9IHtcclxuICAgICAgICAuLi5uZXdQZXJtaXNzaW9uLFxyXG4gICAgICAgIHBlcm1pc3Npb246IG5ld1Blcm1pc3Npb24ucGVybWlzc2lvbixcclxuICAgICAgICBiZWdpbjp0aGlzLmVkaXRhYmxlQmVnaW4sXHJcbiAgICAgICAgZW5kOnRoaXMuZWRpdGFibGVFbmQsXHJcbiAgICAgICAgY29tbWVudDogXCJcIixcclxuICAgICAgICBlbWFpbDogbnVsbCxcclxuICAgICAgICBub3RpZnk6IGZhbHNlLFxyXG4gICAgICAgIHVzZXJuYW1lOiB0aGlzLnVzZXJuYW1lLnByb3BlcnRpZXMudXNlcm5hbWUsXHJcbiAgICAgICAgaWQ6IHRoaXMuYWNsSWRcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbdGhpcy5wZXJtaXNzaW9uU2VydmljZS5lZGl0TG9jYWxQZXJtaXNzaW9ucyh0aGlzLmlkLCB0aGlzLm5ld1Blcm1pc3Npb24pLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5FRElUX1BFUk1JU1NJT05fU1VDQ0VTU1wiKTtcclxuICAgICAgICAgIHRoaXMuY2FuY2VsKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ2Vycm9yJywgJ1RPQVNURVIuRVJST1InLCBcIlRPQVNURVIuRURJVF9QRVJNSVNTSU9OX0ZBSUxcIilcclxuICAgICAgfVxyXG4gICAgICApXSlcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgY2FuY2VsKHJlc3VsdCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5mb3JFYWNoKGUgPT4gZS51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cInBlcm1pc3Npb25Gb3JtXCIgY2xhc3M9XCJoLWZ1bGxcIiBTZXRSdGw+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1wZXJtc2lvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LWxnXCIgKm5nSWY9XCJzdGF0ZSA9PSAndXBkYXRlJ1wiPlxyXG4gICAgICAgIHt7IFwicGVybWlzc2lvbi5lZGl0X3Blcm1pc3Npb25cIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LWxnXCIgKm5nSWY9XCJzdGF0ZSAhPT0gJ3VwZGF0ZSdcIj5cclxuICAgICAgICB7eyBcInBlcm1pc3Npb24uYWRkX25ld19wZXJtaXNzaW9uXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gIFxyXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1zZWxlY3QgbXQtNVwiICpuZ0lmPVwic3RhdGUgIT0gJ3VwZGF0ZSdcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkIG1iLTBcIj5cclxuICAgICAgICAgIHt7ICdwZXJtaXNzaW9uLnVzZXJuYW1lJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8c3BhbiAgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8bmctc2VsZWN0IFxyXG4gICAgICAgICAgW2l0ZW1zXT1cInBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2Vyc1wiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3Blcm1pc3Npb24ucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcclxuICAgICAgICAgIFtsb2FkaW5nXT1cInJlZnJlc2hVc2Vyc1wiXHJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJkaXNwbGF5TGFiZWxcIlxyXG4gICAgICAgICAgYmluZFZhbHVlPVwicHJvcGVydGllcy51c2VybmFtZVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2Vyc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1ub3Rmb3VuZC10bXAgbGV0LXNlYXJjaFRlcm09XCJzZWFyY2hUZXJtXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmctb3B0aW9uIGRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAge3sncGVybWlzc2lvbi5uZ1NlbGVjdF9yZXN1bHROb3RGb3VuZCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC0wIHctOCBoLTggcm91bmRlZC1mdWxsIG92ZXJmbG93LWhpZGRlblwiID5cclxuICAgICAgICAgICAgICAgICAgPGN0cy1hdmF0YXIgW3VzZXJdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZTogaXRlbS5wcm9wZXJ0aWVzLmZpcnN0TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgIGxhc3ROYW1lOiBpdGVtLnByb3BlcnRpZXMubGFzdE5hbWVcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgPC9jdHMtYXZhdGFyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCAgcHQtMCBweC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5kaXNwbGF5TGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3tpdGVtLnByb3BlcnRpZXMuZW1haWx9fS17e2l0ZW0ucHJvcGVydGllcy51c2VybmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIHJpZ2h0cy1zZWxlY3RcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkIG1iLTBcIj5cclxuICAgICAgICAgIHt7IFwicGVybWlzc2lvbi5SaWdodHNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPio8L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8bmctc2VsZWN0IFxyXG4gICAgICAgICAgW2l0ZW1zXT1cInJpZ2h0c1wiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3Blcm1pc3Npb24ucmlnaHRzUGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcclxuICAgICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBlcm1pc3Npb25cIiBcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGFibGVSaWdodFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgPCEtLTxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IG10LTVcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1iYXNlIGZvbnQtYm9sZFwiPlxyXG4gICAgICAgICAge3sgXCJwZXJtaXNzaW9uLnRpbWVmcmFtZVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj46PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiZm9ybS1yYWRpb1wiIG5hbWU9XCJyYWRpb1wiIHZhbHVlPVwiUGVybWFuZW50XCIgW2NoZWNrZWRdPVwidGltZUZyYW1lID09ICdQZXJtYW5lbnQnXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidGltZUZyYW1lID0gJ1Blcm1hbmVudCdcIiAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTIgbXQtMSB0ZXh0LWdyYXktOTAwIHRleHQtc20gZm9udC1ib2xkXCI+e3tcclxuICAgICAgICAgICAgICBcInBlcm1pc3Npb24ucGVybWFuZW50XCIgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBydGw+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGNsYXNzPVwiZm9ybS1yYWRpb1wiIG5hbWU9XCJyYWRpb1wiIHZhbHVlPVwiRGF0ZS1CYXNlZFwiIFtjaGVja2VkXT1cInRpbWVGcmFtZSA9PSAnRGF0ZS1CYXNlZCdcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0aW1lRnJhbWUgPSAnRGF0ZS1CYXNlZCdcIiAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm14LTIgbXQtMSB0ZXh0LWdyYXktOTAwIHRleHQtc20gZm9udC1ib2xkXCI+e3tcclxuICAgICAgICAgICAgICBcInBlcm1pc3Npb24uRGF0ZV9iYXNlZFwiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbXQtMlwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGQgdGV4dC1ncmF5LTkwMCBtYi0wXCI+e3sgXCJwZXJtaXNzaW9uLmZyb21cIiB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgPGN0cy1keW5hbWljLWZvcm0taGlqcmktZGF0ZWl0ZW0gXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJiZWdpblwiIFxyXG4gICAgICAgICAgW2lzRGlzYWJsZWRdPVwidGltZUZyYW1lID09ICdQZXJtYW5lbnQnXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGFibGVCZWdpblwiPlxyXG4gICAgICAgIDwvY3RzLWR5bmFtaWMtZm9ybS1oaWpyaS1kYXRlaXRlbT5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1ib2xkIHRleHQtZ3JheS05MDAgbWItMFwiPnt7IFwicGVybWlzc2lvbi50b1wiIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICA8Y3RzLWR5bmFtaWMtZm9ybS1oaWpyaS1kYXRlaXRlbSBcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVuZFwiIFxyXG4gICAgICAgICAgW2lzRGlzYWJsZWRdPVwidGltZUZyYW1lID09ICdQZXJtYW5lbnQnXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZWRpdGFibGVFbmRcIj5cclxuICAgICAgICA8L2N0cy1keW5hbWljLWZvcm0taGlqcmktZGF0ZWl0ZW0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInBlcm1pc3Npb25Gb3JtPy5lcnJvcnM/Lm5vdFZhbGlkXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcmVkLTUwMCB0ZXh0LWJhc2UgLW10LTMgXCI+e3tcclxuICAgICAgICAgICAgXCJwZXJtaXNzaW9uLmVuZFN0YXJ0RXJyb3JcIiB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+LS0+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gbXQtNSBmbGV4LXdyYXBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJzdGF0ZSAhPSAndXBkYXRlJ1wiIFtkaXNhYmxlZF09XCJjcmVhdGVBbmRBZGRcIiBjbGFzcz1cInN1Ym1pc3Npb24tYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJjcmVhdGUocGVybWlzc2lvbkZvcm0udmFsdWUpXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFjcmVhdGluZztlbHNlIGxvYWRlclwiPnt7IFwicGVybWlzc2lvbi5jcmVhdGVcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWlzc2lvbi1idXR0b25cIiAoY2xpY2spPVwiZWRpdChwZXJtaXNzaW9uRm9ybS52YWx1ZSlcIiAqbmdJZj1cInN0YXRlID09ICd1cGRhdGUnXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiF1cGRhdGluZztlbHNlIGxvYWRlclwiPnt7IFwicGVybWlzc2lvbi51cGRhdGVcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic3RhdGUgIT0gJ3VwZGF0ZSdcIiBjbGFzcz1cInN1Ym1pc3Npb24tYnV0dG9uIHctNDRcIiAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVhbmRBZGRBbm90aGVyKHBlcm1pc3Npb25Gb3JtLCBwZXJtaXNzaW9uRm9ybS52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFjcmVhdGVBbmRBZGQ7ZWxzZSBsb2FkZXJcIj57eyBcInBlcm1pc3Npb24uY3JlYXRlQW5kQWRkXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWxhdGlvbi1idXR0b24gbWItM1wiIChjbGljayk9XCJjYW5jZWwoZmFsc2UpXCI+XHJcbiAgICAgICAgICB7eyBcIkJVVFRPTlMuQ2FuY2VsXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG5cclxuPG5nLXRlbXBsYXRlICNsb2FkZXI+XHJcbiAgPG1hdC1zcGlubmVyIFt2YWx1ZV09XCI5MFwiIFtzdHJva2VXaWR0aF09XCIzXCIgb3ZlcmxheT1cInRydWVcIiBbZGlhbWV0ZXJdPVwiMjVcIiBjb2xvcj1cIndhcm5cIj5cclxuICA8L21hdC1zcGlubmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -190,7 +190,7 @@ export class PermissionsComponent {
190
190
  this.allDepartmentUsers = [...this.permissionService.departmentUsers];
191
191
  res.users.forEach(user => {
192
192
  if (user.properties.username === this.nuxeoService.nuxeoClient.user.properties.username
193
- && this.document.type === 'DmsFolder') {
193
+ && ((this.document.type === 'DmsFolder' && this.document.path.includes('/default-domain/workspaces/DMS/')) || (this.document.type === 'Folder' && this.document.path.includes('/default-domain/workspaces/DMSWorkspaces/')))) {
194
194
  this.allowAdd_Block_DeletePermission = true;
195
195
  }
196
196
  });
@@ -229,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
229
229
  }], sourcePage: [{
230
230
  type: Input
231
231
  }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVczRyxNQUFNLE9BQU8sb0JBQW9CO0lBc0IvQixZQUFvQixpQkFBb0MsRUFDOUMsb0JBQStCLEVBQy9CLGFBQWtDLEVBQ2xDLGdCQUFvQyxFQUNwQyxZQUEwQixFQUMxQixRQUFxQixFQUNyQixnQkFBb0M7UUFOMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUM5Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVc7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBbkI5QyxlQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ2YsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLHFCQUFn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d1JBSUMsVUFBVTtzQkFEVCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Blcm1pc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZFBlcm1pc3Npb25zRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLXBlcm1pc3Npb25zLWRpYWxvZy9hZGQtcGVybWlzc2lvbnMtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV2YWx1YXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3Blcm1pc3Npb25zL2V2YWx1YXRvcnMuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1wZXJtaXNzaW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Blcm1pc3Npb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wZXJtaXNzaW9ucy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwZXJtaXNzaW9uc1R5cGU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGRvY3VtZW50SWQ7XHJcbiAgQElucHV0KClcclxuICBkb2N1bWVudDtcclxuICBASW5wdXQoKVxyXG4gIGFsbG93QWRkQW5kQmxvY2tcclxuICBASW5wdXQoKVxyXG4gIHNvdXJjZVBhZ2UgPSAnJ1xyXG4gIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHVzZXJWaXNpYmxlUGVybWlzc2lvbnM6IGFueTtcclxuICBsb2NhbFBlcm1pc3Npb25zID0gW107XHJcbiAgaW5oZXJpdGVkUGVybWlzc2lvbnMgPSBbXTtcclxuICBkZXBhcnRtZW50UGVybWlzc2lvbnMgPSBbXTtcclxuICBzaGFyZVBlcm1pc3Npb25zID0gW107XHJcbiAgd29ya2Zsb3dQZXJtaXNzaW9ucyA9IFtdO1xyXG4gIHN0YXR1cz1udWxsOy8vdG8ga25vdyBpbmhlcml0ZWQgUGVybWlzc2lvbnMgaWYgYmxvY2sgb3Igbm90XHJcbiAgYWxsb3dBZGRfQmxvY2tfRGVsZXRlUGVybWlzc2lvbiA9ZmFsc2U7XHJcbiAgYmxvY2tPclVuYmxvY2sgPSBmYWxzZTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgYWxsRGVwYXJ0bWVudFVzZXJzID0gW107XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFkZFBlcm1pc3Npb25zRGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHRvc3RlclNlcnZpY2U6IEN1c3RvbVRvYXN0clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgbnV4ZW9TZXJ2aWNlOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVzZXJTZXJ2OiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgZXZhbHVhdG9yU2VydmljZSA6IEV2YWx1YXRvcnNTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuY29uY2F0KFtcclxuICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5jcmVhdGVBbmRBZGRBbm90aGVyLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0UGVybWlzc2lvbnMoKTtcclxuICAgICAgfSlcclxuICAgIF0pO1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hlY2tJZlVzZXJDYW5Eb0FjdGlvbnNPblBlcm1pc3Npb25zKCk7XHJcbiAgICB0aGlzLmdldFBlcm1pc3Npb25zKCk7XHJcbiAgICAodGhpcy5pbmhlcml0ZWRQZXJtaXNzaW9ucy5sZW5ndGggPiAwKSA/IHRoaXMuc3RhdHVzID0gJ3VuYmxvY2snIDogdGhpcy5zdGF0dXMgPSAnYmxvY2snO1xyXG4gIH1cclxuXHJcbiAgYWRkUGVybWlzc2lvbkxhYmVsKGFycixwZXJtaXNzaW9uQXJyKSB7XHJcbiAgICBhcnIuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgaWYoIXRoaXMuaXNJdGVtQ29udGFpbkFkbWluaXN0cmF0b3JHcm91cChlbGVtZW50KSl7XHJcbiAgICAgICAgZWxlbWVudC5wZXJtaXNzaW9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgcmlnaHRzLiR7ZWxlbWVudC5wZXJtaXNzaW9ufWApXHJcbiAgICAgICAgcGVybWlzc2lvbkFyci5wdXNoKGVsZW1lbnQpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNJdGVtQ29udGFpbkFkbWluaXN0cmF0b3JHcm91cChlbGVtZW50KXtcclxuICAgIGxldCBpc0FkbWluaXN0cmF0b3IgPSBmYWxzZTtcclxuICAgIGlmKGVsZW1lbnQuZ3JhbnRlZCA9PT0gZmFsc2Upe1xyXG4gICAgICBpc0FkbWluaXN0cmF0b3IgPSB0cnVlO1xyXG4gICAgfWVsc2UgaWYgKGVsZW1lbnQudXNlcm5hbWUgJiYgZWxlbWVudC51c2VybmFtZVsnZW50aXR5LXR5cGUnXSA9PT0gJ2dyb3VwJyAmJiBlbGVtZW50LnVzZXJuYW1lLmdyb3VwbmFtZSA9PT0gJ2FkbWluaXN0cmF0b3JzJyl7XHJcbiAgICAgIGlzQWRtaW5pc3RyYXRvciA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYoZWxlbWVudC51c2VybmFtZS51c2VyR3JvdXBzKXtcclxuICAgICAgICBlbGVtZW50LnVzZXJuYW1lLnVzZXJHcm91cHMubWFwKGdyb3VwID0+IHtcclxuICAgICAgICAgIGlmKGdyb3VwLm5hbWUgPT09ICdhZG1pbmlzdHJhdG9ycycpe1xyXG4gICAgICAgICAgICBpc0FkbWluaXN0cmF0b3IgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNBZG1pbmlzdHJhdG9yO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGVybWlzc2lvbnMoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRQZXJtaXNzaW9uc0ZvckRvY3VtZW50KHRoaXMuZG9jdW1lbnRJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMucGVybWlzc2lvbnNUeXBlID0gcmVzLmNvbnRleHRQYXJhbWV0ZXJzLmFjbHM7XHJcbiAgICAgIHRoaXMudXNlclZpc2libGVQZXJtaXNzaW9ucyA9IHJlcy5jb250ZXh0UGFyYW1ldGVycy51c2VyVmlzaWJsZVBlcm1pc3Npb25zO1xyXG4gICAgICBmb3IgKGxldCBwIG9mIHRoaXMucGVybWlzc2lvbnNUeXBlKSB7XHJcbiAgICAgICAgaWYgKHAubmFtZSA9PSAnbG9jYWwnKSB7XHJcbiAgICAgICAgICB0aGlzLmxvY2FsUGVybWlzc2lvbnMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuYWRkUGVybWlzc2lvbkxhYmVsKHAuYWNlcyx0aGlzLmxvY2FsUGVybWlzc2lvbnMpO1xyXG4gICAgICAgICAgdGhpcy5sb2NhbFBlcm1pc3Npb25zID0gdGhpcy5sb2NhbFBlcm1pc3Npb25zLm1hcChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgaWYoZWxlbWVudC5jcmVhdG9yLnByb3BlcnRpZXMudXNlcm5hbWUgIT0gdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzLnVzZXJuYW1lKSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudFsnY3VycmVudFVzZXJJc1Blcm1pc3Npb25Pd25lciddID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudFsnY3VycmVudFVzZXJJc1Blcm1pc3Npb25Pd25lciddID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChwLm5hbWUgPT0gJ2luaGVyaXRlZCcpIHtcclxuICAgICAgICAgIHRoaXMuaW5oZXJpdGVkUGVybWlzc2lvbnMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuYWRkUGVybWlzc2lvbkxhYmVsKHAuYWNlcyx0aGlzLmluaGVyaXRlZFBlcm1pc3Npb25zKVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChwLm5hbWUuaW5jbHVkZXMoJ2RlcHRTcGFjZScpKSB7XHJcbiAgICAgICAgICB0aGlzLmRlcGFydG1lbnRQZXJtaXNzaW9ucyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uTGFiZWwocC5hY2VzLHRoaXMuZGVwYXJ0bWVudFBlcm1pc3Npb25zKVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChwLm5hbWUuaW5jbHVkZXMoJ3NoYXJlJykpIHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVQZXJtaXNzaW9ucyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uTGFiZWwocC5hY2VzLHRoaXMuc2hhcmVQZXJtaXNzaW9ucylcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocC5uYW1lLmluY2x1ZGVzKCdyb3V0aW5nJykpIHtcclxuICAgICAgICAgIHRoaXMud29ya2Zsb3dQZXJtaXNzaW9ucyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5hZGRQZXJtaXNzaW9uTGFiZWwocC5hY2VzLHRoaXMud29ya2Zsb3dQZXJtaXNzaW9ucylcclxuICAgICAgICB9ICAgIFxyXG4gICAgICB9XHJcbiAgICAgICh0aGlzLmluaGVyaXRlZFBlcm1pc3Npb25zLmxlbmd0aCA9PSAwKSA/IHRoaXMuc3RhdHVzID0gJ2Jsb2NrJyA6IHRoaXMuc3RhdHVzID0gJ3VuYmxvY2snOyAgXHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSxlcnIgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2VcclxuICAgICldKTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgYmxvY2tQZXJtaXNzaW9uSW5oZXJpdGFuY2UoKSB7XHJcbiAgICB0aGlzLmJsb2NrT3JVbmJsb2NrID0gdHJ1ZTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuY29uY2F0KFt0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmJsb2NrUGVybWlzc2lvbkluaGVyaXRhbmNlKHRoaXMuZG9jdW1lbnRJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLmdldFBlcm1pc3Npb25zKCk7XHJcbiAgICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ3N1Y2Nlc3MnLCAnVE9BU1RFUi5TVUNDRVNTJywgXCJUT0FTVEVSLlBFUk1JU1NJT05fQkxPQ0tfU1VDQ0VTU1wiKTtcclxuICAgICAgICB0aGlzLmJsb2NrT3JVbmJsb2NrID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBcInVuYmxvY2tcIjtcclxuICAgICAgICB0aGlzLmluaGVyaXRlZFBlcm1pc3Npb25zID0gW107XHJcbiAgICAgIH1cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIHRoaXMuYmxvY2tPclVuYmxvY2sgPSBmYWxzZTtcclxuICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ2Vycm9yJywgJ1RPQVNURVIuRVJST1InLCAnVE9BU1RFUi5QRVJNSVNTSU9OX0JMT0NLX0ZBSUwnKTtcclxuICAgIH1cclxuICAgICldKVxyXG4gIH1cclxuXHJcbiAgdW5ibG9ja1Blcm1pc3Npb25Jbmhlcml0YW5jZSgpIHtcclxuICAgIHRoaXMuYmxvY2tPclVuYmxvY2sgPSB0cnVlO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5jb25jYXQoW3RoaXMucGVybWlzc2lvblNlcnZpY2UudW5ibG9ja1Blcm1pc3Npb25Jbmhlcml0YW5jZSh0aGlzLmRvY3VtZW50SWQpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7ICAgXHJcbiAgICAgICAgdGhpcy5nZXRQZXJtaXNzaW9ucygpO1xyXG4gICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5QRVJNSVNTSU9OX1VOQkxPQ0tfU1VDQ0VTU1wiKTtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IFwiYmxvY2tcIjtcclxuICAgICAgICB0aGlzLmJsb2NrT3JVbmJsb2NrID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIHRoaXMuYmxvY2tPclVuYmxvY2sgPSBmYWxzZTtcclxuICAgICAgdGhpcy50b3N0ZXJTZXJ2aWNlLnNob3coJ2Vycm9yJywgJ1RPQVNURVIuRVJST1InLCAnVE9BU1RFUi5QRVJNSVNTSU9OX1VOQkxPQ0tfRkFJTCcpO1xyXG4gICAgfSldKVxyXG4gIH1cclxuXHJcbiAgYWRkTmV3TG9jYWxQZXJtaXNzaW9ucygpIHtcclxuICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZGVwYXJ0bWVudFVzZXJzID0gWy4uLnRoaXMuYWxsRGVwYXJ0bWVudFVzZXJzXTtcclxuICAgIHRoaXMubG9jYWxQZXJtaXNzaW9ucy5mb3JFYWNoKHBlcm0gPT4ge1xyXG4gICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2Vycy5mb3JFYWNoKCh1c2VyLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChwZXJtLnVzZXJuYW1lLnByb3BlcnRpZXMudXNlcm5hbWUgPT09IHVzZXIucHJvcGVydGllcy51c2VybmFtZVxyXG4gICAgICAgICAgJiYgcGVybS5jcmVhdG9yLnByb3BlcnRpZXMudXNlcm5hbWUgPT09IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy51c2VybmFtZSkge1xyXG4gICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5kZXBhcnRtZW50VXNlcnMuc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSBmYWxzZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5hdXRvRm9jdXMgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7XHJcbiAgICAgIGlkOiB0aGlzLmRvY3VtZW50SWQsXHJcbiAgICAgIHJpZ2h0czogdGhpcy51c2VyVmlzaWJsZVBlcm1pc3Npb25zXHJcbiAgICB9O1xyXG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzM1JSc7XHJcbiAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJzcwJSc7XHJcbiAgICAvLyBiZWZvciBvcGVuaW5nIG1vZGFsIHdlIGRpYWJsZSBjbGlja291dCBzaWRlIGVmZmVjdCB0byBwcmV2ZW50IGRldGFpbHMgc2lkZSBtZW51IGZyb20gY2xvc2luZyB3aGVuIGNsaWNraW5nIGluIHRoZSBtb2RhbFxyXG4gICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5kaXNhYmxlQ2xpY2tPdXRTaWRlID0gdHJ1ZTtcclxuICAgIGxldCBkaWFsb2ZSZWYgPSB0aGlzLmFkZFBlcm1pc3Npb25zRGlhbG9nLm9wZW4oXHJcbiAgICAgIEFkZFBlcm1pc3Npb25zRGlhbG9nQ29tcG9uZW50LCBcclxuICAgICAgZGlhbG9nQ29uZmlnKTtcclxuICAgIGRpYWxvZlJlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAvLyByZXR1cm4gY2xpY2sgb3V0c2lkZSBlZmZlY3QgdG8gd29yayB0byBjbG9zZSBzaWRlIG1lbnUgd2hlbiBjbGlja2luZyBvdXQgc2lkZSBpdFxyXG4gICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRpc2FibGVDbGlja091dFNpZGUgPSBmYWxzZTtcclxuICAgICAgaWYocmVzKSB7XHJcbiAgICAgICAgdGhpcy5nZXRQZXJtaXNzaW9ucygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIGNoZWNrSWZVc2VyQ2FuRG9BY3Rpb25zT25QZXJtaXNzaW9ucygpIHtcclxuICAgIHRoaXMuZXZhbHVhdG9yU2VydmljZS5ldmFsdWF0ZVJ1bGUoJ2lzTWFuYWdlUGVybWlzc2lvbkVuYWJsZWQnKS50aGVuKGlzRW5hYmxlZCA9PiB7XHJcbiAgICAgIGlmIChpc0VuYWJsZWQpIHtcclxuICAgICAgICBsZXQgdXNlckluQ29udHJvbGxlckdyb3VwID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlci51c2VyR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xyXG4gICAgICAgICAgaWYgKGdyb3VwLm5hbWUgPT09ICdkbXNfZG9jdW1lbnRfY29udHJvbGxlcicpIHtcclxuICAgICAgICAgICAgdXNlckluQ29udHJvbGxlckdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAodXNlckluQ29udHJvbGxlckdyb3VwKSB7XHJcbiAgICAgICAgICBsZXQgZGVwQ29kZSA9IHRoaXMudXNlclNlcnYuZ2V0VXNlckRlcGFydG1lbnRGcm9tUGF0aCh0aGlzLmRvY3VtZW50LnBhdGgpO1xyXG4gICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXREZXBNZW1iZXJzKGRlcENvZGUpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2VycyA9IHJlcy51c2Vycy5tYXAoZSA9PiB7XHJcbiAgICAgICAgICAgICAgZVsnZGlzcGxheUxhYmVsJ10gPSBlLnByb3BlcnRpZXMuZmlyc3ROYW1lICsgJyAnICsgZS5wcm9wZXJ0aWVzLmxhc3ROYW1lO1xyXG4gICAgICAgICAgICAgIHJldHVybiBlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5hbGxEZXBhcnRtZW50VXNlcnMgPSBbLi4udGhpcy5wZXJtaXNzaW9uU2VydmljZS5kZXBhcnRtZW50VXNlcnNdO1xyXG4gICAgICAgICAgICByZXMudXNlcnMuZm9yRWFjaCh1c2VyID0+IHtcclxuICAgICAgICAgICAgICBpZiAodXNlci5wcm9wZXJ0aWVzLnVzZXJuYW1lID09PSB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMudXNlcm5hbWVcclxuICAgICAgICAgICAgICAgICYmIHRoaXMuZG9jdW1lbnQudHlwZSA9PT0gJ0Rtc0ZvbGRlcicpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dBZGRfQmxvY2tfRGVsZXRlUGVybWlzc2lvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYWxsb3dBZGRfQmxvY2tfRGVsZXRlUGVybWlzc2lvbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFsbG93QWRkX0Jsb2NrX0RlbGV0ZVBlcm1pc3Npb24gPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gcmV0dXJuIGNsaWNrIG91dHNpZGUgZWZmZWN0IHRvIHdvcmsgdG8gY2xvc2Ugc2lkZSBtZW51IHdoZW4gY2xpY2tpbmcgb3V0IHNpZGUgaXRcclxuICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZGlzYWJsZUNsaWNrT3V0U2lkZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5mb3JFYWNoKGUgPT4gZS51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaC1hdXRvIG10LTMgcHgtMCBwYi00XCIgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBsb2FkZXJcIj5cclxuICAgIDwhLS1Mb2NhbFBlcm1pc3Npb24gTGlzdCBJdGVtcy0tPlxyXG4gICAgPGRpdiAqbmdJZj1cInNvdXJjZVBhZ2UgIT0gJ215RmlsZXMnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtZ3JheS01MDAgdGV4dC1iYXNlXCI+e3tcclxuICAgICAgICAgICAgICAgIFwicGVybWlzc2lvbi5sb2NhbFwiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFsbG93QWRkX0Jsb2NrX0RlbGV0ZVBlcm1pc3Npb24gJiYgIWluaGVyaXRlZFBlcm1pc3Npb25zLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWxsb3dBZGRBbmRCbG9ja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJob3Zlcjp0ZXh0LWJsdWUtNzAwIHRleHQtYmx1ZS01MDAgbWItMSB0ZXh0LWJhc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGROZXdMb2NhbFBlcm1pc3Npb25zKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhcGVybWlzc2lvbnNUeXBlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyBcInBlcm1pc3Npb24ubmV3XCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibWF0LWRpdmlkZXJcIj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxhcHAtcGVybWlzc2lvbnMtdGVtcGxhdGVcclxuICAgICAgICAgICAgW2RvY3VtZW50SWRdPVwiZG9jdW1lbnRJZFwiXHJcbiAgICAgICAgICAgIFt1c2VyVmlzaWJsZVBlcm1pc3Npb25zXT1cInVzZXJWaXNpYmxlUGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgICAoZ2V0UGVybWlzc2lvbnMpPVwiZ2V0UGVybWlzc2lvbnMoKVwiXHJcbiAgICAgICAgICAgIFthbGxvd0RlbGV0ZUFuZEVkaXRdPVwiYWxsb3dBZGRfQmxvY2tfRGVsZXRlUGVybWlzc2lvblwiXHJcbiAgICAgICAgICAgIFtwZXJtaXNzaW9uc0FycmF5XT1cImxvY2FsUGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImxvY2FsUGVybWlzc2lvbnMubGVuZ3RoID4gMDsgZWxzZSBub2xvY2FsUGVybWlzc2lvbnNcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2FwcC1wZXJtaXNzaW9ucy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICNub2xvY2FsUGVybWlzc2lvbnM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNpbmdsZS1wZXJtc3Npb24gcC0zIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIHt7IFwicGVybWlzc2lvbi5ub0xvY2FsXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8IS0tSW5oZXJpdGVkUGVybWlzc2lvbiBMaXN0IEl0ZW1zLS0+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlbiBtdC0zXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtZ3JheS01MDAgdGV4dC1iYXNlXCI+e3tcclxuICAgICAgICAgICAgICAgIFwicGVybWlzc2lvbi5pbmhlcml0ZWRcIiB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhbGxvd0FkZF9CbG9ja19EZWxldGVQZXJtaXNzaW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJob3Zlcjp0ZXh0LWJsdWUtNzAwIHRleHQtYmx1ZS01MDAgbWItMSB0ZXh0LWJhc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdHVzICE9IG51bGwgJiYgYWxsb3dBZGRBbmRCbG9ja1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdGF0dXMgPT0gJ2Jsb2NrJzsgZWxzZSB1bmJsb2NrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVuYmxvY2tQZXJtaXNzaW9uSW5oZXJpdGFuY2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcInBlcm1pc3Npb24udW5ibG9ja1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdW5ibG9jaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImJsb2NrUGVybWlzc2lvbkluaGVyaXRhbmNlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwicGVybWlzc2lvbi5ibG9ja1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXIgY2xhc3M9XCJtYXQtZGl2aWRlclwiICpuZ0lmPVwiIWJsb2NrT3JVbmJsb2NrXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiYmxvY2tPclVuYmxvY2tcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICAgICAgPGFwcC1wZXJtaXNzaW9ucy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAqbmdJZj1cImluaGVyaXRlZFBlcm1pc3Npb25zLmxlbmd0aCA+IDA7IGVsc2Ugbm9pbmhlcml0ZWRQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgIFtkb2N1bWVudElkXT1cImRvY3VtZW50SWRcIlxyXG4gICAgICAgICAgICBbdXNlclZpc2libGVQZXJtaXNzaW9uc109XCJ1c2VyVmlzaWJsZVBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgW3Blcm1pc3Npb25zQXJyYXldPVwiaW5oZXJpdGVkUGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgICAoZ2V0UGVybWlzc2lvbnMpPVwiZ2V0UGVybWlzc2lvbnMoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvYXBwLXBlcm1pc3Npb25zLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctdGVtcGxhdGUgI25vaW5oZXJpdGVkUGVybWlzc2lvbnM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNpbmdsZS1wZXJtc3Npb24gcC0zIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIHt7XCJwZXJtaXNzaW9uLm5vSW5oZXJpdGVkXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8IS0tZGVwYXJ0bWVudFBlcm1pc3Npb25zIExpc3QgSXRlbXMtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJkZXBhcnRtZW50UGVybWlzc2lvbnMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNTAwIHRleHQtYmFzZVwiPnt7XHJcbiAgICAgICAgICAgICAgICBcInBlcm1pc3Npb24uZGVwYXJ0bWVudFBlcm1pc3Npb25zXCIgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibWF0LWRpdmlkZXJcIj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxhcHAtcGVybWlzc2lvbnMtdGVtcGxhdGVcclxuICAgICAgICAgICAgW2RvY3VtZW50SWRdPVwiZG9jdW1lbnRJZFwiXHJcbiAgICAgICAgICAgIFt1c2VyVmlzaWJsZVBlcm1pc3Npb25zXT1cInVzZXJWaXNpYmxlUGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgICAoZ2V0UGVybWlzc2lvbnMpPVwiZ2V0UGVybWlzc2lvbnMoKVwiXHJcbiAgICAgICAgICAgIFtwZXJtaXNzaW9uc0FycmF5XT1cImRlcGFydG1lbnRQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvYXBwLXBlcm1pc3Npb25zLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tc2hhcmVQZXJtaXNzaW9ucyBMaXN0IEl0ZW1zLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hhcmVQZXJtaXNzaW9ucy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtZ3JheS01MDAgdGV4dC1iYXNlXCI+e3tcclxuICAgICAgICAgICAgICAgIFwicGVybWlzc2lvbi5zaGFyZVBlcm1pc3Npb25zXCIgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibWF0LWRpdmlkZXJcIj48L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxhcHAtcGVybWlzc2lvbnMtdGVtcGxhdGVcclxuICAgICAgICAgICAgW2RvY3VtZW50SWRdPVwiZG9jdW1lbnRJZFwiXHJcbiAgICAgICAgICAgIFt1c2VyVmlzaWJsZVBlcm1pc3Npb25zXT1cInVzZXJWaXNpYmxlUGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgICAoZ2V0UGVybWlzc2lvbnMpPVwiZ2V0UGVybWlzc2lvbnMoKVwiXHJcbiAgICAgICAgICAgIFtwZXJtaXNzaW9uc0FycmF5XT1cInNoYXJlUGVybWlzc2lvbnNcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2FwcC1wZXJtaXNzaW9ucy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLXdvcmtmbG93UGVybWlzc2lvbnMgTGlzdCBJdGVtcy0tPlxyXG4gICAgPGRpdiAqbmdJZj1cIndvcmtmbG93UGVybWlzc2lvbnMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNTAwIHRleHQtYmFzZVwiPnt7XHJcbiAgICAgICAgICAgICAgICBcInBlcm1pc3Npb24ud29ya2Zsb3dQZXJtaXNzaW9uc1wiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cIm1hdC1kaXZpZGVyXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8YXBwLXBlcm1pc3Npb25zLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtkb2N1bWVudElkXT1cImRvY3VtZW50SWRcIlxyXG4gICAgICAgICAgICBbdXNlclZpc2libGVQZXJtaXNzaW9uc109XCJ1c2VyVmlzaWJsZVBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgKGdldFBlcm1pc3Npb25zKT1cImdldFBlcm1pc3Npb25zKClcIlxyXG4gICAgICAgICAgICBbcGVybWlzc2lvbnNBcnJheV09XCJ3b3JrZmxvd1Blcm1pc3Npb25zXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtcGVybWlzc2lvbnMtdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2xvYWRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgaC1mdWxsXCI+XHJcbiAgICAgICAgPG1hdC1zcGlubmVyIFt2YWx1ZV09XCI5MFwiIFtzdHJva2VXaWR0aF09XCI2XCIgb3ZlcmxheT1cInRydWVcIiBbZGlhbWV0ZXJdPVwiNzVcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVczRyxNQUFNLE9BQU8sb0JBQW9CO0lBc0IvQixZQUFvQixpQkFBb0MsRUFDOUMsb0JBQStCLEVBQy9CLGFBQWtDLEVBQ2xDLGdCQUFvQyxFQUNwQyxZQUEwQixFQUMxQixRQUFxQixFQUNyQixnQkFBb0M7UUFOMUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUM5Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVc7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBbkI5QyxlQUFVLEdBQUcsRUFBRSxDQUFBO1FBQ2YsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLHFCQUFn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QUMsQ0FBQTtJQUNuRCxDQUFDOztpSEFqTlUsb0JBQW9CO3FHQUFwQixvQkFBb0IsbUxDaEJqQyx1MExBaUlBOzJGRGpIYSxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsU0FBUyxFQUFFLENBQUMsOEJBQThCLENBQUM7aUJBQzVDO3dSQUlDLFVBQVU7c0JBRFQsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBZGRQZXJtaXNzaW9uc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cvYWRkLXBlcm1pc3Npb25zLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFdmFsdWF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9wZXJtaXNzaW9ucy9ldmFsdWF0b3JzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21Ub2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY3VzdG9tLXRvYXN0ci9zZXJ2aWNlcy9jdXN0b20tdG9hc3RyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcGVybWlzc2lvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wZXJtaXNzaW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGVybWlzc2lvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcGVybWlzc2lvbnNUeXBlOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBkb2N1bWVudElkO1xyXG4gIEBJbnB1dCgpXHJcbiAgZG9jdW1lbnQ7XHJcbiAgQElucHV0KClcclxuICBhbGxvd0FkZEFuZEJsb2NrXHJcbiAgQElucHV0KClcclxuICBzb3VyY2VQYWdlID0gJydcclxuICBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICB1c2VyVmlzaWJsZVBlcm1pc3Npb25zOiBhbnk7XHJcbiAgbG9jYWxQZXJtaXNzaW9ucyA9IFtdO1xyXG4gIGluaGVyaXRlZFBlcm1pc3Npb25zID0gW107XHJcbiAgZGVwYXJ0bWVudFBlcm1pc3Npb25zID0gW107XHJcbiAgc2hhcmVQZXJtaXNzaW9ucyA9IFtdO1xyXG4gIHdvcmtmbG93UGVybWlzc2lvbnMgPSBbXTtcclxuICBzdGF0dXM9bnVsbDsvL3RvIGtub3cgaW5oZXJpdGVkIFBlcm1pc3Npb25zIGlmIGJsb2NrIG9yIG5vdFxyXG4gIGFsbG93QWRkX0Jsb2NrX0RlbGV0ZVBlcm1pc3Npb24gPWZhbHNlO1xyXG4gIGJsb2NrT3JVbmJsb2NrID0gZmFsc2U7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIGFsbERlcGFydG1lbnRVc2VycyA9IFtdO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhZGRQZXJtaXNzaW9uc0RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSB0b3N0ZXJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyU2VydjogVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGV2YWx1YXRvclNlcnZpY2UgOiBFdmFsdWF0b3JzU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbXHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuY3JlYXRlQW5kQWRkQW5vdGhlci5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLmdldFBlcm1pc3Npb25zKCk7XHJcbiAgICAgIH0pXHJcbiAgICBdKTtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNoZWNrSWZVc2VyQ2FuRG9BY3Rpb25zT25QZXJtaXNzaW9ucygpO1xyXG4gICAgdGhpcy5nZXRQZXJtaXNzaW9ucygpO1xyXG4gICAgKHRoaXMuaW5oZXJpdGVkUGVybWlzc2lvbnMubGVuZ3RoID4gMCkgPyB0aGlzLnN0YXR1cyA9ICd1bmJsb2NrJyA6IHRoaXMuc3RhdHVzID0gJ2Jsb2NrJztcclxuICB9XHJcblxyXG4gIGFkZFBlcm1pc3Npb25MYWJlbChhcnIscGVybWlzc2lvbkFycikge1xyXG4gICAgYXJyLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIGlmKCF0aGlzLmlzSXRlbUNvbnRhaW5BZG1pbmlzdHJhdG9yR3JvdXAoZWxlbWVudCkpe1xyXG4gICAgICAgIGVsZW1lbnQucGVybWlzc2lvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYHJpZ2h0cy4ke2VsZW1lbnQucGVybWlzc2lvbn1gKVxyXG4gICAgICAgIHBlcm1pc3Npb25BcnIucHVzaChlbGVtZW50KVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzSXRlbUNvbnRhaW5BZG1pbmlzdHJhdG9yR3JvdXAoZWxlbWVudCl7XHJcbiAgICBsZXQgaXNBZG1pbmlzdHJhdG9yID0gZmFsc2U7XHJcbiAgICBpZihlbGVtZW50LmdyYW50ZWQgPT09IGZhbHNlKXtcclxuICAgICAgaXNBZG1pbmlzdHJhdG9yID0gdHJ1ZTtcclxuICAgIH1lbHNlIGlmIChlbGVtZW50LnVzZXJuYW1lICYmIGVsZW1lbnQudXNlcm5hbWVbJ2VudGl0eS10eXBlJ10gPT09ICdncm91cCcgJiYgZWxlbWVudC51c2VybmFtZS5ncm91cG5hbWUgPT09ICdhZG1pbmlzdHJhdG9ycycpe1xyXG4gICAgICBpc0FkbWluaXN0cmF0b3IgPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmKGVsZW1lbnQudXNlcm5hbWUudXNlckdyb3Vwcyl7XHJcbiAgICAgICAgZWxlbWVudC51c2VybmFtZS51c2VyR3JvdXBzLm1hcChncm91cCA9PiB7XHJcbiAgICAgICAgICBpZihncm91cC5uYW1lID09PSAnYWRtaW5pc3RyYXRvcnMnKXtcclxuICAgICAgICAgICAgaXNBZG1pbmlzdHJhdG9yID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzQWRtaW5pc3RyYXRvcjtcclxuICB9XHJcblxyXG4gIGdldFBlcm1pc3Npb25zKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5jb25jYXQoW3RoaXMucGVybWlzc2lvblNlcnZpY2UuZ2V0UGVybWlzc2lvbnNGb3JEb2N1bWVudCh0aGlzLmRvY3VtZW50SWQpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnBlcm1pc3Npb25zVHlwZSA9IHJlcy5jb250ZXh0UGFyYW1ldGVycy5hY2xzO1xyXG4gICAgICB0aGlzLnVzZXJWaXNpYmxlUGVybWlzc2lvbnMgPSByZXMuY29udGV4dFBhcmFtZXRlcnMudXNlclZpc2libGVQZXJtaXNzaW9ucztcclxuICAgICAgZm9yIChsZXQgcCBvZiB0aGlzLnBlcm1pc3Npb25zVHlwZSkge1xyXG4gICAgICAgIGlmIChwLm5hbWUgPT0gJ2xvY2FsJykge1xyXG4gICAgICAgICAgdGhpcy5sb2NhbFBlcm1pc3Npb25zID0gW107XHJcbiAgICAgICAgICB0aGlzLmFkZFBlcm1pc3Npb25MYWJlbChwLmFjZXMsdGhpcy5sb2NhbFBlcm1pc3Npb25zKTtcclxuICAgICAgICAgIHRoaXMubG9jYWxQZXJtaXNzaW9ucyA9IHRoaXMubG9jYWxQZXJtaXNzaW9ucy5tYXAoZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgIGlmKGVsZW1lbnQuY3JlYXRvci5wcm9wZXJ0aWVzLnVzZXJuYW1lICE9IHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy51c2VybmFtZSkge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnRbJ2N1cnJlbnRVc2VySXNQZXJtaXNzaW9uT3duZXInXSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnRbJ2N1cnJlbnRVc2VySXNQZXJtaXNzaW9uT3duZXInXSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocC5uYW1lID09ICdpbmhlcml0ZWQnKSB7XHJcbiAgICAgICAgICB0aGlzLmluaGVyaXRlZFBlcm1pc3Npb25zID0gW107XHJcbiAgICAgICAgICB0aGlzLmFkZFBlcm1pc3Npb25MYWJlbChwLmFjZXMsdGhpcy5pbmhlcml0ZWRQZXJtaXNzaW9ucylcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocC5uYW1lLmluY2x1ZGVzKCdkZXB0U3BhY2UnKSkge1xyXG4gICAgICAgICAgdGhpcy5kZXBhcnRtZW50UGVybWlzc2lvbnMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuYWRkUGVybWlzc2lvbkxhYmVsKHAuYWNlcyx0aGlzLmRlcGFydG1lbnRQZXJtaXNzaW9ucylcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAocC5uYW1lLmluY2x1ZGVzKCdzaGFyZScpKSB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlUGVybWlzc2lvbnMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuYWRkUGVybWlzc2lvbkxhYmVsKHAuYWNlcyx0aGlzLnNoYXJlUGVybWlzc2lvbnMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHAubmFtZS5pbmNsdWRlcygncm91dGluZycpKSB7XHJcbiAgICAgICAgICB0aGlzLndvcmtmbG93UGVybWlzc2lvbnMgPSBbXTtcclxuICAgICAgICAgIHRoaXMuYWRkUGVybWlzc2lvbkxhYmVsKHAuYWNlcyx0aGlzLndvcmtmbG93UGVybWlzc2lvbnMpXHJcbiAgICAgICAgfSAgICBcclxuICAgICAgfVxyXG4gICAgICAodGhpcy5pbmhlcml0ZWRQZXJtaXNzaW9ucy5sZW5ndGggPT0gMCkgPyB0aGlzLnN0YXR1cyA9ICdibG9jaycgOiB0aGlzLnN0YXR1cyA9ICd1bmJsb2NrJzsgIFxyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sZXJyID0+IHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICApXSk7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGJsb2NrUGVybWlzc2lvbkluaGVyaXRhbmNlKCkge1xyXG4gICAgdGhpcy5ibG9ja09yVW5ibG9jayA9IHRydWU7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLmNvbmNhdChbdGhpcy5wZXJtaXNzaW9uU2VydmljZS5ibG9ja1Blcm1pc3Npb25Jbmhlcml0YW5jZSh0aGlzLmRvY3VtZW50SWQpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5nZXRQZXJtaXNzaW9ucygpO1xyXG4gICAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdzdWNjZXNzJywgJ1RPQVNURVIuU1VDQ0VTUycsIFwiVE9BU1RFUi5QRVJNSVNTSU9OX0JMT0NLX1NVQ0NFU1NcIik7XHJcbiAgICAgICAgdGhpcy5ibG9ja09yVW5ibG9jayA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gXCJ1bmJsb2NrXCI7XHJcbiAgICAgICAgdGhpcy5pbmhlcml0ZWRQZXJtaXNzaW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICB0aGlzLmJsb2NrT3JVbmJsb2NrID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdlcnJvcicsICdUT0FTVEVSLkVSUk9SJywgJ1RPQVNURVIuUEVSTUlTU0lPTl9CTE9DS19GQUlMJyk7XHJcbiAgICB9XHJcbiAgICApXSlcclxuICB9XHJcblxyXG4gIHVuYmxvY2tQZXJtaXNzaW9uSW5oZXJpdGFuY2UoKSB7XHJcbiAgICB0aGlzLmJsb2NrT3JVbmJsb2NrID0gdHJ1ZTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuY29uY2F0KFt0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLnVuYmxvY2tQZXJtaXNzaW9uSW5oZXJpdGFuY2UodGhpcy5kb2N1bWVudElkKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgaWYgKHJlcykgeyAgIFxyXG4gICAgICAgIHRoaXMuZ2V0UGVybWlzc2lvbnMoKTtcclxuICAgICAgICB0aGlzLnRvc3RlclNlcnZpY2Uuc2hvdygnc3VjY2VzcycsICdUT0FTVEVSLlNVQ0NFU1MnLCBcIlRPQVNURVIuUEVSTUlTU0lPTl9VTkJMT0NLX1NVQ0NFU1NcIik7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBcImJsb2NrXCI7XHJcbiAgICAgICAgdGhpcy5ibG9ja09yVW5ibG9jayA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICB0aGlzLmJsb2NrT3JVbmJsb2NrID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudG9zdGVyU2VydmljZS5zaG93KCdlcnJvcicsICdUT0FTVEVSLkVSUk9SJywgJ1RPQVNURVIuUEVSTUlTU0lPTl9VTkJMT0NLX0ZBSUwnKTtcclxuICAgIH0pXSlcclxuICB9XHJcblxyXG4gIGFkZE5ld0xvY2FsUGVybWlzc2lvbnMoKSB7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRlcGFydG1lbnRVc2VycyA9IFsuLi50aGlzLmFsbERlcGFydG1lbnRVc2Vyc107XHJcbiAgICB0aGlzLmxvY2FsUGVybWlzc2lvbnMuZm9yRWFjaChwZXJtID0+IHtcclxuICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5kZXBhcnRtZW50VXNlcnMuZm9yRWFjaCgodXNlciwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAocGVybS51c2VybmFtZS5wcm9wZXJ0aWVzLnVzZXJuYW1lID09PSB1c2VyLnByb3BlcnRpZXMudXNlcm5hbWVcclxuICAgICAgICAgICYmIHBlcm0uY3JlYXRvci5wcm9wZXJ0aWVzLnVzZXJuYW1lID09PSB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMudXNlcm5hbWUpIHtcclxuICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZGVwYXJ0bWVudFVzZXJzLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XHJcbiAgICBkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gZmFsc2U7XHJcbiAgICBkaWFsb2dDb25maWcuYXV0b0ZvY3VzID0gdHJ1ZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5kYXRhID0ge1xyXG4gICAgICBpZDogdGhpcy5kb2N1bWVudElkLFxyXG4gICAgICByaWdodHM6IHRoaXMudXNlclZpc2libGVQZXJtaXNzaW9uc1xyXG4gICAgfTtcclxuICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICczNSUnO1xyXG4gICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICc3MCUnO1xyXG4gICAgLy8gYmVmb3Igb3BlbmluZyBtb2RhbCB3ZSBkaWFibGUgY2xpY2tvdXQgc2lkZSBlZmZlY3QgdG8gcHJldmVudCBkZXRhaWxzIHNpZGUgbWVudSBmcm9tIGNsb3Npbmcgd2hlbiBjbGlja2luZyBpbiB0aGUgbW9kYWxcclxuICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZGlzYWJsZUNsaWNrT3V0U2lkZSA9IHRydWU7XHJcbiAgICBsZXQgZGlhbG9mUmVmID0gdGhpcy5hZGRQZXJtaXNzaW9uc0RpYWxvZy5vcGVuKFxyXG4gICAgICBBZGRQZXJtaXNzaW9uc0RpYWxvZ0NvbXBvbmVudCwgXHJcbiAgICAgIGRpYWxvZ0NvbmZpZyk7XHJcbiAgICBkaWFsb2ZSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgLy8gcmV0dXJuIGNsaWNrIG91dHNpZGUgZWZmZWN0IHRvIHdvcmsgdG8gY2xvc2Ugc2lkZSBtZW51IHdoZW4gY2xpY2tpbmcgb3V0IHNpZGUgaXRcclxuICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5kaXNhYmxlQ2xpY2tPdXRTaWRlID0gZmFsc2U7XHJcbiAgICAgIGlmKHJlcykge1xyXG4gICAgICAgIHRoaXMuZ2V0UGVybWlzc2lvbnMoKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBjaGVja0lmVXNlckNhbkRvQWN0aW9uc09uUGVybWlzc2lvbnMoKSB7XHJcbiAgICB0aGlzLmV2YWx1YXRvclNlcnZpY2UuZXZhbHVhdGVSdWxlKCdpc01hbmFnZVBlcm1pc3Npb25FbmFibGVkJykudGhlbihpc0VuYWJsZWQgPT4ge1xyXG4gICAgICBpZiAoaXNFbmFibGVkKSB7XHJcbiAgICAgICAgbGV0IHVzZXJJbkNvbnRyb2xsZXJHcm91cCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIudXNlckdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcclxuICAgICAgICAgIGlmIChncm91cC5uYW1lID09PSAnZG1zX2RvY3VtZW50X2NvbnRyb2xsZXInKSB7XHJcbiAgICAgICAgICAgIHVzZXJJbkNvbnRyb2xsZXJHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKHVzZXJJbkNvbnRyb2xsZXJHcm91cCkge1xyXG4gICAgICAgICAgbGV0IGRlcENvZGUgPSB0aGlzLnVzZXJTZXJ2LmdldFVzZXJEZXBhcnRtZW50RnJvbVBhdGgodGhpcy5kb2N1bWVudC5wYXRoKTtcclxuICAgICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZ2V0RGVwTWVtYmVycyhkZXBDb2RlKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5kZXBhcnRtZW50VXNlcnMgPSByZXMudXNlcnMubWFwKGUgPT4ge1xyXG4gICAgICAgICAgICAgIGVbJ2Rpc3BsYXlMYWJlbCddID0gZS5wcm9wZXJ0aWVzLmZpcnN0TmFtZSArICcgJyArIGUucHJvcGVydGllcy5sYXN0TmFtZTtcclxuICAgICAgICAgICAgICByZXR1cm4gZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWxsRGVwYXJ0bWVudFVzZXJzID0gWy4uLnRoaXMucGVybWlzc2lvblNlcnZpY2UuZGVwYXJ0bWVudFVzZXJzXTtcclxuICAgICAgICAgICAgcmVzLnVzZXJzLmZvckVhY2godXNlciA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHVzZXIucHJvcGVydGllcy51c2VybmFtZSA9PT0gdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzLnVzZXJuYW1lXHJcbiAgICAgICAgICAgICAgICAmJiAoKHRoaXMuZG9jdW1lbnQudHlwZSA9PT0gJ0Rtc0ZvbGRlcicgJiYgdGhpcy5kb2N1bWVudC5wYXRoLmluY2x1ZGVzKCcvZGVmYXVsdC1kb21haW4vd29ya3NwYWNlcy9ETVMvJykpIHx8ICh0aGlzLmRvY3VtZW50LnR5cGUgPT09ICdGb2xkZXInICYmIHRoaXMuZG9jdW1lbnQucGF0aC5pbmNsdWRlcygnL2RlZmF1bHQtZG9tYWluL3dvcmtzcGFjZXMvRE1TV29ya3NwYWNlcy8nKSkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbG93QWRkX0Jsb2NrX0RlbGV0ZVBlcm1pc3Npb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFsbG93QWRkX0Jsb2NrX0RlbGV0ZVBlcm1pc3Npb24gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hbGxvd0FkZF9CbG9ja19EZWxldGVQZXJtaXNzaW9uID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIC8vIHJldHVybiBjbGljayBvdXRzaWRlIGVmZmVjdCB0byB3b3JrIHRvIGNsb3NlIHNpZGUgbWVudSB3aGVuIGNsaWNraW5nIG91dCBzaWRlIGl0XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRpc2FibGVDbGlja091dFNpZGUgPSBmYWxzZTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuZm9yRWFjaChlID0+IGUudW5zdWJzY3JpYmUoKSlcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImgtYXV0byBtdC0zIHB4LTAgcGItNFwiICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGVyXCI+XHJcbiAgICA8IS0tTG9jYWxQZXJtaXNzaW9uIExpc3QgSXRlbXMtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJzb3VyY2VQYWdlICE9ICdteUZpbGVzJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNTAwIHRleHQtYmFzZVwiPnt7XHJcbiAgICAgICAgICAgICAgICBcInBlcm1pc3Npb24ubG9jYWxcIiB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhbGxvd0FkZF9CbG9ja19EZWxldGVQZXJtaXNzaW9uICYmICFpbmhlcml0ZWRQZXJtaXNzaW9ucy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFsbG93QWRkQW5kQmxvY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaG92ZXI6dGV4dC1ibHVlLTcwMCB0ZXh0LWJsdWUtNTAwIG1iLTEgdGV4dC1iYXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTmV3TG9jYWxQZXJtaXNzaW9ucygpXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXBlcm1pc3Npb25zVHlwZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJwZXJtaXNzaW9uLm5ld1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cIm1hdC1kaXZpZGVyXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8YXBwLXBlcm1pc3Npb25zLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtkb2N1bWVudElkXT1cImRvY3VtZW50SWRcIlxyXG4gICAgICAgICAgICBbdXNlclZpc2libGVQZXJtaXNzaW9uc109XCJ1c2VyVmlzaWJsZVBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgKGdldFBlcm1pc3Npb25zKT1cImdldFBlcm1pc3Npb25zKClcIlxyXG4gICAgICAgICAgICBbYWxsb3dEZWxldGVBbmRFZGl0XT1cImFsbG93QWRkX0Jsb2NrX0RlbGV0ZVBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgICBbcGVybWlzc2lvbnNBcnJheV09XCJsb2NhbFBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJsb2NhbFBlcm1pc3Npb25zLmxlbmd0aCA+IDA7IGVsc2Ugbm9sb2NhbFBlcm1pc3Npb25zXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtcGVybWlzc2lvbnMtdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbm9sb2NhbFBlcm1pc3Npb25zPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaW5nbGUtcGVybXNzaW9uIHAtMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICB7eyBcInBlcm1pc3Npb24ubm9Mb2NhbFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPCEtLUluaGVyaXRlZFBlcm1pc3Npb24gTGlzdCBJdGVtcy0tPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gbXQtM1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNTAwIHRleHQtYmFzZVwiPnt7XHJcbiAgICAgICAgICAgICAgICBcInBlcm1pc3Npb24uaW5oZXJpdGVkXCIgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWxsb3dBZGRfQmxvY2tfRGVsZXRlUGVybWlzc2lvblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaG92ZXI6dGV4dC1ibHVlLTcwMCB0ZXh0LWJsdWUtNTAwIG1iLTEgdGV4dC1iYXNlXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0YXR1cyAhPSBudWxsICYmIGFsbG93QWRkQW5kQmxvY2tcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RhdHVzID09ICdibG9jayc7IGVsc2UgdW5ibG9ja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1bmJsb2NrUGVybWlzc2lvbkluaGVyaXRhbmNlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJwZXJtaXNzaW9uLnVuYmxvY2tcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3VuYmxvY2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJibG9ja1Blcm1pc3Npb25Jbmhlcml0YW5jZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBcInBlcm1pc3Npb24uYmxvY2tcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibWF0LWRpdmlkZXJcIiAqbmdJZj1cIiFibG9ja09yVW5ibG9ja1wiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImJsb2NrT3JVbmJsb2NrXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICAgIDxhcHAtcGVybWlzc2lvbnMtdGVtcGxhdGVcclxuICAgICAgICAgICAgKm5nSWY9XCJpbmhlcml0ZWRQZXJtaXNzaW9ucy5sZW5ndGggPiAwOyBlbHNlIG5vaW5oZXJpdGVkUGVybWlzc2lvbnNcIlxyXG4gICAgICAgICAgICBbZG9jdW1lbnRJZF09XCJkb2N1bWVudElkXCJcclxuICAgICAgICAgICAgW3VzZXJWaXNpYmxlUGVybWlzc2lvbnNdPVwidXNlclZpc2libGVQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgIFtwZXJtaXNzaW9uc0FycmF5XT1cImluaGVyaXRlZFBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgKGdldFBlcm1pc3Npb25zKT1cImdldFBlcm1pc3Npb25zKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2FwcC1wZXJtaXNzaW9ucy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLXRlbXBsYXRlICNub2luaGVyaXRlZFBlcm1pc3Npb25zPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaW5nbGUtcGVybXNzaW9uIHAtMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICB7e1wicGVybWlzc2lvbi5ub0luaGVyaXRlZFwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPCEtLWRlcGFydG1lbnRQZXJtaXNzaW9ucyBMaXN0IEl0ZW1zLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZGVwYXJ0bWVudFBlcm1pc3Npb25zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1ncmF5LTUwMCB0ZXh0LWJhc2VcIj57e1xyXG4gICAgICAgICAgICAgICAgXCJwZXJtaXNzaW9uLmRlcGFydG1lbnRQZXJtaXNzaW9uc1wiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cIm1hdC1kaXZpZGVyXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8YXBwLXBlcm1pc3Npb25zLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtkb2N1bWVudElkXT1cImRvY3VtZW50SWRcIlxyXG4gICAgICAgICAgICBbdXNlclZpc2libGVQZXJtaXNzaW9uc109XCJ1c2VyVmlzaWJsZVBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgKGdldFBlcm1pc3Npb25zKT1cImdldFBlcm1pc3Npb25zKClcIlxyXG4gICAgICAgICAgICBbcGVybWlzc2lvbnNBcnJheV09XCJkZXBhcnRtZW50UGVybWlzc2lvbnNcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2FwcC1wZXJtaXNzaW9ucy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLXNoYXJlUGVybWlzc2lvbnMgTGlzdCBJdGVtcy0tPlxyXG4gICAgPGRpdiAqbmdJZj1cInNoYXJlUGVybWlzc2lvbnMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWdyYXktNTAwIHRleHQtYmFzZVwiPnt7XHJcbiAgICAgICAgICAgICAgICBcInBlcm1pc3Npb24uc2hhcmVQZXJtaXNzaW9uc1wiIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtYXQtZGl2aWRlciBjbGFzcz1cIm1hdC1kaXZpZGVyXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8YXBwLXBlcm1pc3Npb25zLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtkb2N1bWVudElkXT1cImRvY3VtZW50SWRcIlxyXG4gICAgICAgICAgICBbdXNlclZpc2libGVQZXJtaXNzaW9uc109XCJ1c2VyVmlzaWJsZVBlcm1pc3Npb25zXCJcclxuICAgICAgICAgICAgKGdldFBlcm1pc3Npb25zKT1cImdldFBlcm1pc3Npb25zKClcIlxyXG4gICAgICAgICAgICBbcGVybWlzc2lvbnNBcnJheV09XCJzaGFyZVBlcm1pc3Npb25zXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtcGVybWlzc2lvbnMtdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS13b3JrZmxvd1Blcm1pc3Npb25zIExpc3QgSXRlbXMtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJ3b3JrZmxvd1Blcm1pc3Npb25zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1ncmF5LTUwMCB0ZXh0LWJhc2VcIj57e1xyXG4gICAgICAgICAgICAgICAgXCJwZXJtaXNzaW9uLndvcmtmbG93UGVybWlzc2lvbnNcIiB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWRpdmlkZXIgY2xhc3M9XCJtYXQtZGl2aWRlclwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGFwcC1wZXJtaXNzaW9ucy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICBbZG9jdW1lbnRJZF09XCJkb2N1bWVudElkXCJcclxuICAgICAgICAgICAgW3VzZXJWaXNpYmxlUGVybWlzc2lvbnNdPVwidXNlclZpc2libGVQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgICAgIChnZXRQZXJtaXNzaW9ucyk9XCJnZXRQZXJtaXNzaW9ucygpXCJcclxuICAgICAgICAgICAgW3Blcm1pc3Npb25zQXJyYXldPVwid29ya2Zsb3dQZXJtaXNzaW9uc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvYXBwLXBlcm1pc3Npb25zLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNsb2FkZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdy1mdWxsIGgtZnVsbFwiPlxyXG4gICAgICAgIDxtYXQtc3Bpbm5lciBbdmFsdWVdPVwiOTBcIiBbc3Ryb2tlV2lkdGhdPVwiNlwiIG92ZXJsYXk9XCJ0cnVlXCIgW2RpYW1ldGVyXT1cIjc1XCI+PC9tYXQtc3Bpbm5lcj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -24,12 +24,22 @@ export class UserService {
24
24
  }
25
25
  getUserDepartmentFromPath(path) {
26
26
  let departmentCode;
27
- let fileManagObj = JSON.parse(this.userPreference.get('fileManagerObj'));
28
- fileManagObj.entries.forEach(element => {
29
- if (path.includes(element.path)) {
30
- departmentCode = element.properties['deptspace:deptCode'];
31
- }
32
- });
27
+ if (path.includes('/default-domain/workspaces/DMSWorkspaces/')) {
28
+ let workSpaceFileMangerObj = JSON.parse(this.userPreference.get('workSpaceFileMangerObj'));
29
+ workSpaceFileMangerObj.entries.forEach(element => {
30
+ if (path.includes(element.path)) {
31
+ departmentCode = element.properties['deptspace:deptCode'];
32
+ }
33
+ });
34
+ }
35
+ if (path.includes('/default-domain/workspaces/DMS/')) {
36
+ let fileManagObj = JSON.parse(this.userPreference.get('fileManagerObj'));
37
+ fileManagObj.entries.forEach(element => {
38
+ if (path.includes(element.path)) {
39
+ departmentCode = element.properties['deptspace:deptCode'];
40
+ }
41
+ });
42
+ }
33
43
  return departmentCode;
34
44
  // if(parent) {
35
45
  // this.callApiService.query(
@@ -51,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
51
61
  providedIn: 'root'
52
62
  }]
53
63
  }], ctorParameters: function () { return [{ type: i1.UserPreferencesService }, { type: i2.CallApiService }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkLXNlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLFlBQW9CLGNBQXNDLEVBQ2hELGNBQThCO1FBRHBCLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUNoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBSSxDQUFDO0lBRTdDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxNQUFNLEdBQUcsV0FBVztRQUMzRCxJQUFJLFNBQVMsR0FBYSxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUN4RCxJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUIsY0FBYyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxjQUFjLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxJQUFJLFNBQVMsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELGNBQWMsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQseUJBQXlCLENBQUMsSUFBSTtRQUM1QixJQUFJLGNBQWtCLENBQUM7UUFDdkIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDekUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDckMsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDOUIsY0FBYyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQTthQUMxRDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxjQUFjLENBQUM7UUFDdEIsZUFBZTtRQUNmLCtCQUErQjtRQUMvQixRQUFRO1FBQ1IsMkNBQTJDO1FBQzNDLGlDQUFpQztRQUNqQyxXQUFXO1FBQ1gseUJBQXlCO1FBQ3pCLGdEQUFnRDtRQUNoRCxPQUFPO1FBQ1AsSUFBSTtJQUNOLENBQUM7O3dHQXhDVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vQ29yZS9zZXJ2aWNlcy91c2VyL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IENhbGxBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vQ29yZS9zZXJ2aWNlcy9jYWxsQXBpL2NhbGwtYXBpLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJQcmVmZXJlbmNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYWxsQXBpU2VydmljZTogQ2FsbEFwaVNlcnZpY2UpIHsgfVxyXG5cclxuICBnZXRVc2VyRGVwYXJ0bWVudEZyb21Hcm91cHMoY3VycmVudFVzZXIsIHByZWZpeCA9IFwiZG1zX3VzZXJfXCIpIHtcclxuICAgIGxldCBhbGxHcm91cHM6IHN0cmluZ1tdID0gY3VycmVudFVzZXIucHJvcGVydGllcy5ncm91cHM7XHJcbiAgICBsZXQgZGVwYXJ0bWVudENvZGUgPSBcIlwiO1xyXG4gICAgYWxsR3JvdXBzLnNvbWUoKGdyb3VwKSA9PiB7XHJcbiAgICAgIGlmIChncm91cC5pbmNsdWRlcyhwcmVmaXgpKSB7XHJcbiAgICAgICAgZGVwYXJ0bWVudENvZGUgPSBncm91cDtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBsZXQgcHJlZml4TGVuZ3RoID0gcHJlZml4Lmxlbmd0aDtcclxuICAgIGRlcGFydG1lbnRDb2RlID0gZGVwYXJ0bWVudENvZGUuc3Vic3RyaW5nKHByZWZpeExlbmd0aCk7XHJcbiAgICBsZXQgbGFzdEluZGV4ID0gZGVwYXJ0bWVudENvZGUubGFzdEluZGV4T2YoXCJfXCIpO1xyXG4gICAgZGVwYXJ0bWVudENvZGUgPSBkZXBhcnRtZW50Q29kZS5zdWJzdHJpbmcoMCwgbGFzdEluZGV4KTtcclxuICAgIHJldHVybiBkZXBhcnRtZW50Q29kZTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJEZXBhcnRtZW50RnJvbVBhdGgocGF0aCkge1xyXG4gICAgbGV0IGRlcGFydG1lbnRDb2RlOmFueTtcclxuICAgIGxldCBmaWxlTWFuYWdPYmogPSBKU09OLnBhcnNlKHRoaXMudXNlclByZWZlcmVuY2UuZ2V0KCdmaWxlTWFuYWdlck9iaicpKTtcclxuICAgIGZpbGVNYW5hZ09iai5lbnRyaWVzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIGlmKHBhdGguaW5jbHVkZXMoZWxlbWVudC5wYXRoKSkge1xyXG4gICAgICAgIGRlcGFydG1lbnRDb2RlID0gZWxlbWVudC5wcm9wZXJ0aWVzWydkZXB0c3BhY2U6ZGVwdENvZGUnXVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkZXBhcnRtZW50Q29kZTtcclxuICAgIC8vIGlmKHBhcmVudCkge1xyXG4gICAgLy8gICB0aGlzLmNhbGxBcGlTZXJ2aWNlLnF1ZXJ5KFxyXG4gICAgLy8gICAgIHtcclxuICAgIC8vICAgICAgIHBhZ2VQcm92aWRlcjogJ1BQX09TX0RlcGFydG1lbnRzJyxcclxuICAgIC8vICAgICAgIGR1YmxpbmNvcmVfdGl0bGU6IHBhcmVudFxyXG4gICAgLy8gICAgIH0se31cclxuICAgIC8vICAgKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgIC8vICAgICB0aGlzLmRlcGFydG1lbnRDb2RlID0gcmVzLmVudHJpZXNbMF0udWlkO1xyXG4gICAgLy8gICB9KVxyXG4gICAgLy8gfVxyXG4gIH1cclxufVxyXG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkLXNlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLFlBQW9CLGNBQXNDLEVBQ2hELGNBQThCO1FBRHBCLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUNoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBSSxDQUFDO0lBRTdDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxNQUFNLEdBQUcsV0FBVztRQUMzRCxJQUFJLFNBQVMsR0FBYSxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUN4RCxJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUIsY0FBYyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxjQUFjLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxJQUFJLFNBQVMsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELGNBQWMsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQseUJBQXlCLENBQUMsSUFBSTtRQUM1QixJQUFJLGNBQW1CLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLDJDQUEyQyxDQUFDLEVBQUU7WUFDOUQsSUFBSSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztZQUMzRixzQkFBc0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMvQixjQUFjLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO2lCQUMxRDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQUMsRUFBRTtZQUNwRCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN6RSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDckMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDL0IsY0FBYyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtpQkFDMUQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxjQUFjLENBQUM7UUFDdEIsZUFBZTtRQUNmLCtCQUErQjtRQUMvQixRQUFRO1FBQ1IsMkNBQTJDO1FBQzNDLGlDQUFpQztRQUNqQyxXQUFXO1FBQ1gseUJBQXlCO1FBQ3pCLGdEQUFnRDtRQUNoRCxPQUFPO1FBQ1AsSUFBSTtJQUNOLENBQUM7O3dHQWxEVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vQ29yZS9zZXJ2aWNlcy91c2VyL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IENhbGxBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vQ29yZS9zZXJ2aWNlcy9jYWxsQXBpL2NhbGwtYXBpLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHVzZXJQcmVmZXJlbmNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYWxsQXBpU2VydmljZTogQ2FsbEFwaVNlcnZpY2UpIHsgfVxyXG5cclxuICBnZXRVc2VyRGVwYXJ0bWVudEZyb21Hcm91cHMoY3VycmVudFVzZXIsIHByZWZpeCA9IFwiZG1zX3VzZXJfXCIpIHtcclxuICAgIGxldCBhbGxHcm91cHM6IHN0cmluZ1tdID0gY3VycmVudFVzZXIucHJvcGVydGllcy5ncm91cHM7XHJcbiAgICBsZXQgZGVwYXJ0bWVudENvZGUgPSBcIlwiO1xyXG4gICAgYWxsR3JvdXBzLnNvbWUoKGdyb3VwKSA9PiB7XHJcbiAgICAgIGlmIChncm91cC5pbmNsdWRlcyhwcmVmaXgpKSB7XHJcbiAgICAgICAgZGVwYXJ0bWVudENvZGUgPSBncm91cDtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBsZXQgcHJlZml4TGVuZ3RoID0gcHJlZml4Lmxlbmd0aDtcclxuICAgIGRlcGFydG1lbnRDb2RlID0gZGVwYXJ0bWVudENvZGUuc3Vic3RyaW5nKHByZWZpeExlbmd0aCk7XHJcbiAgICBsZXQgbGFzdEluZGV4ID0gZGVwYXJ0bWVudENvZGUubGFzdEluZGV4T2YoXCJfXCIpO1xyXG4gICAgZGVwYXJ0bWVudENvZGUgPSBkZXBhcnRtZW50Q29kZS5zdWJzdHJpbmcoMCwgbGFzdEluZGV4KTtcclxuICAgIHJldHVybiBkZXBhcnRtZW50Q29kZTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJEZXBhcnRtZW50RnJvbVBhdGgocGF0aCkge1xyXG4gICAgbGV0IGRlcGFydG1lbnRDb2RlOiBhbnk7XHJcbiAgICBpZiAocGF0aC5pbmNsdWRlcygnL2RlZmF1bHQtZG9tYWluL3dvcmtzcGFjZXMvRE1TV29ya3NwYWNlcy8nKSkge1xyXG4gICAgICBsZXQgd29ya1NwYWNlRmlsZU1hbmdlck9iaiA9IEpTT04ucGFyc2UodGhpcy51c2VyUHJlZmVyZW5jZS5nZXQoJ3dvcmtTcGFjZUZpbGVNYW5nZXJPYmonKSk7XHJcbiAgICAgIHdvcmtTcGFjZUZpbGVNYW5nZXJPYmouZW50cmllcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKGVsZW1lbnQucGF0aCkpIHtcclxuICAgICAgICAgIGRlcGFydG1lbnRDb2RlID0gZWxlbWVudC5wcm9wZXJ0aWVzWydkZXB0c3BhY2U6ZGVwdENvZGUnXVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAocGF0aC5pbmNsdWRlcygnL2RlZmF1bHQtZG9tYWluL3dvcmtzcGFjZXMvRE1TLycpKSB7XHJcbiAgICAgIGxldCBmaWxlTWFuYWdPYmogPSBKU09OLnBhcnNlKHRoaXMudXNlclByZWZlcmVuY2UuZ2V0KCdmaWxlTWFuYWdlck9iaicpKTtcclxuICAgICAgZmlsZU1hbmFnT2JqLmVudHJpZXMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBpZiAocGF0aC5pbmNsdWRlcyhlbGVtZW50LnBhdGgpKSB7XHJcbiAgICAgICAgICBkZXBhcnRtZW50Q29kZSA9IGVsZW1lbnQucHJvcGVydGllc1snZGVwdHNwYWNlOmRlcHRDb2RlJ11cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlcGFydG1lbnRDb2RlO1xyXG4gICAgLy8gaWYocGFyZW50KSB7XHJcbiAgICAvLyAgIHRoaXMuY2FsbEFwaVNlcnZpY2UucXVlcnkoXHJcbiAgICAvLyAgICAge1xyXG4gICAgLy8gICAgICAgcGFnZVByb3ZpZGVyOiAnUFBfT1NfRGVwYXJ0bWVudHMnLFxyXG4gICAgLy8gICAgICAgZHVibGluY29yZV90aXRsZTogcGFyZW50XHJcbiAgICAvLyAgICAgfSx7fVxyXG4gICAgLy8gICApLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMuZGVwYXJ0bWVudENvZGUgPSByZXMuZW50cmllc1swXS51aWQ7XHJcbiAgICAvLyAgIH0pXHJcbiAgICAvLyB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -22398,7 +22398,7 @@ class AddPermissionsDialogComponent {
22398
22398
  }
22399
22399
  }
22400
22400
  AddPermissionsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: AddPermissionsDialogComponent, deps: [{ token: i1$6.MatDialogRef }, { token: PermissionService }, { token: CustomToastrService }, { token: i6.FormBuilder }, { token: TranslationService$1 }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
22401
- AddPermissionsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: AddPermissionsDialogComponent, selector: "app-add-permissions-dialog", ngImport: i0, template: "<form [formGroup]=\"permissionForm\" class=\"h-full\" SetRtl>\r\n\r\n <div class=\"flex flex-col h-full\">\r\n <div class=\"add-permsion-wrapper\">\r\n <span class=\"text-gray-900 text-lg\" *ngIf=\"state == 'update'\">\r\n {{ \"permission.edit_permission\" | translate }}\r\n </span>\r\n <span class=\"text-gray-900 text-lg\" *ngIf=\"state !== 'update'\">\r\n {{ \"permission.add_new_permission\" | translate }}\r\n </span>\r\n \r\n <div class=\"user-select mt-5\" *ngIf=\"state != 'update'\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ 'permission.username' | translate}}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"permissionService.departmentUsers\"\r\n [placeholder]=\"'permission.placeholder' | translate\"\r\n [multiple]=\"true\"\r\n [loading]=\"refreshUsers\"\r\n bindLabel=\"displayLabel\"\r\n bindValue=\"properties.username\"\r\n formControlName=\"users\"\r\n >\r\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\r\n <div class=\"ng-option disabled\">\r\n {{'permission.ngSelect_resultNotFound' | translate}}\r\n </div>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <div class=\"flex flex-col h-full\">\r\n <div class=\"flex flex-row\">\r\n <div class=\"flex-0 w-8 h-8 rounded-full overflow-hidden\" >\r\n <cts-avatar [user]=\"{\r\n properties: {\r\n firstName: item.properties.firstName,\r\n lastName: item.properties.lastName\r\n }\r\n }\">\r\n </cts-avatar>\r\n </div>\r\n <div class=\"flex flex-col pt-0 px-2\">\r\n <span>{{item.displayLabel}}</span>\r\n <span>{{item.properties.email}}-{{item.properties.username}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"mt-3 rights-select\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ \"permission.Rights\" | translate }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"rights\"\r\n [placeholder]=\"'permission.rightsPlaceholder' | translate\"\r\n bindLabel=\"label\"\r\n bindValue=\"value\"\r\n formControlName=\"permission\" \r\n [(ngModel)]=\"editableRight\"\r\n >\r\n </ng-select>\r\n </div>\r\n \r\n <!--<div class=\"flex flex-row mt-5\">\r\n <span class=\"text-gray-900 text-base font-bold\">\r\n {{ \"permission.timeframe\" | translate }}\r\n <span class=\"text-danger\">*</span>:</span>\r\n <div class=\"mx-2\">\r\n <label class=\"inline-flex items-center\">\r\n <input type=\"radio\" class=\"form-radio\" name=\"radio\" value=\"Permanent\" [checked]=\"timeFrame == 'Permanent'\"\r\n (click)=\"timeFrame = 'Permanent'\" />\r\n <span class=\"mx-2 mt-1 text-gray-900 text-sm font-bold\">{{\r\n \"permission.permanent\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div rtl>\r\n <label class=\"inline-flex items-center\">\r\n <input type=\"radio\" class=\"form-radio\" name=\"radio\" value=\"Date-Based\" [checked]=\"timeFrame == 'Date-Based'\"\r\n (click)=\"timeFrame = 'Date-Based'\" />\r\n <span class=\"mx-2 mt-1 text-gray-900 text-sm font-bold\">{{\r\n \"permission.Date_based\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col mt-2\">\r\n <label class=\"text-base font-bold text-gray-900 mb-0\">{{ \"permission.from\" | translate }}</label>\r\n <cts-dynamic-form-hijri-dateitem \r\n formControlName=\"begin\" \r\n [isDisabled]=\"timeFrame == 'Permanent'\"\r\n [(ngModel)]=\"editableBegin\">\r\n </cts-dynamic-form-hijri-dateitem>\r\n <label class=\"text-base font-bold text-gray-900 mb-0\">{{ \"permission.to\" | translate }}</label>\r\n <cts-dynamic-form-hijri-dateitem \r\n formControlName=\"end\" \r\n [isDisabled]=\"timeFrame == 'Permanent'\"\r\n [(ngModel)]=\"editableEnd\">\r\n </cts-dynamic-form-hijri-dateitem>\r\n <div *ngIf=\"permissionForm?.errors?.notValid\">\r\n <span class=\"text-red-500 text-base -mt-3 \">{{\r\n \"permission.endStartError\" | translate\r\n }}</span>\r\n </div>\r\n </div>-->\r\n </div>\r\n\r\n <div class=\"flex flex-row justify-between mt-5 flex-wrap\">\r\n <div>\r\n <button\r\n class=\"cancelation-button mb-3\"\r\n (click)=\"cancel(false)\">\r\n {{ \"BUTTONS.Cancel\" | translate }}\r\n </button>\r\n </div>\r\n <div class=\"d-flex\">\r\n <button *ngIf=\"state != 'update'\"\r\n [disabled]=\"createAndAdd\"\r\n class=\"submission-button\"\r\n (click)=\"create(permissionForm.value)\">\r\n <span *ngIf=\"!creating;else loader\">{{ \"permission.create\" | translate }}</span>\r\n </button>\r\n <button\r\n class=\"submission-button\"\r\n (click)=\"edit(permissionForm.value)\" *ngIf=\"state == 'update'\">\r\n <span *ngIf=\"!updating;else loader\">{{ \"permission.update\" | translate }}</span>\r\n </button>\r\n <button *ngIf=\"state != 'update'\"\r\n class=\"submission-button w-44\"\r\n (click)=\"\r\n createandAddAnother(permissionForm, permissionForm.value)\r\n \">\r\n <span *ngIf=\"!createAndAdd;else loader\">{{ \"permission.createAndAdd\" | translate }}</span>\r\n </button>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #loader>\r\n <mat-spinner [value]=\"90\" [strokeWidth]=\"3\" overlay=\"true\" [diameter]=\"25\" color=\"warn\">\r\n </mat-spinner>\r\n</ng-template>\r\n", styles: [".form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;user-select:none;flex-shrink:0;border-radius:100%;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px}.form-radio:checked{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;box-shadow:0 0 0 3px #4299e180;border-color:#63b3ed}.select-label{color:#8f98aa;font-size:12px;margin-bottom:0}.user-select .ng-select-container,.rights-select .ng-select-container{border:1px solid #ccc!important;border-radius:5px!important;background-color:#8f98aa1a!important}.user-select .ng-select-container .ng-value-container,.rights-select .ng-select-container .ng-value-container{padding:unset!important}.user-select .ng-select-container .ng-value-container .ng-placeholder,.rights-select .ng-select-container .ng-value-container .ng-placeholder{font-size:12px}.user-select .ng-select-container .ng-value-container .ng-value,.rights-select .ng-select-container .ng-value-container .ng-value{color:#495057}.user-select .ng-select-container .ng-arrow-wrapper,.rights-select .ng-select-container .ng-arrow-wrapper{padding:0 20px}.user-select .ng-select-container .ng-input,.rights-select .ng-select-container .ng-input{left:10px;right:10px;width:auto}.user-select .ng-select-container .ng-value-container .ng-placeholder{padding-top:4px!important}.ng-select-disabled .ng-select-container{background-color:#e9ecef!important}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper{position:relative}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper input{visibility:hidden;width:20px;height:20px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper .icon-wrapper{position:absolute;top:0px;left:0px;width:20px;height:20px;border:1px solid blue;display:flex;justify-content:center;align-items:center}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper .icon-wrapper .icon{color:#00f;display:none;justify-content:center;align-items:center;font-weight:bold}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option-selected .option-wrapper .check-box-wrapper .icon-wrapper .icon{display:flex}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option-selected .option-wrapper .label-wrapper{color:#00f}.ng-select .ng-select-focused:not(.ng-select-opened) .ng-select-container{border-color:#ccc;box-shadow:none}.add-permsion-wrapper{height:calc(100% - 50px);overflow:auto}\n"], components: [{ type: i4$1.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: AvatarComponent, selector: "cts-avatar", inputs: ["user"] }, { type: i1$5.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: SetRtlDirective, selector: "[SetRtl]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4$1.ɵl, selector: "[ng-notfound-tmp]" }, { type: i4$1.ɵf, selector: "[ng-option-tmp]" }], pipes: { "translate": i1$1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
22401
+ AddPermissionsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: AddPermissionsDialogComponent, selector: "app-add-permissions-dialog", ngImport: i0, template: "<form [formGroup]=\"permissionForm\" class=\"h-full\" SetRtl>\r\n\r\n <div class=\"flex flex-col h-full\">\r\n <div class=\"add-permsion-wrapper\">\r\n <span class=\"text-gray-900 text-lg\" *ngIf=\"state == 'update'\">\r\n {{ \"permission.edit_permission\" | translate }}\r\n </span>\r\n <span class=\"text-gray-900 text-lg\" *ngIf=\"state !== 'update'\">\r\n {{ \"permission.add_new_permission\" | translate }}\r\n </span>\r\n \r\n <div class=\"user-select mt-5\" *ngIf=\"state != 'update'\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ 'permission.username' | translate}}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"permissionService.departmentUsers\"\r\n [placeholder]=\"'permission.placeholder' | translate\"\r\n [multiple]=\"true\"\r\n [loading]=\"refreshUsers\"\r\n bindLabel=\"displayLabel\"\r\n bindValue=\"properties.username\"\r\n formControlName=\"users\"\r\n >\r\n <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\r\n <div class=\"ng-option disabled\">\r\n {{'permission.ngSelect_resultNotFound' | translate}}\r\n </div>\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\r\n <div class=\"flex flex-col h-full\">\r\n <div class=\"flex flex-row\">\r\n <div class=\"flex-0 w-8 h-8 rounded-full overflow-hidden\" >\r\n <cts-avatar [user]=\"{\r\n properties: {\r\n firstName: item.properties.firstName,\r\n lastName: item.properties.lastName\r\n }\r\n }\">\r\n </cts-avatar>\r\n </div>\r\n <div class=\"flex flex-col pt-0 px-2\">\r\n <span>{{item.displayLabel}}</span>\r\n <span>{{item.properties.email}}-{{item.properties.username}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n <div class=\"mt-3 rights-select\">\r\n <label class=\"text-base font-bold mb-0\">\r\n {{ \"permission.Rights\" | translate }}\r\n <span class=\"text-danger\">*</span>\r\n </label>\r\n <ng-select \r\n [items]=\"rights\"\r\n [placeholder]=\"'permission.rightsPlaceholder' | translate\"\r\n bindLabel=\"label\"\r\n bindValue=\"value\"\r\n formControlName=\"permission\" \r\n [(ngModel)]=\"editableRight\"\r\n >\r\n </ng-select>\r\n </div>\r\n \r\n <!--<div class=\"flex flex-row mt-5\">\r\n <span class=\"text-gray-900 text-base font-bold\">\r\n {{ \"permission.timeframe\" | translate }}\r\n <span class=\"text-danger\">*</span>:</span>\r\n <div class=\"mx-2\">\r\n <label class=\"inline-flex items-center\">\r\n <input type=\"radio\" class=\"form-radio\" name=\"radio\" value=\"Permanent\" [checked]=\"timeFrame == 'Permanent'\"\r\n (click)=\"timeFrame = 'Permanent'\" />\r\n <span class=\"mx-2 mt-1 text-gray-900 text-sm font-bold\">{{\r\n \"permission.permanent\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n <div rtl>\r\n <label class=\"inline-flex items-center\">\r\n <input type=\"radio\" class=\"form-radio\" name=\"radio\" value=\"Date-Based\" [checked]=\"timeFrame == 'Date-Based'\"\r\n (click)=\"timeFrame = 'Date-Based'\" />\r\n <span class=\"mx-2 mt-1 text-gray-900 text-sm font-bold\">{{\r\n \"permission.Date_based\" | translate\r\n }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-col mt-2\">\r\n <label class=\"text-base font-bold text-gray-900 mb-0\">{{ \"permission.from\" | translate }}</label>\r\n <cts-dynamic-form-hijri-dateitem \r\n formControlName=\"begin\" \r\n [isDisabled]=\"timeFrame == 'Permanent'\"\r\n [(ngModel)]=\"editableBegin\">\r\n </cts-dynamic-form-hijri-dateitem>\r\n <label class=\"text-base font-bold text-gray-900 mb-0\">{{ \"permission.to\" | translate }}</label>\r\n <cts-dynamic-form-hijri-dateitem \r\n formControlName=\"end\" \r\n [isDisabled]=\"timeFrame == 'Permanent'\"\r\n [(ngModel)]=\"editableEnd\">\r\n </cts-dynamic-form-hijri-dateitem>\r\n <div *ngIf=\"permissionForm?.errors?.notValid\">\r\n <span class=\"text-red-500 text-base -mt-3 \">{{\r\n \"permission.endStartError\" | translate\r\n }}</span>\r\n </div>\r\n </div>-->\r\n </div>\r\n\r\n <div class=\"flex flex-row justify-between mt-5 flex-wrap\">\r\n <div class=\"d-flex\">\r\n <button *ngIf=\"state != 'update'\" [disabled]=\"createAndAdd\" class=\"submission-button\"\r\n (click)=\"create(permissionForm.value)\">\r\n <span *ngIf=\"!creating;else loader\">{{ \"permission.create\" | translate }}</span>\r\n </button>\r\n <button class=\"submission-button\" (click)=\"edit(permissionForm.value)\" *ngIf=\"state == 'update'\">\r\n <span *ngIf=\"!updating;else loader\">{{ \"permission.update\" | translate }}</span>\r\n </button>\r\n <button *ngIf=\"state != 'update'\" class=\"submission-button w-44\" (click)=\"\r\n createandAddAnother(permissionForm, permissionForm.value)\r\n \">\r\n <span *ngIf=\"!createAndAdd;else loader\">{{ \"permission.createAndAdd\" | translate }}</span>\r\n </button>\r\n </div>\r\n <div>\r\n <button class=\"cancelation-button mb-3\" (click)=\"cancel(false)\">\r\n {{ \"BUTTONS.Cancel\" | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n\r\n<ng-template #loader>\r\n <mat-spinner [value]=\"90\" [strokeWidth]=\"3\" overlay=\"true\" [diameter]=\"25\" color=\"warn\">\r\n </mat-spinner>\r\n</ng-template>\r\n", styles: [".form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;user-select:none;flex-shrink:0;border-radius:100%;height:1em;width:1em;color:#4299e1;background-color:#fff;border-color:#e2e8f0;border-width:1px}.form-radio:checked{background-image:url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio:focus{outline:none;box-shadow:0 0 0 3px #4299e180;border-color:#63b3ed}.select-label{color:#8f98aa;font-size:12px;margin-bottom:0}.user-select .ng-select-container,.rights-select .ng-select-container{border:1px solid #ccc!important;border-radius:5px!important;background-color:#8f98aa1a!important}.user-select .ng-select-container .ng-value-container,.rights-select .ng-select-container .ng-value-container{padding:unset!important}.user-select .ng-select-container .ng-value-container .ng-placeholder,.rights-select .ng-select-container .ng-value-container .ng-placeholder{font-size:12px}.user-select .ng-select-container .ng-value-container .ng-value,.rights-select .ng-select-container .ng-value-container .ng-value{color:#495057}.user-select .ng-select-container .ng-arrow-wrapper,.rights-select .ng-select-container .ng-arrow-wrapper{padding:0 20px}.user-select .ng-select-container .ng-input,.rights-select .ng-select-container .ng-input{left:10px;right:10px;width:auto}.user-select .ng-select-container .ng-value-container .ng-placeholder{padding-top:4px!important}.ng-select-disabled .ng-select-container{background-color:#e9ecef!important}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper{position:relative}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper input{visibility:hidden;width:20px;height:20px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper .icon-wrapper{position:absolute;top:0px;left:0px;width:20px;height:20px;border:1px solid blue;display:flex;justify-content:center;align-items:center}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .option-wrapper .check-box-wrapper .icon-wrapper .icon{color:#00f;display:none;justify-content:center;align-items:center;font-weight:bold}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option-selected .option-wrapper .check-box-wrapper .icon-wrapper .icon{display:flex}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option-selected .option-wrapper .label-wrapper{color:#00f}.ng-select .ng-select-focused:not(.ng-select-opened) .ng-select-container{border-color:#ccc;box-shadow:none}.add-permsion-wrapper{height:calc(100% - 50px);overflow:auto}\n"], components: [{ type: i4$1.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: AvatarComponent, selector: "cts-avatar", inputs: ["user"] }, { type: i1$5.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: SetRtlDirective, selector: "[SetRtl]" }, { type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4$1.ɵl, selector: "[ng-notfound-tmp]" }, { type: i4$1.ɵf, selector: "[ng-option-tmp]" }], pipes: { "translate": i1$1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
22402
22402
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: AddPermissionsDialogComponent, decorators: [{
22403
22403
  type: Component,
22404
22404
  args: [{
@@ -22434,12 +22434,22 @@ class UserService {
22434
22434
  }
22435
22435
  getUserDepartmentFromPath(path) {
22436
22436
  let departmentCode;
22437
- let fileManagObj = JSON.parse(this.userPreference.get('fileManagerObj'));
22438
- fileManagObj.entries.forEach(element => {
22439
- if (path.includes(element.path)) {
22440
- departmentCode = element.properties['deptspace:deptCode'];
22441
- }
22442
- });
22437
+ if (path.includes('/default-domain/workspaces/DMSWorkspaces/')) {
22438
+ let workSpaceFileMangerObj = JSON.parse(this.userPreference.get('workSpaceFileMangerObj'));
22439
+ workSpaceFileMangerObj.entries.forEach(element => {
22440
+ if (path.includes(element.path)) {
22441
+ departmentCode = element.properties['deptspace:deptCode'];
22442
+ }
22443
+ });
22444
+ }
22445
+ if (path.includes('/default-domain/workspaces/DMS/')) {
22446
+ let fileManagObj = JSON.parse(this.userPreference.get('fileManagerObj'));
22447
+ fileManagObj.entries.forEach(element => {
22448
+ if (path.includes(element.path)) {
22449
+ departmentCode = element.properties['deptspace:deptCode'];
22450
+ }
22451
+ });
22452
+ }
22443
22453
  return departmentCode;
22444
22454
  // if(parent) {
22445
22455
  // this.callApiService.query(
@@ -22743,7 +22753,7 @@ class PermissionsComponent {
22743
22753
  this.allDepartmentUsers = [...this.permissionService.departmentUsers];
22744
22754
  res.users.forEach(user => {
22745
22755
  if (user.properties.username === this.nuxeoService.nuxeoClient.user.properties.username
22746
- && this.document.type === 'DmsFolder') {
22756
+ && ((this.document.type === 'DmsFolder' && this.document.path.includes('/default-domain/workspaces/DMS/')) || (this.document.type === 'Folder' && this.document.path.includes('/default-domain/workspaces/DMSWorkspaces/')))) {
22747
22757
  this.allowAdd_Block_DeletePermission = true;
22748
22758
  }
22749
22759
  });