@bnsights/bbsf-admin-portal 1.0.3 → 1.0.4
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/bundles/bnsights-bbsf-admin-portal.umd.js +19591 -20432
- package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
- package/esm2015/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.js +2 -2
- package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +407 -421
- package/esm2015/lib/Pages/departments/department/department.component.js +45 -83
- package/esm2015/lib/Pages/departments/department-info/department-info.component.js +85 -94
- package/esm2015/lib/Pages/departments/departments.module.js +4 -1
- package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +224 -223
- package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +137 -146
- package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +136 -153
- package/esm2015/lib/Pages/home/home.component.js +32 -26
- package/esm2015/lib/Pages/home/home.module.js +5 -10
- package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +336 -317
- package/esm2015/lib/Pages/jobs/jobs/jobs.component.js +168 -227
- package/esm2015/lib/Pages/license/license/license.component.js +68 -99
- package/esm2015/lib/Pages/localizations/localizations.component.js +379 -341
- package/esm2015/lib/Pages/logs/log/log.component.js +18 -27
- package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +297 -288
- package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +143 -165
- package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +234 -233
- package/esm2015/lib/Pages/lookups/lookups-routing.module.js +2 -2
- package/esm2015/lib/Pages/notifications/add/add.component.js +83 -76
- package/esm2015/lib/Pages/notifications/edit/edit.component.js +60 -63
- package/esm2015/lib/Pages/notifications/edit-email/edit-email.component.js +128 -126
- package/esm2015/lib/Pages/notifications/edit-sms/edit-sms.component.js +87 -85
- package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +57 -58
- package/esm2015/lib/Pages/notifications/notifications-routing.module.js +1 -3
- package/esm2015/lib/Pages/notifications/notifications.module.js +3 -4
- package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +232 -228
- package/esm2015/lib/Pages/notifications/templates/templates.component.js +347 -310
- package/esm2015/lib/Pages/providers/provider/provider.component.js +53 -52
- package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +268 -270
- package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +136 -152
- package/esm2015/lib/Pages/roles/permissions/permissions.component.js +182 -218
- package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +219 -254
- package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +134 -142
- package/esm2015/lib/Pages/sectors/sector/sector.component.js +127 -144
- package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +123 -139
- package/esm2015/lib/Pages/shared/Enums/ParticipantType.js +8 -0
- package/esm2015/lib/Pages/shared/Services/ConfigurationsService.service.js +15 -12
- package/esm2015/lib/Pages/shared/Services/DepartmentService.service.js +4 -5
- package/esm2015/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.js +10 -9
- package/esm2015/lib/Pages/shared/Services/HelpCenterService.service.js +10 -7
- package/esm2015/lib/Pages/shared/Services/ImpersonationRuleService.service.js +14 -8
- package/esm2015/lib/Pages/shared/Services/LicenseService.service.js +3 -3
- package/esm2015/lib/Pages/shared/Services/LogsService.js +1 -1
- package/esm2015/lib/Pages/shared/Services/LookupGroupsService.service.js +11 -5
- package/esm2015/lib/Pages/shared/Services/LookupService.service.js +31 -15
- package/esm2015/lib/Pages/shared/Services/PermissionSetService.service.js +18 -8
- package/esm2015/lib/Pages/shared/Services/PermissionsService.service.js +12 -9
- package/esm2015/lib/Pages/shared/Services/PublicHolidayService.service.js +9 -3
- package/esm2015/lib/Pages/shared/Services/SectorService.service.js +18 -13
- package/esm2015/lib/Pages/shared/Services/TemplateService.service.js +36 -29
- package/esm2015/lib/Pages/shared/Services/localizationsService.service .js +23 -13
- package/esm2015/lib/Pages/shared/Services/provider.service.js +5 -7
- package/esm2015/lib/Pages/shared/Services/userService.service.js +10 -2
- package/esm2015/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/Lookups/LookupItem.js +1 -1
- package/esm2015/lib/Pages/shared/models/Lookups/LookupModel.js +1 -2
- package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.js +1 -1
- package/esm2015/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.js +1 -1
- package/esm2015/lib/Pages/users/users.component.js +397 -409
- package/esm2015/lib/masterlayout-routing.module.js +5 -4
- package/esm2015/lib/masterlayout.component.js +23 -32
- package/esm2015/lib/masterlayout.module.js +25 -19
- package/fesm2015/bnsights-bbsf-admin-portal.js +17328 -17584
- package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
- package/lib/Pages/configurations/configuration/configuration.component.d.ts +31 -27
- package/lib/Pages/departments/department/department.component.d.ts +12 -11
- package/lib/Pages/departments/department-info/department-info.component.d.ts +31 -28
- package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +34 -32
- package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +31 -34
- package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +30 -35
- package/lib/Pages/home/home.component.d.ts +4 -4
- package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +43 -42
- package/lib/Pages/jobs/jobs/jobs.component.d.ts +56 -62
- package/lib/Pages/license/license/license.component.d.ts +25 -23
- package/lib/Pages/localizations/localizations.component.d.ts +77 -65
- package/lib/Pages/logs/log/log.component.d.ts +7 -11
- package/lib/Pages/lookups/lookup/lookup.component.d.ts +64 -59
- package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +44 -45
- package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +62 -56
- package/lib/Pages/notifications/add/add.component.d.ts +13 -11
- package/lib/Pages/notifications/edit/edit.component.d.ts +14 -14
- package/lib/Pages/notifications/edit-email/edit-email.component.d.ts +18 -20
- package/lib/Pages/notifications/edit-sms/edit-sms.component.d.ts +15 -16
- package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +24 -25
- package/lib/Pages/notifications/notifications.module.d.ts +15 -16
- package/lib/Pages/notifications/template-info/template-info.component.d.ts +32 -32
- package/lib/Pages/notifications/templates/templates.component.d.ts +54 -46
- package/lib/Pages/providers/provider/provider.component.d.ts +13 -12
- package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +29 -27
- package/lib/Pages/roles/permission-set-info/permission-set-info.component.d.ts +39 -40
- package/lib/Pages/roles/permissions/permissions.component.d.ts +49 -54
- package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +53 -55
- package/lib/Pages/sectors/department-info/department-info.component.d.ts +41 -44
- package/lib/Pages/sectors/sector/sector.component.d.ts +35 -33
- package/lib/Pages/sectors/sector-info/sector-info.component.d.ts +40 -44
- package/lib/Pages/shared/Enums/ParticipantType.d.ts +6 -0
- package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +7 -8
- package/lib/Pages/shared/Services/DepartmentService.service.d.ts +2 -2
- package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +5 -5
- package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +2 -1
- package/lib/Pages/shared/Services/ImpersonationRuleService.service.d.ts +5 -5
- package/lib/Pages/shared/Services/LicenseService.service.d.ts +2 -2
- package/lib/Pages/shared/Services/LookupGroupsService.service.d.ts +4 -4
- package/lib/Pages/shared/Services/LookupService.service.d.ts +14 -11
- package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +8 -7
- package/lib/Pages/shared/Services/PermissionsService.service.d.ts +5 -6
- package/lib/Pages/shared/Services/PublicHolidayService.service.d.ts +2 -2
- package/lib/Pages/shared/Services/SectorService.service.d.ts +7 -7
- package/lib/Pages/shared/Services/TemplateService.service.d.ts +20 -19
- package/lib/Pages/shared/Services/localizationsService.service .d.ts +12 -11
- package/lib/Pages/shared/Services/provider.service.d.ts +1 -1
- package/lib/Pages/shared/Services/userService.service.d.ts +2 -0
- package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +0 -1
- package/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.d.ts +1 -1
- package/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.d.ts +0 -2
- package/lib/Pages/shared/models/Lookups/LookupModel.d.ts +1 -1
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.d.ts +1 -1
- package/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.d.ts +1 -1
- package/lib/Pages/users/users.component.d.ts +54 -68
- package/lib/masterlayout.component.d.ts +4 -5
- package/lib/masterlayout.module.d.ts +8 -9
- package/package.json +3 -3
- package/src/lib/assets/sass/custom-styles.scss +115 -0
- package/src/lib/assets/sass/style-rtl.scss +2 -0
- package/src/lib/assets/sass/style.scss +2 -2
- package/esm2015/lib/Pages/notifications/edit-template/edit-template.component.js +0 -35
- package/lib/Pages/notifications/edit-template/edit-template.component.d.ts +0 -35
|
@@ -1,37 +1,34 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component
|
|
2
|
+
import { Component } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import { FileUploadOptions } from '@bnsights/bbsf-controls';
|
|
4
|
+
import { FileType, FileUploadOptions, FormOptions } from '@bnsights/bbsf-controls';
|
|
5
5
|
import { FormGroup } from '@angular/forms';
|
|
6
6
|
import { LicenseModel } from '../../shared/models/LicenseModel/LicenseModel';
|
|
7
7
|
import { PageInfoService } from '../../../_metronic/core/services/page-info.service';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "
|
|
10
|
-
import * as i2 from "
|
|
9
|
+
import * as i1 from "../../../_metronic/core/services/page-info.service";
|
|
10
|
+
import * as i2 from "@bnsights/bbsf-utilities";
|
|
11
11
|
import * as i3 from "./../../shared/Services/LicenseService.service";
|
|
12
12
|
import * as i4 from "@ng-bootstrap/ng-bootstrap";
|
|
13
13
|
import * as i5 from "ng-block-ui";
|
|
14
14
|
import * as i6 from "@bnsights/bbsf-controls";
|
|
15
15
|
import * as i7 from "@angular/common";
|
|
16
16
|
import * as i8 from "ng-inline-svg";
|
|
17
|
-
import * as i9 from "@angular/forms";
|
|
18
17
|
export class LicenseComponent {
|
|
19
|
-
constructor(
|
|
20
|
-
this.authService = authService;
|
|
18
|
+
constructor(pageInfoService, utilityService, environmentService, licenseService, modalService, requestHandlerService) {
|
|
21
19
|
this.pageInfoService = pageInfoService;
|
|
22
20
|
this.utilityService = utilityService;
|
|
23
|
-
this.bbsfTranslateService = bbsfTranslateService;
|
|
24
21
|
this.environmentService = environmentService;
|
|
25
|
-
this.
|
|
22
|
+
this.licenseService = licenseService;
|
|
26
23
|
this.modalService = modalService;
|
|
24
|
+
this.requestHandlerService = requestHandlerService;
|
|
27
25
|
this.ShowPageContent = false;
|
|
28
26
|
this.change = false;
|
|
29
27
|
this.showShadow = [];
|
|
30
28
|
this.noLicenseFound = false;
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.DateInMinutes = 0;
|
|
29
|
+
this.name = "";
|
|
30
|
+
this.productionMode = false;
|
|
31
|
+
this.dateInMinutes = 0;
|
|
35
32
|
this.seconds = 0;
|
|
36
33
|
this.minutes = 0;
|
|
37
34
|
this.hours = 0;
|
|
@@ -39,20 +36,33 @@ export class LicenseComponent {
|
|
|
39
36
|
this.weeks = 0;
|
|
40
37
|
this.months = 0;
|
|
41
38
|
this.years = 0;
|
|
42
|
-
this.
|
|
39
|
+
this.showTimer = false;
|
|
43
40
|
//Upload Model Controls
|
|
44
|
-
this.
|
|
45
|
-
// Decorator wires up blockUI instance
|
|
41
|
+
this.uploadFileForm = new FormGroup({});
|
|
46
42
|
this.initialMinutes$ = new BehaviorSubject(24 * 60 * 30);
|
|
47
|
-
// set minutes(val) {
|
|
48
|
-
// this.initialMinutes$.next(val);
|
|
49
|
-
// }
|
|
50
43
|
this.value = 0;
|
|
44
|
+
this.getAddLicenseModel = () => {
|
|
45
|
+
let paramArray = [];
|
|
46
|
+
let ResultModel = this.uploadFileForm.value;
|
|
47
|
+
let Model = new LicenseModel();
|
|
48
|
+
Model.appendExisting = this.appendExisting;
|
|
49
|
+
Model.LicenseFile = {
|
|
50
|
+
FileBase64: ResultModel["LicenseFileInput"].File.FileBase64,
|
|
51
|
+
FileName: ResultModel["LicenseFileInput"].File.FileName,
|
|
52
|
+
FileSizeInMB: ResultModel["LicenseFileInput"].File.FileSizeInMB,
|
|
53
|
+
FileType: ResultModel["LicenseFileInput"].File.FileType
|
|
54
|
+
};
|
|
55
|
+
paramArray.push(Model);
|
|
56
|
+
return paramArray;
|
|
57
|
+
};
|
|
58
|
+
this.getAddLicenseFunction = (Model) => {
|
|
59
|
+
return this.licenseService.uploadLicense(Model);
|
|
60
|
+
};
|
|
51
61
|
}
|
|
52
62
|
;
|
|
53
63
|
ngOnInit() {
|
|
54
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
|
|
65
|
+
//Page header (breadcrumb and title)
|
|
56
66
|
PageInfoService.PageTitle = this.utilityService.getResourceValue("License");
|
|
57
67
|
PageInfoService.PageBreadcrumbs = [
|
|
58
68
|
{ title: this.utilityService.getResourceValue("Home"), path: '/Admin/Home', isSeparator: false, isActive: false },
|
|
@@ -60,32 +70,28 @@ export class LicenseComponent {
|
|
|
60
70
|
];
|
|
61
71
|
this.pageInfoService.calculateTitle();
|
|
62
72
|
this.pageInfoService.calculateBreadcrumbs();
|
|
63
|
-
this.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
});
|
|
67
|
-
this.language = yield this.utilityService.getCurrentLanguage();
|
|
68
|
-
this.ProductionMode = this.environmentService.getProductionMode();
|
|
69
|
-
this.GetOrganizationLicense();
|
|
73
|
+
this.productionMode = this.environmentService.getProductionMode();
|
|
74
|
+
//initialize page
|
|
75
|
+
this.initializePage();
|
|
70
76
|
});
|
|
71
77
|
}
|
|
72
|
-
|
|
73
|
-
this.
|
|
78
|
+
initializePage() {
|
|
79
|
+
this.licenseService.getOrganizationLicense().subscribe((result) => {
|
|
74
80
|
let Model = result;
|
|
75
81
|
if (Model != null) {
|
|
76
82
|
let startDate = new Date(Model.val.licenseStartDate);
|
|
77
83
|
let endDate = new Date(Model.val.licenseEndDate);
|
|
78
84
|
let activationDate = new Date(Model.val.activationDate);
|
|
79
|
-
this.
|
|
80
|
-
this.
|
|
81
|
-
this.
|
|
82
|
-
this.
|
|
85
|
+
this.activationDate = activationDate.toLocaleDateString();
|
|
86
|
+
this.licenseStartDate = startDate.toLocaleDateString();
|
|
87
|
+
this.licenseEndDate = endDate.toLocaleDateString();
|
|
88
|
+
this.name = Model.val.name.current;
|
|
83
89
|
let CurrentDate = new Date();
|
|
84
|
-
if ((
|
|
90
|
+
if ((endDate.toLocaleDateString() == CurrentDate.toLocaleDateString()))
|
|
85
91
|
this.noLicenseFound = true;
|
|
86
92
|
else
|
|
87
93
|
this.noLicenseFound = false;
|
|
88
|
-
this.
|
|
94
|
+
this.dateInMinutes = this.getDifferenceInMinutes(CurrentDate, endDate);
|
|
89
95
|
setInterval(() => {
|
|
90
96
|
this.date_future = endDate;
|
|
91
97
|
this.date_now = new Date();
|
|
@@ -102,85 +108,48 @@ export class LicenseComponent {
|
|
|
102
108
|
this.months = this.months - (this.years * 12);
|
|
103
109
|
}, 1000);
|
|
104
110
|
}
|
|
105
|
-
|
|
106
|
-
this.ShowTimer = true;
|
|
107
|
-
}, 1000);
|
|
111
|
+
this.showTimer = true;
|
|
108
112
|
});
|
|
109
113
|
}
|
|
110
114
|
getDifferenceInMinutes(date1, date2) {
|
|
111
115
|
const diffInMs = Math.abs(date2 - date1);
|
|
112
116
|
return diffInMs / (1000 * 60);
|
|
113
117
|
}
|
|
114
|
-
|
|
118
|
+
///////////// Start add License Part//////////////////////
|
|
119
|
+
showUploadModal(uploadFileModal) {
|
|
115
120
|
this.utilityService.startBlockUI();
|
|
116
|
-
this.
|
|
117
|
-
this.
|
|
118
|
-
this.
|
|
119
|
-
this.
|
|
120
|
-
this.
|
|
121
|
-
this.
|
|
122
|
-
this.
|
|
121
|
+
this.uploadFileForm = new FormGroup({});
|
|
122
|
+
this.uploadFileForm.reset();
|
|
123
|
+
this.uploadFileFormOptions = new FormOptions();
|
|
124
|
+
this.uploadFileFormOptions.FormGroup = this.uploadFileForm;
|
|
125
|
+
this.uploadFileFormOptions.GetModelFunction = this.getAddLicenseModel;
|
|
126
|
+
this.uploadFileFormOptions.ServiceSubmitFunction = this.getAddLicenseFunction;
|
|
127
|
+
this.licenseFileInput = new FileUploadOptions();
|
|
128
|
+
this.licenseFileInput.Name = "LicenseFileInput";
|
|
129
|
+
this.licenseFileInput.LabelKey = "UploadFile";
|
|
130
|
+
this.licenseFileInput.IsMultipleFile = false;
|
|
131
|
+
this.licenseFileInput.IsRequired = true;
|
|
132
|
+
this.licenseFileInput.FileUploadAcceptsTypes = [FileType.License];
|
|
133
|
+
this.modalService.open(uploadFileModal);
|
|
123
134
|
this.utilityService.stopBlockUI();
|
|
124
135
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
Model.appendExisting = appendExisting;
|
|
133
|
-
Model.LicenseFile = {
|
|
134
|
-
FileBase64: ResultModel["LicenseFileInput"][0].FileBase64,
|
|
135
|
-
FileName: ResultModel["LicenseFileInput"][0].FileName,
|
|
136
|
-
FileSizeInMB: ResultModel["LicenseFileInput"][0].FileSizeInMB,
|
|
137
|
-
FileType: ResultModel["LicenseFileInput"][0].FileType
|
|
138
|
-
};
|
|
139
|
-
this.LicenseService.UploadLicense(Model).subscribe((result) => {
|
|
140
|
-
let Result = result;
|
|
141
|
-
this.UploadFileForm.reset();
|
|
142
|
-
this.modalService.dismissAll();
|
|
143
|
-
}, (error) => {
|
|
144
|
-
});
|
|
145
|
-
}
|
|
136
|
+
//////////// End of add License part///////////////////////
|
|
137
|
+
isAppendExisting(appendExisting) {
|
|
138
|
+
this.appendExisting = appendExisting;
|
|
139
|
+
}
|
|
140
|
+
///////////Destroy Observable //////////////////////
|
|
141
|
+
ngOnDestroy() {
|
|
142
|
+
this.requestHandlerService.destroyHandler();
|
|
146
143
|
}
|
|
147
144
|
}
|
|
148
|
-
LicenseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LicenseComponent, deps: [{ token: i1.
|
|
149
|
-
LicenseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LicenseComponent, selector: "lib-license",
|
|
145
|
+
LicenseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LicenseComponent, deps: [{ token: i1.PageInfoService }, { token: i2.UtilityService }, { token: i2.EnvironmentService }, { token: i3.LicenseService }, { token: i4.NgbModal }, { token: i2.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
146
|
+
LicenseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LicenseComponent, selector: "lib-license", ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n <!--Begin::Section-->\r\n <div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <h3 *ngIf=\"!noLicenseFound\" class=\"\">{{name}}</h3>\r\n <span *ngIf=\"!noLicenseFound\" class=\"badge badge-light-success m-3 badge-lg\">\r\n {{utilityService.getResourceValue(\"LicenseActivatedSuccessfully\")}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" (click)=\"showUploadModal(uploadFileModal)\">\r\n {{utilityService.getResourceValue(\"Activate\")}}\r\n </button>\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body d-flex align-items-center justify-content-center\" *ngIf=\"!noLicenseFound\">\r\n <ng-container *ngIf=\"showTimer\">\r\n <div class=\"main_Timer\">\r\n <div class=\"clock\">\r\n <div class=\"time row\">\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Years\")}}</div>\r\n <span class=\"years fs-2hx fw-bolder text-gray-900\">{{years}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Months\")}}</div>\r\n <span class=\"months fs-2hx fw-bolder text-gray-900\">{{months}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Days\")}}</div>\r\n <span class=\"days fs-2hx fw-bolder text-gray-900\">{{days}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Hours\")}}</div>\r\n <span class=\"hours fs-2hx fw-bolder text-gray-900\">{{hours}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Minutes\")}}</div>\r\n <span class=\"min fs-2hx fw-bolder text-gray-900\">{{minutes}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-2 col-md-4 mb-4 d-flex justify-content-center\">\r\n <div class=\"counter-item border bg-light-primary border-primary notice text-center min-w-150px rounded d-none d-md-block\">\r\n <div class=\"counter-title fs-3 fw-bold text-primary d-block\">{{utilityService.getResourceValue(\"Seconds\")}}</div>\r\n <span class=\"sec fs-2hx fw-bolder text-gray-900\">{{seconds}}</span>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between align-items-center license-head\" *ngIf=\"noLicenseFound\">\r\n <h3 class=\"text-danger\">\r\n {{utilityService.getResourceValue(\"LicenseNotFound\")}}\r\n </h3>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!noLicenseFound\" class=\"card-footer border-0 d-flex justify-content-between\">\r\n <div class=\"mb-4\">\r\n <span class=\"badge badge-light-primary fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseStartDate\")}}:</span>\r\n <span class=\"font-weight-500\">{{licenseStartDate | date:'dd-MM-y'}}</span>\r\n </div>\r\n <div>\r\n <span class=\"badge badge-light-danger fs-7 fw-bolder me-2 min-w-150px\">{{utilityService.getResourceValue(\"LicenseExpiryDate\")}}:</span>\r\n <span class=\"font-weight-500\">{{licenseEndDate | date:'dd-MM-y'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <!-- activate-->\r\n <ng-template #uploadFileModal 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\" (click)=\"modal.dismiss()\" class=\"btn btn-sm btn-icon btn-active-color-primary\">\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(\"UploadLicense\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"uploadFileFormOptions\">\r\n <BBSF-FileUplaod [options]=\"licenseFileInput\" [group]=\"uploadFileForm\">\r\n </BBSF-FileUplaod>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseLicenseFileModal id=\"CloseLicenseFileModal\" type=\"button\" class=\"btn btn-light me-3 btn-sm\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(false)\" class=\"btn btn-light-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Replace\")}}</button>\r\n <button type=\"submit\" (click)=\"isAppendExisting(true)\" class=\"btn btn-primary me-3 btn-sm\">{{utilityService.getResourceValue(\"Append\")}}</button>\r\n\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n", styles: [".counter-item{padding:50px 5px;margin:0 10px}\n"], components: [{ type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i6.ɵv, selector: "BBSF-Form", inputs: ["options"] }, { type: i6.ɵb, selector: "BBSF-FileUplaod", inputs: ["group", "options"], outputs: ["OnChange"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }], pipes: { "date": i7.DatePipe } });
|
|
150
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LicenseComponent, decorators: [{
|
|
151
148
|
type: Component,
|
|
152
149
|
args: [{
|
|
153
150
|
selector: 'lib-license',
|
|
154
151
|
templateUrl: './license.component.html',
|
|
155
152
|
styleUrls: ['./license.component.css'],
|
|
156
|
-
//animations: [
|
|
157
|
-
// trigger('flip', [
|
|
158
|
-
// transition('*=>*', [
|
|
159
|
-
// animate(
|
|
160
|
-
// '.6s',
|
|
161
|
-
// keyframes([
|
|
162
|
-
// style({ transform: 'rotateX(130deg)', offset: 0 }),
|
|
163
|
-
// style({ transform: 'rotateX(0deg)', offset: 0.45 }),
|
|
164
|
-
// style({ transform: 'rotateX(7deg)', offset: 0.5 }),
|
|
165
|
-
// style({ transform: 'rotateX(0deg)', offset: 0.53 }),
|
|
166
|
-
// style({ transform: 'rotateX(5deg)', offset: 0.56 }),
|
|
167
|
-
// style({ transform: 'rotateX(0deg)', offset: 0.6 }),
|
|
168
|
-
// style({ transform: 'rotateX(0deg)', offset: 0.95 }),
|
|
169
|
-
// style({ transform: 'rotateX(0deg)', offset: 1 })
|
|
170
|
-
// ])
|
|
171
|
-
// )
|
|
172
|
-
// ])
|
|
173
|
-
// ])
|
|
174
|
-
//]
|
|
175
153
|
}]
|
|
176
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
177
|
-
type: ViewChild,
|
|
178
|
-
args: ['CloseLicenseFileModal', { static: false }]
|
|
179
|
-
}],
|
|
180
|
-
// set minutes(val) {
|
|
181
|
-
// this.initialMinutes$.next(val);
|
|
182
|
-
// }
|
|
183
|
-
value: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}] } });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xpY2Vuc2UvbGljZW5zZS9saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbGljZW5zZS9saWNlbnNlL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFtQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7Ozs7Ozs7QUE0QnJGLE1BQU0sT0FBTyxnQkFBZ0I7SUFzQzNCLFlBQW9CLFdBQXVCLEVBQVMsZUFBK0IsRUFBUyxjQUE2QixFQUFTLG9CQUF5QyxFQUFTLGtCQUFxQyxFQUFXLGNBQThCLEVBQVUsWUFBc0I7UUFBOVEsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBUyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUFTLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFBUyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQVcsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQVU7UUFwQ2xTLG9C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RCxnRUFBZ0U7b0JBQ2hFLDREQUE0RDtvQkFDNUQsWUFBWTtvQkFDWixTQUFTO29CQUNULFFBQVE7b0JBQ1IsTUFBTTtvQkFDTixHQUFHO2lCQUNKO3FSQTRCMEQscUJBQXFCO3NCQUEzRSxTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7UUFNdkQscUJBQXFCO1FBQ3JCLG9DQUFvQztRQUNwQyxJQUFJO1FBQ0osS0FBSztzQkFKSixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWRVJTSU9OLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRPcHRpb25zIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBMaWNlbnNlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xpY2Vuc2VTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExpY2Vuc2VNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTGljZW5zZU1vZGVsL0xpY2Vuc2VNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1saWNlbnNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGljZW5zZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGljZW5zZS5jb21wb25lbnQuY3NzJ10sXHJcbiAgLy9hbmltYXRpb25zOiBbXHJcbiAgLy8gIHRyaWdnZXIoJ2ZsaXAnLCBbXHJcbiAgLy8gICAgdHJhbnNpdGlvbignKj0+KicsIFtcclxuICAvLyAgICAgIGFuaW1hdGUoXHJcbiAgLy8gICAgICAgICcuNnMnLFxyXG4gIC8vICAgICAgICBrZXlmcmFtZXMoW1xyXG4gIC8vICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlWCgxMzBkZWcpJywgb2Zmc2V0OiAwIH0pLFxyXG4gIC8vICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlWCgwZGVnKScsIG9mZnNldDogMC40NSB9KSxcclxuICAvLyAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZVgoN2RlZyknLCBvZmZzZXQ6IDAuNSB9KSxcclxuICAvLyAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZVgoMGRlZyknLCBvZmZzZXQ6IDAuNTMgfSksXHJcbiAgLy8gICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGVYKDVkZWcpJywgb2Zmc2V0OiAwLjU2IH0pLFxyXG4gIC8vICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlWCgwZGVnKScsIG9mZnNldDogMC42IH0pLFxyXG4gIC8vICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlWCgwZGVnKScsIG9mZnNldDogMC45NSB9KSxcclxuICAvLyAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZVgoMGRlZyknLCBvZmZzZXQ6IDEgfSlcclxuICAvLyAgICAgICAgXSlcclxuICAvLyAgICAgIClcclxuICAvLyAgICBdKVxyXG4gIC8vICBdKVxyXG4gIC8vXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGljZW5zZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiBcclxuICBTaG93UGFnZUNvbnRlbnQgPSBmYWxzZTtcclxuICBjaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93U2hhZG93ID0gW107XHJcbiAgbm9MaWNlbnNlRm91bmQ6Ym9vbGVhbj1mYWxzZTtcclxuICBBY3RpdmF0aW9uRGF0ZTpzdHJpbmc7XHJcbiAgTGljZW5zZVN0YXJ0RGF0ZTpzdHJpbmc7XHJcbiAgTGljZW5zZUVuZERhdGU6c3RyaW5nOyBcclxuICBOYW1lOnN0cmluZz1cIlwiOyBcclxuICBsYW5ndWFnZTpzdHJpbmc9XCJcIlxyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgRGF0ZUluTWludXRlczpudW1iZXI9MFxyXG5cclxuICBzZWNvbmRzOm51bWJlcj0wO1xyXG4gIG1pbnV0ZXM6bnVtYmVyPTA7XHJcbiAgaG91cnMgOm51bWJlcj0wO1xyXG4gIGRheXMgOm51bWJlcj0wO1xyXG4gIHdlZWtzOm51bWJlcj0wO1xyXG4gIG1vbnRoczpudW1iZXI9MDtcclxuICB5ZWFyczpudW1iZXI9MDtcclxuICBkYXRlX2Z1dHVyZTphbnk7XHJcbiAgZGF0ZV9ub3c6YW55O1xyXG4gIFNob3dUaW1lcjpib29sZWFuPWZhbHNlO1xyXG4gICAgLy9VcGxvYWQgTW9kZWwgQ29udHJvbHNcclxuICAgIFVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICBMaWNlbnNlRmlsZUlucHV0OiBGaWxlVXBsb2FkT3B0aW9ucztcclxuICAgIEBWaWV3Q2hpbGQoJ0Nsb3NlTGljZW5zZUZpbGVNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDbG9zZUxpY2Vuc2VGaWxlTW9kYWw6IEVsZW1lbnRSZWY7XHJcblxyXG5cclxuICAgLy8gRGVjb3JhdG9yIHdpcmVzIHVwIGJsb2NrVUkgaW5zdGFuY2VcclxuICBpbml0aWFsTWludXRlcyQgPW5ldyBCZWhhdmlvclN1YmplY3QoMjQqNjAqMzApOyA7XHJcbiAgQElucHV0KClcclxuICAvLyBzZXQgbWludXRlcyh2YWwpIHtcclxuICAvLyAgIHRoaXMuaW5pdGlhbE1pbnV0ZXMkLm5leHQodmFsKTtcclxuICAvLyB9XHJcbiAgdmFsdWUgPSAwO1xyXG4gIHRpbWVyJDphbnlcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOkF1dGhTZXJ2aWNlLHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOlBhZ2VJbmZvU2VydmljZSwgcHVibGljIHV0aWxpdHlTZXJ2aWNlOlV0aWxpdHlTZXJ2aWNlLHByaXZhdGUgYmJzZlRyYW5zbGF0ZVNlcnZpY2U6QkJTRlRyYW5zbGF0ZVNlcnZpY2UscHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6RW52aXJvbm1lbnRTZXJ2aWNlLCAgcHJpdmF0ZSBMaWNlbnNlU2VydmljZTogTGljZW5zZVNlcnZpY2UsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbClcclxuICAgeyBcclxuICAgICBcclxuICAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuU2hvd1BhZ2VDb250ZW50PXRydWU7XHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlPXRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VcIilcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnM9W1xyXG4gICAgICAge3RpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpICwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2V9LFxyXG4gICAgICAge3RpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2V9XHJcblxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgdGhpcy5iYnNmVHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChldmVudCk9PntcclxuICAgICAgdGhpcy5sYW5ndWFnZSA9IGV2ZW50Lmxhbmc7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmxhbmd1YWdlID0gYXdhaXQgdGhpcy51dGlsaXR5U2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKTtcclxuICAgIHRoaXMuUHJvZHVjdGlvbk1vZGUgPSB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRQcm9kdWN0aW9uTW9kZSgpXHJcbiAgICB0aGlzLkdldE9yZ2FuaXphdGlvbkxpY2Vuc2UoKTtcclxuXHJcbiAgIH1cclxuICBcclxuICBcclxuIFxyXG4gIEdldE9yZ2FuaXphdGlvbkxpY2Vuc2UoKSB7XHJcbiAgICB0aGlzLkxpY2Vuc2VTZXJ2aWNlLkdldE9yZ2FuaXphdGlvbkxpY2Vuc2UoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgTW9kZWwgPSByZXN1bHQgYXMgYW55IFxyXG4gICAgICBpZihNb2RlbCE9IG51bGwpICB7XHJcbiAgICAgICAgbGV0IHN0YXJ0RGF0ZT0gbmV3IERhdGUoTW9kZWwudmFsLmxpY2Vuc2VTdGFydERhdGUpO1xyXG4gICAgICAgIGxldCBlbmREYXRlPSBuZXcgRGF0ZShNb2RlbC52YWwubGljZW5zZUVuZERhdGUpO1xyXG4gICAgICAgIGxldCBhY3RpdmF0aW9uRGF0ZT1uZXcgRGF0ZShNb2RlbC52YWwuYWN0aXZhdGlvbkRhdGUpO1xyXG4gICAgICAgIHRoaXMuQWN0aXZhdGlvbkRhdGU9YWN0aXZhdGlvbkRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5MaWNlbnNlU3RhcnREYXRlPXN0YXJ0RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKVxyXG4gICAgICAgIHRoaXMuTGljZW5zZUVuZERhdGU9ZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKVxyXG4gICAgICAgIHRoaXMuTmFtZT1Nb2RlbC52YWwubmFtZS5jdXJyZW50XHJcbiAgICAgICBsZXQgQ3VycmVudERhdGU9bmV3IERhdGUoKTtcclxuICAgICAgICBpZigoYWN0aXZhdGlvbkRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgPT0gQ3VycmVudERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkpKVxyXG4gICAgICAgICAgdGhpcy5ub0xpY2Vuc2VGb3VuZD10cnVlXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5ub0xpY2Vuc2VGb3VuZD1mYWxzZVxyXG5cclxuICAgICAgICAgIHRoaXMuRGF0ZUluTWludXRlcz10aGlzLmdldERpZmZlcmVuY2VJbk1pbnV0ZXMoQ3VycmVudERhdGUsZW5kRGF0ZSk7XHJcblxyXG4gICAgICAgICAgc2V0SW50ZXJ2YWwoKCk9PntcclxuICAgICAgICAgICAgdGhpcy5kYXRlX2Z1dHVyZSA9IGVuZERhdGU7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZV9ub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgXHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kcyA9IE1hdGguZmxvb3IoKHRoaXMuZGF0ZV9mdXR1cmUgLSAodGhpcy5kYXRlX25vdykpLzEwMDApO1xyXG4gICAgICAgICAgICB0aGlzLm1pbnV0ZXMgPSBNYXRoLmZsb29yKHRoaXMuc2Vjb25kcy82MCk7XHJcbiAgICAgICAgICAgIHRoaXMuaG91cnMgICA9IE1hdGguZmxvb3IodGhpcy5taW51dGVzLzYwKTtcclxuICAgICAgICAgICAgdGhpcy5kYXlzICAgID0gTWF0aC5mbG9vcih0aGlzLmhvdXJzLzI0KTtcclxuICAgICAgICAgICAgdGhpcy5tb250aHMgPSBNYXRoLmZsb29yKHRoaXMuZGF5cy8zMSk7XHJcbiAgICAgICAgICAgIHRoaXMueWVhcnMgPSBNYXRoLmZsb29yKHRoaXMubW9udGhzLzEyKTtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgdGhpcy5ob3VycyA9IHRoaXMuaG91cnMtKHRoaXMuZGF5cyoyNCk7XHJcbiAgICAgICAgICAgIHRoaXMubWludXRlcyA9IHRoaXMubWludXRlcy0odGhpcy5kYXlzKjI0KjYwKS0gICAodGhpcy5ob3Vycyo2MCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kcyA9IHRoaXMuc2Vjb25kcy0odGhpcy5kYXlzKjI0KjYwKjYwKS0odGhpcy5ob3Vycyo2MCo2MCktKHRoaXMubWludXRlcyo2MCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGF5cz10aGlzLmRheXMtKHRoaXMubW9udGhzKjMxKTtcclxuICAgICAgICAgICAgdGhpcy5tb250aHM9dGhpcy5tb250aHMtKHRoaXMueWVhcnMqMTIpO1xyXG4gICAgICAgIH0sMTAwMCk7XHJcbiAgICAgICAgICBcclxuICAgICAgfVxyXG4gICAgIFxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLlNob3dUaW1lcj10cnVlXHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuIGdldERpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZTEsIGRhdGUyKSB7XHJcbiAgICBjb25zdCBkaWZmSW5NcyA9IE1hdGguYWJzKGRhdGUyIC0gZGF0ZTEpO1xyXG4gICAgcmV0dXJuIGRpZmZJbk1zIC8gKDEwMDAgKiA2MCk7XHJcbiAgfVxyXG5cclxuICBcclxuICBTaG93VXBsb2FkTW9kYWwoVXBsb2FkRmlsZU1vZGEpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLlVwbG9hZEZpbGVGb3JtLnJlc2V0KCk7XHJcbiAgICB0aGlzLkxpY2Vuc2VGaWxlSW5wdXQgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgIHRoaXMuTGljZW5zZUZpbGVJbnB1dC5OYW1lID0gXCJMaWNlbnNlRmlsZUlucHV0XCJcclxuICAgIHRoaXMuTGljZW5zZUZpbGVJbnB1dC5MYWJlbEtleSA9IFwiVXBsb2FkRmlsZVwiXHJcbiAgICB0aGlzLkxpY2Vuc2VGaWxlSW5wdXQuSXNNdWx0aXBsZUZpbGUgPSBmYWxzZVxyXG4gICAgdGhpcy5MaWNlbnNlRmlsZUlucHV0LklzUmVxdWlyZWQgPSB0cnVlXHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFVwbG9hZEZpbGVNb2RhKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgVXBsb2FkRmlsZXMoYXBwZW5kRXhpc3RpbmcpIHtcclxuICAgIGlmICh0aGlzLlVwbG9hZEZpbGVGb3JtLmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuVXBsb2FkRmlsZUZvcm0udmFsdWU7XHJcbiAgXHJcbiAgICAgIGxldCBNb2RlbCA9IG5ldyBMaWNlbnNlTW9kZWwoKTtcclxuXHJcbiAgICAgIE1vZGVsLmFwcGVuZEV4aXN0aW5nID0gYXBwZW5kRXhpc3Rpbmc7XHJcbiAgICAgIE1vZGVsLkxpY2Vuc2VGaWxlID0ge1xyXG4gICAgICAgIEZpbGVCYXNlNjQ6UmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdWzBdLkZpbGVCYXNlNjQsXHJcbiAgICAgICAgRmlsZU5hbWU6UmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdWzBdLkZpbGVOYW1lLFxyXG4gICAgICAgIEZpbGVTaXplSW5NQjpSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl1bMF0uRmlsZVNpemVJbk1CLFxyXG4gICAgICAgIEZpbGVUeXBlOlJlc3VsdE1vZGVsW1wiTGljZW5zZUZpbGVJbnB1dFwiXVswXS5GaWxlVHlwZVxyXG4gICAgICB9XHJcblxyXG4gICAgICBcclxuXHJcblxyXG4gICAgICB0aGlzLkxpY2Vuc2VTZXJ2aWNlLlVwbG9hZExpY2Vuc2UoTW9kZWwpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgbGV0IFJlc3VsdD0gcmVzdWx0IGFzIGFueVxyXG4gICAgICAgIHRoaXMuVXBsb2FkRmlsZUZvcm0ucmVzZXQoKVxyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcclxuXHJcblxyXG4gICAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgIFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcblxyXG4gIDwhLS1CZWdpbjo6U2VjdGlvbi0tPlxyXG4gIDxkaXYgKm5nSWY9XCJTaG93UGFnZUNvbnRlbnRcIiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgPGgzICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCIgY2xhc3M9XCJcIj57e05hbWV9fTwvaDM+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtLTMgYmFkZ2UtbGdcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZUFjdGl2YXRlZFN1Y2Nlc3NmdWxseVwiKX19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgIDwhLS0gYmVnaW46Ok1lbnUgLS0+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiU2hvd1VwbG9hZE1vZGFsKFVwbG9hZEZpbGVNb2RhbClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZhdGVcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3dUaW1lclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1haW5fVGltZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUgcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiWWVhcnNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieWVhcnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3t5ZWFyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNb250aHNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibW9udGhzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7bW9udGhzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRheXNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF5cyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e2RheXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG91cnNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG91cnMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3tob3Vyc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWQgZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW51dGVzXCIpfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbiBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e21pbnV0ZXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSAgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZCBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNlY29uZHNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VjIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7c2Vjb25kc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBsaWNlbnNlLWhlYWRcIiAqbmdJZj1cIm5vTGljZW5zZUZvdW5kXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZU5vdEZvdW5kXCIpfX1cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBmcy03IGZ3LWJvbGRlciBtZS0yIG1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZVN0YXJ0RGF0ZVwiKX19Ojwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC13ZWlnaHQtNTAwXCI+e3tMaWNlbnNlU3RhcnREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kYW5nZXIgZnMtNyBmdy1ib2xkZXIgbWUtMiBtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VFeHBpcnlEYXRlXCIpfX06PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXdlaWdodC01MDBcIj57e0xpY2Vuc2VFbmREYXRlIHwgZGF0ZTonZGQtTU0teSd9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuICA8IS0tIGFjdGl2YXRlLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNVcGxvYWRGaWxlTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi4vLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj4ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVXBsb2FkTGljZW5zZVwiKX19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiVXBsb2FkRmlsZUZvcm1cIj5cclxuICAgICAgICA8QkJTRi1GaWxlVXBsYW9kIFtvcHRpb25zXT1cIkxpY2Vuc2VGaWxlSW5wdXRcIiBbZ3JvdXBdPVwiVXBsb2FkRmlsZUZvcm1cIj5cclxuICAgICAgICA8L0JCU0YtRmlsZVVwbGFvZD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAjQ2xvc2VMaWNlbnNlRmlsZU1vZGFsIGlkPVwiQ2xvc2VMaWNlbnNlRmlsZU1vZGFsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiVXBsb2FkRmlsZXMoZmFsc2UpXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgbWUtMyBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXBsYWNlXCIpfX08L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJVcGxvYWRGaWxlcyh0cnVlKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1lLTMgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQXBwZW5kXCIpfX08L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuIl19
|
|
154
|
+
}], ctorParameters: function () { return [{ type: i1.PageInfoService }, { type: i2.UtilityService }, { type: i2.EnvironmentService }, { type: i3.LicenseService }, { type: i4.NgbModal }, { type: i2.RequestHandlerService }]; } });
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2xpY2Vuc2UvbGljZW5zZS9saWNlbnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbGljZW5zZS9saWNlbnNlL2xpY2Vuc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7O0FBU3JGLE1BQU0sT0FBTyxnQkFBZ0I7SUE4QjNCLFlBQ1UsZUFBZ0MsRUFDakMsY0FBOEIsRUFDN0Isa0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLFlBQXNCLEVBQ3RCLHFCQUE0QztRQUw1QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFsQ3RELG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLFdBQU0s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QixDQUFDO1FBRTlFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQTtRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQTtRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtRQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQTtRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7UUFHakUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVwQyxDQUFDO0lBc0JELDREQUE0RDtJQUU1RCxnQkFBZ0IsQ0FBQyxjQUFjO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFBO0lBQ3RDLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzs4R0FuS1UsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsbURDZjdCLG8xTkE0SEE7NEZEN0dhLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsV0FBVyxFQUFFLDBCQUEwQjtvQkFDdkMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZpbGVUeXBlLCBGaWxlVXBsb2FkT3B0aW9ucywgRm9ybU9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IExpY2Vuc2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zaGFyZWQvU2VydmljZXMvTGljZW5zZVNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTGljZW5zZU1vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9MaWNlbnNlTW9kZWwvTGljZW5zZU1vZGVsJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UsIEVudmlyb25tZW50U2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxpY2Vuc2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saWNlbnNlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9saWNlbnNlLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpY2Vuc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBTaG93UGFnZUNvbnRlbnQgPSBmYWxzZTtcclxuICBjaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93U2hhZG93ID0gW107XHJcbiAgbm9MaWNlbnNlRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhY3RpdmF0aW9uRGF0ZTogc3RyaW5nO1xyXG4gIGxpY2Vuc2VTdGFydERhdGU6IHN0cmluZztcclxuICBsaWNlbnNlRW5kRGF0ZTogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHJvZHVjdGlvbk1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkYXRlSW5NaW51dGVzOiBudW1iZXIgPSAwXHJcbiAgc2Vjb25kczogbnVtYmVyID0gMDtcclxuICBtaW51dGVzOiBudW1iZXIgPSAwO1xyXG4gIGhvdXJzOiBudW1iZXIgPSAwO1xyXG4gIGRheXM6IG51bWJlciA9IDA7XHJcbiAgd2Vla3M6IG51bWJlciA9IDA7XHJcbiAgbW9udGhzOiBudW1iZXIgPSAwO1xyXG4gIHllYXJzOiBudW1iZXIgPSAwO1xyXG4gIGRhdGVfZnV0dXJlOiBhbnk7XHJcbiAgZGF0ZV9ub3c6IGFueTtcclxuICBzaG93VGltZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvL1VwbG9hZCBNb2RlbCBDb250cm9sc1xyXG4gIHVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgdXBsb2FkRmlsZUZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIGxpY2Vuc2VGaWxlSW5wdXQ6IEZpbGVVcGxvYWRPcHRpb25zO1xyXG4gIGFwcGVuZEV4aXN0aW5nOiBib29sZWFuO1xyXG4gIGluaXRpYWxNaW51dGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMjQgKiA2MCAqIDMwKTs7XHJcbiAgdmFsdWUgPSAwO1xyXG4gIHRpbWVyJDogYW55XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxpY2Vuc2VTZXJ2aWNlOiBMaWNlbnNlU2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vUGFnZSBoZWFkZXIgKGJyZWFkY3J1bWIgYW5kIHRpdGxlKVxyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxpY2Vuc2VcIilcclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9XHJcblxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG4gICAgdGhpcy5wcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKClcclxuICAgIC8vaW5pdGlhbGl6ZSBwYWdlXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcblxyXG4gIH1cclxuXHJcblxyXG5cclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMubGljZW5zZVNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uTGljZW5zZSgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIGxldCBNb2RlbCA9IHJlc3VsdCBhcyBhbnlcclxuICAgICAgaWYgKE1vZGVsICE9IG51bGwpIHtcclxuICAgICAgICBsZXQgc3RhcnREYXRlID0gbmV3IERhdGUoTW9kZWwudmFsLmxpY2Vuc2VTdGFydERhdGUpO1xyXG4gICAgICAgIGxldCBlbmREYXRlID0gbmV3IERhdGUoTW9kZWwudmFsLmxpY2Vuc2VFbmREYXRlKTtcclxuICAgICAgICBsZXQgYWN0aXZhdGlvbkRhdGUgPSBuZXcgRGF0ZShNb2RlbC52YWwuYWN0aXZhdGlvbkRhdGUpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGlvbkRhdGUgPSBhY3RpdmF0aW9uRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcclxuICAgICAgICB0aGlzLmxpY2Vuc2VTdGFydERhdGUgPSBzdGFydERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKClcclxuICAgICAgICB0aGlzLmxpY2Vuc2VFbmREYXRlID0gZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKVxyXG4gICAgICAgIHRoaXMubmFtZSA9IE1vZGVsLnZhbC5uYW1lLmN1cnJlbnRcclxuICAgICAgICBsZXQgQ3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGlmICgoZW5kRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA9PSBDdXJyZW50RGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSkpXHJcbiAgICAgICAgICB0aGlzLm5vTGljZW5zZUZvdW5kID0gdHJ1ZVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMubm9MaWNlbnNlRm91bmQgPSBmYWxzZVxyXG5cclxuICAgICAgICB0aGlzLmRhdGVJbk1pbnV0ZXMgPSB0aGlzLmdldERpZmZlcmVuY2VJbk1pbnV0ZXMoQ3VycmVudERhdGUsIGVuZERhdGUpO1xyXG5cclxuICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVfZnV0dXJlID0gZW5kRGF0ZTtcclxuICAgICAgICAgIHRoaXMuZGF0ZV9ub3cgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICAgIHRoaXMuc2Vjb25kcyA9IE1hdGguZmxvb3IoKHRoaXMuZGF0ZV9mdXR1cmUgLSAodGhpcy5kYXRlX25vdykpIC8gMTAwMCk7XHJcbiAgICAgICAgICB0aGlzLm1pbnV0ZXMgPSBNYXRoLmZsb29yKHRoaXMuc2Vjb25kcyAvIDYwKTtcclxuICAgICAgICAgIHRoaXMuaG91cnMgPSBNYXRoLmZsb29yKHRoaXMubWludXRlcyAvIDYwKTtcclxuICAgICAgICAgIHRoaXMuZGF5cyA9IE1hdGguZmxvb3IodGhpcy5ob3VycyAvIDI0KTtcclxuICAgICAgICAgIHRoaXMubW9udGhzID0gTWF0aC5mbG9vcih0aGlzLmRheXMgLyAzMSk7XHJcbiAgICAgICAgICB0aGlzLnllYXJzID0gTWF0aC5mbG9vcih0aGlzLm1vbnRocyAvIDEyKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmhvdXJzID0gdGhpcy5ob3VycyAtICh0aGlzLmRheXMgKiAyNCk7XHJcbiAgICAgICAgICB0aGlzLm1pbnV0ZXMgPSB0aGlzLm1pbnV0ZXMgLSAodGhpcy5kYXlzICogMjQgKiA2MCkgLSAodGhpcy5ob3VycyAqIDYwKTtcclxuICAgICAgICAgIHRoaXMuc2Vjb25kcyA9IHRoaXMuc2Vjb25kcyAtICh0aGlzLmRheXMgKiAyNCAqIDYwICogNjApIC0gKHRoaXMuaG91cnMgKiA2MCAqIDYwKSAtICh0aGlzLm1pbnV0ZXMgKiA2MCk7XHJcbiAgICAgICAgICB0aGlzLmRheXMgPSB0aGlzLmRheXMgLSAodGhpcy5tb250aHMgKiAzMSk7XHJcbiAgICAgICAgICB0aGlzLm1vbnRocyA9IHRoaXMubW9udGhzIC0gKHRoaXMueWVhcnMgKiAxMik7XHJcbiAgICAgICAgfSwgMTAwMCk7XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNob3dUaW1lciA9IHRydWVcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIGdldERpZmZlcmVuY2VJbk1pbnV0ZXMoZGF0ZTEsIGRhdGUyKSB7XHJcbiAgICBjb25zdCBkaWZmSW5NcyA9IE1hdGguYWJzKGRhdGUyIC0gZGF0ZTEpO1xyXG4gICAgcmV0dXJuIGRpZmZJbk1zIC8gKDEwMDAgKiA2MCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vLy8vLy8vLy8vLyBTdGFydCBhZGQgTGljZW5zZSBQYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dVcGxvYWRNb2RhbCh1cGxvYWRGaWxlTW9kYWwpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKCk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVGb3JtLnJlc2V0KCk7XHJcblxyXG4gICAgdGhpcy51cGxvYWRGaWxlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMudXBsb2FkRmlsZUZvcm1cclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFkZExpY2Vuc2VNb2RlbDtcclxuICAgIHRoaXMudXBsb2FkRmlsZUZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTGljZW5zZUZ1bmN0aW9uO1xyXG5cclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dCA9IG5ldyBGaWxlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0Lk5hbWUgPSBcIkxpY2Vuc2VGaWxlSW5wdXRcIlxyXG4gICAgdGhpcy5saWNlbnNlRmlsZUlucHV0LkxhYmVsS2V5ID0gXCJVcGxvYWRGaWxlXCJcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5Jc011bHRpcGxlRmlsZSA9IGZhbHNlXHJcbiAgICB0aGlzLmxpY2Vuc2VGaWxlSW5wdXQuSXNSZXF1aXJlZCA9IHRydWVcclxuICAgIHRoaXMubGljZW5zZUZpbGVJbnB1dC5GaWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gW0ZpbGVUeXBlLkxpY2Vuc2VdXHJcblxyXG5cclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odXBsb2FkRmlsZU1vZGFsKTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QWRkTGljZW5zZU1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLnVwbG9hZEZpbGVGb3JtLnZhbHVlO1xyXG4gICAgbGV0IE1vZGVsID0gbmV3IExpY2Vuc2VNb2RlbCgpO1xyXG5cclxuICAgIE1vZGVsLmFwcGVuZEV4aXN0aW5nID0gdGhpcy5hcHBlbmRFeGlzdGluZztcclxuICAgIE1vZGVsLkxpY2Vuc2VGaWxlID0ge1xyXG4gICAgICBGaWxlQmFzZTY0OiBSZXN1bHRNb2RlbFtcIkxpY2Vuc2VGaWxlSW5wdXRcIl0uRmlsZS5GaWxlQmFzZTY0LFxyXG4gICAgICBGaWxlTmFtZTogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZU5hbWUsXHJcbiAgICAgIEZpbGVTaXplSW5NQjogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZVNpemVJbk1CLFxyXG4gICAgICBGaWxlVHlwZTogUmVzdWx0TW9kZWxbXCJMaWNlbnNlRmlsZUlucHV0XCJdLkZpbGUuRmlsZVR5cGVcclxuICAgIH1cclxuICAgIHBhcmFtQXJyYXkucHVzaChNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEFkZExpY2Vuc2VGdW5jdGlvbiA9IChNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5saWNlbnNlU2VydmljZS51cGxvYWRMaWNlbnNlKE1vZGVsKTtcclxuICB9XHJcbiAgLy8vLy8vLy8vLy8vIEVuZCBvZiBhZGQgTGljZW5zZSAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4gIGlzQXBwZW5kRXhpc3RpbmcoYXBwZW5kRXhpc3RpbmcpIHtcclxuICAgIHRoaXMuYXBwZW5kRXhpc3RpbmcgPSBhcHBlbmRFeGlzdGluZ1xyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy9EZXN0cm95IE9ic2VydmFibGUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxibG9jay11aT48L2Jsb2NrLXVpPlxyXG5cclxuICA8IS0tQmVnaW46OlNlY3Rpb24tLT5cclxuICA8ZGl2ICBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPlxyXG4gICAgICAgICAgPGgzICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCIgY2xhc3M9XCJcIj57e25hbWV9fTwvaDM+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFub0xpY2Vuc2VGb3VuZFwiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtLTMgYmFkZ2UtbGdcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZUFjdGl2YXRlZFN1Y2Nlc3NmdWxseVwiKX19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgIDwhLS0gYmVnaW46Ok1lbnUgLS0+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwic2hvd1VwbG9hZE1vZGFsKHVwbG9hZEZpbGVNb2RhbClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZhdGVcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKm5nSWY9XCIhbm9MaWNlbnNlRm91bmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1RpbWVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFpbl9UaW1lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvY2tcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGltZSByb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJZZWFyc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ5ZWFycyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e3llYXJzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1vbnRoc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtb250aHMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3ttb250aHN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTIgY29sLW1kLTQgbWItNCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1pdGVtIGJvcmRlciBiZy1saWdodC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5IG5vdGljZSB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGF5c1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXlzIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7ZGF5c319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlIHRleHQtY2VudGVyIG1pbi13LTE1MHB4IHJvdW5kZWQgZC1ub25lIGQtbWQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci10aXRsZSBmcy0zIGZ3LWJvbGQgdGV4dC1wcmltYXJ5IGQtYmxvY2tcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb3Vyc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3VycyBmcy0yaHggZnctYm9sZGVyIHRleHQtZ3JheS05MDBcIj57e2hvdXJzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0yIGNvbC1tZC00IG1iLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaXRlbSBib3JkZXIgYmctbGlnaHQtcHJpbWFyeSBib3JkZXItcHJpbWFyeSBub3RpY2UgdGV4dC1jZW50ZXIgbWluLXctMTUwcHggcm91bmRlZCBkLW5vbmUgZC1tZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLXRpdGxlIGZzLTMgZnctYm9sZCB0ZXh0LXByaW1hcnkgZC1ibG9ja1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1pbnV0ZXNcIil9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWluIGZzLTJoeCBmdy1ib2xkZXIgdGV4dC1ncmF5LTkwMFwiPnt7bWludXRlc319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMiBjb2wtbWQtNCBtYi00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3VudGVyLWl0ZW0gYm9yZGVyIGJnLWxpZ2h0LXByaW1hcnkgYm9yZGVyLXByaW1hcnkgbm90aWNlICB0ZXh0LWNlbnRlciBtaW4tdy0xNTBweCByb3VuZGVkIGQtbm9uZSBkLW1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItdGl0bGUgZnMtMyBmdy1ib2xkIHRleHQtcHJpbWFyeSBkLWJsb2NrXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2Vjb25kc1wiKX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWMgZnMtMmh4IGZ3LWJvbGRlciB0ZXh0LWdyYXktOTAwXCI+e3tzZWNvbmRzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGxpY2Vuc2UtaGVhZFwiICpuZ0lmPVwibm9MaWNlbnNlRm91bmRcIj5cclxuICAgICAgICAgICAgPGgzIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlTm90Rm91bmRcIil9fVxyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIW5vTGljZW5zZUZvdW5kXCIgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IGZzLTcgZnctYm9sZGVyIG1lLTIgbWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMaWNlbnNlU3RhcnREYXRlXCIpfX06PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXdlaWdodC01MDBcIj57e2xpY2Vuc2VTdGFydERhdGUgfCBkYXRlOidkZC1NTS15J319PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRhbmdlciBmcy03IGZ3LWJvbGRlciBtZS0yIG1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTGljZW5zZUV4cGlyeURhdGVcIil9fTo8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtd2VpZ2h0LTUwMFwiPnt7bGljZW5zZUVuZERhdGUgfCBkYXRlOidkZC1NTS15J319PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDwhLS0gYWN0aXZhdGUtLT5cclxuICA8bmctdGVtcGxhdGUgI3VwbG9hZEZpbGVNb2RhbCBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuLi8uL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwibWItM1wiPiB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJVcGxvYWRMaWNlbnNlXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJ1cGxvYWRGaWxlRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8QkJTRi1GaWxlVXBsYW9kIFtvcHRpb25zXT1cImxpY2Vuc2VGaWxlSW5wdXRcIiBbZ3JvdXBdPVwidXBsb2FkRmlsZUZvcm1cIj5cclxuICAgICAgICA8L0JCU0YtRmlsZVVwbGFvZD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAjQ2xvc2VMaWNlbnNlRmlsZU1vZGFsIGlkPVwiQ2xvc2VMaWNlbnNlRmlsZU1vZGFsXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiaXNBcHBlbmRFeGlzdGluZyhmYWxzZSlcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQtcHJpbWFyeSBtZS0zIGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJlcGxhY2VcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImlzQXBwZW5kRXhpc3RpbmcodHJ1ZSlcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtZS0zIGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFwcGVuZFwiKX19PC9idXR0b24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvQkJTRi1Gb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4iXX0=
|