@bnsights/bbsf-admin-portal 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/bnsights-bbsf-admin-portal-1.1.6.tgz +0 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directories.component.mjs +1 -1
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +146 -146
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +152 -152
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +1 -1
- package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +15 -15
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +1 -1
- package/esm2022/lib/Pages/anonymouslayout/error/error.component.mjs +7 -7
- package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +12 -12
- package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +19 -19
- package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +15 -15
- package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +12 -12
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +102 -102
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +7 -7
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +271 -271
- package/esm2022/lib/Pages/core/auth.module.mjs +1 -1
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +1 -1
- package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +3 -3
- package/esm2022/lib/Pages/departments/department/department.component.mjs +48 -48
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +32 -32
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +52 -52
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +20 -20
- package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +100 -100
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +151 -151
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +72 -72
- package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +27 -27
- package/esm2022/lib/Pages/empty-data/empty-data.component.mjs +1 -1
- package/esm2022/lib/Pages/empty-data/empty-data.module.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +84 -84
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +1 -1
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +56 -56
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +58 -58
- package/esm2022/lib/Pages/home/home.component.mjs +7 -7
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +129 -129
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +14 -14
- package/esm2022/lib/Pages/license/license/license.component.mjs +11 -11
- package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +41 -41
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +125 -125
- package/esm2022/lib/Pages/logs/log/log.component.mjs +11 -11
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +120 -120
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +34 -34
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +83 -83
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +35 -35
- package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +53 -53
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +50 -50
- package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +16 -16
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +20 -20
- package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +135 -135
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +186 -186
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +122 -122
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +120 -120
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +29 -29
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +57 -57
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +79 -79
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +35 -35
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +27 -27
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +27 -27
- package/esm2022/lib/Pages/shared/Services/AccountService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LogsService.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +1 -1
- package/esm2022/lib/Pages/shared/Services/provider.service.mjs +1 -1
- package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +36 -36
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +74 -74
- package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +8 -8
- package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +10 -10
- package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +89 -89
- package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +7 -7
- package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +9 -9
- package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +10 -10
- package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +222 -222
- package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +7 -7
- package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +257 -257
- package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +25 -25
- package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +24 -24
- package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +6 -6
- package/esm2022/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +52 -52
- package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +16 -16
- package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +20 -20
- package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +69 -69
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +180 -180
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +3 -3
- package/esm2022/lib/Pages/users/users.component.mjs +190 -190
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +176 -176
- package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +364 -364
- package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +67 -67
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +227 -227
- package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +31 -31
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +56 -56
- package/fesm2022/bnsights-bbsf-admin-portal.mjs +5187 -5187
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
- package/lib/Pages/ActiveDirectories/active-directories.component.d.ts +0 -1
- package/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.d.ts +2 -2
- package/lib/Pages/workflows/tabs/tabs.component.d.ts +1 -1
- package/package.json +3 -3
- package/esm2022/bnsights-test-test-admin-portal.mjs +0 -5
- package/fesm2022/bnsights-test-test-admin-portal.mjs +0 -27181
- package/fesm2022/bnsights-test-test-admin-portal.mjs.map +0 -1
|
@@ -91,16 +91,16 @@ export class DepartmentInfoComponent {
|
|
|
91
91
|
initializePage() {
|
|
92
92
|
// TextBox inti
|
|
93
93
|
this.searchTextBox = new TextBoxOptions();
|
|
94
|
-
this.searchTextBox.
|
|
95
|
-
this.searchTextBox.
|
|
96
|
-
this.searchTextBox.
|
|
97
|
-
this.searchTextBox.
|
|
94
|
+
this.searchTextBox.name = "searchTextBox";
|
|
95
|
+
this.searchTextBox.hideLabel = true;
|
|
96
|
+
this.searchTextBox.type = InputType.Text;
|
|
97
|
+
this.searchTextBox.placeholder = this.utilityService.getResourceValue("SearchByNameOrEmail");
|
|
98
98
|
this.DepartmentIdTextBox = new TextBoxOptions();
|
|
99
|
-
this.DepartmentIdTextBox.
|
|
100
|
-
this.DepartmentIdTextBox.
|
|
101
|
-
this.DepartmentIdTextBox.
|
|
102
|
-
this.DepartmentIdTextBox.
|
|
103
|
-
this.DepartmentIdTextBox.
|
|
99
|
+
this.DepartmentIdTextBox.name = "DepartmentIdTextBox";
|
|
100
|
+
this.DepartmentIdTextBox.labelKey = "DepartmentIdTextBox";
|
|
101
|
+
this.DepartmentIdTextBox.type = InputType.Text;
|
|
102
|
+
this.DepartmentIdTextBox.value = this.DepartmentId;
|
|
103
|
+
this.DepartmentIdTextBox.placeholder = this.utilityService.getResourceValue("SearchByName");
|
|
104
104
|
this.TextInputFilter = new FilterItem();
|
|
105
105
|
this.TextInputFilter.FormControlName = "searchTextBox";
|
|
106
106
|
this.TextInputFilter.ActionParameterName = "searchText";
|
|
@@ -112,14 +112,14 @@ export class DepartmentInfoComponent {
|
|
|
112
112
|
this.DepartmentIdTextInputFilter.IsFormControl = true;
|
|
113
113
|
this.DepartmentIdTextInputFilter.FilterType = FilterType.TextBox;
|
|
114
114
|
this.UserDepartmentPaging = new PagingOptions();
|
|
115
|
-
this.UserDepartmentPaging.
|
|
116
|
-
this.UserDepartmentPaging.
|
|
117
|
-
this.UserDepartmentPaging.
|
|
118
|
-
this.UserDepartmentPaging.
|
|
119
|
-
this.UserDepartmentPaging.
|
|
120
|
-
this.UserDepartmentPaging.
|
|
121
|
-
this.UserDepartmentPaging.
|
|
122
|
-
this.UserDepartmentPaging.
|
|
115
|
+
this.UserDepartmentPaging.actionPostURL = this.ApiUrl + 'GetUsersByFilter';
|
|
116
|
+
this.UserDepartmentPaging.onKeyPressFiltersControlNames = ["searchTextBox", "DepartmentIdTextBox"];
|
|
117
|
+
this.UserDepartmentPaging.filters = [this.TextInputFilter, this.DepartmentIdTextInputFilter];
|
|
118
|
+
this.UserDepartmentPaging.pageSize = 10;
|
|
119
|
+
this.UserDepartmentPaging.hidePaginationWhenPageSizeEqualOne = true;
|
|
120
|
+
this.UserDepartmentPaging.showPageSizeOption = true;
|
|
121
|
+
this.UserDepartmentPaging.showFirstAndLast = true;
|
|
122
|
+
this.UserDepartmentPaging.validationToken = this.authService.authorizationHeaderValue();
|
|
123
123
|
this.IsFilterLoaded = true;
|
|
124
124
|
}
|
|
125
125
|
//Add user to department
|
|
@@ -127,17 +127,17 @@ export class DepartmentInfoComponent {
|
|
|
127
127
|
this.utilityService.startBlockUI();
|
|
128
128
|
this.AddUsersToDepartmentForm = new FormGroup({});
|
|
129
129
|
this.AddUserToDepartmentFormOptions = new FormOptions();
|
|
130
|
-
this.AddUserToDepartmentFormOptions.
|
|
131
|
-
this.AddUserToDepartmentFormOptions.
|
|
132
|
-
this.AddUserToDepartmentFormOptions.
|
|
133
|
-
this.AddUserToDepartmentFormOptions.
|
|
130
|
+
this.AddUserToDepartmentFormOptions.formGroup = this.AddUsersToDepartmentForm;
|
|
131
|
+
this.AddUserToDepartmentFormOptions.getModelFunction = this.getAddUserToDepartmentModel;
|
|
132
|
+
this.AddUserToDepartmentFormOptions.serviceSubmitFunction = this.getAddUserToDepartmentFunction;
|
|
133
|
+
this.AddUserToDepartmentFormOptions.pagingReference = this.pagingElement;
|
|
134
134
|
this.UserAutoComplete = new TagsInputOptions();
|
|
135
|
-
this.UserAutoComplete.
|
|
136
|
-
this.UserAutoComplete.
|
|
137
|
-
this.UserAutoComplete.
|
|
138
|
-
this.UserAutoComplete.
|
|
139
|
-
this.UserAutoComplete.
|
|
140
|
-
this.UserAutoComplete.
|
|
135
|
+
this.UserAutoComplete.name = "UserAutoComplete";
|
|
136
|
+
this.UserAutoComplete.labelKey = "Users";
|
|
137
|
+
this.UserAutoComplete.isRequired = true;
|
|
138
|
+
this.UserAutoComplete.value = null;
|
|
139
|
+
this.UserAutoComplete.actionURL = this.ApiUrl + "AutoCompleteUserList";
|
|
140
|
+
this.UserAutoComplete.validationToken = this.authService.authorizationHeaderValue();
|
|
141
141
|
this.modalService.open(AddUserToDepartmentModal);
|
|
142
142
|
this.utilityService.stopBlockUI();
|
|
143
143
|
}
|
|
@@ -148,9 +148,9 @@ export class DepartmentInfoComponent {
|
|
|
148
148
|
let paramArray = [];
|
|
149
149
|
paramArray.push(this.deleteUserId);
|
|
150
150
|
this.DeleteConfirmationOptions = new ConfirmationModalOptions();
|
|
151
|
-
this.DeleteConfirmationOptions.
|
|
152
|
-
this.DeleteConfirmationOptions.
|
|
153
|
-
this.DeleteConfirmationOptions.
|
|
151
|
+
this.DeleteConfirmationOptions.serviceSubmitFunction = this.deleteUserFromDepartment;
|
|
152
|
+
this.DeleteConfirmationOptions.serviceSubmitModel = paramArray;
|
|
153
|
+
this.DeleteConfirmationOptions.pagingReference = this.pagingElement;
|
|
154
154
|
this.deleteControlLoaded = true;
|
|
155
155
|
setTimeout(() => {
|
|
156
156
|
this.ConfirmationModalControl.showModal();
|
|
@@ -170,7 +170,7 @@ export class DepartmentInfoComponent {
|
|
|
170
170
|
this.requestHandlerService.destroyHandler();
|
|
171
171
|
}
|
|
172
172
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: DepartmentInfoComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.UtilityService }, { token: i3.DepartmentService }, { token: i4.PageInfoService }, { token: i2.AuthService }, { token: i5.NgbModal }, { token: i2.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
173
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: DepartmentInfoComponent, selector: "lib-department-info", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["UserDepartmentPagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<!-- Page Content -->\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"IsFilterLoaded\">\r\n <BBSF-TextBox [hidden]=\"true\" [options]=\"DepartmentIdTextBox\" [group]=\"UserDepartmentForm\">\r\n </BBSF-TextBox>\r\n <!--(OnChange)=\"filterUserDepartmentList($event)\" -->\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"UserDepartmentForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\"\r\n (click)=\"showAddUserToDepartmentModal(AddUserToDepartmentModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!--begin::Permission list-->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Name\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Email\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Roles\")}}</th>\r\n <th class=\"min-w-50px\">{{utilityService.getResourceValue(\"Action\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n <tr *ngFor=\"let user of FilteredUserDepartmentPagingResult\">\r\n\r\n <td>\r\n <span class=\"text-dark\">{{user.userName}}</span>\r\n </td>\r\n <td>{{user.email}}</td>\r\n <td>{{user.userPermsets}}</td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\"\r\n class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteUserFromDepartmentModal(user.iD_GUID)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"FilteredUserDepartmentPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--end::Permission list-->\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setUserDepartmentListResult($event)\" *ngIf=\"IsFilterLoaded\" [options]=\"UserDepartmentPaging\"\r\n [group]=\"UserDepartmentForm\" #UserDepartmentPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!--add Modal-->\r\n<ng-template #AddUserToDepartmentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\"\r\n (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"Add\")}} {{utilityService.getResourceValue(\"User\")}} </h1>\r\n </div>\r\n <BBSF-Form [options]=\"AddUserToDepartmentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TagsInput [options]=\"UserAutoComplete\" [group]=\"AddUsersToDepartmentForm\">\r\n </BBSF-TagsInput>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseAddUsersToDepartment id=\"CloseAddUsersToDepartment\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3\" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"DeleteConfirmationOptions\" id=\"ConfirmationModalControl\"\r\n #ConfirmationModalControl></BBSF-ConfirmationModal>\r\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i8.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["
|
|
173
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: DepartmentInfoComponent, selector: "lib-department-info", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["UserDepartmentPagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<!-- Page Content -->\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"IsFilterLoaded\">\r\n <BBSF-TextBox [hidden]=\"true\" [options]=\"DepartmentIdTextBox\" [group]=\"UserDepartmentForm\">\r\n </BBSF-TextBox>\r\n <!--(OnChange)=\"filterUserDepartmentList($event)\" -->\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"UserDepartmentForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\"\r\n (click)=\"showAddUserToDepartmentModal(AddUserToDepartmentModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!--begin::Permission list-->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Name\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Email\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Roles\")}}</th>\r\n <th class=\"min-w-50px\">{{utilityService.getResourceValue(\"Action\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n <tr *ngFor=\"let user of FilteredUserDepartmentPagingResult\">\r\n\r\n <td>\r\n <span class=\"text-dark\">{{user.userName}}</span>\r\n </td>\r\n <td>{{user.email}}</td>\r\n <td>{{user.userPermsets}}</td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\"\r\n class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteUserFromDepartmentModal(user.iD_GUID)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"FilteredUserDepartmentPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <!--end::Permission list-->\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setUserDepartmentListResult($event)\" *ngIf=\"IsFilterLoaded\" [options]=\"UserDepartmentPaging\"\r\n [group]=\"UserDepartmentForm\" #UserDepartmentPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<!--add Modal-->\r\n<ng-template #AddUserToDepartmentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\"\r\n (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"Add\")}} {{utilityService.getResourceValue(\"User\")}} </h1>\r\n </div>\r\n <BBSF-Form [options]=\"AddUserToDepartmentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TagsInput [options]=\"UserAutoComplete\" [group]=\"AddUsersToDepartmentForm\">\r\n </BBSF-TagsInput>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseAddUsersToDepartment id=\"CloseAddUsersToDepartment\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3\" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"DeleteConfirmationOptions\" id=\"ConfirmationModalControl\"\r\n #ConfirmationModalControl></BBSF-ConfirmationModal>\r\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.BlockUIComponent, selector: "block-ui", inputs: ["name", "message", "delayStart", "delayStop", "template"] }, { kind: "component", type: i8.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i8.TagsInputComponent, selector: "BBSF-TagsInput", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i8.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { kind: "component", type: i8.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }, { kind: "component", type: i8.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { kind: "directive", type: i5.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i10.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "component", type: i11.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }] }); }
|
|
174
174
|
}
|
|
175
175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: DepartmentInfoComponent, decorators: [{
|
|
176
176
|
type: Component,
|
|
@@ -182,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
182
182
|
type: ViewChild,
|
|
183
183
|
args: ['ConfirmationModalControl', { static: false }]
|
|
184
184
|
}] } });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvZGVwYXJ0bWVudHMvZGVwYXJ0bWVudC1pbmZvL2RlcGFydG1lbnQtaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RlcGFydG1lbnRzL2RlcGFydG1lbnQtaW5mby9kZXBhcnRtZW50LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQThCLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBbUIsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pOLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFTbkgsTUFBTSxPQUFPLHVCQUF1QjtJQWlDbEMsWUFDVSxjQUE4QixFQUMvQixjQUE4QixFQUM3QixpQkFBb0MsRUFDcEMsZUFBZ0MsRUFDaEMsV0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIscUJBQTRDO1FBTjVDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixD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bnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgVGFnc0lucHV0T3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9EZXBhcnRtZW50TW9kZWxzL0RlcGFydG1lbnRNb2RlbCc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRVc2Vyc0lEUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9EZXBhcnRtZW50TW9kZWxzL0RlcGFydG1lbnRVc2Vyc0lEUmVxdWVzdE1vZGVsJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvRGVwYXJ0bWVudFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGVwYXJ0bWVudC1pbmZvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVwYXJ0bWVudC1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlcGFydG1lbnRJbmZvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBBcGlVcmwgPSB0aGlzLmRlcGFydG1lbnRTZXJ2aWNlLkFwaVVybFxyXG5cclxuICAvL1BhcmVudCBkZXBhcnRtZW50IGRhdGFcclxuICBEZXBhcnRtZW50SWQ6IHN0cmluZyA9IFwiXCJcclxuICBEZXBhcnRtZW50OiBEZXBhcnRtZW50TW9kZWwgPSBuZXcgRGVwYXJ0bWVudE1vZGVsKCk7XHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIFVzZXJEZXBhcnRtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIFRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBEZXBhcnRtZW50SWRUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICBEZXBhcnRtZW50SWRUZXh0SW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgSXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBVc2VyRGVwYXJ0bWVudFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBVc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBGaWx0ZXJlZFVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBAVmlld0NoaWxkKCdVc2VyRGVwYXJ0bWVudFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuXHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgQWRkVXNlcnNUb0RlcGFydG1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQWRkVXNlclRvRGVwYXJ0bWVudEZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIFVzZXJBdXRvQ29tcGxldGU6IFRhZ3NJbnB1dE9wdGlvbnM7XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZVVzZXJJZDogc3RyaW5nO1xyXG4gIERlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBkZWxldGVDb250cm9sTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRlcGFydG1lbnRTZXJ2aWNlOiBEZXBhcnRtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsXHJcblxyXG4gICkge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgIHRoaXMuRGVwYXJ0bWVudElkID0gcGFyYW1zWydpZCddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICB0aGlzLmxvYWRCcmVhZENydW1wRGF0YSgpO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0VXNlckRlcGFydG1lbnRMaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdFxyXG4gICAgdGhpcy5GaWx0ZXJlZFVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0ID0gdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdDtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKVxyXG4gIH1cclxuXHJcbiAgLy9HZXQgcGFyZW50IGRlcGFydG1lbnQgbmFtZSBhbmQgc2V0IHBhZ2UgdGl0bGUgYW5kIGJyZWFkY3J1bWJzXHJcbiAgbG9hZEJyZWFkQ3J1bXBEYXRhKCkge1xyXG4gICAgdGhpcy5kZXBhcnRtZW50U2VydmljZS5nZXREZXBhcnRtZW50SW5mbyh0aGlzLkRlcGFydG1lbnRJZCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IHJlc3VsdE1vZGVsID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gcmVzdWx0TW9kZWwudmFsLmRlcGFydG1lbnROYW1lO1xyXG4gICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVwYXJ0bWVudHNcIiksIHBhdGg6ICcvQWRtaW4vRGVwYXJ0bWVudHMvRGVwYXJ0bWVudHMnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgICBdO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgICAvL2luaXRpYWxpemUgcGFnZVxyXG4gICAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vSW5pdGlhbGl6ZSBmaWx0ZXJzIGFuZCBwYWdpbmdcclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIC8vIFRleHRCb3ggaW50aVxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guSGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LlR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LlBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lT3JFbWFpbFwiKTtcclxuXHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZFRleHRCb3ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuRGVwYXJ0bWVudElkVGV4dEJveC5OYW1lID0gXCJEZXBhcnRtZW50SWRUZXh0Qm94XCJcclxuICAgIHRoaXMuRGVwYXJ0bWVudElkVGV4dEJveC5MYWJlbEtleSA9IFwiRGVwYXJ0bWVudElkVGV4dEJveFwiXHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZFRleHRCb3guVHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZFRleHRCb3guVmFsdWUgPSB0aGlzLkRlcGFydG1lbnRJZDtcclxuICAgIHRoaXMuRGVwYXJ0bWVudElkVGV4dEJveC5QbGFjZWhvbGRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNlYXJjaEJ5TmFtZVwiKVxyXG5cclxuICAgIHRoaXMuVGV4dElucHV0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJzZWFyY2hUZXh0XCJcclxuICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgdGhpcy5EZXBhcnRtZW50SWRUZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5EZXBhcnRtZW50SWRUZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJEZXBhcnRtZW50SWRUZXh0Qm94XCJcclxuICAgIHRoaXMuRGVwYXJ0bWVudElkVGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImRlcGFydG1lbnRJZFwiXHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZFRleHRJbnB1dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5EZXBhcnRtZW50SWRUZXh0SW5wdXRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveFxyXG5cclxuXHJcbiAgICB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuVXNlckRlcGFydG1lbnRQYWdpbmcuQWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFVzZXJzQnlGaWx0ZXInO1xyXG4gICAgdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZy5PbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcInNlYXJjaFRleHRCb3hcIiwgXCJEZXBhcnRtZW50SWRUZXh0Qm94XCJdXHJcbiAgICB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nLkZpbHRlcnMgPSBbdGhpcy5UZXh0SW5wdXRGaWx0ZXIsIHRoaXMuRGVwYXJ0bWVudElkVGV4dElucHV0RmlsdGVyXVxyXG4gICAgdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZy5QYWdlU2l6ZSA9IDEwXHJcbiAgICB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nLkhpZGVQYWdpbmF0aW9uV2hlblBhZ2VTaXplRXF1YWxPbmUgPSB0cnVlXHJcbiAgICB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nLlNob3dQYWdlU2l6ZU9wdGlvbiA9IHRydWVcclxuICAgIHRoaXMuVXNlckRlcGFydG1lbnRQYWdpbmcuU2hvd0ZpcnN0QW5kTGFzdCA9IHRydWVcclxuICAgIHRoaXMuVXNlckRlcGFydG1lbnRQYWdpbmcuVmFsaWRhdGlvblRva2VuID0gdGhpcy5hdXRoU2VydmljZS5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKVxyXG5cclxuICAgIHRoaXMuSXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vQWRkIHVzZXIgdG8gZGVwYXJ0bWVudFxyXG4gIHNob3dBZGRVc2VyVG9EZXBhcnRtZW50TW9kYWwoQWRkVXNlclRvRGVwYXJ0bWVudE1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpXHJcblxyXG4gICAgdGhpcy5BZGRVc2Vyc1RvRGVwYXJ0bWVudEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KVxyXG4gICAgdGhpcy5BZGRVc2VyVG9EZXBhcnRtZW50Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkVXNlclRvRGVwYXJ0bWVudEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuQWRkVXNlcnNUb0RlcGFydG1lbnRGb3JtXHJcbiAgICB0aGlzLkFkZFVzZXJUb0RlcGFydG1lbnRGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRVc2VyVG9EZXBhcnRtZW50TW9kZWw7XHJcbiAgICB0aGlzLkFkZFVzZXJUb0RlcGFydG1lbnRGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZFVzZXJUb0RlcGFydG1lbnRGdW5jdGlvbjtcclxuICAgIHRoaXMuQWRkVXNlclRvRGVwYXJ0bWVudEZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMuVXNlckF1dG9Db21wbGV0ZSA9IG5ldyBUYWdzSW5wdXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLlVzZXJBdXRvQ29tcGxldGUuTmFtZSA9IFwiVXNlckF1dG9Db21wbGV0ZVwiO1xyXG4gICAgdGhpcy5Vc2VyQXV0b0NvbXBsZXRlLkxhYmVsS2V5ID0gXCJVc2Vyc1wiO1xyXG4gICAgdGhpcy5Vc2VyQXV0b0NvbXBsZXRlLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5Vc2VyQXV0b0NvbXBsZXRlLlZhbHVlID0gbnVsbDtcclxuICAgIHRoaXMuVXNlckF1dG9Db21wbGV0ZS5BY3Rpb25VUkwgPSB0aGlzLkFwaVVybCArIFwiQXV0b0NvbXBsZXRlVXNlckxpc3RcIlxyXG4gICAgdGhpcy5Vc2VyQXV0b0NvbXBsZXRlLlZhbGlkYXRpb25Ub2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKClcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkVXNlclRvRGVwYXJ0bWVudE1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBnZXRBZGRVc2VyVG9EZXBhcnRtZW50TW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuQWRkVXNlcnNUb0RlcGFydG1lbnRGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBBZGRNb2RlbDogRGVwYXJ0bWVudFVzZXJzSURSZXF1ZXN0TW9kZWwgPSBuZXcgRGVwYXJ0bWVudFVzZXJzSURSZXF1ZXN0TW9kZWwoKTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBSZXN1bHRNb2RlbC5Vc2VyQXV0b0NvbXBsZXRlLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBrZXkgPSBSZXN1bHRNb2RlbC5Vc2VyQXV0b0NvbXBsZXRlW2luZGV4XS5pZDtcclxuICAgICAgQWRkTW9kZWwuVXNlcnNJRHMucHVzaChrZXkpXHJcbiAgICB9XHJcbiAgICBBZGRNb2RlbC5EZXBhcnRtZW50SWQgPSB0aGlzLkRlcGFydG1lbnRJZDtcclxuICAgIHBhcmFtQXJyYXkucHVzaChBZGRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFkZFVzZXJUb0RlcGFydG1lbnRGdW5jdGlvbiA9IChBZGRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXBhcnRtZW50U2VydmljZS5hZGRVc2Vyc1RvRGVwYXJ0bWVudChBZGRNb2RlbClcclxuICB9XHJcblxyXG5cclxuICAvL0RlbGV0ZSB1c2VyIGZyb20gZGVwYXJ0bWVudFxyXG4gIHNob3dEZWxldGVVc2VyRnJvbURlcGFydG1lbnRNb2RhbChlbmNyeXB0ZWRVc2VySWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kZWxldGVVc2VySWQgPSBlbmNyeXB0ZWRVc2VySWQ7XHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5kZWxldGVVc2VySWQpO1xyXG5cclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucyA9IG5ldyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMoKTtcclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmRlbGV0ZVVzZXJGcm9tRGVwYXJ0bWVudDtcclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5TZXJ2aWNlU3VibWl0TW9kZWwgPSBwYXJhbUFycmF5O1xyXG4gICAgdGhpcy5EZWxldGVDb25maXJtYXRpb25PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbnRyb2xMb2FkZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dNb2RhbCgpO1xyXG4gICAgfSwgMjAwKTtcclxuXHJcbiAgfVxyXG5cclxuICBkZWxldGVVc2VyRnJvbURlcGFydG1lbnQgPSAoZGVsZXRlVXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVwYXJ0bWVudFNlcnZpY2UuZGVsZXRlVXNlckZyb21EZXBhcnRtZW50KGRlbGV0ZVVzZXJJZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqRnVuY3Rpb25OYW1lOmZpbHRlclVzZXJEZXBhcnRtZW50TGlzdCAqL1xyXG4gIC8qKkRlY2xhcmF0aW9uOmZ1bmN0aW9uIHRvIGZpbHRlciB1c2VyIERlcGFydG1lbnQgTGlzdCBpbiBjbGllbnQtc2lkZSAqL1xyXG4gIC8qKlBhcmFtZXRlcnM6Ki9cclxuICAvKipzZWFyY2hWYWx1ZTogY3VycmVudCB2YWx1ZSBvZiBzZWFyY2ggYm94Ki9cclxuICBmaWx0ZXJVc2VyRGVwYXJ0bWVudExpc3Qoc2VhcmNoVmFsdWUpIHtcclxuICAgIGlmIChzZWFyY2hWYWx1ZSlcclxuICAgICAgdGhpcy5GaWx0ZXJlZFVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0ID0gdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdC5maWx0ZXIoaXRlbSA9PiBpdGVtLnVzZXJOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLkZpbHRlcmVkVXNlckRlcGFydG1lbnRQYWdpbmdSZXN1bHQgPSB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG48IS0tIFBhZ2UgQ29udGVudCAtLT5cclxuPGRpdiAgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiSXNGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW2hpZGRlbl09XCJ0cnVlXCIgW29wdGlvbnNdPVwiRGVwYXJ0bWVudElkVGV4dEJveFwiIFtncm91cF09XCJVc2VyRGVwYXJ0bWVudEZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPCEtLShPbkNoYW5nZSk9XCJmaWx0ZXJVc2VyRGVwYXJ0bWVudExpc3QoJGV2ZW50KVwiIC0tPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgIFtncm91cF09XCJVc2VyRGVwYXJ0bWVudEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCJcclxuICAgICAgICAgIChjbGljayk9XCJzaG93QWRkVXNlclRvRGVwYXJ0bWVudE1vZGFsKEFkZFVzZXJUb0RlcGFydG1lbnRNb2RhbClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDwhLS0gZW5kOjpNZW51IC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgPCEtLWJlZ2luOjpQZXJtaXNzaW9uIGxpc3QtLT5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5hbWVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbWFpbFwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJvbGVzXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHVzZXIgb2YgRmlsdGVyZWRVc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFya1wiPnt7dXNlci51c2VyTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPnt7dXNlci5lbWFpbH19PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+e3t1c2VyLnVzZXJQZXJtc2V0c319PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbGxpcHNpcy1oXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlVXNlckZyb21EZXBhcnRtZW50TW9kYWwodXNlci5pRF9HVUlEKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJGaWx0ZXJlZFVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIDwhLS1lbmQ6OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFVzZXJEZXBhcnRtZW50TGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJJc0ZpbHRlckxvYWRlZFwiIFtvcHRpb25zXT1cIlVzZXJEZXBhcnRtZW50UGFnaW5nXCJcclxuICAgICAgICBbZ3JvdXBdPVwiVXNlckRlcGFydG1lbnRGb3JtXCIgI1VzZXJEZXBhcnRtZW50UGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS1hZGQgTW9kYWwtLT5cclxuPG5nLXRlbXBsYXRlICNBZGRVc2VyVG9EZXBhcnRtZW50TW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCJcclxuICAgICAgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPiB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJVc2VyXCIpfX0gPC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJBZGRVc2VyVG9EZXBhcnRtZW50Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLVRhZ3NJbnB1dCBbb3B0aW9uc109XCJVc2VyQXV0b0NvbXBsZXRlXCIgW2dyb3VwXT1cIkFkZFVzZXJzVG9EZXBhcnRtZW50Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLVRhZ3NJbnB1dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjQ2xvc2VBZGRVc2Vyc1RvRGVwYXJ0bWVudCBpZD1cIkNsb3NlQWRkVXNlcnNUb0RlcGFydG1lbnRcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gIG1lLTNcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJEZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4gICNDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPlxyXG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvZGVwYXJ0bWVudHMvZGVwYXJ0bWVudC1pbmZvL2RlcGFydG1lbnQtaW5mby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RlcGFydG1lbnRzL2RlcGFydG1lbnQtaW5mby9kZXBhcnRtZW50LWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQThCLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBbUIsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pOLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFTbkgsTUFBTSxPQUFPLHVCQUF1QjtJQWlDbEMsWUFDVSxjQUE4QixFQUMvQixjQUE4QixFQUM3QixpQkFBb0MsRUFDcEMsZUFBZ0MsRUFDaEMsV0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIscUJBQTRDO1FBTjVDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0Isc0JBQWlCLEdBQWpCLGlCQUFpQixD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bnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIFBhZ2luZ0NvbXBvbmVudCwgUGFnaW5nT3B0aW9ucywgVGFnc0lucHV0T3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9EZXBhcnRtZW50TW9kZWxzL0RlcGFydG1lbnRNb2RlbCc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRVc2Vyc0lEUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9EZXBhcnRtZW50TW9kZWxzL0RlcGFydG1lbnRVc2Vyc0lEUmVxdWVzdE1vZGVsJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvRGVwYXJ0bWVudFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGVwYXJ0bWVudC1pbmZvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVwYXJ0bWVudC1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlcGFydG1lbnRJbmZvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBBcGlVcmwgPSB0aGlzLmRlcGFydG1lbnRTZXJ2aWNlLkFwaVVybFxyXG5cclxuICAvL1BhcmVudCBkZXBhcnRtZW50IGRhdGFcclxuICBEZXBhcnRtZW50SWQ6IHN0cmluZyA9IFwiXCJcclxuICBEZXBhcnRtZW50OiBEZXBhcnRtZW50TW9kZWwgPSBuZXcgRGVwYXJ0bWVudE1vZGVsKCk7XHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIFVzZXJEZXBhcnRtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIFRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBEZXBhcnRtZW50SWRUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICBEZXBhcnRtZW50SWRUZXh0SW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgSXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBVc2VyRGVwYXJ0bWVudFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBVc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBGaWx0ZXJlZFVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBAVmlld0NoaWxkKCdVc2VyRGVwYXJ0bWVudFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuXHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgQWRkVXNlcnNUb0RlcGFydG1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQWRkVXNlclRvRGVwYXJ0bWVudEZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIFVzZXJBdXRvQ29tcGxldGU6IFRhZ3NJbnB1dE9wdGlvbnM7XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZVVzZXJJZDogc3RyaW5nO1xyXG4gIERlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBkZWxldGVDb250cm9sTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRlcGFydG1lbnRTZXJ2aWNlOiBEZXBhcnRtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsXHJcblxyXG4gICkge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgIHRoaXMuRGVwYXJ0bWVudElkID0gcGFyYW1zWydpZCddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICB0aGlzLmxvYWRCcmVhZENydW1wRGF0YSgpO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0VXNlckRlcGFydG1lbnRMaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdCA9IHJlc3VsdFxyXG4gICAgdGhpcy5GaWx0ZXJlZFVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0ID0gdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdDtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKVxyXG4gIH1cclxuXHJcbiAgLy9HZXQgcGFyZW50IGRlcGFydG1lbnQgbmFtZSBhbmQgc2V0IHBhZ2UgdGl0bGUgYW5kIGJyZWFkY3J1bWJzXHJcbiAgbG9hZEJyZWFkQ3J1bXBEYXRhKCkge1xyXG4gICAgdGhpcy5kZXBhcnRtZW50U2VydmljZS5nZXREZXBhcnRtZW50SW5mbyh0aGlzLkRlcGFydG1lbnRJZCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgbGV0IHJlc3VsdE1vZGVsID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gcmVzdWx0TW9kZWwudmFsLmRlcGFydG1lbnROYW1lO1xyXG4gICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVwYXJ0bWVudHNcIiksIHBhdGg6ICcvQWRtaW4vRGVwYXJ0bWVudHMvRGVwYXJ0bWVudHMnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgICBdO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgICAvL2luaXRpYWxpemUgcGFnZVxyXG4gICAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vSW5pdGlhbGl6ZSBmaWx0ZXJzIGFuZCBwYWdpbmdcclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIC8vIFRleHRCb3ggaW50aVxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3gubmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guaGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LnR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94LnBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lT3JFbWFpbFwiKTtcclxuXHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZFRleHRCb3ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuRGVwYXJ0bWVudElkVGV4dEJveC5uYW1lID0gXCJEZXBhcnRtZW50SWRUZXh0Qm94XCJcclxuICAgIHRoaXMuRGVwYXJ0bWVudElkVGV4dEJveC5sYWJlbEtleSA9IFwiRGVwYXJ0bWVudElkVGV4dEJveFwiXHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZFRleHRCb3gudHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZFRleHRCb3gudmFsdWUgPSB0aGlzLkRlcGFydG1lbnRJZDtcclxuICAgIHRoaXMuRGVwYXJ0bWVudElkVGV4dEJveC5wbGFjZWhvbGRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNlYXJjaEJ5TmFtZVwiKVxyXG5cclxuICAgIHRoaXMuVGV4dElucHV0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5BY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJzZWFyY2hUZXh0XCJcclxuICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLklzRm9ybUNvbnRyb2wgPSB0cnVlXHJcbiAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgdGhpcy5EZXBhcnRtZW50SWRUZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy5EZXBhcnRtZW50SWRUZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJEZXBhcnRtZW50SWRUZXh0Qm94XCJcclxuICAgIHRoaXMuRGVwYXJ0bWVudElkVGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcImRlcGFydG1lbnRJZFwiXHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZFRleHRJbnB1dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgdGhpcy5EZXBhcnRtZW50SWRUZXh0SW5wdXRGaWx0ZXIuRmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveFxyXG5cclxuXHJcbiAgICB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nID0gbmV3IFBhZ2luZ09wdGlvbnMoKTtcclxuICAgIHRoaXMuVXNlckRlcGFydG1lbnRQYWdpbmcuYWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldFVzZXJzQnlGaWx0ZXInO1xyXG4gICAgdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZy5vbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcInNlYXJjaFRleHRCb3hcIiwgXCJEZXBhcnRtZW50SWRUZXh0Qm94XCJdXHJcbiAgICB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nLmZpbHRlcnMgPSBbdGhpcy5UZXh0SW5wdXRGaWx0ZXIsIHRoaXMuRGVwYXJ0bWVudElkVGV4dElucHV0RmlsdGVyXVxyXG4gICAgdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZy5wYWdlU2l6ZSA9IDEwXHJcbiAgICB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nLmhpZGVQYWdpbmF0aW9uV2hlblBhZ2VTaXplRXF1YWxPbmUgPSB0cnVlXHJcbiAgICB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nLnNob3dQYWdlU2l6ZU9wdGlvbiA9IHRydWVcclxuICAgIHRoaXMuVXNlckRlcGFydG1lbnRQYWdpbmcuc2hvd0ZpcnN0QW5kTGFzdCA9IHRydWVcclxuICAgIHRoaXMuVXNlckRlcGFydG1lbnRQYWdpbmcudmFsaWRhdGlvblRva2VuID0gdGhpcy5hdXRoU2VydmljZS5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKVxyXG5cclxuICAgIHRoaXMuSXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vQWRkIHVzZXIgdG8gZGVwYXJ0bWVudFxyXG4gIHNob3dBZGRVc2VyVG9EZXBhcnRtZW50TW9kYWwoQWRkVXNlclRvRGVwYXJ0bWVudE1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpXHJcblxyXG4gICAgdGhpcy5BZGRVc2Vyc1RvRGVwYXJ0bWVudEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KVxyXG4gICAgdGhpcy5BZGRVc2VyVG9EZXBhcnRtZW50Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkVXNlclRvRGVwYXJ0bWVudEZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMuQWRkVXNlcnNUb0RlcGFydG1lbnRGb3JtXHJcbiAgICB0aGlzLkFkZFVzZXJUb0RlcGFydG1lbnRGb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRVc2VyVG9EZXBhcnRtZW50TW9kZWw7XHJcbiAgICB0aGlzLkFkZFVzZXJUb0RlcGFydG1lbnRGb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZFVzZXJUb0RlcGFydG1lbnRGdW5jdGlvbjtcclxuICAgIHRoaXMuQWRkVXNlclRvRGVwYXJ0bWVudEZvcm1PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMuVXNlckF1dG9Db21wbGV0ZSA9IG5ldyBUYWdzSW5wdXRPcHRpb25zKCk7XHJcbiAgICB0aGlzLlVzZXJBdXRvQ29tcGxldGUubmFtZSA9IFwiVXNlckF1dG9Db21wbGV0ZVwiO1xyXG4gICAgdGhpcy5Vc2VyQXV0b0NvbXBsZXRlLmxhYmVsS2V5ID0gXCJVc2Vyc1wiO1xyXG4gICAgdGhpcy5Vc2VyQXV0b0NvbXBsZXRlLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5Vc2VyQXV0b0NvbXBsZXRlLnZhbHVlID0gbnVsbDtcclxuICAgIHRoaXMuVXNlckF1dG9Db21wbGV0ZS5hY3Rpb25VUkwgPSB0aGlzLkFwaVVybCArIFwiQXV0b0NvbXBsZXRlVXNlckxpc3RcIlxyXG4gICAgdGhpcy5Vc2VyQXV0b0NvbXBsZXRlLnZhbGlkYXRpb25Ub2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKClcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQWRkVXNlclRvRGVwYXJ0bWVudE1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBnZXRBZGRVc2VyVG9EZXBhcnRtZW50TW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuQWRkVXNlcnNUb0RlcGFydG1lbnRGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBBZGRNb2RlbDogRGVwYXJ0bWVudFVzZXJzSURSZXF1ZXN0TW9kZWwgPSBuZXcgRGVwYXJ0bWVudFVzZXJzSURSZXF1ZXN0TW9kZWwoKTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBSZXN1bHRNb2RlbC5Vc2VyQXV0b0NvbXBsZXRlLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBjb25zdCBrZXkgPSBSZXN1bHRNb2RlbC5Vc2VyQXV0b0NvbXBsZXRlW2luZGV4XS5pZDtcclxuICAgICAgQWRkTW9kZWwuVXNlcnNJRHMucHVzaChrZXkpXHJcbiAgICB9XHJcbiAgICBBZGRNb2RlbC5EZXBhcnRtZW50SWQgPSB0aGlzLkRlcGFydG1lbnRJZDtcclxuICAgIHBhcmFtQXJyYXkucHVzaChBZGRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFkZFVzZXJUb0RlcGFydG1lbnRGdW5jdGlvbiA9IChBZGRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXBhcnRtZW50U2VydmljZS5hZGRVc2Vyc1RvRGVwYXJ0bWVudChBZGRNb2RlbClcclxuICB9XHJcblxyXG5cclxuICAvL0RlbGV0ZSB1c2VyIGZyb20gZGVwYXJ0bWVudFxyXG4gIHNob3dEZWxldGVVc2VyRnJvbURlcGFydG1lbnRNb2RhbChlbmNyeXB0ZWRVc2VySWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kZWxldGVVc2VySWQgPSBlbmNyeXB0ZWRVc2VySWQ7XHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5kZWxldGVVc2VySWQpO1xyXG5cclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucyA9IG5ldyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMoKTtcclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmRlbGV0ZVVzZXJGcm9tRGVwYXJ0bWVudDtcclxuICAgIHRoaXMuRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5zZXJ2aWNlU3VibWl0TW9kZWwgPSBwYXJhbUFycmF5O1xyXG4gICAgdGhpcy5EZWxldGVDb25maXJtYXRpb25PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbnRyb2xMb2FkZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dNb2RhbCgpO1xyXG4gICAgfSwgMjAwKTtcclxuXHJcbiAgfVxyXG5cclxuICBkZWxldGVVc2VyRnJvbURlcGFydG1lbnQgPSAoZGVsZXRlVXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVwYXJ0bWVudFNlcnZpY2UuZGVsZXRlVXNlckZyb21EZXBhcnRtZW50KGRlbGV0ZVVzZXJJZCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqRnVuY3Rpb25OYW1lOmZpbHRlclVzZXJEZXBhcnRtZW50TGlzdCAqL1xyXG4gIC8qKkRlY2xhcmF0aW9uOmZ1bmN0aW9uIHRvIGZpbHRlciB1c2VyIERlcGFydG1lbnQgTGlzdCBpbiBjbGllbnQtc2lkZSAqL1xyXG4gIC8qKlBhcmFtZXRlcnM6Ki9cclxuICAvKipzZWFyY2hWYWx1ZTogY3VycmVudCB2YWx1ZSBvZiBzZWFyY2ggYm94Ki9cclxuICBmaWx0ZXJVc2VyRGVwYXJ0bWVudExpc3Qoc2VhcmNoVmFsdWUpIHtcclxuICAgIGlmIChzZWFyY2hWYWx1ZSlcclxuICAgICAgdGhpcy5GaWx0ZXJlZFVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0ID0gdGhpcy5Vc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdC5maWx0ZXIoaXRlbSA9PiBpdGVtLnVzZXJOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSkpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLkZpbHRlcmVkVXNlckRlcGFydG1lbnRQYWdpbmdSZXN1bHQgPSB0aGlzLlVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG48IS0tIFBhZ2UgQ29udGVudCAtLT5cclxuPGRpdiAgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiSXNGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW2hpZGRlbl09XCJ0cnVlXCIgW29wdGlvbnNdPVwiRGVwYXJ0bWVudElkVGV4dEJveFwiIFtncm91cF09XCJVc2VyRGVwYXJ0bWVudEZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPCEtLShPbkNoYW5nZSk9XCJmaWx0ZXJVc2VyRGVwYXJ0bWVudExpc3QoJGV2ZW50KVwiIC0tPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJzZWFyY2hUZXh0Qm94XCIgIFtncm91cF09XCJVc2VyRGVwYXJ0bWVudEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCJcclxuICAgICAgICAgIChjbGljayk9XCJzaG93QWRkVXNlclRvRGVwYXJ0bWVudE1vZGFsKEFkZFVzZXJUb0RlcGFydG1lbnRNb2RhbClcIj5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXMgbWUtMVwiPjwvaT5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDwhLS0gZW5kOjpNZW51IC0tPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgPCEtLWJlZ2luOjpQZXJtaXNzaW9uIGxpc3QtLT5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbGlnbi1taWRkbGUgdGFibGUtcm93LWRhc2hlZCBmcy02IGd5LTUgZGF0YVRhYmxlIG5vLWZvb3RlclwiPlxyXG4gICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5hbWVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbWFpbFwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJvbGVzXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcblxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHVzZXIgb2YgRmlsdGVyZWRVc2VyRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFya1wiPnt7dXNlci51c2VyTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPnt7dXNlci5lbWFpbH19PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+e3t1c2VyLnVzZXJQZXJtc2V0c319PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1lbGxpcHNpcy1oXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlVXNlckZyb21EZXBhcnRtZW50TW9kYWwodXNlci5pRF9HVUlEKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJGaWx0ZXJlZFVzZXJEZXBhcnRtZW50UGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIDwhLS1lbmQ6OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldFVzZXJEZXBhcnRtZW50TGlzdFJlc3VsdCgkZXZlbnQpXCIgKm5nSWY9XCJJc0ZpbHRlckxvYWRlZFwiIFtvcHRpb25zXT1cIlVzZXJEZXBhcnRtZW50UGFnaW5nXCJcclxuICAgICAgICBbZ3JvdXBdPVwiVXNlckRlcGFydG1lbnRGb3JtXCIgI1VzZXJEZXBhcnRtZW50UGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS1hZGQgTW9kYWwtLT5cclxuPG5nLXRlbXBsYXRlICNBZGRVc2VyVG9EZXBhcnRtZW50TW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCJcclxuICAgICAgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPiB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJVc2VyXCIpfX0gPC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJBZGRVc2VyVG9EZXBhcnRtZW50Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLVRhZ3NJbnB1dCBbb3B0aW9uc109XCJVc2VyQXV0b0NvbXBsZXRlXCIgW2dyb3VwXT1cIkFkZFVzZXJzVG9EZXBhcnRtZW50Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLVRhZ3NJbnB1dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjQ2xvc2VBZGRVc2Vyc1RvRGVwYXJ0bWVudCBpZD1cIkNsb3NlQWRkVXNlcnNUb0RlcGFydG1lbnRcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gIG1lLTNcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJEZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIlxyXG4gICNDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPlxyXG4iXX0=
|
|
@@ -25,14 +25,14 @@ export class AddDocumentComponent {
|
|
|
25
25
|
let paramArray = [];
|
|
26
26
|
let ResultModel = this.addForm.value;
|
|
27
27
|
let AddModel = new DocumentHeaderAndFooterTemplate();
|
|
28
|
-
AddModel.Name.
|
|
29
|
-
AddModel.Name.
|
|
30
|
-
AddModel.Header.
|
|
31
|
-
AddModel.Header.
|
|
32
|
-
AddModel.Footer.
|
|
33
|
-
AddModel.Footer.
|
|
34
|
-
AddModel.HeadContent.
|
|
35
|
-
AddModel.HeadContent.
|
|
28
|
+
AddModel.Name.english = ResultModel.Name.English;
|
|
29
|
+
AddModel.Name.arabic = ResultModel.Name.Arabic;
|
|
30
|
+
AddModel.Header.english = ResultModel.Header.English;
|
|
31
|
+
AddModel.Header.arabic = ResultModel.Header.Arabic;
|
|
32
|
+
AddModel.Footer.english = ResultModel.Footer.English;
|
|
33
|
+
AddModel.Footer.arabic = ResultModel.Footer.Arabic;
|
|
34
|
+
AddModel.HeadContent.english = ResultModel.HTMLHeadContent.English;
|
|
35
|
+
AddModel.HeadContent.arabic = ResultModel.HTMLHeadContent.Arabic;
|
|
36
36
|
AddModel.TOP = ResultModel.Top;
|
|
37
37
|
AddModel.Bottom = ResultModel.Bottom;
|
|
38
38
|
AddModel.Left = ResultModel.Left;
|
|
@@ -63,60 +63,60 @@ export class AddDocumentComponent {
|
|
|
63
63
|
initializePage() {
|
|
64
64
|
this.addForm = new FormGroup({});
|
|
65
65
|
this.addFormOptions = new FormOptions();
|
|
66
|
-
this.addFormOptions.
|
|
67
|
-
this.addFormOptions.
|
|
68
|
-
this.addFormOptions.
|
|
69
|
-
this.addFormOptions.
|
|
66
|
+
this.addFormOptions.formGroup = this.addForm;
|
|
67
|
+
this.addFormOptions.getModelFunction = this.getAddModel;
|
|
68
|
+
this.addFormOptions.serviceSubmitFunction = this.getAddFunction;
|
|
69
|
+
this.addFormOptions.onSuccessHandler = this.onAddSuccess;
|
|
70
70
|
this.multiLingualName = new MultiLingualTextBoxOptions();
|
|
71
|
-
this.multiLingualName.
|
|
72
|
-
this.multiLingualName.
|
|
73
|
-
this.multiLingualName.
|
|
74
|
-
this.multiLingualName.
|
|
75
|
-
this.multiLingualName.
|
|
71
|
+
this.multiLingualName.name = "Name";
|
|
72
|
+
this.multiLingualName.arabicLabelKey = "NameInArabic";
|
|
73
|
+
this.multiLingualName.englishLabelKey = "NameInEnglish";
|
|
74
|
+
this.multiLingualName.isRequired = true;
|
|
75
|
+
this.multiLingualName.maxLength = 100;
|
|
76
76
|
this.multiLingualHeader = new MultiLingualHtmlEditorOptions();
|
|
77
|
-
this.multiLingualHeader.
|
|
78
|
-
this.multiLingualHeader.
|
|
79
|
-
this.multiLingualHeader.
|
|
80
|
-
this.multiLingualHeader.
|
|
77
|
+
this.multiLingualHeader.name = "Header";
|
|
78
|
+
this.multiLingualHeader.arabicLabelKey = "HeaderInArabic";
|
|
79
|
+
this.multiLingualHeader.englishLabelKey = "HeaderInEnglish";
|
|
80
|
+
this.multiLingualHeader.isRequired = true;
|
|
81
81
|
this.multiLingualFooter = new MultiLingualHtmlEditorOptions();
|
|
82
|
-
this.multiLingualFooter.
|
|
83
|
-
this.multiLingualFooter.
|
|
84
|
-
this.multiLingualFooter.
|
|
85
|
-
this.multiLingualFooter.
|
|
82
|
+
this.multiLingualFooter.name = "Footer";
|
|
83
|
+
this.multiLingualFooter.arabicLabelKey = "FooterInArabic";
|
|
84
|
+
this.multiLingualFooter.englishLabelKey = "FooterInEnglish";
|
|
85
|
+
this.multiLingualFooter.isRequired = true;
|
|
86
86
|
this.multiLingualHeadContent = new MultiLingualHtmlEditorOptions();
|
|
87
|
-
this.multiLingualHeadContent.
|
|
88
|
-
this.multiLingualHeadContent.
|
|
89
|
-
this.multiLingualHeadContent.
|
|
87
|
+
this.multiLingualHeadContent.name = "HTMLHeadContent";
|
|
88
|
+
this.multiLingualHeadContent.arabicLabelKey = "HTMLHeadContentInArabic";
|
|
89
|
+
this.multiLingualHeadContent.englishLabelKey = "HTMLHeadContentInEnglish";
|
|
90
90
|
this.AddTop = new TextBoxOptions();
|
|
91
|
-
this.AddTop.
|
|
92
|
-
this.AddTop.
|
|
93
|
-
this.AddTop.
|
|
91
|
+
this.AddTop.name = 'Top';
|
|
92
|
+
this.AddTop.labelKey = 'Top';
|
|
93
|
+
this.AddTop.type = InputType.Number;
|
|
94
94
|
this.AddBottom = new TextBoxOptions();
|
|
95
|
-
this.AddBottom.
|
|
96
|
-
this.AddBottom.
|
|
97
|
-
this.AddBottom.
|
|
95
|
+
this.AddBottom.name = 'Bottom';
|
|
96
|
+
this.AddBottom.labelKey = 'Bottom';
|
|
97
|
+
this.AddBottom.type = InputType.Number;
|
|
98
98
|
this.AddLeft = new TextBoxOptions();
|
|
99
|
-
this.AddLeft.
|
|
100
|
-
this.AddLeft.
|
|
101
|
-
this.AddLeft.
|
|
99
|
+
this.AddLeft.name = 'Left';
|
|
100
|
+
this.AddLeft.labelKey = 'Left';
|
|
101
|
+
this.AddLeft.type = InputType.Number;
|
|
102
102
|
this.AddRight = new TextBoxOptions();
|
|
103
|
-
this.AddRight.
|
|
104
|
-
this.AddRight.
|
|
105
|
-
this.AddRight.
|
|
103
|
+
this.AddRight.name = 'Right';
|
|
104
|
+
this.AddRight.labelKey = 'Right';
|
|
105
|
+
this.AddRight.type = InputType.Number;
|
|
106
106
|
this.AddPageHeight = new TextBoxOptions();
|
|
107
|
-
this.AddPageHeight.
|
|
108
|
-
this.AddPageHeight.
|
|
109
|
-
this.AddPageHeight.
|
|
107
|
+
this.AddPageHeight.name = 'PageHeight';
|
|
108
|
+
this.AddPageHeight.labelKey = 'PageHeight';
|
|
109
|
+
this.AddPageHeight.type = InputType.Number;
|
|
110
110
|
this.AddPageWidth = new TextBoxOptions();
|
|
111
|
-
this.AddPageWidth.
|
|
112
|
-
this.AddPageWidth.
|
|
113
|
-
this.AddPageWidth.
|
|
111
|
+
this.AddPageWidth.name = 'PageWidth';
|
|
112
|
+
this.AddPageWidth.labelKey = 'PageWidth';
|
|
113
|
+
this.AddPageWidth.type = InputType.Number;
|
|
114
114
|
this.AddIsLandscape = new CheckBoxOptions();
|
|
115
|
-
this.AddIsLandscape.
|
|
116
|
-
this.AddIsLandscape.
|
|
115
|
+
this.AddIsLandscape.name = 'IsLandscape';
|
|
116
|
+
this.AddIsLandscape.labelKey = 'Landscape';
|
|
117
117
|
this.AddShowPaging = new CheckBoxOptions();
|
|
118
|
-
this.AddShowPaging.
|
|
119
|
-
this.AddShowPaging.
|
|
118
|
+
this.AddShowPaging.name = 'ShowPaging';
|
|
119
|
+
this.AddShowPaging.labelKey = 'ShowPaging';
|
|
120
120
|
this.showPageContent = true;
|
|
121
121
|
}
|
|
122
122
|
cancelAdd() {
|
|
@@ -127,10 +127,10 @@ export class AddDocumentComponent {
|
|
|
127
127
|
this.requestHandlerService.destroyHandler();
|
|
128
128
|
}
|
|
129
129
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AddDocumentComponent, deps: [{ token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i2.DocumentHeaderAndFooterTemplateService }, { token: i3.Router }, { token: i1.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AddDocumentComponent, selector: "lib-add-document", ngImport: i0, template: "\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\" *ngIf=\"showPageContent\">\r\n <!-- begin::Body -->\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"addFormOptions\">\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualHeader\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualFooter\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualHeadContent\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <h2> {{utilityService.getResourceValue(\"Options\")}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddTop\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddBottom\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddLeft\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddRight\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddPageHeight\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddPageWidth\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-CheckBox [options]=\"AddIsLandscape\" [group]=\"addForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-CheckBox [options]=\"AddShowPaging\" [group]=\"addForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelAdd()\">{{utilityService.getResourceValue(\"CancelLabel\")}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm \">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </div>\r\n </div>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["
|
|
130
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AddDocumentComponent, selector: "lib-add-document", ngImport: i0, template: "\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\" *ngIf=\"showPageContent\">\r\n <!-- begin::Body -->\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"addFormOptions\">\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualHeader\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualFooter\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualHeadContent\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <h2> {{utilityService.getResourceValue(\"Options\")}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddTop\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddBottom\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddLeft\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddRight\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddPageHeight\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddPageWidth\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-CheckBox [options]=\"AddIsLandscape\" [group]=\"addForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-CheckBox [options]=\"AddShowPaging\" [group]=\"addForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelAdd()\">{{utilityService.getResourceValue(\"CancelLabel\")}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm \">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </div>\r\n </div>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i5.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i5.CheckBoxComponent, selector: "BBSF-CheckBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i5.MultiLingualHtmlEditorComponent, selector: "BBSF-MultiLingualHtmlEditor", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i5.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }] }); }
|
|
131
131
|
}
|
|
132
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AddDocumentComponent, decorators: [{
|
|
133
133
|
type: Component,
|
|
134
134
|
args: [{ selector: 'lib-add-document', template: "\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\" *ngIf=\"showPageContent\">\r\n <!-- begin::Body -->\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"addFormOptions\">\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"multiLingualName\" [group]=\"addForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualHeader\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualFooter\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"multiLingualHeadContent\" [group]=\"addForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <h2> {{utilityService.getResourceValue(\"Options\")}}</h2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddTop\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddBottom\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddLeft\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddRight\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddPageHeight\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"AddPageWidth\" [group]=\"addForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-CheckBox [options]=\"AddIsLandscape\" [group]=\"addForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-CheckBox [options]=\"AddShowPaging\" [group]=\"addForm\">\r\n </BBSF-CheckBox>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelAdd()\">{{utilityService.getResourceValue(\"CancelLabel\")}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm \">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </div>\r\n </div>\r\n" }]
|
|
135
135
|
}], ctorParameters: () => [{ type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i2.DocumentHeaderAndFooterTemplateService }, { type: i3.Router }, { type: i1.RequestHandlerService }] });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvZG9jdW1lbnRzL2FkZC1kb2N1bWVudC9hZGQtZG9jdW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvYWRkLWRvY3VtZW50L2FkZC1kb2N1bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0osT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBSXJGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOzs7Ozs7O0FBTXRILE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLFlBQW1CLGNBQThCLEVBQVUsb0JBQTBDLEVBQzNGLHNDQUE4RSxFQUFVLE1BQWMsRUFDdEcscUJBQTRDO1FBRm5DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDM0YsMkNBQXNDLEdBQXRDLHNDQUFzQyxDQUF3QztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDdEcsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQXBCdEQsbUJBQW1CO1FBQ25CLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9CQUFvQjtRQUNwQixZ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LENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsWUFBWTtJQUNaLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0F4SlUsb0JBQW9CO2tHQUFwQixvQkFBb0Isd0RDZGpDLGt3R0FvRkE7OzJGRHRFYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDaGVja0JveE9wdGlvbnMsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UsIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0RvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0RvY3VtZW50c01vZGVscy9Eb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkZC1kb2N1bWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1kb2N1bWVudC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZERvY3VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgc2hvd1BhZ2VDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGFkZEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zO1xyXG4gIG11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgbXVsdGlMaW5ndWFsSGVhZGVyOiBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9uc1xyXG4gIG11bHRpTGluZ3VhbEZvb3RlcjogTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnNcclxuICBtdWx0aUxpbmd1YWxIZWFkQ29udGVudDogTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnNcclxuICBBZGRUb3A6IFRleHRCb3hPcHRpb25zO1xyXG4gIEFkZEJvdHRvbTogVGV4dEJveE9wdGlvbnM7XHJcbiAgQWRkTGVmdDogVGV4dEJveE9wdGlvbnM7XHJcbiAgQWRkUmlnaHQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIEFkZFBhZ2VIZWlnaHQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIEFkZFBhZ2VXaWR0aDogVGV4dEJveE9wdGlvbnM7XHJcbiAgQWRkSXNMYW5kc2NhcGU6IENoZWNrQm94T3B0aW9ucztcclxuICBBZGRTaG93UGFnaW5nOiBDaGVja0JveE9wdGlvbnM7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlOiBEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSBcIlwiXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9Jbml0aWFsaXplIGFkZCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcblxyXG4gICAgdGhpcy5hZGRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLmFkZEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuYWRkRm9ybVxyXG4gICAgdGhpcy5hZGRGb3JtT3B0aW9ucy5HZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRNb2RlbDtcclxuICAgIHRoaXMuYWRkRm9ybU9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRGdW5jdGlvbjtcclxuICAgIHRoaXMuYWRkRm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25BZGRTdWNjZXNzO1xyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLk5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5BcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuRW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZGVyID0gbmV3IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbEhlYWRlci5OYW1lID0gXCJIZWFkZXJcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZGVyLkFyYWJpY0xhYmVsS2V5ID0gXCJIZWFkZXJJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxIZWFkZXIuRW5nbGlzaExhYmVsS2V5ID0gXCJIZWFkZXJJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZGVyLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRm9vdGVyID0gbmV3IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbEZvb3Rlci5OYW1lID0gXCJGb290ZXJcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRm9vdGVyLkFyYWJpY0xhYmVsS2V5ID0gXCJGb290ZXJJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxGb290ZXIuRW5nbGlzaExhYmVsS2V5ID0gXCJGb290ZXJJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRm9vdGVyLklzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZENvbnRlbnQgPSBuZXcgTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnMoKTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZENvbnRlbnQuTmFtZSA9IFwiSFRNTEhlYWRDb250ZW50XCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbEhlYWRDb250ZW50LkFyYWJpY0xhYmVsS2V5ID0gXCJIVE1MSGVhZENvbnRlbnRJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxIZWFkQ29udGVudC5FbmdsaXNoTGFiZWxLZXkgPSBcIkhUTUxIZWFkQ29udGVudEluRW5nbGlzaFwiO1xyXG5cclxuICAgIHRoaXMuQWRkVG9wID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZFRvcC5OYW1lID0gJ1RvcCc7XHJcbiAgICB0aGlzLkFkZFRvcC5MYWJlbEtleSA9ICdUb3AnO1xyXG4gICAgdGhpcy5BZGRUb3AuVHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcblxyXG4gICAgdGhpcy5BZGRCb3R0b20gPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkQm90dG9tLk5hbWUgPSAnQm90dG9tJztcclxuICAgIHRoaXMuQWRkQm90dG9tLkxhYmVsS2V5ID0gJ0JvdHRvbSc7XHJcbiAgICB0aGlzLkFkZEJvdHRvbS5UeXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuXHJcbiAgICB0aGlzLkFkZExlZnQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkTGVmdC5OYW1lID0gJ0xlZnQnO1xyXG4gICAgdGhpcy5BZGRMZWZ0LkxhYmVsS2V5ID0gJ0xlZnQnO1xyXG4gICAgdGhpcy5BZGRMZWZ0LlR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG5cclxuICAgIHRoaXMuQWRkUmlnaHQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkUmlnaHQuTmFtZSA9ICdSaWdodCc7XHJcbiAgICB0aGlzLkFkZFJpZ2h0LkxhYmVsS2V5ID0gJ1JpZ2h0JztcclxuICAgIHRoaXMuQWRkUmlnaHQuVHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcblxyXG4gICAgdGhpcy5BZGRQYWdlSGVpZ2h0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZFBhZ2VIZWlnaHQuTmFtZSA9ICdQYWdlSGVpZ2h0JztcclxuICAgIHRoaXMuQWRkUGFnZUhlaWdodC5MYWJlbEtleSA9ICdQYWdlSGVpZ2h0JztcclxuICAgIHRoaXMuQWRkUGFnZUhlaWdodC5UeXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuXHJcbiAgICB0aGlzLkFkZFBhZ2VXaWR0aCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5BZGRQYWdlV2lkdGguTmFtZSA9ICdQYWdlV2lkdGgnO1xyXG4gICAgdGhpcy5BZGRQYWdlV2lkdGguTGFiZWxLZXkgPSAnUGFnZVdpZHRoJztcclxuICAgIHRoaXMuQWRkUGFnZVdpZHRoLlR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG5cclxuICAgIHRoaXMuQWRkSXNMYW5kc2NhcGUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZElzTGFuZHNjYXBlLk5hbWUgPSAnSXNMYW5kc2NhcGUnO1xyXG4gICAgdGhpcy5BZGRJc0xhbmRzY2FwZS5MYWJlbEtleSA9ICdMYW5kc2NhcGUnO1xyXG5cclxuICAgIHRoaXMuQWRkU2hvd1BhZ2luZyA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkU2hvd1BhZ2luZy5OYW1lID0gJ1Nob3dQYWdpbmcnO1xyXG4gICAgdGhpcy5BZGRTaG93UGFnaW5nLkxhYmVsS2V5ID0gJ1Nob3dQYWdpbmcnO1xyXG5cclxuXHJcbiAgICB0aGlzLnNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5hZGRGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBBZGRNb2RlbCA9IG5ldyBEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlKCk7XHJcbiAgICBBZGRNb2RlbC5OYW1lLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2hcclxuICAgIEFkZE1vZGVsLk5hbWUuQXJhYmljID0gUmVzdWx0TW9kZWwuTmFtZS5BcmFiaWNcclxuICAgIEFkZE1vZGVsLkhlYWRlci5FbmdsaXNoID0gUmVzdWx0TW9kZWwuSGVhZGVyLkVuZ2xpc2hcclxuICAgIEFkZE1vZGVsLkhlYWRlci5BcmFiaWMgPSBSZXN1bHRNb2RlbC5IZWFkZXIuQXJhYmljXHJcbiAgICBBZGRNb2RlbC5Gb290ZXIuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkZvb3Rlci5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5Gb290ZXIuQXJhYmljID0gUmVzdWx0TW9kZWwuRm9vdGVyLkFyYWJpY1xyXG4gICAgQWRkTW9kZWwuSGVhZENvbnRlbnQuRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkhUTUxIZWFkQ29udGVudC5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5IZWFkQ29udGVudC5BcmFiaWMgPSBSZXN1bHRNb2RlbC5IVE1MSGVhZENvbnRlbnQuQXJhYmljXHJcbiAgICBBZGRNb2RlbC5UT1AgPSBSZXN1bHRNb2RlbC5Ub3A7XHJcbiAgICBBZGRNb2RlbC5Cb3R0b20gPSBSZXN1bHRNb2RlbC5Cb3R0b207XHJcbiAgICBBZGRNb2RlbC5MZWZ0ID0gUmVzdWx0TW9kZWwuTGVmdDtcclxuICAgIEFkZE1vZGVsLlJpZ2h0ID0gUmVzdWx0TW9kZWwuUmlnaHQ7XHJcbiAgICBBZGRNb2RlbC5QYWdlSGVpZ2h0ID0gUmVzdWx0TW9kZWwuUGFnZUhlaWdodDtcclxuICAgIEFkZE1vZGVsLlBhZ2VXaWR0aCA9IFJlc3VsdE1vZGVsLlBhZ2VXaWR0aDtcclxuICAgIEFkZE1vZGVsLklzTGFuZHNjYXBlID0gUmVzdWx0TW9kZWwuSXNMYW5kc2NhcGU7XHJcbiAgICBBZGRNb2RlbC5TaG93UGFnaW5nID0gUmVzdWx0TW9kZWwuU2hvd1BhZ2luZztcclxuICAgIHBhcmFtQXJyYXkucHVzaChBZGRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFkZEZ1bmN0aW9uID0gKEFkZE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlLmFkZERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUoQWRkTW9kZWwpXHJcbiAgfVxyXG5cclxuICBvbkFkZFN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICB0aGlzLmNhbmNlbEFkZCgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsQWRkKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vRG9jdW1lbnRzL01hc3RlckxheW91dHMnXSk7XHJcbiAgfVxyXG5cclxuICAvL09uIGRlc3Ryb3lcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIiAqbmdJZj1cInNob3dQYWdlQ29udGVudFwiPlxyXG4gICAgPCEtLSBiZWdpbjo6Qm9keSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJhZGRGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJhZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yIFtvcHRpb25zXT1cIm11bHRpTGluZ3VhbEhlYWRlclwiIFtncm91cF09XCJhZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgdGFibGUtZGFyay1za2luXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3IgW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsRm9vdGVyXCIgW2dyb3VwXT1cImFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiB0YWJsZS1kYXJrLXNraW5cIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvciBbb3B0aW9uc109XCJtdWx0aUxpbmd1YWxIZWFkQ29udGVudFwiIFtncm91cF09XCJhZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxoMj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiT3B0aW9uc1wiKX19PC9oMj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJBZGRUb3BcIiBbZ3JvdXBdPVwiYWRkRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiQWRkQm90dG9tXCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJBZGRMZWZ0XCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIkFkZFJpZ2h0XCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJBZGRQYWdlSGVpZ2h0XCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIkFkZFBhZ2VXaWR0aFwiIFtncm91cF09XCJhZGRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cIkFkZElzTGFuZHNjYXBlXCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiQWRkU2hvd1BhZ2luZ1wiIFtncm91cF09XCJhZGRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsQWRkKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuIl19
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvZG9jdW1lbnRzL2FkZC1kb2N1bWVudC9hZGQtZG9jdW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9kb2N1bWVudHMvYWRkLWRvY3VtZW50L2FkZC1kb2N1bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0osT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBSXJGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFFQUFxRSxDQUFDOzs7Ozs7O0FBTXRILE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLFlBQW1CLGNBQThCLEVBQVUsb0JBQTBDLEVBQzNGLHNDQUE4RSxFQUFVLE1BQWMsRUFDdEcscUJBQTRDO1FBRm5DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDM0YsMkNBQXNDLEdBQXRDLHNDQUFzQyxDQUF3QztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDdEcsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQXBCdEQsbUJBQW1CO1FBQ25CLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9CQUFvQjtRQUNwQixZ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LENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsWUFBWTtJQUNaLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0F4SlUsb0JBQW9CO2tHQUFwQixvQkFBb0Isd0RDZGpDLGt3R0FvRkE7OzJGRHRFYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDaGVja0JveE9wdGlvbnMsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgVGV4dEJveE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UsIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0RvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0RvY3VtZW50c01vZGVscy9Eb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkZC1kb2N1bWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1kb2N1bWVudC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZERvY3VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgc2hvd1BhZ2VDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGFkZEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zO1xyXG4gIG11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgbXVsdGlMaW5ndWFsSGVhZGVyOiBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9uc1xyXG4gIG11bHRpTGluZ3VhbEZvb3RlcjogTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnNcclxuICBtdWx0aUxpbmd1YWxIZWFkQ29udGVudDogTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnNcclxuICBBZGRUb3A6IFRleHRCb3hPcHRpb25zO1xyXG4gIEFkZEJvdHRvbTogVGV4dEJveE9wdGlvbnM7XHJcbiAgQWRkTGVmdDogVGV4dEJveE9wdGlvbnM7XHJcbiAgQWRkUmlnaHQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIEFkZFBhZ2VIZWlnaHQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIEFkZFBhZ2VXaWR0aDogVGV4dEJveE9wdGlvbnM7XHJcbiAgQWRkSXNMYW5kc2NhcGU6IENoZWNrQm94T3B0aW9ucztcclxuICBBZGRTaG93UGFnaW5nOiBDaGVja0JveE9wdGlvbnM7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlOiBEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSBcIlwiXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9Jbml0aWFsaXplIGFkZCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcblxyXG4gICAgdGhpcy5hZGRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLmFkZEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZEZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMuYWRkRm9ybVxyXG4gICAgdGhpcy5hZGRGb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRNb2RlbDtcclxuICAgIHRoaXMuYWRkRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRGdW5jdGlvbjtcclxuICAgIHRoaXMuYWRkRm9ybU9wdGlvbnMub25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25BZGRTdWNjZXNzO1xyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLm5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5hcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuZW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZGVyID0gbmV3IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbEhlYWRlci5uYW1lID0gXCJIZWFkZXJcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZGVyLmFyYWJpY0xhYmVsS2V5ID0gXCJIZWFkZXJJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxIZWFkZXIuZW5nbGlzaExhYmVsS2V5ID0gXCJIZWFkZXJJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZGVyLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRm9vdGVyID0gbmV3IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbEZvb3Rlci5uYW1lID0gXCJGb290ZXJcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRm9vdGVyLmFyYWJpY0xhYmVsS2V5ID0gXCJGb290ZXJJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxGb290ZXIuZW5nbGlzaExhYmVsS2V5ID0gXCJGb290ZXJJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsRm9vdGVyLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZENvbnRlbnQgPSBuZXcgTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnMoKTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsSGVhZENvbnRlbnQubmFtZSA9IFwiSFRNTEhlYWRDb250ZW50XCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbEhlYWRDb250ZW50LmFyYWJpY0xhYmVsS2V5ID0gXCJIVE1MSGVhZENvbnRlbnRJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxIZWFkQ29udGVudC5lbmdsaXNoTGFiZWxLZXkgPSBcIkhUTUxIZWFkQ29udGVudEluRW5nbGlzaFwiO1xyXG5cclxuICAgIHRoaXMuQWRkVG9wID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZFRvcC5uYW1lID0gJ1RvcCc7XHJcbiAgICB0aGlzLkFkZFRvcC5sYWJlbEtleSA9ICdUb3AnO1xyXG4gICAgdGhpcy5BZGRUb3AudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcblxyXG4gICAgdGhpcy5BZGRCb3R0b20gPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkQm90dG9tLm5hbWUgPSAnQm90dG9tJztcclxuICAgIHRoaXMuQWRkQm90dG9tLmxhYmVsS2V5ID0gJ0JvdHRvbSc7XHJcbiAgICB0aGlzLkFkZEJvdHRvbS50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuXHJcbiAgICB0aGlzLkFkZExlZnQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkTGVmdC5uYW1lID0gJ0xlZnQnO1xyXG4gICAgdGhpcy5BZGRMZWZ0LmxhYmVsS2V5ID0gJ0xlZnQnO1xyXG4gICAgdGhpcy5BZGRMZWZ0LnR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG5cclxuICAgIHRoaXMuQWRkUmlnaHQgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkUmlnaHQubmFtZSA9ICdSaWdodCc7XHJcbiAgICB0aGlzLkFkZFJpZ2h0LmxhYmVsS2V5ID0gJ1JpZ2h0JztcclxuICAgIHRoaXMuQWRkUmlnaHQudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcblxyXG4gICAgdGhpcy5BZGRQYWdlSGVpZ2h0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZFBhZ2VIZWlnaHQubmFtZSA9ICdQYWdlSGVpZ2h0JztcclxuICAgIHRoaXMuQWRkUGFnZUhlaWdodC5sYWJlbEtleSA9ICdQYWdlSGVpZ2h0JztcclxuICAgIHRoaXMuQWRkUGFnZUhlaWdodC50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuXHJcbiAgICB0aGlzLkFkZFBhZ2VXaWR0aCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5BZGRQYWdlV2lkdGgubmFtZSA9ICdQYWdlV2lkdGgnO1xyXG4gICAgdGhpcy5BZGRQYWdlV2lkdGgubGFiZWxLZXkgPSAnUGFnZVdpZHRoJztcclxuICAgIHRoaXMuQWRkUGFnZVdpZHRoLnR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG5cclxuICAgIHRoaXMuQWRkSXNMYW5kc2NhcGUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZElzTGFuZHNjYXBlLm5hbWUgPSAnSXNMYW5kc2NhcGUnO1xyXG4gICAgdGhpcy5BZGRJc0xhbmRzY2FwZS5sYWJlbEtleSA9ICdMYW5kc2NhcGUnO1xyXG5cclxuICAgIHRoaXMuQWRkU2hvd1BhZ2luZyA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkU2hvd1BhZ2luZy5uYW1lID0gJ1Nob3dQYWdpbmcnO1xyXG4gICAgdGhpcy5BZGRTaG93UGFnaW5nLmxhYmVsS2V5ID0gJ1Nob3dQYWdpbmcnO1xyXG5cclxuXHJcbiAgICB0aGlzLnNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5hZGRGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBBZGRNb2RlbCA9IG5ldyBEb2N1bWVudEhlYWRlckFuZEZvb3RlclRlbXBsYXRlKCk7XHJcbiAgICBBZGRNb2RlbC5OYW1lLmVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2hcclxuICAgIEFkZE1vZGVsLk5hbWUuYXJhYmljID0gUmVzdWx0TW9kZWwuTmFtZS5BcmFiaWNcclxuICAgIEFkZE1vZGVsLkhlYWRlci5lbmdsaXNoID0gUmVzdWx0TW9kZWwuSGVhZGVyLkVuZ2xpc2hcclxuICAgIEFkZE1vZGVsLkhlYWRlci5hcmFiaWMgPSBSZXN1bHRNb2RlbC5IZWFkZXIuQXJhYmljXHJcbiAgICBBZGRNb2RlbC5Gb290ZXIuZW5nbGlzaCA9IFJlc3VsdE1vZGVsLkZvb3Rlci5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5Gb290ZXIuYXJhYmljID0gUmVzdWx0TW9kZWwuRm9vdGVyLkFyYWJpY1xyXG4gICAgQWRkTW9kZWwuSGVhZENvbnRlbnQuZW5nbGlzaCA9IFJlc3VsdE1vZGVsLkhUTUxIZWFkQ29udGVudC5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5IZWFkQ29udGVudC5hcmFiaWMgPSBSZXN1bHRNb2RlbC5IVE1MSGVhZENvbnRlbnQuQXJhYmljXHJcbiAgICBBZGRNb2RlbC5UT1AgPSBSZXN1bHRNb2RlbC5Ub3A7XHJcbiAgICBBZGRNb2RlbC5Cb3R0b20gPSBSZXN1bHRNb2RlbC5Cb3R0b207XHJcbiAgICBBZGRNb2RlbC5MZWZ0ID0gUmVzdWx0TW9kZWwuTGVmdDtcclxuICAgIEFkZE1vZGVsLlJpZ2h0ID0gUmVzdWx0TW9kZWwuUmlnaHQ7XHJcbiAgICBBZGRNb2RlbC5QYWdlSGVpZ2h0ID0gUmVzdWx0TW9kZWwuUGFnZUhlaWdodDtcclxuICAgIEFkZE1vZGVsLlBhZ2VXaWR0aCA9IFJlc3VsdE1vZGVsLlBhZ2VXaWR0aDtcclxuICAgIEFkZE1vZGVsLklzTGFuZHNjYXBlID0gUmVzdWx0TW9kZWwuSXNMYW5kc2NhcGU7XHJcbiAgICBBZGRNb2RlbC5TaG93UGFnaW5nID0gUmVzdWx0TW9kZWwuU2hvd1BhZ2luZztcclxuICAgIHBhcmFtQXJyYXkucHVzaChBZGRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFkZEZ1bmN0aW9uID0gKEFkZE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmRvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlLmFkZERvY3VtZW50SGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUoQWRkTW9kZWwpXHJcbiAgfVxyXG5cclxuICBvbkFkZFN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICB0aGlzLmNhbmNlbEFkZCgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsQWRkKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vRG9jdW1lbnRzL01hc3RlckxheW91dHMnXSk7XHJcbiAgfVxyXG5cclxuICAvL09uIGRlc3Ryb3lcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIiAqbmdJZj1cInNob3dQYWdlQ29udGVudFwiPlxyXG4gICAgPCEtLSBiZWdpbjo6Qm9keSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJhZGRGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJhZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yIFtvcHRpb25zXT1cIm11bHRpTGluZ3VhbEhlYWRlclwiIFtncm91cF09XCJhZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgdGFibGUtZGFyay1za2luXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3IgW29wdGlvbnNdPVwibXVsdGlMaW5ndWFsRm9vdGVyXCIgW2dyb3VwXT1cImFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiB0YWJsZS1kYXJrLXNraW5cIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvciBbb3B0aW9uc109XCJtdWx0aUxpbmd1YWxIZWFkQ29udGVudFwiIFtncm91cF09XCJhZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxoMj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiT3B0aW9uc1wiKX19PC9oMj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJBZGRUb3BcIiBbZ3JvdXBdPVwiYWRkRm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiQWRkQm90dG9tXCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJBZGRMZWZ0XCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIkFkZFJpZ2h0XCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJBZGRQYWdlSGVpZ2h0XCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIkFkZFBhZ2VXaWR0aFwiIFtncm91cF09XCJhZGRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLUNoZWNrQm94IFtvcHRpb25zXT1cIkFkZElzTGFuZHNjYXBlXCIgW2dyb3VwXT1cImFkZEZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiQWRkU2hvd1BhZ2luZ1wiIFtncm91cF09XCJhZGRGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsQWRkKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuIl19
|