tango-app-ui-analyse-traffic 3.4.1-country.2 → 3.8.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/duplicate/duplicate.component.mjs +81 -38
- package/esm2022/lib/components/image-doc/image-doc.component.mjs +135 -52
- package/esm2022/lib/components/image-doc-view/image-doc-view.component.mjs +3 -3
- package/esm2022/lib/components/traffic-analysis/traffic-analysis.component.mjs +298 -178
- package/esm2022/lib/directive/magnifier.directive.mjs +67 -0
- package/esm2022/lib/services/traffic.service.mjs +20 -1
- package/esm2022/lib/tango-analyse-traffic.module.mjs +12 -5
- package/fesm2022/tango-app-ui-analyse-traffic.mjs +624 -290
- package/fesm2022/tango-app-ui-analyse-traffic.mjs.map +1 -1
- package/lib/components/duplicate/duplicate.component.d.ts +6 -2
- package/lib/components/image-doc/image-doc.component.d.ts +3 -0
- package/lib/components/traffic-analysis/traffic-analysis.component.d.ts +10 -0
- package/lib/directive/magnifier.directive.d.ts +15 -0
- package/lib/services/traffic.service.d.ts +6 -0
- package/lib/tango-analyse-traffic.module.d.ts +10 -8
- package/package.json +1 -1
|
@@ -3,22 +3,27 @@ import { Subject, takeUntil } from 'rxjs';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
5
5
|
import * as i2 from "../../services/traffic.service";
|
|
6
|
-
import * as i3 from "
|
|
7
|
-
import * as i4 from "@angular/
|
|
6
|
+
import * as i3 from "tango-app-ui-shared";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "@angular/forms";
|
|
8
9
|
export class DuplicateComponent {
|
|
9
10
|
activeModal;
|
|
10
11
|
service;
|
|
12
|
+
toaster;
|
|
11
13
|
inputData;
|
|
14
|
+
originalData;
|
|
12
15
|
selectedTempId;
|
|
16
|
+
alreadyTagged;
|
|
13
17
|
selectedTime;
|
|
14
18
|
description;
|
|
15
19
|
objectsArray = [{ 'folderName': '11 AM - 12 PM' }, { 'folderName': '12 PM - 1 PM' }, { 'folderName': '1 PM - 2 PM' }, { 'folderName': '2 PM - 3 PM' },];
|
|
16
20
|
checkedIndexes = [];
|
|
17
21
|
images = [];
|
|
18
22
|
selectedData = [];
|
|
19
|
-
constructor(activeModal, service) {
|
|
23
|
+
constructor(activeModal, service, toaster) {
|
|
20
24
|
this.activeModal = activeModal;
|
|
21
25
|
this.service = service;
|
|
26
|
+
this.toaster = toaster;
|
|
22
27
|
this.checkedIndexes = this.images.map(() => false);
|
|
23
28
|
}
|
|
24
29
|
destroy$ = new Subject();
|
|
@@ -71,6 +76,7 @@ export class DuplicateComponent {
|
|
|
71
76
|
const exists = this.selectedData.some((item) => item.tempId === data.tempId && item.selectedTime === data.selectedTime);
|
|
72
77
|
if (exists) {
|
|
73
78
|
this.selectedData = this.selectedData.filter((item) => !(item.tempId === data.tempId && item.selectedTime === data.selectedTime));
|
|
79
|
+
console.log(this.selectedData);
|
|
74
80
|
}
|
|
75
81
|
else {
|
|
76
82
|
this.selectedData.push({ ...data });
|
|
@@ -89,60 +95,97 @@ export class DuplicateComponent {
|
|
|
89
95
|
selectedTimes(obj) {
|
|
90
96
|
this.selectedTime = obj;
|
|
91
97
|
this.inputData.folderName = obj;
|
|
98
|
+
console.log(this.inputData.folderName);
|
|
92
99
|
this.initialDataLoad();
|
|
93
100
|
}
|
|
94
101
|
onSubmit() {
|
|
95
102
|
let payload = [];
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
name: "",
|
|
109
|
-
mobile: "",
|
|
110
|
-
email: "",
|
|
111
|
-
location: "",
|
|
112
|
-
age: "",
|
|
113
|
-
gender: "",
|
|
114
|
-
},
|
|
115
|
-
description: this.description,
|
|
116
|
-
status: "submitted",
|
|
117
|
-
issueList: []
|
|
118
|
-
};
|
|
119
|
-
payload.push(obj);
|
|
120
|
-
});
|
|
103
|
+
// const exists = this.selectedData.some(
|
|
104
|
+
// (item: any) => item.tempId === this.selectedTempId && item.selectedTime === this.selectedTime
|
|
105
|
+
// );
|
|
106
|
+
// console.log(exists,this.alreadyTagged)
|
|
107
|
+
// if(!exists&&!this.alreadyTagged){
|
|
108
|
+
// this.selectedData.push({tempId:this.selectedTempId,selectedTime:this.selectedTime})
|
|
109
|
+
// }
|
|
110
|
+
let inputData = {
|
|
111
|
+
clientId: this.inputData.clientId,
|
|
112
|
+
storeId: this.inputData.storeId[0],
|
|
113
|
+
dateString: this.inputData.footfallDate,
|
|
114
|
+
};
|
|
121
115
|
this.service
|
|
122
|
-
.
|
|
116
|
+
.revoptaggingcount(inputData)
|
|
123
117
|
.pipe(takeUntil(this.destroy$))
|
|
124
118
|
?.subscribe({
|
|
125
119
|
next: (res) => {
|
|
126
120
|
if (res && res.code === 200) {
|
|
127
|
-
this.
|
|
121
|
+
console.log(res.data.count, this.selectedData.length, this.originalData);
|
|
122
|
+
if (res.data.count <= 0 && this.originalData.length === 0 || res.data.count < this.selectedData.length && this.originalData.length === 0) {
|
|
123
|
+
this.toaster.getErrorToast("Tag limit reached! Try tagging under different categories");
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
if (this.originalData.length === 1 && this.selectedData.length > res.data.count) {
|
|
128
|
+
this.toaster.getErrorToast("Tag limit reached! Try tagging under different categories");
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
this.selectedData = [...this.selectedData, ...this.originalData];
|
|
132
|
+
this.selectedData.map((data) => {
|
|
133
|
+
let obj = {
|
|
134
|
+
clientId: this.inputData.clientId,
|
|
135
|
+
storeId: this.inputData.storeId[0],
|
|
136
|
+
timeRange: data.selectedTime,
|
|
137
|
+
dateString: this.inputData.footfallDate,
|
|
138
|
+
tempId: data.tempId,
|
|
139
|
+
processType: this.inputData.processType,
|
|
140
|
+
revopsType: "nonShopper",
|
|
141
|
+
nonshoperType: "Duplicate",
|
|
142
|
+
customerInfo: {
|
|
143
|
+
name: "",
|
|
144
|
+
mobile: "",
|
|
145
|
+
email: "",
|
|
146
|
+
location: "",
|
|
147
|
+
age: "",
|
|
148
|
+
gender: "",
|
|
149
|
+
},
|
|
150
|
+
description: this.description,
|
|
151
|
+
status: "submitted",
|
|
152
|
+
issueList: []
|
|
153
|
+
};
|
|
154
|
+
payload.push(obj);
|
|
155
|
+
});
|
|
156
|
+
this.service
|
|
157
|
+
.submitRevopTagging(payload)
|
|
158
|
+
.pipe(takeUntil(this.destroy$))
|
|
159
|
+
?.subscribe({
|
|
160
|
+
next: (res) => {
|
|
161
|
+
if (res && res.code === 200) {
|
|
162
|
+
this.activeModal.close('submit');
|
|
163
|
+
}
|
|
164
|
+
}, error: (err) => {
|
|
165
|
+
},
|
|
166
|
+
complete: () => { },
|
|
167
|
+
});
|
|
168
|
+
}
|
|
128
169
|
}
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
complete: () => { },
|
|
170
|
+
}
|
|
132
171
|
});
|
|
133
172
|
}
|
|
134
173
|
cancel() {
|
|
135
174
|
this.activeModal.close('cancel');
|
|
136
175
|
}
|
|
137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DuplicateComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.TrafficService }], target: i0.ɵɵFactoryTarget.Component });
|
|
138
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DuplicateComponent, selector: "lib-duplicate", inputs: { inputData: "inputData", selectedTempId: "selectedTempId" }, ngImport: i0, template: "<div class=\"row h-550px scroll-container scroll-y w-100\">\r\n <div class=\"col-md-12 p-5\">\r\n <div class=\"row mb-3\">\r\n \r\n <h3 class=\"card-title mx-5\">\r\n <div class=\"title-text mx-2 mt-3\">Tag Duplicate ID</div>\r\n <div class=\"text-sub mx-2 my-1\">Identify and tag the original ID this entry duplicates.</div>\r\n </h3>\r\n\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n \r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class=\"border-gray-active1 mx-3 p-5\">\r\n\r\n <div class=\"row g-3\">\r\n <div \r\n class=\"col-md-
|
|
176
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DuplicateComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.TrafficService }, { token: i3.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
177
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DuplicateComponent, selector: "lib-duplicate", inputs: { inputData: "inputData", originalData: "originalData", selectedTempId: "selectedTempId", alreadyTagged: "alreadyTagged" }, ngImport: i0, template: "<div class=\"row h-550px scroll-container scroll-y w-100\">\r\n <div class=\"col-md-12 p-5\">\r\n <div class=\"row mb-3\">\r\n \r\n <h3 class=\"card-title mx-5\">\r\n <div class=\"title-text mx-2 mt-3\">Tag Duplicate ID</div>\r\n <div class=\"text-sub mx-2 my-1\">Identify and tag the original ID this entry duplicates.</div>\r\n </h3>\r\n\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n \r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class=\"border-gray-active1 mx-3 p-5\">\r\n\r\n <div class=\"row g-3\">\r\n <div \r\n class=\"col-md-4 \" \r\n *ngFor=\"let obj of images\"\r\n \r\n >\r\n <div class=\"p-3 rounded border mt-3 border-2 \" [ngClass]=\"{\r\n 'border-primary': isChecked(obj),\r\n 'border-secondary': !isChecked(obj)\r\n }\">\r\n <div class=\"form-check mb-2 \">\r\n <input *ngIf=\"selectedTempId!==obj?.tempId\"\r\n class=\"form-check-input mt-1\"\r\n type=\"checkbox\"\r\n [id]=\"'flexCheck' + obj.tempId\"\r\n (change)=\"toggleCheck(obj)\"\r\n [checked]=\"isChecked(obj)\"\r\n />\r\n <label class=\"form-check-label ms-1\" [for]=\"'flexCheck' + obj.tempId\">\r\n {{ obj?.tempId }}\r\n </label>\r\n </div>\r\n <img [src]=\"obj.image\" alt=\"Image\" class=\"img-fluid w-100 h-200px rounded\" />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n \r\n \r\n \r\n <div class=\"col-md-12 mt-5 pb-5\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"3\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline mt-3 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\" (click)=\"onSubmit()\">Submit</button>\r\n \r\n </div>\r\n </div>\r\n</div>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}input[type=checkbox]{width:16px!important;height:16px!important;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}.overflow-x{overflow-x:auto}.scroll-y{overflow-x:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
139
178
|
}
|
|
140
179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DuplicateComponent, decorators: [{
|
|
141
180
|
type: Component,
|
|
142
|
-
args: [{ selector: 'lib-duplicate', template: "<div class=\"row h-550px scroll-container scroll-y w-100\">\r\n <div class=\"col-md-12 p-5\">\r\n <div class=\"row mb-3\">\r\n \r\n <h3 class=\"card-title mx-5\">\r\n <div class=\"title-text mx-2 mt-3\">Tag Duplicate ID</div>\r\n <div class=\"text-sub mx-2 my-1\">Identify and tag the original ID this entry duplicates.</div>\r\n </h3>\r\n\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n \r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class=\"border-gray-active1 mx-3 p-5\">\r\n\r\n <div class=\"row g-3\">\r\n <div \r\n class=\"col-md-
|
|
143
|
-
}], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.TrafficService }], propDecorators: { inputData: [{
|
|
181
|
+
args: [{ selector: 'lib-duplicate', template: "<div class=\"row h-550px scroll-container scroll-y w-100\">\r\n <div class=\"col-md-12 p-5\">\r\n <div class=\"row mb-3\">\r\n \r\n <h3 class=\"card-title mx-5\">\r\n <div class=\"title-text mx-2 mt-3\">Tag Duplicate ID</div>\r\n <div class=\"text-sub mx-2 my-1\">Identify and tag the original ID this entry duplicates.</div>\r\n </h3>\r\n\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n \r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class=\"border-gray-active1 mx-3 p-5\">\r\n\r\n <div class=\"row g-3\">\r\n <div \r\n class=\"col-md-4 \" \r\n *ngFor=\"let obj of images\"\r\n \r\n >\r\n <div class=\"p-3 rounded border mt-3 border-2 \" [ngClass]=\"{\r\n 'border-primary': isChecked(obj),\r\n 'border-secondary': !isChecked(obj)\r\n }\">\r\n <div class=\"form-check mb-2 \">\r\n <input *ngIf=\"selectedTempId!==obj?.tempId\"\r\n class=\"form-check-input mt-1\"\r\n type=\"checkbox\"\r\n [id]=\"'flexCheck' + obj.tempId\"\r\n (change)=\"toggleCheck(obj)\"\r\n [checked]=\"isChecked(obj)\"\r\n />\r\n <label class=\"form-check-label ms-1\" [for]=\"'flexCheck' + obj.tempId\">\r\n {{ obj?.tempId }}\r\n </label>\r\n </div>\r\n <img [src]=\"obj.image\" alt=\"Image\" class=\"img-fluid w-100 h-200px rounded\" />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n \r\n \r\n \r\n <div class=\"col-md-12 mt-5 pb-5\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"3\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" class=\"btn btn-outline mt-3 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\" (click)=\"onSubmit()\">Submit</button>\r\n \r\n </div>\r\n </div>\r\n</div>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}input[type=checkbox]{width:16px!important;height:16px!important;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.2em;padding-left:0;padding-top:9px;padding-right:4px}.overflow-x{overflow-x:auto}.scroll-y{overflow-x:hidden}\n"] }]
|
|
182
|
+
}], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.TrafficService }, { type: i3.ToastService }], propDecorators: { inputData: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], originalData: [{
|
|
144
185
|
type: Input
|
|
145
186
|
}], selectedTempId: [{
|
|
146
187
|
type: Input
|
|
188
|
+
}], alreadyTagged: [{
|
|
189
|
+
type: Input
|
|
147
190
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvZHVwbGljYXRlL2R1cGxpY2F0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2R1cGxpY2F0ZS9kdXBsaWNhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU8xQyxNQUFNLE9BQU8sa0JBQWtCO0lBU1Q7SUFBcUM7SUFSaEQsU0FBUyxDQUFLO0lBQ2QsY0FBYyxDQUFLO0lBQzVCLFlBQVksQ0FBTTtJQUNsQixXQUFXLENBQU07SUFDakIsWUFBWSxHQUFRLENBQUMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQztJQUM3SixjQUFjLEdBQWMsRUFBRSxDQUFDO0lBQy9CLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDakIsWUFBWSxHQUFRLEVBQUUsQ0FBQTtJQUN0QixZQUFvQixXQUEyQixFQUFVLE9BQXVCO1FBQTVELGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQzlFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7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QyxDQUFBO0lBQ04sQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDO3dHQTlJVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiwySENUL0IsMHNHQXVFTTs7NEZEOURPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlO2dIQUtoQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmFmZmljU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYWZmaWMuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWR1cGxpY2F0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R1cGxpY2F0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2R1cGxpY2F0ZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIER1cGxpY2F0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaW5wdXREYXRhOiBhbnlcclxuICBASW5wdXQoKSBzZWxlY3RlZFRlbXBJZDogYW55XHJcbiAgc2VsZWN0ZWRUaW1lOiBhbnk7XHJcbiAgZGVzY3JpcHRpb246IGFueTtcclxuICBvYmplY3RzQXJyYXk6IGFueSA9IFt7ICdmb2xkZXJOYW1lJzogJzExIEFNIC0gMTIgUE0nIH0sIHsgJ2ZvbGRlck5hbWUnOiAnMTIgUE0gLSAxIFBNJyB9LCB7ICdmb2xkZXJOYW1lJzogJzEgUE0gLSAyIFBNJyB9LCB7ICdmb2xkZXJOYW1lJzogJzIgUE0gLSAzIFBNJyB9LF07XHJcbiAgY2hlY2tlZEluZGV4ZXM6IGJvb2xlYW5bXSA9IFtdO1xyXG4gIGltYWdlczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWREYXRhOiBhbnkgPSBbXVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLCBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLCkge1xyXG4gICAgdGhpcy5jaGVja2VkSW5kZXhlcyA9IHRoaXMuaW1hZ2VzLm1hcCgoKSA9PiBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gdGhpcy5pbnB1dERhdGEuZm9sZGVyTmFtZVxyXG4gICAgdGhpcy5pbml0aWFsRGF0YUxvYWQoKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmlucHV0RGF0YS5jbGllbnRJZCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5pbnB1dERhdGEuc3RvcmVJZCxcclxuICAgICAgZm9vdGZhbGxEYXRlOiB0aGlzLmlucHV0RGF0YS5mb290ZmFsbERhdGUsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLmlucHV0RGF0YS5wcm9jZXNzVHlwZSxcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0Rm9vdGZhbGxEaXJlY3RvcnlGb2xkZXJzKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gcmVzLmRhdGEuZm9vdGZhbGxEYXRhO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGlzQ2hlY2tlZChkYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRGF0YS5zb21lKFxyXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnRlbXBJZCA9PT0gZGF0YS50ZW1wSWQgJiYgaXRlbS5zZWxlY3RlZFRpbWUgPT09IGRhdGEuc2VsZWN0ZWRUaW1lXHJcbiAgICApO1xyXG4gIH1cclxuICBcclxuXHJcbiAgaW5pdGlhbERhdGFMb2FkKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEZvb3RmYWxsRGlyZWN0b3J5KHRoaXMuaW5wdXREYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICByZXMuZGF0YS5mb290ZmFsbERhdGEgPSAgcmVzLmRhdGEuZm9vdGZhbGxEYXRhLmZpbHRlcigoZWxlOmFueSk9PmVsZS50ZW1wSWQhPT10aGlzLnNlbGVjdGVkVGVtcElkKVxyXG4gICAgICAgICAgICB0aGlzLmltYWdlcyA9IHJlcy5kYXRhLmZvb3RmYWxsRGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICBpbWFnZTogZGF0YS5pbWFnZXMuZW50cnlUaW1lSW1hZ2UsXHJcbiAgICAgICAgICAgICAgdGVtcElkOiBkYXRhLnRlbXBJZCxcclxuICAgICAgICAgICAgICBzZWxlY3RlZFRpbWU6IHRoaXMuaW5wdXREYXRhLmZvbGRlck5hbWVcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHsgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZUNoZWNrKGRhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coZGF0YSlcclxuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuc2VsZWN0ZWREYXRhLnNvbWUoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0udGVtcElkID09PSBkYXRhLnRlbXBJZCAmJiBpdGVtLnNlbGVjdGVkVGltZSA9PT0gZGF0YS5zZWxlY3RlZFRpbWVcclxuICAgICk7XHJcbiAgXHJcbiAgICBpZiAoZXhpc3RzKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKFxyXG4gICAgICAgIChpdGVtOiBhbnkpID0+ICEoaXRlbS50ZW1wSWQgPT09IGRhdGEudGVtcElkICYmIGl0ZW0uc2VsZWN0ZWRUaW1lID09PSBkYXRhLnNlbGVjdGVkVGltZSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhLnB1c2goeyAuLi5kYXRhIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuXHJcbiAgLy8gdG9nZ2xlQ2hlY2soaW5kZXg6IG51bWJlciwgZGF0YTogYW55KTogdm9pZCB7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhpbmRleCwgZGF0YSlcclxuICAvLyAgIHRoaXMuY2hlY2tlZEluZGV4ZXNbaW5kZXhdID0gIXRoaXMuY2hlY2tlZEluZGV4ZXNbaW5kZXhdO1xyXG4gIC8vICAgbGV0IGV4aXRzQ291bnQgPSB0aGlzLnNlbGVjdGVkRGF0YS5maWx0ZXIoKGVsZTogYW55KSA9PiBlbGUudGVtcElkID09PSBkYXRhLnRlbXBJZCkubGVuZ3RoXHJcblxyXG4gIC8vICAgaWYoZXhpdHNDb3VudD4wICl7XHJcbiAgLy8gICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKChvYmo6IGFueSkgPT4gb2JqLnRlbXBJZCAhPT0gZGF0YS50ZW1wSWQpXHJcbiAgLy8gICB9ZWxzZXtcclxuICAvLyAgICAgdGhpcy5zZWxlY3RlZERhdGEucHVzaChkYXRhKVxyXG4gIC8vICAgfVxyXG5cclxuICAvLyB9XHJcbiAgc2VsZWN0ZWRUaW1lcyhvYmo6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSBvYmpcclxuICAgIHRoaXMuaW5wdXREYXRhLmZvbGRlck5hbWUgPSBvYmpcclxuICAgIHRoaXMuaW5pdGlhbERhdGFMb2FkKClcclxuICB9XHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBsZXQgcGF5bG9hZDogYW55ID0gW11cclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhLnB1c2goe3RlbXBJZDp0aGlzLnNlbGVjdGVkVGVtcElkLHNlbGVjdGVkVGltZTp0aGlzLnNlbGVjdGVkVGltZX0pXHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0YS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgb2JqID0ge1xyXG4gICAgICAgIGNsaWVudElkOiB0aGlzLmlucHV0RGF0YS5jbGllbnRJZCxcclxuICAgICAgICBzdG9yZUlkOiB0aGlzLmlucHV0RGF0YS5zdG9yZUlkWzBdLFxyXG4gICAgICAgIHRpbWVSYW5nZTogZGF0YS5zZWxlY3RlZFRpbWUsXHJcbiAgICAgICAgZGF0ZVN0cmluZzogdGhpcy5pbnB1dERhdGEuZm9vdGZhbGxEYXRlLFxyXG4gICAgICAgIHRlbXBJZDogZGF0YS50ZW1wSWQsXHJcbiAgICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuaW5wdXREYXRhLnByb2Nlc3NUeXBlLFxyXG4gICAgICAgIHJldm9wc1R5cGU6IFwibm9uU2hvcHBlclwiLFxyXG4gICAgICAgIG5vbnNob3BlclR5cGU6IFwiRHVwbGljYXRlXCIsXHJcbiAgICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgbW9iaWxlOiBcIlwiLFxyXG4gICAgICAgICAgZW1haWw6IFwiXCIsXHJcbiAgICAgICAgICBsb2NhdGlvbjogXCJcIixcclxuICAgICAgICAgIGFnZTogXCJcIixcclxuICAgICAgICAgIGdlbmRlcjogXCJcIixcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgIHN0YXR1czogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgICBpc3N1ZUxpc3Q6IFtdXHJcbiAgICAgIH1cclxuICAgICAgcGF5bG9hZC5wdXNoKG9iailcclxuICAgIH0pXHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLnN1Ym1pdFJldm9wVGFnZ2luZyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWJtaXQnKTtcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHsgfSxcclxuICAgICAgfSlcclxuICB9XHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnY2FuY2VsJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgaC01NTBweCBzY3JvbGwtY29udGFpbmVyIHNjcm9sbC15IHctMTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHAtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItM1wiPlxyXG4gIFxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBteC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXRleHQgbXgtMiBtdC0zXCI+VGFnIER1cGxpY2F0ZSBJRDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1YiBteC0yIG15LTFcIj5JZGVudGlmeSBhbmQgdGFnIHRoZSBvcmlnaW5hbCBJRCB0aGlzIGVudHJ5IGR1cGxpY2F0ZXMuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJkLWZsZXggbXQtMiBtYi0yIHctMTAwIG92ZXJmbG93LXggcHgtMFwiPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wgdGV4dC1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIG9iamVjdHNBcnJheVwiPlxyXG4gICAgICAgICAgICAgIDx1bCAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRpbWVzKG9iai5mb2xkZXJOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8uZm9sZGVyTmFtZSA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBteC0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uZm9sZGVyTmFtZX19PHNwYW4gY2xhc3M9XCJteC0yIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e29iaj8uY291bnQ/b2JqPy5jb3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1ncmF5LWFjdGl2ZTEgbXgtMyBwLTVcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC1tZC0zIHJvdW5kZWQgYm9yZGVyIG10LTMgcC0zIGJvcmRlci0yIG1lLTVcIiBcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb2JqIG9mIGltYWdlc1wiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2JvcmRlci1wcmltYXJ5JzogaXNDaGVja2VkKG9iaiksXHJcbiAgICAgICAgICAgICAgICAnYm9yZGVyLXNlY29uZGFyeSc6ICFpc0NoZWNrZWQob2JqKVxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwic2VsZWN0ZWRUZW1wSWQhPT1vYmo/LnRlbXBJZFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgW2lkXT1cIidmbGV4Q2hlY2snICsgb2JqLnRlbXBJZFwiXHJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2sob2JqKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZChvYmopXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG1zLTFcIiBbZm9yXT1cIidmbGV4Q2hlY2snICsgb2JqLnRlbXBJZFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBvYmo/LnRlbXBJZCB9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwib2JqLmltYWdlXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImltZy1mbHVpZCB3LTEwMCBoLTIwMHB4IHJvdW5kZWRcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC01IHBiLTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImV4YW1wbGVJbnB1dE5hbWVcIj5EZXNjcmlwdGlvbiAoT3B0aW9uYWwpPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHRleHRhcmVhICBbKG5nTW9kZWwpXT1cImRlc2NyaXB0aW9uXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtM1wiIHJvd3M9XCIzXCIgcGxhY2Vob2xkZXI9XCJcIj48L3RleHRhcmVhPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBtdC0zIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvZHVwbGljYXRlL2R1cGxpY2F0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2R1cGxpY2F0ZS9kdXBsaWNhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFTMUMsTUFBTSxPQUFPLGtCQUFrQjtJQVdUO0lBQXFDO0lBQzdDO0lBWEgsU0FBUyxDQUFLO0lBQ2QsWUFBWSxDQUFLO0lBQ2pCLGNBQWMsQ0FBSztJQUNuQixhQUFhLENBQVM7SUFDL0IsWUFBWSxDQUFNO0lBQ2xCLFdBQVcsQ0FBTTtJQUNqQixZQUFZLEdBQVEsQ0FBQyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxDQUFDO0lBQzdKLGNBQWMsR0FBYyxFQUFFLENBQUM7SUFDL0IsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixZQUFZLEdBQVEsRUFBRSxDQUFBO0lBQ3RCLFlBQW9CLFdBQTJCLEVBQVUsT0FBdUIsRUFDcEUsT0FBcUI7UUFEYixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUNwRSxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQy9CLElBQUks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QUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUMvQixFQUFFLFNBQVMsQ0FBQzs0QkFDVixJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQ0FDakIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7b0NBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lDQUVsQzs0QkFDSCxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7NEJBQ3ZCLENBQUM7NEJBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7eUJBQ3BCLENBQUMsQ0FBQTtxQkFDTDtpQkFDRjtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFNTixDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7d0dBNUxVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHlMQ1gvQiw4dUdBd0VNOzs0RkQ3RE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7MklBS2hCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUcmFmZmljU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYWZmaWMuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZHVwbGljYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHVwbGljYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZHVwbGljYXRlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRHVwbGljYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBpbnB1dERhdGE6IGFueVxyXG4gIEBJbnB1dCgpIG9yaWdpbmFsRGF0YTogYW55XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRUZW1wSWQ6IGFueVxyXG4gIEBJbnB1dCgpIGFscmVhZHlUYWdnZWQ6IGJvb2xlYW5cclxuICBzZWxlY3RlZFRpbWU6IGFueTtcclxuICBkZXNjcmlwdGlvbjogYW55O1xyXG4gIG9iamVjdHNBcnJheTogYW55ID0gW3sgJ2ZvbGRlck5hbWUnOiAnMTEgQU0gLSAxMiBQTScgfSwgeyAnZm9sZGVyTmFtZSc6ICcxMiBQTSAtIDEgUE0nIH0sIHsgJ2ZvbGRlck5hbWUnOiAnMSBQTSAtIDIgUE0nIH0sIHsgJ2ZvbGRlck5hbWUnOiAnMiBQTSAtIDMgUE0nIH0sXTtcclxuICBjaGVja2VkSW5kZXhlczogYm9vbGVhbltdID0gW107XHJcbiAgaW1hZ2VzOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZERhdGE6IGFueSA9IFtdXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsIHByaXZhdGUgc2VydmljZTogVHJhZmZpY1NlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RTZXJ2aWNlLCkge1xyXG4gICAgdGhpcy5jaGVja2VkSW5kZXhlcyA9IHRoaXMuaW1hZ2VzLm1hcCgoKSA9PiBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gdGhpcy5pbnB1dERhdGEuZm9sZGVyTmFtZVxyXG4gICAgdGhpcy5pbml0aWFsRGF0YUxvYWQoKVxyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmlucHV0RGF0YS5jbGllbnRJZCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5pbnB1dERhdGEuc3RvcmVJZCxcclxuICAgICAgZm9vdGZhbGxEYXRlOiB0aGlzLmlucHV0RGF0YS5mb290ZmFsbERhdGUsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLmlucHV0RGF0YS5wcm9jZXNzVHlwZSxcclxuXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0Rm9vdGZhbGxEaXJlY3RvcnlGb2xkZXJzKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gcmVzLmRhdGEuZm9vdGZhbGxEYXRhO1xyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGlzQ2hlY2tlZChkYXRhOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRGF0YS5zb21lKFxyXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnRlbXBJZCA9PT0gZGF0YS50ZW1wSWQgJiYgaXRlbS5zZWxlY3RlZFRpbWUgPT09IGRhdGEuc2VsZWN0ZWRUaW1lXHJcbiAgICApO1xyXG4gIH1cclxuICBcclxuXHJcbiAgaW5pdGlhbERhdGFMb2FkKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEZvb3RmYWxsRGlyZWN0b3J5KHRoaXMuaW5wdXREYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICByZXMuZGF0YS5mb290ZmFsbERhdGEgPSAgcmVzLmRhdGEuZm9vdGZhbGxEYXRhLmZpbHRlcigoZWxlOmFueSk9PmVsZS50ZW1wSWQhPT10aGlzLnNlbGVjdGVkVGVtcElkKVxyXG4gICAgICAgICAgICB0aGlzLmltYWdlcyA9IHJlcy5kYXRhLmZvb3RmYWxsRGF0YS5tYXAoKGRhdGE6IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgICBpbWFnZTogZGF0YS5pbWFnZXMuZW50cnlUaW1lSW1hZ2UsXHJcbiAgICAgICAgICAgICAgdGVtcElkOiBkYXRhLnRlbXBJZCxcclxuICAgICAgICAgICAgICBzZWxlY3RlZFRpbWU6IHRoaXMuaW5wdXREYXRhLmZvbGRlck5hbWVcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHsgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZUNoZWNrKGRhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coZGF0YSlcclxuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuc2VsZWN0ZWREYXRhLnNvbWUoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0udGVtcElkID09PSBkYXRhLnRlbXBJZCAmJiBpdGVtLnNlbGVjdGVkVGltZSA9PT0gZGF0YS5zZWxlY3RlZFRpbWVcclxuICAgICk7XHJcbiAgXHJcbiAgICBpZiAoZXhpc3RzKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKFxyXG4gICAgICAgIChpdGVtOiBhbnkpID0+ICEoaXRlbS50ZW1wSWQgPT09IGRhdGEudGVtcElkICYmIGl0ZW0uc2VsZWN0ZWRUaW1lID09PSBkYXRhLnNlbGVjdGVkVGltZSlcclxuICAgICAgKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZERhdGEpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YS5wdXNoKHsgLi4uZGF0YSB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG4gIC8vIHRvZ2dsZUNoZWNrKGluZGV4OiBudW1iZXIsIGRhdGE6IGFueSk6IHZvaWQge1xyXG4gIC8vICAgY29uc29sZS5sb2coaW5kZXgsIGRhdGEpXHJcbiAgLy8gICB0aGlzLmNoZWNrZWRJbmRleGVzW2luZGV4XSA9ICF0aGlzLmNoZWNrZWRJbmRleGVzW2luZGV4XTtcclxuICAvLyAgIGxldCBleGl0c0NvdW50ID0gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlLnRlbXBJZCA9PT0gZGF0YS50ZW1wSWQpLmxlbmd0aFxyXG5cclxuICAvLyAgIGlmKGV4aXRzQ291bnQ+MCApe1xyXG4gIC8vICAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWREYXRhLmZpbHRlcigob2JqOiBhbnkpID0+IG9iai50ZW1wSWQgIT09IGRhdGEudGVtcElkKVxyXG4gIC8vICAgfWVsc2V7XHJcbiAgLy8gICAgIHRoaXMuc2VsZWN0ZWREYXRhLnB1c2goZGF0YSlcclxuICAvLyAgIH1cclxuXHJcbiAgLy8gfVxyXG4gIHNlbGVjdGVkVGltZXMob2JqOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gb2JqXHJcbiAgICB0aGlzLmlucHV0RGF0YS5mb2xkZXJOYW1lID0gb2JqXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmlucHV0RGF0YS5mb2xkZXJOYW1lKVxyXG4gICAgdGhpcy5pbml0aWFsRGF0YUxvYWQoKVxyXG4gIH1cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGxldCBwYXlsb2FkOiBhbnkgPSBbXVxyXG4gICAgLy8gY29uc3QgZXhpc3RzID0gdGhpcy5zZWxlY3RlZERhdGEuc29tZShcclxuICAgIC8vICAgKGl0ZW06IGFueSkgPT4gaXRlbS50ZW1wSWQgPT09IHRoaXMuc2VsZWN0ZWRUZW1wSWQgJiYgaXRlbS5zZWxlY3RlZFRpbWUgPT09IHRoaXMuc2VsZWN0ZWRUaW1lXHJcbiAgICAvLyApO1xyXG4gICAgLy8gY29uc29sZS5sb2coZXhpc3RzLHRoaXMuYWxyZWFkeVRhZ2dlZClcclxuICAgIC8vIGlmKCFleGlzdHMmJiF0aGlzLmFscmVhZHlUYWdnZWQpe1xyXG4gICAgLy8gICB0aGlzLnNlbGVjdGVkRGF0YS5wdXNoKHt0ZW1wSWQ6dGhpcy5zZWxlY3RlZFRlbXBJZCxzZWxlY3RlZFRpbWU6dGhpcy5zZWxlY3RlZFRpbWV9KVxyXG4gICAgLy8gfVxyXG5cclxuICAgIGxldCBpbnB1dERhdGEgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmlucHV0RGF0YS5jbGllbnRJZCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5pbnB1dERhdGEuc3RvcmVJZFswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5pbnB1dERhdGEuZm9vdGZhbGxEYXRlLFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAucmV2b3B0YWdnaW5nY291bnQoaW5wdXREYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcy5kYXRhLmNvdW50LHRoaXMuc2VsZWN0ZWREYXRhLmxlbmd0aCx0aGlzLm9yaWdpbmFsRGF0YSlcclxuICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmNvdW50IDw9IDAmJnRoaXMub3JpZ2luYWxEYXRhLmxlbmd0aD09PTB8fHJlcy5kYXRhLmNvdW50PHRoaXMuc2VsZWN0ZWREYXRhLmxlbmd0aCYmdGhpcy5vcmlnaW5hbERhdGEubGVuZ3RoPT09MCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KFwiVGFnIGxpbWl0IHJlYWNoZWQhIFRyeSB0YWdnaW5nIHVuZGVyIGRpZmZlcmVudCBjYXRlZ29yaWVzXCIpXHJcbiAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgIH1lbHNle1xyXG5cclxuICAgICAgICAgICAgICBpZih0aGlzLm9yaWdpbmFsRGF0YS5sZW5ndGg9PT0xJiZ0aGlzLnNlbGVjdGVkRGF0YS5sZW5ndGg+cmVzLmRhdGEuY291bnQpe1xyXG4gICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0RXJyb3JUb2FzdChcIlRhZyBsaW1pdCByZWFjaGVkISBUcnkgdGFnZ2luZyB1bmRlciBkaWZmZXJlbnQgY2F0ZWdvcmllc1wiKVxyXG4gICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gIFsuLi50aGlzLnNlbGVjdGVkRGF0YSwuLi50aGlzLm9yaWdpbmFsRGF0YV1cclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgICAgICAgICAgY2xpZW50SWQ6IHRoaXMuaW5wdXREYXRhLmNsaWVudElkLFxyXG4gICAgICAgICAgICAgICAgICBzdG9yZUlkOiB0aGlzLmlucHV0RGF0YS5zdG9yZUlkWzBdLFxyXG4gICAgICAgICAgICAgICAgICB0aW1lUmFuZ2U6IGRhdGEuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICAgICAgICAgICAgICBkYXRlU3RyaW5nOiB0aGlzLmlucHV0RGF0YS5mb290ZmFsbERhdGUsXHJcbiAgICAgICAgICAgICAgICAgIHRlbXBJZDogZGF0YS50ZW1wSWQsXHJcbiAgICAgICAgICAgICAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLmlucHV0RGF0YS5wcm9jZXNzVHlwZSxcclxuICAgICAgICAgICAgICAgICAgcmV2b3BzVHlwZTogXCJub25TaG9wcGVyXCIsXHJcbiAgICAgICAgICAgICAgICAgIG5vbnNob3BlclR5cGU6IFwiRHVwbGljYXRlXCIsXHJcbiAgICAgICAgICAgICAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9iaWxlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGVtYWlsOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGFnZTogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICBnZW5kZXI6IFwiXCIsXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgIGlzc3VlTGlzdDogW11cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHBheWxvYWQucHVzaChvYmopXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdzdWJtaXQnKTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuXHJcblxyXG5cclxuXHJcbiAgICBcclxuICB9XHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnY2FuY2VsJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgaC01NTBweCBzY3JvbGwtY29udGFpbmVyIHNjcm9sbC15IHctMTAwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHAtNVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItM1wiPlxyXG4gIFxyXG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBteC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXRleHQgbXgtMiBtdC0zXCI+VGFnIER1cGxpY2F0ZSBJRDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1YiBteC0yIG15LTFcIj5JZGVudGlmeSBhbmQgdGFnIHRoZSBvcmlnaW5hbCBJRCB0aGlzIGVudHJ5IGR1cGxpY2F0ZXMuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2gzPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJkLWZsZXggbXQtMiBtYi0yIHctMTAwIG92ZXJmbG93LXggcHgtMFwiPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wgdGV4dC1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIG9iamVjdHNBcnJheVwiPlxyXG4gICAgICAgICAgICAgIDx1bCAgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRpbWVzKG9iai5mb2xkZXJOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8uZm9sZGVyTmFtZSA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBteC0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uZm9sZGVyTmFtZX19PHNwYW4gY2xhc3M9XCJteC0yIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e29iaj8uY291bnQ/b2JqPy5jb3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1ncmF5LWFjdGl2ZTEgbXgtMyBwLTVcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC1tZC00IFwiIFxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvYmogb2YgaW1hZ2VzXCJcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0zIHJvdW5kZWQgYm9yZGVyIG10LTMgYm9yZGVyLTIgXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2JvcmRlci1wcmltYXJ5JzogaXNDaGVja2VkKG9iaiksXHJcbiAgICAgICAgICAgICAgICAnYm9yZGVyLXNlY29uZGFyeSc6ICFpc0NoZWNrZWQob2JqKVxyXG4gICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBtYi0yIFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwic2VsZWN0ZWRUZW1wSWQhPT1vYmo/LnRlbXBJZFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgW2lkXT1cIidmbGV4Q2hlY2snICsgb2JqLnRlbXBJZFwiXHJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2sob2JqKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZChvYmopXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG1zLTFcIiBbZm9yXT1cIidmbGV4Q2hlY2snICsgb2JqLnRlbXBJZFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBvYmo/LnRlbXBJZCB9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwib2JqLmltYWdlXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImltZy1mbHVpZCB3LTEwMCBoLTIwMHB4IHJvdW5kZWRcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC01IHBiLTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImV4YW1wbGVJbnB1dE5hbWVcIj5EZXNjcmlwdGlvbiAoT3B0aW9uYWwpPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHRleHRhcmVhICBbKG5nTW9kZWwpXT1cImRlc2NyaXB0aW9uXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtM1wiIHJvd3M9XCIzXCIgcGxhY2Vob2xkZXI9XCJcIj48L3RleHRhcmVhPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBtdC0zIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|