tango-app-ui-manage-tickets 3.7.0-beta.5 → 3.7.0-beta.50
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/audit-mapping-list/audit-mapping-list.component.mjs +486 -0
- package/esm2022/lib/components/audit-report-popup/audit-report-popup.component.mjs +387 -0
- package/esm2022/lib/components/audit-retag/audit-retag.component.mjs +472 -0
- package/esm2022/lib/components/custom-select/custom-select.component.mjs +174 -0
- package/esm2022/lib/components/filter-options/filter-options.component.mjs +41 -0
- package/esm2022/lib/components/footfall-dic/footfall-dic.component.mjs +369 -198
- package/esm2022/lib/components/footfall-dicview/footfall-dicview.component.mjs +1014 -0
- package/esm2022/lib/components/footfall-popup/footfall-popup.component.mjs +15 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +3 -3
- package/esm2022/lib/components/remove-audit/remove-audit.component.mjs +80 -0
- package/esm2022/lib/components/start-audit/start-audit.component.mjs +751 -0
- package/esm2022/lib/components/tango-manage-tickets/tango-manage-tickets.component.mjs +7 -3
- package/esm2022/lib/components/ticket-filter-panel/ticket-filter-panel.component.mjs +337 -0
- package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +2439 -0
- package/esm2022/lib/components/ticketclosepopup/ticketclosepopup.component.mjs +43 -0
- package/esm2022/lib/components/tickets/tickets.component.mjs +62 -8
- package/esm2022/lib/components/viewcategory/viewcategory.component.mjs +89 -0
- package/esm2022/lib/services/audit.service.mjs +88 -0
- package/esm2022/lib/services/ticket.service.mjs +175 -33
- package/esm2022/lib/services/timer.service.mjs +84 -0
- package/esm2022/lib/tango-manage-tickets-routing.module.mjs +22 -2
- package/esm2022/lib/tango-manage-tickets.module.mjs +60 -5
- package/fesm2022/tango-app-ui-manage-tickets.mjs +7134 -330
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
- package/lib/components/audit-mapping-list/audit-mapping-list.component.d.ts +73 -0
- package/lib/components/audit-metrics/audit-metrics.component.d.ts +1 -1
- package/lib/components/audit-report-popup/audit-report-popup.component.d.ts +51 -0
- package/lib/components/audit-retag/audit-retag.component.d.ts +59 -0
- package/lib/components/custom-select/custom-select.component.d.ts +34 -0
- package/lib/components/filter-options/filter-options.component.d.ts +15 -0
- package/lib/components/footfall-dic/footfall-dic.component.d.ts +21 -8
- package/lib/components/footfall-dicview/footfall-dicview.component.d.ts +132 -0
- package/lib/components/footfall-popup/footfall-popup.component.d.ts +8 -0
- package/lib/components/remove-audit/remove-audit.component.d.ts +16 -0
- package/lib/components/start-audit/start-audit.component.d.ts +86 -0
- package/lib/components/tango-manage-tickets/tango-manage-tickets.component.d.ts +1 -0
- package/lib/components/ticket-filter-panel/ticket-filter-panel.component.d.ts +62 -0
- package/lib/components/ticket-footfall-new/ticket-footfall-new.component.d.ts +273 -0
- package/lib/components/ticketclosepopup/ticketclosepopup.component.d.ts +15 -0
- package/lib/components/tickets/tickets.component.d.ts +4 -0
- package/lib/components/viewcategory/viewcategory.component.d.ts +16 -0
- package/lib/services/audit.service.d.ts +36 -0
- package/lib/services/ticket.service.d.ts +41 -7
- package/lib/services/timer.service.d.ts +22 -0
- package/lib/tango-manage-tickets.module.d.ts +22 -5
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Injectable } from
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
2
|
import { BehaviorSubject, } from "rxjs";
|
|
3
|
-
import { HttpParams } from
|
|
3
|
+
import { HttpParams } from "@angular/common/http";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common/http";
|
|
6
6
|
import * as i2 from "tango-app-ui-global";
|
|
@@ -15,6 +15,8 @@ export class TicketService {
|
|
|
15
15
|
footfallDirapiUrl;
|
|
16
16
|
footfallCDN;
|
|
17
17
|
trafficApiUrl;
|
|
18
|
+
revopApiUrl;
|
|
19
|
+
clientApiUrl;
|
|
18
20
|
dropDownTrigger = new BehaviorSubject(null);
|
|
19
21
|
constructor(http, gs) {
|
|
20
22
|
this.http = http;
|
|
@@ -26,9 +28,11 @@ export class TicketService {
|
|
|
26
28
|
this.auditmetricApiUrl = env.auditmetricApiUrl;
|
|
27
29
|
this.auditApiUrl = env.auditApiUrl;
|
|
28
30
|
this.zoneauditApiUrl = env.zoneauditApiUrl;
|
|
31
|
+
this.clientApiUrl = env.clientApiUrl;
|
|
29
32
|
this.footfallDirapiUrl = env.footfallDirapiUrl;
|
|
30
33
|
this.footfallCDN = env.footfallCDN;
|
|
31
34
|
this.trafficApiUrl = env.trafficApiUrl;
|
|
35
|
+
this.revopApiUrl = env.revopApiUrl;
|
|
32
36
|
}
|
|
33
37
|
});
|
|
34
38
|
}
|
|
@@ -36,13 +40,17 @@ export class TicketService {
|
|
|
36
40
|
return this.http.post(`${this.userApiUrl}/get-list`, params);
|
|
37
41
|
}
|
|
38
42
|
exportInstallationList(data) {
|
|
39
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/installationTable`, data, { responseType:
|
|
43
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/installationTable`, data, { responseType: "arraybuffer" });
|
|
40
44
|
}
|
|
41
45
|
exportInfraList(data) {
|
|
42
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`, data, {
|
|
46
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`, data, {
|
|
47
|
+
responseType: "arraybuffer",
|
|
48
|
+
});
|
|
43
49
|
}
|
|
44
50
|
exportMatList(data) {
|
|
45
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/matTable`, data, {
|
|
51
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/matTable`, data, {
|
|
52
|
+
responseType: "arraybuffer",
|
|
53
|
+
});
|
|
46
54
|
}
|
|
47
55
|
getSotresList(data) {
|
|
48
56
|
return this.http.post(`${this.ticketsApiUrl}/infra/storeFilter`, data);
|
|
@@ -65,12 +73,6 @@ export class TicketService {
|
|
|
65
73
|
getUserActiveList(params) {
|
|
66
74
|
return this.http.post(`${this.userApiUrl}/list`, params);
|
|
67
75
|
}
|
|
68
|
-
getDataMismathList(data) {
|
|
69
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data);
|
|
70
|
-
}
|
|
71
|
-
exportDataMismatchList(data) {
|
|
72
|
-
return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data, { responseType: 'arraybuffer' });
|
|
73
|
-
}
|
|
74
76
|
getAllCounts(data) {
|
|
75
77
|
return this.http.post(`${this.ticketsApiUrl}/infra/allCounts`, data);
|
|
76
78
|
}
|
|
@@ -89,70 +91,210 @@ export class TicketService {
|
|
|
89
91
|
auditretrigger(data) {
|
|
90
92
|
return this.http.post(`${this.auditApiUrl}/metrics/re-trigger`, data);
|
|
91
93
|
}
|
|
94
|
+
getfootfallcount(data) {
|
|
95
|
+
return this.http.get(`${this.revopApiUrl}/store-processed-data?storeId=${data.storeId}&fromDate=${data.Date}&toDate=${data.Date}`);
|
|
96
|
+
}
|
|
92
97
|
getstoreList(data) {
|
|
93
98
|
return this.http.post(`${this.auditApiUrl}/audit-stores`, data);
|
|
94
99
|
}
|
|
100
|
+
checkTicketExists(data) {
|
|
101
|
+
return this.http.post(`${this.footfallDirapiUrl}/checkTicketExists`, data);
|
|
102
|
+
}
|
|
103
|
+
mergeticket(data) {
|
|
104
|
+
return this.http.post(`${this.footfallDirapiUrl}/mergeticket`, data);
|
|
105
|
+
}
|
|
106
|
+
getDataMismathList(data) {
|
|
107
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data);
|
|
108
|
+
}
|
|
109
|
+
exportDataMismatchList(data) {
|
|
110
|
+
return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data, { responseType: "arraybuffer" });
|
|
111
|
+
}
|
|
95
112
|
getAuditImages(data) {
|
|
96
113
|
return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`);
|
|
97
114
|
}
|
|
98
115
|
ExportAuditImagesasxlsx(data) {
|
|
99
|
-
return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`, { responseType:
|
|
116
|
+
return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`, { responseType: "arraybuffer" });
|
|
100
117
|
}
|
|
101
118
|
getTicketSummaryApi(client, fromDate, toDate) {
|
|
102
119
|
return this.http.get(`${this.footfallDirapiUrl}/ticket-summary?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}`);
|
|
103
120
|
}
|
|
104
|
-
|
|
121
|
+
getTicketListOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
|
|
105
122
|
return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`);
|
|
106
123
|
}
|
|
107
|
-
|
|
108
|
-
|
|
124
|
+
getTicketListApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder, tangoType, permissionType, filters) {
|
|
125
|
+
let url = `${this.footfallDirapiUrl}/ticket-list?` +
|
|
126
|
+
`clientId=${client}` +
|
|
127
|
+
`&fromDate=${fromDate}` +
|
|
128
|
+
`&toDate=${toDate}` +
|
|
129
|
+
`&searchValue=${searchvalue}` +
|
|
130
|
+
`&limit=${limit}` +
|
|
131
|
+
`&offset=${offset}` +
|
|
132
|
+
`&isExport=${isExport}` +
|
|
133
|
+
`&sortBy=${sortBy}` +
|
|
134
|
+
`&sortOrder=${sortOrder}` +
|
|
135
|
+
`&tangoType=${tangoType}`;
|
|
136
|
+
if (permissionType) {
|
|
137
|
+
url += `&permissionType=${permissionType}`;
|
|
138
|
+
}
|
|
139
|
+
if (filters) {
|
|
140
|
+
// array params – send as comma-separated
|
|
141
|
+
if (filters.filterByStatus?.length) {
|
|
142
|
+
url += `&filterByStatus=${encodeURIComponent(filters.filterByStatus.join(','))}`;
|
|
143
|
+
}
|
|
144
|
+
if (filters.filterByReviewedBy?.length) {
|
|
145
|
+
url += `&filterByReviewedBy=${encodeURIComponent(filters.filterByReviewedBy.join(','))}`;
|
|
146
|
+
}
|
|
147
|
+
if (filters.fileterByApprovedBy?.length) {
|
|
148
|
+
url += `&fileterByApprovedBy=${encodeURIComponent(filters.fileterByApprovedBy.join(','))}`;
|
|
149
|
+
}
|
|
150
|
+
// string params – JSON stringified accuracy
|
|
151
|
+
if (filters.filterByReviewer) {
|
|
152
|
+
url += `&filterByReviewer=${encodeURIComponent(filters.filterByReviewer)}`;
|
|
153
|
+
}
|
|
154
|
+
if (filters.filterByApprover) {
|
|
155
|
+
url += `&filterByApprover=${encodeURIComponent(filters.filterByApprover)}`;
|
|
156
|
+
}
|
|
157
|
+
if (filters.filterByTango) {
|
|
158
|
+
url += `&filterByTango=${encodeURIComponent(filters.filterByTango)}`;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return this.http.get(url);
|
|
162
|
+
}
|
|
163
|
+
getTicketListExportOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
|
|
164
|
+
return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`, { responseType: "arraybuffer" });
|
|
165
|
+
}
|
|
166
|
+
getTicketListExportApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder, tangoType, permissionType, filters) {
|
|
167
|
+
let url = `${this.footfallDirapiUrl}/ticket-list?` +
|
|
168
|
+
`clientId=${client}` +
|
|
169
|
+
`&fromDate=${fromDate}` +
|
|
170
|
+
`&toDate=${toDate}` +
|
|
171
|
+
`&searchValue=${searchvalue}` +
|
|
172
|
+
`&limit=${limit}` +
|
|
173
|
+
`&offset=${offset}` +
|
|
174
|
+
`&isExport=${isExport}` +
|
|
175
|
+
`&sortBy=${sortBy}` +
|
|
176
|
+
`&sortOrder=${sortOrder}` +
|
|
177
|
+
`&tangoType=${tangoType}`;
|
|
178
|
+
if (permissionType) {
|
|
179
|
+
url += `&permissionType=${permissionType}`;
|
|
180
|
+
}
|
|
181
|
+
if (filters) {
|
|
182
|
+
if (filters.filterByStatus?.length) {
|
|
183
|
+
url += `&filterByStatus=${encodeURIComponent(filters.filterByStatus.join(','))}`;
|
|
184
|
+
}
|
|
185
|
+
if (filters.filterByReviewedBy?.length) {
|
|
186
|
+
url += `&filterByReviewedBy=${encodeURIComponent(filters.filterByReviewedBy.join(','))}`;
|
|
187
|
+
}
|
|
188
|
+
if (filters.fileterByApprovedBy?.length) {
|
|
189
|
+
url += `&fileterByApprovedBy=${encodeURIComponent(filters.fileterByApprovedBy.join(','))}`;
|
|
190
|
+
}
|
|
191
|
+
if (filters.filterByReviewer) {
|
|
192
|
+
url += `&filterByReviewer=${encodeURIComponent(filters.filterByReviewer)}`;
|
|
193
|
+
}
|
|
194
|
+
if (filters.filterByApprover) {
|
|
195
|
+
url += `&filterByApprover=${encodeURIComponent(filters.filterByApprover)}`;
|
|
196
|
+
}
|
|
197
|
+
if (filters.filterByTango) {
|
|
198
|
+
url += `&filterByTango=${encodeURIComponent(filters.filterByTango)}`;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
const options = isExport
|
|
202
|
+
? { responseType: 'arraybuffer' }
|
|
203
|
+
: {};
|
|
204
|
+
return this.http.get(url, options);
|
|
109
205
|
}
|
|
110
206
|
getTicketsApi(store, fromDate, toDate, revopsType, status, action, offset, limit) {
|
|
111
207
|
let params = new HttpParams()
|
|
112
|
-
.set(
|
|
113
|
-
.set(
|
|
114
|
-
.set(
|
|
115
|
-
.set(
|
|
116
|
-
.set(
|
|
208
|
+
.set("storeId", store)
|
|
209
|
+
.set("fromDate", fromDate)
|
|
210
|
+
.set("toDate", toDate)
|
|
211
|
+
.set("offset", offset)
|
|
212
|
+
.set("limit", limit);
|
|
117
213
|
if (revopsType) {
|
|
118
|
-
params = params.set(
|
|
214
|
+
params = params.set("revopsType", revopsType);
|
|
119
215
|
}
|
|
120
216
|
if (status) {
|
|
121
|
-
params = params.set(
|
|
217
|
+
params = params.set("status", status);
|
|
122
218
|
}
|
|
123
219
|
if (action) {
|
|
124
|
-
params = params.set(
|
|
220
|
+
params = params.set("action", action);
|
|
125
221
|
}
|
|
126
222
|
return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });
|
|
127
223
|
}
|
|
128
|
-
|
|
224
|
+
getTicketsNewApi(ticketId) {
|
|
225
|
+
let params = new HttpParams().set("ticketId", ticketId);
|
|
226
|
+
return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });
|
|
227
|
+
}
|
|
228
|
+
getTaggedStoresApi(client, fromDate, toDate, searchValue, clusters, sortOrder) {
|
|
129
229
|
let params = new HttpParams()
|
|
130
|
-
.set(
|
|
131
|
-
.set(
|
|
132
|
-
.set(
|
|
230
|
+
.set("clientId", client)
|
|
231
|
+
.set("fromDate", fromDate)
|
|
232
|
+
.set("toDate", toDate); // Add searchValue as an empty string if not provided
|
|
133
233
|
// Only add 'clusters' if it's not null, undefined, or an empty array/string
|
|
134
234
|
if (searchValue) {
|
|
135
|
-
params = params.set(
|
|
235
|
+
params = params.set("searchValue", searchValue);
|
|
136
236
|
}
|
|
137
237
|
if (clusters && clusters.length > 0) {
|
|
138
|
-
params = params.set(
|
|
238
|
+
params = params.set("clusters", clusters);
|
|
239
|
+
}
|
|
240
|
+
if (sortOrder) {
|
|
241
|
+
params = params.set("sortOrder", sortOrder);
|
|
139
242
|
}
|
|
140
|
-
return this.http.get(`${this.footfallDirapiUrl}/get-tagged-stores`, {
|
|
243
|
+
return this.http.get(`${this.footfallDirapiUrl}/get-tagged-stores`, {
|
|
244
|
+
params,
|
|
245
|
+
});
|
|
141
246
|
}
|
|
142
247
|
getUpdateStatusApi(data) {
|
|
143
248
|
const url = `${this.footfallDirapiUrl}/update-status`;
|
|
144
249
|
return this.http.put(url, data);
|
|
145
250
|
}
|
|
251
|
+
getUpdateTempStatusApi(data) {
|
|
252
|
+
return this.http.post(`${this.footfallDirapiUrl}/update-temp-status`, data);
|
|
253
|
+
}
|
|
254
|
+
getOpenTicketListApi(data) {
|
|
255
|
+
return this.http.post(`${this.footfallDirapiUrl}/open-ticket-list`, data);
|
|
256
|
+
}
|
|
257
|
+
getUpdateTicketStatusApi(data) {
|
|
258
|
+
return this.http.post(`${this.footfallDirapiUrl}/update-ticket-status`, data);
|
|
259
|
+
}
|
|
260
|
+
getCreateTicketListApi(data) {
|
|
261
|
+
return this.http.post(`${this.footfallDirapiUrl}/create-ticket`, data);
|
|
262
|
+
}
|
|
263
|
+
CreateinternalTicketApi(data) {
|
|
264
|
+
return this.http.post(`${this.footfallDirapiUrl}/create-internalticket`, data);
|
|
265
|
+
}
|
|
146
266
|
getclusters(data) {
|
|
147
267
|
return this.http.post(`${this.trafficApiUrl}/headercluster_v2`, data);
|
|
148
268
|
}
|
|
269
|
+
getReviewerApi(clientId, type) {
|
|
270
|
+
let params = new HttpParams().set("clientId", clientId)
|
|
271
|
+
.set("type", type);
|
|
272
|
+
return this.http.get(`${this.footfallDirapiUrl}/reviewer-list`, { params });
|
|
273
|
+
}
|
|
274
|
+
getTicketAssignApi(data) {
|
|
275
|
+
return this.http.post(`${this.footfallDirapiUrl}/assign-ticket`, data);
|
|
276
|
+
}
|
|
277
|
+
getMultiCloseTicketApi(data) {
|
|
278
|
+
return this.http.post(`${this.footfallDirapiUrl}/multi-close-tickets`, data);
|
|
279
|
+
}
|
|
280
|
+
getTypeFunction(clientId) {
|
|
281
|
+
let params = new HttpParams().set("clientId", clientId);
|
|
282
|
+
return this.http.get(`${this.clientApiUrl}/get-footfall-directory-config`, { params });
|
|
283
|
+
}
|
|
284
|
+
footfallData;
|
|
285
|
+
setFootfallData(data) {
|
|
286
|
+
this.footfallData = data;
|
|
287
|
+
}
|
|
288
|
+
getFootfallData() {
|
|
289
|
+
return this.footfallData;
|
|
290
|
+
}
|
|
149
291
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
150
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, providedIn:
|
|
292
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, providedIn: "root" });
|
|
151
293
|
}
|
|
152
294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, decorators: [{
|
|
153
295
|
type: Injectable,
|
|
154
296
|
args: [{
|
|
155
|
-
providedIn:
|
|
297
|
+
providedIn: "root",
|
|
156
298
|
}]
|
|
157
299
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFVSjtJQUEwQjtJQVQ5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBSztJQUNoQixpQkFBaUIsQ0FBSztJQUN0QixlQUFlLENBQUs7SUFDcEIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFLO0lBQ2hCLGFBQWEsQ0FBSztJQUNsQixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7SUFDaEQsWUFBb0IsSUFBZ0IsRUFBVSxFQUFzQjtRQUFoRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDbEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFH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YUFBYSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN2RSxDQUFDO3dHQTFKVSxhQUFhOzRHQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWFwLFxyXG4gIG9mLFxyXG4gIHRocm93RXJyb3IsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0U2VydmljZSB7XHJcbiAgdXNlckFwaVVybDogYW55O1xyXG4gIHRpY2tldHNBcGlVcmw6IGFueTtcclxuICBhdWRpdEFwaVVybDphbnk7XHJcbiAgYXVkaXRtZXRyaWNBcGlVcmw6YW55O1xyXG4gIHpvbmVhdWRpdEFwaVVybDphbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuICBmb290ZmFsbENETjphbnk7XHJcbiAgdHJhZmZpY0FwaVVybDphbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMudXNlckFwaVVybCA9IGVudi51c2VyQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudGlja2V0c0FwaVVybCA9ZW52LnRpY2tldHNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1ldHJpY0FwaVVybCA9IGVudi5hdWRpdG1ldHJpY0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0QXBpVXJsID0gZW52LmF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuem9uZWF1ZGl0QXBpVXJsID0gZW52LnpvbmVhdWRpdEFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsRGlyYXBpVXJsPSBlbnYuZm9vdGZhbGxEaXJhcGlVcmw7XHJcbiAgICAgICAgdGhpcy5mb290ZmFsbENETiA9ZW52LmZvb3RmYWxsQ0ROO1xyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9ZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1saXN0YCwgcGFyYW1zKVxyXG4gIH1cclxuICBleHBvcnRJbnN0YWxsYXRpb25MaXN0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luc3RhbGxhdGlvblRhYmxlYCxkYXRhLHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBleHBvcnRJbmZyYUxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5mcmFUYWJsZWAsZGF0YSx7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZXhwb3J0TWF0TGlzdChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsZGF0YSx7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZ2V0U290cmVzTGlzdChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL3N0b3JlRmlsdGVyYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxhdGlvbkxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRJbmZyYUxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEFzc2lnblRpY2tldChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2Fzc2lnblRpY2tldGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldE1hdExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG4gIFxyXG4gIHVwZGF0ZVRpY2tldElzc3VlKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vZW1wbG95ZWVUcmFuaW5nL3VwZGF0ZWNvbW1lbnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckFjdGl2ZUxpc3QocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy51c2VyQXBpVXJsfS9saXN0YCwgcGFyYW1zKVxyXG4gIH1cclxuICBcclxuICBnZXREYXRhTWlzbWF0aExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9kYXRhTWlzbWF0Y2hUYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG4gIGV4cG9ydERhdGFNaXNtYXRjaExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb3VudHMoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9hbGxDb3VudHNgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRzdG9yZU1ldHJpY3MoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3Mvc3RvcmUtbWV0cmljc2AsZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzRXhwb3J0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG4gIGdldGNsaWVudExpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2NsaWVudHNgKVxyXG4gIH1cclxuICBnZXR1c2VyTGlzdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hdWRpdEFwaVVybH0vdGFuZ28tdXNlcnNgKVxyXG4gIH1cclxuICBhdWRpdHJldHJpZ2dlcihkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9yZS10cmlnZ2VyYCxkYXRhKVxyXG4gfVxyXG4gZ2V0c3RvcmVMaXN0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtc3RvcmVzYCxkYXRhKVxyXG4gfVxyXG4gZ2V0QXVkaXRJbWFnZXMoZGF0YTphbnkpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWApXHJcbiAgfVxyXG4gIEV4cG9ydEF1ZGl0SW1hZ2VzYXN4bHN4KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWAse3Jlc3BvbnNlVHlwZTonYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIGdldFRpY2tldFN1bW1hcnlBcGkoY2xpZW50OiBhbnksIGZyb21EYXRlOiBhbnksIHRvRGF0ZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRMaXN0QXBpKGNsaWVudDogYW55LCBmcm9tRGF0ZTogYW55LCB0b0RhdGU6IGFueSwgc2VhcmNodmFsdWU6YW55LCBsaW1pdDphbnksIG9mZnNldDphbnksIGlzRXhwb3J0OmFueSxzb3J0Qnk6YW55LHNvcnRPcmRlcjphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRBcGkoY2xpZW50OiBhbnksIGZyb21EYXRlOiBhbnksIHRvRGF0ZTogYW55LCBzZWFyY2h2YWx1ZTphbnksIGxpbWl0OmFueSwgb2Zmc2V0OmFueSwgaXNFeHBvcnQ6YW55LHNvcnRCeTphbnksc29ydE9yZGVyOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWAse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0VGlja2V0c0FwaShzdG9yZTogYW55LCBmcm9tRGF0ZTogYW55LCB0b0RhdGU6IGFueSwgcmV2b3BzVHlwZTogYW55LCBzdGF0dXM6IGFueSwgYWN0aW9uOiBhbnksIG9mZnNldDogYW55LCBsaW1pdDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldCgnc3RvcmVJZCcsIHN0b3JlKVxyXG4gICAgLnNldCgnZnJvbURhdGUnLCBmcm9tRGF0ZSlcclxuICAgIC5zZXQoJ3RvRGF0ZScsIHRvRGF0ZSlcclxuICAgIC5zZXQoJ29mZnNldCcsIG9mZnNldClcclxuICAgIC5zZXQoJ2xpbWl0JywgbGltaXQpO1xyXG4gIGlmIChyZXZvcHNUeXBlKSB7XHJcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyZXZvcHNUeXBlJywgcmV2b3BzVHlwZSk7XHJcbiAgfVxyXG4gIGlmIChzdGF0dXMpIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3N0YXR1cycsIHN0YXR1cyk7XHJcbiAgfVxyXG4gIGlmIChhY3Rpb24pIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2FjdGlvbicsIGFjdGlvbik7XHJcbiAgfVxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbn1cclxuXHJcbmdldFRhZ2dlZFN0b3Jlc0FwaShjbGllbnQ6IGFueSwgZnJvbURhdGU6IGFueSwgdG9EYXRlOiBhbnksc2VhcmNoVmFsdWU6YW55LCBjbHVzdGVyczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldCgnY2xpZW50SWQnLCBjbGllbnQpXHJcbiAgICAuc2V0KCdmcm9tRGF0ZScsIGZyb21EYXRlKVxyXG4gICAgLnNldCgndG9EYXRlJywgdG9EYXRlKTsgLy8gQWRkIHNlYXJjaFZhbHVlIGFzIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgcHJvdmlkZWRcclxuICAgIC8vIE9ubHkgYWRkICdjbHVzdGVycycgaWYgaXQncyBub3QgbnVsbCwgdW5kZWZpbmVkLCBvciBhbiBlbXB0eSBhcnJheS9zdHJpbmdcclxuICAgIGlmIChzZWFyY2hWYWx1ZSkge1xyXG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlYXJjaFZhbHVlJywgc2VhcmNoVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgaWYgKGNsdXN0ZXJzICYmIGNsdXN0ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NsdXN0ZXJzJywgY2x1c3RlcnMpO1xyXG4gIH1cclxuICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGFnZ2VkLXN0b3Jlc2AsIHsgcGFyYW1zIH0pO1xyXG59XHJcblxyXG5cclxuZ2V0VXBkYXRlU3RhdHVzQXBpKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBjb25zdCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtc3RhdHVzYDtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGRhdGEpO1xyXG59XHJcbiAgZ2V0Y2x1c3RlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJjbHVzdGVyX3YyYCwgZGF0YSlcclxuICB9XHJcbn1cclxuIl19
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFZSjtJQUEwQjtJQVg5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFLO0lBQ2pCLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNqRCxZQUFvQixJQUFnQixFQUFVLEVBQXNCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFD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LElBQVM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELHNCQUFzQixDQUFDLElBQVM7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLHNCQUFzQixFQUMvQyxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBYTtRQUMzQixJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUd6RixDQUFDO0lBQ08sWUFBWSxDQUFNO0lBRTFCLGVBQWUsQ0FBQyxJQUFTO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7d0dBeGNVLGFBQWE7NEdBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7XHJcbiAgQmVoYXZpb3JTdWJqZWN0LFxyXG4gIE9ic2VydmFibGUsXHJcbiAgY2F0Y2hFcnJvcixcclxuICBtYXAsXHJcbiAgb2YsXHJcbiAgdGhyb3dFcnJvcixcclxufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpY2tldFNlcnZpY2Uge1xyXG4gIHVzZXJBcGlVcmw6IGFueTtcclxuICB0aWNrZXRzQXBpVXJsOiBhbnk7XHJcbiAgYXVkaXRBcGlVcmw6IGFueTtcclxuICBhdWRpdG1ldHJpY0FwaVVybDogYW55O1xyXG4gIHpvbmVhdWRpdEFwaVVybDogYW55O1xyXG4gIGZvb3RmYWxsRGlyYXBpVXJsOiBhbnk7XHJcbiAgZm9vdGZhbGxDRE46IGFueTtcclxuICB0cmFmZmljQXBpVXJsOiBhbnk7XHJcbiAgcmV2b3BBcGlVcmw6IGFueTtcclxuICBjbGllbnRBcGlVcmw6YW55O1xyXG4gIGRyb3BEb3duVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy51c2VyQXBpVXJsID0gZW52LnVzZXJBcGlVcmw7XHJcbiAgICAgICAgdGhpcy50aWNrZXRzQXBpVXJsID0gZW52LnRpY2tldHNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1ldHJpY0FwaVVybCA9IGVudi5hdWRpdG1ldHJpY0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0QXBpVXJsID0gZW52LmF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuem9uZWF1ZGl0QXBpVXJsID0gZW52LnpvbmVhdWRpdEFwaVVybDtcclxuICAgICAgICB0aGlzLmNsaWVudEFwaVVybCA9IGVudi5jbGllbnRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5mb290ZmFsbERpcmFwaVVybCA9IGVudi5mb290ZmFsbERpcmFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsQ0ROID0gZW52LmZvb3RmYWxsQ0ROO1xyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9IGVudi50cmFmZmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMucmV2b3BBcGlVcmwgPSBlbnYucmV2b3BBcGlVcmw7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckxpc3QocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy51c2VyQXBpVXJsfS9nZXQtbGlzdGAsIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRJbnN0YWxsYXRpb25MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luc3RhbGxhdGlvblRhYmxlYCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0SW5mcmFMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5mcmFUYWJsZWAsIGRhdGEsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydE1hdExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNvdHJlc0xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL3N0b3JlRmlsdGVyYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRJbnN0YWxsYXRpb25MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5zdGFsbGF0aW9uVGFibGVgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5mcmFMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRBc3NpZ25UaWNrZXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9hc3NpZ25UaWNrZXRgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWF0TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvbWF0VGFibGVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRpY2tldElzc3VlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vZW1wbG95ZWVUcmFuaW5nL3VwZGF0ZWNvbW1lbnRgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckFjdGl2ZUxpc3QocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy51c2VyQXBpVXJsfS9saXN0YCwgcGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGdldEFsbENvdW50cyhkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2FsbENvdW50c2AsIGRhdGEpXHJcbiAgfVxyXG4gIGdldHN0b3JlTWV0cmljcyhkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9zdG9yZS1tZXRyaWNzYCxkYXRhKVxyXG4gIH1cclxuICBnZXRzdG9yZU1ldHJpY3NFeHBvcnQoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3Mvc3RvcmUtbWV0cmljc2AsZGF0YSx7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZ2V0Y2xpZW50TGlzdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hdWRpdEFwaVVybH0vY2xpZW50c2ApXHJcbiAgfVxyXG4gIGdldHVzZXJMaXN0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmF1ZGl0QXBpVXJsfS90YW5nby11c2Vyc2ApXHJcbiAgfVxyXG4gIGF1ZGl0cmV0cmlnZ2VyKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3JlLXRyaWdnZXJgLGRhdGEpXHJcbiB9XHJcbiBnZXRmb290ZmFsbGNvdW50KGRhdGE6YW55KXtcclxuICAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnJldm9wQXBpVXJsfS9zdG9yZS1wcm9jZXNzZWQtZGF0YT9zdG9yZUlkPSR7ZGF0YS5zdG9yZUlkfSZmcm9tRGF0ZT0ke2RhdGEuRGF0ZX0mdG9EYXRlPSR7ZGF0YS5EYXRlfWApXHJcbiAgXHJcbiB9XHJcbiBnZXRzdG9yZUxpc3QoZGF0YTphbnkpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9hdWRpdC1zdG9yZXNgLGRhdGEpXHJcbiB9XHJcbiBjaGVja1RpY2tldEV4aXN0cyhkYXRhOmFueSl7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2NoZWNrVGlja2V0RXhpc3RzYCxkYXRhKVxyXG4gfVxyXG4gbWVyZ2V0aWNrZXQoZGF0YTphbnkpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9tZXJnZXRpY2tldGAsZGF0YSlcclxuIH1cclxuICBnZXREYXRhTWlzbWF0aExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9kYXRhTWlzbWF0Y2hUYWJsZWAsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnREYXRhTWlzbWF0Y2hMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2RhdGFNaXNtYXRjaFRhYmxlYCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldEF1ZGl0SW1hZ2VzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWBcclxuICAgICk7XHJcbiAgfVxyXG4gIEV4cG9ydEF1ZGl0SW1hZ2VzYXN4bHN4KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWAsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldFN1bW1hcnlBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LXN1bW1hcnk/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX1gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdE9sZEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0VGlja2V0TGlzdEFwaShcclxuICBjbGllbnQ6IGFueSxcclxuICBmcm9tRGF0ZTogYW55LFxyXG4gIHRvRGF0ZTogYW55LFxyXG4gIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgbGltaXQ6IGFueSxcclxuICBvZmZzZXQ6IGFueSxcclxuICBpc0V4cG9ydDogYW55LFxyXG4gIHNvcnRCeTogYW55LFxyXG4gIHNvcnRPcmRlcjogYW55LFxyXG4gIHRhbmdvVHlwZTogYW55LFxyXG4gIHBlcm1pc3Npb25UeXBlPzogc3RyaW5nIHwgbnVsbCxcclxuICBmaWx0ZXJzPzoge1xyXG4gICAgZmlsdGVyQnlTdGF0dXM/OiBzdHJpbmdbXTtcclxuICAgIGZpbHRlckJ5UmV2aWV3ZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlBcHByb3Zlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVRhbmdvPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGZpbHRlckJ5UmV2aWV3ZWRCeT86IHN0cmluZ1tdO1xyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeT86IHN0cmluZ1tdO1xyXG4gIH1cclxuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgdXJsID1cclxuICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2AgK1xyXG4gICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgYCZmcm9tRGF0ZT0ke2Zyb21EYXRlfWAgK1xyXG4gICAgYCZ0b0RhdGU9JHt0b0RhdGV9YCArXHJcbiAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICBgJmxpbWl0PSR7bGltaXR9YCArXHJcbiAgICBgJm9mZnNldD0ke29mZnNldH1gICtcclxuICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgIGAmc29ydEJ5PSR7c29ydEJ5fWAgK1xyXG4gICAgYCZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YCArXHJcbiAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDtcclxuICB9XHJcblxyXG4gIGlmIChmaWx0ZXJzKSB7XHJcbiAgICAvLyBhcnJheSBwYXJhbXMg4oCTIHNlbmQgYXMgY29tbWEtc2VwYXJhdGVkXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVN0YXR1cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5U3RhdHVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlTdGF0dXMuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZWRCeT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeS5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsZXRlckJ5QXBwcm92ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbGV0ZXJCeUFwcHJvdmVkQnk9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWxldGVyQnlBcHByb3ZlZEJ5LmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzdHJpbmcgcGFyYW1zIOKAkyBKU09OIHN0cmluZ2lmaWVkIGFjY3VyYWN5XHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZXI9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlBcHByb3Zlcj0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlUYW5nbykge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVRhbmdvPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlUYW5nbyl9YDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCk7XHJcbn1cclxuXHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRPbGRBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgICBsaW1pdDogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBpc0V4cG9ydDogYW55LFxyXG4gICAgc29ydEJ5OiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0VGlja2V0TGlzdEV4cG9ydEFwaShcclxuICBjbGllbnQ6IGFueSxcclxuICBmcm9tRGF0ZTogYW55LFxyXG4gIHRvRGF0ZTogYW55LFxyXG4gIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgbGltaXQ6IGFueSxcclxuICBvZmZzZXQ6IGFueSxcclxuICBpc0V4cG9ydDogYW55LFxyXG4gIHNvcnRCeTogYW55LFxyXG4gIHNvcnRPcmRlcjogYW55LFxyXG4gIHRhbmdvVHlwZTogYW55LFxyXG4gIHBlcm1pc3Npb25UeXBlPzogc3RyaW5nIHwgbnVsbCxcclxuICBmaWx0ZXJzPzoge1xyXG4gICAgZmlsdGVyQnlTdGF0dXM/OiBzdHJpbmdbXTtcclxuICAgIGZpbHRlckJ5UmV2aWV3ZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZmlsdGVyQnlBcHByb3Zlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgICBmaWx0ZXJCeVRhbmdvPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGZpbHRlckJ5UmV2aWV3ZWRCeT86IHN0cmluZ1tdO1xyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeT86IHN0cmluZ1tdO1xyXG4gIH1cclxuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgdXJsID1cclxuICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1saXN0P2AgK1xyXG4gICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgYCZmcm9tRGF0ZT0ke2Zyb21EYXRlfWAgK1xyXG4gICAgYCZ0b0RhdGU9JHt0b0RhdGV9YCArXHJcbiAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICBgJmxpbWl0PSR7bGltaXR9YCArXHJcbiAgICBgJm9mZnNldD0ke29mZnNldH1gICtcclxuICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgIGAmc29ydEJ5PSR7c29ydEJ5fWAgK1xyXG4gICAgYCZzb3J0T3JkZXI9JHtzb3J0T3JkZXJ9YCArXHJcbiAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDtcclxuICB9XHJcblxyXG4gIGlmIChmaWx0ZXJzKSB7XHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVN0YXR1cz8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5U3RhdHVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlTdGF0dXMuam9pbignLCcpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZWRCeT0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5UmV2aWV3ZWRCeS5qb2luKCcsJykpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsZXRlckJ5QXBwcm92ZWRCeT8ubGVuZ3RoKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbGV0ZXJCeUFwcHJvdmVkQnk9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWxldGVyQnlBcHByb3ZlZEJ5LmpvaW4oJywnKSl9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKSB7XHJcbiAgICAgIHVybCArPSBgJmZpbHRlckJ5UmV2aWV3ZXI9JHtlbmNvZGVVUklDb21wb25lbnQoZmlsdGVycy5maWx0ZXJCeVJldmlld2VyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyQnlBcHByb3Zlcj0ke2VuY29kZVVSSUNvbXBvbmVudChmaWx0ZXJzLmZpbHRlckJ5QXBwcm92ZXIpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlcnMuZmlsdGVyQnlUYW5nbykge1xyXG4gICAgICB1cmwgKz0gYCZmaWx0ZXJCeVRhbmdvPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbHRlcnMuZmlsdGVyQnlUYW5nbyl9YDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0IG9wdGlvbnMgPSBpc0V4cG9ydFxyXG4gICAgPyB7IHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyBhcyAnanNvbicgfVxyXG4gICAgOiB7fTtcclxuXHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCBvcHRpb25zKTtcclxufVxyXG5cclxuXHJcbiAgZ2V0VGlja2V0c0FwaShcclxuICAgIHN0b3JlOiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICByZXZvcHNUeXBlOiBhbnksXHJcbiAgICBzdGF0dXM6IGFueSxcclxuICAgIGFjdGlvbjogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBsaW1pdDogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXCJzdG9yZUlkXCIsIHN0b3JlKVxyXG4gICAgICAuc2V0KFwiZnJvbURhdGVcIiwgZnJvbURhdGUpXHJcbiAgICAgIC5zZXQoXCJ0b0RhdGVcIiwgdG9EYXRlKVxyXG4gICAgICAuc2V0KFwib2Zmc2V0XCIsIG9mZnNldClcclxuICAgICAgLnNldChcImxpbWl0XCIsIGxpbWl0KTtcclxuICAgIGlmIChyZXZvcHNUeXBlKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJyZXZvcHNUeXBlXCIsIHJldm9wc1R5cGUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic3RhdHVzXCIsIHN0YXR1cyk7XHJcbiAgICB9XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJhY3Rpb25cIiwgYWN0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRzTmV3QXBpKHRpY2tldElkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFwidGlja2V0SWRcIiwgdGlja2V0SWQpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRpY2tldHNgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRhZ2dlZFN0b3Jlc0FwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNoVmFsdWU6IGFueSxcclxuICAgIGNsdXN0ZXJzOiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KFwiY2xpZW50SWRcIiwgY2xpZW50KVxyXG4gICAgICAuc2V0KFwiZnJvbURhdGVcIiwgZnJvbURhdGUpXHJcbiAgICAgIC5zZXQoXCJ0b0RhdGVcIiwgdG9EYXRlKTsgLy8gQWRkIHNlYXJjaFZhbHVlIGFzIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgcHJvdmlkZWRcclxuICAgIC8vIE9ubHkgYWRkICdjbHVzdGVycycgaWYgaXQncyBub3QgbnVsbCwgdW5kZWZpbmVkLCBvciBhbiBlbXB0eSBhcnJheS9zdHJpbmdcclxuICAgIGlmIChzZWFyY2hWYWx1ZSkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KFwic2VhcmNoVmFsdWVcIiwgc2VhcmNoVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjbHVzdGVycyAmJiBjbHVzdGVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJjbHVzdGVyc1wiLCBjbHVzdGVycyk7XHJcbiAgICB9XHJcbiAgICBpZiAoc29ydE9yZGVyKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzb3J0T3JkZXJcIiwgc29ydE9yZGVyKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10YWdnZWQtc3RvcmVzYCwge1xyXG4gICAgICBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXN0YXR1c2A7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlVGVtcFN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3VwZGF0ZS10ZW1wLXN0YXR1c2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3BlblRpY2tldExpc3RBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9vcGVuLXRpY2tldC1saXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVUaWNrZXRTdGF0dXNBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXRpY2tldC1zdGF0dXNgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbmdldENyZWF0ZVRpY2tldExpc3RBcGkoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jcmVhdGUtdGlja2V0YCwgZGF0YSk7XHJcbn1cclxuQ3JlYXRlaW50ZXJuYWxUaWNrZXRBcGkoZGF0YTphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jcmVhdGUtaW50ZXJuYWx0aWNrZXRgLCBkYXRhKTtcclxufVxyXG4gIGdldGNsdXN0ZXJzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyY2x1c3Rlcl92MmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmV2aWV3ZXJBcGkoY2xpZW50SWQ6IGFueSx0eXBlOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnRJZClcclxuICAgICAgLnNldChcInR5cGVcIix0eXBlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3Jldmlld2VyLWxpc3RgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldEFzc2lnbkFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2Fzc2lnbi10aWNrZXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE11bHRpQ2xvc2VUaWNrZXRBcGkoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vbXVsdGktY2xvc2UtdGlja2V0c2AsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUeXBlRnVuY3Rpb24oY2xpZW50SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnRJZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vZ2V0LWZvb3RmYWxsLWRpcmVjdG9yeS1jb25maWdgLCB7IHBhcmFtcyB9KTtcclxuXHJcbiAgICBcclxuICB9XHJcbiAgcHJpdmF0ZSBmb290ZmFsbERhdGE6IGFueTtcclxuXHJcbiAgc2V0Rm9vdGZhbGxEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5mb290ZmFsbERhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9vdGZhbGxEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9vdGZhbGxEYXRhO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { interval, BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
export class TimerService {
|
|
6
|
+
route;
|
|
7
|
+
timePassed = new BehaviorSubject(0); // Timer count
|
|
8
|
+
subscription = null; // Timer subscription
|
|
9
|
+
inactivityTimeout = null; // Timeout for inactivity
|
|
10
|
+
INACTIVITY_LIMIT = 5000;
|
|
11
|
+
constructor(route) {
|
|
12
|
+
this.route = route;
|
|
13
|
+
}
|
|
14
|
+
startTimer() {
|
|
15
|
+
if (!this.subscription) {
|
|
16
|
+
let currentTime = 0;
|
|
17
|
+
let timeSpent;
|
|
18
|
+
if ('timeSpent' in sessionStorage) {
|
|
19
|
+
timeSpent = JSON.parse(sessionStorage.getItem('timeSpent') || '{}');
|
|
20
|
+
currentTime = timeSpent || 0; // Retrieve the existing timer value
|
|
21
|
+
}
|
|
22
|
+
const timer$ = interval(1000); // Emits every 1 second
|
|
23
|
+
this.subscription = timer$.subscribe(() => {
|
|
24
|
+
currentTime += 1;
|
|
25
|
+
this.timePassed.next(currentTime);
|
|
26
|
+
timeSpent = currentTime;
|
|
27
|
+
sessionStorage.setItem('timeSpent', JSON.stringify(timeSpent)); // Store the updated object
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
this.resetInactivityTimeout();
|
|
31
|
+
}
|
|
32
|
+
stopTimer() {
|
|
33
|
+
if (this.subscription) {
|
|
34
|
+
this.subscription.unsubscribe();
|
|
35
|
+
this.subscription = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
stopTimerAfterInactivity() {
|
|
39
|
+
this.inactivityTimeout = setTimeout(() => {
|
|
40
|
+
this.stopTimer(); // Stop the timer after inactivity
|
|
41
|
+
}, this.INACTIVITY_LIMIT);
|
|
42
|
+
}
|
|
43
|
+
resetInactivityTimeout() {
|
|
44
|
+
if (this.inactivityTimeout) {
|
|
45
|
+
clearTimeout(this.inactivityTimeout); // Clear the previous inactivity timeout
|
|
46
|
+
}
|
|
47
|
+
this.stopTimerAfterInactivity(); // Set a new inactivity timeout
|
|
48
|
+
}
|
|
49
|
+
getTimePassed() {
|
|
50
|
+
return this.timePassed;
|
|
51
|
+
}
|
|
52
|
+
clearTimer() {
|
|
53
|
+
if (this.subscription) {
|
|
54
|
+
this.subscription.unsubscribe();
|
|
55
|
+
this.subscription = null;
|
|
56
|
+
}
|
|
57
|
+
// this.timePassed.next(0); // Optionally reset the timePassed
|
|
58
|
+
// sessionStorage.removeItem('totalfiles'); // Optionally clear session storage
|
|
59
|
+
// sessionStorage.removeItem('timeSpent')
|
|
60
|
+
}
|
|
61
|
+
resetTimer() {
|
|
62
|
+
this.timePassed.next(0); // Reset to 0
|
|
63
|
+
// this.resetInactivityTimeout(); // Reset inactivity timeout
|
|
64
|
+
}
|
|
65
|
+
formatTime(seconds) {
|
|
66
|
+
const hours = Math.floor(seconds / 3600);
|
|
67
|
+
const minutes = Math.floor((seconds % 3600) / 60);
|
|
68
|
+
const secs = seconds % 60;
|
|
69
|
+
return `${this.padZero(hours)}:${this.padZero(minutes)}:${this.padZero(secs)}`;
|
|
70
|
+
}
|
|
71
|
+
// Helper method to pad single digit numbers with a leading zero
|
|
72
|
+
padZero(num) {
|
|
73
|
+
return num < 10 ? '0' + num : '' + num;
|
|
74
|
+
}
|
|
75
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimerService, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
76
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimerService, providedIn: 'root' });
|
|
77
|
+
}
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TimerService, decorators: [{
|
|
79
|
+
type: Injectable,
|
|
80
|
+
args: [{
|
|
81
|
+
providedIn: 'root'
|
|
82
|
+
}]
|
|
83
|
+
}], ctorParameters: () => [{ type: i1.ActivatedRoute }] });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvc2VydmljZXMvdGltZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFZLGVBQWUsRUFBZSxNQUFNLE1BQU0sQ0FBQzs7O0FBTXhFLE1BQU0sT0FBTyxZQUFZO0lBT0g7SUFMWixVQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxjQUFjO0lBQzVELFlBQVksR0FBd0IsSUFBSSxDQUFDLENBQUkscUJBQXFCO0lBQ2xFLGlCQUFpQixHQUFRLElBQUksQ0FBQyxDQUFlLHlCQUF5QjtJQUN0RSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFFaEMsWUFBb0IsS0FBb0I7UUFBcEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUV2QyxDQUFDO0lBRUQsVUFBVTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLFNBQWMsQ0FBQztZQUNuQixJQUFJLFdBQVcsSUFBSSxjQUFjLEVBQUU7Z0JBQ2pDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQ3BFLFdBQVcsR0FBRyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUUsb0NBQW9DO2FBQ3BFO1lBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUsdUJBQXVCO1lBRXZELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hDLFdBQVcsSUFBSSxDQUFDLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNsQyxTQUFTLEdBQUcsV0FBVyxDQUFDO2dCQUN4QixjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSwyQkFBMkI7WUFDOUYsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFFLGtDQUFrQztRQUN2RCxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBRSx3Q0FBd0M7U0FDaEY7UUFDRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFFLCtCQUErQjtJQUNuRSxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUEsVUFBVTtRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBQ0QsK0RBQStEO1FBQy9ELGdGQUFnRjtRQUNoRix5Q0FBeUM7SUFDM0MsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLGFBQWE7UUFDdkMsOERBQThEO0lBQ2hFLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sSUFBSSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFMUIsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakYsQ0FBQztJQUVELGdFQUFnRTtJQUN4RCxPQUFPLENBQUMsR0FBVztRQUN6QixPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDekMsQ0FBQzt3R0FsRlUsWUFBWTs0R0FBWixZQUFZLGNBRlgsTUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCxPYnNlcnZhYmxlLEJlaGF2aW9yU3ViamVjdCxTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUm91dGVyLEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVyU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgdGltZVBhc3NlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTsgIC8vIFRpbWVyIGNvdW50XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsOyAgICAvLyBUaW1lciBzdWJzY3JpcHRpb25cclxuICBwcml2YXRlIGluYWN0aXZpdHlUaW1lb3V0OiBhbnkgPSBudWxsOyAgICAgICAgICAgICAgIC8vIFRpbWVvdXQgZm9yIGluYWN0aXZpdHlcclxuICBwcml2YXRlIElOQUNUSVZJVFlfTElNSVQgPSA1MDAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOkFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICAgIFxyXG4gICB9XHJcblxyXG4gICBzdGFydFRpbWVyKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICBsZXQgY3VycmVudFRpbWUgPSAwO1xyXG4gICAgICBsZXQgdGltZVNwZW50OiBhbnk7XHJcbiAgICAgIGlmICgndGltZVNwZW50JyBpbiBzZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICAgIHRpbWVTcGVudCA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndGltZVNwZW50JykgfHwgJ3t9Jyk7XHJcbiAgICAgICAgY3VycmVudFRpbWUgPSB0aW1lU3BlbnQgfHwgMDsgIC8vIFJldHJpZXZlIHRoZSBleGlzdGluZyB0aW1lciB2YWx1ZVxyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIGNvbnN0IHRpbWVyJCA9IGludGVydmFsKDEwMDApOyAgLy8gRW1pdHMgZXZlcnkgMSBzZWNvbmRcclxuICBcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aW1lciQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBjdXJyZW50VGltZSArPSAxOyBcclxuICAgICAgICB0aGlzLnRpbWVQYXNzZWQubmV4dChjdXJyZW50VGltZSk7IFxyXG4gICAgICAgIHRpbWVTcGVudCA9IGN1cnJlbnRUaW1lO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ3RpbWVTcGVudCcsIEpTT04uc3RyaW5naWZ5KHRpbWVTcGVudCkpOyAgLy8gU3RvcmUgdGhlIHVwZGF0ZWQgb2JqZWN0XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNldEluYWN0aXZpdHlUaW1lb3V0KCk7XHJcbiAgfVxyXG5cclxuICBzdG9wVGltZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RvcFRpbWVyQWZ0ZXJJbmFjdGl2aXR5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbmFjdGl2aXR5VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN0b3BUaW1lcigpOyAgLy8gU3RvcCB0aGUgdGltZXIgYWZ0ZXIgaW5hY3Rpdml0eVxyXG4gICAgfSwgdGhpcy5JTkFDVElWSVRZX0xJTUlUKTtcclxuICB9XHJcblxyXG4gIHJlc2V0SW5hY3Rpdml0eVRpbWVvdXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbmFjdGl2aXR5VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbmFjdGl2aXR5VGltZW91dCk7ICAvLyBDbGVhciB0aGUgcHJldmlvdXMgaW5hY3Rpdml0eSB0aW1lb3V0XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3BUaW1lckFmdGVySW5hY3Rpdml0eSgpOyAgLy8gU2V0IGEgbmV3IGluYWN0aXZpdHkgdGltZW91dFxyXG4gIH1cclxuXHJcbiAgZ2V0VGltZVBhc3NlZCgpOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gdGhpcy50aW1lUGFzc2VkO1xyXG4gIH1cclxuXHJcbiAgIGNsZWFyVGltZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy50aW1lUGFzc2VkLm5leHQoMCk7ICAvLyBPcHRpb25hbGx5IHJlc2V0IHRoZSB0aW1lUGFzc2VkXHJcbiAgICAvLyBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd0b3RhbGZpbGVzJyk7ICAvLyBPcHRpb25hbGx5IGNsZWFyIHNlc3Npb24gc3RvcmFnZVxyXG4gICAgLy8gc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgndGltZVNwZW50JylcclxuICB9XHJcblxyXG4gIHJlc2V0VGltZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpbWVQYXNzZWQubmV4dCgwKTsgIC8vIFJlc2V0IHRvIDBcclxuICAgIC8vIHRoaXMucmVzZXRJbmFjdGl2aXR5VGltZW91dCgpOyAgLy8gUmVzZXQgaW5hY3Rpdml0eSB0aW1lb3V0XHJcbiAgfVxyXG5cclxuICBmb3JtYXRUaW1lKHNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDM2MDApO1xyXG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoKHNlY29uZHMgJSAzNjAwKSAvIDYwKTtcclxuICAgIGNvbnN0IHNlY3MgPSBzZWNvbmRzICUgNjA7XHJcblxyXG4gICAgcmV0dXJuIGAke3RoaXMucGFkWmVybyhob3Vycyl9OiR7dGhpcy5wYWRaZXJvKG1pbnV0ZXMpfToke3RoaXMucGFkWmVybyhzZWNzKX1gO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBwYWQgc2luZ2xlIGRpZ2l0IG51bWJlcnMgd2l0aCBhIGxlYWRpbmcgemVyb1xyXG4gIHByaXZhdGUgcGFkWmVybyhudW06IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbnVtIDwgMTAgPyAnMCcgKyBudW0gOiAnJyArIG51bTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { RouterModule } from '@angular/router';
|
|
3
3
|
import { TangoManageTicketsComponent } from './components/tango-manage-tickets/tango-manage-tickets.component';
|
|
4
|
+
import { FootfallDicviewComponent } from './components/footfall-dicview/footfall-dicview.component';
|
|
5
|
+
import { StartAuditComponent } from './components/start-audit/start-audit.component';
|
|
6
|
+
import { AuditMappingListComponent } from './components/audit-mapping-list/audit-mapping-list.component';
|
|
7
|
+
import { AuditRetagComponent } from './components/audit-retag/audit-retag.component';
|
|
4
8
|
import * as i0 from "@angular/core";
|
|
5
9
|
import * as i1 from "@angular/router";
|
|
6
10
|
const routes = [
|
|
7
11
|
{
|
|
8
12
|
path: '',
|
|
9
13
|
component: TangoManageTicketsComponent
|
|
10
|
-
}
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
path: 'list',
|
|
17
|
+
component: FootfallDicviewComponent
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
path: "audit",
|
|
21
|
+
component: StartAuditComponent
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
path: "mapping-list",
|
|
25
|
+
component: AuditMappingListComponent
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
path: 'retag-mapping',
|
|
29
|
+
component: AuditRetagComponent
|
|
30
|
+
},
|
|
11
31
|
];
|
|
12
32
|
export class TangoManageTicketsRoutingModule {
|
|
13
33
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TangoManageTicketsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -21,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
21
41
|
exports: [RouterModule]
|
|
22
42
|
}]
|
|
23
43
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tbWFuYWdlLXRpY2tldHMtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3RhbmdvLW1hbmFnZS10aWNrZXRzLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7QUFHckYsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUMsRUFBRTtRQUNQLFNBQVMsRUFBQywyQkFBMkI7S0FDdEM7SUFDRDtRQUNJLElBQUksRUFBRSxNQUFNO1FBQ1osU0FBUyxFQUFFLHdCQUF3QjtLQUN0QztJQUNEO1FBQ0UsSUFBSSxFQUFDLE9BQU87UUFDWixTQUFTLEVBQUMsbUJBQW1CO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUMsY0FBYztRQUNuQixTQUFTLEVBQUMseUJBQXlCO0tBQ3BDO0lBQ0E7UUFDRyxJQUFJLEVBQUMsZUFBZTtRQUNwQixTQUFTLEVBQUMsbUJBQW1CO0tBQzlCO0NBQ0osQ0FBQztBQU1GLE1BQU0sT0FBTywrQkFBK0I7d0dBQS9CLCtCQUErQjt5R0FBL0IsK0JBQStCLHdDQUZoQyxZQUFZO3lHQUVYLCtCQUErQixZQUhoQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUM3QixZQUFZOzs0RkFFWCwrQkFBK0I7a0JBSjNDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVGFuZ29NYW5hZ2VUaWNrZXRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3RhbmdvLW1hbmFnZS10aWNrZXRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvb3RmYWxsRGljdmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZmFsbC1kaWN2aWV3L2Zvb3RmYWxsLWRpY3ZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3RhcnRBdWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zdGFydC1hdWRpdC9zdGFydC1hdWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBdWRpdE1hcHBpbmdMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F1ZGl0LW1hcHBpbmctbGlzdC9hdWRpdC1tYXBwaW5nLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXVkaXRSZXRhZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hdWRpdC1yZXRhZy9hdWRpdC1yZXRhZy5jb21wb25lbnQnO1xyXG5cclxuXHJcbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gIHtcclxuICAgIHBhdGg6JycsXHJcbiAgICBjb21wb25lbnQ6VGFuZ29NYW5hZ2VUaWNrZXRzQ29tcG9uZW50XHJcbiAgfSxcclxuICB7XHJcbiAgICAgIHBhdGg6ICdsaXN0JyxcclxuICAgICAgY29tcG9uZW50OiBGb290ZmFsbERpY3ZpZXdDb21wb25lbnRcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6XCJhdWRpdFwiLFxyXG4gICAgY29tcG9uZW50OlN0YXJ0QXVkaXRDb21wb25lbnRcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6XCJtYXBwaW5nLWxpc3RcIixcclxuICAgIGNvbXBvbmVudDpBdWRpdE1hcHBpbmdMaXN0Q29tcG9uZW50XHJcbiAgfSxcclxuICAge1xyXG4gICAgICBwYXRoOidyZXRhZy1tYXBwaW5nJyxcclxuICAgICAgY29tcG9uZW50OkF1ZGl0UmV0YWdDb21wb25lbnQgXHJcbiAgICB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxyXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb01hbmFnZVRpY2tldHNSb3V0aW5nTW9kdWxlIHsgfVxyXG4iXX0=
|